/** * [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; }
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);