31 require
'../main.inc.php';
32 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
33 require_once DOL_DOCUMENT_ROOT.
'/core/lib/agenda.lib.php';
34 require_once DOL_DOCUMENT_ROOT.
'/comm/action/class/actioncomm.class.php';
35 require_once DOL_DOCUMENT_ROOT.
'/comm/propal/class/propal.class.php';
36 require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
37 require_once DOL_DOCUMENT_ROOT.
'/contrat/class/contrat.class.php';
38 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
39 require_once DOL_DOCUMENT_ROOT.
'/societe/class/client.class.php';
40 require_once DOL_DOCUMENT_ROOT.
'/supplier_proposal/class/supplier_proposal.class.php';
41 require_once DOL_DOCUMENT_ROOT.
'/core/lib/propal.lib.php';
42 require_once DOL_DOCUMENT_ROOT.
'/core/lib/order.lib.php';
44 require_once DOL_DOCUMENT_ROOT.
'/fichinter/class/fichinter.class.php';
49 $hookmanager->initHooks(array(
'commercialindex'));
52 $langs->loadLangs(array(
"boxes",
"commercial",
"contracts",
"orders",
"propal",
"supplier_proposal"));
54 $action =
GETPOST(
'action',
'aZ09');
58 $socid =
GETPOST(
'socid',
'int');
59 if (isset($user->socid) && $user->socid > 0) {
61 $socid = $user->socid;
65 $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT;
66 $maxofloop = (empty($conf->global->MAIN_MAXLIST_OVERLOAD) ? 500 : $conf->global->MAIN_MAXLIST_OVERLOAD);
70 if (!$user->hasRight(
'propal',
'read') && !$user->hasRight(
'supplier_proposal',
'read') && !$user->hasRight(
'commande',
'read') && !$user->hasRight(
'fournisseur',
'commande',
'read')
71 && !$user->hasRight(
'supplier_order',
'read') && !$user->hasRight(
'fichinter',
'read')) {
90 $companystatic =
new Societe($db);
92 $propalstatic =
new Propal($db);
100 if ((
isModEnabled(
"fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) ||
isModEnabled(
"supplier_order")) {
108 llxHeader(
"", $langs->trans(
"CommercialArea"));
112 print
'<div class="fichecenter"><div class="fichethirdleft">';
129 if (
isModEnabled(
"propal") && $user->hasRight(
"propal",
"lire")) {
130 $sql =
"SELECT p.rowid, p.ref, p.ref_client, p.total_ht, p.total_tva, p.total_ttc, p.fk_statut as status";
131 $sql .=
", s.rowid as socid, s.nom as name, s.name_alias";
132 $sql .=
", s.code_client, s.code_compta, s.client";
133 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
134 $sql .=
", s.logo, s.email, s.entity";
135 $sql .=
", s.canvas";
136 $sql .=
" FROM ".MAIN_DB_PREFIX.
"propal as p,";
137 $sql .=
" ".MAIN_DB_PREFIX.
"societe as s";
138 if (empty($user->rights->societe->client->voir) && !$socid) {
139 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
141 $sql .=
" WHERE p.entity IN (".getEntity($propalstatic->element).
")";
142 $sql .=
" AND p.fk_soc = s.rowid";
143 $sql .=
" AND p.fk_statut = ".Propal::STATUS_DRAFT;
144 if (empty($user->rights->societe->client->voir) && !$socid) {
145 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
148 $sql .=
" AND s.rowid = ".((int) $socid);
151 $resql = $db->query($sql);
154 $num = $db->num_rows(
$resql);
155 $nbofloop = min($num, $maxofloop);
162 while ($i < $nbofloop) {
163 $obj = $db->fetch_object(
$resql);
168 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
172 $propalstatic->id = $obj->rowid;
173 $propalstatic->ref = $obj->ref;
174 $propalstatic->ref_client = $obj->ref_client;
175 $propalstatic->total_ht = $obj->total_ht;
176 $propalstatic->total_tva = $obj->total_tva;
177 $propalstatic->total_ttc = $obj->total_ttc;
178 $propalstatic->statut = $obj->status;
180 $companystatic->id = $obj->socid;
181 $companystatic->name = $obj->name;
182 $companystatic->name_alias = $obj->name_alias;
183 $companystatic->code_client = $obj->code_client;
184 $companystatic->code_compta = $obj->code_compta;
185 $companystatic->client = $obj->client;
186 $companystatic->code_fournisseur = $obj->code_fournisseur;
187 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
188 $companystatic->fournisseur = $obj->fournisseur;
189 $companystatic->logo = $obj->logo;
190 $companystatic->email = $obj->email;
191 $companystatic->entity = $obj->entity;
192 $companystatic->canvas = $obj->canvas;
194 print
'<tr class="oddeven">';
195 print
'<td class="nowraponall tdoverflowmax100">'.$propalstatic->getNomUrl(1).
'</td>';
196 print
'<td class="nowrap tdoverflowmax100">'.$companystatic->getNomUrl(1,
'customer').
'</td>';
197 print
'<td class="nowrap right tdamount amount">'.price((!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc)).
'</td>';
201 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
205 print
'<tr class="oddeven">';
206 print
'<td class="nowrap" colspan="5">';
207 print
'<span class="opacitymedium">'.$langs->trans(
"More").
'...'.($othernb < $maxofloop ?
' ('.$othernb.
')' :
'').
'</span>';
227 if (
isModEnabled(
'supplier_proposal') && $user->hasRight(
"supplier_proposal",
"lire")) {
228 $sql =
"SELECT p.rowid, p.ref, p.total_ht, p.total_tva, p.total_ttc, p.fk_statut as status";
229 $sql .=
", s.rowid as socid, s.nom as name, s.name_alias";
230 $sql .=
", s.code_client, s.code_compta, s.client";
231 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
232 $sql .=
", s.logo, s.email, s.entity";
233 $sql .=
", s.canvas";
234 $sql .=
" FROM ".MAIN_DB_PREFIX.
"supplier_proposal as p,";
235 $sql .=
" ".MAIN_DB_PREFIX.
"societe as s";
236 if (empty($user->rights->societe->client->voir) && !$socid) {
237 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
239 $sql .=
" WHERE p.entity IN (".getEntity($supplierproposalstatic->element).
")";
240 $sql .=
" AND p.fk_statut = ".SupplierProposal::STATUS_DRAFT;
241 $sql .=
" AND p.fk_soc = s.rowid";
242 if (empty($user->rights->societe->client->voir) && !$socid) {
243 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
246 $sql .=
" AND s.rowid = ".((int) $socid);
249 $resql = $db->query($sql);
252 $num = $db->num_rows(
$resql);
253 $nbofloop = min($num, $maxofloop);
260 while ($i < $nbofloop) {
261 $obj = $db->fetch_object(
$resql);
266 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
270 $supplierproposalstatic->id = $obj->rowid;
271 $supplierproposalstatic->ref = $obj->ref;
272 $supplierproposalstatic->total_ht = $obj->total_ht;
273 $supplierproposalstatic->total_tva = $obj->total_tva;
274 $supplierproposalstatic->total_ttc = $obj->total_ttc;
275 $supplierproposalstatic->statut = $obj->status;
277 $companystatic->id = $obj->socid;
278 $companystatic->name = $obj->name;
279 $companystatic->name_alias = $obj->name_alias;
280 $companystatic->code_client = $obj->code_client;
281 $companystatic->code_compta = $obj->code_compta;
282 $companystatic->client = $obj->client;
283 $companystatic->code_fournisseur = $obj->code_fournisseur;
284 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
285 $companystatic->fournisseur = $obj->fournisseur;
286 $companystatic->logo = $obj->logo;
287 $companystatic->email = $obj->email;
288 $companystatic->entity = $obj->entity;
289 $companystatic->canvas = $obj->canvas;
291 print
'<tr class="oddeven">';
292 print
'<td class="nowraponall tdoverflowmax100">'.$supplierproposalstatic->getNomUrl(1).
'</td>';
293 print
'<td class="nowrap tdoverflowmax100">'.$companystatic->getNomUrl(1,
'supplier').
'</td>';
294 print
'<td class="nowrap right tdamount amount">'.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).
'</td>';
298 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
302 print
'<tr class="oddeven">';
303 print
'<td class="nowrap" colspan="5">';
304 print
'<span class="opacitymedium">'.$langs->trans(
"More").
'...'.($othernb < $maxofloop ?
' ('.$othernb.
')' :
'').
'</span>';
324 if (
isModEnabled(
'commande') && $user->rights->commande->lire) {
325 $sql =
"SELECT c.rowid, c.ref, c.ref_client, c.total_ht, c.total_tva, c.total_ttc, c.fk_statut as status";
326 $sql .=
", s.rowid as socid, s.nom as name, s.name_alias";
327 $sql .=
", s.code_client, s.code_compta, s.client";
328 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
329 $sql .=
", s.logo, s.email, s.entity";
330 $sql .=
", s.canvas";
331 $sql .=
" FROM ".MAIN_DB_PREFIX.
"commande as c,";
332 $sql .=
" ".MAIN_DB_PREFIX.
"societe as s";
333 if (empty($user->rights->societe->client->voir) && !$socid) {
334 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
336 $sql .=
" WHERE c.entity IN (".getEntity($orderstatic->element).
")";
337 $sql .=
" AND c.fk_statut = ".Commande::STATUS_DRAFT;
338 $sql .=
" AND c.fk_soc = s.rowid";
339 if (empty($user->rights->societe->client->voir) && !$socid) {
340 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
343 $sql .=
" AND c.fk_soc = ".((int) $socid);
346 $resql = $db->query($sql);
349 $num = $db->num_rows(
$resql);
350 $nbofloop = min($num, $maxofloop);
357 while ($i < $nbofloop) {
358 $obj = $db->fetch_object(
$resql);
363 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
367 $orderstatic->id = $obj->rowid;
368 $orderstatic->ref = $obj->ref;
369 $orderstatic->ref_client = $obj->ref_client;
370 $orderstatic->total_ht = $obj->total_ht;
371 $orderstatic->total_tva = $obj->total_tva;
372 $orderstatic->total_ttc = $obj->total_ttc;
373 $orderstatic->statut = $obj->status;
375 $companystatic->id = $obj->socid;
376 $companystatic->name = $obj->name;
377 $companystatic->name_alias = $obj->name_alias;
378 $companystatic->code_client = $obj->code_client;
379 $companystatic->code_compta = $obj->code_compta;
380 $companystatic->client = $obj->client;
381 $companystatic->code_fournisseur = $obj->code_fournisseur;
382 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
383 $companystatic->fournisseur = $obj->fournisseur;
384 $companystatic->logo = $obj->logo;
385 $companystatic->email = $obj->email;
386 $companystatic->entity = $obj->entity;
387 $companystatic->canvas = $obj->canvas;
389 print
'<tr class="oddeven">';
390 print
'<td class="nowraponall tdoverflowmax100">'.$orderstatic->getNomUrl(1).
'</td>';
391 print
'<td class="nowrap tdoverflowmax100">'.$companystatic->getNomUrl(1,
'customer').
'</td>';
392 print
'<td class="nowrap right tdamount amount">'.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).
'</td>';
396 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
400 print
'<tr class="oddeven">';
401 print
'<td class="nowrap" colspan="5">';
402 print
'<span class="opacitymedium">'.$langs->trans(
"More").
'...'.($othernb < $maxofloop ?
' ('.$othernb.
')' :
'').
'</span>';
422 if ((
isModEnabled(
"fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight(
"fournisseur",
"commande",
"lire")) || (
isModEnabled(
"supplier_order") && $user->hasRight(
"supplier_order",
"lire"))) {
423 $sql =
"SELECT cf.rowid, cf.ref, cf.ref_supplier, cf.total_ht, cf.total_tva, cf.total_ttc, cf.fk_statut as status";
424 $sql .=
", s.rowid as socid, s.nom as name, s.name_alias";
425 $sql .=
", s.code_client, s.code_compta, s.client";
426 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
427 $sql .=
", s.logo, s.email, s.entity";
428 $sql .=
", s.canvas";
429 $sql .=
" FROM ".MAIN_DB_PREFIX.
"commande_fournisseur as cf,";
430 $sql .=
" ".MAIN_DB_PREFIX.
"societe as s";
431 if (empty($user->rights->societe->client->voir) && !$socid) {
432 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
434 $sql .=
" WHERE cf.entity IN (".getEntity($supplierorderstatic->element).
")";
435 $sql .=
" AND cf.fk_statut = ".CommandeFournisseur::STATUS_DRAFT;
436 $sql .=
" AND cf.fk_soc = s.rowid";
437 if (empty($user->rights->societe->client->voir) && !$socid) {
438 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
441 $sql .=
" AND cf.fk_soc = ".((int) $socid);
444 $resql = $db->query($sql);
447 $num = $db->num_rows(
$resql);
448 $nbofloop = min($num, $maxofloop);
455 while ($i < $nbofloop) {
456 $obj = $db->fetch_object(
$resql);
461 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
465 $supplierorderstatic->id = $obj->rowid;
466 $supplierorderstatic->ref = $obj->ref;
467 $supplierorderstatic->ref_supplier = $obj->ref_supplier;
468 $supplierorderstatic->total_ht = $obj->total_ht;
469 $supplierorderstatic->total_tva = $obj->total_tva;
470 $supplierorderstatic->total_ttc = $obj->total_ttc;
471 $supplierorderstatic->statut = $obj->status;
473 $companystatic->id = $obj->socid;
474 $companystatic->name = $obj->name;
475 $companystatic->name_alias = $obj->name_alias;
476 $companystatic->code_client = $obj->code_client;
477 $companystatic->code_compta = $obj->code_compta;
478 $companystatic->client = $obj->client;
479 $companystatic->code_fournisseur = $obj->code_fournisseur;
480 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
481 $companystatic->fournisseur = $obj->fournisseur;
482 $companystatic->logo = $obj->logo;
483 $companystatic->email = $obj->email;
484 $companystatic->entity = $obj->entity;
485 $companystatic->canvas = $obj->canvas;
487 print
'<tr class="oddeven">';
488 print
'<td class="nowraponall tdoverflowmax100">'.$supplierorderstatic->getNomUrl(1).
'</td>';
489 print
'<td class="nowrap tdoverflowmax100">'.$companystatic->getNomUrl(1,
'supplier').
'</td>';
490 print
'<td class="nowrap right tdamount amount">'.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).
'</td>';
494 $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc);
498 print
'<tr class="oddeven">';
499 print
'<td class="nowrap" colspan="5">';
500 print
'<span class="opacitymedium">'.$langs->trans(
"More").
'...'.($othernb < $maxofloop ?
' ('.$othernb.
')' :
'').
'</span>';
520 $sql =
"SELECT f.rowid, f.ref, s.nom as name, f.fk_statut";
521 $sql .=
", s.rowid as socid, s.nom as name, s.name_alias";
522 $sql .=
", s.code_client, s.code_compta, s.client";
523 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
524 $sql .=
", s.logo, s.email, s.entity";
525 $sql .=
", s.canvas";
526 $sql .=
" FROM ".MAIN_DB_PREFIX.
"fichinter as f";
527 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
528 if (empty($user->rights->societe->client->voir) && !$socid) {
529 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
531 $sql .=
" WHERE f.entity IN (".getEntity(
'intervention').
")";
532 $sql .=
" AND f.fk_soc = s.rowid";
533 $sql .=
" AND f.fk_statut = 0";
535 $sql .=
" AND f.fk_soc = ".((int) $socid);
537 if (empty($user->rights->societe->client->voir) && !$socid) {
538 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
542 $resql = $db->query($sql);
544 $num = $db->num_rows(
$resql);
545 $nbofloop = min($num, $maxofloop);
553 while ($i < $nbofloop) {
554 $obj = $db->fetch_object(
$resql);
556 $fichinterstatic->id=$obj->rowid;
557 $fichinterstatic->ref=$obj->ref;
558 $fichinterstatic->statut=$obj->fk_statut;
560 $companystatic->id = $obj->socid;
561 $companystatic->name = $obj->name;
562 $companystatic->name_alias = $obj->name_alias;
563 $companystatic->code_client = $obj->code_client;
564 $companystatic->code_compta = $obj->code_compta;
565 $companystatic->client = $obj->client;
566 $companystatic->code_fournisseur = $obj->code_fournisseur;
567 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
568 $companystatic->fournisseur = $obj->fournisseur;
569 $companystatic->logo = $obj->logo;
570 $companystatic->email = $obj->email;
571 $companystatic->entity = $obj->entity;
572 $companystatic->canvas = $obj->canvas;
574 print
'<tr class="oddeven">';
575 print
'<td class="nowraponall tdoverflowmax100">';
576 print $fichinterstatic->getNomUrl(1);
578 print
'<td class="nowrap tdoverflowmax100">';
579 print $companystatic->getNomUrl(1,
'customer');
588 print
"</table></div>";
592 print
'</div><div class="fichetwothirdright">';
597 if (
isModEnabled(
"societe") && $user->hasRight(
'societe',
'lire')) {
598 $sql =
"SELECT s.rowid as socid, s.nom as name, s.name_alias";
599 $sql .=
", s.code_client, s.code_compta, s.client";
600 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
601 $sql .=
", s.logo, s.email, s.entity";
602 $sql .=
", s.canvas";
603 $sql .=
", s.datec, s.tms";
604 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
605 if (empty($user->rights->societe->client->voir) && !$socid) {
606 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
608 $sql .=
" WHERE s.entity IN (".getEntity($companystatic->element).
")";
610 if (empty($user->rights->societe->client->voir) && !$socid) {
611 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
614 $parameters = array(
'socid' => $socid);
615 $reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $companystatic);
616 if (empty($reshook)) {
618 $sql .=
" AND s.rowid = ".((int) $socid);
621 $sql .= $hookmanager->resPrint;
622 $sql .=
" ORDER BY s.tms DESC";
623 $sql .= $db->plimit($max, 0);
625 $resql = $db->query($sql);
627 if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {
628 $header =
"BoxTitleLastCustomersOrProspects";
629 } elseif (!empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {
630 $header =
"BoxTitleLastModifiedProspects";
632 $header =
"BoxTitleLastModifiedCustomers";
635 $num = $db->num_rows(
$resql);
636 startSimpleTable($langs->trans($header, min($max, $num)),
"societe/list.php",
"type=p,c", 1);
641 while ($i < $num && $i < $max) {
642 $objp = $db->fetch_object(
$resql);
644 $companystatic->id = $objp->socid;
645 $companystatic->name = $objp->name;
646 $companystatic->name_alias = $objp->name_alias;
647 $companystatic->code_client = $objp->code_client;
648 $companystatic->code_compta = $objp->code_compta;
649 $companystatic->client = $objp->client;
650 $companystatic->code_fournisseur = $objp->code_fournisseur;
651 $companystatic->code_compta_fournisseur = $objp->code_compta_fournisseur;
652 $companystatic->fournisseur = $objp->fournisseur;
653 $companystatic->logo = $objp->logo;
654 $companystatic->email = $objp->email;
655 $companystatic->entity = $objp->entity;
656 $companystatic->canvas = $objp->canvas;
658 print
'<tr class="oddeven">';
659 print
'<td class="nowraponall tdoverflowmax100">'.$companystatic->getNomUrl(1,
'customer').
'</td>';
660 print
'<td class="nowrap">';
663 $obj = $companystatic;
665 if (($obj->client == 2 || $obj->client == 3) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) {
666 $s .=
'<a class="customer-back opacitymedium" title="'.$langs->trans(
"Prospect").
'" href="'.DOL_URL_ROOT.
'/comm/card.php?socid='.$companystatic->id.
'">'.
dol_substr($langs->trans(
"Prospect"), 0, 1).
'</a>';
668 if (($obj->client == 1 || $obj->client == 3) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {
669 $s .=
'<a class="customer-back" title="'.$langs->trans(
"Customer").
'" href="'.DOL_URL_ROOT.
'/comm/card.php?socid='.$companystatic->id.
'">'.
dol_substr($langs->trans(
"Customer"), 0, 1).
'</a>';
680 $datem = $db->jdate($objp->tms);
681 print
'<td class="right nowrap tddate" title="'.dol_escape_htmltag($langs->trans(
"DateModification").
': '.
dol_print_date($datem,
'dayhour',
'tzuserrel')).
'">';
703 if (((
isModEnabled(
"fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) ||
isModEnabled(
"supplier_order") ||
isModEnabled(
"supplier_invoice")) && $user->hasRight(
'societe',
'lire')) {
704 $sql =
"SELECT s.rowid as socid, s.nom as name, s.name_alias";
705 $sql .=
", s.code_client, s.code_compta, s.client";
706 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
707 $sql .=
", s.logo, s.email, s.entity";
708 $sql .=
", s.canvas";
709 $sql .=
", s.datec as dc, s.tms as dm";
710 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
711 if (empty($user->rights->societe->client->voir) && !$user->socid) {
712 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
714 $sql .=
" WHERE s.entity IN (".getEntity($companystatic->element).
")";
715 $sql .=
" AND s.fournisseur = ".Societe::SUPPLIER;
716 if (empty($user->rights->societe->client->voir) && !$user->socid) {
717 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
720 $parameters = array(
'socid' => $socid);
721 $reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $companystatic);
722 if (empty($reshook)) {
724 $sql .=
" AND s.rowid = ".((int) $socid);
727 $sql .= $hookmanager->resPrint;
728 $sql .=
" ORDER BY s.datec DESC";
729 $sql .= $db->plimit($max, 0);
731 $resql = $db->query($sql);
733 $num = $db->num_rows(
$resql);
734 startSimpleTable($langs->trans(
"BoxTitleLastModifiedSuppliers", min($max, $num)),
"societe/list.php",
"type=f", 1);
738 while ($i < $num && $i < $max) {
739 $objp = $db->fetch_object(
$resql);
741 $companystatic->id = $objp->socid;
742 $companystatic->name = $objp->name;
743 $companystatic->name_alias = $objp->name_alias;
744 $companystatic->code_client = $objp->code_client;
745 $companystatic->code_compta = $objp->code_compta;
746 $companystatic->client = $objp->client;
747 $companystatic->code_fournisseur = $objp->code_fournisseur;
748 $companystatic->code_compta_fournisseur = $objp->code_compta_fournisseur;
749 $companystatic->fournisseur = $objp->fournisseur;
750 $companystatic->logo = $objp->logo;
751 $companystatic->email = $objp->email;
752 $companystatic->entity = $objp->entity;
753 $companystatic->canvas = $objp->canvas;
755 print
'<tr class="oddeven">';
756 print
'<td class="nowraponall tdoverflowmax100">'.$companystatic->getNomUrl(1,
'supplier').
'</td>';
759 $obj = $companystatic;
768 if (((
isModEnabled(
"fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) ||
isModEnabled(
"supplier_order") ||
isModEnabled(
"supplier_invoice")) && $obj->fournisseur) {
769 $s .=
'<a class="vendor-back" title="'.$langs->trans(
"Supplier").
'" href="'.DOL_URL_ROOT.
'/fourn/card.php?socid='.$companystatic->id.
'">'.
dol_substr($langs->trans(
"Supplier"), 0, 1).
'</a>';
775 $datem = $db->jdate($objp->dm);
776 print
'<td class="right tddate" title="'.dol_escape_htmltag($langs->trans(
"DateModification").
': '.
dol_print_date($datem,
'dayhour',
'tzuserrel')).
'">';
814 if (
isModEnabled(
'contrat') && $user->hasRight(
"contrat",
"lire") && 0) {
815 $staticcontrat =
new Contrat($db);
817 $sql =
"SELECT s.rowid as socid, s.nom as name, s.name_alias";
818 $sql .=
", s.code_client, s.code_compta, s.client";
819 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
820 $sql .=
", s.logo, s.email, s.entity";
821 $sql .=
", s.canvas";
822 $sql .=
", c.statut, c.rowid as contratid, p.ref, c.fin_validite as datefin, c.date_cloture as dateclo";
823 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
824 $sql .=
", ".MAIN_DB_PREFIX.
"contrat as c";
825 $sql .=
", ".MAIN_DB_PREFIX.
"product as p";
826 if (empty($user->rights->societe->client->voir) && !$socid) {
827 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
829 $sql .=
" WHERE c.entity IN (".getEntity($staticcontrat->element).
")";
830 $sql .=
" AND c.fk_soc = s.rowid";
831 $sql .=
" AND c.fk_product = p.rowid";
832 if (empty($user->rights->societe->client->voir) && !$socid) {
833 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
836 $sql .=
" AND s.rowid = ".((int) $socid);
838 $sql .=
" ORDER BY c.tms DESC";
839 $sql .= $db->plimit($max + 1, 0);
841 $resql = $db->query($sql);
843 $num = $db->num_rows(
$resql);
850 $obj = $db->fetch_object(
$resql);
852 $companystatic->id = $obj->socid;
853 $companystatic->name = $obj->name;
854 $companystatic->name_alias = $obj->name_alias;
855 $companystatic->code_client = $obj->code_client;
856 $companystatic->code_compta = $obj->code_compta;
857 $companystatic->client = $obj->client;
858 $companystatic->code_fournisseur = $obj->code_fournisseur;
859 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
860 $companystatic->fournisseur = $obj->fournisseur;
861 $companystatic->logo = $obj->logo;
862 $companystatic->email = $obj->email;
863 $companystatic->entity = $obj->entity;
864 $companystatic->canvas = $obj->canvas;
866 $staticcontrat->id = $obj->contratid;
867 $staticcontrat->ref = $obj->ref;
869 print
'<tr class="oddeven">';
870 print
'<td class="nowraponall">'.$staticcontrat->getNomUrl(1).
'</td>';
871 print
'<td class="tdoverflowmax150">'.$companystatic->getNomUrl(1,
'customer').
'</td>';
872 print
'<td class="right">'.$staticcontrat->LibStatut($obj->statut, 3).
'</td>';
892 if (
isModEnabled(
"propal") && $user->hasRight(
"propal",
"lire")) {
893 $sql =
"SELECT p.rowid as propalid, p.entity, p.total_ttc, p.total_ht, p.total_tva, p.ref, p.ref_client, p.fk_statut, p.datep as dp, p.fin_validite as dfv";
894 $sql .=
", s.rowid as socid, s.nom as name, s.name_alias";
895 $sql .=
", s.code_client, s.code_compta, s.client";
896 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
897 $sql .=
", s.logo, s.email, s.entity";
898 $sql .=
", s.canvas";
899 $sql .=
" FROM ".MAIN_DB_PREFIX.
"propal as p";
900 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
901 if (empty($user->rights->societe->client->voir) && !$socid) {
902 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
904 $sql .=
" WHERE p.entity IN (".getEntity($propalstatic->element).
")";
905 $sql .=
" AND p.fk_soc = s.rowid";
906 $sql .=
" AND p.fk_statut = ".Propal::STATUS_VALIDATED;
907 if (empty($user->rights->societe->client->voir) && !$socid) {
908 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
911 $sql .=
" AND s.rowid = ".((int) $socid);
913 $sql .=
" ORDER BY p.rowid DESC";
915 $resql = $db->query($sql);
917 $total = $total_ttc = 0;
918 $num = $db->num_rows(
$resql);
919 $nbofloop = min($num, (empty($conf->global->MAIN_MAXLIST_OVERLOAD) ? 500 : $conf->global->MAIN_MAXLIST_OVERLOAD));
920 startSimpleTable(
"ProposalsOpened",
"comm/propal/list.php",
"search_status=1", 4, $num);
926 while ($i < $nbofloop) {
927 $obj = $db->fetch_object(
$resql);
932 $total += $obj->total_ht;
933 $total_ttc += $obj->total_ttc;
937 $propalstatic->id = $obj->propalid;
938 $propalstatic->ref = $obj->ref;
939 $propalstatic->ref_client = $obj->ref_client;
940 $propalstatic->total_ht = $obj->total_ht;
941 $propalstatic->total_tva = $obj->total_tva;
942 $propalstatic->total_ttc = $obj->total_ttc;
944 $companystatic->id = $obj->socid;
945 $companystatic->name = $obj->name;
946 $companystatic->name_alias = $obj->name_alias;
947 $companystatic->code_client = $obj->code_client;
948 $companystatic->code_compta = $obj->code_compta;
949 $companystatic->client = $obj->client;
950 $companystatic->code_fournisseur = $obj->code_fournisseur;
951 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
952 $companystatic->fournisseur = $obj->fournisseur;
953 $companystatic->logo = $obj->logo;
954 $companystatic->email = $obj->email;
955 $companystatic->entity = $obj->entity;
956 $companystatic->canvas = $obj->canvas;
961 $warning = ($db->jdate($obj->dfv) < ($now - $conf->propal->cloture->warning_delay)) ?
img_warning($langs->trans(
"Late")) :
'';
963 print
'<tr class="oddeven">';
965 print
'<td class="nowrap" width="140">';
966 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
967 print
'<td class="nobordernopadding nowraponall">'.$propalstatic->getNomUrl(1).
'</td>';
968 print
'<td width="18" class="nobordernopadding nowrap">'.$warning.
'</td>';
969 print
'<td width="16" align="center" class="nobordernopadding">'.$formfile->getDocumentsLink($propalstatic->element, $filename, $filedir).
'</td>';
974 print
'<td class="tdoverflowmax150">'.$companystatic->getNomUrl(1,
'customer').
'</td>';
975 $datem = $db->jdate($obj->dp);
976 print
'<td class="center tddate" title="'.dol_escape_htmltag($langs->trans(
"Date").
': '.
dol_print_date($datem,
'day',
'tzserver')).
'">';
979 print
'<td class="right tdamount amount">'.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).
'</td>';
980 print
'<td align="center" width="14">'.$propalstatic->LibStatut($obj->fk_statut, 3).
'</td>';
985 $total += $obj->total_ht;
986 $total_ttc += $obj->total_ttc;
990 print
'<tr class="oddeven">';
991 print
'<td class="nowrap" colspan="5">';
992 print
'<span class="opacitymedium">'.$langs->trans(
"More").
'... ('.$othernb.
')</span>';
998 addSummaryTableLine(5, $num, $nbofloop, empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $total_ttc : $total,
"NoProposal",
true);
1011 if (
isModEnabled(
'commande') && $user->rights->commande->lire) {
1012 $sql =
"SELECT c.rowid as commandeid, c.total_ttc, c.total_ht, c.total_tva, c.ref, c.ref_client, c.fk_statut, c.date_valid as dv, c.facture as billed";
1013 $sql .=
", s.rowid as socid, s.nom as name, s.name_alias";
1014 $sql .=
", s.code_client, s.code_compta, s.client";
1015 $sql .=
", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
1016 $sql .=
", s.logo, s.email, s.entity";
1017 $sql .=
", s.canvas";
1018 $sql .=
" FROM ".MAIN_DB_PREFIX.
"commande as c";
1019 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
1020 if (empty($user->rights->societe->client->voir) && !$socid) {
1021 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
1023 $sql .=
" WHERE c.entity IN (".getEntity($orderstatic->element).
")";
1024 $sql .=
" AND c.fk_soc = s.rowid";
1026 if (empty($user->rights->societe->client->voir) && !$socid) {
1027 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
1030 $sql .=
" AND s.rowid = ".((int) $socid);
1032 $sql .=
" ORDER BY c.rowid DESC";
1034 $resql = $db->query($sql);
1036 $total = $total_ttc = 0;
1037 $num = $db->num_rows(
$resql);
1038 $nbofloop = min($num, (empty($conf->global->MAIN_MAXLIST_OVERLOAD) ? 500 : $conf->global->MAIN_MAXLIST_OVERLOAD));
1045 while ($i < $nbofloop) {
1046 $obj = $db->fetch_object(
$resql);
1051 $total += $obj->total_ht;
1052 $total_ttc += $obj->total_ttc;
1056 $orderstatic->id = $obj->commandeid;
1057 $orderstatic->ref = $obj->ref;
1058 $orderstatic->ref_client = $obj->ref_client;
1059 $orderstatic->statut = $obj->fk_statut;
1060 $orderstatic->total_ht = $obj->total_ht;
1061 $orderstatic->total_tva = $obj->total_tva;
1062 $orderstatic->total_ttc = $obj->total_ttc;
1064 $companystatic->id = $obj->socid;
1065 $companystatic->name = $obj->name;
1066 $companystatic->name_alias = $obj->name_alias;
1067 $companystatic->code_client = $obj->code_client;
1068 $companystatic->code_compta = $obj->code_compta;
1069 $companystatic->client = $obj->client;
1070 $companystatic->code_fournisseur = $obj->code_fournisseur;
1071 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
1072 $companystatic->fournisseur = $obj->fournisseur;
1073 $companystatic->logo = $obj->logo;
1074 $companystatic->email = $obj->email;
1075 $companystatic->entity = $obj->entity;
1076 $companystatic->canvas = $obj->canvas;
1083 print
'<tr class="oddeven">';
1085 print
'<td class="nowrap" width="140">';
1086 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
1087 print
'<td class="nobordernopadding nowraponall">'.$orderstatic->getNomUrl(1).
'</td>';
1088 print
'<td width="18" class="nobordernopadding nowrap"></td>';
1089 print
'<td width="16" align="center" class="nobordernopadding">'.$formfile->getDocumentsLink($orderstatic->element, $filename, $filedir).
'</td>';
1094 print
'<td class="tdoverflowmax150">'.$companystatic->getNomUrl(1,
'customer').
'</td>';
1095 $datem = $db->jdate($obj->dv);
1096 print
'<td class="center tddate" title="'.dol_escape_htmltag($langs->trans(
"DateValue").
': '.
dol_print_date($datem,
'day',
'tzserver')).
'">';
1100 print
'<td class="right tdamount amount">'.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).
'</td>';
1101 print
'<td align="center" width="14">'.$orderstatic->LibStatut($obj->fk_statut, $obj->billed, 3).
'</td>';
1106 $total += $obj->total_ht;
1107 $total_ttc += $obj->total_ttc;
1111 print
'<tr class="oddeven">';
1112 print
'<td class="nowrap" colspan="5">';
1113 print
'<span class="opacitymedium">'.$langs->trans(
"More").
'... ('.$othernb.
')</span>';
1119 addSummaryTableLine(5, $num, $nbofloop, empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $total_ttc : $total,
"None",
true);
1131 $parameters = array(
'user' => $user);
1132 $reshook = $hookmanager->executeHooks(
'dashboardCommercials', $parameters, $object);