Beispiel #1
0
 /**
  * [DuplicateProduct description]
  * @param [type] $data [description]
  */
 public function DuplicateProduct($data)
 {
     // creating new article
     $art = $this->CheckArticle((int) $this->GetLastArticle());
     // duplicating main product information & category
     $this->SetFieldsById($data['id_product']);
     $old_product_info = $this->fields;
     $old_product_info['art'] = $art;
     // $old_product_info['dupl_idproduct'] = $data['id_product'];
     $old_product_info['name'] .= ' ' . $art;
     if (!($id_product = $this->AddProduct($old_product_info))) {
         return false;
     }
     // duplicating product assortment
     $sql = "SELECT * FROM " . _DB_PREFIX_ . "assortiment AS a\n\t\t\tWHERE a.id_product = " . $data['id_product'];
     $res = $this->db->GetArray($sql);
     if (!empty($res)) {
         foreach ($res as &$value) {
             $value['id_product'] = $id_product;
             $this->AddToAssortWithAdm($value);
         }
     }
     // duplicating product specifications
     $sql = "SELECT * FROM " . _DB_PREFIX_ . "specs_prods as s\n\t\t\tWHERE s.id_prod = " . $data['id_product'];
     $res = $this->db->GetArray($sql);
     if (!empty($res)) {
         $specifications = new Specification();
         foreach ($res as $value) {
             $specifications->AddSpecToProd($value, $id_product);
         }
     }
     // duplicating product segmentation
     $sql = "SElECT * FROM " . _DB_PREFIX_ . "segment_prods AS sp\n\t\tWHERE sp.id_product = " . $data['id_product'];
     $res = $this->db->GetArray($sql);
     if (!empty($res)) {
         $segmentation = new Segmentation();
         foreach ($res as $value) {
             $segmentation->AddSegmentInProduct($id_product, $value['id_segment']);
         }
     }
     // duplicating product videos
     $res = $this->GetVideoById($data['id_product']);
     if (!empty($res)) {
         $this->UpdateVideo($id_product, $res);
     }
     // duplicating product images
     $res = $this->GetPhotoById($data['id_product']);
     foreach ($res as &$value) {
         $value = $value['src'];
     }
     if (!empty($res)) {
         $this->UpdatePhoto($id_product, $res);
     }
     return $id_product;
 }
Beispiel #2
0
                 if ($value['id_assortiment'] == false) {
                     $value['id_product'] = $id;
                     //Добавляем поставщика в ассортимент
                     if (!$Products->AddToAssortWithAdm($value)) {
                         echo '<script>alert("Ошибка при добавлении поставщика!\\nДанный товар уже имеется в ассортименте поставщика!");</script>';
                     }
                 } else {
                     //Обновляем данные в ассортименте
                     $Products->UpdateAssortWithAdm($value);
                 }
             }
         }
         //Привязываем сегментяцию к продукту
         if (isset($_POST['id_segment'])) {
             foreach ($_POST['id_segment'] as &$id_segment) {
                 if (!$segmentation->AddSegmentInProduct($id, $id_segment)) {
                     $err_mes = '<script>alert("Ошибка при добавлении сегмента!\\nСегмент уже закреплен за данным товаром!");</script>';
                 }
             }
         }
         $tpl->Assign('msg', 'Товар добавлен.');
         echo '<script>setTimeout("document.location=\'' . $GLOBALS['URL_base'] . 'adm/productedit/' . $id . '\'", 2000);</script>';
         unset($_POST);
     } else {
         $tpl->Assign('msg', 'Товар не добавлен.');
         $tpl->Assign('errm', $errm);
     }
 } else {
     // показываем все заново но с сообщениями об ошибках
     $tpl->Assign('msg', 'Товар не добавлен.');
     $tpl->Assign('errm', $errm);