function ajouter($lang, $ref, $prix, $ecotaxe, $promo, $prix2, $rubrique, $nouveaute, $perso, $poids, $stock, $tva, $ligne, $titre, $chapo, $description, $postscriptum) { $ref = str_replace(" ", "", $ref); $ref = str_replace("/", "", $ref); $ref = str_replace("+", "", $ref); $ref = str_replace(".", "-", $ref); $ref = str_replace(",", "-", $ref); $ref = str_replace(";", "-", $ref); $ref = str_replace("'", "", $ref); $ref = str_replace("\n", "", $ref); $ref = str_replace("\"", "", $ref); $produit = new Produit(); $produit->charger($ref); if ($produit->id) { redirige("produit_modifier.php?rubrique={$rubrique}&existe=1"); } $produit = new Produit(); $prix = str_replace(",", ".", $prix); $produit->ref = $ref; $produit->datemodif = date("Y-m-d H:i:s"); $produit->prix = $prix; $produit->prix2 = $prix2; if ($produit->prix2 == "") { $produit->prix2 = $prix; } $produit->ecotaxe = $ecotaxe; $produit->rubrique = $rubrique; if ($promo == "on") { $produit->promo = 1; } else { $produit->promo = 0; } if ($nouveaute == "on") { $produit->nouveaute = 1; } else { $produit->nouveaute = 0; } if ($ligne == "on") { $produit->ligne = 1; } else { $produit->ligne = 0; } $produit->perso = $perso; $produit->poids = $poids; $produit->stock = $stock; $produit->tva = str_replace(",", ".", $tva); $lastid = $produit->add(); $produit->id = $lastid; $produitdesc = new Produitdesc(); $produitdesc->chapo = $chapo; $produitdesc->description = $description; $produitdesc->postscriptum = $postscriptum; $produitdesc->produit = $lastid; $produitdesc->lang = $lang; $produitdesc->titre = $titre; $produitdesc->chapo = str_replace("\n", "<br />", $produitdesc->chapo); $produitdesc->add(); $rubcaracteristique = new Rubcaracteristique(); $caracteristiquedesc = new Caracteristiquedesc(); $caracval = new Caracval(); $query = "select * from {$rubcaracteristique->table} where rubrique='" . $produit->rubrique . "'"; $resul = mysql_query($query); while ($row = mysql_fetch_object($resul)) { $caracval = new Caracval(); $deb = "caract"; $deb2 = "typecaract"; $val = $row->caracteristique; $var = $deb . $val; $var2 = $deb2 . $val; global ${$var}; global ${$var2}; $query2 = "delete from {$caracval->table} where produit='" . $produit->id . "' and caracteristique='" . $row->caracteristique . "'"; $resul2 = mysql_query($query2); if (${$var} != "") { if (${$var2} == "c") { foreach (${$var} as $selectval) { $caracval->produit = $lastid; $caracval->caracteristique = $row->caracteristique; $caracval->caracdisp = $selectval; $caracval->add(); } } else { $caracval->produit = $lastid; $caracval->caracteristique = $row->caracteristique; $caracval->valeur = ${$var}; $caracval->add(); } } } $rubdeclinaison = new Rubdeclinaison(); $declinaisondesc = new Declinaisondesc(); $declidisp = new Declidisp(); $declidispdesc = new Declidispdesc(); $query = "select * from {$rubdeclinaison->table} where rubrique='" . $rubrique . "'"; $resul = mysql_query($query); while ($row = mysql_fetch_object($resul)) { $declinaisondesc->charger($row->declinaison); $query2 = "select * from {$declidisp->table} where declinaison='{$row->declinaison}'"; $resul2 = mysql_query($query2); $nbres = mysql_num_rows($resul2); while ($row2 = mysql_fetch_object($resul2)) { $stock = new Stock(); $stock->declidisp = $row2->id; $stock->produit = $lastid; $stock->valeur = 0; $stock->surplus = 0; $stock->add(); } } $produitdesc->reecrire(); ActionsModules::instance()->appel_module("ajoutprod", $produit); redirige($_SERVER['PHP_SELF'] . "?ref=" . $produit->ref . "&rubrique=" . $produit->rubrique . "&lang=" . $lang); }
public function duplicate($duplicateRef, $duplicateDescription, $duplicateInfos, $duplicateFeatures, $duplicateVariants, $duplicateAccessories, $autoAccessories, $duplicateAssociatedContents, $duplicatePictures, $duplicateDocuments) { $ref = self::cleanRef($duplicateRef); if ($ref == '' || self::exist_ref($ref)) { throw new TheliaAdminException("Ref already exists", TheliaAdminException::REF_ALREADY_EXISTS); } $duplicatedProduct = new Produit($this->ref); $duplicatedProduct->id = ''; $duplicatedProduct->ref = $ref; $duplicatedProduct->datemodif = '0000-00-00 00:00:00'; $duplicatedProduct->ligne = 0; $duplicatedProduct->stock = 0; $duplicatedProduct->classement = $this->getMaxRanking($duplicatedProduct->rubrique) + 1; if (!$duplicateInfos) { $duplicatedProduct->prix = 0; $duplicatedProduct->ecotaxe = 0; $duplicatedProduct->promo = 0; $duplicatedProduct->prix2 = 0; $duplicatedProduct->nouveaute = 0; $duplicatedProduct->perso = 0; $duplicatedProduct->garantie = 0; $duplicatedProduct->poids = 0; $duplicatedProduct->tva = 0; } $duplicatedProduct->id = $duplicatedProduct->add(); if ($duplicateDescription) { foreach ($this->query_liste("SELECT * FROM " . Produitdesc::TABLE . " WHERE produit='{$this->id}'", 'Produitdesc') as $produitdesc) { $produitdesc->id = ''; $produitdesc->produit = $duplicatedProduct->id; $produitdesc->add(); } } else { $produitdesc = new Produitdesc(); $produitdesc->produit = $duplicatedProduct->id; $produitdesc->add(); } if ($duplicateFeatures) { foreach ($this->query_liste("SELECT * FROM " . Caracval::TABLE . " WHERE produit='{$this->id}'", 'Caracval') as $caracval) { $caracval->id = ''; $caracval->produit = $duplicatedProduct->id; $caracval->add(); } } if ($duplicateVariants) { foreach ($this->query_liste("SELECT * FROM " . Stock::TABLE . " WHERE produit='{$this->id}'", 'Stock') as $stock) { $stock->id = ''; $stock->produit = $duplicatedProduct->id; $stock->valeur = 0; $stock->add(); } foreach ($this->query_liste("SELECT * FROM " . Exdecprod::TABLE . " WHERE produit='{$this->id}'", 'Exdecprod') as $exdecprod) { $exdecprod->id = ''; $exdecprod->produit = $duplicatedProduct->id; $exdecprod->add(); } } if ($duplicateAccessories) { foreach ($this->query_liste("SELECT * FROM " . Accessoire::TABLE . " WHERE produit='{$this->id}'", 'Accessoire') as $accessoire) { $accessoire->id = ''; $accessoire->produit = $duplicatedProduct->id; $accessoire->add(); } } if ($autoAccessories) { $accessoire = new AccessoireAdmin(); $accessoire->produit = $duplicatedProduct->id; $accessoire->accessoire = $this->id; $accessoire->classement = $accessoire->getMaxRanking($duplicatedProduct->id); $accessoire->add(); $accessoire = new AccessoireAdmin(); $accessoire->produit = $this->id; $accessoire->accessoire = $duplicatedProduct->id; $accessoire->classement = $accessoire->getMaxRanking($this->id); $accessoire->add(); } if ($duplicateAssociatedContents) { foreach ($this->query_liste("SELECT * FROM " . Contenuassoc::TABLE . " WHERE type=1 AND objet='{$this->id}'", 'Contenuassoc') as $contenuassoc) { $contenuassoc->id = ''; $contenuassoc->objet = $duplicatedProduct->id; $contenuassoc->add(); } } if ($duplicatePictures) { foreach ($this->query_liste("SELECT * FROM " . Image::TABLE . " WHERE produit='{$this->id}'", 'ImageAdmin') as $image) { $imagePath = sprintf(__DIR__ . "/../../client/gfx/photos/produit/%s", $image->fichier); if (file_exists($imagePath)) { $increment = 0; do { $increment++; $duplicatedName = 'D' . $increment . '_' . $image->fichier; $exists = file_exists($duplicatedName); } while ($exists); $duplicatedImagePath = sprintf(__DIR__ . "/../../client/gfx/photos/produit/%s", $duplicatedName); copy($imagePath, $duplicatedImagePath); $image->fichier = $duplicatedName; $originalId = $image->id; $image->id = ''; $image->produit = $duplicatedProduct->id; $image->classement = $image->getMaxRanking('produit', $duplicatedProduct->id); $image->id = $image->add(); foreach ($this->query_liste("SELECT * FROM " . Imagedesc::TABLE . " WHERE image='{$originalId}'", 'Imagedesc') as $imagedesc) { $imagedesc->id = ''; $imagedesc->image = $image->id; $imagedesc->add(); } } } } if ($duplicateDocuments) { foreach ($this->query_liste("SELECT * FROM " . Document::TABLE . " WHERE produit='{$this->id}'", 'DocumentAdmin') as $document) { $documentPath = sprintf(__DIR__ . "/../../client/document/%s", $document->fichier); if (file_exists($documentPath)) { $increment = 0; do { $increment++; $duplicatedName = 'D' . $increment . '_' . $document->fichier; $exists = file_exists($duplicatedName); } while ($exists); $duplicatedDocumentPath = sprintf(__DIR__ . "/../../client/gfx/photos/produit/%s", $duplicatedName); copy($documentPath, $duplicatedDocumentPath); $document->fichier = $duplicatedName; $originalId = $document->id; $document->id = ''; $document->produit = $duplicatedProduct->id; $document->classement = $document->getMaxRanking('produit', $duplicatedProduct->id); $document->id = $document->add(); foreach ($this->query_liste("SELECT * FROM " . Documentdesc::TABLE . " WHERE document='{$originalId}'", 'Documentdesc') as $documentdesc) { $documentdesc->id = ''; $documentdesc->document = $document->id; $documentdesc->add(); } } } } redirige('produit_modifier.php?ref=' . $duplicatedProduct->ref . '&rubrique=' . $duplicatedProduct->rubrique); }