From 43f5194a772e20b37e1f94d111e82cf59e099c15 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 1 Apr 2006 02:07:58 +0000 Subject: [PATCH] =?UTF-8?q?Am=E9liorations=20diverses=20sur=20le=20module?= =?UTF-8?q?=20adh=E9rents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/adherents/adherent.class.php | 142 +++++++++++------- htdocs/adherents/fiche.php | 84 ++++++----- htdocs/adherents/index.php | 116 ++++++++------ htdocs/adherents/liste.php | 63 +++++--- htdocs/adherents/pre.inc.php | 58 +++---- .../menus/barre_left/eldy_backoffice.php | 1 + htdocs/langs/en_US/members.lang | 26 +++- htdocs/langs/fr_FR/members.lang | 30 +++- 8 files changed, 318 insertions(+), 202 deletions(-) diff --git a/htdocs/adherents/adherent.class.php b/htdocs/adherents/adherent.class.php index 2edc01505ab..3ef19357fcf 100644 --- a/htdocs/adherents/adherent.class.php +++ b/htdocs/adherents/adherent.class.php @@ -43,34 +43,35 @@ class Adherent { - var $id; - var $db; - var $prenom; - var $nom; - var $societe; - var $adresse; - var $cp; - var $ville; - var $pays_id; - var $pays_code; - var $pays; - var $morphy; - var $email; - var $public; - var $commentaire; - var $statut; - var $login; - var $pass; - var $naiss; - var $photo; - - var $typeid; // Id type adherent - var $type; // Libellé type adherent - - // var $public; - var $array_options; - - var $errorstr; + var $id; + var $db; + var $prenom; + var $nom; + var $societe; + var $adresse; + var $cp; + var $ville; + var $pays_id; + var $pays_code; + var $pays; + var $morphy; + var $email; + var $public; + var $commentaire; + var $statut; + var $login; + var $pass; + var $naiss; + var $photo; + + var $typeid; // Id type adherent + var $type; // Libellé type adherent + var $need_subscription; + + // var $public; + var $array_options; + + var $errorstr; /** \brief Adherent @@ -518,12 +519,13 @@ class Adherent { global $langs; - $sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, d.statut, d.public, d.adresse, d.cp, d.ville, d.note, d.email, d.login, d.pass, d.naiss, d.photo, d.fk_adherent_type, d.morphy, t.libelle as type"; - $sql .= ",".$this->db->pdate("d.datefin")." as datefin"; - $sql .= ", d.pays, p.rowid as pays_id, p.code as pays_code, p.libelle as pays_lib"; - $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p ON d.pays = p.rowid"; - $sql .= " WHERE d.rowid = ".$rowid." AND d.fk_adherent_type = t.rowid"; + $sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, d.statut, d.public, d.adresse, d.cp, d.ville, d.note, d.email, d.login, d.pass, d.naiss, d.photo, d.fk_adherent_type, d.morphy,"; + $sql.= " ".$this->db->pdate("d.datefin")." as datefin,"; + $sql.= " d.pays, p.rowid as pays_id, p.code as pays_code, p.libelle as pays_lib,"; + $sql.= " t.libelle as type, t.cotisation as cotisation"; + $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p ON d.pays = p.rowid"; + $sql.= " WHERE d.rowid = ".$rowid." AND d.fk_adherent_type = t.rowid"; $result=$this->db->query( $sql); if ($result) @@ -533,8 +535,6 @@ class Adherent $obj = $this->db->fetch_object($result); $this->id = $obj->rowid; - $this->typeid = $obj->fk_adherent_type; - $this->type = $obj->type; $this->statut = $obj->statut; $this->public = $obj->public; $this->date = $obj->datedon; @@ -558,6 +558,10 @@ class Adherent $this->datefin = $obj->datefin; $this->commentaire = stripslashes($obj->note); $this->morphy = $obj->morphy; + + $this->typeid = $obj->fk_adherent_type; + $this->type = $obj->type; + $this->need_subscription = ($obj->cotisation=='yes'?1:0); } } else @@ -1387,55 +1391,91 @@ class Adherent } /** - * \brief Retourne le libellé du statut d'un adhérent (brouillon, validé, résilié) - * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long - * \return string Libellé - */ + * \brief Retourne le libellé du statut d'un adhérent (brouillon, validé, résilié) + * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Picto + * \return string Libellé + */ function getLibStatut($mode=0) { - return $this->LibStatut($this->statut,$mode); + return $this->LibStatut($this->statut,$this->need_subscription,$this->datefin,$mode); } /** - * \brief Renvoi le libellé d'un statut donné - * \param statut id statut - * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long - * \return string Libellé + * \brief Renvoi le libellé d'un statut donné + * \param statut id statut + * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Picto + * \return string Libellé */ - function LibStatut($statut,$mode=0) + function LibStatut($statut,$need_subscription,$date_end_subscription,$mode=0) { global $langs; $langs->load("members"); if ($mode == 0) { if ($statut == -1) return $langs->trans("MemberStatusDraft"); - if ($statut == 1) return $langs->trans("MemberStatusActive"); + if ($statut == 1) + { + if (! $date_end_subscription) return $langs->trans("MemberStatusActive"); + elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLate"); + else return $langs->trans("MemberStatusPayed"); + } if ($statut == 0) return $langs->trans("MemberStatusResiliated"); } if ($mode == 1) { if ($statut == -1) return $langs->trans("MemberStatusDraft"); - if ($statut == 1) return $langs->trans("MemberStatusActive"); + if ($statut == 1) + { + if (! $date_end_subscription) return $langs->trans("MemberStatusActiveShort"); + elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLateShort"); + else return $langs->trans("MemberStatusPayedShort"); + } if ($statut == 0) return $langs->trans("MemberStatusResiliated"); } if ($mode == 2) { if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraft"); - if ($statut == 1) return img_picto($langs->trans('MemberStatusActive'),'statut4').' '.$langs->trans("MemberStatusActive"); + if ($statut == 1) + { + if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActiveShort"); + elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLateShort"); + else return img_picto($langs->trans('MemberStatusPayed'),'statut4').' '.$langs->trans("MemberStatusPayedShort"); + } if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliated"); } if ($mode == 3) { if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0'); - if ($statut == 1) return img_picto($langs->trans('MemberStatusActive'),'statut4'); + if ($statut == 1) + { + if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1'); + elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3'); + else return img_picto($langs->trans('MemberStatusPayed'),'statut4'); + } if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5'); } if ($mode == 4) { if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraft"); - if ($statut == 1) return img_picto($langs->trans('MemberStatusActive'),'statut4').' '.$langs->trans("MemberStatusActive"); + if ($statut == 1) + { + if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActive"); + elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLate"); + else return img_picto($langs->trans('MemberStatusPayed'),'statut4').' '.$langs->trans("MemberStatusPayed"); + } if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliated"); } + if ($mode == 5) + { + if ($statut == -1) return $langs->trans("MemberStatusDraft").' '.img_picto($langs->trans('MemberStatusDraft'),'statut0'); + if ($statut == 1) + { + if (! $date_end_subscription) return $langs->trans("MemberStatusActive").' '.img_picto($langs->trans('MemberStatusActive'),'statut1'); + elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLate").' '.img_picto($langs->trans('MemberStatusActiveLate'),'statut3'); + else return $langs->trans("MemberStatusPayed").' '.img_picto($langs->trans('MemberStatusPayed'),'statut4'); + } + if ($statut == 0) return $langs->trans("MemberStatusResiliated").' '.img_picto($langs->trans('MemberStatusResiliated'),'statut5'); + } } diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index 170cb7523f9..0138bb7f133 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -463,11 +463,11 @@ if ($action == 'edit') $h = 0; $head[$h][0] = DOL_URL_ROOT.'/adherents/fiche.php?rowid='.$rowid; - $head[$h][1] = $langs->trans("MemberCard"); + $head[$h][1] = $langs->trans("Card"); $hselected=$h; $h++; - dolibarr_fiche_head($head, $hselected, $adh->fullname); + dolibarr_fiche_head($head, $hselected, $langs->trans("MemberCard")); print '
'; @@ -480,29 +480,32 @@ if ($action == 'edit') $htmls = new Form($db); - - print ''.$langs->trans("Type").''; - $htmls->select_array("type", $adht->liste_array(), $adh->typeid); - print ""; - + // Nom + print ''.$langs->trans("Name").''; print ''.$langs->trans("Comments").''; - - $morphys["phy"] = $langs->trans("Physical"); - $morphys["mor"] = $langs->trans("Morale"); - - print "".$langs->trans("Person").""; - $htmls->select_array("morphy", $morphys, $adh->morphy); - print ""; - + + // Prenom + print ''.$langs->trans("Firstname").''; $rowspan=13; print ''; print ''; - print ''.$langs->trans("Firstname").''; + // Type + print ''.$langs->trans("Type").''; + $htmls->select_array("type", $adht->liste_array(), $adh->typeid); + print ""; - print ''.$langs->trans("Name").''; + // Physique-Moral + $morphys["phy"] = $langs->trans("Physical"); + $morphys["mor"] = $langs->trans("Morale"); + print "".$langs->trans("Person").""; + $htmls->select_array("morphy", $morphys, $adh->morphy); + print ""; + // Société print ''.$langs->trans("Company").''; + + // Adresse print ''.$langs->trans("Address").''; print ''; print ''.$langs->trans("Zip").'/'.$langs->trans("Town").' '; @@ -546,12 +549,21 @@ if ($action == 'create') $adht = new AdherentType($db); print_titre($langs->trans("NewMember")); + print "\n"; print ''; print ''; - print ''; + print ''; + + print ''; + $rowspan=12; + print ''; + + // Type + print '\n"; - print ''; + // Moral-Physique $morphys["phy"] = "Physique"; $morphys["mor"] = "Morale"; - - print "\n"; - $rowspan=12; - print ''; - - print ''; - print ''; print ''; print ''; @@ -657,11 +663,11 @@ if ($rowid && $action != 'edit') $h = 0; $head[$h][0] = DOL_URL_ROOT.'/adherents/fiche.php?rowid='.$rowid; - $head[$h][1] = $langs->trans("MemberCard"); + $head[$h][1] = $langs->trans("Card"); $hselected=$h; $h++; - dolibarr_fiche_head($head, $hselected, $adh->fullname); + dolibarr_fiche_head($head, $hselected, $langs->trans("MemberCard")); // Confirmation de la suppression de l'adhérent if ($action == 'delete') @@ -725,25 +731,23 @@ if ($rowid && $action != 'edit') print '
'.$langs->trans("MemberType").''; + print '
'.$langs->trans("Lastname").'*'.$langs->trans("Comments").' :
'.$langs->trans("Firstname").'*
'.$langs->trans("MemberType").'*'; $listetype=$adht->liste_array(); if (sizeof($listetype)) { $htmls->select_array("type", $listetype, $typeid); @@ -560,20 +572,14 @@ if ($action == 'create') } print "'.$langs->trans("Comments").' :
".$langs->trans("Person")."\n"; + print "
".$langs->trans("Person")."*\n"; $htmls->select_array("morphy", $morphys); print "
'.$langs->trans("Firstname").'*
'.$langs->trans("Lastname").'*
'.$langs->trans("Company").'
'.$langs->trans("Address").''; print '
'; print ''; - print ''; - print ''; + print ''; - print '\n"; + print ''; + print ''; - print ''; + print ''; - print ''; - - print ''; - - print ''; + print '\n"; + print ''; print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; // print ''; print ''; @@ -794,7 +798,7 @@ if ($rowid && $action != 'edit') } // Action Glasnost - if ($adht->vote == 'yes' && defined("ADHERENT_USE_GLASNOST") && ADHERENT_USE_GLASNOST ==1) + if ($adht->vote == 'yes' && $conf->global->ADHERENT_USE_GLASNOST) { define("XMLRPC_DEBUG", 1); $isinglasnost=$adh->is_in_glasnost(); @@ -811,7 +815,7 @@ if ($rowid && $action != 'edit') } // Action SPIP - if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1) + if ($conf->global->ADHERENT_USE_SPIP) { $isinspip=$adh->is_in_spip(); if ($isinspip == 1) diff --git a/htdocs/adherents/index.php b/htdocs/adherents/index.php index b0db204f6b9..00adb79ec1f 100644 --- a/htdocs/adherents/index.php +++ b/htdocs/adherents/index.php @@ -27,8 +27,10 @@ \brief Page accueil module adherents */ - require("./pre.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php"); +require_once(DOL_DOCUMENT_ROOT."/adherents/adherent_type.class.php"); + $langs->load("companies"); $langs->load("members"); @@ -36,6 +38,7 @@ $langs->load("members"); llxHeader(); +$staticmember=new Adherent($db); print_fiche_titre($langs->trans("MembersArea")); @@ -49,7 +52,7 @@ print '
'.$langs->trans("Ref").''.$adh->id.' '.$langs->trans("Comments").'
'.$langs->trans("Ref").''.$adh->id.' 
'.$langs->trans("Type").'*'.$adh->type."
'.$langs->trans("Lastname").'*'.$adh->nom.' '.$langs->trans("Comments").'
'; + print '
'.$langs->trans("Firstname").'*'.$adh->prenom.' '; print nl2br($adh->commentaire).' 
'.$langs->trans("Person").''.$adh->getmorphylib().' 
'.$langs->trans("Firstname").'*'.$adh->prenom.' 
'.$langs->trans("Lastname").'*'.$adh->nom.' 
'.$langs->trans("Type").'*'.$adh->type."
'.$langs->trans("Person").''.$adh->getmorphylib().'
'.$langs->trans("Company").''.$adh->societe.' 
'.$langs->trans("Address").''.nl2br($adh->adresse).' 
'.$langs->trans("Zip").' / '.$langs->trans("Town").''.$adh->cp.' '.$adh->ville.' 
'.$langs->trans("Country").''.$adh->pays.'
'.$langs->trans("EMail").(ADHERENT_MAIL_REQUIRED&&ADHERENT_MAIL_REQUIRED==1?'*':'').''.$adh->email.' 
'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').''.$adh->email.' 
'.$langs->trans("Login").'*'.$adh->login.' 
Pass'.$adh->pass.' 
'.$langs->trans("Birthday").''.$adh->naiss.' 
'; print ''; print ''; print ''; -print ''; +print ''; print ''; print ''; print "\n"; @@ -57,44 +60,56 @@ print "\n"; $var=True; -$AdherentsAll=array(); $Adherents=array(); $AdherentsAValider=array(); $AdherentsResilies=array(); $Cotisants=array(); # Liste les adherents -$sql = "SELECT count(*) as somme , t.rowid, t.libelle, d.statut"; +$sql = "SELECT count(*) as somme , t.rowid, t.libelle, t.cotisation, d.statut"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t"; $sql .= " WHERE d.fk_adherent_type = t.rowid"; -$sql .= " GROUP BY t.libelle, d.statut"; +$sql .= " GROUP BY t.rowid, t.libelle, t.cotisation, d.statut"; $result = $db->query($sql); -if ($result) +if ($result) { - $num = $db->num_rows($result); - $i = 0; - while ($i < $num) - { - $objp = $db->fetch_object($result); - $AdherentsAll[$objp->libelle]=$objp->rowid; - if ($objp->statut == -1) { $AdherentsAValider[$objp->libelle]=$objp->somme; } - if ($objp->statut == 1) { $Adherents[$objp->libelle]=$objp->somme; } - if ($objp->statut == 0) { $AdherentsResilies[$objp->libelle]=$objp->somme; } - $i++; - } - $db->free($result); + $num = $db->num_rows($result); + $i = 0; + while ($i < $num) + { + $objp = $db->fetch_object($result); + $adhtype=new AdherentType($db); + $adhtype->id=$objp->rowid; + $adhtype->cotisation=$objp->cotisation; + $adhtype->libelle=$objp->libelle; + $AdherentType[$objp->rowid]=$adhtype; + + if ($objp->statut == -1) { $AdherentsAValider[$objp->rowid]=$objp->somme; } + if ($objp->statut == 1) { $Adherents[$objp->rowid]=$objp->somme; } + if ($objp->statut == 0) { $AdherentsResilies[$objp->rowid]=$objp->somme; } + + if ($objp->cotisation != 'yes') + { + $Cotisants[$objp->rowid]=$Adherents[$objp->rowid]=$objp->somme; + } + else + { + $Cotisants[$objp->rowid]=0; // Calculé plus loin + } + $i++; + } + $db->free($result); } # Liste les cotisants a jour -$sql = "SELECT count(*) as somme , t.libelle"; -$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t"; -$sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1 AND d.datefin >= now()"; -$sql .= " GROUP BY t.libelle"; +$sql = "SELECT count(*) as somme , d.fk_adherent_type"; +$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d"; +$sql.= " WHERE d.statut = 1 AND d.datefin >= now()"; +$sql.= " GROUP BY d.fk_adherent_type"; $result = $db->query($sql); - if ($result) { $num = $db->num_rows($result); @@ -102,7 +117,7 @@ if ($result) while ($i < $num) { $objp = $db->fetch_object($result); - $Cotisants[$objp->libelle]=$objp->somme; + $Cotisants[$objp->fk_adherent_type]=$objp->somme; $i++; } $db->free(); @@ -113,26 +128,27 @@ $SommeB=0; $SommeC=0; $SommeD=0; -foreach ($AdherentsAll as $key=>$value){ - $var=!$var; - print ""; - print ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; - $SommeA+=isset($AdherentsAValider[$key])?$AdherentsAValider[$key]:0; - $SommeB+=isset($Adherents[$key])?$Adherents[$key]:0; - $SommeC+=isset($Cotisants[$key])?$Cotisants[$key]:0; - $SommeD+=isset($AdherentsResilies[$key])?$AdherentsResilies[$key]:0; +foreach ($AdherentType as $key => $adhtype) +{ + $var=!$var; + print ""; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; + $SommeA+=isset($AdherentsAValider[$key])?$AdherentsAValider[$key]:0; + $SommeB+=isset($Adherents[$key])?$Adherents[$key]-$Cotisants[$key]:0; + $SommeC+=isset($Cotisants[$key])?$Cotisants[$key]:0; + $SommeD+=isset($AdherentsResilies[$key])?$AdherentsResilies[$key]:0; } print ''; print ''; -print ''; -print ''; -print ''; -print ''; +print ''; +print ''; +print ''; +print ''; print ''; print "
'.$langs->trans("Type").''.$langs->trans("MembersStatusToValid").''.$langs->trans("MembersStatusValidated").''.$langs->trans("MembersStatusNotPayed").''.$langs->trans("MembersStatusPayed").''.$langs->trans("MembersStatusResiliated").'
'.img_object($langs->trans("ShowType"),"group").' '.$key.''.(isset($AdherentsAValider[$key])?$AdherentsAValider[$key]:'').''.(isset($Adherents[$key])?$Adherents[$key]:'').''.(isset($Cotisants[$key])?$Cotisants[$key]:'').''.(isset($AdherentsResilies[$key])?$AdherentsResilies[$key]:'').'
'.img_object($langs->trans("ShowType"),"group").' '.$adhtype->libelle.''.(isset($AdherentsAValider[$key])?$AdherentsAValider[$key]:'').' '.$staticmember->LibStatut(-1,$adhtype->cotisation,0,3).''.(isset($Adherents[$key])?$Adherents[$key]-$Cotisants[$key]:'').' '.$staticmember->LibStatut(1,$adhtype->cotisation,0,3).''.(isset($Cotisants[$key])?$Cotisants[$key]:'').' '.$staticmember->LibStatut(1,$adhtype->cotisation,mktime(),3).''.(isset($AdherentsResilies[$key])?$AdherentsResilies[$key]:'').' '.$staticmember->LibStatut(0,$adhtype->cotisation,0,3).'
'.$langs->trans("Total").' '.$SommeA.''.$SommeB.''.$SommeC.''.$SommeD.''.$SommeA.' '.$staticmember->LibStatut(-1,$adhtype->cotisation,0,3).''.$SommeB.' '.$staticmember->LibStatut(1,$adhtype->cotisation,0,3).''.$SommeC.' '.$staticmember->LibStatut(1,$adhtype->cotisation,mktime(),3).''.$SommeD.' '.$staticmember->LibStatut(0,$adhtype->cotisation,0,3).'
\n"; @@ -166,18 +182,19 @@ print "
"; print ''; - -$sql = "SELECT c.cotisation, ".$db->pdate("c.dateadh")." as dateadh"; -$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."cotisation as c"; -$sql.= " WHERE d.rowid = c.fk_adherent"; -if(isset($date_select) && $date_select != ''){ - $sql .= " AND dateadh LIKE '$date_select%'"; -} -$result = $db->query($sql); $Total=array(); $Number=array(); $tot=0; $numb=0; + +$sql = "SELECT c.cotisation, ".$db->pdate("c.dateadh")." as dateadh"; +$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."cotisation as c"; +$sql.= " WHERE d.rowid = c.fk_adherent"; +if(isset($date_select) && $date_select != '') +{ + $sql .= " AND dateadh LIKE '$date_select%'"; +} +$result = $db->query($sql); if ($result) { $num = $db->num_rows($result); @@ -203,6 +220,7 @@ print ''.$langs->trans("Average").''; print "\n"; $var=true; +krsort($Total); foreach ($Total as $key=>$value) { $var=!$var; diff --git a/htdocs/adherents/liste.php b/htdocs/adherents/liste.php index 531e4dee42d..a6f6f42ab03 100644 --- a/htdocs/adherents/liste.php +++ b/htdocs/adherents/liste.php @@ -29,9 +29,14 @@ */ require("./pre.inc.php"); - require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php"); +$langs->load("members"); + + +/* + * Affiche liste + */ llxHeader(); @@ -75,9 +80,14 @@ if ( $_POST["action"] == 'search') $sql.= " AND (d.prenom LIKE '%".$_POST['search']."%' OR d.nom LIKE '%".$_POST['search']."%')"; } } -if ($filter == 'uptodate') { +if ($filter == 'uptodate') +{ $sql.=" AND datefin >= sysdate()"; } +if ($filter == 'outofdate') +{ + $sql.=" AND datefin < sysdate()"; +} $sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit, $offset); $result = $db->query($sql); @@ -91,7 +101,9 @@ if ($result) { if ($statut == '-1,1') { $titre=$langs->trans("MembersListQualified"); } if ($statut == '-1') { $titre=$langs->trans("MembersListToValid"); } - if ($statut == '1') { $titre=$langs->trans("MembersListValid"); } + if ($statut == '1' && ! $filter) { $titre=$langs->trans("MembersListValid"); } + if ($statut == '1' && $filter=='uptodate') { $titre=$langs->trans("MembersListUpToDate"); } + if ($statut == '1' && $filter=='outofdate') { $titre=$langs->trans("MembersListNotUpToDate"); } if ($statut == '0') { $titre=$langs->trans("MembersListResiliated"); } } elseif ($_POST["action"] == 'search') { @@ -110,12 +122,12 @@ if ($result) $param="&page=$page".(isset($_GET["statut"])?"&statut=$statut":""); print ''; print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),"liste.php","d.nom",$param,"","",$sortfield); - print_liste_field_titre($langs->trans("EndSubscription"),"liste.php","t.cotisation",$param,"","",$sortfield); - print_liste_field_titre($langs->trans("EMail"),"liste.php","d.email",$param,"","",$sortfield); print_liste_field_titre($langs->trans("Type"),"liste.php","t.libelle",$param,"","",$sortfield); + print_liste_field_titre($langs->trans("EMail"),"liste.php","d.email",$param,"","",$sortfield); print_liste_field_titre($langs->trans("Person"),"liste.php","d.morphy",$param,"","",$sortfield); print_liste_field_titre($langs->trans("Status"),"liste.php","d.statut",$param,"","",$sortfield); - print "".$langs->trans("Action")."\n"; + print_liste_field_titre($langs->trans("EndSubscription"),"liste.php","t.cotisation",$param,"","",$sortfield); + print ''.$langs->trans("Action")."\n"; print "\n"; $var=True; @@ -130,6 +142,7 @@ if ($result) $adh=new Adherent($db); + // Nom $var=!$var; print ""; if ($objp->societe != '') @@ -140,12 +153,28 @@ if ($result) { print "rowid\">".img_object($langs->trans("ShowAdherent"),"user").' '.stripslashes($objp->prenom)." ".stripslashes($objp->nom)."\n"; } + + // Type + print ''.img_object($langs->trans("ShowType"),"group").' '.$objp->type.''; + + // Moral/Physique + print "".$adh->getmorphylib($objp->morphy)."\n"; + + // EMail + print "$objp->email\n"; + + // Statut + print ""; + print $adh->LibStatut($objp->statut,$objp->cotisation,$objp->datefin,4); + print ""; + + // Date fin cotisation print ""; if ($objp->cotisation == 'yes') { if ($objp->datefin) { - if ($objp->datefin < time() && $objp->statut != 0) + if ($objp->datefin < time() && $objp->statut > 0) { print dolibarr_print_date($objp->datefin)." - ".$langs->trans("SubscriptionLate")." ".img_warning()."\n"; } @@ -156,7 +185,7 @@ if ($result) } else { print $langs->trans("SubscriptionNotReceived"); - if ($objp->statut != 0) print " ".img_warning(); + if ($objp->statut > 0) print " ".img_warning(); print "\n"; } } @@ -165,25 +194,19 @@ if ($result) print " "; } - print "$objp->email\n"; - print ''.img_object($langs->trans("ShowType"),"group").' '.$objp->type.''; - print "".$adh->getmorphylib($objp->morphy)."\n"; + // Actions + print ''; + print "rowid&action=edit&return=liste.php\">".img_edit()." "; + print "rowid&action=resign&return=liste.php\">".img_disable($langs->trans("Resiliate")).""; + print "\n"; - // Statut - print ""; - print $adh->LibStatut($objp->statut,4); - print ""; - - print "rowid&action=edit\">".img_edit()."   "; - print "rowid&action=resign\">".img_disable($langs->trans("Resiliate"))."   rowid&action=delete\">".img_delete()."\n"; print ""; $i++; } print "
\n"; + print ""; - print_barre_liste("", $page, "liste.php", "&statut=$statut&sortorder=$sortorder&sortfield=$sortfield",$sortfield,$sortorder,'',$num); - print "

\n"; } else diff --git a/htdocs/adherents/pre.inc.php b/htdocs/adherents/pre.inc.php index 8301212b7be..c5aeecc5106 100644 --- a/htdocs/adherents/pre.inc.php +++ b/htdocs/adherents/pre.inc.php @@ -28,43 +28,45 @@ require("../main.inc.php"); -function llxHeader($head = "") { - global $user, $conf, $langs; +function llxHeader($head = "") +{ + global $user, $conf, $langs; - $langs->load("members"); - - top_menu($head); + $langs->load("members"); - $menu = new Menu(); + top_menu($head); + + $menu = new Menu(); - $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Members")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/fiche.php?action=create",$langs->trans("NewMember")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php",$langs->trans("List")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=-1",$langs->trans("MenuMembersToValidate")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1",$langs->trans("MenuMembersValidated")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1&filter=uptodate",$langs->trans("MenuMembersUpToDate")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=0",$langs->trans("MenuMembersResiliated")); + $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Members")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/fiche.php?action=create",$langs->trans("NewMember")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php",$langs->trans("List")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=-1",$langs->trans("MenuMembersToValidate")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1",$langs->trans("MenuMembersValidated")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1&filter=outofdate",$langs->trans("MenuMembersNotUpToDate")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1&filter=uptodate",$langs->trans("MenuMembersUpToDate")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=0",$langs->trans("MenuMembersResiliated")); - $menu->add(DOL_URL_ROOT."/public/adherents/index.php?leftmenu=member_public",$langs->trans("MemberPublicLinks")); + $menu->add(DOL_URL_ROOT."/public/adherents/index.php?leftmenu=member_public",$langs->trans("MemberPublicLinks")); - $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Exports")); - $menu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php",$langs->trans("Filehtpasswd")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php",$langs->trans("MembersCards")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php","Etiquettes d'adhérents"); + $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Exports")); + $menu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php",$langs->trans("Filehtpasswd")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php",$langs->trans("MembersCards")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php","Etiquettes d'adhérents"); - $langs->load("compta"); - $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Accountancy")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/cotisations.php",$langs->trans("Subscriptions")); - $langs->load("banks"); - $menu->add_submenu(DOL_URL_ROOT."/compta/bank/",$langs->trans("Banks")); + $langs->load("compta"); + $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Accountancy")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/cotisations.php",$langs->trans("Subscriptions")); + $langs->load("banks"); + $menu->add_submenu(DOL_URL_ROOT."/compta/bank/",$langs->trans("Banks")); - $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Setup")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/type.php",$langs->trans("MembersTypes")); - $menu->add_submenu(DOL_URL_ROOT."/adherents/options.php",$langs->trans("MembersAttributes")); + $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Setup")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/type.php",$langs->trans("MembersTypes")); + $menu->add_submenu(DOL_URL_ROOT."/adherents/options.php",$langs->trans("MembersAttributes")); - left_menu($menu->liste); + left_menu($menu->liste); } diff --git a/htdocs/includes/menus/barre_left/eldy_backoffice.php b/htdocs/includes/menus/barre_left/eldy_backoffice.php index b3af62e248d..f85b4e5c2c4 100644 --- a/htdocs/includes/menus/barre_left/eldy_backoffice.php +++ b/htdocs/includes/menus/barre_left/eldy_backoffice.php @@ -601,6 +601,7 @@ class MenuLeft { $newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php",$langs->trans("List"),1,$user->rights->adherent->lire); $newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=-1",$langs->trans("MenuMembersToValidate"),1,$user->rights->adherent->lire); $newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1",$langs->trans("MenuMembersValidated"),1,$user->rights->adherent->lire); + $newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1&filter=outofdate",$langs->trans("MenuMembersNotUpToDate"),1,$user->rights->adherent->lire); $newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1&filter=uptodate",$langs->trans("MenuMembersUpToDate"),1,$user->rights->adherent->lire); $newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=0",$langs->trans("MenuMembersResiliated"),1,$user->rights->adherent->lire); diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index baba7e39eea..382899a7428 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -10,13 +10,16 @@ Person=Person ErrorMemberTypeNotDefined=Member type not defined MembersCards=Members print cards MembersList=List of members -MembersListToValid=List of members to be validated +MembersListToValid=List of draft members (to be validated) MembersListValid=List of valid members +MembersListUpToDate=List of valid members with up to date subscription +MembersListNotUpToDate=List of valid members with subscription out of date MembersListResiliated=List of resiliated members MembersListQualified=List of qualified members -MenuMembersToValidate=Members to validate +MenuMembersToValidate=Draft members MenuMembersValidated=Validated members MenuMembersUpToDate=Up to date members +MenuMembersNotUpToDate=Out of date members MenuMembersResiliated=Resiliated members DateAbonment=Subscription date DateSubscription=Subscription date @@ -32,13 +35,24 @@ MembersTypes=Members types MembersAttributes=Members attributes SearchAMember=Search a member MemberStatusDraft=Draft (need to be validated) -MemberStatusShortDraft=To validate +MemberStatusDraftShort=To validate MemberStatusActive=Validated -MemberStatusResiliated=Resiliated -MembersStatusToValid=Members to valid +MemberStatusActiveShort=Validated +MemberStatusActiveLate=subscription expired +MemberStatusActiveLateShort=Expired +MemberStatusPayed=Subscription up to date +MemberStatusPayedShort=Up to date +MemberStatusResiliated=Resiliated member +MemberStatusResiliatedShort=Resiliated +MembersStatusToValid=Draft members +MembersStatusToValidShort=Draft members MembersStatusValidated=Members validated -MembersStatusPayed=Subscription done +MembersStatusPayed=Subscription up to date +MembersStatusPayedShort=Up to date +MembersStatusNotPayed=Subscription out of date +MembersStatusNotPayedShort=Out of date MembersStatusResiliated=Members resiliated +MembersStatusResiliatedShort=Members resiliated NewCotisation=New cotisation EditMember=Edit member SubscriptionEndDate=Subscription end date diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 4db794d04b5..d312f2a12ac 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -10,13 +10,16 @@ Person=Personne ErrorMemberTypeNotDefined=Le type d'adhérent n'est pas choisi MembersCards=Cartes des adhérents MembersList=Liste des adhérents -MembersListToValid=Liste des adhérents à valider +MembersListToValid=Liste des adhérents brouillons (à valider) MembersListValid=Liste des adhérents valides +MembersListUpToDate=Liste des adhérents valides à jour de cotisation +MembersListNotUpToDate=Liste des adhérents valides non à jour de cotisation MembersListResiliated=Liste des adhérents résiliés MembersListQualified=Liste des adhérents qualifiés -MenuMembersToValidate=Adhérents à valider -MenuMembersValidated=Adhérents validés +MenuMembersToValidate=Adhérents brouillons +MenuMembersValidated=Adhérents valides MenuMembersUpToDate=Adhérents à jour +MenuMembersNotUpToDate=Adhérents non à jour MenuMembersResiliated=Adhérents résiliés DateAbonment=Date cotisation DateSubscription=Date cotisation @@ -32,13 +35,24 @@ MembersTypes=Types d'adh MembersAttributes=Attributs adhérents SearchAMember=Rechercher un membre MemberStatusDraft=Brouillon (à valider) -MemberStatusShortDraft=A valider -MemberStatusActive=Validé -MemberStatusResiliated=Résilié -MembersStatusToValid=Adhérent à valider +MemberStatusDraftShort=A valider +MemberStatusActive=Validé (non cotisé) +MemberStatusActiveShort=Validé +MemberStatusActiveLate=Cotisation non à jour +MemberStatusActiveLateShort=Non à jour +MemberStatusPayed=Cotisation à jour +MemberStatusPayedShort=A jour +MemberStatusResiliated=Adhérent résilié +MemberStatusResiliatedShort=Résilié +MembersStatusToValid=Adhérents brouillons +MembersStatusToValidShort=Adhérents brouillons MembersStatusValidated=Adhérents validés -MembersStatusPayed=Cotisation à jour +MembersStatusPayed=Cotisations à jour +MembersStatusPayedShort=A jour +MembersStatusNotPayed=Cotisations non à jour +MembersStatusNotPayedShort=Non à jour MembersStatusResiliated=Adhérents résiliés +MembersStatusResiliatedShort=Adhérents résiliés NewCotisation=Nouvelle adhésion EditMember=Édition adhérent SubscriptionEndDate=Date de fin adhésion