Der Artikel konnte nicht zum Shop übertragen werden! In den Shopeinstellungen ist festgelegt, dass die Artikelinformation- und Lagerbestandsübertragung nicht erlaubt ist!$pageContents $linkToImporterSettings
");
+ if ($artikelshopid > 0) {
+ $shop = $this->app->DB->Select("SELECT shop FROM artikel_onlineshops WHERE id = '$artikelshopid' AND artikel = '$id' AND aktiv = 1 LIMIT 1");
+ $this->app->User->SetParameter('artikel_shopexport_shop', '');
+ } else {
+ if ($shop == '1') {
+ $shop = $this->app->DB->Select("SELECT shop FROM artikel WHERE id='$id' LIMIT 1");
+ } elseif ($shop == '2') {
+ $shop = $this->app->DB->Select("SELECT shop2 FROM artikel WHERE id='$id' LIMIT 1");
+ } elseif ($shop == '3') {
+ $shop = $this->app->DB->Select("SELECT shop3 FROM artikel WHERE id='$id' LIMIT 1");
+ }
}
- else{
- if($pageContents === '0' || $pageContents === 0){
- $msg = $this->app->erp->base64_url_encode("
Es gab einen Fehler beim Aktualisieren des Artikels im Shop! Stellen Sie sicher, dass die Zugangsdaten und URL's korrekt sind! Möglicherweise kein Artikelpreis hinterlegt
Es gab einen Fehler beim Aktualisieren des Artikels im Shop! Stellen Sie sicher, dass die Zugangsdaten und URL's korrekt sind!$pageContents $linkToImporterSettings
");
- }
- //$this->app->Tpl->Set('SUBHEADING',"Imports");
- //Jeder der in Nachbesserung war egal ob auto oder manuell wandert anschliessend in Manuelle-Freigabe");
- $runningcronjob = $this->app->DB->Select("SELECT id FROM prozessstarter WHERE parameter = 'shopimport' AND aktiv=1 AND mutex = 1 AND UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(letzteausfuerhung) < 300 LIMIT 1");
- if($runningcronjob)
- {
- $this->app->Tpl->Set('TAB1','
Es läuft gerade ein Cronjob der Aufträge abholt. Die manuelle Auftragsabholung ist in dieser Zeit gesperrt. Bitte warten Sie ein paar Minuten und versuchen Sie es erneut.
');
- }else{
- $table = new EasyTable($this->app);
- $table->Query("SELECT ae.bezeichnung,p.abkuerzung,
+ if ($this->app->erp->RechteVorhanden('shopimport', 'alle')) {
+ $this->app->Tpl->Add('INHALT', "
");
+ }
+ //$this->app->Tpl->Set('SUBHEADING',"Imports");
+ //Jeder der in Nachbesserung war egal ob auto oder manuell wandert anschliessend in Manuelle-Freigabe");
+ $runningcronjob = $this->app->DB->Select("SELECT id FROM prozessstarter WHERE parameter = 'shopimport' AND aktiv=1 AND mutex = 1 AND UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(letzteausfuerhung) < 300 LIMIT 1");
+ if ($runningcronjob) {
+ $this->app->Tpl->Set('TAB1', '
Es läuft gerade ein Cronjob der Aufträge abholt. Die manuelle Auftragsabholung ist in dieser Zeit gesperrt. Bitte warten Sie ein paar Minuten und versuchen Sie es erneut.
');
+ } else {
+ $table = new EasyTable($this->app);
+ $table->Query("SELECT ae.bezeichnung,p.abkuerzung as Projekt,
ae.id FROM shopexport ae LEFT JOIN projekt p ON p.id=ae.projekt WHERE ae.aktiv='1'");
- $table->DisplayNew('INHALT'," ");
- $this->app->Tpl->Parse('TAB1','rahmen.tpl');
- }
- $this->app->Tpl->Set('INHALT','');
+ $table->DisplayNew('INHALT', " ");
+ $this->app->Tpl->Parse('TAB1', 'rahmen.tpl');
+ }
+ $this->app->Tpl->Set('INHALT', '');
-
- // Archiv GESTERN
- $table = new EasyTable($this->app);
- $table->Query("SELECT a.datum, a.internet, a.transaktionsnummer,a.name, a.land, a.gesamtsumme as betrag, (SELECT SUM(r.soll) FROM rechnung r WHERE r.adresse=a.adresse AND r.status='offen') as mahnwesen, a.zahlungsweise, a.partnerid as Partner, a.id FROM auftrag a WHERE
+ // Archiv GESTERN
+ $table = new EasyTable($this->app);
+ $table->Query("SELECT a.datum, a.internet, a.transaktionsnummer,a.name, a.land, a.gesamtsumme as betrag, (SELECT SUM(r.soll) FROM rechnung r WHERE r.adresse=a.adresse AND r.status='offen') as mahnwesen, a.zahlungsweise, a.partnerid as Partner, a.id FROM auftrag a WHERE
(datum=DATE_FORMAT( DATE_SUB( NOW() , INTERVAL 1 DAY ) , '%Y-%m-%d' ) OR (datum=DATE_FORMAT( NOW(), '%Y-%m-%d' ))) AND a.internet>0
ORDER by a.id DESC");
- $table->DisplayNew('INHALT',"app->Conf->WFconf['defaulttheme']."/images/edit.svg\">
- app->Conf->WFconf['defaulttheme']."/images/pdf.svg\">");
+ $table->DisplayNew('INHALT', "app->Conf->WFconf['defaulttheme'] . "/images/edit.svg\">
+ app->Conf->WFconf['defaulttheme'] . "/images/pdf.svg\">");
- $this->app->Tpl->Parse('TAB2','rahmen.tpl');
- $this->app->Tpl->Set('INHALT','');
+ $this->app->Tpl->Parse('TAB2', 'rahmen.tpl');
+ $this->app->Tpl->Set('INHALT', '');
-
- $summe_heute = $this->app->DB->Select("SELECT SUM(a.gesamtsumme) FROM auftrag a WHERE
+ $summe_heute = $this->app->DB->Select("SELECT SUM(a.gesamtsumme) FROM auftrag a WHERE
a.datum=DATE_FORMAT( NOW(), '%Y-%m-%d' ) AND a.internet>0
");
- $summe_gestern = $this->app->DB->Select("SELECT SUM(a.gesamtsumme) FROM auftrag a WHERE
+ $summe_gestern = $this->app->DB->Select("SELECT SUM(a.gesamtsumme) FROM auftrag a WHERE
a.datum=DATE_FORMAT( DATE_SUB( NOW() , INTERVAL 1 DAY ) , '%Y-%m-%d' ) AND a.internet>0
");
- $this->app->Tpl->Add('TAB2',"
Heute: $summe_heute EUR (inkl. Steuer und Versand) Umsatz aus den Online-Shop
");
- $this->app->Tpl->Add('TAB2',"
Gestern: $summe_gestern EUR (inkl. Steuer und Versand) Umsatz aus den Online-Shop
");
+ $this->app->Tpl->Add('TAB2', "
Heute: $summe_heute EUR (inkl. Steuer und Versand) Umsatz aus den Online-Shop
");
+ $this->app->Tpl->Add('TAB2', "
Gestern: $summe_gestern EUR (inkl. Steuer und Versand) Umsatz aus den Online-Shop
');
- }
- $this->app->erp->MenuEintrag('index.php?module=shopimport&action=einzelimport&id='.$id,'Einzelimport');
- $this->app->erp->MenuEintrag('index.php?module=shopimport&action=import','Shopauftrag-Liste');
- $this->app->Tpl->Parse('PAGE','shopimport_einzelimport.tpl');
- }
-
- public function KundeAnlegenUpdate($shopimportid,$shopextid, $warenkorb, $kundennummer = 0, $import_kundennummer, &$unbekanntezahlungsweisen)
- {
- if(empty($warenkorb)) {
- return 0;
- }
- if(!empty($this->app->stringcleaner)){
- $this->app->stringcleaner->XMLArray_clean($warenkorb);
- }
- $i = 0;
- $sucess_import = 0;
- $shopid = $this->app->DB->Select("SELECT shopid FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1");
- $shopexportArr = $this->app->DB->SelectRow(sprintf('SELECT * FROM shopexport WHERE id=%d', $shopid));
- $projekt = $shopexportArr['projekt'];//$this->app->DB->Select("SELECT projekt FROM shopexport WHERE id='$shopid'");
- if(!empty($warenkorb['projekt']) && $this->app->DB->Select("SELECT id FROM projekt WHERE id = '".(int)$warenkorb['projekt']."' LIMIT 1"))
- {
- $projekt = (int)$warenkorb['projekt'];
- }
- $adresseprojekt = '';
- $kundenurvonprojekt = $shopexportArr['kundenurvonprojekt'];//$this->app->DB->Select("SELECT kundenurvonprojekt FROM shopexport WHERE id = '".$shopid."' LIMIT 1");
- if($kundenurvonprojekt)
- {
- $adresseprojekt = $projekt;
+ $this->app->erp->MenuEintrag('index.php?module=shopimport&action=einzelimport&id=' . $id, 'Einzelimport');
+ $this->app->erp->MenuEintrag('index.php?module=shopimport&action=import', 'Shopauftrag-Liste');
+ $this->app->Tpl->Parse('PAGE', 'shopimport_einzelimport.tpl');
}
- if(isset($warenkorb['subshop']) && $warenkorb['subshop'])
- {
- $subshopprojekt = $this->app->DB->SelectArr("SELECT * FROM shopexport_subshop WHERE shop = '".$shopid."' AND aktiv = 1 AND subshopkennung = '".$this->app->DB->real_escape_string($warenkorb['subshop'])."' LIMIT 1");
- if($subshopprojekt)
- {
- if($subshopprojekt[0]['projekt'])
- {
- $adresseprojekt = $subshopprojekt[0]['projekt'];
- $projekt = $subshopprojekt[0]['projekt'];
- $arr[$i]['abkuerzung'] = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id = '$adresseprojekt' LIMIT 1");
+ public function KundeAnlegenUpdate($shopimportid, $shopextid, $warenkorb, $kundennummer = 0, $import_kundennummer, &$unbekanntezahlungsweisen) {
+ if (empty($warenkorb)) {
+ return 0;
}
- if($subshopprojekt[0]['sprache'])
- {
- $defaultsprache = $this->app->DB->Select("SELECT sprache FROM shopexport_sprachen WHERE shop = '$shopid' AND (projekt = '$projekt' OR projekt = 0) AND
- land = '' ORDER BY projekt = '$projekt' DESC, land = '".$warenkorb['land']."' DESC LIMIT 1");
- $checksprache = $this->app->DB->Select("SELECT sprache FROM shopexport_sprachen WHERE shop = '$shopid' AND (projekt = '$projekt' OR projekt = 0) AND
- land = '".(isset($warenkorb['land'])?$warenkorb['land']:$this->app->erp->Firmendaten('land'))."' ORDER BY projekt = '$projekt' DESC, land = '".$warenkorb['land']."' DESC LIMIT 1");
- if($checksprache != ''){
- if(empty($warenkorb['kunde_sprache']))
- {
- $warenkorb['kunde_sprache'] = $checksprache;
+ if (!empty($this->app->stringcleaner)) {
+ $this->app->stringcleaner->XMLArray_clean($warenkorb);
+ }
+ $i = 0;
+ $success_import = 0;
+ $shopid = $this->app->DB->Select("SELECT shopid FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1");
+ $shopexportArr = $this->app->DB->SelectRow(sprintf('SELECT * FROM shopexport WHERE id=%d', $shopid));
+ $projekt = $shopexportArr['projekt']; //$this->app->DB->Select("SELECT projekt FROM shopexport WHERE id='$shopid'");
+ if (!empty($warenkorb['projekt']) && $this->app->DB->Select("SELECT id FROM projekt WHERE id = '" . (int) $warenkorb['projekt'] . "' LIMIT 1")) {
+ $projekt = (int) $warenkorb['projekt'];
+ }
+ $adresseprojekt = '';
+ $kundenurvonprojekt = $shopexportArr['kundenurvonprojekt']; //$this->app->DB->Select("SELECT kundenurvonprojekt FROM shopexport WHERE id = '".$shopid."' LIMIT 1");
+ if ($kundenurvonprojekt) {
+ $adresseprojekt = $projekt;
+ }
+
+ if (isset($warenkorb['subshop']) && $warenkorb['subshop']) {
+ $subshopprojekt = $this->app->DB->SelectArr("SELECT * FROM shopexport_subshop WHERE shop = '" . $shopid . "' AND aktiv = 1 AND subshopkennung = '" . $this->app->DB->real_escape_string($warenkorb['subshop']) . "' LIMIT 1");
+ if ($subshopprojekt) {
+ if ($subshopprojekt[0]['projekt']) {
+ $adresseprojekt = $subshopprojekt[0]['projekt'];
+ $projekt = $subshopprojekt[0]['projekt'];
+ $arr[$i]['abkuerzung'] = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id = '$adresseprojekt' LIMIT 1");
+ }
+ if ($subshopprojekt[0]['sprache']) {
+ $defaultsprache = $this->app->DB->Select("SELECT sprache FROM shopexport_sprachen WHERE shop = '$shopid' AND (projekt = '$projekt' OR projekt = 0) AND
+ land = '' ORDER BY projekt = '$projekt' DESC, land = '" . $warenkorb['land'] . "' DESC LIMIT 1");
+ $checksprache = $this->app->DB->Select("SELECT sprache FROM shopexport_sprachen WHERE shop = '$shopid' AND (projekt = '$projekt' OR projekt = 0) AND
+ land = '" . (isset($warenkorb['land']) ? $warenkorb['land'] : $this->app->erp->Firmendaten('land')) . "' ORDER BY projekt = '$projekt' DESC, land = '" . $warenkorb['land'] . "' DESC LIMIT 1");
+ if ($checksprache != '') {
+ if (empty($warenkorb['kunde_sprache'])) {
+ $warenkorb['kunde_sprache'] = $checksprache;
+ }
+ } else {
+ if (empty($warenkorb['kunde_sprache'])) {
+ $warenkorb['kunde_sprache'] = $defaultsprache;
+ }
+ }
+
+ if (empty($warenkorb['kunde_sprache'])) {
+ $warenkorb['kunde_sprache'] = $subshopprojekt[0]['sprache'];
+ }
+ }
+ } else {
+ if (!$this->app->DB->Select("SELECT id FROM shopexport_subshop WHERE shop = '" . $shopid . "' AND subshopkennung = '" . $this->app->DB->real_escape_string($warenkorb['subshop']) . "' LIMIT 1")) {
+ $this->app->DB->Insert("INSERT INTO shopexport_subshop (shop, subshopkennung, aktiv, projekt) VALUES ('" . $shopid . "','" . $this->app->DB->real_escape_string($warenkorb['subshop']) . "','0','$projekt')");
+ }
}
- }
- else{
- if(empty($warenkorb['kunde_sprache']))
- {
- $warenkorb['kunde_sprache'] = $defaultsprache;
+ }
+
+ $kundenurvonprojekt = $this->app->DB->Select("SELECT kundenurvonprojekt FROM shopexport WHERE id = '$shopid' LIMIT 1");
+ if ($kundenurvonprojekt) {
+ $adresseprojekt = " AND projekt = '" . $adresseprojekt . "' ";
+ } else {
+ $adresseprojekt = '';
+ }
+
+ if (empty($warenkorb['name'])) {
+ $warenkorb['name'] = $warenkorb['ansprechpartner'];
+ $warenkorb['ansprechpartner'] = '';
+ }
+ if (empty($warenkorb['name']) && !empty($warenkorb['lieferadresse_name'])) {
+ $warenkorb['name'] = $warenkorb['lieferadresse_name'];
+ }
+ if (empty($warenkorb['lieferadresse_name'])) {
+ $warenkorb['lieferadresse_name'] = $warenkorb['lieferadresse_ansprechpartner'];
+ $warenkorb['lieferadresse_ansprechpartner'] = '';
+ }
+ $warenkorb['email'] = trim($warenkorb['email'], " \t\n\r\0\x0B\xc2\xa0");
+ if (empty($warenkorb['name'])) {
+ return 0;
+ }
+ //$projekt = $arr[0][projekt];
+
+ if ($kundennummer == '1') {
+ $warenkorb['kundennummer'] = $import_kundennummer;
+ if (strlen($warenkorb['kundennummer']) != '') {
+ $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='{$warenkorb['kundennummer']}' AND geloescht!=1 $adresseprojekt LIMIT 1");
}
- }
-
- if(empty($warenkorb['kunde_sprache']))
- {
- $warenkorb['kunde_sprache'] = $subshopprojekt[0]['sprache'];
- }
- }
- }else{
- if(!$this->app->DB->Select("SELECT id FROM shopexport_subshop WHERE shop = '".$shopid."' AND subshopkennung = '".$this->app->DB->real_escape_string($warenkorb['subshop'])."' LIMIT 1"))
- {
- $this->app->DB->Insert("INSERT INTO shopexport_subshop (shop, subshopkennung, aktiv, projekt) VALUES ('".$shopid."','".$this->app->DB->real_escape_string($warenkorb['subshop'])."','0','$projekt')");
- }
- }
- }
+ if ($adresse <= 0) {
+ $adresse = $this->app->erp->KundeAnlegen($warenkorb['anrede'], $warenkorb['name'], $warenkorb['abteilung'],
+ $warenkorb['unterabteilung'], $warenkorb['ansprechpartner'], $warenkorb['adresszusatz'], $warenkorb['strasse'], $warenkorb['land'], $warenkorb['plz'], $warenkorb['ort'], $warenkorb['email'],
+ $warenkorb['telefon'], $warenkorb['telefax'], $warenkorb['ustid'], $warenkorb['affiliate_ref'], $projekt);
+ $warenkorb['customer_created'] = true;
+ if (isset($warenkorb['kunde_sprache'])) {
+ if ($warenkorb['kunde_sprache'] == 'englisch' || $warenkorb['kunde_sprache'] == 'english') {
+ $this->app->DB->Update("UPDATE adresse SET sprache = 'englisch' WHERE id = '$adresse' LIMIT 1");
+ } elseif ($warenkorb['kunde_sprache'] == 'deutsch' || $warenkorb['kunde_sprache'] == 'german') {
+ $this->app->DB->Update("UPDATE adresse SET sprache = 'deutsch' WHERE id = '$adresse' LIMIT 1");
+ } elseif (method_exists($this->app->erp, 'GetSprachenSelect')) {
+ $sprachen = $this->app->erp->GetSprachenSelect;
+ if (isset($sprachen[strtolower($warenkorb['kunde_sprache'])])) {
+ $this->app->DB->Update("UPDATE adresse SET sprache = '" . strtolower($warenkorb['kunde_sprache']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ }
+ }
+ if ($warenkorb['titel'] != '') {
+ $this->app->DB->Update("UPDATE adresse SET titel = '" . $this->app->DB->real_escape_string($warenkorb['titel']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ if (isset($warenkorb['ust_befreit'])) {
+ $this->app->DB->Update("UPDATE adresse SET ust_befreit = '" . (int) $warenkorb['ust_befreit'] . "' WHERE id = '$adresse' LIMIT 1");
+ }
- $kundenurvonprojekt = $this->app->DB->Select("SELECT kundenurvonprojekt FROM shopexport WHERE id = '$shopid' LIMIT 1");
- if($kundenurvonprojekt)
- {
- $adresseprojekt = " AND projekt = '".$adresseprojekt."' ";
- }else{
- $adresseprojekt = '';
- }
+ $kundenGruppen = $this->app->DB->SelectArr("SELECT gruppeid,type FROM shopexport_kundengruppen WHERE shopid=$shopid AND aktiv=1 AND apply_to_new_customers=1 AND type<>'Artikel' AND (projekt=0 OR projekt='$projekt')");
+ if (!empty($kundenGruppen)) {
+ foreach ($kundenGruppen as $gruppe) {
+ $this->app->erp->AddRolleZuAdresse($adresse, $gruppe['type'], 'von', 'Gruppe', $gruppe['gruppeid']);
+ }
+ }
- if(empty($warenkorb['name'])){
- $warenkorb['name']=$warenkorb['ansprechpartner'];
- $warenkorb['ansprechpartner'] = '';
- }
- if(empty($warenkorb['name']) && !empty($warenkorb['lieferadresse_name'])) {
- $warenkorb['name'] = $warenkorb['lieferadresse_name'];
- }
- if(empty($warenkorb['lieferadresse_name'])){
- $warenkorb['lieferadresse_name']=$warenkorb['lieferadresse_ansprechpartner'];
- $warenkorb['lieferadresse_ansprechpartner'] = '';
- }
- $warenkorb['email'] = trim($warenkorb['email']," \t\n\r\0\x0B\xc2\xa0");
- if(empty($warenkorb['name'])) {
- return 0;
- }
- //$projekt = $arr[0][projekt];
+ if (isset($warenkorb['kundengruppe'])) {
+ $this->shopimportAdresseGruppenMapping($warenkorb['kundengruppe'], $adresse, $shopid, $projekt);
+ }
+ if ($shopexportArr['vertrieb']) {
+ $this->app->DB->Update(
+ sprintf(
+ 'UPDATE adresse SET vertrieb = %d WHERE id = %d',
+ $shopexportArr['vertrieb'], $adresse
+ )
+ );
+ }
+ $this->app->DB->Update(
+ sprintf(
+ 'UPDATE adresse SET fromshop = %d WHERE fromshop = 0 AND id = %d',
+ $shopexportArr['id'], $adresse
+ )
+ );
+ } else {
+ if (!empty($warenkorb['anrede'])) {
+ $typ = $warenkorb['anrede'];
+ } else {
+ $typ = $this->app->DB->Select("SELECT typ FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+ $name = $warenkorb['name'];
- if($kundennummer=='1')
- {
- $warenkorb['kundennummer']= $import_kundennummer;
- if(strlen($warenkorb['kundennummer'])!=''){
- $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='{$warenkorb['kundennummer']}' AND geloescht!=1 $adresseprojekt LIMIT 1");
- }
- if($adresse<=0) {
- $adresse = $this->app->erp->KundeAnlegen($warenkorb['anrede'],$warenkorb['name'],$warenkorb['abteilung'],
- $warenkorb['unterabteilung'],$warenkorb['ansprechpartner'],$warenkorb['adresszusatz'],$warenkorb['strasse'],$warenkorb['land'],$warenkorb['plz'],$warenkorb['ort'],$warenkorb['email'],
- $warenkorb['telefon'],$warenkorb['telefax'],$warenkorb['ustid'],$warenkorb['affiliate_ref'],$projekt);
- $warenkorb['customer_created'] = true;
- if(isset($warenkorb['kunde_sprache']))
- {
- if($warenkorb['kunde_sprache'] == 'englisch' || $warenkorb['kunde_sprache'] == 'english')
- {
- $this->app->DB->Update("UPDATE adresse SET sprache = 'englisch' WHERE id = '$adresse' LIMIT 1");
- }elseif($warenkorb['kunde_sprache'] == 'deutsch' || $warenkorb['kunde_sprache'] == 'german')
- {
- $this->app->DB->Update("UPDATE adresse SET sprache = 'deutsch' WHERE id = '$adresse' LIMIT 1");
- }elseif(method_exists($this->app->erp, 'GetSprachenSelect')){
- $sprachen = $this->app->erp->GetSprachenSelect;
- if(isset($sprachen[strtolower($warenkorb['kunde_sprache'])]))
- {
- $this->app->DB->Update("UPDATE adresse SET sprache = '".strtolower($warenkorb['kunde_sprache'])."' WHERE id = '$adresse' LIMIT 1");
- }
+ if (!empty($warenkorb['abteilung'])) {
+ $abteilung = $warenkorb['abteilung'];
+ } else {
+ $abteilung = $this->app->DB->Select("SELECT abteilung FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+ if (!empty($warenkorb['unterabteilung'])) {
+ $unterabteilung = $warenkorb['unterabteilung'];
+ } else {
+ $unterabteilung = $this->app->DB->Select("SELECT unterabteilung FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+
+ $ansprechpartner = $warenkorb['ansprechpartner'];
+ $adresszusatz = $warenkorb['adresszusatz'];
+ $strasse = $warenkorb['strasse'];
+ $land = $warenkorb['land'];
+ $plz = $warenkorb['plz'];
+ $ort = $warenkorb['ort'];
+ if (!empty($warenkorb['email'])) {
+ $email = $warenkorb['email'];
+ } else {
+ $email = $this->app->DB->Select("SELECT email FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+ if (!empty($warenkorb['telefon'])) {
+ $telefon = $warenkorb['telefon'];
+ } else {
+ $telefon = $this->app->DB->Select("SELECT telefon FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+ if (!empty($warenkorb['telefax'])) {
+ $telefax = $warenkorb['telefax'];
+ } else {
+ $telefax = $this->app->DB->Select("SELECT telefax FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+ if (!empty($warenkorb['ustid'])) {
+ $ustid = $warenkorb['ustid'];
+ } else {
+ $ustid = $this->app->DB->Select("SELECT ustid FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+ if (!empty($warenkorb['affiliate_ref'])) {
+ $partner = $warenkorb['affiliate_ref'];
+ } else {
+ $partner = $this->app->DB->Select("SELECT partner FROM adresse WHERE id = '$adresse' LIMIT 1");
+ }
+ // Update + protokoll
+ if (!$this->app->DB->Select("SELECT adressennichtueberschreiben FROM shopexport WHERE id = '$shopid' LIMIT 1")) {
+ if ($warenkorb['mobil'] != '') {
+ $this->app->DB->Update("UPDATE adresse SET mobil = '" . $this->app->DB->real_escape_string($warenkorb['mobil']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ if ($warenkorb['titel'] != '') {
+ $this->app->DB->Update("UPDATE adresse SET titel = '" . $this->app->DB->real_escape_string($warenkorb['titel']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ if ($warenkorb['geburtstag'] != '') {
+ $this->app->DB->Update("UPDATE adresse SET geburtstag = '" . $this->app->DB->real_escape_string($warenkorb['geburtstag']) . "' WHERE id = '$adresse' AND ISNULL(geburtstag) LIMIT 1");
+ }
+ if (isset($warenkorb['ust_befreit'])) {
+ $query = sprintf('UPDATE `adresse` SET `ust_befreit` = %d WHERE `id` = %d LIMIT 1',
+ $warenkorb['ust_befreit'], $adresse);
+ $this->app->DB->Update($query);
+ }
+ $this->app->erp->KundeUpdate($adresse, $typ, $name, $abteilung,
+ $unterabteilung, $ansprechpartner, $adresszusatz, $strasse, $land, $plz, $ort, $email, $telefon, $telefax, $ustid, $partner, $projekt);
+
+ if (!empty($warenkorb['bundesland'])) {
+ $this->app->DB->Update("UPDATE adresse SET bundesland = '" . $this->app->DB->real_escape_string($warenkorb['bundesland']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ }
}
- }
- if($warenkorb['titel'] != ''){
- $this->app->DB->Update("UPDATE adresse SET titel = '".$this->app->DB->real_escape_string($warenkorb['titel'])."' WHERE id = '$adresse' LIMIT 1");
- }
- if(isset($warenkorb['ust_befreit']))
- {
- $this->app->DB->Update("UPDATE adresse SET ust_befreit = '".(int)$warenkorb['ust_befreit']."' WHERE id = '$adresse' LIMIT 1");
- }
-
- $kundenGruppen = $this->app->DB->SelectArr("SELECT gruppeid,type FROM shopexport_kundengruppen WHERE shopid=$shopid AND aktiv=1 AND apply_to_new_customers=1 AND type<>'Artikel' AND (projekt=0 OR projekt='$projekt')");
- if(!empty($kundenGruppen)){
- foreach ($kundenGruppen as $gruppe){
- $this->app->erp->AddRolleZuAdresse($adresse, $gruppe['type'], 'von', 'Gruppe', $gruppe['gruppeid']);
- }
- }
-
- if(isset($warenkorb['kundengruppe'])){
- $this->shopimportAdresseGruppenMapping($warenkorb['kundengruppe'],$adresse,$shopid,$projekt);
- }
- if($shopexportArr['vertrieb']) {
- $this->app->DB->Update(
- sprintf(
- 'UPDATE adresse SET vertrieb = %d WHERE id = %d',
- $shopexportArr['vertrieb'], $adresse
- )
- );
- }
- $this->app->DB->Update(
- sprintf(
- 'UPDATE adresse SET fromshop = %d WHERE fromshop = 0 AND id = %d',
- $shopexportArr['id'], $adresse
- )
- );
- }
- else {
- if(!empty($warenkorb['anrede']))
- {
+ } else {
+ //echo "import als Neu-Kunde $shopimportid ";
$typ = $warenkorb['anrede'];
- }else{
- $typ = $this->app->DB->Select("SELECT typ FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
- $name= $warenkorb['name'];
-
- if(!empty($warenkorb['abteilung']))
- {
+ $name = $warenkorb['name'];
$abteilung = $warenkorb['abteilung'];
- }else{
- $abteilung = $this->app->DB->Select("SELECT abteilung FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
- if(!empty($warenkorb['unterabteilung']))
- {
$unterabteilung = $warenkorb['unterabteilung'];
- }else{
- $unterabteilung = $this->app->DB->Select("SELECT unterabteilung FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
-
- $ansprechpartner = $warenkorb['ansprechpartner'];
- $adresszusatz = $warenkorb['adresszusatz'];
- $strasse = $warenkorb['strasse'];
- $land = $warenkorb['land'];
- $plz = $warenkorb['plz'];
- $ort = $warenkorb['ort'];
- if(!empty($warenkorb['email']))
- {
+ $ansprechpartner = $warenkorb['ansprechpartner'];
+ $adresszusatz = $warenkorb['adresszusatz'];
+ $strasse = $warenkorb['strasse'];
+ $land = $warenkorb['land'];
+ $plz = $warenkorb['plz'];
+ $ort = $warenkorb['ort'];
$email = $warenkorb['email'];
- }else{
- $email = $this->app->DB->Select("SELECT email FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
- if(!empty($warenkorb['telefon']))
- {
$telefon = $warenkorb['telefon'];
- }else{
- $telefon = $this->app->DB->Select("SELECT telefon FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
- if(!empty($warenkorb['telefax']))
- {
$telefax = $warenkorb['telefax'];
- }else{
- $telefax = $this->app->DB->Select("SELECT telefax FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
- if(!empty($warenkorb['ustid']))
- {
$ustid = $warenkorb['ustid'];
- }else{
- $ustid = $this->app->DB->Select("SELECT ustid FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
- if(!empty($warenkorb['affiliate_ref']))
- {
$partner = $warenkorb['affiliate_ref'];
- }else{
- $partner = $this->app->DB->Select("SELECT partner FROM adresse WHERE id = '$adresse' LIMIT 1");
- }
- // Update + protokoll
- if(!$this->app->DB->Select("SELECT adressennichtueberschreiben FROM shopexport WHERE id = '$shopid' LIMIT 1"))
- {
- if($warenkorb['mobil'] != ''){
- $this->app->DB->Update("UPDATE adresse SET mobil = '".$this->app->DB->real_escape_string($warenkorb['mobil'])."' WHERE id = '$adresse' LIMIT 1");
- }
- if($warenkorb['titel'] != ''){
- $this->app->DB->Update("UPDATE adresse SET titel = '".$this->app->DB->real_escape_string($warenkorb['titel'])."' WHERE id = '$adresse' LIMIT 1");
- }
- if($warenkorb['geburtstag'] != ''){
- $this->app->DB->Update("UPDATE adresse SET geburtstag = '".$this->app->DB->real_escape_string($warenkorb['geburtstag'])."' WHERE id = '$adresse' AND ISNULL(geburtstag) LIMIT 1");
- }
- if(isset($warenkorb['ust_befreit'])){
- $query = sprintf('UPDATE `adresse` SET `ust_befreit` = %d WHERE `id` = %d LIMIT 1',
- $warenkorb['ust_befreit'], $adresse);
- $this->app->DB->Update($query);
- }
- $this->app->erp->KundeUpdate($adresse,$typ,$name,$abteilung,
- $unterabteilung,$ansprechpartner,$adresszusatz,$strasse,$land,$plz,$ort,$email,$telefon,$telefax,$ustid,$partner,$projekt);
-
- if(!empty($warenkorb['bundesland']))
- {
- $this->app->DB->Update("UPDATE adresse SET bundesland = '".$this->app->DB->real_escape_string($warenkorb['bundesland'])."' WHERE id = '$adresse' LIMIT 1");
- }
- }
- }
- }
- else {
- //echo "import als Neu-Kunde $shopimportid ";
- $typ = $warenkorb['anrede'];
- $name= $warenkorb['name'];
- $abteilung = $warenkorb['abteilung'];
- $unterabteilung = $warenkorb['unterabteilung'];
- $ansprechpartner = $warenkorb['ansprechpartner'];
- $adresszusatz = $warenkorb['adresszusatz'];
- $strasse = $warenkorb['strasse'];
- $land = $warenkorb['land'];
- $plz = $warenkorb['plz'];
- $ort = $warenkorb['ort'];
- $email = $warenkorb['email'];
- $telefon = $warenkorb['telefon'];
- $telefax = $warenkorb['telefax'];
- $ustid = $warenkorb['ustid'];
- $partner = $warenkorb['affiliate_ref'];
-
- // denn fall das es kunde 1:1 schon gibt = alte Kundennummer verwenden kommt vor allem vor, wenn ein Kunde an einem Tag oefters bestellt hat
- // $adresse = $this->app->erp->KundeAnlegen($typ,$name,$abteilung,
- // $unterabteilung,$ansprechpartner,$adresszusatz,$strasse,$land,$plz,$ort,$email,$telefon,$telefax,$ustid,$partner,$projekt);
- if(!empty($warenkorb['kundennummer'])){
- $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='{$warenkorb['kundennummer']}' $adresseprojekt AND geloescht!=1 LIMIT 1");
- }
- if(empty($adresse)){
- $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE email='{$warenkorb['email']}' and email <> '' $adresseprojekt AND geloescht!=1 LIMIT 1");
- }
-
- if($adresse<=0) {
- $adresse = $this->app->erp->KundeAnlegen($typ,$name,$abteilung,
- $unterabteilung,$ansprechpartner,$adresszusatz,$strasse,$land,$plz,$ort,$email,$telefon,$telefax,$ustid,$partner,$projekt);
- $warenkorb['customer_created'] = true;
- if(!empty($warenkorb['bundesland']))
- {
- $this->app->DB->Update("UPDATE adresse SET bundesland = '".$this->app->DB->real_escape_string($warenkorb['bundesland'])."' WHERE id = '$adresse' LIMIT 1");
- }
-
- if(isset($warenkorb['kunde_sprache']))
- {
- if($warenkorb['kunde_sprache'] === 'englisch' || $warenkorb['kunde_sprache'] === 'english')
- {
- $this->app->DB->Update("UPDATE adresse SET sprache = 'englisch' WHERE id = '$adresse' LIMIT 1");
- }elseif($warenkorb['kunde_sprache'] === 'deutsch' || $warenkorb['kunde_sprache'] === 'german')
- {
- $this->app->DB->Update("UPDATE adresse SET sprache = 'deutsch' WHERE id = '$adresse' LIMIT 1");
- }elseif(method_exists($this->app->erp, 'GetAdressSprachen')){
- $sprachen = $this->app->erp->GetAdressSprachen();
- if(isset($sprachen[strtolower($warenkorb['kunde_sprache'])]))
- {
- $this->app->DB->Update("UPDATE adresse SET sprache = '".strtolower($warenkorb['kunde_sprache'])."' WHERE id = '$adresse' LIMIT 1");
- }
+ // denn fall das es kunde 1:1 schon gibt = alte Kundennummer verwenden kommt vor allem vor, wenn ein Kunde an einem Tag oefters bestellt hat
+ // $adresse = $this->app->erp->KundeAnlegen($typ,$name,$abteilung,
+ // $unterabteilung,$ansprechpartner,$adresszusatz,$strasse,$land,$plz,$ort,$email,$telefon,$telefax,$ustid,$partner,$projekt);
+ if (!empty($warenkorb['kundennummer'])) {
+ $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='{$warenkorb['kundennummer']}' $adresseprojekt AND geloescht!=1 LIMIT 1");
}
- }
- if($warenkorb['titel'] != ''){
- $this->app->DB->Update("UPDATE adresse SET titel = '".$this->app->DB->real_escape_string($warenkorb['titel'])."' WHERE id = '$adresse' LIMIT 1");
- }
- if(isset($warenkorb['ust_befreit']))
- {
- $this->app->DB->Update("UPDATE adresse SET ust_befreit = '".(int)$warenkorb['ust_befreit']."' WHERE id = '$adresse' LIMIT 1");
- }
- if($warenkorb['mobil'] != ''){
- $this->app->DB->Update("UPDATE adresse SET mobil = '".$this->app->DB->real_escape_string($warenkorb['mobil'])."' WHERE id = '$adresse' LIMIT 1");
- }
- if(!empty($warenkorb['geburtstag'])){
- $query = sprintf("UPDATE `adresse` SET `geburtstag` = '%s' WHERE `id` = %d",
- $this->app->DB->real_escape_string($warenkorb['geburtstag']),
- $adresse);
- $this->app->DB->Update($query);
- }
- $kundenGruppen = $this->app->DB->SelectArr("SELECT gruppeid,type FROM shopexport_kundengruppen WHERE shopid=$shopid AND aktiv=1 AND apply_to_new_customers=1 AND (projekt=0 OR projekt='$projekt')");
- if(!empty($kundenGruppen)){
- foreach ($kundenGruppen as $gruppe){
- $this->app->erp->AddRolleZuAdresse($adresse, $gruppe['type'], 'von', 'Gruppe', $gruppe['gruppeid']);
- }
- }
- if(isset($warenkorb['kundengruppe'])){
- $this->shopimportAdresseGruppenMapping($warenkorb['kundengruppe'],$adresse,$shopid,$projekt);
- }
- if($shopexportArr['vertrieb']) {
- $this->app->DB->Update(
- sprintf(
- 'UPDATE adresse SET vertrieb = %d WHERE id = %d AND geloescht <> 1 AND vertrieb = 0',
- $shopexportArr['vertrieb'], $adresse
- )
- );
- }
- $this->app->DB->Update(
- sprintf(
- 'UPDATE adresse SET fromshop = %d WHERE fromshop = 0 AND id = %d',
- $shopexportArr['id'], $adresse
- )
- );
- } else {
- // Update + protokoll
- if(!$this->app->DB->Select("SELECT adressennichtueberschreiben FROM shopexport WHERE id = '$shopid' LIMIT 1"))
- {
- $this->app->erp->KundeUpdate($adresse,$typ,$name,$abteilung,
- $unterabteilung,$ansprechpartner,$adresszusatz,$strasse,$land,$plz,$ort,$email,$telefon,$telefax,$ustid,$partner,$projekt);
- if(!empty($warenkorb['bundesland']))
- {
- $this->app->DB->Update("UPDATE adresse SET bundesland = '".$this->app->DB->real_escape_string($warenkorb['bundesland'])."' WHERE id = '$adresse' LIMIT 1");
+ if (empty($adresse)) {
+ $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE email='{$warenkorb['email']}' and email <> '' $adresseprojekt AND geloescht!=1 LIMIT 1");
}
- }
- }
- // abweichende lieferadresse gleich angelegen?
- if(strlen($warenkorb['lieferadresse_ansprechpartner'])>3)
- {
- $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresszusatz,adresse) VALUES
+
+ if ($adresse <= 0) {
+ $adresse = $this->app->erp->KundeAnlegen($typ, $name, $abteilung,
+ $unterabteilung, $ansprechpartner, $adresszusatz, $strasse, $land, $plz, $ort, $email, $telefon, $telefax, $ustid, $partner, $projekt);
+ $warenkorb['customer_created'] = true;
+ if (!empty($warenkorb['bundesland'])) {
+ $this->app->DB->Update("UPDATE adresse SET bundesland = '" . $this->app->DB->real_escape_string($warenkorb['bundesland']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+
+ if (isset($warenkorb['kunde_sprache'])) {
+ if ($warenkorb['kunde_sprache'] === 'englisch' || $warenkorb['kunde_sprache'] === 'english') {
+ $this->app->DB->Update("UPDATE adresse SET sprache = 'englisch' WHERE id = '$adresse' LIMIT 1");
+ } elseif ($warenkorb['kunde_sprache'] === 'deutsch' || $warenkorb['kunde_sprache'] === 'german') {
+ $this->app->DB->Update("UPDATE adresse SET sprache = 'deutsch' WHERE id = '$adresse' LIMIT 1");
+ } elseif (method_exists($this->app->erp, 'GetAdressSprachen')) {
+ $sprachen = $this->app->erp->GetAdressSprachen();
+ if (isset($sprachen[strtolower($warenkorb['kunde_sprache'])])) {
+ $this->app->DB->Update("UPDATE adresse SET sprache = '" . strtolower($warenkorb['kunde_sprache']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ }
+ }
+ if ($warenkorb['titel'] != '') {
+ $this->app->DB->Update("UPDATE adresse SET titel = '" . $this->app->DB->real_escape_string($warenkorb['titel']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ if (isset($warenkorb['ust_befreit'])) {
+ $this->app->DB->Update("UPDATE adresse SET ust_befreit = '" . (int) $warenkorb['ust_befreit'] . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ if ($warenkorb['mobil'] != '') {
+ $this->app->DB->Update("UPDATE adresse SET mobil = '" . $this->app->DB->real_escape_string($warenkorb['mobil']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ if (!empty($warenkorb['geburtstag'])) {
+ $query = sprintf("UPDATE `adresse` SET `geburtstag` = '%s' WHERE `id` = %d",
+ $this->app->DB->real_escape_string($warenkorb['geburtstag']),
+ $adresse);
+ $this->app->DB->Update($query);
+ }
+ $kundenGruppen = $this->app->DB->SelectArr("SELECT gruppeid,type FROM shopexport_kundengruppen WHERE shopid=$shopid AND aktiv=1 AND apply_to_new_customers=1 AND (projekt=0 OR projekt='$projekt')");
+ if (!empty($kundenGruppen)) {
+ foreach ($kundenGruppen as $gruppe) {
+ $this->app->erp->AddRolleZuAdresse($adresse, $gruppe['type'], 'von', 'Gruppe', $gruppe['gruppeid']);
+ }
+ }
+
+ if (isset($warenkorb['kundengruppe'])) {
+ $this->shopimportAdresseGruppenMapping($warenkorb['kundengruppe'], $adresse, $shopid, $projekt);
+ }
+ if ($shopexportArr['vertrieb']) {
+ $this->app->DB->Update(
+ sprintf(
+ 'UPDATE adresse SET vertrieb = %d WHERE id = %d AND geloescht <> 1 AND vertrieb = 0',
+ $shopexportArr['vertrieb'], $adresse
+ )
+ );
+ }
+ $this->app->DB->Update(
+ sprintf(
+ 'UPDATE adresse SET fromshop = %d WHERE fromshop = 0 AND id = %d',
+ $shopexportArr['id'], $adresse
+ )
+ );
+ } else {
+ // Update + protokoll
+ if (!$this->app->DB->Select("SELECT adressennichtueberschreiben FROM shopexport WHERE id = '$shopid' LIMIT 1")) {
+ $this->app->erp->KundeUpdate($adresse, $typ, $name, $abteilung,
+ $unterabteilung, $ansprechpartner, $adresszusatz, $strasse, $land, $plz, $ort, $email, $telefon, $telefax, $ustid, $partner, $projekt);
+ if (!empty($warenkorb['bundesland'])) {
+ $this->app->DB->Update("UPDATE adresse SET bundesland = '" . $this->app->DB->real_escape_string($warenkorb['bundesland']) . "' WHERE id = '$adresse' LIMIT 1");
+ }
+ }
+ }
+ // abweichende lieferadresse gleich angelegen?
+ if (strlen($warenkorb['lieferadresse_ansprechpartner']) > 3) {
+ $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresszusatz,adresse) VALUES
('','{$warenkorb['lieferadresse_ansprechpartner']}',
'{$warenkorb['lieferadresse_abteilung']}','{$warenkorb['lieferadresse_unterabteilung']}','{$warenkorb['lieferadresse_land']}',
'{$warenkorb['lieferadresse_strasse']}','{$warenkorb['lieferadresse_ort']}','{$warenkorb['lieferadresse_plz']}','{$warenkorb['lieferadresse_adresszusatz']}','$adresse')");
- }
+ }
- if(strlen($warenkorb['lieferadresse_name'])>3 && $warenkorb['lieferadresse_ansprechpartner']=='')
- {
- $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresszusatz,adresse) VALUES
+ if (strlen($warenkorb['lieferadresse_name']) > 3 && $warenkorb['lieferadresse_ansprechpartner'] == '') {
+ $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresszusatz,adresse) VALUES
('','{$warenkorb['lieferadresse_name']}',
'{$warenkorb['lieferadresse_abteilung']}','{$warenkorb['lieferadresse_unterabteilung']}','{$warenkorb['lieferadresse_land']}',
'{$warenkorb['lieferadresse_strasse']}','{$warenkorb['lieferadresse_ort']}','{$warenkorb['lieferadresse_plz']}','{$warenkorb['lieferadresse_adresszusatz']}','$adresse')");
+ }
}
- }
- //print_r($warenkorb);
- //echo "
Ende";
- //exit;
- //imort auf kunde
- //$bekanntezahlungsweisen = array('rechnung','vorkasse','nachnahme','kreditkarte','einzugsermaechtigung','bar','paypal','amazon','amazon_bestellung','sofortueberweisung','amazoncba','secupay','lastschrift');
+ //print_r($warenkorb);
+ //echo "
Ende";
+ //exit;
+ //imort auf kunde
+ //$bekanntezahlungsweisen = array('rechnung','vorkasse','nachnahme','kreditkarte','einzugsermaechtigung','bar','paypal','amazon','amazon_bestellung','sofortueberweisung','amazoncba','secupay','lastschrift');
- $bekanntezahlungsweisen = $this->app->erp->GetZahlungsweise();
+ $bekanntezahlungsweisen = $this->app->erp->GetZahlungsweise();
- $tmpauftragid = $this->app->erp->ImportAuftrag($adresse,$warenkorb,$projekt,$shopid);
- $doctype = 'auftrag';
- if($this->app->DB->Select("SELECT angeboteanlegen FROM shopexport WHERE id = '$shopid' LIMIT 1"))
- {
- $doctype = 'angebot';
- }
+ $import_result = $this->app->erp->ImportAuftrag($adresse, $warenkorb, $projekt, $shopid);
- if(isset($warenkorb['doctype']) && $warenkorb['doctype']==='angebot'){
- $doctype = 'angebot';
- }
+ if ($import_result['status']) {
+ $tmpauftragid = $import_result['auftragid'];
+ $success_import = true;
- $warenkorb['zahlungsweise'] = $this->app->DB->Select("SELECT zahlungsweise FROM $doctype WHERE id = '$tmpauftragid' LIMIT 1");
- if($warenkorb['zahlungsweise'] != ''){
- if(!isset($bekanntezahlungsweisen[$warenkorb['zahlungsweise']])){
- if(!$unbekanntezahlungsweisen || !isset($unbekanntezahlungsweisen[strtolower($warenkorb['zahlungsweise'])])){
- $unbekanntezahlungsweisen[strtolower($warenkorb['zahlungsweise'])] = false;
- }
- $tmp = array();
- $tmp['bestellnummer'] = $warenkorb['onlinebestellnummer'];
- $unbekanntezahlungsweisen[strtolower($warenkorb['zahlungsweise'])][] = $tmp;
+ $doctype = 'auftrag';
+ if ($this->app->DB->Select("SELECT angeboteanlegen FROM shopexport WHERE id = '$shopid' LIMIT 1")) {
+ $doctype = 'angebot';
+ }
+
+ if (isset($warenkorb['doctype']) && $warenkorb['doctype'] === 'angebot') {
+ $doctype = 'angebot';
+ }
+
+ $warenkorb['zahlungsweise'] = $this->app->DB->Select("SELECT zahlungsweise FROM $doctype WHERE id = '$tmpauftragid' LIMIT 1");
+ if ($warenkorb['zahlungsweise'] != '') {
+ if (!isset($bekanntezahlungsweisen[$warenkorb['zahlungsweise']])) {
+ if (!$unbekanntezahlungsweisen || !isset($unbekanntezahlungsweisen[strtolower($warenkorb['zahlungsweise'])])) {
+ $unbekanntezahlungsweisen[strtolower($warenkorb['zahlungsweise'])] = false;
+ }
+ $tmp = array();
+ $tmp['bestellnummer'] = $warenkorb['onlinebestellnummer'];
+ $unbekanntezahlungsweisen[strtolower($warenkorb['zahlungsweise'])][] = $tmp;
+ }
+ }
+
+ if ($shopimportid && $tmpauftragid) {
+ $this->app->DB->Update("UPDATE shopimport_auftraege SET imported='1' WHERE id='$shopimportid' LIMIT 1");
+ }
+ if ($shopimportid) {
+ $shopextid = $this->app->DB->real_escape_string($this->app->DB->Select("SELECT extid FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1"));
+ }
+ if ($shopextid) {
+ $this->app->DB->Select("UPDATE $doctype SET shopextid='$shopextid' WHERE id='$tmpauftragid' LIMIT 1");
+ }
+ $this->app->erp->RunHook('Shopimportwarenkorb', 4, $doctype, $tmpauftragid, $shopid, $warenkorb);
+ $this->app->erp->RunHook('Shopimport', 3, $doctype, $tmpauftragid, $shopid);
+ $adresse = '';
+ } else {
+ // Error...
}
- }
-
- if($shopimportid)
- {
- $this->app->DB->Update("UPDATE shopimport_auftraege SET imported='1' WHERE id='$shopimportid' LIMIT 1");
- }
- if($shopimportid)
- {
- $shopextid = $this->app->DB->real_escape_string($this->app->DB->Select("SELECT extid FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1"));
- }
- if($shopextid)
- {
- $this->app->DB->Select("UPDATE $doctype SET shopextid='$shopextid' WHERE id='$tmpauftragid' LIMIT 1");
- }
- $this->app->erp->RunHook('Shopimportwarenkorb', 4, $doctype, $tmpauftragid, $shopid, $warenkorb);
- $this->app->erp->RunHook('Shopimport', 3, $doctype, $tmpauftragid, $shopid);
-
- $adresse ='';
- $sucess_import++;
-
- return $sucess_import;
- }
-
- /**
- * @param String $gruppenBezeichnung im Shop
- * @param int $adresseId
- * @param int $shopId
- * @param int $projektId
- *
- * @return string
- */
- private function shopimportAdresseGruppenMapping($gruppenBezeichnung, $adresseId, $shopId, $projektId){
- $kundenGruppen = $this->getShopimportKundenGruppenZuordnungen($gruppenBezeichnung, $shopId, $projektId);
- if(empty($kundenGruppen)) {
- return '';
- }
- foreach ($kundenGruppen as $gruppe => $rolle){
- $this->app->erp->AddRolleZuAdresse($adresseId, $rolle, 'von', 'Gruppe', $gruppe);
+ return $success_import;
}
- return '';
- }
+ /**
+ * @param String $gruppenBezeichnung im Shop
+ * @param int $adresseId
+ * @param int $shopId
+ * @param int $projektId
+ *
+ * @return string
+ */
+ private function shopimportAdresseGruppenMapping($gruppenBezeichnung, $adresseId, $shopId, $projektId) {
+ $kundenGruppen = $this->getShopimportKundenGruppenZuordnungen($gruppenBezeichnung, $shopId, $projektId);
+ if (empty($kundenGruppen)) {
+ return '';
+ }
+ foreach ($kundenGruppen as $gruppe => $rolle) {
+ $this->app->erp->AddRolleZuAdresse($adresseId, $rolle, 'von', 'Gruppe', $gruppe);
+ }
- /**
- * @param String $gruppenBezeichnung im Shop
- * @param int $shopId
- * @param int $projektId
- *
- * @return array
- */
- private function getShopimportKundenGruppenZuordnungen($gruppenBezeichnung, $shopId, $projektId){
- $gefundeneGruppen = $this->app->DB->SelectArr("SELECT gruppeid, type FROM shopexport_kundengruppen WHERE shopid='$shopId' AND extgruppename='$gruppenBezeichnung' AND projekt='$projektId'");
-
- if(empty($gefundeneGruppen)){
- //Fallback, falls kein projektspezifisches Mapping gefunden
- $gefundeneGruppen = $this->app->DB->SelectArr("SELECT gruppeid, type FROM shopexport_kundengruppen WHERE shopid='$shopId' AND extgruppename='$gruppenBezeichnung' AND projekt='0'");
+ return '';
}
- if(empty($gefundeneGruppen)) {
- return [];
+ /**
+ * @param String $gruppenBezeichnung im Shop
+ * @param int $shopId
+ * @param int $projektId
+ *
+ * @return array
+ */
+ private function getShopimportKundenGruppenZuordnungen($gruppenBezeichnung, $shopId, $projektId) {
+ $gefundeneGruppen = $this->app->DB->SelectArr("SELECT gruppeid, type FROM shopexport_kundengruppen WHERE shopid='$shopId' AND extgruppename='$gruppenBezeichnung' AND projekt='$projektId'");
+
+ if (empty($gefundeneGruppen)) {
+ //Fallback, falls kein projektspezifisches Mapping gefunden
+ $gefundeneGruppen = $this->app->DB->SelectArr("SELECT gruppeid, type FROM shopexport_kundengruppen WHERE shopid='$shopId' AND extgruppename='$gruppenBezeichnung' AND projekt='0'");
+ }
+
+ if (empty($gefundeneGruppen)) {
+ return [];
+ }
+
+ $kundenGruppen = [];
+ foreach ($gefundeneGruppen as $gruppe) {
+ $kundenGruppen[$gruppe['gruppeid']] = $gruppe['type'];
+ }
+
+ return $kundenGruppen;
}
- $kundenGruppen = [];
- foreach ($gefundeneGruppen as $gruppe){
- $kundenGruppen[$gruppe['gruppeid']] = $gruppe['type'];
+ /**
+ * @param $shopImportedOrderId
+ *
+ * @return bool
+ */
+ public function setShopImportedOrderTrash($shopImportedOrderId) {
+ $this->app->DB->Update(
+ sprintf(
+ 'UPDATE shopimport_auftraege SET trash=1 WHERE id= %d LIMIT 1',
+ (int) $shopImportedOrderId
+ )
+ );
+ return $this->app->DB->affected_rows() > 0;
}
- return $kundenGruppen;
- }
+ public function importShopOrder($shopImportedOrderId, $utf8coding, $customerNumber, $custumerNumberImported, &$unknownPaymentTypes) {
+ $shopImportedOrder = $this->app->DB->SelectRow(
+ sprintf(
+ 'SELECT * FROM shopimport_auftraege WHERE imported=0 AND trash=0 AND id=%d LIMIT 1',
+ $shopImportedOrderId
+ )
+ );
+ if (empty($shopImportedOrder)) {
+ return ['success' => 0];
+ }
- /**
- * @param $shopImportedOrderId
- *
- * @return bool
- */
- public function setShopImportedOrderTrash($shopImportedOrderId) {
- $this->app->DB->Update(
- sprintf(
- 'UPDATE shopimport_auftraege SET trash=1 WHERE id= %d LIMIT 1',
- (int)$shopImportedOrderId
- )
- );
- return $this->app->DB->affected_rows() > 0;
- }
+ if (isset($shopImportedOrder['jsonencoded']) && $shopImportedOrder['jsonencoded']) {
+ $shopOrder = json_decode(base64_decode($shopImportedOrder['warenkorb']), true);
+ } else {
+ $shopOrder = unserialize(base64_decode($shopImportedOrder['warenkorb']));
+ }
- public function importShopOrder($shopImportedOrderId, $utf8coding, $customerNumber, $custumerNumberImported, &$unknownPaymentTypes) {
- $shopImportedOrder = $this->app->DB->SelectRow(
- sprintf(
- 'SELECT * FROM shopimport_auftraege WHERE imported=0 AND trash=0 AND id=%d LIMIT 1',
- $shopImportedOrderId
- )
- );
- if(empty($shopImportedOrder)) {
- return ['success' => 0];
+ //alle leerzeichen am amfang und ende entfernen + umbrueche komplett entfernen
+ if ($utf8coding == '1') {
+ $shopOrderCleaned = $this->app->erp->CleanDataBeforImportUTF8($shopOrder, false);
+ } else {
+ $shopOrderCleaned = $this->app->erp->CleanDataBeforImport($shopOrder, false);
+ }
+ if ($shopOrderCleaned['name'] === '') {
+ $shopOrderCleaned['name'] = $shopOrderCleaned['ansprechpartner'];
+ $shopOrderCleaned['ansprechpartner'] = '';
+ }
+ if ($shopOrderCleaned['lieferadresse_name'] === '') {
+ $shopOrderCleaned['lieferadresse_name'] = $shopOrderCleaned['lieferadresse_ansprechpartner'];
+ $shopOrderCleaned['lieferadresse_ansprechpartner'] = '';
+ }
+
+ if ($shopOrderCleaned['name'] === '' && !empty($shopOrderCleaned['lieferadresse_name'])) {
+ $shopOrderCleaned['name'] = $shopOrderCleaned['lieferadresse_name'];
+ }
+
+ foreach ($shopOrderCleaned as $k => $v) {
+ if (!is_array($v)) {
+ $shopOrderCleaned[$k] = $this->app->erp->fixeUmlaute($v);
+ }
+ }
+ $umlautefehler = false;
+ if ((String) $shopOrder['name'] !== '' && (String) $shopOrderCleaned['name'] === '') {
+ $umlautefehler = true;
+ $this->app->erp->LogFile('Kodierungsfehler in shopimport_auftraege ' . $shopImportedOrderId);
+ }
+ $succes = $this->KundeAnlegenUpdate($shopImportedOrderId, '', $shopOrderCleaned, $customerNumber, $custumerNumberImported, $unknownPaymentTypes);
+
+ return ['codingerror' => $umlautefehler, 'success' => $succes];
}
- if(isset($shopImportedOrder['jsonencoded']) && $shopImportedOrder['jsonencoded'])
- {
- $shopOrder = json_decode(base64_decode($shopImportedOrder['warenkorb']), true);
- }else{
- $shopOrder = unserialize(base64_decode($shopImportedOrder['warenkorb']));
+ public function ShopimportView() {
+ $this->ShopimportImport(showonly: true);
}
- //alle leerzeichen am amfang und ende entfernen + umbrueche komplett entfernen
- if($utf8coding=='1')
- {
- $shopOrderCleaned = $this->app->erp->CleanDataBeforImportUTF8($shopOrder, false);
- } else {
- $shopOrderCleaned = $this->app->erp->CleanDataBeforImport($shopOrder, false);
- }
- if($shopOrderCleaned['name']===''){
- $shopOrderCleaned['name']=$shopOrderCleaned['ansprechpartner'];
- $shopOrderCleaned['ansprechpartner'] = '';
- }
- if($shopOrderCleaned['lieferadresse_name']==='')
- {
- $shopOrderCleaned['lieferadresse_name']=$shopOrderCleaned['lieferadresse_ansprechpartner'];
- $shopOrderCleaned['lieferadresse_ansprechpartner'] = '';
- }
-
- if($shopOrderCleaned['name']==='' && !empty($shopOrderCleaned['lieferadresse_name']))
- {
- $shopOrderCleaned['name'] = $shopOrderCleaned['lieferadresse_name'];
- }
-
- foreach($shopOrderCleaned as $k => $v)
- {
- if(!is_array($v)){
- $shopOrderCleaned[$k] = $this->app->erp->fixeUmlaute($v);
- }
- }
- $umlautefehler = false;
- if((String)$shopOrder['name'] !== '' && (String)$shopOrderCleaned['name'] === '')
- {
- $umlautefehler = true;
- $this->app->erp->LogFile('Kodierungsfehler in shopimport_auftraege '.$shopImportedOrderId);
- }
- $succes = $this->KundeAnlegenUpdate($shopImportedOrderId,'', $shopOrderCleaned, $customerNumber, $custumerNumberImported,$unknownPaymentTypes);
-
- return ['codingerror'=>$umlautefehler, 'success' => $succes];
- }
-
- public function ShopimportImport($id='', $count = 0, $returncount = false, $showonly = false)
- {
- $deletedRows = 0;
- if(!is_numeric($id) && $this->app->Secure->GetPOST('deletedouble')) {
- $id = (int)$this->app->Secure->GetGET('id');
- $this->app->DB->Update(
- sprintf(
- 'UPDATE shopimport_auftraege AS sa
+ public function ShopimportImport($id = '', $count = 0, $returncount = false, $showonly = false) {
+ $deletedRows = 0;
+ if (!is_numeric($id) && $this->app->Secure->GetPOST('deletedouble')) {
+ $showonly = true;
+ $id = (int) $this->app->Secure->GetGET('id');
+ $this->app->DB->Update(
+ sprintf(
+ 'UPDATE shopimport_auftraege AS sa
INNER JOIN auftrag a ON sa.bestellnummer = a.internet AND sa.shopid = a.shop
SET sa.trash = 1
WHERE IFNULL(a.internet,\'\') <> \'\' AND sa.trash = 0 AND sa.imported = 0 AND
(sa.shopid = %d OR %d = 0)',
- $id, $id
- )
- );
- $deletedRows = (int)$this->app->DB->affected_rows();
- $this->app->Tpl->Add('IMPORT','
Es wurden '.$deletedRows.' bereits importierte Datensätze entfernt.
');
- }
- $runningcronjob = $this->app->DB->Select("SELECT id FROM prozessstarter WHERE parameter = 'shopimport' AND aktiv=1 AND mutex = 1 AND UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(letzteausfuerhung) < 300 LIMIT 1");
- if($runningcronjob && !$showonly)
- {
- $this->app->Location->execute('index.php?module=shopimport&action=list');
- }
- if(!is_numeric($id)){
- $id = $this->app->Secure->GetGET('id');
- }
-
- $shopexportarr = $this->app->DB->SelectRow("SELECT * FROM shopexport WHERE id='$id'");
- $projekt = $shopexportarr['projekt'];//$this->app->DB->Select("SELECT projekt FROM shopexport WHERE id='$id'");
- $demomodus = $shopexportarr['demomodus'];//$this->app->DB->Select("SELECT demomodus FROM shopexport WHERE id='$id'");
- $einzelsync = $shopexportarr['einzelsync'];//$this->app->DB->Select("SELECT einzelsync FROM shopexport WHERE id='$id'");
- $utf8codierung = $shopexportarr['utf8codierung'];//$this->app->DB->Select("SELECT utf8codierung FROM shopexport WHERE id='$id'");
-
- if(!$returncount)
- {
- $this->app->erp->Headlines('Shopimport');
- $this->app->erp->MenuEintrag('index.php?module=shopimport&action=list','Zurück zur Übersicht');
- }
- //name, strasse, ort, plz und kundenummer, emailadresse oder bestellung kam von login account ==> Kunde aus DB verwenden
- //ACHTUNG Lieferadresse immer aus Auftrag!!! aber Lieferadresse extra bei Kunden anlegen
- if($this->app->Secure->GetPOST('submit')!='')
- {
- $auftraege = $this->app->Secure->GetPOST('auftrag');
- $kundennummer = $this->app->Secure->GetPOST('kundennummer');
- $import= $this->app->Secure->GetPOST('import');
- $import_kundennummer= $this->app->Secure->GetPOST('import_kundennummer');
-
- $sucess_import = 0;
- $insgs_import = 0;
- $unbekanntezahlungsweisen = null;
- $cauftraege = $auftraege?count($auftraege):0;
- for($i=0;$i<$cauftraege;$i++)
- {
- $adresse = '';
- $shopimportid = $auftraege[$i];
- $shopid = $this->app->DB->Select("SELECT shopid FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1");
- if($shopid)
- {
- $demomodus = $this->app->DB->Select("SELECT demomodus FROM shopexport WHERE id='$shopid'");
- $einzelsync = $this->app->DB->Select("SELECT einzelsync FROM shopexport WHERE id='$shopid'");
- $utf8codierung = $this->app->DB->Select("SELECT utf8codierung FROM shopexport WHERE id='$shopid'");
- }
- $projekt = $this->app->DB->Select("SELECT projekt FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1");
- if($import[$shopimportid]==='warten')
- {
-
- }
- else if($import[$shopimportid]==='muell')
- {
- $this->setShopImportedOrderTrash($shopimportid);
- } else if($import[$shopimportid]==='import') {
-
- $res = $this->importShopOrder($shopimportid, $utf8codierung, $kundennummer[$shopimportid], $import_kundennummer[$shopimportid], $unbekanntezahlungsweisen);
- if($res['codingerror']) {
- $umlautefehler = true;
- }
- if($res['success']) {
- $sucess_import += $res['success'];
- }
- $insgs_import++;
- }
- } // ende for
-
-
- if($unbekanntezahlungsweisen)
- {
- $meldung = '';
- foreach($unbekanntezahlungsweisen as $k => $v)
- {
- $meldung .= 'Unbekannte Zahlungsart: '.$k.' in Bestellung(en): ';
- $first = true;
- foreach($v as $k2 => $v2)
- {
- if(!$first)
- {
- $meldung .= ', ';
- }
- $first = false;
- $meldung .= $v2['bestellnummer'];
-
- }
- $meldung .= " \r\n";
-
- }
-
- if(isset($this->app->User) && method_exists($this->app->User,'GetID') && $this->app->User->GetID())
- {
- $this->app->erp->EventMitSystemLog($this->app->User->GetID(), $meldung, -1,'', 'warning', 1);
- }
- }
- if(!empty($umlautefehler))
- {
- $msg = $this->app->erp->base64_url_encode("
$sucess_import".($sucess_import != $insgs_import?" von $insgs_import ":'')." Aufträge importiert. Aufträge mit Kodierungsprobleme. Bitte prüfen Sie sie UTF8-Einstellung in der Shopschnittstelle!
$sucess_import".($sucess_import != $insgs_import?" von $insgs_import ":'')." Aufträge importiert!
");
- }
- $this->app->Location->execute('index.php?module=shopimport&action=list&msg='.$msg);
- }
-
-
- if(!$showonly && $id)
- {
- try {
- $pageContents = $this->app->remote->RemoteConnection($id);
- }catch(Exception $e){
- $pageContents = $e->getMessage();
- }
- if($pageContents==='success')
- {
- $shopexportarr = $this->app->DB->SelectRow("SELECT * FROM shopexport WHERE id = '$id' LIMIT 1");
- $holealle = $shopexportarr['holealle'];//$this->app->DB->Select("SELECT holealle FROM shopexport WHERE id = '$id' LIMIT 1");
- $statusaendern = $shopexportarr['nummersyncstatusaendern'];//$this->app->DB->Select("SELECT nummersyncstatusaendern FROM shopexport WHERE id = '$id' LIMIT 1");
- $auftragabgleich = $shopexportarr['auftragabgleich'];//$this->app->DB->Select("SELECT auftragabgleich FROM shopexport WHERE id = '$id' LIMIT 1");
- $zeitraum = array('datumvon'=>$shopexportarr['datumvon'], 'datumbis'=>$shopexportarr['datumbis'],'tmpdatumvon'=>$shopexportarr['tmpdatumvon'], 'tmpdatumbis'=>$shopexportarr['tmpdatumbis'], 'anzgleichzeitig'=>$shopexportarr['anzgleichzeitig']);
- //$this->app->DB->SelectArr("SELECT datumvon, datumbis,tmpdatumvon, tmpdatumbis, anzgleichzeitig FROM shopexport WHERE id = '$id' LIMIT 1");
- /*if(!empty($zeitraum))
- {
- $zeitraum = reset($zeitraum);
- }*/
- $anzgleichzeitig = 1;
- if(isset($zeitraum['anzgleichzeitig'])){
- $anzgleichzeitig = (int)$zeitraum['anzgleichzeitig'];
- }
-
- if($anzgleichzeitig > 1)
- {
- $result = $this->app->remote->RemoteGetAuftrag($id);
- if(!empty($result) && is_array($result) && isset($result[0]))
- {
- $maxtime = false;
- $mintime = false;
- $gesamtanzahl = (!empty($result)?count($result):0);
- for($i = 0; $i < $gesamtanzahl; $i++)
- {
- $projekt = $this->app->DB->Select("SELECT projekt FROM shopexport WHERE id = '$id' LIMIT 1");
- $auftrag = $result[$i]['id'];
- if(isset($result[$i]['warenkorbjson']))
- {
- $isjson = true;
- $tmpwarenkorb = json_decode(base64_decode($result[$i]['warenkorbjson']), true);
- }else{
- $isjson = false;
- $tmpwarenkorb = unserialize(base64_decode($result[$i]['warenkorb']));
- }
- if(!empty($tmpwarenkorb['projekt']) && $this->app->DB->Select("SELECT id FROM projekt WHERE id = '".(int)$tmpwarenkorb['projekt']."' LIMIT 1"))
- {
- $projekt = (int)$tmpwarenkorb['projekt'];
- }
- if(!empty($tmpwarenkorb['zeitstempel']))
- {
- $time = strtotime($tmpwarenkorb['zeitstempel']);
- if($time < 0)
- {
- $time = 0;
- }
- if($maxtime === false)
- {
- $maxtime = $time;
- }
- if($mintime === false)
- {
- $mintime = $time;
- }
- if($time > $maxtime)
- {
- $maxtime = $time;
- }
- if($time < $mintime)
- {
- $mintime = $time;
- }
- }
- $onlinebestellnummer = $tmpwarenkorb['onlinebestellnummer'];
- if(!empty($tmpwarenkorb['useorderid']) ||
- (!is_numeric($onlinebestellnummer) && trim((String)$onlinebestellnummer) !== ''))
- {
- $onlinebestellnummer = $tmpwarenkorb['auftrag'];
- }
-
- if($holealle && $onlinebestellnummer)
- {
- $neue_nummer = (int)$onlinebestellnummer+1;
- $this->app->DB->Update("UPDATE shopexport SET ab_nummer = '$neue_nummer' WHERE id = '$id'");
- }
- $sessionid = isset($result[$i]['sessionid'])?$result[$i]['sessionid']:'';
- if($isjson)
- {
- $warenkorb = $result[$i]['warenkorbjson'];
- }else{
- $warenkorb = $result[$i]['warenkorb'];
- }
- $logdatei = isset($result[$i]['logdatei'])?$result[$i]['logdatei']:null;
- if(empty($logdatei))
- {
- $logdatei = date('Y-m-d H:i:s');
- }
- if(isset($tmpwarenkorb['subshop']) && $tmpwarenkorb['subshop'])
- {
- $subshopprojekt = $this->app->DB->Select("SELECT projekt FROM shopexport_subshop WHERE shop = '$id' AND aktiv = 1 AND subshopkennung = '".$this->app->DB->real_escape_string($tmpwarenkorb['subshop'])."' LIMIT 1");
- if($subshopprojekt)
- {
- $projekt = $subshopprojekt;
- }
- }
- $letzteonlinebestellnummer = $tmpwarenkorb['onlinebestellnummer'];
- unset($tmpwarenkorb);
-
- //globalerauftragsnummernkreis
- $standardcheck = true;
- $modulename = $this->app->DB->Select(
- sprintf(
- "SELECT modulename FROM shopexport WHERE id = %d AND modulename <> '' AND (shoptyp = 'intern')",
- $id
- )
- );
- $shopIds = [$id];
- $otherModules= empty($modulename)?null:
- $this->app->DB->SelectFirstCols(
- sprintf(
- "SELECT id
- FROM shopexport
- WHERE modulename = '%s' AND id <> %d",
- $this->app->DB->real_escape_string($modulename), $id
- )
- );
- if(!empty($otherModules) && $this->app->erp->ModulVorhanden($modulename)) {
- $obj = $this->app->erp->LoadModul($modulename);
- if(!empty($obj) && method_exists($obj, 'EinstellungenStruktur')){
- $konfiguration = $obj->EinstellungenStruktur();
- if($konfiguration && isset($konfiguration['globalerauftragsnummernkreis']) && $konfiguration['globalerauftragsnummernkreis']) {
- $shopIds = array_merge([$id], $otherModules);
- $standardcheck = false;
- /*$checkdoppeltimported = $this->app->DB->Select("SELECT id FROM shopimport_auftraege WHERE extid = '".$this->app->DB->real_escape_string($auftrag)."' and ((modulename = '".$this->app->DB->real_escape_string($modulename)."' AND shoptyp = 'intern') OR shopid = '$id') and warenkorb = '".$this->app->DB->real_escape_string($warenkorb)."' AND trash = 0
- AND (imported = 0 OR (imported = 1 AND DATE_SUB(NOW(),INTERVAL 10 MINUTE)>logdatei ))
- LIMIT 1");*/
- /*$checkdoppeltimported = $this->app->DB->Select("SELECT id FROM shopimport_auftraege WHERE extid = '".$this->app->DB->real_escape_string($auftrag)."' and ((modulename = '".$this->app->DB->real_escape_string($modulename)."' AND shoptyp = 'intern') OR shopid = '$id') AND trash = 0
- AND (imported = 0 OR (imported = 1 AND DATE_SUB(NOW(),INTERVAL 10 MINUTE)>logdatei ))
- LIMIT 1");*/
- }
- }
- }
- $checkdoppeltimported = $this->app->DB->Select(
- sprintf(
- "SELECT id
- FROM shopimport_auftraege
- WHERE extid = '%s' and shopid IN (%s) AND trash = 0
- AND (imported = 0 OR (imported = 1 AND DATE_SUB(NOW(),INTERVAL 10 MINUTE)>logdatei ))
- LIMIT 1",
- $this->app->DB->real_escape_string($auftrag), implode(',', $shopIds)
- )
- );
- /*if($standardcheck)
- {*/
- /*$checkdoppeltimported = $this->app->DB->Select("SELECT id FROM shopimport_auftraege WHERE extid = '".$this->app->DB->real_escape_string($auftrag)."' and shopid = '$id' and warenkorb = '".$this->app->DB->real_escape_string($warenkorb)."' AND trash = 0
- AND (imported = 0 OR (imported = 1 AND DATE_SUB(NOW(),INTERVAL 10 MINUTE)>logdatei ))
- LIMIT 1");*/
- /*$checkdoppeltimported = $this->app->DB->Select("SELECT id FROM shopimport_auftraege WHERE extid = '".$this->app->DB->real_escape_string($auftrag)."' and shopid = '$id' AND trash = 0
- AND (imported = 0 OR (imported = 1 AND DATE_SUB(NOW(),INTERVAL 10 MINUTE)>logdatei ))
- LIMIT 1");
- }*/
- $insid = null;
- if(empty($checkdoppeltimported))
- {
- $this->app->DB->Insert("INSERT INTO shopimport_auftraege (id,extid,sessionid,warenkorb,imported,projekt,bearbeiter,logdatei)
- VALUES('','".$this->app->DB->real_escape_string($auftrag)."','".$this->app->DB->real_escape_string($sessionid)."','".$this->app->DB->real_escape_string($warenkorb)."','0','$projekt','".$this->app->DB->real_escape_string($this->app->User->GetName())."','".$this->app->DB->real_escape_string($logdatei)."')");
- $insid = $this->app->DB->GetInsertID();
- if($insid)
- {
- if($isjson)
- {
- $this->app->DB->Update("UPDATE shopimport_auftraege set jsonencoded = 1 where id = '$insid'");
- }
- $this->app->DB->Update("UPDATE shopimport_auftraege set shopid = '$id' where id = '$insid'");
- $this->app->DB->Update("UPDATE shopimport_auftraege set bestellnummer = '".$this->app->DB->real_escape_string($letzteonlinebestellnummer)."' where id = '$insid'");
- }
- }
- if($demomodus!='1')
- {
- $this->app->remote->RemoteDeleteAuftrag($id,$auftrag,$letzteonlinebestellnummer);
- }
- elseif($demomodus == '1')
- {
- break;
- }
- unset($letzteonlinebestellnummer);
-
- }
- if(!$demomodus)
- {
- if(empty($maxtime))
- {
- $maxtime = strtotime(date('Y-m-d H:i:s'));
- }
- $datumvon = strtotime($zeitraum['datumvon']);
- $datumbis = strtotime($zeitraum['datumbis']);
- $tmpdatumvon = strtotime($zeitraum['tmpdatumvon']);
- $tmpdatumbis = strtotime($zeitraum['tmpdatumbis']);
- if($datumvon < 0){
- $datumvon = 0;
- }
- if($datumbis < 0){
- $datumbis = 0;
- }
- if($tmpdatumvon < 0){
- $tmpdatumvon = 0;
- }
- if($tmpdatumbis < 0)
- {
- $tmpdatumbis = 0;
- }
- $this->app->DB->Update("UPDATE shopexport SET datumvon = '".date('Y-m-d H:i:s',$maxtime)."', tmpdatumbis = '0000-00-00' WHERE id = '$id' LIMIT 1");
- }
- }else{
- if(!$demomodus)
- {
- if(is_array($result) && !empty($result['zeitstempel']))
- {
- $this->app->DB->Update("UPDATE shopexport SET datumvon = '".date('Y-m-d H:i:s',strtotime($result['zeitstempel']))."', tmpdatumbis = '0000-00-00' WHERE id = '$id' AND datumvon < '".date('Y-m-d H:i:s',strtotime($result['zeitstempel']))."' LIMIT 1");
- }
- if(empty($maxtime))
- {
- $maxtime = strtotime(date('Y-m-d H:i:s'));
- }
- $datumvon = strtotime($zeitraum['datumvon']);
- $datumbis = strtotime($zeitraum['datumbis']);
- $tmpdatumvon = strtotime($zeitraum['tmpdatumvon']);
- $tmpdatumbis = strtotime($zeitraum['tmpdatumbis']);
- if($datumvon < 0){
- $datumvon = 0;
- }
- if($datumbis < 0){
- $datumbis = 0;
- }
- if($tmpdatumvon < 0){
- $tmpdatumvon = 0;
- }
- if($tmpdatumbis < 0){
- $tmpdatumbis = 0;
- }
- if($tmpdatumbis)
- {
- $this->app->DB->Update("UPDATE shopexport SET tmpdatumbis = '0000-00-00' WHERE id = '$id' LIMIT 1");
- }
- }
- }
- }else{
- $gesamtanzahl = $this->app->remote->RemoteGetAuftraegeAnzahl($id);
- $maxmanuell = (int)$this->app->DB->Select("SELECT maxmanuell FROM shopexport WHERE id = '$id' LIMIT 1");
- if($maxmanuell <= 0){
- $maxmanuell = 100;
- }
- if($gesamtanzahl > $maxmanuell){
- $gesamtanzahl = $maxmanuell;
- }
- if($einzelsync=='1' && $gesamtanzahl > 1 && $maxmanuell <= 1){
- $gesamtanzahl = 1;
- }
- if($gesamtanzahl > 0)
- {
- for($i=0;$i<$gesamtanzahl;$i++)
- {
- //import au
- $result = $this->app->remote->RemoteGetAuftrag($id);
-
- if(is_array($result))
- {
- $auftrag = $result[0]['id'];
- if(isset($result[0]['warenkorbjson']))
- {
- $isjson = true;
- $tmpwarenkorb = json_decode(base64_decode($result[0]['warenkorbjson']), true);
- }else{
- $isjson = false;
- $tmpwarenkorb = unserialize(base64_decode($result[0]['warenkorb']));
- }
- $onlinebestellnummer = $tmpwarenkorb['onlinebestellnummer'];
- if(!empty($tmpwarenkorb['useorderid']) || (!is_numeric($onlinebestellnummer) && trim((String)$onlinebestellnummer) !== ''))
- {
- $onlinebestellnummer = $tmpwarenkorb['auftrag'];
- }
- if($holealle && $onlinebestellnummer)
- {
- $neue_nummer = (int)$onlinebestellnummer+1;
- $this->app->DB->Update("UPDATE shopexport SET ab_nummer = '$neue_nummer' WHERE id = '$id'");
- }
- $sessionid = $result[0]['sessionid'];
- if($isjson)
- {
- $warenkorb = $result[0]['warenkorbjson'];
- }else{
- $warenkorb = $result[0]['warenkorb'];
- }
- $logdatei = $result[0]['logdatei'];
- if(empty($logdatei))
- {
- $logdatei = date('Y-m-d H:i:s');
- }
- $projekt = $this->app->DB->Select("SELECT projekt FROM shopexport WHERE id = '$id' LIMIT 1");
- if(!empty($tmpwarenkorb['projekt']) && $this->app->DB->Select("SELECT id FROM projekt WHERE id = '".(int)$tmpwarenkorb['projekt']."' LIMIT 1"))
- {
- $projekt = (int)$tmpwarenkorb['projekt'];
- }
- if(isset($tmpwarenkorb['subshop']) && $tmpwarenkorb['subshop'])
- {
- $subshopprojekt = $this->app->DB->Select("SELECT projekt FROM shopexport_subshop WHERE shop = '$id' AND aktiv = 1 AND subshopkennung = '".$this->app->DB->real_escape_string($tmpwarenkorb['subshop'])."' LIMIT 1");
- if($subshopprojekt)
- {
- $projekt = $subshopprojekt;
- }
- }
- unset($tmpwarenkorb);
-
- $standardcheck = true;
- $modulename = $this->app->DB->Select(
- sprintf(
- "SELECT modulename FROM shopexport WHERE id = %d AND modulename <> '' AND (shoptyp = 'intern')",
- $id
- )
- );
- $shopIds = [$id];
- $otherModules= empty($modulename)?null:
- $this->app->DB->SelectFirstCols(
- sprintf(
- "SELECT id
- FROM shopexport
- WHERE modulename = '%s' AND id <> %d",
- $this->app->DB->real_escape_string($modulename), $id
+ $id, $id
)
- );
- if(!empty($otherModules) && $this->app->erp->ModulVorhanden($modulename)) {
- $obj = $this->app->erp->LoadModul($modulename);
- if(!empty($obj) && method_exists($obj, 'EinstellungenStruktur')){
- $konfiguration = $obj->EinstellungenStruktur();
- if($konfiguration && isset($konfiguration['globalerauftragsnummernkreis']) && $konfiguration['globalerauftragsnummernkreis']) {
- $shopIds = array_merge([$id], $otherModules);
- $standardcheck = false;
- /*$checkdoppeltimported = $this->app->DB->Select("SELECT id FROM shopimport_auftraege WHERE extid = '".$this->app->DB->real_escape_string($auftrag)."' and ((modulename = '".$this->app->DB->real_escape_string($modulename)."' AND shoptyp = 'intern') OR shopid = '$id') and warenkorb = '".$this->app->DB->real_escape_string($warenkorb)."' AND trash = 0
- AND (imported = 0 OR (imported = 1 AND DATE_SUB(NOW(),INTERVAL 10 MINUTE)>logdatei ))
- LIMIT 1");*/
- /*$checkdoppeltimported = $this->app->DB->Select("SELECT id FROM shopimport_auftraege WHERE extid = '".$this->app->DB->real_escape_string($auftrag)."' and ((modulename = '".$this->app->DB->real_escape_string($modulename)."' AND shoptyp = 'intern') OR shopid = '$id') AND trash = 0
- AND (imported = 0 OR (imported = 1 AND DATE_SUB(NOW(),INTERVAL 10 MINUTE)>logdatei ))
- LIMIT 1");*/
- }
- }
+ );
+ $deletedRows = (int) $this->app->DB->affected_rows();
+ $this->app->Tpl->Add('IMPORT', '
Es wurden ' . $deletedRows . ' bereits importierte Datensätze entfernt.
');
+ }
+ $runningcronjob = $this->app->DB->Select("SELECT id FROM prozessstarter WHERE parameter = 'shopimport' AND aktiv=1 AND mutex = 1 AND UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(letzteausfuerhung) < 300 LIMIT 1");
+ if ($runningcronjob && !$showonly) {
+ $this->app->Location->execute('index.php?module=shopimport&action=list');
+ }
+ if (!is_numeric($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ }
+
+ $shopexportarr = $this->app->DB->SelectRow("SELECT * FROM shopexport WHERE id='$id'");
+ $projekt = $shopexportarr['projekt']; //$this->app->DB->Select("SELECT projekt FROM shopexport WHERE id='$id'");
+ $demomodus = $shopexportarr['demomodus']; //$this->app->DB->Select("SELECT demomodus FROM shopexport WHERE id='$id'");
+ $einzelsync = $shopexportarr['einzelsync']; //$this->app->DB->Select("SELECT einzelsync FROM shopexport WHERE id='$id'");
+ $utf8codierung = $shopexportarr['utf8codierung']; //$this->app->DB->Select("SELECT utf8codierung FROM shopexport WHERE id='$id'");
+
+ if (!$returncount) {
+ $this->app->erp->Headlines('Shopimport');
+ $this->app->erp->MenuEintrag('index.php?module=shopimport&action=list', 'Zurück zur Übersicht');
+ }
+ //name, strasse, ort, plz und kundenummer, emailadresse oder bestellung kam von login account ==> Kunde aus DB verwenden
+ //ACHTUNG Lieferadresse immer aus Auftrag!!! aber Lieferadresse extra bei Kunden anlegen
+ if ($this->app->Secure->GetPOST('submit') != '') {
+ $auftraege = $this->app->Secure->GetPOST('auftrag');
+ $kundennummer = $this->app->Secure->GetPOST('kundennummer');
+ $import = $this->app->Secure->GetPOST('import');
+ $import_kundennummer = $this->app->Secure->GetPOST('import_kundennummer');
+
+ $success_import = 0;
+ $insgs_import = 0;
+ $unbekanntezahlungsweisen = null;
+ $cauftraege = $auftraege ? count($auftraege) : 0;
+ for ($i = 0; $i < $cauftraege; $i++) {
+ $adresse = '';
+ $shopimportid = $auftraege[$i];
+ $shopid = $this->app->DB->Select("SELECT shopid FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1");
+ if ($shopid) {
+ $demomodus = $this->app->DB->Select("SELECT demomodus FROM shopexport WHERE id='$shopid'");
+ $einzelsync = $this->app->DB->Select("SELECT einzelsync FROM shopexport WHERE id='$shopid'");
+ $utf8codierung = $this->app->DB->Select("SELECT utf8codierung FROM shopexport WHERE id='$shopid'");
}
- $checkdoppeltimported = $this->app->DB->Select(
- sprintf(
- "SELECT id
+ $projekt = $this->app->DB->Select("SELECT projekt FROM shopimport_auftraege WHERE id='$shopimportid' LIMIT 1");
+ if ($import[$shopimportid] === 'warten') {
+
+ } else if ($import[$shopimportid] === 'muell') {
+ $this->setShopImportedOrderTrash($shopimportid);
+ } else if ($import[$shopimportid] === 'import') {
+
+ $res = $this->importShopOrder($shopimportid, $utf8codierung, $kundennummer[$shopimportid], $import_kundennummer[$shopimportid], $unbekanntezahlungsweisen);
+ if ($res['codingerror']) {
+ $umlautefehler = true;
+ }
+ if ($res['success']) {
+ $success_import += $res['success'];
+ }
+ $insgs_import++;
+ }
+ } // ende for
+
+
+ if ($unbekanntezahlungsweisen) {
+ $meldung = '';
+ foreach ($unbekanntezahlungsweisen as $k => $v) {
+ $meldung .= 'Unbekannte Zahlungsart: ' . $k . ' in Bestellung(en): ';
+ $first = true;
+ foreach ($v as $k2 => $v2) {
+ if (!$first) {
+ $meldung .= ', ';
+ }
+ $first = false;
+ $meldung .= $v2['bestellnummer'];
+ }
+ $meldung .= " \r\n";
+ }
+
+ if (isset($this->app->User) && method_exists($this->app->User, 'GetID') && $this->app->User->GetID()) {
+ $this->app->erp->EventMitSystemLog($this->app->User->GetID(), $meldung, -1, '', 'warning', 1);
+ }
+ }
+ if (!empty($umlautefehler)) {
+ $msg = $this->app->erp->base64_url_encode("
$success_import" . ($success_import != $insgs_import ? " von $insgs_import " : '') . " Aufträge importiert. Aufträge mit Kodierungsprobleme. Bitte prüfen Sie sie UTF8-Einstellung in der Shopschnittstelle!