Merge pull request #13317 from TobiasSekan/FixErrorOnAddLineToOrder

FIX Error on add a new line to a supplier order (with ODT templates)
This commit is contained in:
Laurent Destailleur
2020-03-11 16:58:44 +01:00
committed by GitHub

View File

@@ -609,21 +609,32 @@ abstract class CommonDocGenerator
// Add the product supplier extrafields to the substitutions
$extrafields->fetch_name_optionals_label("product_fournisseur_price");
$extralabels=$extrafields->attributes["product_fournisseur_price"]['label'];
$columns = "";
foreach ($extralabels as $key => $value)
$columns .= "$key, ";
if ($columns != "")
{
$columns = substr($columns, 0, strlen($columns) - 2);
$resql = $this->db->query("SELECT $columns FROM " . MAIN_DB_PREFIX . "product_fournisseur_price_extrafields AS ex INNER JOIN " . MAIN_DB_PREFIX . "product_fournisseur_price AS f ON ex.fk_object = f.rowid WHERE f.ref_fourn = '" . $line->ref_supplier . "'");
if ($this->db->num_rows($resql) > 0) {
$resql = $this->db->fetch_object($resql);
if (!empty($extralabels) && is_array($extralabels))
{
$columns = "";
foreach ($extralabels as $key => $value)
$resarray['line_product_supplier_'.$key] = $resql->{$key};
}
}
foreach ($extralabels as $key)
{
$columns .= "$key, ";
}
if ($columns != "")
{
$columns = substr($columns, 0, strlen($columns) - 2);
$resql = $this->db->query("SELECT $columns FROM " . MAIN_DB_PREFIX . "product_fournisseur_price_extrafields AS ex INNER JOIN " . MAIN_DB_PREFIX . "product_fournisseur_price AS f ON ex.fk_object = f.rowid WHERE f.ref_fourn = '" . $line->ref_supplier . "'");
if ($this->db->num_rows($resql) > 0)
{
$resql = $this->db->fetch_object($resql);
foreach ($extralabels as $key)
{
$resarray['line_product_supplier_'.$key] = $resql->{$key};
}
}
}
}
}
// Load product data optional fields to the line -> enables to use "line_options_{extrafield}"