ACC SHELL
<?php
include_once('../config/config.php');
include_once('../libs/funkcephp.php');
define('DEBUG', false);
define('DUPLICATE_VARIATIONS', false);
$Katalog = new Katalog();
$idProduktu = intval($_GET['id']);
if (!isset($idProduktu) || !isset($_GET['id'])) {
throw new ErrorException('Can not duplicate empty product');
exit;
}
//$idProduktu = 54;
//Master produkt
$katalogPopis = dibi::query('SELECT * FROM katalog_popis WHERE id=%i', $idProduktu)->fetch();
$katalog = dibi::query('SELECT * FROM katalog WHERE id=%i', $katalogPopis->main_id)->fetch();
//Varianty
$katalogVarianty = dibi::query('SELECT * FROM katalog_popis WHERE varianta =1 AND id_produktu=%i', $katalogPopis->id)->fetchAll();
$katalogParametry = dibi::query('SELECT * FROM katalog_parametry WHERE id_produktu=%i', $idProduktu)->fetchAll();
//NDebugger::dump($katalogParametry);exit;
/*
* Zalozeni master produktu
*/
// tabulka: Katalog
$arr['main_id'] = Query::zalozitHlavniVetev('katalog');
if (DEBUG) {
echo 'zalozil jsem hlavni vetev -> ' . $arr['main_id'] . '<br />';
}
foreach (array($katalogPopis) as $popis) {
unset($popis['id']);
unset($popis['main_id']);
unset($popis['id_produktu']);
unset($popis['obrazek']);
unset($popis['obrazek2']);
unset($popis['obrazek3']);
unset($popis['obrazek4']);
unset($popis['obrazek5']);
unset($popis['prodej']);
unset($popis['sklad']);
$popis['nazev'] = $popis['nazev'] . '-clone';
$popis['url'] = $popis['url'] . '-clone';
$popis['main_id'] = $arr['main_id'];
$popis['id_produktu'] = isset($idNovehoProduktu) ? $popis['id_produktu'] : 0;
$idNovehoProduktu = dibi::insert('katalog_popis', $popis)->execute();
$idNovehoProduktu = dibi::insertId();
if (DEBUG) {
echo 'zalozil jsem master produkt -> ' . $idNovehoProduktu . '<br />';
}
//NDebugger::dump($idNovehoProduktu);
//U prvniho produktu jeste neznam id, takze to musim zpetne updatovat
if ($popis['id_produktu'] == 0) {
$popis['id_produktu'] = $idNovehoProduktu;
dibi::query('UPDATE katalog_popis SET id_produktu=%i', $idNovehoProduktu, 'WHERE id=%i', $idNovehoProduktu);
}
/*
* Napredu duplikuju pouze parametry pro master produkt
* id_katalog, id_produktu je potreba upravit
*/
foreach ($katalogParametry as $key => $val) {
if ($val->id_katalog == $idProduktu) {
$newParams['id_katalog'] = $idNovehoProduktu;
$newParams['id_produktu'] = $idNovehoProduktu;
$newParams['id_parametru'] = $val->id_parametru;
$newParams['id_hodnoty_parametru'] = $val->id_hodnoty_parametru;
dibi::insert('katalog_parametry', $newParams)->execute();
if (DEBUG) {
echo 'zalozil jsem parametry -> ' . $idNovehoProduktu . '<br />';
echo '<pre>';
print_r($newParams);
echo '</pre>';
}
}
}
}
if (DUPLICATE_VARIATIONS) {
foreach ($katalogVarianty as $popis) {
$idStareVarianty = $popis['id'];
unset($popis['id']);
unset($popis['main_id']);
unset($popis['id_produktu']);
unset($popis['obrazek']);
unset($popis['obrazek2']);
unset($popis['obrazek3']);
unset($popis['obrazek4']);
unset($popis['obrazek5']);
unset($popis['prodej']);
unset($popis['sklad']);
$popis['main_id'] = $arr['main_id'];
$popis['id_produktu'] = $idNovehoProduktu;
$idNoveVarianty = dibi::insert('katalog_popis', $popis)->execute();
$idNoveVarianty = dibi::insertId();
if (DEBUG) {
echo 'zalozil jsem variantu -> ' . $idNoveVarianty . '<br />';
}
//NDebugger::dump($idNovehoProduktu);
foreach ($katalogParametry as $key => $val) {
if ($val->id_katalog == $idStareVarianty) {
$newParams['id_katalog'] = $idNoveVarianty;
$newParams['id_produktu'] = $idNovehoProduktu;
$newParams['id_parametru'] = $val->id_parametru;
$newParams['id_hodnoty_parametru'] = $val->id_hodnoty_parametru;
dibi::insert('katalog_parametry', $newParams)->execute();
if (DEBUG) {
echo 'zalozil jsem parametry -> ' . $idNoveVarianty . '<br />';
NDebugger::dump($newParams);
}
}
}
}
}
Tools::redirect('/administrace/katalog_edit.php?id=' . $idNovehoProduktu);
if (DEBUG) {
NDebugger::dump($katalogPopis);
NDebugger::dump($katalog);
NDebugger::dump($katalogVarianty);
NDebugger::dump($katalogParametry);
}
ACC SHELL 2018