30 require
'../main.inc.php';
31 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
32 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent_type.class.php';
33 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/subscription.class.php';
34 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
39 $hookmanager->initHooks(array(
'membersindex'));
42 $langs->loadLangs(array(
"companies",
"members"));
54 require_once DOL_DOCUMENT_ROOT.
'/core/class/infobox.class.php';
55 $zone =
GETPOST(
'areacode',
'int');
56 $userid =
GETPOST(
'userid',
'int');
57 $boxorder =
GETPOST(
'boxorder',
'aZ09');
58 $boxorder .=
GETPOST(
'boxcombo',
'aZ09');
75 llxHeader(
'', $langs->trans(
"Members"),
'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros');
81 print
load_fiche_titre($langs->trans(
"MembersArea"), $resultboxes[
'selectboxlist'],
'members');
83 $MembersValidated = array();
84 $MembersToValidate = array();
85 $MembersUpToDate = array();
86 $MembersExcluded = array();
87 $MembersResiliated = array();
89 $AdherentType = array();
92 $sql =
"SELECT t.rowid, t.libelle as label, t.subscription,";
93 $sql .=
" d.statut, count(d.rowid) as somme";
94 $sql .=
" FROM ".MAIN_DB_PREFIX.
"adherent_type as t";
95 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"adherent as d";
96 $sql .=
" ON t.rowid = d.fk_adherent_type";
97 $sql .=
" AND d.entity IN (".getEntity(
'adherent').
")";
98 $sql .=
" WHERE t.entity IN (".getEntity(
'member_type').
")";
99 $sql .=
" GROUP BY t.rowid, t.libelle, t.subscription, d.statut";
101 dol_syslog(
"index.php::select nb of members per type", LOG_DEBUG);
102 $resql = $db->query($sql);
104 $num = $db->num_rows(
$resql);
107 $objp = $db->fetch_object(
$resql);
110 $adhtype->id = $objp->rowid;
111 $adhtype->subscription = $objp->subscription;
112 $adhtype->label = $objp->label;
113 $AdherentType[$objp->rowid] = $adhtype;
115 if ($objp->statut == -1) {
116 $MembersToValidate[$objp->rowid] = $objp->somme;
118 if ($objp->statut == 1) {
119 $MembersValidated[$objp->rowid] = $objp->somme;
121 if ($objp->statut == -2) {
122 $MembersExcluded[$objp->rowid] = $objp->somme;
124 if ($objp->statut == 0) {
125 $MembersResiliated[$objp->rowid] = $objp->somme;
138 $sql =
"SELECT count(*) as somme , d.fk_adherent_type";
139 $sql .=
" FROM ".MAIN_DB_PREFIX.
"adherent as d, ".MAIN_DB_PREFIX.
"adherent_type as t";
140 $sql .=
" WHERE d.entity IN (".getEntity(
'adherent').
")";
141 $sql .=
" AND d.statut = 1 AND (d.datefin >= '".$db->idate($now).
"' OR t.subscription = 0)";
142 $sql .=
" AND t.rowid = d.fk_adherent_type";
143 $sql .=
" GROUP BY d.fk_adherent_type";
145 dol_syslog(
"index.php::select nb of uptodate members by type", LOG_DEBUG);
146 $resql = $db->query($sql);
148 $num = $db->num_rows(
$resql);
151 $objp = $db->fetch_object(
$resql);
152 $MembersUpToDate[$objp->fk_adherent_type] = $objp->somme;
163 if ($conf->use_javascript_ajax) {
164 $boxgraph .=
'<div class="div-table-responsive-no-min">';
165 $boxgraph .=
'<table class="noborder nohover centpercent">';
166 $boxgraph .=
'<tr class="liste_titre"><th colspan="2">'.$langs->trans(
"Statistics").
'</th></tr>';
167 $boxgraph .=
'<tr><td class="center" colspan="2">';
178 foreach ($AdherentType as $key => $adhtype) {
179 $dataval[
'draft'][] = array($i, isset($MembersToValidate[$key]) ? $MembersToValidate[$key] : 0);
180 $dataval[
'uptodate'][] = array($i, isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0);
181 $dataval[
'notuptodate'][] = array($i, isset($MembersValidated[$key]) ? $MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) : 0);
182 $dataval[
'excluded'][] = array($i, isset($MembersExcluded[$key]) ? $MembersExcluded[$key] : 0);
183 $dataval[
'resiliated'][] = array($i, isset($MembersResiliated[$key]) ? $MembersResiliated[$key] : 0);
185 $SumToValidate += isset($MembersToValidate[$key]) ? $MembersToValidate[$key] : 0;
186 $SumValidated += isset($MembersValidated[$key]) ? $MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) : 0;
187 $SumUpToDate += isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0;
188 $SumExcluded += isset($MembersExcluded[$key]) ? $MembersExcluded [$key] : 0;
189 $SumResiliated += isset($MembersResiliated[$key]) ? $MembersResiliated[$key] : 0;
192 $total = $SumToValidate + $SumValidated + $SumUpToDate + $SumExcluded + $SumResiliated;
193 $dataseries = array();
194 $dataseries[] = array($langs->transnoentitiesnoconv(
"MembersStatusToValid"), round($SumToValidate));
195 $dataseries[] = array($langs->transnoentitiesnoconv(
"UpToDate"), round($SumUpToDate));
196 $dataseries[] = array($langs->transnoentitiesnoconv(
"OutOfDate"), round($SumValidated));
197 $dataseries[] = array($langs->transnoentitiesnoconv(
"MembersStatusExcluded"), round($SumExcluded));
198 $dataseries[] = array($langs->transnoentitiesnoconv(
"MembersStatusResiliated"), round($SumResiliated));
200 include DOL_DOCUMENT_ROOT.
'/theme/'.$conf->theme.
'/theme_vars.inc.php';
202 include_once DOL_DOCUMENT_ROOT.
'/core/class/dolgraph.class.php';
204 $dolgraph->SetData($dataseries);
205 $dolgraph->SetDataColor(array(
'-'.$badgeStatus0, $badgeStatus4,
'-'.$badgeStatus1,
'-'.$badgeStatus8, $badgeStatus6));
206 $dolgraph->setShowLegend(2);
207 $dolgraph->setShowPercent(1);
208 $dolgraph->SetType(array(
'pie'));
209 $dolgraph->setHeight(
'200');
210 $dolgraph->draw(
'idgraphstatus');
211 $boxgraph .=$dolgraph->show($total ? 0 : 1);
213 $boxgraph .=
'</td></tr>';
214 $boxgraph .=
'<tr class="liste_total"><td>'.$langs->trans(
"Total").
'</td><td class="right">';
215 $boxgraph .= $SumToValidate + $SumValidated + $SumUpToDate + $SumExcluded + $SumResiliated;
216 $boxgraph .=
'</td></tr>';
217 $boxgraph .=
'</table>';
218 $boxgraph .=
'</div>';
223 print
'<div class="clearboth"></div>';
224 print
'<div class="fichecenter fichecenterbis">';
226 print
'<div class="twocolumns">';
228 print
'<div class="firstcolumn fichehalfleft boxhalfleft" id="boxhalfleft">';
232 print $resultboxes[
'boxlista'];
236 print
'<div class="secondcolumn fichehalfright boxhalfright" id="boxhalfright">';
238 print $resultboxes[
'boxlistb'];
245 $parameters = array(
'user' => $user);
246 $reshook = $hookmanager->executeHooks(
'dashboardMembers', $parameters, $object);