<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://doc2-fr.openflyers.com/index.php?action=history&amp;feed=atom&amp;title=Biblioth%C3%A8que-des-rapports</id>
		<title>Bibliothèque des rapports - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="https://doc2-fr.openflyers.com/index.php?action=history&amp;feed=atom&amp;title=Biblioth%C3%A8que-des-rapports"/>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Biblioth%C3%A8que-des-rapports&amp;action=history"/>
		<updated>2026-04-30T18:27:53Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=Biblioth%C3%A8que-des-rapports&amp;diff=13852&amp;oldid=prev</id>
		<title>Claratte : /* Users with validities viewer */</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Biblioth%C3%A8que-des-rapports&amp;diff=13852&amp;oldid=prev"/>
				<updated>2016-02-14T22:03:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Users with validities viewer&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version du 14 février 2016 à 22:03&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 176 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 176 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ORDER BY last_name, first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ORDER BY last_name, first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Users with validities viewer&lt;/del&gt;=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Utilisateurs avec leurs validités&lt;/ins&gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;sql&amp;gt;SELECT &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;sql&amp;gt;SELECT &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; last_name AS &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Last name&lt;/del&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; last_name AS &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nom&lt;/ins&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; first_name AS &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;First name&lt;/del&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; first_name AS &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Prenom&lt;/ins&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; validity_type.name AS &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Validity&lt;/del&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; validity_type.name AS &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Validité&lt;/ins&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; DATE_FORMAT(expire_date,'%d/%m/%Y') AS &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Expiration date&lt;/del&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; DATE_FORMAT(expire_date,'%d/%m/%Y') AS &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Date expiration&lt;/ins&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; IF((DATEDIFF(DATE(expire_date),DATE(Now())) &amp;lt; 0), &amp;quot;Expired&amp;quot;,&amp;quot;&amp;quot;) AS &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Expired&lt;/del&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; IF((DATEDIFF(DATE(expire_date),DATE(Now())) &amp;lt; 0), &amp;quot;Expired&amp;quot;,&amp;quot;&amp;quot;) AS &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Perimee&lt;/ins&gt;&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; DATE_FORMAT(grant_date,'%d/%m/%Y') AS &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Obtention date&lt;/del&gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; DATE_FORMAT(grant_date,'%d/%m/%Y') AS &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Date obtention&lt;/ins&gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  FROM validity_type&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  FROM validity_type&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  LEFT JOIN validity ON validity.validity_type_id = validity_type.id &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  LEFT JOIN validity ON validity.validity_type_id = validity_type.id &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikiOF_doc2-fr:diff:version:1.11a:oldid:13851:newid:13852 --&gt;
&lt;/table&gt;</summary>
		<author><name>Claratte</name></author>	</entry>

	<entry>
		<id>https://doc2-fr.openflyers.com/index.php?title=Biblioth%C3%A8que-des-rapports&amp;diff=13851&amp;oldid=prev</id>
		<title>Claratte : Page créée avec « =Users= &lt;sql&gt;SELECT id, last_name, first_name FROM person WHERE activated=1&lt;/sql&gt;  =Users and &lt;e-mail&gt;= &lt;sql&gt;SELECT CONCAT(person.first_name, ' ', person.last_name, ' &lt;',... »</title>
		<link rel="alternate" type="text/html" href="https://doc2-fr.openflyers.com/index.php?title=Biblioth%C3%A8que-des-rapports&amp;diff=13851&amp;oldid=prev"/>
				<updated>2016-02-14T22:02:05Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « =Users= &amp;lt;sql&amp;gt;SELECT id, last_name, first_name FROM person WHERE activated=1&amp;lt;/sql&amp;gt;  =Users and &amp;lt;e-mail&amp;gt;= &amp;lt;sql&amp;gt;SELECT CONCAT(person.first_name, &amp;#039; &amp;#039;, person.last_name, &amp;#039; &amp;lt;&amp;#039;,... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Users=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT id, last_name, first_name&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE activated=1&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users and &amp;lt;e-mail&amp;gt;=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT CONCAT(person.first_name, ' ', person.last_name, ' &amp;lt;', person.email, '&amp;gt;') AS emails&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE person.activated=1&lt;br /&gt;
ORDER BY person.last_name, person.first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users by profile=&lt;br /&gt;
Variable $profile should be defined first and should be of dbOject::Profile value type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT&lt;br /&gt;
    last_name AS Lastname,&lt;br /&gt;
    first_name AS Firstname,&lt;br /&gt;
    profile.name AS Profile&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN profile ON (person.profile &amp;amp; profile.id)&lt;br /&gt;
WHERE person.activated = 1 AND profile.id = $profile&lt;br /&gt;
ORDER BY Profile, Lastname, Firstname&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users by validity=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT validity_type.name AS 'Validity',&lt;br /&gt;
    DATE_FORMAT(grant_date,'%d/%m/%Y') AS Date_d_obtention,&lt;br /&gt;
    last_name AS Name,&lt;br /&gt;
    first_name AS Firstname,&lt;br /&gt;
    ident_value AS Comment&lt;br /&gt;
FROM validity_type&lt;br /&gt;
LEFT JOIN validity ON validity.validity_type_id =validity_type.id &lt;br /&gt;
LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE validity_type.id='$validityTypeId'&lt;br /&gt;
ORDER BY Name, Firstname&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users by validity obtained after the selected year=&lt;br /&gt;
&lt;br /&gt;
* Variable '''$year''' should be defined first and should be of '''Year''' value type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT validity_type.name AS 'Validity',&lt;br /&gt;
    DATE_FORMAT(grant_date,'%d/%m/%Y') AS Date,&lt;br /&gt;
    last_name AS Name,&lt;br /&gt;
    first_name AS Firstname,&lt;br /&gt;
    ident_value AS Comment&lt;br /&gt;
FROM validity_type&lt;br /&gt;
LEFT JOIN validity ON validity.validity_type_id=validity_type.id &lt;br /&gt;
LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE YEAR(grant_date)&amp;gt;$year&lt;br /&gt;
ORDER BY 'Validity', Name, Firstname&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with address=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT &lt;br /&gt;
	last_name, &lt;br /&gt;
	first_name, &lt;br /&gt;
	name AS login, &lt;br /&gt;
	email, &lt;br /&gt;
	address, &lt;br /&gt;
	zipcode, &lt;br /&gt;
	city AS Ville, &lt;br /&gt;
	state AS etat_region, &lt;br /&gt;
	country AS pays, &lt;br /&gt;
	home_phone AS tel_domicile, &lt;br /&gt;
	work_phone AS tel_travail, &lt;br /&gt;
	cell_phone AS tel_mobile&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE activated=1&lt;br /&gt;
ORDER BY last_name,first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with address and registration date (using ExtraField)=&lt;br /&gt;
Extra field required :&lt;br /&gt;
#registrationDate&lt;br /&gt;
#*label : Registration date&lt;br /&gt;
#*category : User&lt;br /&gt;
#*value type : DateTime&lt;br /&gt;
&lt;br /&gt;
Validity type required :&lt;br /&gt;
#Cotisation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT &lt;br /&gt;
    last_name, &lt;br /&gt;
    first_name,&lt;br /&gt;
    email, &lt;br /&gt;
    address, &lt;br /&gt;
    zipcode, &lt;br /&gt;
    city, &lt;br /&gt;
    state, &lt;br /&gt;
    country, &lt;br /&gt;
    home_phone, &lt;br /&gt;
    work_phone,&lt;br /&gt;
    cell_phone, &lt;br /&gt;
    sex,&lt;br /&gt;
    DATE_FORMAT(birthdate, '%Y-%m-%d') AS birthdate,&lt;br /&gt;
    nationality,&lt;br /&gt;
    validity.grant_date AS subscription_date,&lt;br /&gt;
    (&lt;br /&gt;
        SELECT DATE_FORMAT(extra_field_content.content, '%Y-%m-%d')&lt;br /&gt;
        FROM extra_field&lt;br /&gt;
        LEFT JOIN extra_field_content ON extra_field.id=extra_field_content.extra_field_id&lt;br /&gt;
        WHERE extra_field.variable=&amp;quot;registrationDate&amp;quot; and extra_field_content.category_id=person.id&lt;br /&gt;
    )AS registration_date&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE activated = 1 AND validity_type.name = 'Cotisation'&lt;br /&gt;
ORDER BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with address and registration date (using Validity)=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT&lt;br /&gt;
person.last_name,&lt;br /&gt;
person.first_name,&lt;br /&gt;
validity.grant_date AS registration_date&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON validity.person_id=person.id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.name = &amp;quot;Date d'inscription&amp;quot; AND person.activated=1&lt;br /&gt;
GROUP BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with e-mails of selected validity type person equals given year=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
*year (Type: Year)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT CONCAT(person.first_name, ' ', person.last_name, ' &amp;lt;', person.email, '&amp;gt;') AS emails&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND YEAR(validity.expire_date) = $year AND validity_type.id = '$validityTypeId'&lt;br /&gt;
ORDER BY person.last_name, person.first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with e-mails with up-to-date expire date of validity VVV=&lt;br /&gt;
Following symbols should be replace:&lt;br /&gt;
*VVV : validity type id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT CONCAT(person.first_name, ' ', person.last_name, ' &amp;lt;', person.email, '&amp;gt;') AS emails&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND validity.expire_date &amp;gt; NOW() AND validity_type.id = VVV&lt;br /&gt;
ORDER BY last_name,first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with validity ending before a specific date=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*endDate (Type: Date)&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT person.id, person.first_name, person.last_name, validity_type.name AS 'Validity'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND validity.grant_date &amp;lt;= '$endDate'&lt;br /&gt;
  AND validity_type.id = '$validityTypeId'&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with up-to-date validity X and Y and user details=&lt;br /&gt;
Replace X and Y by the validity_type id (2 times).&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT CONCAT(last_name, ' ', first_name) AS 'User',&lt;br /&gt;
validity_type.name AS 'Validity name',&lt;br /&gt;
expire_date AS 'Expire date',&lt;br /&gt;
DATE_FORMAT(birthdate, '%Y/%m/%d') AS 'Birthdate',&lt;br /&gt;
email,&lt;br /&gt;
CONCAT (address, ' ', zipcode, ' ', city, ' ', state, ' ', country) AS 'Adress',&lt;br /&gt;
home_phone AS 'Home phone',&lt;br /&gt;
work_phone AS 'Work phone',&lt;br /&gt;
cell_phone AS 'Cell phone'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.time_limitation=1 AND (validity_type.id=X OR validity_type.id=Y)&lt;br /&gt;
AND person.id IN&lt;br /&gt;
    ( SELECT person.id FROM person&lt;br /&gt;
    LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
    LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
    WHERE person.activated=1 AND (validity_type.id=X OR validity_type.id=Y) AND validity.expire_date &amp;gt;= UTC_DATE() )&lt;br /&gt;
 ORDER BY last_name, first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with validities viewer=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT &lt;br /&gt;
      last_name AS &amp;quot;Last name&amp;quot;,&lt;br /&gt;
      first_name AS &amp;quot;First name&amp;quot;,&lt;br /&gt;
      validity_type.name AS &amp;quot;Validity&amp;quot;,&lt;br /&gt;
      DATE_FORMAT(expire_date,'%d/%m/%Y') AS &amp;quot;Expiration date&amp;quot;,&lt;br /&gt;
      IF((DATEDIFF(DATE(expire_date),DATE(Now())) &amp;lt; 0), &amp;quot;Expired&amp;quot;,&amp;quot;&amp;quot;) AS &amp;quot;Expired&amp;quot;,&lt;br /&gt;
      DATE_FORMAT(grant_date,'%d/%m/%Y') AS &amp;quot;Obtention date&amp;quot;&lt;br /&gt;
   FROM validity_type&lt;br /&gt;
   LEFT JOIN validity ON validity.validity_type_id = validity_type.id &lt;br /&gt;
   LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE person.activated = 1&lt;br /&gt;
ORDER BY Last_name, First_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with age and birth date=&lt;br /&gt;
&amp;lt;sql&amp;gt;(SELECT last_name AS Last_name,&lt;br /&gt;
&lt;br /&gt;
first_name AS First_name, &lt;br /&gt;
&lt;br /&gt;
DATE_FORMAT(birthdate ,'%d-%m-%Y') AS Birth_date, &lt;br /&gt;
&lt;br /&gt;
IF ( (sex = 0), 'Man', 'Woman' ) AS sex,&lt;br /&gt;
&lt;br /&gt;
(DATE_FORMAT(DATE('$day'), '%Y') - &lt;br /&gt;
DATE_FORMAT(birthdate, '%Y') - &lt;br /&gt;
(SELECT DATE_FORMAT(DATE('$day'), '00-%m-%d') &amp;lt; DATE_FORMAT( birthdate, '00-%m-%d'))) AS 'age',&lt;br /&gt;
&lt;br /&gt;
DATE_FORMAT(DATE('$day'),'%d-%m-%Y') AS on_date,&lt;br /&gt;
&lt;br /&gt;
IF((DATE_FORMAT(DATE('$day'), '%Y') - &lt;br /&gt;
DATE_FORMAT(birthdate, '%Y') - &lt;br /&gt;
(SELECT DATE_FORMAT(DATE('$day'), '00-%m-%d') &amp;lt; DATE_FORMAT( birthdate, '00-%m-%d')))&amp;gt;=21, '&amp;gt;= 21', '&amp;lt; 21') AS Major,&lt;br /&gt;
&lt;br /&gt;
-- inscription_date,&lt;br /&gt;
&lt;br /&gt;
-- member.subscription,&lt;br /&gt;
&lt;br /&gt;
-- entry.account_date as Adhesion&lt;br /&gt;
DATE_FORMAT(entry.account_date,'%d-%m-%Y') as Grant_date&lt;br /&gt;
&lt;br /&gt;
-- ,MAX(entry.account_date)&lt;br /&gt;
&lt;br /&gt;
-- , $day&lt;br /&gt;
-- , entry.flow_id&lt;br /&gt;
-- , account.name&lt;br /&gt;
&lt;br /&gt;
FROM person&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN validity ON validity.person_id = person.id &lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account acc2 on acc2.owner_id = person.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry linked_entry on linked_entry.account_id = acc2.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry entry on linked_entry.flow_id = entry.flow_id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account on entry.account_id = account.id &lt;br /&gt;
&lt;br /&gt;
WHERE year(validity.grant_date) = $year&lt;br /&gt;
&lt;br /&gt;
AND account.name = 'Cotisations ACB'&lt;br /&gt;
&lt;br /&gt;
AND (year(entry.account_date)=$year OR (year(entry.account_date)=$year -1 AND month(entry.account_date)=12) )&lt;br /&gt;
&lt;br /&gt;
AND entry.account_date &amp;lt; DATE('$day')&lt;br /&gt;
&lt;br /&gt;
ORDER BY Last_name  LIMIT 999999&lt;br /&gt;
)&lt;br /&gt;
UNION&lt;br /&gt;
(&lt;br /&gt;
SELECT COUNT(*) AS Last_name,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS First_name, &lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS Birth_date, &lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS sex,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS 'age',&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS on_date,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS Major,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) as Grant_date&lt;br /&gt;
&lt;br /&gt;
FROM person&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN validity ON validity.person_id = person.id &lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account acc2 on acc2.owner_id = person.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry linked_entry on linked_entry.account_id = acc2.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry entry on linked_entry.flow_id = entry.flow_id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account on entry.account_id = account.id &lt;br /&gt;
&lt;br /&gt;
WHERE year(validity.grant_date) = $year&lt;br /&gt;
&lt;br /&gt;
AND account.name = 'Cotisations ACB'&lt;br /&gt;
&lt;br /&gt;
AND (year(entry.account_date)=$year OR (year(entry.account_date)=$year -1 AND month(entry.account_date)=12) )&lt;br /&gt;
&lt;br /&gt;
AND entry.account_date &amp;lt; DATE('$day')&lt;br /&gt;
)&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with validity grant date and profiles=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT validity_type.name AS 'Validity',&lt;br /&gt;
    DATE_FORMAT(grant_date, '%d/%m/%Y') AS grant_date,&lt;br /&gt;
    last_name AS Name,&lt;br /&gt;
    first_name AS Firstname,&lt;br /&gt;
    ident_value AS Comment,&lt;br /&gt;
    ( SELECT GROUP_CONCAT(profile.name SEPARATOR ', ') &lt;br /&gt;
      FROM profile WHERE (person.profile &amp;amp; profile.id)&lt;br /&gt;
    )AS Profile&lt;br /&gt;
FROM validity_type&lt;br /&gt;
LEFT JOIN validity ON validity.validity_type_id=validity_type.id &lt;br /&gt;
LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE YEAR(grant_date)&amp;gt;=$year&lt;br /&gt;
AND validity_type.id='$validityTypeId' &lt;br /&gt;
ORDER BY Name, Firstname&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with registration date, profiles and total flight time=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT&lt;br /&gt;
person.last_name,&lt;br /&gt;
person.first_name,&lt;br /&gt;
validity.grant_date AS registration_date,&lt;br /&gt;
person.birthdate AS birthdate,&lt;br /&gt;
IF ( (person.sex = 0), 'M', 'F' ) AS Gender,&lt;br /&gt;
( &lt;br /&gt;
    SELECT GROUP_CONCAT(profile.name SEPARATOR ', ') &lt;br /&gt;
    FROM profile WHERE (person.profile &amp;amp; profile.id)&lt;br /&gt;
)AS Profile,&lt;br /&gt;
IFNULL(( &lt;br /&gt;
    SELECT&lt;br /&gt;
      CONCAT(FLOOR(SUM( flight.duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( flight.duration )/600 - FLOOR(SUM( flight.duration )/600))*3600),'%i')) AS Total &lt;br /&gt;
    FROM flight_pilot fp &lt;br /&gt;
    LEFT JOIN flight ON fp.flight_id=flight.id &lt;br /&gt;
    WHERE fp.pilot_id=person.id AND fp.num=0&lt;br /&gt;
), 0) AS Total_flight_time&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON validity.person_id=person.id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.name = &amp;quot;Date d'inscription&amp;quot; AND person.activated=1&lt;br /&gt;
GROUP BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with email=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT last_name, first_name, email&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE activated=1&lt;br /&gt;
ORDER BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with expire date validity equals a given year=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
*year (Type: Year)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT person.id, person.first_name, person.last_name, validity_type.name AS 'Validity'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND YEAR(validity.expire_date) = $year AND validity_type.id = '$validityTypeId'&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with expire date validities inferior to the first day of the given month and year=&lt;br /&gt;
&lt;br /&gt;
Following extra field required:&lt;br /&gt;
* month (Type: integer)&lt;br /&gt;
* year (Type: year)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT CONCAT(last_name, ' ', first_name) AS 'User', validity_type.name AS 'Validity name', expire_date AS 'Expire date'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.time_limitation=1&lt;br /&gt;
  AND validity.expire_date &amp;lt; '$year-$month-01'&lt;br /&gt;
  AND person.activated=1&lt;br /&gt;
ORDER BY last_name, first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with expire date validities inferior to the first day of the given month and year, with up-to-date expire date of validity XX=&lt;br /&gt;
&lt;br /&gt;
Following extra field required:&lt;br /&gt;
* month (Type: integer)&lt;br /&gt;
* year (Type: year)&lt;br /&gt;
Following symbols should be replace:&lt;br /&gt;
* XX : validity type id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT CONCAT(last_name, ' ', first_name) AS 'User', validity_type.name AS 'Validity name', expire_date AS 'Expire date'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.time_limitation=1&lt;br /&gt;
AND validity.expire_date &amp;lt; '$year-$month-01'&lt;br /&gt;
AND person.id IN (&lt;br /&gt;
    SELECT person.id&lt;br /&gt;
    FROM person&lt;br /&gt;
    LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
    LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
    WHERE person.activated=1&lt;br /&gt;
      AND validity_type.id=XX&lt;br /&gt;
      AND validity.expire_date &amp;gt;= UTC_DATE()&lt;br /&gt;
)&lt;br /&gt;
ORDER BY last_name, first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users without required validities=&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT CONCAT(person.last_name, ' ', person.first_name) AS pilot, validity_type.name AS validity_name&lt;br /&gt;
FROM flight_type_mandatory_validity_type&lt;br /&gt;
LEFT JOIN flight_type ON flight_type.id = flight_type_mandatory_validity_type.flight_type_id&lt;br /&gt;
LEFT JOIN flight ON flight.flight_type_id &amp;amp; flight_type.id&lt;br /&gt;
LEFT JOIN resource ON resource.id = flight.aircraft_id&lt;br /&gt;
LEFT JOIN aircraft_type ON resource.resource_type_id = aircraft_type.id&lt;br /&gt;
LEFT JOIN aircraft_type_validity_type ON aircraft_type.id = aircraft_type_validity_type.aircraft_type_id&lt;br /&gt;
LEFT JOIN flight_pilot ON flight.id = flight_pilot.flight_id&lt;br /&gt;
LEFT JOIN person ON person.id = flight_pilot.pilot_id&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = flight_type_mandatory_validity_type.validity_type_id OR validity_type.id = aircraft_type_validity_type.validity_type_id)&lt;br /&gt;
WHERE flight.airborne = 0&lt;br /&gt;
  AND ROW(person.id, validity_type.id) NOT IN (SELECT person_id, validity_type_id FROM validity)&lt;br /&gt;
  AND validity_type.experience_formula IS NULL&lt;br /&gt;
GROUP BY person.id, validity_type.id&lt;br /&gt;
ORDER BY pilot, validity_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users without up to date subscription=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
*year (Type: Year)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT &lt;br /&gt;
    last_name AS Nom, &lt;br /&gt;
    first_name AS prénom,&lt;br /&gt;
    email, &lt;br /&gt;
    home_phone AS tel_dommicile, &lt;br /&gt;
    work_phone AS tel_travail, &lt;br /&gt;
    cell_phone AS tel_mobile, &lt;br /&gt;
DATE_FORMAT(validity.expire_date,'%d/%m/%Y') AS date_cotisation&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND YEAR(validity.expire_date) &amp;lt; $year AND validity_type.id = '$validityTypeId'&lt;br /&gt;
ORDER BY last_name,first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users without an account=&lt;br /&gt;
&amp;lt;SQL&amp;gt;SELECT person.last_name, person.first_name FROM person&lt;br /&gt;
LEFT JOIN account ON account.owner_id=person.id&lt;br /&gt;
LEFT JOIN account_type ON account.account_type=account_type.id&lt;br /&gt;
WHERE person.activated=1 AND account.category=2 AND account_type.activated=1 AND account.activated=0&amp;lt;/SQL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Young users=&lt;br /&gt;
  &amp;lt;SQL&amp;gt;SELECT &lt;br /&gt;
    last_name AS Last_name,&lt;br /&gt;
    first_name AS First_name, &lt;br /&gt;
    DATE_FORMAT(birthdate ,'%m-%d-%Y') AS Birthdate, &lt;br /&gt;
    IF ( (sex = 0), 'Male', 'Female' ) AS sex&lt;br /&gt;
  FROM person&lt;br /&gt;
  WHERE ($year-YEAR(birthdate))&amp;lt;=21&amp;lt;/SQL&amp;gt;&lt;/div&gt;</summary>
		<author><name>Claratte</name></author>	</entry>

	</feed>