FIX Edit of ref_supplier in supplier invoice
This commit is contained in:
parent
9d070cac87
commit
5eb7c7ffff
@ -132,7 +132,7 @@ $coldisplay=-1; // We remove first td
|
|||||||
if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier') // We must have same test in printObjectLines
|
if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier') // We must have same test in printObjectLines
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<td align="right"><input id="fourn_ref" name="fourn_ref" class="flat minwidth75" value="<?php echo $line->ref_fourn; ?>"></td>
|
<td align="right"><input id="fourn_ref" name="fourn_ref" class="flat minwidth75" value="<?php echo ($line->ref_supplier ? $line->ref_supplier : $line->ref_fourn); ?>"></td>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1487,7 +1487,6 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
|
|
||||||
if ($fk_product > 0)
|
if ($fk_product > 0)
|
||||||
{
|
{
|
||||||
//if (empty($conf->global->SUPPLIER_ORDER_WITH_NOPRICEDEFINED))
|
|
||||||
if (! empty($conf->global->SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY))
|
if (! empty($conf->global->SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY))
|
||||||
{
|
{
|
||||||
// Check quantity is enough
|
// Check quantity is enough
|
||||||
|
|||||||
@ -1490,8 +1490,6 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
* @param double $pu_ht_devise Amount in currency
|
* @param double $pu_ht_devise Amount in currency
|
||||||
* @param string $ref_supplier Supplier ref
|
* @param string $ref_supplier Supplier ref
|
||||||
* @return int >0 if OK, <0 if KO
|
* @return int >0 if OK, <0 if KO
|
||||||
*
|
|
||||||
* FIXME Add field ref (that should be named ref_supplier) and label into update. For example can be filled when product line created from order.
|
|
||||||
*/
|
*/
|
||||||
public function addline($desc, $pu, $txtva, $txlocaltax1, $txlocaltax2, $qty, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits='', $price_base_type='HT', $type=0, $rang=-1, $notrigger=false, $array_options=0, $fk_unit=null, $origin_id=0, $pu_ht_devise=0, $ref_supplier='')
|
public function addline($desc, $pu, $txtva, $txlocaltax1, $txlocaltax2, $qty, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits='', $price_base_type='HT', $type=0, $rang=-1, $notrigger=false, $array_options=0, $fk_unit=null, $origin_id=0, $pu_ht_devise=0, $ref_supplier='')
|
||||||
{
|
{
|
||||||
@ -1717,12 +1715,13 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
* @param array $array_options extrafields array
|
* @param array $array_options extrafields array
|
||||||
* @param string $fk_unit Code of the unit to use. Null to use the default one
|
* @param string $fk_unit Code of the unit to use. Null to use the default one
|
||||||
* @param double $pu_ht_devise Amount in currency
|
* @param double $pu_ht_devise Amount in currency
|
||||||
|
* @param string $ref_supplier Supplier ref
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
public function updateline($id, $desc, $pu, $vatrate, $txlocaltax1=0, $txlocaltax2=0, $qty=1, $idproduct=0, $price_base_type='HT', $info_bits=0, $type=0, $remise_percent=0, $notrigger=false, $date_start='', $date_end='', $array_options=0, $fk_unit = null, $pu_ht_devise=0)
|
public function updateline($id, $desc, $pu, $vatrate, $txlocaltax1=0, $txlocaltax2=0, $qty=1, $idproduct=0, $price_base_type='HT', $info_bits=0, $type=0, $remise_percent=0, $notrigger=false, $date_start='', $date_end='', $array_options=0, $fk_unit = null, $pu_ht_devise=0, $ref_supplier='')
|
||||||
{
|
{
|
||||||
global $mysoc;
|
global $mysoc;
|
||||||
dol_syslog(get_class($this)."::updateline $id,$desc,$pu,$vatrate,$qty,$idproduct,$price_base_type,$info_bits,$type,$remise_percent,$fk_unit", LOG_DEBUG);
|
dol_syslog(get_class($this)."::updateline $id,$desc,$pu,$vatrate,$qty,$idproduct,$price_base_type,$info_bits,$type,$remise_percent,$fk_unit,$pu_ht_devise,$ref_supplier", LOG_DEBUG);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
|
||||||
|
|
||||||
$pu = price2num($pu);
|
$pu = price2num($pu);
|
||||||
@ -1800,6 +1799,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$line->pu_ttc = $pu_ttc;
|
$line->pu_ttc = $pu_ttc;
|
||||||
$line->qty = $qty;
|
$line->qty = $qty;
|
||||||
$line->remise_percent = $remise_percent;
|
$line->remise_percent = $remise_percent;
|
||||||
|
$line->ref_supplier = $ref_supplier;
|
||||||
|
|
||||||
$line->vat_src_code=$vat_src_code;
|
$line->vat_src_code=$vat_src_code;
|
||||||
$line->tva_tx = $vatrate;
|
$line->tva_tx = $vatrate;
|
||||||
@ -2714,7 +2714,6 @@ class SupplierInvoiceLine extends CommonObjectLine
|
|||||||
$this->fk_facture_fourn = $obj->fk_facture_fourn;
|
$this->fk_facture_fourn = $obj->fk_facture_fourn;
|
||||||
$this->description = $obj->description;
|
$this->description = $obj->description;
|
||||||
$this->product_ref = $obj->product_ref;
|
$this->product_ref = $obj->product_ref;
|
||||||
$this->ref = $obj->product_ref;
|
|
||||||
$this->ref_supplier = $obj->ref_supplier;
|
$this->ref_supplier = $obj->ref_supplier;
|
||||||
$this->libelle = $obj->label;
|
$this->libelle = $obj->label;
|
||||||
$this->label = $obj->label;
|
$this->label = $obj->label;
|
||||||
@ -2842,12 +2841,12 @@ class SupplierInvoiceLine extends CommonObjectLine
|
|||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det SET";
|
||||||
$sql.= " description ='".$this->db->escape($this->description)."'";
|
$sql.= " description ='".$this->db->escape($this->description)."'";
|
||||||
$sql.= ", ref ='".$this->db->escape($this->ref)."'";
|
$sql.= ", ref ='".$this->db->escape($this->ref_supplier ? $this->ref_supplier : $this->ref)."'";
|
||||||
$sql.= ", pu_ht = ".price2num($this->pu_ht);
|
$sql.= ", pu_ht = ".price2num($this->pu_ht);
|
||||||
$sql.= ", pu_ttc = ".price2num($this->pu_ttc);
|
$sql.= ", pu_ttc = ".price2num($this->pu_ttc);
|
||||||
$sql.= ", qty = ".price2num($this->qty);
|
$sql.= ", qty = ".price2num($this->qty);
|
||||||
$sql.= ", remise_percent = ".price2num($this->remise_percent);
|
$sql.= ", remise_percent = ".price2num($this->remise_percent);
|
||||||
$sql.= ", vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
|
$sql.= ", vat_src_code = '".$this->db->escape(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
|
||||||
$sql.= ", tva_tx = ".price2num($this->tva_tx);
|
$sql.= ", tva_tx = ".price2num($this->tva_tx);
|
||||||
$sql.= ", localtax1_tx = ".price2num($this->localtax1_tx);
|
$sql.= ", localtax1_tx = ".price2num($this->localtax1_tx);
|
||||||
$sql.= ", localtax2_tx = ".price2num($this->localtax2_tx);
|
$sql.= ", localtax2_tx = ".price2num($this->localtax2_tx);
|
||||||
|
|||||||
@ -553,9 +553,12 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
|
|
||||||
$productsupplier = new ProductFournisseur($db);
|
$productsupplier = new ProductFournisseur($db);
|
||||||
if ($line->fk_product > 0 && $productsupplier->get_buyprice(0, price2num($_POST['qty']), $line->fk_product, 'none', GETPOST('socid','int')) < 0 )
|
if (! empty($conf->global->SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY))
|
||||||
{
|
{
|
||||||
setEventMessages($langs->trans("ErrorQtyTooLowForThisSupplier"), null, 'warnings');
|
if ($line->fk_product > 0 && $productsupplier->get_buyprice(0, price2num($_POST['qty']), $line->fk_product, 'none', GETPOST('socid','int')) < 0 )
|
||||||
|
{
|
||||||
|
setEventMessages($langs->trans("ErrorQtyTooLowForThisSupplier"), null, 'warnings');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
|
$date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
|
||||||
|
|||||||
@ -1000,8 +1000,17 @@ if (empty($reshook))
|
|||||||
$price_base_type = 'TTC';
|
$price_base_type = 'TTC';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GETPOST('productid'))
|
if (GETPOST('productid') > 0)
|
||||||
{
|
{
|
||||||
|
$productsupplier = new ProductFournisseur($db);
|
||||||
|
if (! empty($conf->global->SUPPLIER_INVOICE_WITH_PREDEFINED_PRICES_ONLY))
|
||||||
|
{
|
||||||
|
if (GETPOST('productid') > 0 && $productsupplier->get_buyprice(0, price2num($_POST['qty']), GETPOST('productid'), 'none', GETPOST('socid','int')) < 0 )
|
||||||
|
{
|
||||||
|
setEventMessages($langs->trans("ErrorQtyTooLowForThisSupplier"), null, 'warnings');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$prod = new Product($db);
|
$prod = new Product($db);
|
||||||
$prod->fetch(GETPOST('productid'));
|
$prod->fetch(GETPOST('productid'));
|
||||||
$label = $prod->description;
|
$label = $prod->description;
|
||||||
@ -1042,7 +1051,7 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$result=$object->updateline(GETPOST('lineid'), $label, $up, $tva_tx, $localtax1_tx, $localtax2_tx, GETPOST('qty'), GETPOST('productid'), $price_base_type, $info_bits, $type, $remise_percent, 0, $date_start, $date_end, $array_options, $_POST['units'], $pu_ht_devise);
|
$result=$object->updateline(GETPOST('lineid'), $label, $up, $tva_tx, $localtax1_tx, $localtax2_tx, GETPOST('qty'), GETPOST('productid'), $price_base_type, $info_bits, $type, $remise_percent, 0, $date_start, $date_end, $array_options, $_POST['units'], $pu_ht_devise, GETPOST('fourn_ref','alpha'));
|
||||||
if ($result >= 0)
|
if ($result >= 0)
|
||||||
{
|
{
|
||||||
unset($_POST['label']);
|
unset($_POST['label']);
|
||||||
|
|||||||
@ -774,6 +774,7 @@ if (empty($reshook))
|
|||||||
|
|
||||||
// Mise a jour d'une ligne dans la demande de prix
|
// Mise a jour d'une ligne dans la demande de prix
|
||||||
else if ($action == 'updateligne' && $user->rights->supplier_proposal->creer && GETPOST('save') == $langs->trans("Save")) {
|
else if ($action == 'updateligne' && $user->rights->supplier_proposal->creer && GETPOST('save') == $langs->trans("Save")) {
|
||||||
|
|
||||||
// Define info_bits
|
// Define info_bits
|
||||||
$info_bits = 0;
|
$info_bits = 0;
|
||||||
if (preg_match('/\*/', GETPOST('tva_tx')))
|
if (preg_match('/\*/', GETPOST('tva_tx')))
|
||||||
@ -812,6 +813,16 @@ if (empty($reshook))
|
|||||||
// Check minimum price
|
// Check minimum price
|
||||||
$productid = GETPOST('productid', 'int');
|
$productid = GETPOST('productid', 'int');
|
||||||
if (! empty($productid)) {
|
if (! empty($productid)) {
|
||||||
|
|
||||||
|
$productsupplier = new ProductFournisseur($db);
|
||||||
|
if (! empty($conf->global->SUPPLIER_PROPOSAL_WITH_PREDEFINED_PRICES_ONLY))
|
||||||
|
{
|
||||||
|
if ($productid > 0 && $productsupplier->get_buyprice(0, price2num($_POST['qty']), $productid, 'none', GETPOST('socid','int')) < 0 )
|
||||||
|
{
|
||||||
|
setEventMessages($langs->trans("ErrorQtyTooLowForThisSupplier"), null, 'warnings');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$product = new Product($db);
|
$product = new Product($db);
|
||||||
$res = $product->fetch($productid);
|
$res = $product->fetch($productid);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user