From b9f28cca654f4d80c0fdf320a3e01a55cdb2b2b6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 10 Jul 2010 16:42:12 +0000 Subject: [PATCH] Ajout filtre categ sur adherent --- htdocs/adherents/liste.php | 323 ++++++++++++++++++++----------------- htdocs/fourn/liste.php | 9 +- 2 files changed, 182 insertions(+), 150 deletions(-) diff --git a/htdocs/adherents/liste.php b/htdocs/adherents/liste.php index 371d721ea9c..42f2430a9cf 100644 --- a/htdocs/adherents/liste.php +++ b/htdocs/adherents/liste.php @@ -1,7 +1,7 @@ * Copyright (C) 2002-2003 Jean-Louis Bergamo - * Copyright (C) 2004-2009 Laurent Destailleur + * Copyright (C) 2004-2010 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,6 +26,7 @@ */ require("../main.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/core/class/html.formother.class.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php"); @@ -49,17 +50,22 @@ $pagenext = $page + 1; if ($_REQUEST["button_removefilter"]) { - $_GET["search_nom"]=""; - $_REQUEST["search_nom"]=""; - $_GET["search_prenom"]=""; - $_REQUEST["search_prenom"]=""; - $_GET["type"]=""; - $_REQUEST["type"]=""; - $_GET["search_email"]=""; - $_REQUEST["search_email"]=""; - $sall=""; + $_GET["search_nom"]=""; + $_REQUEST["search_nom"]=""; + $_GET["search_prenom"]=""; + $_REQUEST["search_prenom"]=""; + $_GET["type"]=""; + $_REQUEST["type"]=""; + $_GET["search_email"]=""; + $_REQUEST["search_email"]=""; + $_GET["search_categ"]=""; + $_REQUEST["search_categ"]=""; + $sall=""; } +// Load categ filters +$search_categ = isset($_GET["search_categ"])?$_GET["search_categ"]:$_POST["search_categ"]; + /* * View @@ -68,6 +74,9 @@ if ($_REQUEST["button_removefilter"]) llxHeader('',$langs->trans("Member"),'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'); $form=new Form($db); +$htmlother=new FormOther($db); + +$now=dol_now(); $membertypestatic=new AdherentType($db); @@ -76,115 +85,141 @@ $sql.= " d.datefin,"; $sql.= " d.email, d.fk_adherent_type as type_id, d.morphy, d.statut,"; $sql.= " t.libelle as type, t.cotisation"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t"; +if ($search_categ) $sql.= ", ".MAIN_DB_PREFIX."categorie_member as cf"; $sql.= " WHERE d.fk_adherent_type = t.rowid "; +if ($search_categ) $sql.= " AND d.rowid = cf.fk_member"; // Join for the needed table to filter by categ $sql.= " AND d.entity = ".$conf->entity; if ($sall) { - $sql.=" AND (d.prenom like '%".$sall."%' OR d.nom like '%".$sall."%' OR d.societe like '%".$sall."%'"; - $sql.=" OR d.email like '%".$sall."%' OR d.login like '%".$sall."%' OR d.adresse like '%".$sall."%'"; - $sql.=" OR d.ville like '%".$sall."%' OR d.note like '%".$sall."%')"; + $sql.=" AND (d.prenom like '%".$sall."%' OR d.nom like '%".$sall."%' OR d.societe like '%".$sall."%'"; + $sql.=" OR d.email like '%".$sall."%' OR d.login like '%".$sall."%' OR d.adresse like '%".$sall."%'"; + $sql.=" OR d.ville like '%".$sall."%' OR d.note like '%".$sall."%')"; } if ($_REQUEST["type"] > 0) { - $sql.=" AND t.rowid=".$_REQUEST["type"]; + $sql.=" AND t.rowid=".$_REQUEST["type"]; } if (isset($_GET["statut"])) { - $sql.=" AND d.statut in ($statut)"; // Peut valoir un nombre ou liste de nombre separes par virgules + $sql.=" AND d.statut in ($statut)"; // Peut valoir un nombre ou liste de nombre separes par virgules } if ( $_POST["action"] == 'search') { - if (isset($_POST['search']) && $_POST['search'] != ''){ - $sql.= " AND (d.prenom LIKE '%".$_POST['search']."%' OR d.nom LIKE '%".$_POST['search']."%')"; - } + if (isset($_POST['search']) && $_POST['search'] != '') + { + $sql.= " AND (d.prenom LIKE '%".$_POST['search']."%' OR d.nom LIKE '%".$_POST['search']."%')"; + } } if ($_GET["search_nom"]) { - $sql.= " AND (d.prenom LIKE '%".$_GET["search_nom"]."%' OR d.nom LIKE '%".$_GET["search_nom"]."%')"; + $sql.= " AND (d.prenom LIKE '%".$_GET["search_nom"]."%' OR d.nom LIKE '%".$_GET["search_nom"]."%')"; } if ($_GET["search_login"]) { - $sql.= " AND d.login LIKE '%".$_GET["search_login"]."%'"; + $sql.= " AND d.login LIKE '%".$_GET["search_login"]."%'"; } if ($_GET["search_email"]) { - $sql.= " AND (d.email LIKE '%".$_GET["search_email"]."%')"; + $sql.= " AND (d.email LIKE '%".$_GET["search_email"]."%')"; } if ($filter == 'uptodate') { - $sql.=" AND datefin >= ".$db->idate(mktime()); + $sql.=" AND datefin >= ".$db->idate($now); } if ($filter == 'outofdate') { - $sql.=" AND datefin < ".$db->idate(mktime()); + $sql.=" AND datefin < ".$db->idate($now); } -// Count total nb of records +// Insert categ filter +if ($search_categ) +{ + $sql.= " AND cf.fk_categorie = ".addslashes($search_categ); +} + +// Count total nb of records with no order and no limits $nbtotalofrecords = 0; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $resql = $db->query($sql); - if ($resql) $nbtotalofrecords = $db->num_rows($result); - else dol_print_error($db); + if ($resql) $nbtotalofrecords = $db->num_rows($result); + else dol_print_error($db); } // Add order and limit -$sql.= " ".$db->order($sortfield,$sortorder); -$sql.= " ".$db->plimit($conf->liste_limit+1, $offset); +$sql.= $db->order($sortfield,$sortorder); +$sql.= $db->plimit($conf->liste_limit+1, $offset); $resql = $db->query($sql); if ($resql) { - $num = $db->num_rows($resql); - $i = 0; + $num = $db->num_rows($resql); + $i = 0; - $titre=$langs->trans("MembersList"); - if (isset($_GET["statut"])) - { - if ($statut == '-1,1') { $titre=$langs->trans("MembersListQualified"); } - if ($statut == '-1') { $titre=$langs->trans("MembersListToValid"); } - 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') { - $titre=$langs->trans("MembersListQualified"); - } + $titre=$langs->trans("MembersList"); + if (isset($_GET["statut"])) + { + if ($statut == '-1,1') { $titre=$langs->trans("MembersListQualified"); } + if ($statut == '-1') { $titre=$langs->trans("MembersListToValid"); } + 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') + { + $titre=$langs->trans("MembersListQualified"); + } - if ($_REQUEST["type"] > 0) - { + if ($_REQUEST["type"] > 0) + { $membertype=new AdherentType($db); - $result=$membertype->fetch($_REQUEST["type"]); + $result=$membertype->fetch($_REQUEST["type"]); $titre.=" (".$membertype->libelle.")"; - } + } - $param=""; - if (isset($_GET["statut"])) $param.="&statut=".$_GET["statut"]; - if (isset($_GET["search_nom"])) $param.="&search_nom=".$_GET["search_nom"]; - if (isset($_GET["search_login"])) $param.="&search_login=".$_GET["search_login"]; - if (isset($_GET["search_email"])) $param.="&search_email=".$_GET["search_email"]; - if (isset($_GET["filter"])) $param.="&filter=".$_GET["filter"]; - print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); + $param=""; + if (isset($_GET["statut"])) $param.="&statut=".$_GET["statut"]; + if (isset($_GET["search_nom"])) $param.="&search_nom=".$_GET["search_nom"]; + if (isset($_GET["search_login"])) $param.="&search_login=".$_GET["search_login"]; + if (isset($_GET["search_email"])) $param.="&search_email=".$_GET["search_email"]; + if (isset($_GET["filter"])) $param.="&filter=".$_GET["filter"]; + print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); - if ($sall) - { - print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall; - } + if ($sall) + { + print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall; + } - print ""; + print ''; + print "
"; - print ''; - print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),"liste.php","d.nom",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Login"),"liste.php","d.login",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),"liste.php","t.libelle",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Person"),"liste.php","d.morphy",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EMail"),"liste.php","d.email",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),"liste.php","d.statut,d.datefin",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EndSubscription"),"liste.php","d.datefin",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),"liste.php","",$param,"",'width="60" align="center"',$sortfield,$sortorder); - print "\n"; + // Filter on categories + $moreforfilter=''; + if ($conf->categorie->enabled) + { + $moreforfilter.=$langs->trans('Categories'). ': '; + $moreforfilter.=$htmlother->select_categories(3,$search_categ,'search_categ'); + $moreforfilter.='       '; + } + if ($moreforfilter) + { + print ''; + print ''; + } + + print ''; + print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),"liste.php","d.nom",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Login"),"liste.php","d.login",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Type"),"liste.php","t.libelle",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Person"),"liste.php","d.morphy",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("EMail"),"liste.php","d.email",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Status"),"liste.php","d.statut,d.datefin",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("EndSubscription"),"liste.php","d.datefin",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Action"),"liste.php","",$param,"",'width="60" align="center"',$sortfield,$sortorder); + print "\n"; // Lignes des champs de filtre - print ''; print ''; print ''; print ''; + $listetype=$membertypestatic->liste_array(); + $form->select_array("type", $listetype, $_REQUEST["type"], 1, 0, 0, 0, '', 0, 12); + print ''; print ''; @@ -207,85 +242,85 @@ if ($resql) print ''; print "\n"; print ''; - $var=True; - while ($i < $num && $i < $conf->liste_limit) - { - $objp = $db->fetch_object($resql); + $var=True; + while ($i < $num && $i < $conf->liste_limit) + { + $objp = $db->fetch_object($resql); - $datefin=$db->jdate($objp->datefin); + $datefin=$db->jdate($objp->datefin); - $adh=new Adherent($db); + $adh=new Adherent($db); - // Nom - $var=!$var; - print ""; - if ($objp->societe != '') - { - print "\n"; - } - else - { - print "\n"; - } + // Nom + $var=!$var; + print ""; + if ($objp->societe != '') + { + print "\n"; + } + else + { + print "\n"; + } - // Login - print "\n"; + // Login + print "\n"; - // Type - print ''; + // Type + print ''; - // Moral/Physique - print "\n"; + // Moral/Physique + print "\n"; - // EMail - print "\n"; + // EMail + print "\n"; - // Statut - print '"; + // Statut + print '"; - // Date fin cotisation - if ($datefin) - { - print ''; - } - else - { - print ''; - } + // Date fin cotisation + if ($datefin) + { + print ''; + } + else + { + print ''; + } - // Actions - print '"; - print "\n"; - $i++; - } + print "\n"; + $i++; + } - print "
'; + print $moreforfilter; + print '
'; @@ -194,9 +229,9 @@ if ($resql) print ''; - $listetype=$membertypestatic->liste_array(); - $form->select_array("type", $listetype, $_REQUEST["type"], 1, 0, 0, 0, '', 0, 12); - print ' '; print ''; - print '  '; + print '  '; print '
rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom,12)." / ".dol_trunc($objp->societe,12)."rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom)."
rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom,12)." / ".dol_trunc($objp->societe,12)."rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom)."".$objp->login."".$objp->login."'; - $membertypestatic->id=$objp->type_id; - $membertypestatic->libelle=$objp->type; - print $membertypestatic->getNomUrl(1,12); - print ''; + $membertypestatic->id=$objp->type_id; + $membertypestatic->libelle=$objp->type; + print $membertypestatic->getNomUrl(1,12); + print '".$adh->getmorphylib($objp->morphy)."".$adh->getmorphylib($objp->morphy)."".dol_print_email($objp->email,0,0,1)."".dol_print_email($objp->email,0,0,1)."'; - print $adh->LibStatut($objp->statut,$objp->cotisation,$datefin,2); - print "'; + print $adh->LibStatut($objp->statut,$objp->cotisation,$datefin,2); + print "'; - if ($datefin < time() && $objp->statut > 0) - { - print dol_print_date($datefin,'day')." ".img_warning($langs->trans("SubscriptionLate")); - } - else - { - print dol_print_date($datefin,'day'); - } - print ''; - if ($objp->cotisation == 'yes') - { - print $langs->trans("SubscriptionNotReceived"); - if ($objp->statut > 0) print " ".img_warning(); - } - else - { - print ' '; - } - print ''; + if ($datefin < time() && $objp->statut > 0) + { + print dol_print_date($datefin,'day')." ".img_warning($langs->trans("SubscriptionLate")); + } + else + { + print dol_print_date($datefin,'day'); + } + print ''; + if ($objp->cotisation == 'yes') + { + print $langs->trans("SubscriptionNotReceived"); + if ($objp->statut > 0) print " ".img_warning(); + } + else + { + print ' '; + } + print ''; + // Actions + print ''; if ($user->rights->adherent->creer) { print "rowid&action=edit&return=liste.php\">".img_edit().""; @@ -294,23 +329,23 @@ if ($resql) if ($user->rights->adherent->supprimer) { print "rowid&action=resign&return=liste.php\">".img_picto($langs->trans("Resiliate"),'disable.png').""; - } + } print "
\n"; + print "\n"; if ($num > $conf->liste_limit) { - print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,''); + print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,''); } } else { - dol_print_error($db); + dol_print_error($db); } diff --git a/htdocs/fourn/liste.php b/htdocs/fourn/liste.php index d5e81e3829b..104000fe4a3 100644 --- a/htdocs/fourn/liste.php +++ b/htdocs/fourn/liste.php @@ -21,7 +21,7 @@ /** * \file htdocs/fourn/liste.php * \ingroup fournisseur - * \brief Page accueil de la zone fournisseurs + * \brief Home page of supplier area * \version $Id$ */ @@ -95,7 +95,6 @@ if ($search_categ) { $sql .= " AND cf.fk_categorie = ".addslashes($search_categ); } - // Count total nb of records $nbtotalofrecords = 0; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) @@ -103,7 +102,6 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) $result = $db->query($sql); $nbtotalofrecords = $db->num_rows($result); } - $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($conf->liste_limit+1, $offset); @@ -118,7 +116,7 @@ if ($resql) print_barre_liste($langs->trans("ListOfSuppliers"), $page, "liste.php", $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords); - print '
'; + print ''; print ''; // Filter on categories @@ -132,7 +130,7 @@ if ($resql) if ($moreforfilter) { print ''; - print ''; } @@ -159,7 +157,6 @@ if ($resql) print ''; print ''; - print ''; print '';
'; + print ''; print $moreforfilter; print '