31 require
"../main.inc.php";
32 require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
33 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
34 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
35 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.class.php';
39 $langs->loadLangs(array(
"companies",
"bills",
"orders",
"suppliers",
"propal",
"interventions",
"contracts",
"products"));
42 $contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'thirdpartylist';
47 $socid = $user->socid;
57 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
58 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
60 $optioncss =
GETPOST(
'optioncss',
'alpha');
62 if (empty($page) || $page == -1) {
65 $offset = $limit * $page;
66 $pageprev = $page - 1;
67 $pagenext = $page + 1;
72 $sortfield =
'dateprint';
77 $sprod_fulldescr =
GETPOST(
"sprod_fulldescr");
82 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
84 $sprod_fulldescr =
'';
90 $thirdTypeSelect =
GETPOST(
"third_select_id",
'aZ09');
91 $type_element =
GETPOST(
'type_element') ?
GETPOST(
'type_element') :
'';
95 $hookmanager->initHooks(array(
'consumptionthirdparty',
'globalcard'));
102 $parameters = array(
'id' => $socid);
103 $reshook = $hookmanager->executeHooks(
'doActions', $parameters,
$object, $action);
114 $form =
new Form($db);
116 $productstatic =
new Product($db);
118 $title = $langs->trans(
"Referers",
$object->name);
120 $title =
$object->name.
" - ".$title;
122 $help_url =
'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
131 print
dol_get_fiche_head($head,
'consumption', $langs->trans(
"ThirdParty"), -1,
'company');
133 $linkback =
'<a href="'.DOL_URL_ROOT.
'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
135 dol_banner_tab(
$object,
'socid', $linkback, ($user->socid ? 0 : 1),
'rowid',
'nom');
137 print
'<div class="fichecenter">';
139 print
'<div class="underbanner clearboth"></div>';
140 print
'<table class="border centpercent tableforfield">';
143 print
'<tr><td class="titlefield">'.$langs->trans(
'NatureOfThirdParty').
'</td><td>';
148 print
'<tr><td class="titlefield">'.$langs->trans(
'Prefix').
'</td><td colspan="3">'.
$object->prefix_comm.
'</td></tr>';
152 $elementTypeArray = array();
155 print
'<tr><td class="titlefield">';
156 print $langs->trans(
'CustomerCode').
'</td><td colspan="3">';
158 $tmpcheck =
$object->check_codeclient();
159 if ($tmpcheck != 0 && $tmpcheck != -5) {
160 print
' <span class="error">('.$langs->trans(
"WrongCustomerCode").
')</span>';
163 $sql =
"SELECT count(*) as nb from ".MAIN_DB_PREFIX.
"facture where fk_soc = ".((int) $socid);
164 $resql = $db->query(
$sql);
169 $obj = $db->fetch_object($resql);
170 $nbFactsClient = $obj->nb;
171 $thirdTypeArray = array();
172 $thirdTypeArray[
'customer'] = $langs->trans(
"customer");
173 if (
isModEnabled(
"propal") && $user->hasRight(
'propal',
'lire')) {
174 $elementTypeArray[
'propal'] = $langs->transnoentitiesnoconv(
'Proposals');
176 if (
isModEnabled(
'order') && $user->hasRight(
'commande',
'lire')) {
177 $elementTypeArray[
'order'] = $langs->transnoentitiesnoconv(
'Orders');
179 if (
isModEnabled(
'invoice') && $user->hasRight(
'facture',
'lire')) {
180 $elementTypeArray[
'invoice'] = $langs->transnoentitiesnoconv(
'Invoices');
182 if (
isModEnabled(
'shipping') && $user->hasRight(
'expedition',
'lire')) {
183 $elementTypeArray[
'shipment'] = $langs->transnoentitiesnoconv(
'Shipments');
185 if (
isModEnabled(
'contract') && $user->hasRight(
'contrat',
'lire')) {
186 $elementTypeArray[
'contract'] = $langs->transnoentitiesnoconv(
'Contracts');
190 if (
isModEnabled(
'intervention') && $user->hasRight(
'ficheinter',
'lire')) {
191 $elementTypeArray[
'fichinter'] = $langs->transnoentitiesnoconv(
'Interventions');
195 $langs->load(
"supplier_proposal");
196 print
'<tr><td class="titlefield">';
197 print $langs->trans(
'SupplierCode').
'</td><td colspan="3">';
199 $tmpcheck =
$object->check_codefournisseur();
200 if ($tmpcheck != 0 && $tmpcheck != -5) {
201 print
' <span class="error">('.$langs->trans(
"WrongSupplierCode").
')</span>';
204 $sql =
"SELECT count(*) as nb from ".MAIN_DB_PREFIX.
"commande_fournisseur where fk_soc = ".((int) $socid);
205 $resql = $db->query(
$sql);
210 $obj = $db->fetch_object($resql);
211 $nbCmdsFourn = $obj->nb;
212 $thirdTypeArray[
'supplier'] = $langs->trans(
"supplier");
213 if ((
isModEnabled(
'fournisseur') && $user->hasRight(
'fournisseur',
'facture',
'lire') && !
getDolGlobalString(
'MAIN_USE_NEW_SUPPLIERMOD')) || (
isModEnabled(
"supplier_invoice") && $user->hasRight(
'supplier_invoice',
'lire'))) {
214 $elementTypeArray[
'supplier_invoice'] = $langs->transnoentitiesnoconv(
'SuppliersInvoices');
216 if ((
isModEnabled(
'fournisseur') && $user->hasRight(
'fournisseur',
'commande',
'lire') && !
getDolGlobalString(
'MAIN_USE_NEW_SUPPLIERMOD')) || (
isModEnabled(
"supplier_order") && $user->hasRight(
'supplier_order',
'lire'))) {
217 $elementTypeArray[
'supplier_order'] = $langs->transnoentitiesnoconv(
'SuppliersOrders');
219 if (
isModEnabled(
'reception') && $user->hasRight(
'reception',
'lire')) {
220 $langs->load(
'receptions');
221 $elementTypeArray[
'reception'] = $langs->transnoentitiesnoconv(
'Receptions');
223 if (
isModEnabled(
'supplier_proposal') && $user->hasRight(
'supplier_proposal',
'lire')) {
224 $elementTypeArray[
'supplier_proposal'] = $langs->transnoentitiesnoconv(
'SupplierProposals');
235 print
'<form method="POST" action="'.$_SERVER[
'PHP_SELF'].
'?socid='.$socid.
'">';
236 print
'<input type="hidden" name="token" value="'.newToken().
'">';
239 $documentstaticline =
'';
250 if ($type_element ==
'fichinter') {
251 require_once DOL_DOCUMENT_ROOT.
'/fichinter/class/fichinter.class.php';
253 $sql_select =
'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datec as dateprint, f.fk_statut as status, NULL as paid, ';
254 $sql_select .=
'NULL as fk_product, NULL as info_bits, NULL as date_start, NULL as date_end, NULL as prod_qty, NULL as total_ht, ';
255 $tables_from = MAIN_DB_PREFIX.
"fichinter as f LEFT JOIN ".MAIN_DB_PREFIX.
"fichinterdet as d ON d.fk_fichinter = f.rowid";
256 $where =
" WHERE f.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
257 $where .=
" AND f.entity = ".$conf->entity;
258 $dateprint =
'f.datec';
259 $doc_number =
'f.ref';
261 if ($type_element ==
'invoice') {
262 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
263 $documentstatic =
new Facture($db);
264 $sql_select =
'SELECT f.rowid as doc_id, f.ref as doc_number, f.type as doc_type, f.datef as dateprint, f.fk_statut as status, f.paye as paid, d.fk_remise_except, ';
265 $tables_from = MAIN_DB_PREFIX.
"facture as f,".MAIN_DB_PREFIX.
"facturedet as d";
266 $where =
" WHERE f.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
267 $where .=
" AND d.fk_facture = f.rowid";
268 $where .=
" AND f.entity IN (".getEntity(
'invoice').
")";
269 $dateprint =
'f.datef';
270 $doc_number =
'f.ref';
271 $thirdTypeSelect =
'customer';
273 if ($type_element ==
'propal') {
274 require_once DOL_DOCUMENT_ROOT.
'/comm/propal/class/propal.class.php';
275 $documentstatic =
new Propal($db);
276 $sql_select =
'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.datep as dateprint, c.fk_statut as status, NULL as paid,';
277 $tables_from = MAIN_DB_PREFIX.
"propal as c,".MAIN_DB_PREFIX.
"propaldet as d";
278 $where =
" WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
279 $where .=
" AND d.fk_propal = c.rowid";
280 $where .=
" AND c.entity = ".$conf->entity;
281 $dateprint =
'c.datep';
282 $doc_number =
'c.ref';
283 $thirdTypeSelect =
'customer';
285 if ($type_element ==
'order') {
286 require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
287 $langs->load(
'sendings');
288 $documentstatic =
new Commande($db);
289 $sql_select =
'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, c.fk_statut as status, NULL as paid, c.date_livraison as delivery_planned_date,';
290 $tables_from = MAIN_DB_PREFIX.
"commande as c,".MAIN_DB_PREFIX.
"commandedet as d";
291 $where =
" WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
292 $where .=
" AND d.fk_commande = c.rowid";
293 $where .=
" AND c.entity = ".$conf->entity;
294 $dateprint =
'c.date_commande';
295 $doc_number =
'c.ref';
296 $thirdTypeSelect =
'customer';
298 if ($type_element ==
'shipment') {
299 require_once DOL_DOCUMENT_ROOT.
'/expedition/class/expedition.class.php';
300 $langs->load(
'sendings');
302 $sql_select =
'SELECT e.rowid as doc_id, e.ref as doc_number, \'1\' as doc_type, e.date_creation as dateprint, e.fk_statut as status, NULL as paid, e.date_delivery as delivery_planned_date,';
303 $tables_from = MAIN_DB_PREFIX.
"expedition as e,".MAIN_DB_PREFIX.
"expeditiondet as ed,".MAIN_DB_PREFIX.
"commandedet as d";
304 $where =
" WHERE e.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
305 $where .=
" AND ed.fk_expedition = e.rowid";
306 $where .=
" AND ed.element_type = 'commande' AND ed.fk_elementdet = d.rowid";
307 $where .=
" AND e.entity = ".$conf->entity;
308 $dateprint =
'e.date_creation';
309 $doc_number =
'e.ref';
310 $thirdTypeSelect =
'customer';
312 if ($type_element ==
'supplier_invoice') {
313 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
315 $sql_select =
'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datef as dateprint, f.fk_statut as status, f.paye as paid, ';
316 $tables_from = MAIN_DB_PREFIX.
"facture_fourn as f,".MAIN_DB_PREFIX.
"facture_fourn_det as d";
317 $where =
" WHERE f.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
318 $where .=
" AND d.fk_facture_fourn = f.rowid";
319 $where .=
" AND f.entity = ".$conf->entity;
320 $dateprint =
'f.datef';
321 $doc_number =
'f.ref';
322 $thirdTypeSelect =
'supplier';
324 if ($type_element ==
'supplier_proposal') {
325 require_once DOL_DOCUMENT_ROOT.
'/supplier_proposal/class/supplier_proposal.class.php';
327 $sql_select =
'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, NULL as paid, ';
328 $tables_from = MAIN_DB_PREFIX.
"supplier_proposal as c,".MAIN_DB_PREFIX.
"supplier_proposaldet as d";
329 $where =
" WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
330 $where .=
" AND d.fk_supplier_proposal = c.rowid";
331 $where .=
" AND c.entity = ".$conf->entity;
332 $dateprint =
'c.date_valid';
333 $doc_number =
'c.ref';
334 $thirdTypeSelect =
'supplier';
336 if ($type_element ==
'supplier_order') {
337 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
338 $langs->load(
'sendings');
340 $sql_select =
'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, NULL as paid, c.date_livraison as delivery_planned_date, ';
341 $tables_from = MAIN_DB_PREFIX.
"commande_fournisseur as c,".MAIN_DB_PREFIX.
"commande_fournisseurdet as d";
342 $where =
" WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
343 $where .=
" AND d.fk_commande = c.rowid";
344 $where .=
" AND c.entity = ".$conf->entity;
345 $dateprint =
'c.date_valid';
346 $doc_number =
'c.ref';
347 $thirdTypeSelect =
'supplier';
349 if ($type_element ==
'reception') {
350 require_once DOL_DOCUMENT_ROOT.
'/reception/class/reception.class.php';
351 $langs->loadLangs([
'sendings',
'receptions']);
353 $sql_select =
'SELECT r.rowid as doc_id, r.ref as doc_number, \'1\' as doc_type, r.date_creation as dateprint, r.fk_statut as status, NULL as paid, r.date_delivery as delivery_planned_date, ';
354 $tables_from = MAIN_DB_PREFIX.
"reception as r,".MAIN_DB_PREFIX.
"receptiondet_batch as rd,".MAIN_DB_PREFIX.
"commande_fournisseurdet as d";
355 $where =
" WHERE r.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
356 $where .=
" AND rd.fk_reception = r.rowid";
357 $where .=
" AND rd.fk_elementdet = d.rowid AND rd.element_type = 'supplier_order'";
358 $where .=
" AND r.entity = ".$conf->entity;
359 $dateprint =
'r.date_creation';
360 $doc_number =
'r.ref';
361 $thirdTypeSelect =
'supplier';
363 if ($type_element ==
'contract') {
364 require_once DOL_DOCUMENT_ROOT.
'/contrat/class/contrat.class.php';
365 $documentstatic =
new Contrat($db);
367 $sql_select =
'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_contrat as dateprint, d.statut as status, NULL as paid,';
368 $tables_from = MAIN_DB_PREFIX.
"contrat as c,".MAIN_DB_PREFIX.
"contratdet as d";
369 $where =
" WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid);
370 $where .=
" AND d.fk_contrat = c.rowid";
371 $where .=
" AND c.entity = ".$conf->entity;
372 $dateprint =
'c.date_valid';
373 $doc_number =
'c.ref';
374 $thirdTypeSelect =
'customer';
377 $parameters = array();
378 $reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
380 if (!empty($sql_select)) {
382 $sql .=
' d.description as description,';
383 if ($type_element !=
'fichinter' && $type_element !=
'contract' && $type_element !=
'supplier_proposal' && $type_element !=
'shipment' && $type_element !=
'reception') {
384 $sql .=
' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_start, d.date_end, d.qty, d.qty as prod_qty, d.total_ht as total_ht, ';
386 if ($type_element ==
'supplier_proposal') {
387 $sql .=
' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.qty, d.qty as prod_qty, d.total_ht as total_ht, ';
389 if ($type_element ==
'contract') {
390 $sql .=
' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_ouverture as date_start, d.date_cloture as date_end, d.qty, d.qty as prod_qty, d.total_ht as total_ht, ';
392 if ($type_element ==
'shipment') {
393 $sql .=
' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_start, d.date_end, ed.qty, ed.qty as prod_qty, ed.qty * d.subprice * (100 - d.remise_percent) / 100 as total_ht, ';
395 if ($type_element ==
'reception') {
396 $sql .=
' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_start, d.date_end, rd.qty, rd.qty as prod_qty, rd.qty * d.subprice * (100 - d.remise_percent) / 100 as total_ht, ';
398 if ($type_element !=
'fichinter') {
399 $sql .=
' p.ref as ref, p.rowid as prod_id, p.rowid as fk_product, p.fk_product_type as prod_type, p.fk_product_type as fk_product_type, p.entity as pentity, ';
401 $sql .=
" s.rowid as socid ";
402 if ($type_element !=
'fichinter') {
403 $sql .=
", p.ref as prod_ref, p.label as product_label";
405 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s, ".$tables_from;
406 if ($type_element !=
'fichinter') {
407 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'product as p ON d.fk_product = p.rowid ';
412 $sql .=
" AND ".$doc_number.
" LIKE '%".$db->escape($sref).
"%'";
414 if ($sprod_fulldescr) {
416 $sql .=
" AND (d.description LIKE '%".$db->escape($sprod_fulldescr).
"%' OR d.description LIKE '%".$db->escape(
dol_escape_htmltag($sprod_fulldescr)).
"%'";
417 if (
GETPOST(
'type_element') !=
'fichinter') {
418 $sql .=
" OR p.ref LIKE '%".$db->escape($sprod_fulldescr).
"%'";
420 if (
GETPOST(
'type_element') !=
'fichinter') {
421 $sql .=
" OR p.label LIKE '%".$db->escape($sprod_fulldescr).
"%'";
425 $sql .= $db->order($sortfield, $sortorder);
427 $resql = $db->query(
$sql);
428 $totalnboflines = $db->num_rows($resql);
430 $sql .= $db->plimit($limit + 1, $offset);
436 if (empty($elementTypeArray) && !
$object->client && !
$object->fournisseur) {
437 $showempty = $langs->trans(
"ThirdpartyNotCustomerNotSupplierSoNoRef");
442 $typeElementString = $form->selectarray(
"type_element", $elementTypeArray,
GETPOST(
'type_element'), $showempty, 0, 0,
'', 0, 0, $disabled,
'',
'maxwidth150onsmartphone');
443 $button =
'<input type="submit" class="button buttonform small" name="button_third" value="'.dol_escape_htmltag($langs->trans(
"Search")).
'" title="'.
dol_escape_htmltag($langs->trans(
"Search")).
'">';
449 $resql = $db->query(
$sql);
454 $num = $db->num_rows($resql);
456 $param =
"&socid=".urlencode((
string) ($socid)).
"&type_element=".urlencode((
string) ($type_element));
457 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
458 $param .=
'&contextpage='.urlencode($contextpage);
460 if ($limit > 0 && $limit != $conf->liste_limit) {
461 $param .=
'&limit='.((int) $limit);
463 if ($sprod_fulldescr) {
464 $param .=
"&sprod_fulldescr=".urlencode($sprod_fulldescr);
467 $param .=
"&sref=".urlencode($sref);
470 $param .=
"&month=".urlencode((
string) ($month));
473 $param .=
"&year=".urlencode((
string) ($year));
476 $param .=
'&optioncss='.urlencode($optioncss);
479 print_barre_liste($langs->trans(
'ProductsIntoElements').
' '.$typeElementString.
' '.$button, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num, $totalnboflines,
'', 0,
'',
'', $limit);
481 print
'<div class="div-table-responsive-no-min">';
482 print
'<table class="liste centpercent">'.
"\n";
485 print
'<tr class="liste_titre">';
486 print
'<td class="liste_titre left">';
487 print
'<input class="flat" type="text" name="sref" size="8" value="'.$sref.
'">';
489 print
'<td class="liste_titre nowrap center valignmiddle">';
490 print $formother->select_month($month ? $month : -1,
'month', 1, 0,
'valignmiddle');
491 print $formother->selectyear($year ? $year : -1,
'year', 1, 20, 1, 0, 0,
'',
'valignmiddle maxwidth75imp marginleftonly');
494 if ($type_element ==
'order' || $type_element ==
'supplier_order' || $type_element ==
'shipment') {
495 print
'<td class="liste_titre center"></td>';
497 print
'<td class="liste_titre center">';
499 print
'<td class="liste_titre left">';
500 print
'<input class="flat" type="text" name="sprod_fulldescr" size="15" value="'.dol_escape_htmltag($sprod_fulldescr).
'">';
502 print
'<td class="liste_titre center">';
504 print
'<td class="liste_titre center">';
506 print
'<td class="liste_titre maxwidthsearch">';
507 $searchpicto = $form->showFilterAndCheckAddButtons(0);
513 print
'<tr class="liste_titre">';
514 print_liste_field_titre(
'Ref', $_SERVER[
'PHP_SELF'],
'doc_number',
'', $param,
'', $sortfield, $sortorder,
'left ');
515 print_liste_field_titre(
'Date', $_SERVER[
'PHP_SELF'],
'dateprint',
'', $param,
'', $sortfield, $sortorder,
'center ');
517 if ($type_element ==
'order' || $type_element ==
'supplier_order' || $type_element ==
'shipment') {
518 print_liste_field_titre(
'DateDeliveryPlanned', $_SERVER[
'PHP_SELF'],
'delivery_planned_date',
'', $param,
'', $sortfield, $sortorder,
'center ');
520 print_liste_field_titre(
'Status', $_SERVER[
'PHP_SELF'],
'fk_statut',
'', $param,
'', $sortfield, $sortorder,
'center ');
522 print_liste_field_titre(
'Quantity', $_SERVER[
'PHP_SELF'],
'prod_qty',
'', $param,
'', $sortfield, $sortorder,
'right ');
523 print_liste_field_titre(
'TotalHT', $_SERVER[
'PHP_SELF'],
'total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
524 print_liste_field_titre(
'UnitPrice', $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
529 while (($objp = $db->fetch_object($resql)) && $i < min($num, $limit)) {
530 $documentstatic->id = $objp->doc_id;
531 $documentstatic->ref = $objp->doc_number;
532 $documentstatic->type = $objp->doc_type;
533 $documentstatic->fk_statut = $objp->status;
534 $documentstatic->fk_status = $objp->status;
535 $documentstatic->statut = $objp->status;
536 $documentstatic->status = $objp->status;
537 $documentstatic->paye = $objp->paid;
538 $documentstatic->alreadypaid = $objp->paid;
540 if (is_object($documentstaticline)) {
541 $documentstaticline->statut = $objp->status;
544 print
'<tr class="oddeven">';
545 print
'<td class="nobordernopadding nowrap" width="100">';
546 print $documentstatic->getNomUrl(1);
548 print
'<td class="center" width="80">'.dol_print_date($db->jdate($objp->dateprint),
'day').
'</td>';
550 if ($type_element ==
'order' || $type_element ==
'supplier_order' || $type_element ==
'shipment') {
551 print
'<td class="center">'.dol_print_date($db->jdate($objp->delivery_planned_date),
'day').
'</td>';
555 print
'<td class="center">';
556 if ($type_element ==
'contract') {
557 print $documentstaticline->getLibStatut(5);
558 } elseif ($type_element ==
'invoice') {
560 print $documentstatic->getLibStatut(5, $objp->paid);
561 } elseif ($type_element ==
'supplier_invoice') {
563 print $documentstatic->getLibStatut(5, $objp->paid);
565 print $documentstatic->getLibStatut(5);
570 print
'<td class="tdoverflowmax300">';
578 if ($objp->fk_product > 0) {
579 $product_static =
new Product($db);
581 $product_static->type = $objp->fk_product_type;
582 $product_static->id = $objp->fk_product;
583 $product_static->ref = $objp->ref;
584 $product_static->entity = $objp->pentity;
585 $text = $product_static->getNomUrl(1);
589 if ($objp->fk_product > 0) {
593 $prod->fetch($objp->fk_product);
595 $outputlangs = $langs;
597 if (empty($newlang) &&
GETPOST(
'lang_id',
'aZ09')) {
598 $newlang =
GETPOST(
'lang_id',
'aZ09');
600 if (empty($newlang)) {
601 $newlang =
$object->default_lang;
603 if (!empty($newlang)) {
605 $outputlangs->setDefaultLang($newlang);
608 $label = (!empty($prod->multilangs[$outputlangs->defaultlang][
"label"])) ? $prod->multilangs[$outputlangs->defaultlang][
"label"] : $objp->product_label;
610 $label = $objp->product_label;
613 $text .=
' - '.(!empty($objp->label) ? $objp->label : $label);
617 if (($objp->info_bits & 2) == 2) { ?>
618 <a href=
"<?php echo DOL_URL_ROOT.'/comm/remx.php?id='.$object->id; ?>">
621 print
img_object($langs->trans(
"ShowReduc"),
'reduc').
' ';
622 if ($objp->description ==
'(DEPOSIT)') {
623 $txt = $langs->trans(
"Deposit");
624 } elseif ($objp->description ==
'(EXCESS RECEIVED)') {
625 $txt = $langs->trans(
"ExcessReceived");
626 } elseif ($objp->description ==
'(EXCESS PAID)') {
627 $txt = $langs->trans(
"ExcessPaid");
634 if ($objp->description) {
635 require_once DOL_DOCUMENT_ROOT.
'/core/class/discount.class.php';
636 if ($objp->description ==
'(CREDIT_NOTE)' && $objp->fk_remise_except > 0) {
638 $discount->fetch($objp->fk_remise_except);
639 echo($txt ?
' - ' :
'').$langs->transnoentities(
"DiscountFromCreditNote", $discount->getNomUrl(0));
641 if ($objp->description ==
'(EXCESS RECEIVED)' && $objp->fk_remise_except > 0) {
643 $discount->fetch($objp->fk_remise_except);
644 echo($txt ?
' - ' :
'').$langs->transnoentities(
"DiscountFromExcessReceived", $discount->getNomUrl(0));
645 } elseif ($objp->description ==
'(EXCESS PAID)' && $objp->fk_remise_except > 0) {
647 $discount->fetch($objp->fk_remise_except);
648 echo($txt ?
' - ' :
'').$langs->transnoentities(
"DiscountFromExcessPaid", $discount->getNomUrl(0));
649 } elseif ($objp->description ==
'(DEPOSIT)' && $objp->fk_remise_except > 0) {
651 $discount->fetch($objp->fk_remise_except);
652 echo($txt ?
' - ' :
'').$langs->transnoentities(
"DiscountFromDeposit", $discount->getNomUrl(0));
655 echo
' ('.dol_print_date($discount->datec).
')';
658 echo($txt ?
' - ' :
'').dol_htmlentitiesbr($objp->description);
662 if ($objp->fk_product > 0) {
663 echo $form->textwithtooltip($text, $description, 3,
'',
'', $i, 0,
'');
670 print (!empty($objp->description) && $objp->description != $objp->product_label) ?
'<br>'.dol_htmlentitiesbr($objp->description) :
'';
673 if (!empty($objp->label) || !empty($objp->description)) {
675 $text =
img_object($langs->trans(
'Service'),
'service');
677 $text =
img_object($langs->trans(
'Product'),
'product');
680 if (!empty($objp->label)) {
681 $text .=
' <strong>'.$objp->label.
'</strong>';
682 echo $form->textwithtooltip($text,
dol_htmlentitiesbr($objp->description), 3,
'',
'', $i, 0,
'');
715 $objp->prod_qty = -($objp->prod_qty);
717 print
'<td class="right"><span class="amount">'.$objp->prod_qty.
'</span></td>';
718 $total_qty += $objp->prod_qty;
720 print
'<td class="right"><span class="amount">'.price($objp->total_ht).
'</span></td>';
721 if (empty($total_ht)) {
724 $total_ht += (
float) $objp->total_ht;
726 print
'<td class="right">'.price($objp->total_ht / (empty($objp->prod_qty) ? 1 : $objp->prod_qty)).
'</td>';
732 print
'<tr class="liste_total">';
733 print
'<td>'.$langs->trans(
'Total').
'</td>';
734 print
'<td colspan="3"></td>';
736 if ($type_element ==
'order' || $type_element ==
'supplier_order' || $type_element ==
'shipment') {
739 print
'<td class="right">'.$total_qty.
'</td>';
740 print
'<td class="right">'.price($total_ht).
'</td>';
741 print
'<td class="right">'.price(
price2num($total_ht / (empty($total_qty) ? 1 : $total_qty),
'MU')).
'</td>';
746 print_barre_liste(
'', $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num);
749 } elseif (empty($type_element) || $type_element == -1) {
750 print_barre_liste($langs->trans(
'ProductsIntoElements').
' '.$typeElementString.
' '.$button, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', (!empty($num) ? $num : 0),
'',
'');
752 print
'<table class="liste centpercent">'.
"\n";
754 print
'<tr class="liste_titre">';
755 print_liste_field_titre(
'Ref', $_SERVER[
'PHP_SELF'],
'doc_number',
'', $param,
'', $sortfield, $sortorder,
'left ');
756 print_liste_field_titre(
'Date', $_SERVER[
'PHP_SELF'],
'dateprint',
'', $param,
'width="150"', $sortfield, $sortorder,
'center ');
757 print_liste_field_titre(
'Status', $_SERVER[
'PHP_SELF'],
'fk_status',
'', $param,
'', $sortfield, $sortorder,
'center ');
759 print_liste_field_titre(
'Quantity', $_SERVER[
'PHP_SELF'],
'prod_qty',
'', $param,
'', $sortfield, $sortorder,
'right ');
762 print
'<tr class="oddeven"><td colspan="5"><span class="opacitymedium">'.$langs->trans(
"SelectElementAndClick", $langs->transnoentitiesnoconv(
"Search")).
'</span></td></tr>';
766 print_barre_liste($langs->trans(
'ProductsIntoElements').
' '.$typeElementString.
' '.$button, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num,
'',
'');
768 print
'<table class="liste centpercent">'.
"\n";
770 print
'<tr class="oddeven"><td colspan="5"><span class="opacitymedium">'.$langs->trans(
"FeatureNotYetAvailable").
'</span></td></tr>';
if($user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage predefined suppliers products.
Class to manage customers orders.
Class to manage contracts.
Class to manage lines of contracts.
Class to manage absolute discounts.
Class to manage shipments.
Class to manage suppliers invoices.
Class to manage invoices.
const TYPE_CREDIT_NOTE
Credit note invoice.
Class to manage interventions.
Class to manage products or services.
Class to manage proposals.
Class to manage receptions.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage price ask supplier.
Class to manage translations.
societe_prepare_head(Societe $object)
Return array of tabs to used on pages for third parties cards.
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.
dolSqlDateFilter($datefield, $day_date, $month_date, $year_date, $excludefirstand=0, $gm=false)
Generate a SQL string to make a filter into a range (for second of date until last second of date).
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
showValueWithClipboardCPButton($valuetocopy, $showonlyonhover=1, $texttoshow='')
Create a button to copy $valuetocopy in the clipboard (for copy and paste feature).
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
get_date_range($date_start, $date_end, $format='', $outputlangs=null, $withparenthesis=1)
Format output for start and end date.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
dol_htmlentitiesbr($stringtoencode, $nl2brmode=0, $pagecodefrom='UTF-8', $removelasteolbr=1)
This function is called to encode a string into a HTML string but differs from htmlentities because a...
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
div float
Buy price without taxes.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.