function add($values) { //ak produkt nie je, pridaj if ($values['Name_sk'] == '') { return false; } //ak je pridany aby ho system nemusel prepisovat $is_added = false; if (!isset($this->all_product_param_db[$values['Code']]) and $values['Name_sk'] != '') { /* [Code] => 21420011 [Name_sk] => Ladies polo shirt, S, white/ blue (01) [Name_cz] => Dámska poloko?e?a, S, white/ blue (01) [Name_en] => Ladies polo shirt, S, white/ blue (01) [Name_de] => [Name_hu] => [Package] => 1 [Price_CZK] => 124.000000 [Price_EUR] => 4.770000 [Price_SK] => 143.700000 [Image] => p990.02.jpg [Mark] => Best in Town [Stock] => 2 [Category1_sk] => Textil [Category1_cz] => Textil [Category1_en] => Textile [Category1_de] => [Category1_hu] => [Category2_sk] => Výpredaj [Category2_cz] => Výprodej [Category2_en] => Discount [Category2_de] => [Category2_hu] => [Category3_sk] => [Category3_cz] => [Category3_en] => [Category3_de] => [Category3_hu] => */ //zisti ci je v product_temp_parse aby sme zistili group $product_temp_parse = dibi::fetch("SELECT * FROM product_temp_parse WHERE code = %s", $values['Code']); if (!$product_temp_parse) { throw new Exception('Polozka nie je v product_temp_parse. Nemame ako zistit skupinu resp. group_code'); } //zisti ci group_code je v nasej db ak nie je pridaj if (!isset($this->all_product_db[$product_temp_parse['group_code']])) { $arr = array('mark' => $values['Mark'], 'group_code' => $product_temp_parse['group_code']); $id_product = ProductModel::add($arr); if (!$id_product) { throw new Exception('Nastala chyba. Nexistuje id_product'); } $arr_lang = array('id_product' => $id_product, 'id_lang' => 1, 'name' => $product_temp_parse['groupnameSK'], 'link_rewrite' => NStrings::webalize($product_temp_parse['groupnameSK'])); ProductModel::addProductLang($arr_lang); $this->all_product_db[$product_temp_parse['group_code']] = $id_product; $this->all_product_param_db[$values['Code']] = $id_product; } else { $id_product = $this->all_product_db[$product_temp_parse['group_code']]; $this->all_product_param_db[$values['Code']] = $id_product; } //pridanie parametru produktu $arr = array('id_product' => $id_product, 'code' => trim($values['Code']), 'capacity' => $values['Package'], 'color' => trim($product_temp_parse['color']), 'size' => trim($product_temp_parse['dimension'] != '' ? $product_temp_parse['dimension'] : $product_temp_parse['size']), 'material' => trim($product_temp_parse['material']), 'price' => $values['Price_EUR'], 'stock' => $values['Stock'], 'image' => $values['Image']); ProductModel::addProductParamValue($arr); $is_added = true; } $id_product = $this->all_product_param_db[$values['Code']]; /* * Uprava produktu */ if (!$is_added and $values['Name_sk'] != '') { //upravi len co je v xml - nie co je parsovane z CSV $arr = array('price' => $values['Price_EUR'], 'stock' => $values['Stock']); $id_product_param = $this->all_product_param_db[$values['Code']]; ProductModel::setProductParamValue($arr, $id_product_param, 1); } $id_categories = array(); //echo $values['Category1_sk']; if ($id_category = array_search($values['Category1_sk'], $this->category_1)) { $id_categories[] = $id_category; } if ($id_category = array_search($values['Category2_sk'], $this->category_2)) { $id_categories[] = $id_category; } if ($id_category = array_search($values['Category3_sk'], $this->category_3)) { $id_categories[] = $id_category; } ProductModel::removeAllCategory($id_product); // print_r($id_categories); ProductModel::addProductToCategory($id_categories, $id_product); $pom = 0; //ak nie je kategoria pridaj if (!in_array($values['Category1_sk'], $this->category_1) and $values['Category1_sk'] != '') { $id_category = CategoryModel::add(array('id_parent' => NULL, 'active' => 1)); $arr = array('id_category' => $id_category, 'id_lang' => 1, 'name' => $values['Category1_sk']); CategoryModel::addCategoryLang($arr); $this->category_1[] = $values['Category1_sk']; ++$pom; } if (!in_array($values['Category2_sk'], $this->category_2) and $values['Category2_sk'] != '') { $cat1 = dibi::fetchSingle("SELECT category.id_category FROM [category] JOIN [category_lang] USING(id_category) WHERE name = %s", $values['Category1_sk'], " AND id_lang = 1 AND id_parent IS NULL"); if (!$cat1) { throw new Exception('Rodic pre kategoriu neexistuje : ' . $values['Category1_sk']); } $id_category = CategoryModel::add(array('id_parent' => $cat1, 'active' => 1)); $arr = array('id_category' => $id_category, 'id_lang' => 1, 'name' => $values['Category2_sk']); // print_r(array('id_parent'=>$cat1,'active'=>1,'name'=>$values['Category2_sk'] )); CategoryModel::addCategoryLang($arr); $this->category_2[] = $values['Category2_sk']; ++$pom; } // if (!in_array($values['Category3_sk'], $this->category_3) and $values['Category3_sk'] != '') { $cat2 = dibi::fetchSingle("SELECT category.id_category FROM [category] JOIN [category_lang] USING(id_category) WHERE name = %s", $values['Category2_sk'], " AND id_lang = 1 AND id_parent IS NOT NULL"); if (!$cat2) { throw new Exception('Rodic pre kategoriu neexistuje : ' . $values['Category2_sk']); } if ($values['Category3_sk'] == 'Pullovers') { var_dump($cat2); } $id_category = CategoryModel::add(array('id_parent' => $cat2, 'active' => 1)); if ($values['Category3_sk'] == 'Pullovers') { var_dump($id_category); } $arr = array('id_category' => $id_category, 'id_lang' => 1, 'name' => $values['Category3_sk']); if ($values['Category3_sk'] == 'Pullovers') { var_dump($arr); } CategoryModel::addCategoryLang($arr); $this->category_3[] = $values['Category3_sk']; ++$pom; } if ($pom > 0) { // echo "cat1: ". $values['Category1_sk']." - cat2: ". $values['Category2_sk']." - cat3:". $values['Category3_sk']." // "; } }
function handleAddEmptyParam($id_product) { $values['id_product'] = $id_product; ProductModel::addProductParamValue($values); $this['productParams']->invalidateControl(); // $this->redirect('this'); }