diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php
index bd93ef60a26..0abb57d8951 100644
--- a/htdocs/product/fournisseurs.php
+++ b/htdocs/product/fournisseurs.php
@@ -265,32 +265,31 @@ if (empty($reshook))
$extralabels = $extrafields->fetch_name_optionals_label("product_fournisseur_price");
$extrafield_values = $extrafields->getOptionalsFromPost("product_fournisseur_price");
+ if (!empty($extrafield_values)) {
+ $resql = $db->query("SELECT fk_object FROM " . MAIN_DB_PREFIX . "product_fournisseur_price_extrafields WHERE fk_object = " . $object->product_fourn_price_id);
+ // Insert a new extrafields row, if none exists
+ if ($db->num_rows($resql) != 1) {
+ $sql = "INSERT INTO " . MAIN_DB_PREFIX . "product_fournisseur_price_extrafields (fk_object, ";
+ foreach ($extrafield_values as $key => $value) {
+ $sql .= str_replace('options_', '', $key) . ', ';
+ }
+ $sql = substr($sql, 0, strlen($sql) - 2) . ") VALUES (" . $object->product_fourn_price_id . ", ";
+ foreach ($extrafield_values as $key => $value) {
+ $sql .= '"' . $value . '", ';
+ }
+ $sql = substr($sql, 0, strlen($sql) - 2) . ')';
+ } // else update the existing one
+ else {
+ $sql = "UPDATE " . MAIN_DB_PREFIX . "product_fournisseur_price_extrafields SET ";
+ foreach ($extrafield_values as $key => $value) {
+ $sql .= str_replace('options_', '', $key) . ' = "' . $value . '", ';
+ }
+ $sql = substr($sql, 0, strlen($sql) - 2) . ' WHERE fk_object = ' . $object->product_fourn_price_id;
+ }
- $sql = "";
- $resql = $db->query("SELECT * FROM ".MAIN_DB_PREFIX."product_fournisseur_price_extrafields WHERE fk_object = ".$object->product_fourn_price_id);
- // Insert a new extrafields row, if none exists
- if ($db->num_rows($resql) != 1) {
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."product_fournisseur_price_extrafields (fk_object, ";
- foreach ($extrafield_values as $key => $value) {
- $sql .= str_replace('options_', '', $key).', ';
- }
- $sql = substr($sql, 0, strlen($sql) - 2).") VALUES (".$object->product_fourn_price_id.", ";
- foreach ($extrafield_values as $key => $value) {
- $sql .= '"'.$value.'", ';
- }
- $sql = substr($sql, 0, strlen($sql) - 2).')';
- }
- // else update the existing one
- else {
- $sql = "UPDATE ".MAIN_DB_PREFIX."product_fournisseur_price_extrafields SET ";
- foreach ($extrafield_values as $key => $value) {
- $sql .= str_replace('options_', '', $key).' = "'.$value.'", ';
- }
- $sql = substr($sql, 0, strlen($sql) - 2).' WHERE fk_object = '.$object->product_fourn_price_id;
- }
-
- // Execute the sql command from above
- $db->query($sql);
+ // Execute the sql command from above
+ $db->query($sql);
+ }
$newprice = price2num(GETPOST("price", "alpha"));
@@ -765,25 +764,36 @@ SCRIPT;
print '';
}
+ // Extrafields
$extrafields->fetch_name_optionals_label("product_fournisseur_price");
$extralabels = $extrafields->attributes["product_fournisseur_price"]['label'];
- // Extrafields
- $resql = $db->query("SELECT * FROM ".MAIN_DB_PREFIX."product_fournisseur_price_extrafields WHERE fk_object = ".$rowid);
+ $extrafield_values = $extrafields->getOptionalsFromPost("product_fournisseur_price");
if (!empty($extralabels)) {
- if ($db->num_rows($resql) != 1) {
- foreach ($extralabels as $key => $value) {
- if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && ($extrafields->attributes["product_fournisseur_price"]['list'][$key] == 1 || $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 3 || ($action == "update_price" && $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 4))) {
- print '
| attributes["product_fournisseur_price"]['required'][$key] ? ' class="fieldrequired"' : '').'>'.$langs->trans($value).' | '.$extrafields->showInputField($key, '', '', '', '', '', 0, 'product_fournisseur_price').' |
';
- }
- }
- } else {
- $resql = $db->fetch_object($resql);
- foreach ($extralabels as $key => $value) {
- if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && ($extrafields->attributes["product_fournisseur_price"]['list'][$key] == 1 || $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 3 || ($action == "update_price" && $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 4))) {
- print '| attributes["product_fournisseur_price"]['required'][$key] ? ' class="fieldrequired"' : '').'>'.$langs->trans($value).' | '.$extrafields->showInputField($key, $resql->{$key}, '', '', '', '', 0, 'product_fournisseur_price').' |
';
- }
- }
- }
+ if (empty($rowid)) {
+ foreach ($extralabels as $key => $value) {
+ if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && ($extrafields->attributes["product_fournisseur_price"]['list'][$key] == 1 || $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 3 || ($action == "update_price" && $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 4))) {
+ print '| attributes["product_fournisseur_price"]['required'][$key] ? ' class="fieldrequired"' : '').'>'.$langs->trans($value).' | '.$extrafields->showInputField($key, GETPOSTISSET('options_' . $key) ? $extrafield_values['options_' . $key] : '', '', '', '', '', 0, 'product_fournisseur_price').' |
';
+ }
+ }
+ } else {
+ $sql = "SELECT";
+ $sql .= " fk_object";
+ foreach ($extralabels as $key => $value) {
+ $sql .= ", " . $key;
+ }
+ $sql .= " FROM " . MAIN_DB_PREFIX . "product_fournisseur_price_extrafields";
+ $sql .= " WHERE fk_object = " . $rowid;
+ $resql = $db->query($sql);
+ if ($resql) {
+ $obj = $db->fetch_object($resql);
+ foreach ($extralabels as $key => $value) {
+ if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && ($extrafields->attributes["product_fournisseur_price"]['list'][$key] == 1 || $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 3 || ($action == "update_price" && $extrafields->attributes["product_fournisseur_price"]['list'][$key] == 4))) {
+ print '| attributes["product_fournisseur_price"]['required'][$key] ? ' class="fieldrequired"' : '').'>'.$langs->trans($value).' | '.$extrafields->showInputField($key, GETPOSTISSET('options_' . $key) ? $extrafield_values['options_' . $key] : $obj->{$key}, '', '', '', '', 0, 'product_fournisseur_price').' |
';
+ }
+ }
+ $db->free($resql);
+ }
+ }
}
if (is_object($hookmanager))
@@ -1008,22 +1018,32 @@ SCRIPT;
print '';
// Extrafields
- $resql = $db->query("SELECT * FROM ".MAIN_DB_PREFIX."product_fournisseur_price_extrafields WHERE fk_object = ".$productfourn->product_fourn_price_id);
if (!empty($extralabels)) {
- if ($db->num_rows($resql) != 1) {
- foreach ($extralabels as $key => $value) {
- if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && $extrafields->attributes["product_fournisseur_price"]['list'][$key] != 3) {
- print " | ";
- }
- }
- } else {
- $resql = $db->fetch_object($resql);
- foreach ($extralabels as $key => $value) {
- if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && $extrafields->attributes["product_fournisseur_price"]['list'][$key] != 3) {
- print ''.$extrafields->showOutputField($key, $resql->{$key})." | ";
- }
- }
- }
+ $sql = "SELECT";
+ $sql .= " fk_object";
+ foreach ($extralabels as $key => $value) {
+ $sql .= ", " . $key;
+ }
+ $sql .= " FROM " . MAIN_DB_PREFIX . "product_fournisseur_price_extrafields";
+ $sql .= " WHERE fk_object = " . $productfourn->product_fourn_price_id;
+ $resql = $db->query($sql);
+ if ($resql) {
+ if ($db->num_rows($resql) != 1) {
+ foreach ($extralabels as $key => $value) {
+ if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && $extrafields->attributes["product_fournisseur_price"]['list'][$key] != 3) {
+ print " | ";
+ }
+ }
+ } else {
+ $obj = $db->fetch_object($resql);
+ foreach ($extralabels as $key => $value) {
+ if (!empty($extrafields->attributes["product_fournisseur_price"]['list'][$key]) && $extrafields->attributes["product_fournisseur_price"]['list'][$key] != 3) {
+ print ''.$extrafields->showOutputField($key, $obj->{$key})." | ";
+ }
+ }
+ }
+ $db->free($resql);
+ }
}
if (is_object($hookmanager))