Exemplo n.º 1
0
 /**
  * delete all items in pack, then check if type_product value is 2.
  * if yes, add the pack items from input "inputPackItems"
  *
  * @param Product $product
  * @return boolean
  */
 public function updatePackItems($product)
 {
     Pack::deleteItems($product->id);
     // lines format: QTY x ID-QTY x ID
     if (Tools::getValue('type_product') == Product::PTYPE_PACK) {
         $product->setDefaultAttribute(0);
         //reset cache_default_attribute
         $items = Tools::getValue('inputPackItems');
         $lines = array_unique(explode('-', $items));
         // lines is an array of string with format : QTYxID
         if (count($lines)) {
             foreach ($lines as $line) {
                 if (!empty($line)) {
                     list($qty, $item_id) = explode('x', $line);
                     if ($qty > 0 && isset($item_id)) {
                         if (Pack::isPack((int) $item_id)) {
                             $this->errors[] = Tools::displayError('You can\'t add product packs into a pack');
                         } elseif (!Pack::addItem((int) $product->id, (int) $item_id, (int) $qty)) {
                             $this->errors[] = Tools::displayError('An error occurred while attempting to add products to the pack.');
                         }
                     }
                 }
             }
         }
     }
 }
 public function updatePackItems($product)
 {
     Pack::deleteItems($product->id);
     if (Tools::getValue('ppack') and $items = Tools::getValue('inputPackItems') and sizeof($ids = array_unique(explode('-', $items)))) {
         if (!Pack::addItems($product->id, $ids)) {
             return false;
         }
     }
     return true;
 }
Exemplo n.º 3
0
 public function updatePackItems($product)
 {
     Pack::deleteItems($product->id);
     // lines format: QTY x ID-QTY x ID
     if (Tools::getValue('ppack') and $items = Tools::getValue('inputPackItems') and sizeof($lines = array_unique(explode('-', $items)))) {
         foreach ($lines as $line) {
             // line format QTY x ID
             list($qty, $item_id) = explode('x', $line);
             if ($qty > 0 && isset($item_id)) {
                 if (!Pack::addItem((int) $product->id, (int) $item_id, (int) $qty)) {
                     return false;
                 }
             }
         }
     }
     return true;
 }
Exemplo n.º 4
0
 public function setWsProductBundle($items)
 {
     if ($this->is_virtual) {
         return false;
     }
     Pack::deleteItems($this->id);
     foreach ($items as $item) {
         if ((int) $item['id'] > 0) {
             Pack::addItem($this->id, (int) $item['id'], (int) $item['quantity']);
         }
     }
     return true;
 }
 /**
  * @param $aDataToImported
  * @param $aDataImported
  */
 public function importFile($aDataToImported, &$aDataImported)
 {
     foreach ($aDataToImported as $aData) {
         if (empty($aData['error'])) {
             // Get product information
             $aProduct = NowProduct::getProductLight($aData['id_product']);
             // Gestion des accessoires
             // Delete old accessories
             if (!NowProduct::deleteAccessories($aData['id_product'])) {
                 $aData['error'] = sprintf($this->module->l('Impossible to deleting old accesories to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Insert new accesssories
             if (!NowProduct::changeAccessories($aData['id_product'], explode('::', $aData['accessories']))) {
                 $aData['error'] = sprintf($this->module->l('Impossible to adding the new accesories to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Gestion des types de produits
             // On récupère le type de produit
             $oNowProductTypeProduct = NowProductTypeProduct::getObjectByProductId($aData['id_product']);
             if (Validate::isLoadedObject($oNowProductTypeProduct)) {
                 // Il est valide, on le supprime
                 $oNowProductTypeProduct->delete();
             }
             if (isset($aData['id_now_product_type']) && (bool) $aData['id_now_product_type']) {
                 // On l'ajoute de nouveau
                 $oNowProductTypeProduct = new NowProductTypeProduct();
                 $oNowProductTypeProduct->id_product = (int) $aData['id_product'];
                 $oNowProductTypeProduct->id_now_product_type = (int) $aData['id_now_product_type'];
                 $oNowProductTypeProduct->active = (bool) $aData['active'];
                 $oNowProductTypeProduct->add();
             }
             // Gestion des conseils ou idées
             // Delete old ideas or tips
             if (!NowIdeasOrTips::deleteIdeasOrTips($aData['id_product'])) {
                 $aData['error'] = sprintf($this->module->l('Impossible to deleting old ideas or tips to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Insert new ideas or tips
             if (!NowIdeasOrTips::changeIdeasOrTips($aData['id_product'], explode('::', $aData['ideas_tips']))) {
                 $aData['error'] = sprintf($this->module->l('Impossible to adding the new ideas or tips to this product: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Gestion des packs de produits
             // Delete old products pack
             if (!Pack::deleteItems($aData['id_product'])) {
                 $aData['error'] = sprintf($this->module->l('Impossible to deleting old product to this product pack: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             // Insert new products pack
             if (!NowProduct::changeProductsPacks($aData['id_product'], explode('::', $aData['products_pack']))) {
                 $aData['error'] = sprintf($this->module->l('Impossible to adding the new product to this product pack: %s', 'AdminNowAllImport'), $aProduct['reference']);
             }
             $aDataImported[] = array('id_product' => $aProduct['id_product'], 'product_reference' => $aProduct['reference'], 'product_name' => $aProduct['name'], 'active' => $aData['active'], 'accessories' => isset($aData['accessories']) && $aData['accessories'] ? $this->getNewAccessories($aData['accessories']) : '', 'id_now_product_type' => Validate::isLoadedObject($oNowProductTypeProduct) ? $oNowProductTypeProduct->id_now_product_type : '', 'ideas_tips' => isset($aData['ideas_tips']) && $aData['ideas_tips'] ? $this->getNewIdeasOrTips($aData['ideas_tips']) : '', 'products_pack' => isset($aData['products_pack']) && $aData['products_pack'] ? $this->getNewProductsPacks($aData['products_pack']) : '', 'error' => $aData['error']);
         } else {
             $this->errors[] = $aData['error'];
         }
     }
 }
 /**
  * Permet d'importer les nouveaux packs de produits
  * @param $aDataToImported
  * @param $aDataImported
  */
 public function importProductsPacks($aDataToImported, &$aDataImported)
 {
     foreach ($aDataToImported as $aData) {
         if (empty($aData['error'])) {
             // get product information
             $aProduct = NowProduct::getProductLight($aData['id_product']);
             // Delete old products pack
             if (!Pack::deleteItems($aData['id_product'])) {
                 $aData['error'] = sprintf($this->module->l('Impossible to deleting old product to this product pack: %s', 'AdminNowImportPacks'), $aProduct['reference']);
             }
             // Insert new products pack
             if (!NowProduct::changeProductsPacks($aData['id_product'], explode('::', $aData['products_pack']))) {
                 $aData['error'] = sprintf($this->module->l('Impossible to adding the new product to this product pack: %s', 'AdminNowImportPacks'), $aProduct['reference']);
             }
             $aDataImported[] = array('id_product' => $aProduct['id_product'], 'product_reference' => $aProduct['reference'], 'product_name' => $aProduct['name'], 'products_pack' => $this->getNewProductsPacks($aData['products_pack']), 'error' => $aData['error']);
         } else {
             $this->errors[] = $aData['error'];
         }
     }
 }
Exemplo n.º 7
0
 /**
  * delete all items in pack, then check if type_product value is 2.
  * if yes, add the pack items from input "inputPackItems"
  *
  * @param Product $product
  * @return boolean
  */
 public function updatePackItems($product)
 {
     Pack::deleteItems($product->id);
     // lines format: QTY x ID-QTY x ID
     if (Tools::getValue('type_product') == Product::PTYPE_PACK) {
         $items = Tools::getValue('inputPackItems');
         $lines = array_unique(explode('-', $items));
         // lines is an array of string with format : QTYxID
         if (count($lines)) {
             foreach ($lines as $line) {
                 if (!empty($line)) {
                     list($qty, $item_id) = explode('x', $line);
                     if ($qty > 0 && isset($item_id)) {
                         if (!Pack::addItem((int) $product->id, (int) $item_id, (int) $qty)) {
                             $this->errors[] = Tools::displayError('An error occurred while adding products to the pack.');
                         }
                     }
                 }
             }
         }
     }
 }