");
- }
- //$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,
+ 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);
- if ($tmpauftragid > 0) {
- $sucess_import = true;
- }
-
- $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 && $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 ='';
- 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 ShopimportView() {
- $this->ShopimportImport(showonly: true);
- }
-
- 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!