Amliorations diverses sur le module adhrents

This commit is contained in:
Laurent Destailleur 2006-04-01 02:07:58 +00:00
parent 915c67dc2e
commit 43f5194a77
8 changed files with 318 additions and 202 deletions

View File

@ -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');
}
}

View File

@ -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 '<form name="update" action="'.$_SERVER["PHP_SELF"].'" method="post">';
@ -480,29 +480,32 @@ if ($action == 'edit')
$htmls = new Form($db);
print '<tr><td>'.$langs->trans("Type").'</td><td>';
$htmls->select_array("type", $adht->liste_array(), $adh->typeid);
print "</td>";
// Nom
print '<tr><td>'.$langs->trans("Name").'</td><td><input type="text" name="nom" size="40" value="'.$adh->nom.'"></td>';
print '<td valign="top" width="50%">'.$langs->trans("Comments").'</td></tr>';
$morphys["phy"] = $langs->trans("Physical");
$morphys["mor"] = $langs->trans("Morale");
print "<tr><td>".$langs->trans("Person")."</td><td>";
$htmls->select_array("morphy", $morphys, $adh->morphy);
print "</td>";
// Prenom
print '<tr><td width="15%">'.$langs->trans("Firstname").'</td><td width="35%"><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td>';
$rowspan=13;
print '<td rowspan="'.$rowspan.'" valign="top">';
print '<textarea name="comment" wrap="soft" cols="40" rows="15">'.$adh->commentaire.'</textarea></td></tr>';
print '<tr><td width="15%">'.$langs->trans("Firstname").'</td><td width="35%"><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td></tr>';
// Type
print '<tr><td>'.$langs->trans("Type").'</td><td>';
$htmls->select_array("type", $adht->liste_array(), $adh->typeid);
print "</td></tr>";
print '<tr><td>'.$langs->trans("Name").'</td><td><input type="text" name="nom" size="40" value="'.$adh->nom.'"></td></tr>';
// Physique-Moral
$morphys["phy"] = $langs->trans("Physical");
$morphys["mor"] = $langs->trans("Morale");
print "<tr><td>".$langs->trans("Person")."</td><td>";
$htmls->select_array("morphy", $morphys, $adh->morphy);
print "</td></tr>";
// Société
print '<tr><td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" size="40" value="'.$adh->societe.'"></td></tr>';
// Adresse
print '<tr><td>'.$langs->trans("Address").'</td><td>';
print '<textarea name="adresse" wrap="soft" cols="40" rows="2">'.$adh->adresse.'</textarea></td></tr>';
print '<tr><td>'.$langs->trans("Zip").'/'.$langs->trans("Town").'</td><td><input type="text" name="cp" size="6" value="'.$adh->cp.'"> <input type="text" name="ville" size="32" value="'.$adh->ville.'"></td></tr>';
@ -546,12 +549,21 @@ if ($action == 'create')
$adht = new AdherentType($db);
print_titre($langs->trans("NewMember"));
print "<form name='add' action=\"fiche.php\" method=\"post\">\n";
print '<input type="hidden" name="action" value="add">';
print '<table class="border" width="100%">';
print '<tr><td width="15%">'.$langs->trans("MemberType").'</td><td width="35%">';
print '<tr><td>'.$langs->trans("Lastname").'*</td><td><input type="text" name="nom" value="'.$adh->nom.'" size="40"></td>';
print '<td width="50%" valign="top">'.$langs->trans("Comments").' :</td></tr>';
print '<tr><td>'.$langs->trans("Firstname").'*</td><td><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td>';
$rowspan=12;
print '<td valign="top" rowspan="'.$rowspan.'"><textarea name="comment" wrap="soft" cols="60" rows="12"></textarea></td></tr>';
// Type
print '<tr><td width="15%">'.$langs->trans("MemberType").'*</td><td width="35%">';
$listetype=$adht->liste_array();
if (sizeof($listetype)) {
$htmls->select_array("type", $listetype, $typeid);
@ -560,20 +572,14 @@ if ($action == 'create')
}
print "</td>\n";
print '<td width="50%" valign="top">'.$langs->trans("Comments").' :</td></tr>';
// Moral-Physique
$morphys["phy"] = "Physique";
$morphys["mor"] = "Morale";
print "<tr><td>".$langs->trans("Person")."</td><td>\n";
print "<tr><td>".$langs->trans("Person")."*</td><td>\n";
$htmls->select_array("morphy", $morphys);
print "</td>\n";
$rowspan=12;
print '<td valign="top" rowspan="'.$rowspan.'"><textarea name="comment" wrap="soft" cols="60" rows="12"></textarea></td></tr>';
print '<tr><td>'.$langs->trans("Firstname").'*</td><td><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td></tr>';
print '<tr><td>'.$langs->trans("Lastname").'*</td><td><input type="text" name="nom" value="'.$adh->nom.'" size="40"></td></tr>';
print '<tr><td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" size="40" value="'.$adh->societe.'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("Address").'</td><td>';
print '<textarea name="adresse" wrap="soft" cols="40" rows="2"></textarea></td></tr>';
@ -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 '<table class="border" width="100%">';
print '<form action="fiche.php" method="post">';
print '<tr><td>'.$langs->trans("Ref").'</td><td class="valeur">'.$adh->id.'&nbsp;</td>';
print '<td valign="top" width="50%">'.$langs->trans("Comments").'</tr>';
print '<tr><td>'.$langs->trans("Ref").'</td><td class="valeur" colspan="3">'.$adh->id.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Type").'*</td><td class="valeur">'.$adh->type."</td>\n";
print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td>';
print '<td valign="top" width="50%">'.$langs->trans("Comments").'</td></tr>';
print '<td rowspan="'.(14+count($adh->array_options)).'" valign="top" width="50%">';
print '<tr><td width="15%">'.$langs->trans("Firstname").'*</td><td class="valeur" width="35%">'.$adh->prenom.'&nbsp;</td>';
print '<td rowspan="'.(13+count($adh->array_options)).'" valign="top" width="50%">';
print nl2br($adh->commentaire).'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Person").'</td><td class="valeur">'.$adh->getmorphylib().'&nbsp;</td></tr>';
print '<tr><td width="15%">'.$langs->trans("Firstname").'*</td><td class="valeur" width="35%">'.$adh->prenom.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Type").'*</td><td class="valeur">'.$adh->type."</td></tr>\n";
print '<tr><td>'.$langs->trans("Person").'</td><td class="valeur">'.$adh->getmorphylib().'</td></tr>';
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$adh->societe.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Address").'</td><td class="valeur">'.nl2br($adh->adresse).'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td class="valeur">'.$adh->cp.' '.$adh->ville.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Country").'</td><td class="valeur">'.$adh->pays.'</td></tr>';
print '<tr><td>'.$langs->trans("EMail").(ADHERENT_MAIL_REQUIRED&&ADHERENT_MAIL_REQUIRED==1?'*':'').'</td><td class="valeur">'.$adh->email.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').'</td><td class="valeur">'.$adh->email.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Login").'*</td><td class="valeur">'.$adh->login.'&nbsp;</td></tr>';
// print '<tr><td>Pass</td><td class="valeur">'.$adh->pass.'&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans("Birthday").'</td><td class="valeur">'.$adh->naiss.'&nbsp;</td></tr>';
@ -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)

View File

@ -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 '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Type").'</td>';
print '<td align=right width="80">'.$langs->trans("MembersStatusToValid").'</td>';
print '<td align=right width="80">'.$langs->trans("MembersStatusValidated").'</td>';
print '<td align=right width="80">'.$langs->trans("MembersStatusNotPayed").'</td>';
print '<td align=right width="80">'.$langs->trans("MembersStatusPayed").'</td>';
print '<td align=right width="80">'.$langs->trans("MembersStatusResiliated").'</td>';
print "</tr>\n";
@ -57,44 +60,56 @@ print "</tr>\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 "<tr $bc[$var]>";
print '<td><a href="type.php?rowid='.$AdherentsAll[$key].'">'.img_object($langs->trans("ShowType"),"group").' '.$key.'</a></td>';
print '<td align="right">'.(isset($AdherentsAValider[$key])?$AdherentsAValider[$key]:'').'</td>';
print '<td align="right">'.(isset($Adherents[$key])?$Adherents[$key]:'').'</td>';
print '<td align="right">'.(isset($Cotisants[$key])?$Cotisants[$key]:'').'</td>';
print '<td align="right">'.(isset($AdherentsResilies[$key])?$AdherentsResilies[$key]:'').'</td>';
print "</tr>\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 "<tr $bc[$var]>";
print '<td><a href="type.php?rowid='.$adhtype->id.'">'.img_object($langs->trans("ShowType"),"group").' '.$adhtype->libelle.'</a></td>';
print '<td align="right">'.(isset($AdherentsAValider[$key])?$AdherentsAValider[$key]:'').' '.$staticmember->LibStatut(-1,$adhtype->cotisation,0,3).'</td>';
print '<td align="right">'.(isset($Adherents[$key])?$Adherents[$key]-$Cotisants[$key]:'').' '.$staticmember->LibStatut(1,$adhtype->cotisation,0,3).'</td>';
print '<td align="right">'.(isset($Cotisants[$key])?$Cotisants[$key]:'').' '.$staticmember->LibStatut(1,$adhtype->cotisation,mktime(),3).'</td>';
print '<td align="right">'.(isset($AdherentsResilies[$key])?$AdherentsResilies[$key]:'').' '.$staticmember->LibStatut(0,$adhtype->cotisation,0,3).'</td>';
print "</tr>\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 '<tr class="liste_total">';
print '<td> <b>'.$langs->trans("Total").'</b> </td>';
print '<td align="right"><b>'.$SommeA.'</b></td>';
print '<td align="right"><b>'.$SommeB.'</b></td>';
print '<td align="right"><b>'.$SommeC.'</b></td>';
print '<td align="right"><b>'.$SommeD.'</b></td>';
print '<td align="right"><b>'.$SommeA.' '.$staticmember->LibStatut(-1,$adhtype->cotisation,0,3).'</b></td>';
print '<td align="right"><b>'.$SommeB.' '.$staticmember->LibStatut(1,$adhtype->cotisation,0,3).'</b></td>';
print '<td align="right"><b>'.$SommeC.' '.$staticmember->LibStatut(1,$adhtype->cotisation,mktime(),3).'</b></td>';
print '<td align="right"><b>'.$SommeD.' '.$staticmember->LibStatut(0,$adhtype->cotisation,0,3).'</b></td>';
print '</tr>';
print "</table>\n";
@ -166,18 +182,19 @@ print "</table></form>";
print '</td><td class="notopnoleftnoright" valign="top">';
$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 '<td align="right">'.$langs->trans("Average").'</td>';
print "</tr>\n";
$var=true;
krsort($Total);
foreach ($Total as $key=>$value)
{
$var=!$var;

View File

@ -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 '<tr class="liste_titre">';
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 "<td>".$langs->trans("Action")."</td>\n";
print_liste_field_titre($langs->trans("EndSubscription"),"liste.php","t.cotisation",$param,"","",$sortfield);
print '<td width="60" align="center">'.$langs->trans("Action")."</td>\n";
print "</tr>\n";
$var=True;
@ -130,6 +142,7 @@ if ($result)
$adh=new Adherent($db);
// Nom
$var=!$var;
print "<tr $bc[$var]>";
if ($objp->societe != '')
@ -140,12 +153,28 @@ if ($result)
{
print "<td><a href=\"fiche.php?rowid=$objp->rowid\">".img_object($langs->trans("ShowAdherent"),"user").' '.stripslashes($objp->prenom)." ".stripslashes($objp->nom)."</a></td>\n";
}
// Type
print '<td><a href="type.php?rowid='.$objp->type_id.'">'.img_object($langs->trans("ShowType"),"group").' '.$objp->type.'</a></td>';
// Moral/Physique
print "<td>".$adh->getmorphylib($objp->morphy)."</td>\n";
// EMail
print "<td>$objp->email</td>\n";
// Statut
print "<td>";
print $adh->LibStatut($objp->statut,$objp->cotisation,$objp->datefin,4);
print "</td>";
// Date fin cotisation
print "<td>";
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()."</td>\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 "</td>\n";
}
}
@ -165,25 +194,19 @@ if ($result)
print "&nbsp;</td>";
}
print "<td>$objp->email</td>\n";
print '<td><a href="type.php?rowid='.$objp->type_id.'">'.img_object($langs->trans("ShowType"),"group").' '.$objp->type.'</a></td>';
print "<td>".$adh->getmorphylib($objp->morphy)."</td>\n";
// Actions
print '<td align="center">';
print "<a href=\"fiche.php?rowid=$objp->rowid&action=edit&return=liste.php\">".img_edit()."</a>&nbsp;";
print "<a href=\"fiche.php?rowid=$objp->rowid&action=resign&return=liste.php\">".img_disable($langs->trans("Resiliate"))."</a>";
print "</td>\n";
// Statut
print "<td>";
print $adh->LibStatut($objp->statut,4);
print "</td>";
print "<td><a href=\"edit.php?rowid=$objp->rowid&action=edit\">".img_edit()."</a> &nbsp; ";
print "<a href=\"fiche.php?rowid=$objp->rowid&action=resign\">".img_disable($langs->trans("Resiliate"))."</a> &nbsp; <a href=\"fiche.php?rowid=$objp->rowid&action=delete\">".img_delete()."</a></td>\n";
print "</tr>";
$i++;
}
print "</table><br>\n";
print "<table class=\"noborder\" width=\"100%\">";
print_barre_liste("", $page, "liste.php", "&statut=$statut&sortorder=$sortorder&sortfield=$sortfield",$sortfield,$sortorder,'',$num);
print "</table><br>\n";
}
else

View File

@ -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&amp;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&amp;filter=outofdate",$langs->trans("MenuMembersNotUpToDate"));
$menu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1&amp;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);
}

View File

@ -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&amp;filter=outofdate",$langs->trans("MenuMembersNotUpToDate"),1,$user->rights->adherent->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=1&amp;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);

View File

@ -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

View File

@ -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