Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
45ed02ec13
@ -441,6 +441,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
*/
|
*/
|
||||||
public function fetch_lines($only_product = 0)
|
public function fetch_lines($only_product = 0)
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
//$result=$this->fetch_lines();
|
//$result=$this->fetch_lines();
|
||||||
$this->lines = array();
|
$this->lines = array();
|
||||||
@ -453,8 +454,12 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$sql .= " l.fk_unit,";
|
$sql .= " l.fk_unit,";
|
||||||
$sql .= " l.date_start, l.date_end,";
|
$sql .= " l.date_start, l.date_end,";
|
||||||
$sql .= ' l.fk_multicurrency, l.multicurrency_code, l.multicurrency_subprice, l.multicurrency_total_ht, l.multicurrency_total_tva, l.multicurrency_total_ttc';
|
$sql .= ' l.fk_multicurrency, l.multicurrency_code, l.multicurrency_subprice, l.multicurrency_total_ht, l.multicurrency_total_tva, l.multicurrency_total_ttc';
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
$sql.= ", pfp.rowid as fk_pfp, pfp.packaging";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as l";
|
$sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as l";
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product = p.rowid';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product = p.rowid';
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON l.fk_product = pfp.fk_product and l.ref = pfp.ref_fourn";
|
||||||
$sql .= " WHERE l.fk_commande = ".$this->id;
|
$sql .= " WHERE l.fk_commande = ".$this->id;
|
||||||
if ($only_product) $sql .= ' AND p.fk_product_type = 0';
|
if ($only_product) $sql .= ' AND p.fk_product_type = 0';
|
||||||
$sql .= " ORDER BY l.rang, l.rowid";
|
$sql .= " ORDER BY l.rang, l.rowid";
|
||||||
@ -505,6 +510,12 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$line->ref_fourn = $objp->ref_supplier; // The supplier ref of price when product was added. May have change since
|
$line->ref_fourn = $objp->ref_supplier; // The supplier ref of price when product was added. May have change since
|
||||||
$line->ref_supplier = $objp->ref_supplier; // The supplier ref of price when product was added. May have change since
|
$line->ref_supplier = $objp->ref_supplier; // The supplier ref of price when product was added. May have change since
|
||||||
|
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
{
|
||||||
|
$line->fk_fournprice = $objp->fk_pfp;
|
||||||
|
$line->packaging = $objp->packaging;
|
||||||
|
}
|
||||||
|
|
||||||
$line->date_start = $this->db->jdate($objp->date_start);
|
$line->date_start = $this->db->jdate($objp->date_start);
|
||||||
$line->date_end = $this->db->jdate($objp->date_end);
|
$line->date_end = $this->db->jdate($objp->date_end);
|
||||||
$line->fk_unit = $objp->fk_unit;
|
$line->fk_unit = $objp->fk_unit;
|
||||||
@ -1685,6 +1696,26 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// redefine quantity according to packaging
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
{
|
||||||
|
$prod = new Product($this->db, $fk_product);
|
||||||
|
$prod->get_buyprice($fk_prod_fourn_price, $qty, $fk_product, 'none', ($this->fk_soc?$this->fk_soc:$this->socid));
|
||||||
|
if ($qty < $prod->packaging)
|
||||||
|
{
|
||||||
|
$qty = $prod->packaging;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (($qty % $prod->packaging) > 0)
|
||||||
|
{
|
||||||
|
$coeff = intval($qty/$prod->packaging) + 1;
|
||||||
|
$qty = $prod->packaging * $coeff;
|
||||||
|
setEventMessage($langs->trans('QtyRecalculatedWithPackaging'), 'mesgs');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2636,6 +2667,25 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$this->line->fk_commande = $this->id;
|
$this->line->fk_commande = $this->id;
|
||||||
//$this->line->label=$label;
|
//$this->line->label=$label;
|
||||||
$this->line->desc = $desc;
|
$this->line->desc = $desc;
|
||||||
|
|
||||||
|
// redefine quantity according to packaging
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
{
|
||||||
|
if ($qty < $this->line->packaging)
|
||||||
|
{
|
||||||
|
$qty = $this->line->packaging;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (($qty % $this->line->packaging) > 0)
|
||||||
|
{
|
||||||
|
$coeff = intval($qty/$this->line->packaging) + 1;
|
||||||
|
$qty = $this->line->packaging * $coeff;
|
||||||
|
setEventMessage($langs->trans('QtyRecalculatedWithPackaging'), 'mesgs');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->line->qty = $qty;
|
$this->line->qty = $qty;
|
||||||
$this->line->ref_supplier = $ref_supplier;
|
$this->line->ref_supplier = $ref_supplier;
|
||||||
|
|
||||||
@ -3390,6 +3440,8 @@ class CommandeFournisseurLigne extends CommonOrderLine
|
|||||||
*/
|
*/
|
||||||
public function fetch($rowid)
|
public function fetch($rowid)
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
$sql = 'SELECT cd.rowid, cd.fk_commande, cd.fk_product, cd.product_type, cd.description, cd.qty, cd.tva_tx, cd.special_code,';
|
$sql = 'SELECT cd.rowid, cd.fk_commande, cd.fk_product, cd.product_type, cd.description, cd.qty, cd.tva_tx, cd.special_code,';
|
||||||
$sql .= ' cd.localtax1_tx, cd.localtax2_tx, cd.localtax1_type, cd.localtax2_type, cd.ref,';
|
$sql .= ' cd.localtax1_tx, cd.localtax2_tx, cd.localtax1_type, cd.localtax2_type, cd.ref,';
|
||||||
$sql .= ' cd.remise, cd.remise_percent, cd.subprice,';
|
$sql .= ' cd.remise, cd.remise_percent, cd.subprice,';
|
||||||
@ -3398,8 +3450,12 @@ class CommandeFournisseurLigne extends CommonOrderLine
|
|||||||
$sql .= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc,';
|
$sql .= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc,';
|
||||||
$sql .= ' cd.date_start, cd.date_end, cd.fk_unit,';
|
$sql .= ' cd.date_start, cd.date_end, cd.fk_unit,';
|
||||||
$sql .= ' cd.multicurrency_subprice, cd.multicurrency_total_ht, cd.multicurrency_total_tva, cd.multicurrency_total_ttc';
|
$sql .= ' cd.multicurrency_subprice, cd.multicurrency_total_ht, cd.multicurrency_total_tva, cd.multicurrency_total_ttc';
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
$sql.= ", pfp.rowid as fk_pfp, pfp.packaging";
|
||||||
$sql .= ' FROM '.MAIN_DB_PREFIX.'commande_fournisseurdet as cd';
|
$sql .= ' FROM '.MAIN_DB_PREFIX.'commande_fournisseurdet as cd';
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid';
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON cd.fk_product = pfp.fk_product and cd.ref = pfp.ref_fourn";
|
||||||
$sql .= ' WHERE cd.rowid = '.$rowid;
|
$sql .= ' WHERE cd.rowid = '.$rowid;
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
@ -3437,6 +3493,11 @@ class CommandeFournisseurLigne extends CommonOrderLine
|
|||||||
$this->product_ref = $objp->product_ref;
|
$this->product_ref = $objp->product_ref;
|
||||||
$this->product_libelle = $objp->product_libelle;
|
$this->product_libelle = $objp->product_libelle;
|
||||||
$this->product_desc = $objp->product_desc;
|
$this->product_desc = $objp->product_desc;
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
{
|
||||||
|
$this->packaging = $objp->packaging;
|
||||||
|
$this->fk_fournprice = $objp->fk_pfp;
|
||||||
|
}
|
||||||
|
|
||||||
$this->date_start = $this->db->jdate($objp->date_start);
|
$this->date_start = $this->db->jdate($objp->date_start);
|
||||||
$this->date_end = $this->db->jdate($objp->date_end);
|
$this->date_end = $this->db->jdate($objp->date_end);
|
||||||
|
|||||||
@ -273,6 +273,7 @@ class ProductFournisseur extends Product
|
|||||||
$charges = price2num($charges, 'MU');
|
$charges = price2num($charges, 'MU');
|
||||||
$qty = price2num($qty, 'MS');
|
$qty = price2num($qty, 'MS');
|
||||||
$unitBuyPrice = price2num($buyprice / $qty, 'MU');
|
$unitBuyPrice = price2num($buyprice / $qty, 'MU');
|
||||||
|
$packaging = ($this->packaging < $qty) ? $qty : $this->packaging;
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
@ -359,6 +360,7 @@ class ProductFournisseur extends Product
|
|||||||
$sql .= " supplier_reputation = ".(empty($supplier_reputation) ? 'NULL' : "'".$this->db->escape($supplier_reputation)."'").",";
|
$sql .= " supplier_reputation = ".(empty($supplier_reputation) ? 'NULL' : "'".$this->db->escape($supplier_reputation)."'").",";
|
||||||
$sql .= " barcode = ".(empty($barcode) ? 'NULL' : "'".$this->db->escape($barcode)."'").",";
|
$sql .= " barcode = ".(empty($barcode) ? 'NULL' : "'".$this->db->escape($barcode)."'").",";
|
||||||
$sql .= " fk_barcode_type = ".(empty($fk_barcode_type) ? 'NULL' : "'".$this->db->escape($fk_barcode_type)."'");
|
$sql .= " fk_barcode_type = ".(empty($fk_barcode_type) ? 'NULL' : "'".$this->db->escape($fk_barcode_type)."'");
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $sql.= ", packaging = ".(empty($packaging) ? 1 : $packaging);
|
||||||
$sql .= " WHERE rowid = ".$this->product_fourn_price_id;
|
$sql .= " WHERE rowid = ".$this->product_fourn_price_id;
|
||||||
// TODO Add price_base_type and price_ttc
|
// TODO Add price_base_type and price_ttc
|
||||||
|
|
||||||
@ -408,6 +410,7 @@ class ProductFournisseur extends Product
|
|||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_fournisseur_price(";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_fournisseur_price(";
|
||||||
$sql .= " multicurrency_price, multicurrency_unitprice, multicurrency_tx, fk_multicurrency, multicurrency_code,";
|
$sql .= " multicurrency_price, multicurrency_unitprice, multicurrency_tx, fk_multicurrency, multicurrency_code,";
|
||||||
$sql .= "datec, fk_product, fk_soc, ref_fourn, desc_fourn, fk_user, price, quantity, remise_percent, remise, unitprice, tva_tx, charges, fk_availability, default_vat_code, info_bits, entity, delivery_time_days, supplier_reputation, barcode, fk_barcode_type)";
|
$sql .= "datec, fk_product, fk_soc, ref_fourn, desc_fourn, fk_user, price, quantity, remise_percent, remise, unitprice, tva_tx, charges, fk_availability, default_vat_code, info_bits, entity, delivery_time_days, supplier_reputation, barcode, fk_barcode_type)";
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $sql.= ", packaging";
|
||||||
$sql .= " values(";
|
$sql .= " values(";
|
||||||
$sql .= (isset($multicurrency_buyprice) ? "'".$this->db->escape(price2num($multicurrency_buyprice))."'" : 'null').",";
|
$sql .= (isset($multicurrency_buyprice) ? "'".$this->db->escape(price2num($multicurrency_buyprice))."'" : 'null').",";
|
||||||
$sql .= (isset($multicurrency_unitBuyPrice) ? "'".$this->db->escape(price2num($multicurrency_unitBuyPrice))."'" : 'null').",";
|
$sql .= (isset($multicurrency_unitBuyPrice) ? "'".$this->db->escape(price2num($multicurrency_unitBuyPrice))."'" : 'null').",";
|
||||||
@ -435,6 +438,7 @@ class ProductFournisseur extends Product
|
|||||||
$sql .= (empty($supplier_reputation) ? 'NULL' : "'".$this->db->escape($supplier_reputation)."'").",";
|
$sql .= (empty($supplier_reputation) ? 'NULL' : "'".$this->db->escape($supplier_reputation)."'").",";
|
||||||
$sql .= (empty($barcode) ? 'NULL' : "'".$this->db->escape($barcode)."'").",";
|
$sql .= (empty($barcode) ? 'NULL' : "'".$this->db->escape($barcode)."'").",";
|
||||||
$sql .= (empty($fk_barcode_type) ? 'NULL' : "'".$this->db->escape($fk_barcode_type)."'");
|
$sql .= (empty($fk_barcode_type) ? 'NULL' : "'".$this->db->escape($fk_barcode_type)."'");
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $sql.= ", ".(empty($this->packaging) ? 1 : $this->db->escape($this->packaging)) ;
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
$this->product_fourn_price_id = 0;
|
$this->product_fourn_price_id = 0;
|
||||||
@ -501,6 +505,7 @@ class ProductFournisseur extends Product
|
|||||||
$sql .= " pfp.supplier_reputation, pfp.fk_user, pfp.datec,";
|
$sql .= " pfp.supplier_reputation, pfp.fk_user, pfp.datec,";
|
||||||
$sql .= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code,";
|
$sql .= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code,";
|
||||||
$sql .= " pfp.barcode, pfp.fk_barcode_type";
|
$sql .= " pfp.barcode, pfp.fk_barcode_type";
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $sql.= ", pfp.packaging";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
||||||
$sql .= " WHERE pfp.rowid = ".(int) $rowid;
|
$sql .= " WHERE pfp.rowid = ".(int) $rowid;
|
||||||
|
|
||||||
@ -544,6 +549,12 @@ class ProductFournisseur extends Product
|
|||||||
$this->fourn_barcode = $obj->barcode;
|
$this->fourn_barcode = $obj->barcode;
|
||||||
$this->fourn_fk_barcode_type = $obj->fk_barcode_type;
|
$this->fourn_fk_barcode_type = $obj->fk_barcode_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) {
|
||||||
|
$this->packaging = $obj->packaging;
|
||||||
|
if ($this->packaging < $this->fourn_qty) $this->packaging = $this->fourn_qty;
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($ignore_expression) && !empty($this->fk_supplier_price_expression))
|
if (empty($ignore_expression) && !empty($this->fk_supplier_price_expression))
|
||||||
{
|
{
|
||||||
$priceparser = new PriceParser($this->db);
|
$priceparser = new PriceParser($this->db);
|
||||||
@ -598,6 +609,7 @@ class ProductFournisseur extends Product
|
|||||||
$sql .= " pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability, pfp.charges, pfp.info_bits, pfp.delivery_time_days, pfp.supplier_reputation,";
|
$sql .= " pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability, pfp.charges, pfp.info_bits, pfp.delivery_time_days, pfp.supplier_reputation,";
|
||||||
$sql .= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code, pfp.datec, pfp.tms,";
|
$sql .= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code, pfp.datec, pfp.tms,";
|
||||||
$sql .= " pfp.barcode, pfp.fk_barcode_type";
|
$sql .= " pfp.barcode, pfp.fk_barcode_type";
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $sql.= ", pfp.packaging";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp, ".MAIN_DB_PREFIX."societe as s";
|
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp, ".MAIN_DB_PREFIX."societe as s";
|
||||||
$sql .= " WHERE pfp.entity IN (".getEntity('productsupplierprice').")";
|
$sql .= " WHERE pfp.entity IN (".getEntity('productsupplierprice').")";
|
||||||
$sql .= " AND pfp.fk_soc = s.rowid";
|
$sql .= " AND pfp.fk_soc = s.rowid";
|
||||||
@ -647,6 +659,11 @@ class ProductFournisseur extends Product
|
|||||||
$prodfourn->fourn_multicurrency_id = $record["fk_multicurrency"];
|
$prodfourn->fourn_multicurrency_id = $record["fk_multicurrency"];
|
||||||
$prodfourn->fourn_multicurrency_code = $record["multicurrency_code"];
|
$prodfourn->fourn_multicurrency_code = $record["multicurrency_code"];
|
||||||
|
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) {
|
||||||
|
$prodfourn->packaging = $record["packaging"];
|
||||||
|
if ($prodfourn->packaging < $prodfourn->fourn_qty) $prodfourn->packaging = $prodfourn->fourn_qty;
|
||||||
|
}
|
||||||
|
|
||||||
if ($conf->barcode->enabled) {
|
if ($conf->barcode->enabled) {
|
||||||
$prodfourn->barcode = $record["barcode"];
|
$prodfourn->barcode = $record["barcode"];
|
||||||
$prodfourn->fk_barcode_type = $record["fk_barcode_type"];
|
$prodfourn->fk_barcode_type = $record["fk_barcode_type"];
|
||||||
|
|||||||
@ -331,6 +331,10 @@ PossibleValues=Possible values
|
|||||||
GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...)
|
GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...)
|
||||||
UseProductFournDesc=Add a feature to define the descriptions of products defined by the vendors in addition to descriptions for customers
|
UseProductFournDesc=Add a feature to define the descriptions of products defined by the vendors in addition to descriptions for customers
|
||||||
ProductSupplierDescription=Vendor description for the product
|
ProductSupplierDescription=Vendor description for the product
|
||||||
|
UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents)
|
||||||
|
PackagingForThisProduct=Packaging
|
||||||
|
QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging
|
||||||
|
|
||||||
#Attributes
|
#Attributes
|
||||||
VariantAttributes=Variant attributes
|
VariantAttributes=Variant attributes
|
||||||
ProductAttributes=Variant attributes for products
|
ProductAttributes=Variant attributes for products
|
||||||
|
|||||||
@ -156,6 +156,18 @@ if ($action == 'other')
|
|||||||
$resql_new = $db->query($sql_new);
|
$resql_new = $db->query($sql_new);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$value = GETPOST('activate_useProdSupplierPackaging', 'alpha');
|
||||||
|
$res = dolibarr_set_const($db, "PRODUCT_USE_SUPPLIER_PACKAGING", $value, 'chaine', 0, '', $conf->entity);
|
||||||
|
if ($value) {
|
||||||
|
$sql_test = "SELECT count(packaging) as cpt FROM ".MAIN_DB_PREFIX."product_fournisseur_price WHERE 1";
|
||||||
|
$resql = $db->query($sql_test);
|
||||||
|
if (!$resql && $db->lasterrno == 'DB_ERROR_NOSUCHFIELD') // if the field does not exist, we create it
|
||||||
|
{
|
||||||
|
$sql_new = "ALTER TABLE ".MAIN_DB_PREFIX."product_fournisseur_price ADD COLUMN packaging double(24,8) DEFAULT 1";
|
||||||
|
$resql_new = $db->query($sql_new);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'specimen') // For products
|
if ($action == 'specimen') // For products
|
||||||
@ -676,6 +688,13 @@ if (! empty($conf->fournisseur->enabled))
|
|||||||
print $form->selectyesno("activate_useProdFournDesc", (! empty($conf->global->PRODUIT_FOURN_TEXTS)?$conf->global->PRODUIT_FOURN_TEXTS:0), 1);
|
print $form->selectyesno("activate_useProdFournDesc", (! empty($conf->global->PRODUIT_FOURN_TEXTS)?$conf->global->PRODUIT_FOURN_TEXTS:0), 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.$langs->trans("UseProductSupplierPackaging").'</td>';
|
||||||
|
print '<td width="60" align="right">';
|
||||||
|
print $form->selectyesno("activate_useProdSupplierPackaging", (! empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)?$conf->global->PRODUCT_USE_SUPPLIER_PACKAGING:0), 1);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1724,6 +1724,7 @@ class Product extends CommonObject
|
|||||||
$sql .= " pfp.fk_product, pfp.ref_fourn, pfp.desc_fourn, pfp.fk_soc, pfp.tva_tx, pfp.fk_supplier_price_expression";
|
$sql .= " pfp.fk_product, pfp.ref_fourn, pfp.desc_fourn, pfp.fk_soc, pfp.tva_tx, pfp.fk_supplier_price_expression";
|
||||||
$sql .= " ,pfp.default_vat_code";
|
$sql .= " ,pfp.default_vat_code";
|
||||||
$sql .= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
|
$sql .= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $sql.= ", pfp.packaging";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
||||||
$sql .= " WHERE pfp.rowid = ".$prodfournprice;
|
$sql .= " WHERE pfp.rowid = ".$prodfournprice;
|
||||||
if ($qty > 0) { $sql .= " AND pfp.quantity <= ".$qty;
|
if ($qty > 0) { $sql .= " AND pfp.quantity <= ".$qty;
|
||||||
@ -1766,6 +1767,7 @@ class Product extends CommonObject
|
|||||||
$this->fourn_multicurrency_tx = $obj->multicurrency_tx;
|
$this->fourn_multicurrency_tx = $obj->multicurrency_tx;
|
||||||
$this->fourn_multicurrency_id = $obj->fk_multicurrency;
|
$this->fourn_multicurrency_id = $obj->fk_multicurrency;
|
||||||
$this->fourn_multicurrency_code = $obj->multicurrency_code;
|
$this->fourn_multicurrency_code = $obj->multicurrency_code;
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $this->packaging = $obj->packaging;
|
||||||
$result = $obj->fk_product;
|
$result = $obj->fk_product;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
@ -1776,6 +1778,7 @@ class Product extends CommonObject
|
|||||||
$sql .= " pfp.fk_product, pfp.ref_fourn as ref_supplier, pfp.desc_fourn as desc_supplier, pfp.tva_tx, pfp.fk_supplier_price_expression";
|
$sql .= " pfp.fk_product, pfp.ref_fourn as ref_supplier, pfp.desc_fourn as desc_supplier, pfp.tva_tx, pfp.fk_supplier_price_expression";
|
||||||
$sql .= " ,pfp.default_vat_code";
|
$sql .= " ,pfp.default_vat_code";
|
||||||
$sql .= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
|
$sql .= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $sql.= ", pfp.packaging";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
||||||
$sql .= " WHERE pfp.fk_product = ".$product_id;
|
$sql .= " WHERE pfp.fk_product = ".$product_id;
|
||||||
if ($fourn_ref != 'none') { $sql .= " AND pfp.ref_fourn = '".$fourn_ref."'";
|
if ($fourn_ref != 'none') { $sql .= " AND pfp.ref_fourn = '".$fourn_ref."'";
|
||||||
@ -1824,6 +1827,7 @@ class Product extends CommonObject
|
|||||||
$this->fourn_multicurrency_tx = $obj->multicurrency_tx;
|
$this->fourn_multicurrency_tx = $obj->multicurrency_tx;
|
||||||
$this->fourn_multicurrency_id = $obj->fk_multicurrency;
|
$this->fourn_multicurrency_id = $obj->fk_multicurrency;
|
||||||
$this->fourn_multicurrency_code = $obj->multicurrency_code;
|
$this->fourn_multicurrency_code = $obj->multicurrency_code;
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) $this->packaging = $obj->packaging;
|
||||||
$result = $obj->fk_product;
|
$result = $obj->fk_product;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -170,6 +170,7 @@ if (empty($reshook))
|
|||||||
$supplier_description = GETPOST('supplier_description', 'alpha');
|
$supplier_description = GETPOST('supplier_description', 'alpha');
|
||||||
$barcode = GETPOST('barcode', 'alpha');
|
$barcode = GETPOST('barcode', 'alpha');
|
||||||
$fk_barcode_type = GETPOST('fk_barcode_type', 'int');
|
$fk_barcode_type = GETPOST('fk_barcode_type', 'int');
|
||||||
|
$packaging = GETPOST('packaging', 'int');
|
||||||
|
|
||||||
if ($tva_tx == '')
|
if ($tva_tx == '')
|
||||||
{
|
{
|
||||||
@ -232,6 +233,12 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($packaging)) $packaging = 1;
|
||||||
|
|
||||||
|
if ($packaging < $quantity) $packaging = $quantity;
|
||||||
|
|
||||||
|
$object->packaging = $packaging;
|
||||||
|
|
||||||
if (!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
$db->begin();
|
$db->begin();
|
||||||
@ -882,6 +889,7 @@ SCRIPT;
|
|||||||
print_liste_field_titre("BarcodeValue", $_SERVER["PHP_SELF"], "pfp.barcode", "", $param, '', $sortfield, $sortorder, 'center ');
|
print_liste_field_titre("BarcodeValue", $_SERVER["PHP_SELF"], "pfp.barcode", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
print_liste_field_titre("BarcodeType", $_SERVER["PHP_SELF"], "pfp.fk_barcode_type", "", $param, '', $sortfield, $sortorder, 'center ');
|
print_liste_field_titre("BarcodeType", $_SERVER["PHP_SELF"], "pfp.fk_barcode_type", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
}
|
}
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) print_liste_field_titre("PackagingForThisProduct", $_SERVER["PHP_SELF"], "pfp.packaging", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||||
print_liste_field_titre("DateModification", $_SERVER["PHP_SELF"], "pfp.tms", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre("DateModification", $_SERVER["PHP_SELF"], "pfp.tms", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
|
|
||||||
// fetch optionals attributes and labels
|
// fetch optionals attributes and labels
|
||||||
@ -1012,6 +1020,14 @@ SCRIPT;
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Packaging
|
||||||
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING))
|
||||||
|
{
|
||||||
|
print '<td align="center">';
|
||||||
|
print price2num($productfourn->packaging);
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Date
|
// Date
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
print dol_print_date(($productfourn->fourn_date_modification ? $productfourn->fourn_date_modification : $productfourn->date_modification), "dayhour");
|
print dol_print_date(($productfourn->fourn_date_modification ? $productfourn->fourn_date_modification : $productfourn->date_modification), "dayhour");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user