= 2.4.0 ***************************************************************/ ?> Lx-ERP Export der Shopartikel getDebugInfo()); if (DB::isError($db)) { dbFehler("",$db->getDebugInfo()); die ($db->getDebugInfo()); }; $db2=DB::connect($ERPdns); if (!$db2) dbFehler("",$db2->getDebugInfo()); if (DB::isError($db2)) { dbFehler("",$db2->getDebugInfo()); die ($db2->getDebugInfo()); }; function query($db,$sql) { global $utftrans; if ($utftrans) $sql=utf8_encode($sql); $rc=$db->query($sql); if (DB::isError($rc)) { dbFehler($sql,$rc->userinfo); return false; } return $rc; } /**************************************************** * dbFehler * in: sql,err = string * out: * Fehlermeldungen ausgeben *****************************************************/ function dbFehler($sql,$err) { global $showErr; if ($showErr) echo "$sql : $err
"; } function checkBestellung($status) { global $db; if ($status=="B") { $where="";} // B = alle Bestellungeb, N = neue, Y = alte else { $where="where Bestellung_bezahlt = '$status'";} $sql="select * from bestellung $where and Datum is not null and Bestellung_abgeschlossen = 'Y' order by Datum"; $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC); return (count($rs)>0)?count($rs):false; } function getBestellKunde($BID) { global $db; $sql="select * from kunde left join bestellung_kunde on Kunden_ID=FK_Kunden_ID where FK_Bestellungs_ID=$BID"; $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC); return $rs[0]["Kunden_Nr"]; } function sonderkosten($transID,$data,$id,$f) { global $db2,$versand,$nachn,$minder,$treuh,$paypal,$unit; $sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values ("; $sql.=$transID.",".${$id}["ID"].",'".${$id}["TXT"]."',1,".$data.",'".$unit."',0,0)"; fputs($f,"$transID,".${$id}["ID"].",'".${$id}["TXT"]."',1,$data\n"); if (!query($sql)) { return false; } else { return true; }; } function insBestArtikel($zeile,$transID) { global $db,$db2,$div07,$div16,$f, $versandID,$nachnID,$minderID,$treuhID,$paypalID; $BID=$zeile["Bestellungs_ID"]; $sql ="select * from artikel left join artikel_bestellung on Artikel_ID=FK_Artikel_ID "; $sql.="left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellungs_ID=$BID"; $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC); $ok=true; foreach ($rs as $zeile) { $sql="select * from parts where partnumber='".$zeile["Artikel_Nr"]."'"; $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC); if ( $rs2[0]["id"]) {$artID=$rs2[0]["id"]; } else { $artID=($zeile["MwSt_Satz"]=="7")?$div07["ID"]:$div16["ID"]; }; //$preis=round($zeile["Preis"]/($zeile["MwSt_Satz"]+100)*100,2); $preis=$zeile["Preis"]; $notes=$zeile["Artikelname"]; $vari=split(chr(254),$zeile["Variation"]); if ($vari) { for($cnt=0; $cnt ".$zeile["Anzahl"]." x ".$zeile["Artikel_Nr"]." :".$zeile["Artikelname"]." ]
"; } if ($zeile["Versandkosten"] && $ok) { $ok=sonderkosten($transID,$zeile["Versandkosten"],"versand",$f); } if ($zeile["Nachnamebetrag"] && $ok) { $ok=sonderkosten($transID,$zeile["Nachnamebetrag"],"nachn",$f); } if ($zeile["Mindermengenzuschlag"] && $ok) { $ok=sonderkosten($transID,$zeile["Mindermengenzuschlag"],"minder",$f); } if ($zeile["Treuhandkosten"] && $ok) { $ok=sonderkosten($transID,$zeile["Treuhandkosten"],"treuh",$f); } if ($zeile["Paypalkosten"] && $ok) { $ok=sonderkosten($transID,$zeile["Paypalkosten"],"paypal",$f); } if ($ok) { $sql="update bestellung set Bestellung_bezahlt='Y' WHERE Bestellungs_ID =$BID"; $rc=query($db,$sql); fputs($f,"ok\n"); return true; } else { $sql="delete from orderitems where trans_id=$transID"; $rc=query($db,$sql); $sql="delete from oe where id=$transID"; $rc=query($db,$sql); fputs($f,"Fehler (insBestArtikel)!!!!\n"); return false; } } function getNextAnr() { global $db2; $sql="select * from defaults"; $sql1="update defaults set sonumber="; $rc=query($db2,"BEGIN"); $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC); $auftrag=$rs2[0]["sonumber"]+1; $rc=query($db2,$sql1.$auftrag); $rc=query($db2,"COMMIT"); return $auftrag; } function getNextKnr() { global $db2; $sql="select * from defaults"; $sql1="update defaults set customernumber='"; $rc=query($db2,"BEGIN"); $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC); $kdnr=$rs2[0]["customernumber"]+1; $rc=query($db2,$sql1.$kdnr."'"); $rc=query($db2,"COMMIT"); return $kdnr; } function getBestellung() { global $db,$db2,$ERPusr,$f,$preA,$auftrnr; $sql="select * from bestellung where Bestellung_bezahlt='N' order by Bestellungs_ID"; $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC); $ok=true; foreach ($rs as $zeile) { $kdnr=getBestellKunde($zeile["Bestellungs_ID"]); echo "Kunde:[ Buchungsnummer:$kdnr ] "; $newID=uniqid (rand()); if (ereg("&r=([0-9]+)",$zeile["Bestellung_string"],$refnr)) { $refnr=$refnr[1]; } else { $refnr=$zeile["Bestellungs_ID"]; } if ($auftrnr) { $anr=$preA.getNextAnr(); } else { $anr=$preA.$refnr; } $sql="insert into oe (notes,ordnumber,cusordnumber) values ('$newID','$anr','$refnr')"; $rc=query($db2,$sql); $sql="select * from oe where notes = '$newID'"; $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC); $Bezahlung=$zeile["Bezahlungsart"]; if ($Bezahlung=="Lastschrift") { $sql="select * from kunde where Kunden_Nr=$kdnr"; $kd=$db->getAll($sql,DB_FETCHMODE_ASSOC); $Bezahlung.="\nKontoinhaber: ".$kd[0]["kontoinhaber"]."\n"; $Bezahlung.="Bankname: ".$kd[0]["bankname"]."\n"; $Bezahlung.="Blz: ".$kd[0]["blz"]."\n"; $Bezahlung.="KontoNr: ".$kd[0]["kontonummer"]; } $sql ="update oe set transdate='".$zeile["Datum"]."', intnotes='".$zeile["Anmerkung"]; $sql.="', customer_id=$kdnr, amount=".$zeile["Rechnungsbetrag"].", netamount=".($zeile["Rechnungsbetrag"]-$zeile["MwSt"]); $sql.=", reqdate='".$zeile["Datum"]."', notes='$Bezahlung', taxincluded='f', curr='EUR',employee_id=".$ERPusr["ID"].", vendor_id=0 "; $sql.="where id=".$rs2[0]["id"]; $rc=query($db2,$sql); fputs($f,"ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", notes=".$zeile["Bezahlungsart"]."\n"); echo "Auftrag:[ Buchungsnummer:".$rs2[0]["id"]." AuftrNr:".$anr." ]
"; if (!insBestArtikel($zeile,$rs2[0]["id"])) { $ok=false; echo " Fehler
"; break; } else { echo " ok
"; }; } return $ok; } function chkKdData($data) { global $db2; $sql="select * from customer where id = ".$data["Kunden_Nr"]; $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC); if ($rs[0]["zipcode"]<>$data["PLZ"]) $set.="zipcode='".$data["PLZ"]."',"; if ($rs[0]["city"]<>$data["Ort"]) $set.="city='".$data["Ort"]."',"; if ($rs[0]["country"]<>$data["Land"]) $set.="country='".$data["Land"]."',"; if ($rs[0]["phone"]<>$data["Tel"])$set.="phone='".$data["Tel"]."',"; if ($rs[0]["fax"]<>$data["Fax"]) $set.="fax='".$data["Fax"]."',"; if ($rs[0]["email"]<>$data["Email"])$set.="email='".$data["Email"]."',"; if ($rs[0]["notes"]<>$data["Beschreibung"])$set.="notes='".$data["Beschreibung"]."',"; if ($data["Firma"]) { if ($rs[0]["name"]<>$data["Firma"]) $set.="set name='".$data["Firma"]."',"; if ($rs[0]["contact"]<>$data["Vorname"]." ".$data["Nachname"]) $set.="contact='".$data["Vorname"]." ".$data["Nachname"]."',"; } else { if ($rs[0]["name"]<>$data["Nachname"].", ".$data["Vorname"]) $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',"; } if ($data["Strasse"]) { if ($rs[0]["street"]<>$data["Strasse"]) $set.="street='".$data["Strasse"]."',"; } else if ($data["Postfach"]) { if ($rs[0]["street"]<>$data["Postfach"]) $set.="street='".$data["Postfach"]."',"; }; if ($set) { $sql="update customer set ".substr($set,0,-1)." where id=".$rs[0]["id"]; $rc=query($db2,$sql); } } function insKdData($data) { global $db2,$preK,$kdnum; $newID=$data["Kunden_ID"]; if ($kdnum==1) { $kdnr=$preK.getNextKnr(); } else { $kdnr=$preK.$data["customers_id"]; } $sql="insert into customer (name,customernumber) values ('$newID','$kdnr')"; $rc=query($db2,$sql); $sql="select * from customer where name = '$newID'"; $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC); if ($data["Firma"]) { $set.="set name='".$data["Firma"]."',contact='".$data["Vorname"]." ".$data["Nachname"]."',"; } else { $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',"; } if ($data["Strasse"]) { $set.="street='".$data["Strasse"]."',"; } else if ($data["Postfach"]) { $set.="street='".$data["Postfach"]."',"; }; $set.="zipcode='".$data["PLZ"]."',"; $set.="city='".$data["Ort"]."',"; $set.="country='".$data["Land"]."',"; $set.="phone='".$data["Tel"]."',"; $set.="fax='".$data["Fax"]."',"; $set.="email='".$data["Email"]."',"; $set.="notes='".$data["Beschreibung"]."',"; $set.="taxincluded='f' "; $sql="update customer ".$set; $sql.="where id=".$rs[0]["id"]; $sql=utf8_encode($sql); echo $sql."
"; $rc=query($db2,$sql); if (DB::isError($rc)) { print_r($rc); echo "
"; } return $rs[0]["id"]; } function checkKunde() { global $db,$f; $sql="select * from kunde left join bestellung_kunde on FK_Kunden_ID=Kunden_ID left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellung_bezahlt='N'"; $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC); $ok=true; $anzahl=count($rs); $neu=0; $old=0; foreach ($rs as $zeile) { if ($zeile["Kunden_Nr"]>0) { chkKdData($zeile); $old++; } else { $zeile["Kunden_Nr"]=insKdData($zeile); if ($zeile["Kunden_Nr"]>0) { $sql="update kunde set Kunden_Nr='".$zeile["Kunden_Nr"]."' where k_ID=".$zeile["k_ID"]; $rc=query($db,$sql); } else { $ok=false; break; } $neu++; } fputs($f,$zeile["Nachname"]." ".$zeile["Firma"]."\n"); fputs($f,"\n----------------------------------------\n\n"); } return ($ok)?array($anzahl,$neu,$old):false; } function savedata($str) { global $f; foreach ($str as $val) { $str.=$val.","; } fputs($f,substr($str,0,-1)."\n"); } $f=fopen("tmp/".date("y-m-dH:i").".shop","w"); $ok=checkBestellung("N"); if ($ok) { echo "Es liegen $ok Bestellungen vor.
"; fputs($f,"Es liegen $ok Bestellungen vor. \n"); $ok=checkKunde(); if ($ok) { echo $ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).
"; fputs($f,$ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).\n"); $ok=getBestellung(); if ($ok) { echo "Daten transferiert!"; fputs($f,"Daten transferiert!\n");} else { echo "Fehler (Bestellungen)! ! ! "; fputs($f,"Fehler (Bestellungen)! ! !\n");}; } else { echo "Fehler (Kunden)! ! ! "; fputs($f,"Fehler (Kunden)! ! !\n"); } } else { echo "Keine Bestellungen!
"; fputs($f,"keine Bestellungen\n");}; fclose($f); ?>