28 include_once DOL_DOCUMENT_ROOT.
'/core/boxes/modules_boxes.php';
36 public $boxcode =
"goodcustomers";
37 public $boximg =
"object_company";
38 public $boxlabel =
"BoxGoodCustomers";
39 public $depends = array(
"societe");
63 $this->hidden = !$user->hasRight(
'societe',
'lire');
74 global $user, $langs, $conf;
75 $langs->load(
"boxes");
79 include_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
80 $thirdpartystatic =
new Societe($this->db);
82 $this->info_box_head = array(
'text' => $langs->trans(
"BoxTitleGoodCustomers", $max));
84 if ($user->hasRight(
'societe',
'lire')) {
85 $sql =
"SELECT s.rowid, s.nom as name, s.logo, s.code_client, s.code_fournisseur, s.client, s.fournisseur, s.tms as datem, s.status as status,";
86 $sql .=
" count(*) as nbfact, sum(".$this->db->ifsql(
'f.paye=1',
'1',
'0').
") as nbfactpaye";
87 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s, ".MAIN_DB_PREFIX.
"facture as f";
88 $sql .=
' WHERE s.entity IN ('.getEntity(
'societe').
')';
89 $sql .=
' AND s.rowid = f.fk_soc';
90 $sql .=
" GROUP BY s.rowid, s.nom, s.logo, s.code_client, s.code_fournisseur, s.client, s.fournisseur, s.tms, s.status";
91 $sql .= $this->db->order(
"nbfact",
"DESC");
92 $sql .= $this->db->plimit($max, 0);
94 dol_syslog(get_class($this).
"::loadBox", LOG_DEBUG);
95 $result = $this->db->query(
$sql);
97 $num = $this->db->num_rows($result);
100 while ($line < $num) {
101 $objp = $this->db->fetch_object($result);
102 $datem = $this->db->jdate($objp->tms);
103 $thirdpartystatic->id = $objp->rowid;
104 $thirdpartystatic->name = $objp->name;
105 $thirdpartystatic->code_client = $objp->code_client;
106 $thirdpartystatic->code_fournisseur = $objp->code_fournisseur;
107 $thirdpartystatic->client = $objp->client;
108 $thirdpartystatic->fournisseur = $objp->fournisseur;
109 $thirdpartystatic->logo = $objp->logo;
110 $nbfact = $objp->nbfact;
111 $nbimpaye = $objp->nbfact - $objp->nbfactpaye;
113 $this->info_box_contents[$line][] = array(
114 'td' =>
'class="tdoverflowmax150"',
115 'text' => $thirdpartystatic->getNomUrl(1),
119 $this->info_box_contents[$line][] = array(
120 'td' =>
'class="center nowraponall"',
124 $this->info_box_contents[$line][] = array(
125 'td' =>
'class="right"',
126 'text' => $nbfact.($nbimpaye != 0 ?
' ('.$nbimpaye.
')' :
'')
129 $this->info_box_contents[$line][] = array(
130 'td' =>
'class="right" width="18"',
131 'text' => $thirdpartystatic->LibStatut($objp->status, 3)
138 $this->info_box_contents[$line][0] = array(
139 'td' =>
'class="center"',
140 'text'=>
'<span class="opacitymedium">'.$langs->trans(
"NoRecordedCustomers").
'</span>'
144 $this->db->free($result);
146 $this->info_box_contents[0][0] = array(
149 'text' => ($this->db->error().
' sql='.
$sql),
153 $this->info_box_contents[0][0] = array(
154 'td' =>
'class="nohover left"',
155 'text' =>
'<span class="opacitymedium">'.$langs->trans(
"ReadPermissionNotAllowed").
'</span>'
168 public function showBox($head =
null, $contents =
null, $nooutput = 0)
170 return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage the box to show top-selling customers.
loadBox($max=5)
Load data for box to show them later.
showBox($head=null, $contents=null, $nooutput=0)
Method to show box.
__construct($db, $param='')
Constructor.
if(isModEnabled('invoice') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&!getDolGlobalString('MAIN_USE_NEW_SUPPLIERMOD') && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') && $user->hasRight('tax', 'charges', 'lire')) if(isModEnabled('invoice') &&isModEnabled('order') && $user->hasRight("commande", "lire") &&!getDolGlobalString('WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER')) $sql
Social contributions to pay.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.