2 /***************************************************************
 
   3 *Author: Holger Lindemann
 
   4 *Copyright: (c) 2004 Lx-System
 
   6 *eMail: info@lx-system.de
 
   8 *Shop: PHPeppershop 1.5
 
  10 ***************************************************************/
 
  11 // -----------------------------------------------------------------------
 
  12 // Damit jedes andere Modul ueberpruefen kann ob dieses hier schon "included" ist
 
  13 // wird folgende Vairable auf true gesetzt (Name = Ext. Modulname + Dateiname ohne .php)
 
  14 $erp_export_erp_export = true;
 
  18         <head><title>Lx-ERP Export der Shopartikel</title>
 
  19         <link type="text/css" REL="stylesheet" HREF="css/main.css"></link>
 
  20         <script language="JavaScript">
 
  29 $inip=get_cfg_var("include_path");
 
  30 ini_set("include_path",$inip.":/usr/share/pear/:.");
 
  32 require_once "DB.php";
 
  33 require_once "conf.php";
 
  35 $db=DB::connect($SHOPdns);
 
  36 if (!$db) dbFehler("",$db->getDebugInfo());
 
  37 if (DB::isError($db)) {
 
  38         dbFehler("",$db->getDebugInfo());
 
  39         die ($db->getDebugInfo());
 
  41 $db2=DB::connect($ERPdns);
 
  42 if (!$db2) dbFehler("",$db2->getDebugInfo());
 
  43 if (DB::isError($db2)) {
 
  44         dbFehler("",$db2->getDebugInfo());
 
  45         die ($db2->getDebugInfo());
 
  47 /****************************************************
 
  49 * in: sql,err = string
 
  51 * Fehlermeldungen ausgeben
 
  52 *****************************************************/
 
  53 function dbFehler($sql,$err) {
 
  56                 echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
 
  58 function checkBestellung($status) {
 
  60         if ($status=="B") { $where="";}  // B = alle Bestellungeb, N = neue, Y = alte
 
  61         else { $where="where Bestellung_bezahlt = '$status'";}
 
  62         $sql="select * from bestellung $where order by Datum";
 
  63         $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
 
  64         return (count($rs)>0)?count($rs):false;
 
  66 function getBestellKunde($BID) {
 
  68         $sql="select * from kunde left join bestellung_kunde on Kunden_ID=FK_Kunden_ID where  FK_Bestellungs_ID=$BID";
 
  69         $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
 
  70         return $rs[0]["Kunden_Nr"];
 
  72 function sonderkosten($transID,$data,$id,$f) {
 
  73 global $db2,$versand,$nachn,$minder,$treuh,$paypal;
 
  74         $sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
 
  75         $sql.=$transID.",".${$id}["ID"].",'".${$id}["TXT"]."',1,".$data.",'mal',0,0)";
 
  76         fputs($f,"$transID,".${$id}["ID"].",'".${$id}["TXT"]."',1,$data\n");
 
  77         if (!$db2->query($sql)) { return false; }
 
  78         else { return true; };
 
  80 function insBestArtikel($zeile,$transID) {
 
  81 global $db,$db2,$div07,$div16,$f,
 
  82         $versandID,$nachnID,$minderID,$treuhID,$paypalID;
 
  83         $BID=$zeile["Bestellungs_ID"];
 
  84         $sql ="select * from artikel left join artikel_bestellung on Artikel_ID=FK_Artikel_ID ";
 
  85         $sql.="left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellungs_ID=$BID";
 
  86         $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
 
  88         foreach ($rs as $zeile) {
 
  89                 $sql="select * from parts where partnumber='".$zeile["Artikel_Nr"]."'";
 
  90                 $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
 
  91                 if ( $rs2[0]["id"]) {$artID=$rs2[0]["id"]; }
 
  92                 else { $artID=($zeile["MwSt_Satz"]=="7")?$div07["ID"]:$div16["ID"]; };
 
  93                 //$preis=round($zeile["Preis"]/($zeile["MwSt_Satz"]+100)*100,2);
 
  94                 $preis=$zeile["Preis"];
 
  95                 $notes=$zeile["Artikelname"];
 
  96                 $vari=split(chr(254),$zeile["Variation"]);
 
  97                 if ($vari) { for($cnt=0; $cnt<count($vari); $cnt++) {
 
  98                                 $notes.="\n".$vari[$cnt];
 
 100                                 $preis+=trim($vari[$cnt]) * $zeile["Anzahl"];
 
 103                 $opts=split(chr(254),$zeile["Optionen"]);
 
 104                 if ($opts) { for($cnt=0; $cnt<count($opts); $cnt++) {
 
 105                                 $notes.="\n".$opts[$cnt];
 
 107                                 $preis+=trim($opts[$cnt]) * $zeile["Anzahl"];
 
 110                 $sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
 
 111                 $sql.=$transID.",".$artID.",'".$notes."',".$zeile["Anzahl"].",".$preis.",'Stck',0,0)";
 
 112                 if (!$db2->query($sql)) { $ok=false; break; };
 
 113                 fputs($f,$transID.",".$artID.",'".$zeile["Artikelname"]."',".$zeile["Anzahl"].",".$preis."\n");
 
 114                 echo "-".$artID." ".$zeile["Anzahl"]." x ".$preis." ".$zeile["Artikelname"]."<br>";
 
 116         if ($zeile["Versandkosten"]) {
 
 117                 $rc=sonderkosten($transID,$zeile["Versandkosten"],"versand",$f);
 
 119         if ($zeile["Nachnamebetrag"]) {
 
 120                 $rc=sonderkosten($transID,$zeile["Nachnamebetrag"],"nachn",$f);
 
 122         if ($zeile["Mindermengenzuschlag"]) {
 
 123                 $rc=sonderkosten($transID,$zeile["Mindermengenzuschlag"],"minder",$f);
 
 125         if ($zeile["Treuhandkosten"]) {
 
 126                 $rc=sonderkosten($transID,$zeile["Treuhandkosten"],"treuh",$f);
 
 128         if ($zeile["Paypalkosten"]) {
 
 129                 $rc=sonderkosten($transID,$zeile["Paypalkosten"],"paypal",$f);
 
 132                 $sql="update bestellung set Bestellung_bezahlt='Y' WHERE Bestellungs_ID =$BID";
 
 133                 $rc=$db->query($sql);
 
 137                 $sql="delete from orderitems where trans_id=$transID";
 
 138                 $rc=$db->query($sql);
 
 139                 $sql="delete from oe where id=$transID";
 
 140                 $rc=$db->query($sql);
 
 141                 fputs($f,"Fehler (insBestArtikel)!!!!\n");
 
 145 function getBestellung_() {
 
 146 global $db,$db2,$ERPusr,$f;
 
 147         $sql="select * from bestellung where Bestellung_bezahlt='N' order by Bestellungs_ID";
 
 148         $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
 
 150         foreach ($rs as $zeile) {
 
 151                 $kdnr=getBestellKunde($zeile["Bestellungs_ID"]);
 
 152                 $newID=uniqid (rand());
 
 153                 $sql="insert into oe (notes) values ('$newID')";
 
 154                 $rc=$db2->query($sql);
 
 155                 $sql="select * from oe where notes = '$newID'";
 
 156                 $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
 
 157                 $Bezahlung=$zeile["Bezahlungsart"];
 
 158                 if ($Bezahlung=="Lastschrift") {
 
 159                         $sql="select * from kunde where Kunden_Nr=$kdnr";
 
 160                         $kd=$db->getAll($sql,DB_FETCHMODE_ASSOC);
 
 161                         $Bezahlung.="\nKontoinhaber: ".$kd[0]["kontoinhaber"]."\n";
 
 162                         $Bezahlung.="Bankname: ".$kd[0]["bankname"]."\n";
 
 163                         $Bezahlung.="Blz: ".$kd[0]["blz"]."\n";
 
 164                         $Bezahlung.="KontoNr: ".$kd[0]["kontonummer"];
 
 166                 $sql ="update oe set ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', intnotes='".$zeile["Anmerkung"];
 
 167                 $sql.="', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", netamount=".$zeile["Rechnungsbetrag"];
 
 168                 $sql.=", reqdate='".$zeile["Datum"]."', notes='$Bezahlung', taxincluded='f', curr='EUR',employee_id=".$ERPusr["ID"].", vendor_id=0 ";
 
 169                 $sql.="where id=".$rs2[0]["id"];
 
 170                 $rc=$db2->query($sql);
 
 171                 fputs($f,"ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", notes=".$zeile["Bezahlungsart"]."\n");
 
 172                 echo $rs2[0]["id"]."<br>";
 
 173                 if (!insBestArtikel($zeile,$rs2[0]["id"])) { $ok=false; break; };
 
 177 function chkKdData($data) {
 
 179         $sql="select * from customer where id = ".$data["Kunden_Nr"];
 
 180         $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
 
 181         if ($rs[0]["zipcode"]<>$data["Plz"]) $set.="zipcode='".$data["Plz"]."',";
 
 182         if ($rs[0]["city"]<>$data["Ort"]) $set.="city='".$data["Ort"]."',";
 
 183         if ($rs[0]["land"]<>$data["Land"]) $set.="land='".$data["Land"]."',";
 
 184         if ($rs[0]["phone"]<>$data["Tel"])$set.="phone='".$data["Tel"]."',";
 
 185         if ($rs[0]["fax"]<>$data["Fax"])  $set.="fax='".$data["Fax"]."',";
 
 186         if ($rs[0]["email"]<>$data["Email"])$set.="email='".$data["Email"]."',";
 
 187         if ($rs[0]["notes"]<>$data["Beschreibung"])$set.="notes='".$data["Beschreibung"]."',";
 
 188         if ($data["Firma"]) {
 
 189                 if ($rs[0]["name"]<>$data["Firma"]) $set.="set name='".$data["Firma"]."',";
 
 190                 if ($rs[0]["name2"]<>$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]) $set.="name2='".$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]."',";
 
 192                 if ($rs[0]["name"]<>$data["Nachname"].", ".$data["Vorname"]) $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',";
 
 194         if ($data["Strasse"]) {
 
 195                 if ($rs[0]["street"]<>$data["Strasse"]) $set.="street='".$data["Strasse"]."',";
 
 196         } else if ($data["Postfach"]) {
 
 197                 if ($rs[0]["street"]<>$data["Postfach"]) $set.="street='".$data["Postfach"]."',";
 
 200                 $sql="update customer set ".substr($set,0,-1)." where id=".$rs[0]["id"];
 
 201                 $rc=$db2->query($sql);
 
 204 function insKdData($data) {
 
 206         $newID=$data["Kunden_ID"];
 
 207         $sql="insert into customer (name) values ('$newID')";
 
 208         $rc=$db2->query($sql);
 
 209         $sql="select * from customer where name = '$newID'";
 
 210         $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
 
 211         if ($data["Firma"]) { $set.="set name='".$data["Firma"]."',name2='".$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]."',"; }
 
 212         else { $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',"; }
 
 213         if ($data["Strasse"]) { $set.="street='".$data["Strasse"]."',"; }
 
 214         else if ($data["Postfach"]) { $set.="street='".$data["Postfach"]."',"; };
 
 215         $set.="zipcode='".$data["Plz"]."',";
 
 216         $set.="city='".$data["Ort"]."',";
 
 217         $set.="land='".$data["Land"]."',";
 
 218         $set.="phone='".$data["Tel"]."',";
 
 219         $set.="fax='".$data["Fax"]."',";
 
 220         $set.="email='".$data["Email"]."',";
 
 221         $set.="notes='".$data["Beschreibung"]."',";
 
 222         $set.="taxincluded='f' ";
 
 223         $sql="update customer ".$set;
 
 224         $sql.="where id=".$rs[0]["id"];
 
 225         $rc=$db2->query($sql);
 
 228 function checkKunde() {
 
 230         $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'";
 
 231         $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
 
 235         foreach ($rs as $zeile) {
 
 236                 if ($zeile["Kunden_Nr"]>0) {
 
 240                         $zeile["Kunden_Nr"]=insKdData($zeile);
 
 241                         if ($zeile["Kunden_Nr"]>0) {
 
 242                                 $sql="update kunde set Kunden_Nr='".$zeile["Kunden_Nr"]."' where k_ID=".$zeile["k_ID"];
 
 243                                 $rc=$db->query($sql);
 
 249                 fputs($f,$zeile["Nachname"]." ".$zeile["Firma"]."\n");
 
 250                 fputs($f,"\n----------------------------------------\n\n");
 
 252         return ($ok)?array($anzahl,$neu,$old):false;
 
 255 function savedata($str) {
 
 257         foreach ($str as $val) {
 
 260         fputs($f,substr($str,0,-1)."\n");
 
 263 $f=fopen("./module/export_to_erp/tmp/".date("y-m-dH:i").".shop","w");
 
 264 $ok=checkBestellung("N");
 
 266         echo "Es liegen $ok Bestellungen vor. <br>";
 
 267         fputs($f,"Es liegen $ok Bestellungen vor. \n");
 
 270                 echo $ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).<br>";
 
 271                 fputs($f,$ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).\n");
 
 272                 $ok=getBestellung_();
 
 273                 if ($ok) { echo "Daten transferiert!";  fputs($f,"Daten transferiert!\n");}
 
 274                 else { echo "Fehler (Bestellungen)! ! ! ";   fputs($f,"Fehler (Bestellungen)! ! !\n");};
 
 276                  echo "Fehler (Kunden)! ! ! ";   fputs($f,"Fehler (Kunden)! ! !\n");
 
 278 } else { echo "Keine Bestellungen!<br>";  fputs($f,"keine Bestellungen\n");};
 
 282 if ($backlink == 6) {
 
 283     echo "<button type='button' onClick='self.location.href=\"./module_admin_aufruf.php?darstellen=6\"'>Zurück zur Moduladministration</button>";
 
 286     echo "<button type='button' onClick='self.location.href=\"./module_admin_aufruf.php?darstellen=1&".urlencode($window_source)."=".urlencode($previous_selected_module)."\"'>Zurück zur Modulverwaltung</button>";