* Copyright (C) 2004-2010 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * \file htdocs/comm/clients.php * \ingroup commercial, societe * \brief List of customers * \version $Id$ */ require("../main.inc.php"); require_once(DOL_DOCUMENT_ROOT."/core/class/html.formother.class.php"); // Security check $socid = GETPOST("socid"); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'societe',$socid,''); $sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"]; $sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"]; $page=isset($_GET["page"])?$_GET["page"]:$_POST["page"]; if ($page == -1) { $page = 0 ; } $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="s.nom"; $search_nom=isset($_GET["search_nom"])?$_GET["search_nom"]:$_POST["search_nom"]; $search_ville=isset($_GET["search_ville"])?$_GET["search_ville"]:$_POST["search_ville"]; $search_code=isset($_GET["search_code"])?$_GET["search_code"]:$_POST["search_code"]; // Load sale and categ filters $search_sale = isset($_GET["search_sale"])?$_GET["search_sale"]:$_POST["search_sale"]; $search_categ = isset($_GET["search_categ"])?$_GET["search_categ"]:$_POST["search_categ"]; /* * view */ $htmlother=new FormOther($db); llxHeader(); $sql = "SELECT s.rowid, s.nom, s.ville, st.libelle as stcomm, s.prefix_comm, s.code_client"; $sql.= ",s.datec, s.datea"; // We'll need these fields in order to filter by sale (including the case where the user can only see his prospects) if ($search_sale) $sql .= ", sc.fk_soc, sc.fk_user"; // We'll need these fields in order to filter by categ if ($search_categ) $sql .= ", cs.fk_categorie, cs.fk_societe"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."c_stcomm as st"; // We'll need this table joined to the select in order to filter by sale if ($search_sale || !$user->rights->societe->client->voir) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We'll need this table joined to the select in order to filter by categ if ($search_categ) $sql.= ", ".MAIN_DB_PREFIX."categorie_societe as cs"; $sql.= " WHERE s.fk_stcomm = st.id"; $sql.= " AND s.client IN (1, 3)"; $sql.= " AND s.entity = ".$conf->entity; if (!$user->rights->societe->client->voir) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if ($socid) $sql.= " AND s.rowid = ".$socid; if ($search_sale) $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale if ($search_categ) $sql.= " AND s.rowid = cs.fk_societe"; // Join for the needed table to filter by categ if ($search_nom) $sql.= " AND s.nom like '%".addslashes(strtolower($search_nom))."%'"; if ($search_ville) $sql.= " AND s.ville like '%".addslashes(strtolower($search_ville))."%'"; if ($search_code) $sql.= " AND s.code_client like '%".addslashes(strtolower($search_code))."%'"; // Insert sale filter if ($search_sale) { $sql .= " AND sc.fk_user = ".$search_sale; } // Insert categ filter if ($search_categ) { $sql .= " AND cs.fk_categorie = ".$search_categ; } if ($socname) { $sql.= " AND s.nom like '%".addslashes(strtolower($socname))."%'"; $sortfield = "s.nom"; $sortorder = "ASC"; } // Count total nb of records $nbtotalofrecords = 0; 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); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $param = "&search_nom=".$search_nom."&search_code=".$search_code."&search_ville=".$search_ville; if ($search_categ != '') $param.='&search_categ='.$search_categ; if ($search_sale != '') $param.='&search_sale='.$search_sale; print_barre_liste($langs->trans("ListOfCustomers"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); $i = 0; print '
'."\n"; print ''."\n"; // Filter on categories $moreforfilter=''; if ($conf->categorie->enabled) { $moreforfilter.=$langs->trans('Categories'). ': '; $moreforfilter.=$htmlother->select_categories(2,$search_categ,'search_categ'); $moreforfilter.='       '; } // If the user can view prospects other than his' if ($user->rights->societe->client->voir || $socid) { $moreforfilter.=$langs->trans('SalesRepresentatives'). ': '; $moreforfilter.=$htmlother->select_salesrepresentatives($search_sale,'search_sale',$user); } if ($moreforfilter) { print ''; print ''; } print ''; print_liste_field_titre($langs->trans("Company"),"clients.php","s.nom","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),"clients.php","s.ville","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("CustomerCode"),"clients.php","s.code_client","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateCreation"),"clients.php","datec","",$param,'align="right"',$sortfield,$sortorder); print "\n"; print ''; print ''; print ''; print "\n"; $var=True; while ($i < min($num,$conf->liste_limit)) { $obj = $db->fetch_object($result); $var=!$var; print ""; print ''; print ''; print ''; print ''; print "\n"; $i++; } //print_barre_liste($langs->trans("ListOfCustomers"), $page, $_SERVER["PHP_SELF"],'',$sortfield,$sortorder,'',$num); print "
'; print $moreforfilter; print '
'; print ''; print ''; print ''; print ''; print ''; print '
'; print img_object($langs->trans("ShowCustomer"),"company"); print ' '.stripslashes($obj->nom).''.$obj->ville.''.$obj->code_client.''.dol_print_date($db->jdate($obj->datec)).'
\n"; print "
\n"; $db->free($result); } else { dol_print_error($db); } $db->close(); llxFooter('$Date$ - $Revision$'); ?>