app = $app; } function CopyArticle(int $id, bool $purchasePrices, bool $sellingPrices, bool $files, bool $properties, bool $instructions, bool $partLists, bool $customFields, string $newArticleNumber = '') { $this->app->DB->MysqlCopyRow('artikel','id',$id); $idnew = $this->app->DB->GetInsertID(); $steuersatz = $this->app->DB->Select("SELECT steuersatz FROM artikel WHERE id = '$id' LIMIT 1"); if($steuersatz == ''){ $steuersatz = -1.00; $this->app->DB->Update("UPDATE artikel SET steuersatz = '$steuersatz' WHERE id = '$idnew' LIMIT 1"); } $this->app->DB->Update("UPDATE artikel SET nummer='$newArticleNumber' WHERE id='$idnew' LIMIT 1"); if($this->app->DB->Select("SELECT variante_kopie FROM artikel WHERE id = '$id' LIMIT 1")) $this->app->DB->Update("UPDATE artikel SET variante = 1, variante_von = '$id' WHERE id = '$idnew' LIMIT 1"); if($partLists){ // wenn stueckliste $stueckliste = $this->app->DB->Select("SELECT stueckliste FROM artikel WHERE id='$id' LIMIT 1"); if($stueckliste==1) { $artikelarr = $this->app->DB->SelectArr("SELECT * FROM stueckliste WHERE stuecklistevonartikel='$id'"); $cartikelarr = $artikelarr?count($artikelarr):0; for($i=0;$i<$cartikelarr;$i++) { $sort = $artikelarr[$i]['sort']; $artikel = $artikelarr[$i]['artikel']; $referenz = $artikelarr[$i]['referenz']; $place = $artikelarr[$i]['place']; $layer = $artikelarr[$i]['layer']; $stuecklistevonartikel = $idnew; $menge = $artikelarr[$i]['menge']; $firma = $artikelarr[$i]['firma']; $this->app->DB->Insert("INSERT INTO stueckliste (id,sort,artikel,referenz,place,layer,stuecklistevonartikel,menge,firma) VALUES ('','$sort','$artikel','$referenz','$place','$layer','$stuecklistevonartikel','$menge','$firma')"); } } } if($purchasePrices){ $einkaufspreise = $this->app->DB->SelectArr("SELECT id FROM einkaufspreise WHERE artikel = '$id'"); if($einkaufspreise){ foreach($einkaufspreise as $preis){ $neuereinkaufspreis = $this->app->DB->MysqlCopyRow("einkaufspreise", "id", $preis['id']); $this->app->DB->Update("UPDATE einkaufspreise SET artikel = '$idnew' WHERE id = '$neuereinkaufspreis' LIMIT 1"); } } } if($sellingPrices){ $verkaufspreise = $this->app->DB->SelectArr("SELECT id FROM verkaufspreise WHERE artikel = '$id'"); if($verkaufspreise){ foreach($verkaufspreise as $preis){ $neuerverkaufspreis = $this->app->DB->MysqlCopyRow("verkaufspreise", "id", $preis['id']); $this->app->DB->Update("UPDATE verkaufspreise SET artikel = '$idnew' WHERE id = '$neuerverkaufspreis' LIMIT 1"); } } } if($files){ $dateien = $this->app->DB->SelectArr("SELECT DISTINCT datei FROM datei_stichwoerter WHERE parameter = '$id' AND objekt = 'Artikel'"); $datei_stichwoerter = $this->app->DB->SelectArr("SELECT id,datei FROM datei_stichwoerter WHERE parameter = '$id' AND objekt = 'Artikel'"); if($dateien){ foreach($dateien as $datei){ $titel = $this->app->DB->Select("SELECT titel FROM datei WHERE id='".$datei['datei']."' LIMIT 1"); $beschreibung = $this->app->DB->Select("SELECT beschreibung FROM datei WHERE id='".$datei['datei']."' LIMIT 1"); $nummer = $this->app->DB->Select("SELECT nummer FROM datei WHERE id='".$datei['datei']."' LIMIT 1"); $name = $this->app->DB->Select("SELECT dateiname FROM datei_version WHERE datei='".$this->app->DB->real_escape_string($datei['datei'])."' ORDER by version DESC LIMIT 1"); $ersteller = $this->app->User->GetName(); $tmpnewdateiid = $this->app->erp->CreateDatei($name,$titel,$beschreibung,$nummer,$this->app->erp->GetDateiPfad($datei['datei']),$ersteller); $datei_mapping[$datei['datei']] = $tmpnewdateiid; } } if($datei_stichwoerter){ foreach($datei_stichwoerter as $datei){ $neuesstichwort = $this->app->DB->MysqlCopyRow("datei_stichwoerter", "id", $datei['id']); $newdatei = $datei_mapping[$datei['datei']]; $this->app->DB->Update("UPDATE datei_stichwoerter SET datei='$newdatei', parameter = '$idnew', objekt = 'Artikel' WHERE id = '$neuesstichwort' LIMIT 1"); } } } if($properties){ $aeigenschaften = $this->app->DB->SelectArr("SELECT id FROM artikeleigenschaftenwerte WHERE artikel = '$id'"); if($aeigenschaften){ foreach($aeigenschaften as $eigenschaft){ $neue_eigenschaft = $this->app->DB->MysqlCopyRow("artikeleigenschaftenwerte", "id", $eigenschaft['id']); $this->app->DB->Update("UPDATE artikeleigenschaftenwerte SET artikel = '$idnew' WHERE id = '$neue_eigenschaft' LIMIT 1"); } } } if($instructions){ $arbeitsanweisungen = $this->app->DB->SelectArr("SELECT id FROM artikel_arbeitsanweisung WHERE artikel = '$id'"); if($arbeitsanweisungen){ foreach($arbeitsanweisungen as $anweisung){ $neue_anweisung = $this->app->DB->MysqlCopyRow("artikel_arbeitsanweisung", "id", $anweisung['id']); $this->app->DB->Update("UPDATE artikel_arbeitsanweisung SET artikel = '$idnew' WHERE id = '$neue_anweisung' LIMIT 1"); } } } if($customFields){ $freifelderuebersetzungen = $this->app->DB->SelectArr("SELECT id FROM artikel_freifelder WHERE artikel = '$id'"); if($freifelderuebersetzungen){ $this->app->DB->Insert("INSERT INTO artikel_freifelder (artikel, sprache, nummer, wert) SELECT '$idnew', sprache, nummer, wert FROM artikel_freifelder WHERE artikel = '$id'"); } } return $idnew; } }