From b2aee7ade6a1074bf6c73d8707c92fda09b2dc92 Mon Sep 17 00:00:00 2001 From: bMancone Date: Wed, 11 Jan 2012 15:30:02 +0000 Subject: [PATCH] // Fixed Suppliers/Products association #PSTEST-429 --- classes/Product.php | 7 ++++++ controllers/admin/AdminProductsController.php | 23 +++++++++++-------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/classes/Product.php b/classes/Product.php index a11efd0f9..dc6f2f1c2 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -1180,6 +1180,13 @@ class ProductCore extends ObjectModel return $return; } + /** + * Sets Supplier Reference + * + * @param string $supplier_reference + * @param int $id_product_attribute + * @param int $id_currency + */ public function addSupplierReference($supplier_reference, $id_product_attribute = null, $id_currency = null) { //Try to set the default supplier reference diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index 060d75002..8cc459dc1 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -2285,13 +2285,9 @@ class AdminProductsControllerCore extends AdminController foreach ($attributes as $attribute) foreach ($associated_suppliers as $supplier) { - if (Tools::isSubmit('supplier_reference_'.$product->id.'_'.$attribute['id_product_attribute'].'_'.$supplier->id_supplier) - || - ( - Tools::isSubmit('product_price_'.$product->id.'_'.$attribute['id_product_attribute'].'_'.$supplier->id_supplier) - && - Tools::isSubmit('product_price_currency_'.$product->id.'_'.$attribute['id_product_attribute'].'_'.$supplier->id_supplier) - )) + if (Tools::isSubmit('supplier_reference_'.$product->id.'_'.$attribute['id_product_attribute'].'_'.$supplier->id_supplier) || + (Tools::isSubmit('product_price_'.$product->id.'_'.$attribute['id_product_attribute'].'_'.$supplier->id_supplier) && + Tools::isSubmit('product_price_currency_'.$product->id.'_'.$attribute['id_product_attribute'].'_'.$supplier->id_supplier))) { $reference = pSQL( Tools::getValue( @@ -2321,6 +2317,7 @@ class AdminProductsControllerCore extends AdminController // Save product-supplier data $existing_id = (int)ProductSupplier::getIdByProductAndSupplier($product->id, $attribute['id_product_attribute'], $supplier->id_supplier); + if ($existing_id <= 0) { $product->addSupplierReference($reference, (int)$attribute['id_product_attribute'], (int)$id_currency); @@ -2339,12 +2336,20 @@ class AdminProductsControllerCore extends AdminController } else { - $product->wholesale_price = Tools::convertPrice($price, $id_currency); //converted in the default currency - $product->supplier_reference = $reference; + $product->wholesale_price = (float)Tools::convertPrice($price, $id_currency); //converted in the default currency + $product->supplier_reference = pSQL($reference); $update_product = true; } } } + else + { + $product_supplier = new ProductSupplier($existing_id); + $product_supplier->product_supplier_price_te = (float)Tools::convertPrice($price, $id_currency); //converted in the default currency + $product_supplier->product_supplier_reference = pSQL($reference); + $product_supplier->update(); + + } } else if (Tools::isSubmit('supplier_reference_'.$product->id.'_'.$attribute['id_product_attribute'].'_'.$supplier->id_supplier)) {