28 require
'../main.inc.php';
29 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
30 require_once DOL_DOCUMENT_ROOT.
'/core/class/notify.class.php';
31 require_once DOL_DOCUMENT_ROOT.
'/societe/class/client.class.php';
32 require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
39 $hookmanager->initHooks(array(
'ordersindex'));
42 $langs->loadLangs(array(
'orders',
'bills'));
45 $socid =
GETPOST(
'socid',
'int');
49 $socid = $user->socid;
59 $companystatic =
new Societe($db);
60 $form =
new Form($db);
62 $help_url =
"EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
64 llxHeader(
"", $langs->trans(
"Orders"), $help_url);
70 print '<div class="fichecenter"><div class="fichethirdleft">';
72 if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS))
75 print
'<form method="post" action="'.DOL_URL_ROOT.
'/commande/list.php">';
76 print
'<input type="hidden" name="token" value="'.newToken().
'">';
77 print
'<div class="div-table-responsive-no-min">';
78 print
'<table class="noborder nohover centpercent">';
79 print
'<tr class="liste_titre"><td colspan="3">'.$langs->trans(
"Search").
'</td></tr>';
80 print
'<tr class="oddeven"><td>';
81 print $langs->trans(
"CustomerOrder").
':</td><td><input type="text" class="flat" name="sall" size=18></td><td><input type="submit" value="'.$langs->trans(
"Search").
'" class="button"></td></tr>';
82 print
"</table></div></form><br>\n";
90 $sql =
"SELECT count(c.rowid) as nb, c.fk_statut as status";
91 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
92 $sql .=
", ".MAIN_DB_PREFIX.
"commande as c";
93 if (!$user->rights->societe->client->voir && !$socid) $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
94 $sql .=
" WHERE c.fk_soc = s.rowid";
95 $sql .=
" AND c.entity IN (".getEntity(
'societe').
")";
96 if ($user->socid) $sql .=
' AND c.fk_soc = '.$user->socid;
97 if (!$user->rights->societe->client->voir && !$socid) $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
98 $sql .=
" GROUP BY c.fk_statut";
100 $resql = $db->query($sql);
103 $num = $db->num_rows(
$resql);
108 $dataseries = array();
109 $colorseries = array();
114 $row = $db->fetch_row(
$resql);
119 if (!isset($vals[$row[1]])) $vals[$row[1]] = 0;
120 $vals[$row[1]] += $row[0];
121 $totalinprocess += $row[0];
129 include_once DOL_DOCUMENT_ROOT.
'/theme/'.$conf->theme.
'/theme_vars.inc.php';
131 print
'<div class="div-table-responsive-no-min">';
132 print
'<table class="noborder nohover centpercent">';
133 print
'<tr class="liste_titre"><th colspan="2">'.$langs->trans(
"Statistics").
' - '.$langs->trans(
"CustomersOrders").
'</th></tr>'.
"\n";
134 $listofstatus = array(0, 1, 2, 3, -1);
135 foreach ($listofstatus as $status)
137 $dataseries[] = array($commandestatic->LibStatut($status, 0, 1, 1), (isset($vals[$status]) ? (int) $vals[$status] : 0));
141 if ($status ==
Commande::STATUS_CLOSED && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) $colorseries[$status] = $badgeStatus6;
142 if ($status ==
Commande::STATUS_CLOSED && (!empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) $colorseries[$status] = $badgeStatus6;
145 if (empty($conf->use_javascript_ajax))
147 print
'<tr class="oddeven">';
148 print
'<td>'.$commandestatic->LibStatut($status, 0, 0, 1).
'</td>';
149 print
'<td class="right"><a href="list.php?statut='.$status.
'">'.(isset($vals[$status]) ? $vals[$status] : 0).
' ';
150 print $commandestatic->LibStatut($status, 0, 3, 1);
155 if ($conf->use_javascript_ajax)
157 print
'<tr class="impair"><td align="center" colspan="2">';
159 include_once DOL_DOCUMENT_ROOT.
'/core/class/dolgraph.class.php';
161 $dolgraph->SetData($dataseries);
162 $dolgraph->SetDataColor(array_values($colorseries));
163 $dolgraph->setShowLegend(2);
164 $dolgraph->setShowPercent(1);
165 $dolgraph->SetType(array(
'pie'));
166 $dolgraph->setHeight(
'200');
167 $dolgraph->draw(
'idgraphstatus');
168 print $dolgraph->show($total ? 0 : 1);
174 print
'<tr class="liste_total"><td>'.$langs->trans(
"Total").
'</td><td class="right">'.$total.
'</td></tr>';
175 print
"</table></div><br>";
184 if (!empty($conf->commande->enabled))
186 $sql =
"SELECT c.rowid, c.ref, s.nom as name, s.rowid as socid";
187 $sql .=
", s.client";
188 $sql .=
", s.code_client";
189 $sql .=
", s.canvas";
190 $sql .=
" FROM ".MAIN_DB_PREFIX.
"commande as c";
191 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
192 if (!$user->rights->societe->client->voir && !$socid) $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
193 $sql .=
" WHERE c.fk_soc = s.rowid";
194 $sql .=
" AND c.entity IN (".getEntity(
'commande').
")";
195 $sql .=
" AND c.fk_statut = 0";
196 if ($socid) $sql .=
" AND c.fk_soc = ".$socid;
197 if (!$user->rights->societe->client->voir && !$socid) $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
199 $resql = $db->query($sql);
202 print
'<div class="div-table-responsive-no-min">';
203 print
'<table class="noborder centpercent">';
204 print
'<tr class="liste_titre">';
205 print
'<th colspan="2">'.$langs->trans(
"DraftOrders").
'</th></tr>';
206 $langs->load(
"orders");
207 $num = $db->num_rows(
$resql);
213 $obj = $db->fetch_object(
$resql);
215 $commandestatic->id = $obj->rowid;
216 $commandestatic->ref = $obj->ref;
218 $companystatic->id = $obj->socid;
219 $companystatic->name = $obj->name;
220 $companystatic->client = $obj->client;
221 $companystatic->code_client = $obj->code_client;
222 $companystatic->canvas = $obj->canvas;
224 print
'<tr class="oddeven">';
225 print
'<td class="nowrap">';
226 print $commandestatic->getNomUrl(1);
228 print
'<td class="nowrap">';
229 print $companystatic->getNomUrl(1,
'company', 16);
234 print
'<tr class="oddeven"><td colspan="3">'.$langs->trans(
"NoOrder").
'</td></tr>';
236 print
"</table></div><br>";
241 print
'</div><div class="fichetwothirdright"><div class="ficheaddleft">';
250 $sql =
"SELECT c.rowid, c.entity, c.ref, c.fk_statut, c.facture, c.date_cloture as datec, c.tms as datem,";
251 $sql .=
" s.nom as name, s.rowid as socid";
252 $sql .=
", s.client";
253 $sql .=
", s.code_client";
254 $sql .=
", s.canvas";
255 $sql .=
" FROM ".MAIN_DB_PREFIX.
"commande as c,";
256 $sql .=
" ".MAIN_DB_PREFIX.
"societe as s";
257 if (!$user->rights->societe->client->voir && !$socid) $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
258 $sql .=
" WHERE c.fk_soc = s.rowid";
259 $sql .=
" AND c.entity IN (".getEntity(
'commande').
")";
261 if ($socid) $sql .=
" AND c.fk_soc = ".$socid;
262 if (!$user->rights->societe->client->voir && !$socid) $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
263 $sql .=
" ORDER BY c.tms DESC";
264 $sql .= $db->plimit($max, 0);
266 $resql = $db->query($sql);
269 print
'<div class="div-table-responsive-no-min">';
270 print
'<table class="noborder centpercent">';
271 print
'<tr class="liste_titre">';
272 print
'<th colspan="4">'.$langs->trans(
"LastModifiedOrders", $max).
'</th></tr>';
274 $num = $db->num_rows(
$resql);
280 $obj = $db->fetch_object(
$resql);
282 print
'<tr class="oddeven">';
283 print
'<td width="20%" class="nowrap">';
285 $commandestatic->id = $obj->rowid;
286 $commandestatic->ref = $obj->ref;
288 $companystatic->id = $obj->socid;
289 $companystatic->name = $obj->name;
290 $companystatic->client = $obj->client;
291 $companystatic->code_client = $obj->code_client;
292 $companystatic->canvas = $obj->canvas;
294 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
295 print
'<td width="96" class="nobordernopadding nowrap">';
296 print $commandestatic->getNomUrl(1);
299 print
'<td width="16" class="nobordernopadding nowrap">';
303 print
'<td width="16" class="nobordernopadding hideonsmartphone right">';
306 $urlsource =
$_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
307 print $formfile->getDocumentsLink($commandestatic->element, $filename, $filedir);
308 print
'</td></tr></table>';
312 print
'<td class="nowrap">';
313 print $companystatic->getNomUrl(1,
'company', 16);
315 print
'<td>'.dol_print_date($db->jdate($obj->datem),
'day').
'</td>';
316 print
'<td class="right">'.$commandestatic->LibStatut($obj->fk_statut, $obj->facture, 3).
'</td>';
321 print
"</table></div><br>";
329 if (!empty($conf->commande->enabled))
331 $sql =
"SELECT c.rowid, c.entity, c.ref, c.fk_statut, c.facture, c.date_commande as date, s.nom as name, s.rowid as socid";
332 $sql .=
", s.client";
333 $sql .=
", s.code_client";
334 $sql .=
", s.canvas";
335 $sql .=
" FROM ".MAIN_DB_PREFIX.
"commande as c";
336 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
337 if (!$user->rights->societe->client->voir && !$socid) $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
338 $sql .=
" WHERE c.fk_soc = s.rowid";
339 $sql .=
" AND c.entity IN (".getEntity(
'commande').
")";
340 $sql .=
" AND c.fk_statut = ".Commande::STATUS_VALIDATED;
341 if ($socid) $sql .=
" AND c.fk_soc = ".$socid;
342 if (!$user->rights->societe->client->voir && !$socid) $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
343 $sql .=
" ORDER BY c.rowid DESC";
345 $resql = $db->query($sql);
348 $num = $db->num_rows(
$resql);
350 print
'<div class="div-table-responsive-no-min">';
351 print
'<table class="noborder centpercent">';
352 print
'<tr class="liste_titre">';
353 print
'<th colspan="4">'.$langs->trans(
"OrdersToProcess").
' <a href="'.DOL_URL_ROOT.
'/commande/list.php?search_status='.
Commande::STATUS_VALIDATED.
'"><span class="badge">'.$num.
'</span></a></th></tr>';
358 while ($i < $num && $i < $max)
360 $obj = $db->fetch_object(
$resql);
361 print
'<tr class="oddeven">';
362 print
'<td class="nowrap" width="20%">';
364 $commandestatic->id = $obj->rowid;
365 $commandestatic->ref = $obj->ref;
367 $companystatic->id = $obj->socid;
368 $companystatic->name = $obj->name;
369 $companystatic->client = $obj->client;
370 $companystatic->code_client = $obj->code_client;
371 $companystatic->canvas = $obj->canvas;
373 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
374 print
'<td width="96" class="nobordernopadding nowrap">';
375 print $commandestatic->getNomUrl(1);
378 print
'<td width="16" class="nobordernopadding nowrap">';
382 print
'<td width="16" class="nobordernopadding hideonsmartphone right">';
385 $urlsource =
$_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
386 print $formfile->getDocumentsLink($commandestatic->element, $filename, $filedir);
387 print
'</td></tr></table>';
391 print
'<td class="nowrap">';
392 print $companystatic->getNomUrl(1,
'company', 24);
395 print
'<td class="right">'.dol_print_date($db->jdate($obj->date),
'day').
'</td>'.
"\n";
397 print
'<td class="right">'.$commandestatic->LibStatut($obj->fk_statut, $obj->facture, 3).
'</td>';
403 print
'<tr><td><span class="opacitymedium">'.$langs->trans(
"More").
'...</span></td><td></td><td></td><td></td></tr>';
407 print
"</table></div><br>";
414 if (!empty($conf->commande->enabled))
416 $sql =
"SELECT c.rowid, c.entity, c.ref, c.fk_statut, c.facture, c.date_commande as date, s.nom as name, s.rowid as socid";
417 $sql .=
", s.client";
418 $sql .=
", s.code_client";
419 $sql .=
", s.canvas";
420 $sql .=
" FROM ".MAIN_DB_PREFIX.
"commande as c";
421 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
422 if (!$user->rights->societe->client->voir && !$socid) $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
423 $sql .=
" WHERE c.fk_soc = s.rowid";
424 $sql .=
" AND c.entity IN (".getEntity(
'commande').
")";
425 $sql .=
" AND c.fk_statut = ".Commande::STATUS_ACCEPTED;
426 if ($socid) $sql .=
" AND c.fk_soc = ".$socid;
427 if (!$user->rights->societe->client->voir && !$socid) $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
428 $sql .=
" ORDER BY c.rowid DESC";
430 $resql = $db->query($sql);
433 $num = $db->num_rows(
$resql);
435 print
'<div class="div-table-responsive-no-min">';
436 print
'<table class="noborder centpercent">';
437 print
'<tr class="liste_titre">';
438 print
'<th colspan="4">'.$langs->trans(
"OnProcessOrders").
' <a href="'.DOL_URL_ROOT.
'/commande/list.php?search_status='.Commande::STATUS_ACCEPTED.
'"><span class="badge">'.$num.
'</span></a></th></tr>';
443 while ($i < $num && $i < $max)
445 $obj = $db->fetch_object(
$resql);
446 print
'<tr class="oddeven">';
447 print
'<td width="20%" class="nowrap">';
449 $commandestatic->id = $obj->rowid;
450 $commandestatic->ref = $obj->ref;
452 $companystatic->id = $obj->socid;
453 $companystatic->name = $obj->name;
454 $companystatic->client = $obj->client;
455 $companystatic->code_client = $obj->code_client;
456 $companystatic->canvas = $obj->canvas;
458 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
459 print
'<td width="96" class="nobordernopadding nowrap">';
460 print $commandestatic->getNomUrl(1);
463 print
'<td width="16" class="nobordernopadding nowrap">';
467 print
'<td width="16" class="nobordernopadding hideonsmartphone right">';
470 $urlsource =
$_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
471 print $formfile->getDocumentsLink($commandestatic->element, $filename, $filedir);
472 print
'</td></tr></table>';
477 print $companystatic->getNomUrl(1,
'company');
480 print
'<td class="right">'.dol_print_date($db->jdate($obj->date),
'day').
'</td>'.
"\n";
482 print
'<td class="right">'.$commandestatic->LibStatut($obj->fk_statut, $obj->facture, 3).
'</td>';
488 print
'<tr><td><span class="opacitymedium">'.$langs->trans(
"More").
'...</span></td><td></td><td></td><td></td></tr>';
491 print
"</table></div><br>";
496 print
'</div></div></div>';
498 $parameters = array(
'user' => $user);
499 $reshook = $hookmanager->executeHooks(
'dashboardOrders', $parameters, $object);
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
const STATUS_CLOSED
Closed (Sent, billed or not)
const STATUS_SHIPMENTONPROCESS
Shipment on process.
Class to manage third parties objects (customers, suppliers, prospects...)
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with picto.
Class to manage customers orders.
const STATUS_DRAFT
Draft status.
accessforbidden($message= '', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program Calling this function terminate execution ...
dol_sanitizeFileName($str, $newstr= '_', $unaccent=1)
Clean a string to use it as a file name.
print $_SERVER["PHP_SELF"]
Edit parameters.
const STATUS_VALIDATED
Validated status.
print
Draft customers invoices.
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
const STATUS_CANCELED
Canceled status.