Uniformize code
This commit is contained in:
parent
cb3f0dadab
commit
32b6660f63
@ -204,7 +204,7 @@ if ($mode == 'overwrite')
|
|||||||
print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("NewTranslationStringToShow"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("NewTranslationStringToShow"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
|
//if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
|
||||||
print '<td align="center"></td>';
|
print '<td align="center"></td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -371,7 +371,7 @@ if ($mode == 'searchkey')
|
|||||||
print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder).'</td>';
|
print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder).'</td>';
|
||||||
print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("CurrentTranslationString"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("CurrentTranslationString"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
|
//if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
|
||||||
print '<td align="center"></td>';
|
print '<td align="center"></td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -399,7 +399,7 @@ if ($mode == 'searchkey')
|
|||||||
//}
|
//}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Action column
|
// Action column
|
||||||
print '<td class="liste_titre" align="middle">';
|
print '<td class="liste_titre nowrap" align="right">';
|
||||||
$searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
|
$searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
|
||||||
print $searchpitco;
|
print $searchpitco;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -427,10 +427,10 @@ if ($mode == 'searchkey')
|
|||||||
$htmltext = $langs->trans("OriginalValueWas", $newlangfileonly->tab_translate[$key]);
|
$htmltext = $langs->trans("OriginalValueWas", $newlangfileonly->tab_translate[$key]);
|
||||||
print $form->textwithpicto('', $htmltext, 1, 'warning');
|
print $form->textwithpicto('', $htmltext, 1, 'warning');
|
||||||
}
|
}
|
||||||
if (! empty($conf->multicompany->enabled) && !$user->entity)
|
/*if (! empty($conf->multicompany->enabled) && !$user->entity)
|
||||||
{
|
{
|
||||||
print $val;
|
print $val;
|
||||||
}
|
}*/
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2005-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -73,8 +73,10 @@ print '<table class="noborder" width="100%">'."\n";
|
|||||||
clearstatcache();
|
clearstatcache();
|
||||||
|
|
||||||
$workflowcodes=array(
|
$workflowcodes=array(
|
||||||
'WORKFLOW_PROPAL_AUTOCREATE_ORDER'=>array('family'=>'create', 'position'=>10, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order'),
|
// Automatic creation
|
||||||
|
'WORKFLOW_PROPAL_AUTOCREATE_ORDER'=>array('family'=>'create', 'position'=>10, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order'),
|
||||||
'WORKFLOW_ORDER_AUTOCREATE_INVOICE'=>array('family'=>'create', 'position'=>20, 'enabled'=>'! empty($conf->commande->enabled) && ! empty($conf->facture->enabled)', 'picto'=>'bill'),
|
'WORKFLOW_ORDER_AUTOCREATE_INVOICE'=>array('family'=>'create', 'position'=>20, 'enabled'=>'! empty($conf->commande->enabled) && ! empty($conf->facture->enabled)', 'picto'=>'bill'),
|
||||||
|
// Automatic classification
|
||||||
'WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL'=>array('family'=>'classify', 'position'=>30, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order','warning'=>'WarningCloseAlways'),
|
'WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL'=>array('family'=>'classify', 'position'=>30, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order','warning'=>'WarningCloseAlways'),
|
||||||
'WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL'=>array('family'=>'classify', 'position'=>30, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->facture->enabled)', 'picto'=>'order','warning'=>'WarningCloseAlways'),
|
'WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL'=>array('family'=>'classify', 'position'=>30, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->facture->enabled)', 'picto'=>'order','warning'=>'WarningCloseAlways'),
|
||||||
// For the following 2 options, if module invoice is disabled, they does not exists, so "Classify billed" for order must be done manually from order card.
|
// For the following 2 options, if module invoice is disabled, they does not exists, so "Classify billed" for order must be done manually from order card.
|
||||||
@ -108,7 +110,11 @@ foreach($workflowcodes as $key => $params)
|
|||||||
if ($oldfamily != $family)
|
if ($oldfamily != $family)
|
||||||
{
|
{
|
||||||
print '<tr class="liste_titre">'."\n";
|
print '<tr class="liste_titre">'."\n";
|
||||||
print ' <td>'.$langs->trans("Description").'</td>';
|
print ' <td>';
|
||||||
|
if ($family == 'create') print $langs->trans("AutomaticCreation");
|
||||||
|
elseif ($family == 'classify') print $langs->trans("AutomaticClassification");
|
||||||
|
else print $langs->trans("Description");
|
||||||
|
print '</td>';
|
||||||
print ' <td align="center">'.$langs->trans("Status").'</td>';
|
print ' <td align="center">'.$langs->trans("Status").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$oldfamily = $family;
|
$oldfamily = $family;
|
||||||
|
|||||||
@ -3325,7 +3325,7 @@ class Commande extends CommonOrder
|
|||||||
* @param int $withpicto Add picto into link
|
* @param int $withpicto Add picto into link
|
||||||
* @param int $option Where point the link (0=> main card, 1,2 => shipment)
|
* @param int $option Where point the link (0=> main card, 1,2 => shipment)
|
||||||
* @param int $max Max length to show
|
* @param int $max Max length to show
|
||||||
* @param int $short Use short labels
|
* @param int $short ???
|
||||||
* @param int $notooltip 1=Disable tooltip
|
* @param int $notooltip 1=Disable tooltip
|
||||||
* @return string String with URL
|
* @return string String with URL
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1148,7 +1148,6 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
function fetch_origin()
|
function fetch_origin()
|
||||||
{
|
{
|
||||||
// TODO uniformise code
|
|
||||||
if ($this->origin == 'shipping') $this->origin = 'expedition';
|
if ($this->origin == 'shipping') $this->origin = 'expedition';
|
||||||
if ($this->origin == 'delivery') $this->origin = 'livraison';
|
if ($this->origin == 'delivery') $this->origin = 'livraison';
|
||||||
|
|
||||||
|
|||||||
@ -21,8 +21,9 @@
|
|||||||
* \ingroup expedition
|
* \ingroup expedition
|
||||||
* \brief Library for expedition module
|
* \brief Library for expedition module
|
||||||
*/
|
*/
|
||||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -169,9 +170,10 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
|
|||||||
|
|
||||||
$product_static=new Product($db);
|
$product_static=new Product($db);
|
||||||
$expedition=new Expedition($db);
|
$expedition=new Expedition($db);
|
||||||
|
$warehousestatic=new Entrepot($db);
|
||||||
|
|
||||||
$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end";
|
$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end";
|
||||||
$sql.= ", ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line";
|
$sql.= ", ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot as warehouse_id";
|
||||||
$sql.= ", e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,";
|
$sql.= ", e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,";
|
||||||
//if ($conf->livraison_bon->enabled) $sql .= " l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received,";
|
//if ($conf->livraison_bon->enabled) $sql .= " l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received,";
|
||||||
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
|
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
|
||||||
@ -209,7 +211,11 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
|
|||||||
print '<td align="center">'.$langs->trans("DateCreation").'</td>';
|
print '<td align="center">'.$langs->trans("DateCreation").'</td>';
|
||||||
print '<td align="center">'.$langs->trans("DateDeliveryPlanned").'</td>';
|
print '<td align="center">'.$langs->trans("DateDeliveryPlanned").'</td>';
|
||||||
print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
|
print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
|
||||||
if ($conf->livraison_bon->enabled)
|
if (! empty($conf->stock->enabled))
|
||||||
|
{
|
||||||
|
print '<td>'.$langs->trans("Warehouse").'</td>';
|
||||||
|
}
|
||||||
|
if (! empty($conf->livraison_bon->enabled))
|
||||||
{
|
{
|
||||||
print '<td>'.$langs->trans("DeliveryOrder").'</td>';
|
print '<td>'.$langs->trans("DeliveryOrder").'</td>';
|
||||||
//print '<td align="center">'.$langs->trans("QtyReceived").'</td>';
|
//print '<td align="center">'.$langs->trans("QtyReceived").'</td>';
|
||||||
@ -309,6 +315,18 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
|
|||||||
// Qty shipped
|
// Qty shipped
|
||||||
print '<td align="center">'.$objp->qty_shipped.'</td>';
|
print '<td align="center">'.$objp->qty_shipped.'</td>';
|
||||||
|
|
||||||
|
// Warehouse
|
||||||
|
if (! empty($conf->stock->enabled))
|
||||||
|
{
|
||||||
|
print '<td>';
|
||||||
|
if ($objp->warehouse_id > 0)
|
||||||
|
{
|
||||||
|
$warehousestatic->fetch($objp->warehouse_id);
|
||||||
|
print $warehousestatic->getNomUrl(1);
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Informations on receipt
|
// Informations on receipt
|
||||||
if (! empty($conf->livraison_bon->enabled))
|
if (! empty($conf->livraison_bon->enabled))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1352,6 +1352,8 @@ else if ($id || $ref)
|
|||||||
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
|
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// We don't have project on shipment, so we will use the project or source object instead
|
||||||
|
// TODO Add project on shipment
|
||||||
$morehtmlref .= ' : ';
|
$morehtmlref .= ' : ';
|
||||||
if (! empty($objectsrc->fk_project)) {
|
if (! empty($objectsrc->fk_project)) {
|
||||||
$proj = new Project($db);
|
$proj = new Project($db);
|
||||||
@ -1398,7 +1400,7 @@ else if ($id || $ref)
|
|||||||
|
|
||||||
// Date creation
|
// Date creation
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("DateCreation").'</td>';
|
print '<tr><td class="titlefield">'.$langs->trans("DateCreation").'</td>';
|
||||||
print '<td colspan="3">'.dol_print_date($object->date_creation,"day")."</td>\n";
|
print '<td colspan="3">'.dol_print_date($object->date_creation,"dayhour")."</td>\n";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Delivery date planned
|
// Delivery date planned
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/expedition/shipment.php
|
* \file htdocs/expedition/shipment.php
|
||||||
* \ingroup expedition
|
* \ingroup expedition
|
||||||
|
* \brief Tab shipments/delivery receipts on the order
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require '../main.inc.php';
|
require '../main.inc.php';
|
||||||
@ -457,8 +458,8 @@ if ($id > 0 || ! empty($ref))
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lignes de commandes avec quantite livrees et reste a livrer
|
* Lines or orders with quantity shipped and remain to ship
|
||||||
* Les quantites livrees sont stockees dans $commande->expeditions[fk_product]
|
* Note: Qty shipped are already available into $commande->expeditions[fk_product]
|
||||||
*/
|
*/
|
||||||
print '<table class="noborder noshadow" width="100%">';
|
print '<table class="noborder noshadow" width="100%">';
|
||||||
|
|
||||||
|
|||||||
@ -1017,7 +1017,7 @@ SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where
|
|||||||
ShowProfIdInAddress=Show professionnal id with addresses on documents
|
ShowProfIdInAddress=Show professionnal id with addresses on documents
|
||||||
ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
|
ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
|
||||||
TranslationUncomplete=Partial translation
|
TranslationUncomplete=Partial translation
|
||||||
SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
|
SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
|
||||||
MAIN_DISABLE_METEO=Disable meteo view
|
MAIN_DISABLE_METEO=Disable meteo view
|
||||||
TestLoginToAPI=Test login to API
|
TestLoginToAPI=Test login to API
|
||||||
ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
|
ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
# Dolibarr language file - Source file is en_US - deliveries
|
# Dolibarr language file - Source file is en_US - deliveries
|
||||||
Delivery=Delivery
|
Delivery=Delivery
|
||||||
DeliveryRef=Ref Delivery
|
DeliveryRef=Ref Delivery
|
||||||
DeliveryCard=Delivery card
|
DeliveryCard=Receipt card
|
||||||
DeliveryOrder=Delivery order
|
DeliveryOrder=Delivery order
|
||||||
DeliveryDate=Delivery date
|
DeliveryDate=Delivery date
|
||||||
CreateDeliveryOrder=Generate delivery order
|
CreateDeliveryOrder=Generate delivery receipt
|
||||||
DeliveryStateSaved=Delivery state saved
|
DeliveryStateSaved=Delivery state saved
|
||||||
SetDeliveryDate=Set shipping date
|
SetDeliveryDate=Set shipping date
|
||||||
ValidateDeliveryReceipt=Validate delivery receipt
|
ValidateDeliveryReceipt=Validate delivery receipt
|
||||||
|
|||||||
@ -20,6 +20,7 @@ CreateASending=Create a shipment
|
|||||||
QtyShipped=Qty shipped
|
QtyShipped=Qty shipped
|
||||||
QtyToShip=Qty to ship
|
QtyToShip=Qty to ship
|
||||||
QtyReceived=Qty received
|
QtyReceived=Qty received
|
||||||
|
QtyInOtherShipments=Qty in other shipments
|
||||||
KeepToShip=Remain to ship
|
KeepToShip=Remain to ship
|
||||||
OtherSendingsForSameOrder=Other shipments for this order
|
OtherSendingsForSameOrder=Other shipments for this order
|
||||||
SendingsAndReceivingForSameOrder=Shipments and receivings for this order
|
SendingsAndReceivingForSameOrder=Shipments and receivings for this order
|
||||||
@ -40,6 +41,8 @@ DocumentModelMerou=Merou A5 model
|
|||||||
WarningNoQtyLeftToSend=Warning, no products waiting to be shipped.
|
WarningNoQtyLeftToSend=Warning, no products waiting to be shipped.
|
||||||
StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known).
|
StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known).
|
||||||
DateDeliveryPlanned=Planned date of delivery
|
DateDeliveryPlanned=Planned date of delivery
|
||||||
|
RefDeliveryReceipt=Ref delivery receipt
|
||||||
|
StatusReceipt=Status delivery receipt
|
||||||
DateReceived=Date delivery received
|
DateReceived=Date delivery received
|
||||||
SendShippingByEMail=Send shipment by EMail
|
SendShippingByEMail=Send shipment by EMail
|
||||||
SendShippingRef=Submission of shipment %s
|
SendShippingRef=Submission of shipment %s
|
||||||
|
|||||||
@ -10,4 +10,6 @@ descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to bil
|
|||||||
descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
|
descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
|
||||||
descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
|
descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
|
||||||
descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
|
descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
|
||||||
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify shipped linked source order on shipping validate if quantity shipped is the same as in order
|
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
|
||||||
|
AutomaticCreation=Automatic creation
|
||||||
|
AutomaticClassification=Automatic classification
|
||||||
@ -32,7 +32,8 @@ require_once DOL_DOCUMENT_ROOT.'/livraison/class/livraison.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/livraison/modules_livraison.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/modules/livraison/modules_livraison.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||||
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled))
|
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled))
|
||||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||||
if (! empty($conf->expedition_bon->enabled))
|
if (! empty($conf->expedition_bon->enabled))
|
||||||
@ -368,9 +369,73 @@ else
|
|||||||
* Livraison
|
* Livraison
|
||||||
*/
|
*/
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
if ($typeobject == 'commande' && $expedition->$typeobject->id && ! empty($conf->commande->enabled))
|
||||||
|
{
|
||||||
|
$objectsrc=new Commande($db);
|
||||||
|
$objectsrc->fetch($expedition->$typeobject->id);
|
||||||
|
}
|
||||||
|
if ($typeobject == 'propal' && $expedition->$typeobject->id && ! empty($conf->propal->enabled))
|
||||||
|
{
|
||||||
|
$objectsrc=new Propal($db);
|
||||||
|
$objectsrc->fetch($expedition->$typeobject->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shipment card
|
||||||
|
$linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
|
$morehtmlref='<div class="refidno">';
|
||||||
|
// Ref customer shipment
|
||||||
|
$morehtmlref.=$form->editfieldkey("RefCustomer", '', $expedition->ref_customer, $expedition, $user->rights->expedition->creer, 'string', '', 0, 1);
|
||||||
|
$morehtmlref.=$form->editfieldval("RefCustomer", '', $expedition->ref_customer, $expedition, $user->rights->expedition->creer, 'string', '', null, null, '', 1);
|
||||||
|
$morehtmlref.='<br>'.$langs->trans("RefDeliveryReceipt").' : '.$object->ref;
|
||||||
|
// Thirdparty
|
||||||
|
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $expedition->thirdparty->getNomUrl(1);
|
||||||
|
// Project
|
||||||
|
if (! empty($conf->projet->enabled)) {
|
||||||
|
$langs->load("projects");
|
||||||
|
$morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
|
||||||
|
if (0) { // Do not change on shipment
|
||||||
|
if ($action != 'classify') {
|
||||||
|
$morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $expedition->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
|
||||||
|
}
|
||||||
|
if ($action == 'classify') {
|
||||||
|
// $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $expedition->id, $expedition->socid, $expedition->fk_project, 'projectid', 0, 0, 1, 1);
|
||||||
|
$morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?id=' . $expedition->id . '">';
|
||||||
|
$morehtmlref .= '<input type="hidden" name="action" value="classin">';
|
||||||
|
$morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||||
|
$morehtmlref .= $formproject->select_projects($expedition->socid, $expedition->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
|
||||||
|
$morehtmlref .= '<input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
|
||||||
|
$morehtmlref .= '</form>';
|
||||||
|
} else {
|
||||||
|
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $expedition->id, $expedition->socid, $expedition->fk_project, 'none', 0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$morehtmlref .= ' : ';
|
||||||
|
if (! empty($expeditionsrc->fk_project)) {
|
||||||
|
$proj = new Project($db);
|
||||||
|
$proj->fetch($expeditionsrc->fk_project);
|
||||||
|
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $expeditionsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
|
||||||
|
$morehtmlref .= $proj->ref;
|
||||||
|
$morehtmlref .= '</a>';
|
||||||
|
} else {
|
||||||
|
$morehtmlref .= '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$morehtmlref.='</div>';
|
||||||
|
|
||||||
|
$morehtmlright = $langs->trans("StatusReceipt").' : '.$object->getLibStatut(6).'<br>';
|
||||||
|
|
||||||
|
dol_banner_tab($expedition, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', $morehtmlright);
|
||||||
|
|
||||||
|
|
||||||
|
print '<div class="fichecenter">';
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Shipment
|
// Shipment
|
||||||
|
/*
|
||||||
if (($object->origin == 'shipment' || $object->origin == 'expedition') && $object->origin_id > 0)
|
if (($object->origin == 'shipment' || $object->origin == 'expedition') && $object->origin_id > 0)
|
||||||
{
|
{
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
@ -394,11 +459,12 @@ else
|
|||||||
print '<tr><td width="20%">'.$langs->trans("Customer").'</td>';
|
print '<tr><td width="20%">'.$langs->trans("Customer").'</td>';
|
||||||
print '<td align="3">'.$soc->getNomUrl(1).'</td>';
|
print '<td align="3">'.$soc->getNomUrl(1).'</td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
*/
|
||||||
|
|
||||||
// Document origine
|
// Document origine
|
||||||
if ($typeobject == 'commande' && $expedition->origin_id && ! empty($conf->commande->enabled))
|
if ($typeobject == 'commande' && $expedition->origin_id && ! empty($conf->commande->enabled))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("RefOrder").'</td>';
|
print '<tr><td class="titlefield">'.$langs->trans("RefOrder").'</td>';
|
||||||
$order=new Commande($db);
|
$order=new Commande($db);
|
||||||
$order->fetch($expedition->origin_id);
|
$order->fetch($expedition->origin_id);
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
@ -410,21 +476,16 @@ else
|
|||||||
{
|
{
|
||||||
$propal=new Propal($db);
|
$propal=new Propal($db);
|
||||||
$propal->fetch($expedition->origin_id);
|
$propal->fetch($expedition->origin_id);
|
||||||
print '<tr><td>'.$langs->trans("RefProposal").'</td>';
|
print '<tr><td class="titlefield">'.$langs->trans("RefProposal").'</td>';
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
print $propal->getNomUrl(1,'expedition');
|
print $propal->getNomUrl(1,'expedition');
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ref client
|
|
||||||
print '<tr><td>'.$langs->trans("RefCustomer").'</td>';
|
|
||||||
print '<td colspan="3">'.$object->ref_customer."</a></td>\n";
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Date
|
// Date
|
||||||
print '<tr><td>'.$langs->trans("DateCreation").'</td>';
|
print '<tr><td class="titlefield">'.$langs->trans("DateCreation").'</td>';
|
||||||
print '<td colspan="3">'.dol_print_date($object->date_creation,'daytext')."</td>\n";
|
print '<td colspan="3">'.dol_print_date($object->date_creation,'dayhour')."</td>\n";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Date delivery real / Received
|
// Date delivery real / Received
|
||||||
@ -441,13 +502,13 @@ else
|
|||||||
print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="setdate_livraison">';
|
print '<input type="hidden" name="action" value="setdate_livraison">';
|
||||||
$form->select_date($object->date_delivery?$object->date_delivery:-1,'liv_',1,1,'',"setdate_livraison");
|
$form->select_date($object->date_delivery?$object->date_delivery:-1, 'liv_', 1, 1, '', "setdate_livraison", 1, 1);
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $object->date_delivery ? dol_print_date($object->date_delivery,'dayhourtext') : ' ';
|
print $object->date_delivery ? dol_print_date($object->date_delivery,'dayhour') : ' ';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -475,27 +536,24 @@ else
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* A delivery note should be just more properties of a shipment, so notes are on shipment
|
||||||
// Note Public
|
// Note Public
|
||||||
print '<tr><td>'.$langs->trans("NotePublic").'</td>';
|
print '<tr><td>'.$langs->trans("NotePublic").'</td>';
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
print nl2br($object->note_public);
|
print nl2br($object->note_public);
|
||||||
/*$doleditor = new DolEditor('note_public', $object->note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70);
|
|
||||||
print $doleditor->Create(1);*/
|
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
// Note Private
|
// Note Private
|
||||||
print '<tr><td>'.$langs->trans("NotePrivate").'</td>';
|
print '<tr><td>'.$langs->trans("NotePrivate").'</td>';
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
print nl2br($object->note_private);
|
print nl2br($object->note_private);
|
||||||
/*$doleditor = new DolEditor('note_pprivate', $object->note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70);
|
|
||||||
print $doleditor->Create(1);*/
|
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
*/
|
||||||
|
|
||||||
// Statut
|
// Statut
|
||||||
print '<tr><td>'.$langs->trans("Status").'</td>';
|
/*print '<tr><td>'.$langs->trans("Status").'</td>';
|
||||||
print '<td colspan="3">'.$object->getLibStatut(4)."</td>\n";
|
print '<td colspan="3">'.$object->getLibStatut(4)."</td>\n";
|
||||||
print '</tr>';
|
print '</tr>';*/
|
||||||
|
|
||||||
if (!$conf->expedition_bon->enabled && ! empty($conf->stock->enabled))
|
if (!$conf->expedition_bon->enabled && ! empty($conf->stock->enabled))
|
||||||
{
|
{
|
||||||
@ -513,6 +571,8 @@ else
|
|||||||
|
|
||||||
print "</table><br>\n";
|
print "</table><br>\n";
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lignes produits
|
* Lignes produits
|
||||||
*/
|
*/
|
||||||
@ -693,12 +753,12 @@ else
|
|||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
// List of existing shipment and delivery receipts
|
// List of existing shipment and delivery receipts
|
||||||
if ($expedition->origin_id)
|
/*if ($expedition->origin_id)
|
||||||
{
|
{
|
||||||
print '<br>';
|
print '<br>';
|
||||||
//show_list_sending_receive($expedition->origin,$expedition->origin_id," AND e.rowid <> ".$expedition->id);
|
//show_list_sending_receive($expedition->origin,$expedition->origin_id," AND e.rowid <> ".$expedition->id);
|
||||||
show_list_sending_receive($expedition->origin,$expedition->origin_id);
|
show_list_sending_receive($expedition->origin,$expedition->origin_id);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -817,6 +817,12 @@ class Livraison extends CommonObject
|
|||||||
if ($statut==0) return img_picto($langs->trans('StatusDeliveryDraft'),'statut0').' '.$langs->trans('StatusDeliveryDraft');
|
if ($statut==0) return img_picto($langs->trans('StatusDeliveryDraft'),'statut0').' '.$langs->trans('StatusDeliveryDraft');
|
||||||
if ($statut==1) return img_picto($langs->trans('StatusDeliveryValidated'),'statut4').' '.$langs->trans('StatusDeliveryValidated');
|
if ($statut==1) return img_picto($langs->trans('StatusDeliveryValidated'),'statut4').' '.$langs->trans('StatusDeliveryValidated');
|
||||||
}
|
}
|
||||||
|
if ($mode == 6)
|
||||||
|
{
|
||||||
|
if ($statut==-1) return $langs->trans('StatusDeliveryCanceled').' '.img_picto($langs->trans('StatusDeliveryCanceled'),'statut5');
|
||||||
|
if ($statut==0) return $langs->trans('StatusDeliveryDraft').' '.img_picto($langs->trans('StatusDeliveryDraft'),'statut0');
|
||||||
|
if ($statut==1) return $langs->trans('StatusDeliveryValidated').' '.img_picto($langs->trans('StatusDeliveryValidated'),'statut4');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -113,7 +113,7 @@ $sql = 'SELECT p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price
|
|||||||
$sql.= ' p.fk_product_type, p.tms as datem,';
|
$sql.= ' p.fk_product_type, p.tms as datem,';
|
||||||
$sql.= ' p.duration, p.tosell as statut, p.tobuy, p.seuil_stock_alerte, p.desiredstock, p.stock, p.tobatch,';
|
$sql.= ' p.duration, p.tosell as statut, p.tobuy, p.seuil_stock_alerte, p.desiredstock, p.stock, p.tobatch,';
|
||||||
$sql.= ' ps.fk_entrepot,';
|
$sql.= ' ps.fk_entrepot,';
|
||||||
$sql.= ' e.label as warehouse_label,';
|
$sql.= ' e.label as warehouse_ref, e.lieu as warehouse_lieu, e.fk_parent as warehouse_parent,';
|
||||||
$sql.= ' pb.batch, pb.eatby as oldeatby, pb.sellby as oldsellby,';
|
$sql.= ' pb.batch, pb.eatby as oldeatby, pb.sellby as oldsellby,';
|
||||||
$sql.= ' pl.eatby, pl.sellby,';
|
$sql.= ' pl.eatby, pl.sellby,';
|
||||||
$sql.= ' SUM(pb.qty) as stock_physique, COUNT(pb.rowid) as nbinbatchtable';
|
$sql.= ' SUM(pb.qty) as stock_physique, COUNT(pb.rowid) as nbinbatchtable';
|
||||||
@ -158,7 +158,7 @@ $sql.= " GROUP BY p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.pr
|
|||||||
$sql.= " p.fk_product_type, p.tms,";
|
$sql.= " p.fk_product_type, p.tms,";
|
||||||
$sql.= " p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock, p.stock, p.tobatch,";
|
$sql.= " p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock, p.stock, p.tobatch,";
|
||||||
$sql.= " ps.fk_entrepot,";
|
$sql.= " ps.fk_entrepot,";
|
||||||
$sql.= " e.label,";
|
$sql.= " e.label, e.lieu, e.fk_parent,";
|
||||||
$sql.= " pb.batch, pb.eatby, pb.sellby,";
|
$sql.= " pb.batch, pb.eatby, pb.sellby,";
|
||||||
$sql.= " pl.eatby, pl.sellby";
|
$sql.= " pl.eatby, pl.sellby";
|
||||||
if ($toolowstock) $sql.= " HAVING SUM(".$db->ifsql('ps.reel IS NULL', '0', 'ps.reel').") < p.seuil_stock_alerte"; // Not used yet
|
if ($toolowstock) $sql.= " HAVING SUM(".$db->ifsql('ps.reel IS NULL', '0', 'ps.reel').") < p.seuil_stock_alerte"; // Not used yet
|
||||||
@ -303,7 +303,7 @@ if ($resql)
|
|||||||
while ($i < min($num,$limit))
|
while ($i < min($num,$limit))
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($resql);
|
$objp = $db->fetch_object($resql);
|
||||||
|
|
||||||
// Multilangs
|
// Multilangs
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active
|
if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active
|
||||||
{
|
{
|
||||||
@ -321,16 +321,29 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$var=!$var;
|
|
||||||
print '<tr '.$bc[$var].'><td class="nowrap">';
|
|
||||||
$product_static->ref=$objp->ref;
|
$product_static->ref=$objp->ref;
|
||||||
$product_static->id=$objp->rowid;
|
$product_static->id=$objp->rowid;
|
||||||
$product_static->label = $objp->label;
|
$product_static->label = $objp->label;
|
||||||
$product_static->type=$objp->fk_product_type;
|
$product_static->type=$objp->fk_product_type;
|
||||||
$product_static->entity=$objp->entity;
|
$product_static->entity=$objp->entity;
|
||||||
|
|
||||||
|
$warehousetmp->id=$objp->fk_entrepot;
|
||||||
|
$warehousetmp->ref=$objp->warehouse_ref;
|
||||||
|
$warehousetmp->label=$objp->warehouse_ref;
|
||||||
|
$warehousetmp->fk_parent=$objp->warehouse_parent;
|
||||||
|
|
||||||
|
$var=!$var;
|
||||||
|
|
||||||
|
print '<tr '.$bc[$var].'>';
|
||||||
|
|
||||||
|
// Ref
|
||||||
|
print '<td class="nowrap">';
|
||||||
print $product_static->getNomUrl(1,'',16);
|
print $product_static->getNomUrl(1,'',16);
|
||||||
//if ($objp->stock_theorique < $objp->seuil_stock_alerte) print ' '.img_warning($langs->trans("StockTooLow"));
|
//if ($objp->stock_theorique < $objp->seuil_stock_alerte) print ' '.img_warning($langs->trans("StockTooLow"));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
|
// Label
|
||||||
print '<td>'.$objp->label.'</td>';
|
print '<td>'.$objp->label.'</td>';
|
||||||
|
|
||||||
if (! empty($conf->service->enabled) && $type == 1)
|
if (! empty($conf->service->enabled) && $type == 1)
|
||||||
@ -350,9 +363,6 @@ if ($resql)
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
if ($objp->fk_entrepot > 0)
|
if ($objp->fk_entrepot > 0)
|
||||||
{
|
{
|
||||||
$warehousetmp->id=$objp->fk_entrepot;
|
|
||||||
$warehousetmp->label=$objp->warehouse_label;
|
|
||||||
//$warehousetmp->fetch($objp->fk_entrepot);
|
|
||||||
print $warehousetmp->getNomUrl(1);
|
print $warehousetmp->getNomUrl(1);
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -71,6 +71,7 @@ class Entrepot extends CommonObject
|
|||||||
//! Code Postal
|
//! Code Postal
|
||||||
var $zip;
|
var $zip;
|
||||||
var $town;
|
var $town;
|
||||||
|
var $fk_parent;
|
||||||
|
|
||||||
// List of short language codes for status
|
// List of short language codes for status
|
||||||
var $statuts = array();
|
var $statuts = array();
|
||||||
@ -307,12 +308,10 @@ class Entrepot extends CommonObject
|
|||||||
|
|
||||||
$sql = "SELECT rowid, fk_parent, label, description, statut, lieu, address, zip, town, fk_pays as country_id";
|
$sql = "SELECT rowid, fk_parent, label, description, statut, lieu, address, zip, town, fk_pays as country_id";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."entrepot";
|
$sql .= " FROM ".MAIN_DB_PREFIX."entrepot";
|
||||||
|
|
||||||
if ($id)
|
if ($id)
|
||||||
{
|
{
|
||||||
$sql.= " WHERE rowid = '".$id."'";
|
$sql.= " WHERE rowid = '".$id."'";
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql.= " WHERE entity = " .$conf->entity;
|
$sql.= " WHERE entity = " .$conf->entity;
|
||||||
@ -330,7 +329,8 @@ class Entrepot extends CommonObject
|
|||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
$this->fk_parent = $obj->fk_parent;
|
$this->fk_parent = $obj->fk_parent;
|
||||||
$this->ref = $obj->rowid;
|
$this->ref = $obj->rowid;
|
||||||
$this->libelle = $obj->label;
|
$this->label = $obj->label;
|
||||||
|
$this->libelle = $obj->label; // deprecated
|
||||||
$this->description = $obj->description;
|
$this->description = $obj->description;
|
||||||
$this->statut = $obj->statut;
|
$this->statut = $obj->statut;
|
||||||
$this->lieu = $obj->lieu;
|
$this->lieu = $obj->lieu;
|
||||||
@ -567,25 +567,46 @@ class Entrepot extends CommonObject
|
|||||||
* Return clickable name (possibility with the pictogram)
|
* Return clickable name (possibility with the pictogram)
|
||||||
*
|
*
|
||||||
* @param int $withpicto with pictogram
|
* @param int $withpicto with pictogram
|
||||||
* @param string $option What point the link
|
* @param string $option Where the link point to
|
||||||
|
* @param int $showfullpath 0=Show ref only. 1=Show full path instead of Ref (this->fk_parent must be defined)
|
||||||
|
* @param int $notooltip 1=Disable tooltip
|
||||||
* @return string String with URL
|
* @return string String with URL
|
||||||
*/
|
*/
|
||||||
function getNomUrl($withpicto=0,$option='')
|
function getNomUrl($withpicto=0, $option='',$showfullpath=0, $notooltip=0)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
$langs->load("stocks");
|
$langs->load("stocks");
|
||||||
|
|
||||||
$result='';
|
if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips
|
||||||
|
|
||||||
|
$result='';
|
||||||
|
$label = '';
|
||||||
|
|
||||||
$label = '<u>' . $langs->trans("ShowWarehouse").'</u>';
|
$label = '<u>' . $langs->trans("ShowWarehouse").'</u>';
|
||||||
$label.= '<br><b>' . $langs->trans('Ref') . ':</b> ' . (empty($this->label)?$this->libelle:$this->label);
|
$label.= '<br><b>' . $langs->trans('Ref') . ':</b> ' . (empty($this->label)?$this->libelle:$this->label);
|
||||||
if (! empty($this->lieu))
|
if (! empty($this->lieu))
|
||||||
$label.= '<br><b>' . $langs->trans('LocationSummary').':</b> '.$this->lieu;
|
$label.= '<br><b>' . $langs->trans('LocationSummary').':</b> '.$this->lieu;
|
||||||
|
|
||||||
$link='<a href="'.DOL_URL_ROOT.'/product/stock/card.php?id='.$this->id.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
|
$url = DOL_URL_ROOT.'/product/stock/card.php?id='.$this->id;
|
||||||
$linkend='</a>';
|
|
||||||
|
|
||||||
if ($withpicto) $result.=($link.img_object($label, 'stock', 'class="classfortooltip"').$linkend.' ');
|
$linkclose='';
|
||||||
$result.=$link.$this->get_full_arbo().$linkend;
|
if (empty($notooltip))
|
||||||
|
{
|
||||||
|
if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
|
||||||
|
{
|
||||||
|
$label=$langs->trans("ShowWarehouse");
|
||||||
|
$linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
|
||||||
|
}
|
||||||
|
$linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"';
|
||||||
|
$linkclose.=' class="classfortooltip"';
|
||||||
|
}
|
||||||
|
|
||||||
|
$linkstart = '<a href="'.$url.'"';
|
||||||
|
$linkstart.=$linkclose.'>';
|
||||||
|
$linkend='</a>';
|
||||||
|
|
||||||
|
if ($withpicto) $result.=($link.img_object(($notooltip?'':$label), 'stock', ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend.' ');
|
||||||
|
$result.=$linkstart.($showfullpath ? $this->get_full_arbo() : (empty($this->label)?$this->libelle:$this->label)).$linkend;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -620,40 +641,41 @@ class Entrepot extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Return full path to current warehouse
|
* Return full path to current warehouse
|
||||||
*
|
*
|
||||||
* @param int $protection Deep counter to avoid infinite loop
|
|
||||||
* @return string String full path to current warehouse separated by " >> "
|
* @return string String full path to current warehouse separated by " >> "
|
||||||
*/
|
*/
|
||||||
function get_full_arbo($protection=1000) {
|
function get_full_arbo()
|
||||||
|
{
|
||||||
global $user,$langs,$conf;
|
global $user,$langs,$conf;
|
||||||
|
|
||||||
$TArbo = array($this->libelle);
|
$TArbo = array(empty($this->label)?$this->libelle:$this->label);
|
||||||
|
|
||||||
$id = $this->id;
|
$protection=100; // We limit depth of warehouses to 100
|
||||||
|
|
||||||
$i=0;
|
$warehousetmp = new Entrepot($this->db);
|
||||||
|
|
||||||
while((empty($protection) || $i < $protection)) {
|
$parentid = $this->fk_parent; // If parent_id not defined on current object, we do not start consecutive searches of parents
|
||||||
$sql = 'SELECT fk_parent
|
$i=0;
|
||||||
FROM '.MAIN_DB_PREFIX.'entrepot
|
while ($parentid > 0 && $i < $protection)
|
||||||
WHERE rowid = '.$id;
|
{
|
||||||
|
$sql = 'SELECT fk_parent FROM '.MAIN_DB_PREFIX.'entrepot WHERE rowid = '.$parentid;
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if($resql) {
|
if ($resql)
|
||||||
$res = $this->db->fetch_object($resql);
|
{
|
||||||
if(empty($res->fk_parent)) break;
|
$objarbo = $this->db->fetch_object($resql);
|
||||||
$id = $res->fk_parent;
|
if ($objarbo)
|
||||||
$o = new Entrepot($this->db);
|
{
|
||||||
$o->fetch($id);
|
$warehousetmp->fetch($parentid);
|
||||||
$TArbo[] = $o->libelle;
|
$TArbo[] = $warehousetmp->label;
|
||||||
} else break;
|
$parentid = $objarbo->fk_parent;
|
||||||
|
}
|
||||||
$i++;
|
else break;
|
||||||
|
}
|
||||||
}
|
else dol_print_error($this->db);
|
||||||
|
|
||||||
return implode(' >> ', array_reverse($TArbo));
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode(' >> ', array_reverse($TArbo));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -82,7 +82,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP
|
|||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
$warehouse=new Entrepot($db);
|
$warehouse=new Entrepot($db);
|
||||||
|
|
||||||
$sql = "SELECT e.rowid, e.label as ref, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays,";
|
$sql = "SELECT e.rowid, e.label as ref, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays, e.fk_parent,";
|
||||||
$sql.= " SUM(p.pmp * ps.reel) as estimatedvalue, SUM(p.price * ps.reel) as sellvalue, SUM(ps.reel) as stockqty";
|
$sql.= " SUM(p.pmp * ps.reel) as estimatedvalue, SUM(p.price * ps.reel) as sellvalue, SUM(ps.reel) as stockqty";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e";
|
$sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps ON e.rowid = ps.fk_entrepot";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps ON e.rowid = ps.fk_entrepot";
|
||||||
@ -92,7 +92,7 @@ if ($search_ref) $sql.= natural_search("e.label", $search_ref); // ref
|
|||||||
if ($search_label) $sql.= natural_search("e.lieu", $search_label); // label
|
if ($search_label) $sql.= natural_search("e.lieu", $search_label); // label
|
||||||
if ($search_status != '' && $search_status >= 0) $sql.= " AND e.statut = ".$search_status;
|
if ($search_status != '' && $search_status >= 0) $sql.= " AND e.statut = ".$search_status;
|
||||||
if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
$sql.= " GROUP BY e.rowid, e.label, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays";
|
$sql.= " GROUP BY e.rowid, e.label, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays, e.fk_parent";
|
||||||
$totalnboflines=0;
|
$totalnboflines=0;
|
||||||
$result=$db->query($sql);
|
$result=$db->query($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
@ -185,16 +185,19 @@ if ($result)
|
|||||||
|
|
||||||
if ($num)
|
if ($num)
|
||||||
{
|
{
|
||||||
$entrepot=new Entrepot($db);
|
$warehouse=new Entrepot($db);
|
||||||
$var=false;
|
$var=false;
|
||||||
while ($i < min($num,$limit))
|
while ($i < min($num,$limit))
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
$entrepot->id = $objp->rowid;
|
|
||||||
$entrepot->libelle = $objp->ref;
|
$warehouse->id = $objp->rowid;
|
||||||
$entrepot->lieu = $objp->lieu;
|
$warehouse->label = $objp->ref;
|
||||||
|
$warehouse->lieu = $objp->lieu;
|
||||||
|
$warehouse->fk_parent = $objp->fk_parent;
|
||||||
|
|
||||||
print "<tr ".$bc[$var].">";
|
print "<tr ".$bc[$var].">";
|
||||||
print '<td>' . $entrepot->getNomUrl(1) . '</td>';
|
print '<td>' . $warehouse->getNomUrl(1) . '</td>';
|
||||||
// Location
|
// Location
|
||||||
print '<td>'.$objp->lieu.'</td>';
|
print '<td>'.$objp->lieu.'</td>';
|
||||||
// Stock qty
|
// Stock qty
|
||||||
@ -214,7 +217,7 @@ if ($result)
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Status
|
// Status
|
||||||
print '<td align="right">'.$entrepot->LibStatut($objp->statut,5).'</td>';
|
print '<td align="right">'.$warehouse->LibStatut($objp->statut,5).'</td>';
|
||||||
|
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user