app=$app; if($intern) { return; } $this->app->ActionHandlerInit($this); $this->app->ActionHandler("login","ShopexportLogin"); $this->app->ActionHandler("main","ShopexportMain"); $this->app->ActionHandler("list","ShopexportList"); $this->app->ActionHandler("export","ShopexportExport"); $this->app->ActionHandler("artikeluebertragung","ShopexportArtikeluebertragung"); $this->app->ActionHandler("adressuebertragung","ShopexportAdressuebertragung"); $this->app->ActionHandler("artikeluebertragungdel","ShopexportArtikeluebertragungdel"); $this->app->ActionHandler("adressuebertragungdel","ShopexportAdressuebertragungdel"); $this->app->ActionHandler("besuchen","ShopexportBesuchen"); $this->app->ActionHandler("navigation","ShopexportNavigation"); $this->app->ActionHandler("logout","ShopexportLogout"); $this->app->ActionHandler("navigationtab","ShopexportNavigationUebersicht"); $this->app->ActionHandler("artikelgruppen","ShopexportArtikelgruppen"); $this->app->ActionHandler("dateien","ShopexportDateien"); $this->app->ActionHandler("live","ShopexportLive"); $this->app->DefaultActionHandler("list"); $this->app->ActionHandlerListen($app); } public function ShopexportList() { $this->app->Location->execute('index.php?module=importvorlage&action=uebersicht'); } public function ShopexportLive() { $id = $this->app->Secure->GetGET('id'); $this->app->erp->Headlines('Navigation'); $this->ShopexportMenu(); $url = $this->app->DB->Select("SELECT url FROM shopexport WHERE id='$id' LIMIT 1"); $this->app->Tpl->Set('ID',$id); $this->app->Tpl->Set('URL',$url); $this->app->Tpl->Parse('PAGE','shopexport_live.tpl'); } public function Install() { $this->app->erp->CheckColumn('namenuebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('beschreibunguebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('verkaufspreis','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('staffelpreiseuebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('fremdsprachenuebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('kategorienanlegen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('kategorienbaumuebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('eanuebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('zolltarifnummeruebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('gewichtuebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('herstelleruebertragen','tinyint(1)','shopexport','DEFAULT -1'); $this->app->erp->CheckColumn('matrixeigenschaftenuebertragen','tinyint(1)','shopexport','DEFAULT -1'); } protected function CheckEdit($id = null, $create = false) { if($id === null) { $id = $this->app->Secure->GetGET('id'); } if(!is_numeric($id) || $id <= 0) { return; } $shopexportarr = $this->app->DB->SelectRow('SELECT * FROM shopexport WHERE id = '.$id.' LIMIT 1'); if(empty($shopexportarr)) { return; } if($shopexportarr['shoptyp'] === '' || $shopexportarr['shoptyp'] === 'extern') { $obj = new ShopimporterBase(); } elseif($shopexportarr['shoptyp'] === 'intern' && !empty($shopexportarr['modulename'])) { $obj = $this->app->erp->LoadModul($shopexportarr['modulename']); } if(empty($obj) || !method_exists($obj,'getArticleExportCapability')) { return; } $export = $obj->getArticleExportCapability(); foreach($export as $k => $v) { if(isset($v['field']) && $shopexportarr[$v['field']] == -1) { if($create && isset($v['defaultoncreate'])) { $this->app->DB->Update("UPDATE shopexport SET '".$v['field']."' = ".(int)$v['defaultoncreate']." WHERE id = '$id' LIMIT 1"); } elseif(isset($v['default'])) { if(is_numeric($v['default'])) { $this->app->DB->Update("UPDATE shopexport SET '".$v['field']."' = ".(int)$v['default']." WHERE id = '$id' LIMIT 1"); } elseif(isset($shopexportarr[$v['default']])) { $this->app->DB->Update("UPDATE shopexport SET '".$v['field']."' = ".(int)$shopexportarr[$v['default']]." WHERE id = '$id' LIMIT 1"); } } else{ $this->app->DB->Update("UPDATE shopexport SET '".$v['field']."' = 0 WHERE id = '$id' LIMIT 1"); } } } } protected function CheckCreate($id = null) { $this->CheckEdit($id, true); } public function ShopexportNavigationUebersicht() { $id = $this->app->Secure->GetGET('id'); $this->app->erp->Headlines('Navigation'); $this->ShopexportMenu(); $navexport = $this->app->Secure->GetPOST('navexport'); $this->app->Tpl->Set('ID',$id); $this->app->Tpl->Set('NAVEXPORT','
Navigation vom Shop ändern (interne Shop! kein XT & Co.).
'); if(!empty($navexport)) { $this->app->remote->RemoteSendArtikelgruppen($id); $anzahl = $this->app->remote->RemoteSendNavigation($id); $this->app->erp->NewEvent('Navigations-Export Online-Shop Nr. '.$id,'onlineshop'); $this->app->Tpl->Set('NAVEXPORT','
Es wurden '.$anzahl.' Navigationen heraufgeladen.
'); } $this->app->Tpl->Parse('PAGE','shopexport_navigation.tpl'); } public function ShopexportArtikelgruppen() { $this->app->erp->Headlines('Artikelgruppen'); $this->ShopexportMenu(); $shop = $this->app->Secure->GetGET('id'); $edit = $this->app->Secure->GetGET('edit'); $delete = $this->app->Secure->GetGET('delete'); $bezeichnung = $this->app->Secure->GetPOST('bezeichnung'); $bezeichnung_en = $this->app->Secure->GetPOST('bezeichnung_en'); $beschreibung_de = $this->app->Secure->GetPOST('beschreibung_de'); $beschreibung_en = $this->app->Secure->GetPOST('beschreibung_en'); $aktiv = $this->app->Secure->GetPOST('aktiv'); $submit = $this->app->Secure->GetPOST('anlegen'); // Edit if(is_numeric($edit)) { if(!empty($submit) && is_numeric($shop)) { $this->app->DB->Update("UPDATE artikelgruppen SET bezeichnung='$bezeichnung', bezeichnung_en='$bezeichnung_en', beschreibung_de='$beschreibung_de', beschreibung_en='$beschreibung_en', shop='$shop', aktiv='$aktiv' WHERE id='$edit' LIMIT 1"); $this->app->Location->execute('index.php?module=shopexport&action=artikelgruppen&id='.$shop.'#tabs-1'); } $data = $this->app->DB->SelectArr("SELECT bezeichnung, bezeichnung_en, beschreibung_de, beschreibung_en, aktiv FROM artikelgruppen WHERE id='$edit' LIMIT 1"); if(is_array($data)) { $this->app->Tpl->Set('BEZEICHNUNG', $data[0]['bezeichnung']); $this->app->Tpl->Set('BESCHREIBUNG_DE', $data[0]['beschreibung_de']); $this->app->Tpl->Set('BESCHREIBUNG_EN', $data[0]['beschreibung_en']); $this->app->Tpl->Set('BEZEICHNUNGEN', $data[0]['bezeichnung_en']); $this->app->Tpl->Set('AKTIVCHECKED', (($data[0]['aktiv']=='1') ? 'checked' : '')); } }else{ if(!empty($submit) && is_numeric($shop)) { $this->app->DB->Insert("INSERT INTO artikelgruppen (bezeichnung, bezeichnung_en, beschreibung_de,beschreibung_en, shop, aktiv) VALUES ('$bezeichnung', '$bezeichnung_en','$beschreibung_de','$beschreibung_en','$shop', '$aktiv')"); $this->app->Location->execute('index.php?module=shopexport&action=artikelgruppen&id='.$shop.'#tabs-1'); } } // Delete if(is_numeric($delete)) { $this->app->DB->Delete("DELETE FROM artikelgruppen WHERE id='$delete' LIMIT 1"); $this->app->Location->execute('index.php?module=shopexport&action=artikelgruppen&id='.$shop); } // Table $table = new EasyTable($this->app); $this->app->Tpl->Set('INHALT',''); $this->app->Tpl->Set('SUBSUBHEADING','Artikelgruppen'); $table->Query("SELECT g.bezeichnung as artikelgruppe, g.id as gruppe, s.bezeichnung, if(g.aktiv,'online','') as aktiv, g.id FROM artikelgruppen g, shopexport s WHERE s.firma='".$this->app->User->GetFirma()."' AND s.id=g.shop AND s.id=$shop"); $table->DisplayNew('INHALT', " "); $this->app->Tpl->Set('EXTEND',''); $this->app->Tpl->Parse('TABLE', 'rahmen70.tpl'); $this->app->Tpl->Parse('PAGE','shopexport_artikelgruppen.tpl'); } public function ShopexportDateien() { $this->app->erp->Headlines('Shopexport','Dateien'); $this->ShopexportMenu(); $id = $this->app->Secure->GetGET('id'); $this->app->YUI->DateiUpload('PAGE','Banner',$id); } public function ShopexportMenu() { $id = $this->app->Secure->GetGET('id'); $shopexportRow = $id <= 0?null: $this->app->DB->SelectRow( sprintf( 'SELECT `bezeichnung`, `typ`, `shoptyp`, `modulename` FROM `shopexport` WHERE `id` = %d LIMIT 1', $id ) ); $name = empty($shopexportRow['bezeichnung'])?'': $shopexportRow['bezeichnung']; $this->app->erp->Headlines('',$name); /** @var Appstore $appstore */ if( !empty($shopexportRow['shoptyp']) && $shopexportRow['shoptyp'] === 'intern' && ($appstore = $this->app->erp->LoadModul('appstore')) && !empty($shopexportRow['modulename']) && $appstore->isBeta($shopexportRow['modulename'])) { $appstore->addBetaToHeadline(); } //$this->app->Tpl->Add('KURZUEBERSCHRIFT2',$name); $typ = empty($shopexportRow['typ'])?'':$shopexportRow['typ']; $this->app->erp->MenuEintrag('index.php?module=onlineshops&action=create','Neu'); $this->app->erp->MenuEintrag("index.php?module=onlineshops&action=edit&id=$id",'Details'); //$this->app->erp->MenuEintrag("index.php?module=shopexport&action=export&id=$id","Export"); $this->app->erp->MenuEintrag("index.php?module=shopexport&action=artikeluebertragung&id=$id","Artikel Übertragung"); if($this->app->DB->Select("SELECT modulename FROM shopexport WHERE id = '$id'") === 'shopimporter_shopware'){ //Soll nur in Shopware angezeigt werden, da nur in Shopware unterstüzt $this->app->erp->MenuEintrag("index.php?module=shopexport&action=adressuebertragung&id=$id","Adressen Übertragung"); } if($typ==='wawision') { $this->app->erp->MenuEintrag("index.php?module=shopexport&action=navigationtab&id=$id","Navigation"); $this->app->erp->MenuEintrag("index.php?module=shopexport&action=artikelgruppen&id=$id","Artikelgruppen"); $this->app->erp->MenuEintrag("index.php?module=shopexport&action=dateien&id=$id","Dateien"); $this->app->erp->MenuEintrag("index.php?module=shopexport&action=live&id=$id","Live-Status"); $this->app->erp->MenuEintrag("index.php?module=inhalt&action=listshop&id=$id","Inhalte / E-Mailvorlagen"); } $this->app->erp->MenuEintrag("index.php?module=shopexport&action=list","Zurück zur Übersicht"); $this->app->erp->RunMenuHook('shopexport'); } public function ShopexportBesuchen() { $id = $this->app->Secure->GetGET('id'); $url = $this->app->DB->Select("SELECT url FROM shopexport WHERE id='$id' LIMIT 1"); $typ = $this->app->DB->Select("SELECT typ FROM shopexport WHERE id='$id' LIMIT 1"); if($typ==='wawision') { $this->app->Location->execute($url); } } public function ShopexportExport() { $id = $this->app->Secure->GetGET('id'); $this->ShopexportMenu(); $this->app->erp->MenuEintrag('index.php?module=onlineshops&action=edit&id='.$id, "Zurück zur Übersicht"); $this->app->Tpl->Set('SCHRITT2',"disabled"); $this->app->Tpl->Set('SCHRITT3',"disabled"); $this->app->Tpl->Set('STATUS',"
Artikel Export: Bitte Verbindung prüfen.
"); $this->app->Tpl->Set('ID',$id); $this->app->Tpl->Set('COMMONEXPORT',"
Abgleich zu Kundencenter.
"); if($this->app->Secure->GetPOST("commonexport")!=''){ $anzahl = $this->app->remote->RemoteSendExportlink($id); //$anzahl = $this->app->remote->RemoteSendNavigation($id); //$this->app->erp->NewEvent("Navigations-Export Online-Shop Nr. $id","onlineshop"); $this->app->Tpl->Set('COMMONEXPORT',"
Es wurden ".$anzahl." Datensätze heraufgeladen.
"); } if($this->app->Secure->GetPOST("schritt1")!=''){ $className = 'Remote'; $methodName = 'RemoteConnection'; $r = new ReflectionMethod($className, $methodName); $params = $r->getParameters(); $anzargs = (!empty($params)?count($params):0); if($anzargs > 1) { $pageContents = $this->app->remote->RemoteConnection($id, true); } else{ $pageContents = $this->app->remote->RemoteConnection($id); } if($pageContents==='success') { if($anzargs > 1) { $pageContents2 = $this->app->remote->RemoteConnection($id, 'info'); } $this->app->Tpl->Set('SCHRITT2',''); $this->app->Tpl->Set('HIDDENSCHRITT2',""); if($anzargs > 1 && is_array($pageContents2)) { $json = $this->app->DB->Select("SELECT json FROM shopexport WHERE id = '$id' LIMIT 1"); if($json) { $json = array_merge(json_decode($json, true), $pageContents2); }else{ $json = $pageContents2; } $this->app->DB->Update("UPDATE shopexport set json = '".$this->app->DB->real_escape_string(json_encode($json))."' WHERE id = '$id' LIMIT 1"); unset($json); $this->app->Tpl->Set('STATUS',"
"); if(isset($pageContents2['subshops'])) { $this->app->Tpl->Set('STATUS',"Subshops: "); foreach($pageContents2['subshops'] as $subshop) { $this->app->Tpl->Add('STATUS',""); } $this->app->Tpl->Add('STATUS',"
IdNameAktiv
".$subshop['id']."".$subshop['name']."".($subshop['aktiv']?'ja':'nein')."
"); }else{ $this->app->Tpl->Add('STATUS',"Verbindung: success"); } $this->app->Tpl->Add('STATUS',"
"); }else{ $this->app->Tpl->Set('STATUS',"
Verbindung: $pageContents
"); } } else { $this->app->Tpl->Set('STATUS',"
Verbindungsproblem: Eventuell falsche Schlüssel! ($pageContents)
"); } } if($this->app->Secure->GetPOST('schritt2')!='' && $this->app->Secure->GetPOST('schritt1_check')=='1') { $projekt = $this->app->DB->Select("SELECT projekt FROM shopexport WHERE id='$id' LIMIT 1"); $this->app->erp->UpdateChecksumShopartikel($projekt); $tmp = $this->app->remote->RemoteGetUpdateArticleList($id); $this->app->Tpl->Set('SCHRITT2',''); $this->app->Tpl->Set('SCHRITT3',''); $this->app->Tpl->Set('HIDDENSCHRITT2',""); $this->app->Tpl->Set('HIDDENSCHRITT3',""); $html = ""; $html = $html.""; if(is_array($tmp)) { foreach($tmp as $row) { $checkarray[$row['artikel']] = $row['checksum']; } } /* if($projekt=="1") $checkmasterarray = $this->app->DB->SelectArr("SELECT id,checksum FROM artikel WHERE shop='1' AND projekt='$projekt' AND geloescht='0'"); else if ($projekt=="2") $checkmasterarray = $this->app->DB->SelectArr("SELECT id,checksum FROM artikel WHERE shop='2' AND projekt='$projekt' AND geloescht='0'"); else if ($projekt=="4") $checkmasterarray = $this->app->DB->SelectArr("SELECT id,checksum FROM artikel WHERE shop='3' AND projekt='$projekt' AND geloescht='0'"); */ $checkmasterarray = $this->app->DB->SelectArr("SELECT id,checksum FROM artikel WHERE shop='$id' AND geloescht='0'"); $html = $html.""; $html = $html.""; $html = $html.""; $aenderungen = 0; $ccheckmasterarray = !empty($checkmasterarray)?count($checkmasterarray):0; for($i=0; $i<$ccheckmasterarray;$i++) { $artikel = $checkmasterarray[$i]['id']; $checksum= $checkmasterarray[$i]['checksum']; if(isset($checkarray) && isset($checkarray[$artikel]) && ($checkarray[$artikel]!=$checksum || $checkarray[$artikel]=="")) { $aenderungen++; $tmp = $this->app->DB->SelectArr("SELECT a.name_de, a.nummer FROM artikel a WHERE a. id='$artikel' LIMIT 1"); if($tmp) { $tmp[0]['logdatei'] = $this->app->DB->Select("SELECT logdatei FROM shopexport_artikel WHERE artikel='$artikel' AND shopexport='$id' LIMIT 1"); if($tmp[0]['logdatei']=="") $tmp[0]['logdatei']="noch nicht vorhanden"; $html = $html.""; } } if(isset($checkarray) && isset($checkarray[$artikel])) { unset($checkarray[$artikel]); } } // loesche alle artikel im shop die nicht mehr im ERP als shop artikel vorhanden sind! $ccheckarray = !empty($checkarray)?count($checkarray):0; for($j=0;$j < $ccheckarray; $j++) { if($ccheckarray > 0){ foreach ($checkarray as $key_artikel => $value_checksum) { $pageContents = $this->app->remote->RemoteDeleteArticle($id, $key_artikel); } $this->app->Tpl->Set('STATUS', "
Es wurden " . $ccheckarray . " Artikel im Shop gelöscht (fehlende Attribute).
"); } } $this->app->Tpl->Add('STATUS',"
Änderungen an $aenderungen Artikel gefunden.
"); $html = $html ."
Pos.ArtikelNummerLetzte Änderung
CMSInhaltsseiten (keine Shop-Artikeltexte) (falls vorhanden)
ArtikelgruppenArtikelgruppen (falls vorhanden)
Dateien/BilderShopbilder (dauert bei vielen Bildern) (falls vorhanden)
$aenderungen{$tmp[0]['name_de']} {$tmp[0]['nummer']}{$tmp[0]['logdatei']}
"; $this->app->Tpl->Set('UPDATES',$html); } if($this->app->Secure->GetPOST("schritt3")!="" && $this->app->Secure->GetPOST("schritt1_check")=="1" && $this->app->Secure->GetPOST("schritt2_check")=="1") { $artikel = $this->app->Secure->GetPOST("artikel"); $this->app->erp->NewEvent("Artikel-Export Online-Shop Nr. $id","onlineshop"); // artikelgruppen update if($this->app->Secure->GetPOST("cms")=="1") { $cms = $this->app->DB->Select("SELECT cms FROM shopexport WHERE id='$id' LIMIT 1"); if($cms=='1'){ $this->app->remote->RemoteSendInhalt($id); } } if($this->app->Secure->GetPOST("artikelgruppen")=="1") { $this->app->remote->RemoteSendArtikelgruppen($id); $this->app->remote->RemoteSendArtikelArtikelgruppen($id); } // sende artikel liste $tmp_anzahl = $this->app->remote->RemoteSendArticleList($id,$artikel); // dateien update //$dateien = $this->app->DB->SelectArr("SELECT DISTINCT ds.datei FROM datei_stichwoerter ds, datei d WHERE d.id=ds.datei AND (ds.subjekt!='Druckbild') AND (ds.objekt='Artikel' OR ds.objekt='Kampangen') AND d.geloescht=0 AND d.firma='".$this->app->User->GetFirma()."'"); // das sind zuviele bilder!!!! nur die bilder vom shop! TODO //$dateien = $this->app->DB->SelectArr("SELECT DISTINCT ds.datei FROM datei_stichwoerter ds, datei d WHERE d.id=ds.datei AND (ds.subjekt!='Druckbild') AND (ds.objekt='Artikel' OR ds.objekt='Kampangen') AND d.firma='".$this->app->User->GetFirma()."'"); if($this->app->Secure->GetPOST("dateienupdate")==1) { $dateien = $this->app->DB->SelectArr("SELECT DISTINCT ds.datei FROM datei_stichwoerter ds, datei d, artikel a WHERE d.id=ds.datei AND (ds.subjekt='Shopbild' OR ds.subjekt='Gruppenbild') AND ((ds.objekt='Artikel' AND ds.parameter=a.id) OR (ds.objekt='Kampangen' AND ds.parameter='$id')) AND d.firma='".$this->app->User->GetFirma()."' AND a.shop='$id'"); $tmp = $this->app->remote->RemoteGetFileList($id); if(is_array($tmp)) { foreach($tmp as $row) { $checkarray[$row['datei']] = $row['checksum']; } } $datei_updates = 0; $cdateien = !empty($dateien)?count($dateien):0; for($i=0;$i<$cdateien;$i++) { $fid = $dateien[$i]['datei']; $geloescht = $this->app->DB->Select("SELECT geloescht FROM datei WHERE id='$fid' LIMIT 1"); if(isset($checkarray) && ($checkarray[$fid]!=md5($this->app->erp->GetDatei($fid))) && $geloescht==0) { $datei_updates++; $this->app->remote->RemoteSendFile($id,$fid); $this->app->remote->RemoteAddFileSubject($id,$fid); $checkarray[$fid]="update"; } else { if($geloescht) { $this->app->remote->RemoteDeleteFile($id,$fid); $checkarray[$fid]='delete'; } } $checkarray[$fid]='mark'; // wenn datei lokal geloescht loesche diese auch auf dem server // if($geloescht) } } //print_r($checkarray); if(is_array($checkarray) && (!empty($checkarray)?count($checkarray):0)>0) { $delete=0; foreach($checkarray as $key=>$value) { if($checkarray[$key]!=='mark' && $checkarray[$key]!=='delete' && $checkarray[$key]!=='update') { //echo "loesche $key
"; $this->app->remote->RemoteDeleteFile($id,$key); $delete++; } } } //ENDE DATEIEN // loesche nicht gebrauchte dateien if($datei_updates>0) { $this->app->Tpl->Set('STATUS',"
Datei-Updates: ".$datei_updates.".
"); } if($delete>0) { $this->app->Tpl->Add('STATUS',"
Datei(en) gelöscht: ".$delete.".
"); } // ende dateien update $this->app->DB->Insert("INSERT INTO shopexport_status (id, shopexport, bearbeiter,zeit, bemerkung,befehl) VALUES('','$id','".$this->app->User->GetName()."',NOW(),'','".serialize($artikel)."')"); $this->app->Tpl->Add('STATUS',"
Erfolgreiche Updates an ".$tmp_anzahl." Artikeln durchgeführt.
"); } $this->app->Tpl->Set('SUBHEADING','Starte Artikel Export'); $this->app->Tpl->Parse('PAGE','shopexport_export.tpl'); } public function ShopexportArtikeluebertragungdel() { $id = (int)$this->app->Secure->GetGET('id'); $shop = (int)$this->app->Secure->GetGET('shop');; if($id > 0){ $shop = $this->app->DB->Select("SELECT shop FROM shopexport_artikeluebertragen WHERE artikel='$id' AND shop = '$shop' LIMIT 1"); $this->app->DB->Delete("DELETE FROM shopexport_artikeluebertragen WHERE artikel='$id' AND shop = '$shop' LIMIT 1"); $this->app->DB->Delete("DELETE FROM shopexport_artikeluebertragen_check WHERE artikel='$id' AND shop = '$shop' LIMIT 1"); } $msg = $this->app->erp->base64_url_encode('
Der Artikel wurde aus der Übertragung entfernt.
'); $this->app->Location->execute('index.php?module=shopexport&action=artikeluebertragung&id='.$shop.'&msg='.$msg); } public function ShopexportAdressuebertragungdel() { $id = (int)$this->app->Secure->GetGET('id'); $shop = 0; if($id > 0){ $shop = $this->app->DB->Select("SELECT shop FROM shopexport_adressenuebertragen WHERE id='$id' LIMIT 1"); $this->app->DB->Delete("DELETE FROM shopexport_adressenuebertragen WHERE id='$id' LIMIT 1"); } $msg = $this->app->erp->base64_url_encode('
Die Adresse wurde aus der Übertragung entfernt.
'); $this->app->Location->execute('index.php?module=shopexport&action=adressuebertragung&id='.$shop.'&msg='.$msg); } /** * @param int $shopId * * @return array */ public function getChangedCount($shopId) { $checkedStarted = (int)$this->app->erp->GetKonfiguration('shopexport_artikeluebertragen_check_start_'.$shopId); $checked = (int)$this->app->erp->GetKonfiguration('shopexport_artikeluebertragen_check_checked_'.$shopId); $changed = (int)$this->app->erp->GetKonfiguration('shopexport_artikeluebertragen_check_changed_'.$shopId); $transfered = (int)$this->app->erp->GetKonfiguration('shopexport_artikeluebertragen_check_transfered_'.$shopId); $lastid = (int)$this->app->erp->GetKonfiguration('shopexport_artikeluebertragen_check_lastid_'.$shopId); return [$checkedStarted, $checked, $changed, $checked - $changed, $transfered, $lastid]; } /** * @param int $shopId */ public function resetChangedInfo($shopId) { $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_start_'.$shopId,''); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_checked_'.$shopId,''); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_changed_'.$shopId,''); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_transfered_'.$shopId,''); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_lastid_'.$shopId,''); } /** * @param int $ids */ public function addChangedArticles($minutes = 15) { $ids = $this->app->DB->SelectFirstCols( sprintf( 'SELECT `id` FROM `shopexport` WHERE `aktiv` = 1 AND `autosendarticle` = 1 AND `artikelexport` = 1 AND (`autosendarticle_last` IS NULL OR DATE_ADD(`autosendarticle_last` INTERVAL %d MINUTE) <= NOW())', $minutes ) ); if(empty($ids)) { return; } $this->app->DB->Insert( sprintf( "INSERT INTO `shopexport_artikeluebertragen_check` (`shop`, `artikel`) SELECT s.id as shop, a.id FROM `artikel` AS `a` INNER JOIN `shopexport` AS `s` ON s.id IN (%s) LEFT JOIN ( SELECT `artikel`, `shop` FROM `artikel_onlineshops` WHERE `shop` IN (%s) AND `aktiv` = 1 GROUP BY `artikel`, `shop` ) AS `oa` ON a.id = oa.artikel AND s.id = oa.shop LEFT JOIN `shopexport_artikeluebertragen_check` AS `sac` ON a.id = sac.artikel AND sac.shop = s.id LEFT JOIN `shopexport_artikeluebertragen` AS `sa` ON sa.shop = s.id AND sa.artikel = a.id WHERE (a.shop=s.id OR a.shop2=s.id OR a.shop3=s.id OR oa.artikel IS NOT NULL) AND a.geloescht!=1 AND sa.id IS NULL AND sac.id IS NULL GROUP BY a.id, s.id", implode(',', $ids), implode(',', $ids) ) ); } /** * @return RedirectResponse */ public function HandleResetArticleCacheForArticleWithZeroStock(): RedirectResponse { $anz = 0; $id = (int)$this->app->Secure->GetGET('id'); if($id > 0) { $this->app->DB->Update( "UPDATE `artikel` AS `a` INNER JOIN `artikel_onlineshops` AS `oa` ON oa.shop = '$id' AND oa.aktiv = 1 AND a.id = oa.artikel SET oa.storage_cache = -999, oa.pseudostorage_cache = -999 WHERE (oa.storage_cache = 0 OR oa.storage_cache IS NULL) AND a.geloescht = 0" ); $anz = $this->app->DB->affected_rows(); $this->app->erp->LogFile("Lagerzahlencache zurückgesetzt für $anz Artikel mit 0-Mengen, shopid: $id"); } $msg = $this->app->erp->base64_url_encode( "
Lagerzahlen Cache für ".$anz." Artikel zurückgesetzt.
" ); return RedirectResponse::createFromUrl("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } public function ShopexportArtikeluebertragung() { $id = (int)$this->app->Secure->GetGET('id'); $alle = $this->app->Secure->GetPOST('alle'); $allchanged = $this->app->Secure->GetPOST('allchanged'); $bestaetigen = $this->app->Secure->GetPOST('bestaetigen'); $abbrechen = $this->app->Secure->GetPOST('abbrechen'); $artikelladen = $this->app->Secure->GetPOST('artikelladen'); $artikel = $this->app->Secure->GetPOST('artikel'); $kategorie = $this->app->Secure->GetPOST('kategorie'); $unterartikel = $this->app->Secure->GetPOST('unterartikel'); $unterartikelkategorie = $this->app->Secure->GetPOST('unterartikelkategorie'); $kategorieladen = $this->app->Secure->GetPOST('kategorieladen'); $delcache = $this->app->Secure->GetPOST('delcache'); $delzerostockcache = $this->app->Secure->GetPOST('delzerostockcache'); $delArticleCache = $this->app->Secure->GetPOST('delarticlecache'); $artikelexporterlauben = $this->app->Secure->GetPOST('artikelexporterlauben'); if(!empty($artikelexporterlauben)){ $this->app->DB->Update("UPDATE shopexport SET artikelexport=1 WHERE id='$id' LIMIT 1"); } if(!empty($delzerostockcache)) { $this->HandleResetArticleCacheForArticleWithZeroStock()->send(); $this->app->ExitXentral(); } if(!empty($delcache)) { $anz = 0; if($id > 0) { $this->app->DB->Update("UPDATE artikel a LEFT JOIN (SELECT artikel FROM artikel_onlineshops WHERE shop = '$id' AND aktiv = 1 GROUP BY artikel) oa ON a.id = oa.artikel SET a.cache_lagerplatzinhaltmenge = -999 WHERE (a.shop = '$id' OR a.shop2 = '$id' OR a.shop3 = '$id' OR NOT ISNULL(oa.artikel)) AND a.geloescht = 0"); $anz = $this->app->DB->affected_rows(); $this->app->erp->LogFile("Lagerzahlencache zurückgesetzt für $anz Artikel, shopid: $id"); } $msg = $this->app->erp->base64_url_encode("
Lagerzahlen Cache für ".$anz." Artikel zurückgesetzt.
"); $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } if(!empty($delArticleCache)) { $anz = 0; if($id > 0){ $this->app->DB->Update( sprintf( "UPDATE artikel_onlineshops SET last_article_hash = '', storage_cache=-999,pseudostorage_cache=-999 WHERE shop = %d", $id ) ); $anz = $this->app->DB->affected_rows(); if($anz < 0) { $anz = 0; } } $msg = $this->app->erp->base64_url_encode("
Artikel-Cache für ".$anz." Artikel zurückgesetzt.
"); $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } if(!empty($allchanged)) { if(!empty($bestaetigen)) { if($id > 0){ /*$artikelarr = $this->app->DB->SelectArr("SELECT a.id FROM artikel a LEFT JOIN (SELECT artikel FROM artikel_onlineshops WHERE shop = '$id' AND aktiv = 1 GROUP BY artikel) oa ON a.id = oa.artikel WHERE (a.shop='$id' OR a.shop2='$id' OR a.shop3='$id' OR NOT ISNULL(oa.artikel)) AND a.geloescht!=1"); $cartikelarr = !empty($artikelarr) ? count($artikelarr) : 0; for ($i = 0; $i < $cartikelarr; $i++) { $this->app->DB->Insert("INSERT INTO shopexport_artikeluebertragen_check (id,shop,artikel) VALUES ('','$id','" . $artikelarr[$i]['id'] . "')"); } }*/ $this->resetChangedInfo($id); $this->app->DB->Delete( sprintf( 'DELETE FROM shopexport_artikeluebertragen_check WHERE shop = %d', $id ) ); $this->app->DB->Insert( sprintf( "INSERT INTO shopexport_artikeluebertragen_check (shop, artikel) SELECT '%d' as shop, a.id FROM artikel a LEFT JOIN ( SELECT artikel FROM artikel_onlineshops WHERE shop = %d AND aktiv = 1 GROUP BY artikel ) oa ON a.id = oa.artikel LEFT JOIN shopexport_artikeluebertragen AS sa ON sa.shop = %d AND sa.artikel = a.id WHERE (a.shop=%d OR a.shop2=%d OR a.shop3=%d OR NOT ISNULL(oa.artikel)) AND a.geloescht!=1 AND ISNULL(sa.id) GROUP BY a.id", $id, $id, $id, $id, $id, $id ) ); echo $this->app->DB->error(); $changeStart = $this->app->DB->affected_rows(); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_start_'.$id, $changeStart ); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_checked_'.$id,0); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_check_changed_'.$id,0); $this->app->erp->SetKonfigurationValue( 'shopexport_artikeluebertragen_check_lastid_'.$id, mt_rand(1,2000000000) ); } $msg = $this->app->erp->base64_url_encode("
Alle Artikel die mit dem Shop verknüpft sind werden überprüft.
"); $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } $this->app->Tpl->Add('MESSAGE','
Bitte Bestätigen Sie die Übertragung!
'); } if(!empty($alle)) { if(!empty($bestaetigen)) { if($id > 0){ /*$artikelarr = $this->app->DB->SelectArr("SELECT a.id FROM artikel a LEFT JOIN (SELECT artikel FROM artikel_onlineshops WHERE shop = '$id' AND aktiv = 1 GROUP BY artikel) oa ON a.id = oa.artikel WHERE (a.shop='$id' OR a.shop2='$id' OR a.shop3='$id' OR NOT ISNULL(oa.artikel)) AND a.geloescht!=1"); $cartikelarr = !empty($artikelarr) ? count($artikelarr) : 0; for ($i = 0; $i < $cartikelarr; $i++) { $this->app->DB->Insert("INSERT INTO shopexport_artikeluebertragen (id,shop,artikel) VALUES ('','$id','" . $artikelarr[$i]['id'] . "')"); } */ $this->resetChangedInfo($id); $this->app->DB->Insert( sprintf( "INSERT INTO shopexport_artikeluebertragen (shop, artikel) SELECT '%d' AS shop, a.id FROM artikel a LEFT JOIN ( SELECT artikel FROM artikel_onlineshops WHERE shop = %d AND aktiv = 1 GROUP BY artikel ) AS oa ON a.id = oa.artikel WHERE (a.shop=%d OR a.shop2=%d OR a.shop3=%d OR NOT ISNULL(oa.artikel)) AND a.geloescht!=1", $id,$id, $id, $id, $id ) ); $this->app->erp->SetKonfigurationValue('shopexport_artikeluebertragen_start_'.$id, $this->app->DB->affected_rows() ); } $msg = $this->app->erp->base64_url_encode("
Alle Artikel die mit dem Shop verknüpft sind werden übertragen.
"); $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } $this->app->Tpl->Add('MESSAGE','
Bitte Bestätigen Sie die Übertragung!
'); } if(!empty($abbrechen)) { $this->app->DB->Delete("DELETE FROM shopexport_artikeluebertragen WHERE shop='$id'"); $this->app->DB->Delete("DELETE FROM shopexport_artikeluebertragen_check WHERE shop='$id'"); $this->resetChangedInfo($id); //$this->app->erp-> 'shopexport_artikeluebertragen_check_start_'.$id $msg = $this->app->erp->base64_url_encode('
Alle aktuellen Artikel wurden aus der Übertragung entfernt.
'); $this->app->Location->execute('index.php?module=shopexport&action=artikeluebertragung&id='.$id.'&msg='.$msg); } if($kategorieladen != '') { if(!empty($bestaetigen)) { $typ = $this->app->DB->Select("SELECT id FROM artikelkategorien WHERE bezeichnung!='' AND bezeichnung='$kategorie' LIMIT 1"); if($typ) { $typ .= '_kat'; } else{ $typ = $kategorie; } if((String)$typ !== '') { $this->app->DB->Query("INSERT INTO shopexport_artikeluebertragen (artikel, shop) SELECT id as artikel ,'$id' as shop FROM artikel WHERE (geloescht = 0 OR isnull(geloescht)) AND nummer <> 'DEL' AND nummer <> '' AND typ = '$typ'"); $anz = (int)$this->app->DB->affected_rows(); //$artikelarr = $this->app->DB->SelectArr("SELECT id FROM artikel WHERE (geloescht = 0 OR isnull(geloescht)) AND nummer <> 'DEL' AND nummer <> '' AND typ = '$typ'"); if($anz > 0) { $msg = $this->app->erp->base64_url_encode("
Die Artikelkategorie wurde der Übertragung hinzugefügt ($anz Artikel).
"); } else{ $msg = $this->app->erp->base64_url_encode("
Keine Artikel in dieser Artikelkategorie gefunden.
"); } $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } $msg = $this->app->erp->base64_url_encode("
Keine Artikelkategorie ausgewählt
"); $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } $this->app->Tpl->Add('MESSAGE','
Bitte Bestätigen Sie die Übertragung!
'); } if($artikelladen!='') { if(!empty($bestaetigen)) { $artikelid = $this->app->DB->Select("SELECT id FROM artikel WHERE nummer!='' AND nummer='$artikel' AND (geloescht = 0 OR isnull(geloescht)) AND nummer <> 'DEL' LIMIT 1"); if($artikelid > 0 && $id > 0) { $this->app->DB->Insert("INSERT INTO shopexport_artikeluebertragen (id,shop,artikel) VALUES ('','$id','$artikelid')"); $msg = $this->app->erp->base64_url_encode("
Der Artikel wurde der Übertragung hinzugefügt.
"); $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } $msg = $this->app->erp->base64_url_encode("
Kein Artikel ausgewählt
"); $this->app->Location->execute("index.php?module=shopexport&action=artikeluebertragung&id=$id&msg=$msg"); } $this->app->Tpl->Add('MESSAGE','
Bitte Bestätigen Sie die Übertragung!
'); } $this->app->Tpl->Set('VORMATRIXPRODUKT',''); $this->ShopexportMenu(); $checking = (int)$this->app->DB->Select( sprintf( 'SELECT COUNT(id) FROM shopexport_artikeluebertragen_check WHERE shop = %d', $id ) ); list($start,$checked, $changed, $notChanged, $transfered, $lastid) = $this->getChangedCount($id); if($checking || (int)$start > 0) { $inList = (int)$this->app->DB->Select( sprintf( 'SELECT COUNT(id) FROM shopexport_artikeluebertragen WHERE shop = %d', $id ) ); if($inList === 0 && $checking === 0) { $this->app->Tpl->Add( 'MESSAGE', '
' .$checked.' von '.$start. ' Artikel wurden überprüft. '.(!empty($transfered)?$transfered:$changed).' veränderte Artikel wurden gefunden und an den Shop übertragen.
'); } else{ $this->app->Tpl->Add( 'MESSAGE', '
' .$checked.' von '.$start.' Artikel wurden überprüft. '.$changed. ' veränderte Artikel wurden gefunden und '.$transfered.' davon an den Shop übertragen.
'); /*if($start > 0) { $this->app->Tpl->Add( 'MESSAGE', '
' . $checked . ' von ' . $start . ' Artikel geprüft (' . $changed . ' geändert / ' . $notChanged . ' nicht geändert)
' ); } else { $this->app->Tpl->Add( 'MESSAGE', '
' . $inList . ' Artikel gefunden, noch zu prüfen ' . $checking . ' Artikel
' ); }*/ } } $exportErlaubt = $this->app->DB->Select("SELECT artikelexport FROM shopexport WHERE id='$id' LIMIT 1"); if(!$exportErlaubt){ $this->app->Tpl->Set('IMPORTERINFO','
'); $this->app->Tpl->Add('IMPORTERINFO','Der Artikelexport für diesen Importer ist nicht aktiviert. '); $this->app->Tpl->Add('IMPORTERINFO','
'); } $this->app->erp->checkActiveCronjob('artikeluebertragen', 'IMPORTERINFO2'); $this->app->erp->MenuEintrag('index.php?module=onlineshops&action=edit&id='.$id, 'Zurück zur Übersicht'); $this->app->YUI->AutoComplete('artikel','artikelnummer',1); $this->app->YUI->AutoComplete('kategorie','artikelkategorien'); $this->app->YUI->TableSearch('TAB1','shopexport_artikeluebertragung'); $this->app->Tpl->Parse('PAGE','shopexport_artikeluebertragung.tpl'); } public function ShopexportAdressuebertragung() { $id = (int)$this->app->Secure->GetGET('id'); $bestaetigen = $this->app->Secure->GetPOST('bestaetigen'); $alle = $this->app->Secure->GetPOST('alle'); $abbrechen = $this->app->Secure->GetPOST('abbrechen'); $adresseladen = $this->app->Secure->GetPOST('adresseladen'); $adresse = $this->app->Secure->GetPOST('adresse'); $gruppeladen = $this->app->Secure->GetPOST('gruppeladen'); $gruppe = $this->app->Secure->GetPOST('gruppe'); if(!empty($alle)) { if(!empty($bestaetigen)) { if($id > 0){ $this->app->DB->Insert("INSERT INTO shopexport_adressenuebertragen (shop,adresse) SELECT $id, a.id FROM adresse a WHERE a.geloescht <> 1 AND a.kundennummer <> '' AND a.id NOT IN (SELECT adresse FROM shopexport_adressenuebertragen WHERE shop = $id)"); } $msg = $this->app->erp->base64_url_encode("
Alle Adressen die mit dem Shop verknüpft sind werden übertragen.
"); $this->app->Location->execute("index.php?module=shopexport&action=adressuebertragung&id=$id&msg=$msg"); } $this->app->Tpl->Add('MESSAGE','
Bitte Bestätigen Sie die Übertragung!
'); } if(!empty($abbrechen)) { $this->app->DB->Delete("DELETE FROM shopexport_adressenuebertragen WHERE shop='$id'"); $msg = $this->app->erp->base64_url_encode('
Alle Adressen wurden aus der Übertragung entfernt.
'); $this->app->Location->execute('index.php?module=shopexport&action=adressuebertragung&id='.$id.'&msg='.$msg); } if($gruppeladen!='') { if(!empty($bestaetigen) && $gruppe!='') { $gruppetmp = explode(' ', $gruppe); $gruppenid = $this->app->DB->Select("SELECT id FROM gruppen WHERE kennziffer='".$gruppetmp[0]."' LIMIT 1"); if($gruppenid > 0 && $id > 0) { $this->app->DB->Insert("INSERT INTO shopexport_adressenuebertragen (shop,adresse) SELECT $id, a.id FROM adresse a JOIN adresse_rolle ar ON a.id = ar.adresse WHERE ar.subjekt='Mitglied' AND ar.objekt='Gruppe' AND ar.parameter='$gruppenid' AND a.geloescht <> 1 AND a.kundennummer <> '' AND a.id NOT IN (SELECT adresse FROM shopexport_adressenuebertragen WHERE shop = $id)"); $msg = $this->app->erp->base64_url_encode("
Die Adressen wurde der Übertragung hinzugefügt.
"); $this->app->Location->execute("index.php?module=shopexport&action=adressuebertragung&id=$id&msg=$msg"); } $msg = $this->app->erp->base64_url_encode("
Keie Adresse ausgewählt
"); $this->app->Location->execute("index.php?module=shopexport&action=adressuebertragung&id=$id&msg=$msg"); } $this->app->Tpl->Add('MESSAGE','
Bitte Bestätigen Sie die Übertragung!
'); } if($adresseladen!='') { if(!empty($bestaetigen) && $adresse!=''){ $adressetmp = explode(' ', $adresse); $adressid = $adressetmp[0]; $adressid = $this->app->DB->Select("SELECT id FROM adresse WHERE name!='' AND kundennummer!='' AND geloescht<>1 AND id='$adressid' LIMIT 1"); if($adressid > 0 && $id > 0) { $this->app->DB->Insert("INSERT INTO shopexport_adressenuebertragen (id,shop,adresse) VALUES ('','$id','$adressid')"); $msg = $this->app->erp->base64_url_encode("
Die Adresse wurde der Übertragung hinzugefügt.
"); $this->app->Location->execute("index.php?module=shopexport&action=adressuebertragung&id=$id&msg=$msg"); } $msg = $this->app->erp->base64_url_encode("
Keie Adresse ausgewählt
"); $this->app->Location->execute("index.php?module=shopexport&action=adressuebertragung&id=$id&msg=$msg"); } $this->app->Tpl->Add('MESSAGE','
Bitte Bestätigen Sie die Übertragung!
'); } $this->ShopexportMenu(); $this->app->erp->MenuEintrag('index.php?module=onlineshops&action=edit&id='.$id, 'Zurück zur Übersicht'); $this->app->YUI->AutoComplete('adresse','adresse'); $this->app->YUI->AutoComplete('gruppe','gruppekennziffer'); $this->app->YUI->TableSearch('TAB1','shopexport_adressuebertragung'); $this->app->Tpl->Parse('PAGE','shopexport_adressuebertragung.tpl'); } public function ShopexportNavigation() { $id = $this->app->Secure->GetGET('id'); $tmp = new Navigation($this->app,$id); $this->app->Tpl->Set('ID',$id); $this->app->Tpl->Set('PAGE',$tmp->Get()); $this->app->BuildNavigation=false; } /** * @param int $articleId * @param int|array $shopId * * @return array */ public function hasArticleHashChanged($articleId, $shopId) { if(is_array($shopId)) { $shop = $shopId; $shopId = $shop['id']; }/* else { $shop = $this->app->DB->SelectRow('SELECT * FROM shopexport WHERE id = %d', $shopId); }*/ $hash = $this->getArticleHash($articleId, $shopId, true); $articleShopRow = $this->app->DB->SelectRow( sprintf( 'SELECT last_article_hash, last_article_transfer FROM artikel_onlineshops WHERE artikel = %d AND shop = %d', $articleId, $shopId ) ); return [ 'changed' => empty($articleShopRow['last_article_hash']) || ($articleShopRow['last_article_hash'] !== $hash), 'hash' => $hash ]; } /** * @param int $articleId * @param int|array $shopId * @param bool $withAttributes * @param bool $widthCategorieTree * * @return string */ public function getArticleHash($articleId, $shopId, $withAttributes = true, $widthCategorieTree = false) { if(is_array($shopId)) { $shop = $shopId; $shopId = $shop['id']; }/* else { $shop = $this->app->DB->SelectRow('SELECT * FROM shopexport WHERE id = %d', $shopId); }*/ $art = $this->app->DB->SelectRow( sprintf( 'SELECT * FROM artikel WHERE id = %d', $articleId ) ); if(empty($art)) { return ''; } unset( $art['logdatei'], $art['cache_lagerplatzinhaltmenge'], $art['shop'], $art['shop2'], $art['shop3'], $art['usereditid'], $art['useredittimestamp'], $art['laststorage_sync'] ); if($withAttributes) { $art['attributes'] = $this->app->DB->SelectArr( sprintf( "SELECT DISTINCT e.name, ew.wert FROM artikeleigenschaften e INNER JOIN artikeleigenschaftenwerte ew ON e.id = ew.artikeleigenschaften WHERE ew.artikel = %d AND e.name <> '' AND ew.wert <> '' AND e.geloescht <> 1 ORDER BY e.name, ew.wert", $articleId ) ); } if($widthCategorieTree) { $kategorienbaum = null; $this->app->erp->GetKategorienbaum($kategorienbaum, 0, 0, $articleId); if(!empty($kategorienbaum)) { $kategorien = $this->app->DB->SelectArr( sprintf( "SELECT ak.id, ak.bezeichnung FROM `artikelbaum_artikel` aa INNER JOIN `artikelkategorien` ak ON aa.kategorie = ak.id AND ak.geloescht <> 1 AND aa.artikel = %d ORDER by ak.bezeichnung, ak.id", $articleId ) ); if($kategorien) { foreach($kategorien as $v) { $katid[$v['id']] = true; } } if(!empty($katid)) { foreach($kategorienbaum as $v) { if(isset($katid[$v['id']])) { $art['kategorien'][] = array('name'=>$v['bezeichnung'],'parent'=>$v['parent'],'id'=>$v['id'],'lvl'=>$v['lvl'],'extid'=>$v['extid']); } } } } } $art['shopexport'] = $this->app->DB->SelectArr( sprintf( "SELECT name, wert FROM shopexport_artikel WHERE artikel = %d AND shopid = %d ORDER BY id ", $articleId, $shopId ) ); return sha1(json_encode($art)); } }