* Copyright (C) 2004-2015 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2014 Charles-Fr Benke * Copyright (C) 2015 Jean-François Ferry * * 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 3 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, see . */ /** * \file htdocs/societe/index.php * \ingroup societe * \brief Home page for third parties area */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; $langs->load("companies"); $socid = GETPOST('socid','int'); if ($user->societe_id) $socid=$user->societe_id; // Security check $result=restrictedArea($user,'societe',0,'','','',''); $thirdparty_static = new Societe($db); /* * View */ $transAreaType = $langs->trans("ThirdPartiesArea"); $helpurl='EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Terceros'; llxHeader("",$langs->trans("ThirdParties"),$helpurl); $linkback=''; print_fiche_titre($transAreaType,$linkback,'title_companies.png'); //print ''; //print '
'; print '
'; /* * Search area */ $rowspan=2; if (! empty($conf->barcode->enabled)) $rowspan++; print '
'; print ''; print ''."\n"; print ''; print ''; print "'; print ''; if (! empty($conf->barcode->enabled)) { print "'; //print ''; print ''; } print "'; //print ''; print ''."\n"; print "
'.$langs->trans("SearchThirdparty").'
"; print ':
"; print ':
"; print ':

\n"; /* * Search contact */ $rowspan=2; if (! empty($conf->barcode->enabled)) $rowspan++; print '
'; print ''."\n"; print ''."\n"; print ''; print ''."\n"; print "'; print ''."\n"; print "'; //print ''; print ''."\n"; print "
'.$langs->trans("SearchContact").'
"; print ':
"; print ':

\n"; /* * Statistics area */ $third = array( 'customer' => 0, 'prospect' => 0, 'supplier' => 0, 'other' =>0 ); $total=0; $sql = "SELECT s.rowid, s.client, s.fournisseur"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ' WHERE s.entity IN ('.getEntity('societe', 1).')'; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if ($socid) $sql.= " AND s.rowid = ".$socid; if (! $user->rights->fournisseur->lire) $sql.=" AND (s.fournisseur <> 1 OR s.client <> 0)"; // client=0, fournisseur=0 must be visible //print $sql; $result = $db->query($sql); if ($result) { while ($objp = $db->fetch_object($result)) { $found=0; if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS) && ($objp->client == 1 || $objp->client == 3)) { $found=1; $third['customer']++; } if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS) && ($objp->client == 2 || $objp->client == 3)) { $found=1; $third['prospect']++; } if (! empty($conf->fournisseur->enabled) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS) && $objp->fournisseur) { $found=1; $third['supplier']++; } if (! empty($conf->societe->enabled) && $objp->client == 0 && $objp->fournisseur == 0) { $found=1; $third['other']++; } if ($found) $total++; } } else dol_print_error($db); print ''."\n"; print ''; if (! empty($conf->use_javascript_ajax) && ((round($third['prospect'])?1:0)+(round($third['customer'])?1:0)+(round($third['supplier'])?1:0)+(round($third['other'])?1:0) >= 2)) { print ''."\n"; } else { if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { $statstring = ""; $statstring.= ''; $statstring.= ""; } if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { $statstring.= ""; $statstring.= ''; $statstring.= ""; } if (! empty($conf->fournisseur->enabled) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) { $statstring2 = ""; $statstring2.= ''; $statstring2.= ""; } print $statstring; print $statstring2; } print ''; print '
'.$langs->trans("Statistics").'
'; $dataseries=array(); if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) $dataseries[]=array('label'=>$langs->trans("Prospects"),'data'=>round($third['prospect'])); if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) $dataseries[]=array('label'=>$langs->trans("Customers"),'data'=>round($third['customer'])); if (! empty($conf->fournisseur->enabled) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) $dataseries[]=array('label'=>$langs->trans("Suppliers"),'data'=>round($third['supplier'])); if (! empty($conf->societe->enabled)) $dataseries[]=array('label'=>$langs->trans("Others"),'data'=>round($third['other'])); $data=array('series'=>$dataseries); dol_print_graph('stats',300,180,$data,1,'pie',0,'',0); print '
'.$langs->trans("Prospects").''.round($third['prospect']).'
'.$langs->trans("Customers").''.round($third['customer']).'
'.$langs->trans("Suppliers").''.round($third['supplier']).'
'.$langs->trans("UniqueThirdParties").''; print $total; print '
'; if (! empty($conf->categorie->enabled) && ! empty($conf->global->CATEGORY_GRAPHSTATS_ON_THIRDPARTIES)) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $elementtype = 'societe'; print '
'; print ''; print ''; print ''; $total+=$obj->nb; $i++; } } } print ''; print ''; print '
'.$langs->trans("Categories").'
'; $sql = "SELECT c.label, count(*) as nb"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie_societe as cs"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cs.fk_categorie = c.rowid"; $sql.= " WHERE c.type = 2"; if (! is_numeric($conf->global->CATEGORY_GRAPHSTATS_ON_THIRDPARTIES)) $sql.= " AND c.label like '".$db->escape($conf->global->CATEGORY_GRAPHSTATS_ON_THIRDPARTIES)."'"; $sql.= " AND c.entity IN (".getEntity('category',1).")"; $sql.= " GROUP BY c.label"; $total=0; $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i=0; if (! empty($conf->use_javascript_ajax) ) { $dataseries=array(); $rest=0; $nbmax=10; while ($i < $num) { $obj = $db->fetch_object($result); if ($i < $nbmax) $dataseries[]=array('label'=>$obj->label,'data'=>round($obj->nb)); else $rest+=$obj->nb; $total+=$obj->nb; $i++; } if ($i > $nbmax) $dataseries[]=array('label'=>$langs->trans("Other"),'data'=>round($rest)); $data=array('series'=>$dataseries); dol_print_graph('statscategclient',300,180,$data,1,'pie',0); } else { $var=true; while ($i < $num) { $obj = $db->fetch_object($result); $var=!$var; print '
'.$obj->label.''.$obj->nb.'
'.$langs->trans("Total").''; print $total; print '
'; } //print '
'; print '
'; /* * Last third parties modified */ $max=15; $sql = "SELECT s.rowid, s.nom as name, s.client, s.fournisseur"; $sql.= ", s.logo"; $sql.= ", s.canvas, s.tms as datem, s.status as status"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ' WHERE s.entity IN ('.getEntity('societe', 1).')'; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if ($socid) $sql.= " AND s.rowid = ".$socid; if (! $user->rights->fournisseur->lire) $sql.=" AND (s.fournisseur != 1 OR s.client != 0)"; $sql.= $db->order("s.tms","DESC"); $sql.= $db->plimit($max,0); //print $sql; $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i = 0; if ($num > 0) { $transRecordedType = $langs->trans("LastModifiedThirdParties",$max); print "\n\n"; print ''; print ''; print ''; print ''; print ''."\n"; $var=True; while ($i < $num) { $objp = $db->fetch_object($result); $var=!$var; print ""; // Name print '\n"; // Type print ''; // Last modified date print '"; print '"; print "\n"; $i++; } $db->free(); print "
'.$transRecordedType.' '.$langs->trans('Status').'
'; $thirdparty_static->id=$objp->rowid; $thirdparty_static->name=$objp->name; $thirdparty_static->client=$objp->client; $thirdparty_static->fournisseur=$objp->fournisseur; $thirdparty_static->logo = $objp->logo; $thirdparty_static->datem=$db->jdate($objp->datem); $thirdparty_static->status=$objp->status; $thirdparty_static->canvas=$objp->canvas; print $thirdparty_static->getNomUrl(1); print "'; if ($thirdparty_static->client==1 || $thirdparty_static->client==3) { $thirdparty_static->name=$langs->trans("Customer"); print $thirdparty_static->getNomUrl(0,'customer',0,1); } if ($thirdparty_static->client == 3 && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) print " / "; if (($thirdparty_static->client==2 || $thirdparty_static->client==3) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) { $thirdparty_static->name=$langs->trans("Prospect"); print $thirdparty_static->getNomUrl(0,'prospect',0,1); } if (! empty($conf->fournisseur->enabled) && $thirdparty_static->fournisseur) { if ($thirdparty_static->client) print " / "; $thirdparty_static->name=$langs->trans("Supplier"); print $thirdparty_static->getNomUrl(0,'supplier',0,1); } print ''; print dol_print_date($thirdparty_static->datem,'day'); print "'; print $thirdparty_static->getLibStatut(3); print "
\n"; print "\n"; } } else { dol_print_error($db); } //print '
'; print ''; llxFooter(); $db->close();