>Filter Gutschriften<<
if($procd["rechtyp"] == 5)
{
$procd["rechtyp"] = 2; // 2 is gutschrift 1 is Rechnung
}
//>>process wahrungen!!<<
if($procd["wahrung"]=="EUR" || $procd["wahrung"] == "")
$procd["wahrung"] = "€";
$qry=mysqli_query($dbconn,"SELECT id FROM wahrung WHERE wahrung='".$procd["wahrung"]."'");
if(!mysqli_num_rows($qry))
{
mysqli_query($dbconn,"INSERT INTO wahrung SET wahrung = '".$procd["wahrung"]."' , kurs='".$procd["wechselkurs"]."'");
$qry = mysqli_query($dbconn,"SELECT id FROM wahrung WHERE wahrung = '".$procd["wahrung"]."'");
}
$row = mysqli_fetch_array($qry);
$procd["wahrung"] = $row[0];
//-------------------------------------
//---------insert umrechn!!!!----------
//-------------------------------------
//>>process mwst!!<<
$qry=mysqli_query($dbconn,"SELECT id FROM mwst WHERE mwst='".$procd["mwst"]."'");
if(!mysqli_num_rows($qry))
{
mysqli_query($dbconn,"INSERT INTO mwst SET mwst = '".$procd["mwst"]."'");
$qry = mysqli_query($dbconn,"SELECT id FROM mwst WHERE mwst = '".$procd["mwst"]."'");
}
$row = mysqli_fetch_array($qry);
$procd["mwst"] = $row[0];
if(!$err)
$ret = $procd;
else
$ret = 0;
return $ret;
}
function sks_process_fposrecord($data,$dbconn,$datanr)
{
$err = 0;
$procd["rechnr"] = mysqli_real_escape_string($dbconn,trim(iconv( "850", "UTF-8", $data["F_BELNUM"])));
$procd["pos"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_POS"])));
$procd["menge"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_LMENGE"])));
$procd["bez1"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_LBEZ1"])));
$procd["bez2"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_LBEZ2"])));
$procd["preis"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_LPREIS"])));
$procd["rabatt"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_LRABATT"])));
$procd["postxt"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_POS_TXT"])));
if(!$err)
$ret = $procd;
else
$ret = 0;
return $ret;
}
//IMPORTSKS
function importsks($dbconn)
{
error_reporting(E_ERROR | E_WARNING | E_PARSE); //dont show notices
$err = 0;
if($_FILES['adressen']['name'] == "ADRESSEN.DBF" && $_FILES['faktu']['name'] == "FAKTU.DBF" &&$_FILES['fpos']['name'] == "FPOS.DBF" )
{
message("ADRESSEN.DBF wird geöffnet...");
$adressen = dbase_open ($_FILES['adressen']['tmp_name'], 0);
if($adressen)
{
if(dbase_numfields($adressen) == 73)
$err = error("Die übergebene Tabelle hat 73 Spalten 74 werden benötigt. Zum Import der KUNDEN.DBF muss diese erst von MEMO feldern bereit werden. Nutzen Sie hierzu bitte DBF Explorer!");
else if(dbase_numfields($adressen) != 74)
$err = error("Für die Adressen Datenbank wird eine Tabelle mit 74 Feldern erwartet, die übergebene Tabelle hat aber ".dbase_numfields($adressen)." Felder. Das kann nicht importiert werden!");
if(!$err)
{
message(dbase_numrecords($adressen)." Kunden stehen bereit zum Import..
Der Import kann einige Zeit in Anspruch nehmen.
.....
......
.....
");
ob_flush();
flush();
$deleted = 0;
$import = 0;
$no_import = 0;
$changedanrede = 0;
for ($i = 1; $i <= dbase_numrecords($adressen); $i++)
{
ob_flush();
flush();
$err=0;
$data = dbase_get_record_with_names($adressen, $i);
if(!$data["deleted"])
{
if($processed=sks_process_adressrecord($data,$dbconn,$i))
{
$data = $processed[0];
if($processed[1])
{
$changedanrede++;
$sks_check = "1";
}
else
$sks_check = "0";
$strid = 0;
$ortid = 0;
$qry = mysqli_query($dbconn,"SELECT id FROM ort WHERE plz='".$data["plz"]."' AND ort='".$data["ort"]."'");
$ortid=mysqli_fetch_array($qry);
$ortid = $ortid[0];
if($ortid)
{
$qry = mysqli_query($dbconn,"SELECT id FROM strasse WHERE str='".$data["str"]."' AND ort_id='".$ortid."'");
$strid=mysqli_fetch_array($qry);
$strid = $strid[0];
if(!$strid)
{
$qry = mysqli_query($dbconn,"INSERT INTO strasse SET str='".$data["str"]."', ort_id=$ortid")
or $err = error("Strasse für Kd. ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
if(!$strid=mysqli_insert_id($dbconn))
{
$err = error("Kundenadresse STR ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
}
}
else
{
$qry = mysqli_query($dbconn,"INSERT INTO ort SET ort='".$data["ort"]."' , plz='".$data["plz"]."', land_id='".$data["land"]."'")
or $err = error("Ort für Kd. ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
if($ortid = mysqli_insert_id($dbconn))
{
$qry = mysqli_query($dbconn,"INSERT INTO strasse SET str='".$data["str"]."' , ort_id='".$ortid."'")
or $err = error("Strasse für Kd. ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
if(!$strid = mysqli_insert_id($dbconn))
{
$err = error("Kundenadresse STR ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
}
else
{
$err = error("Kundenadresse ORT ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
}
if(!$err)
{
mysqli_query($dbconn, "INSERT INTO partner SET
id='".$data["kdnr"]."',
datetime_new='".$data["datetime"]."',
user_id=1,
sks_not_checked=1,
typ_id=1,
zahlziel_id=1,
sks_kdnotiz='".$data["sksnotiz"]."'")
or $err = error("Kunde ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
if($strid && $ortid)
{
if($partnerid = mysqli_insert_id($dbconn))
{
mysqli_query($dbconn, "INSERT INTO adresse SET
partner_id='".$partnerid."',
vname='".$data["vname"]."',
nname='".$data["nname"]."',
nname2='".$data["nname2"]."',
firma='".$data["firma"]."',
anrede_id='".$data["anrede"]."',
titel_id='".$data["titel"]."',
str_id='".$strid."',
typ_id='1',
zusatz='".$data["zusatz"]."', hnr='".$data["hnr"]."'")
or $err = error("Kunde ".$data["kdnr"]." Adresse nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
$res = mysqli_query($dbconn, "SELECT id FROM teltyp WHERE id = 1");
if(!mysqli_num_rows($res))
mysqli_query($dbconn, "INSERT INTO teltyp SET id = 1, typ = 'Privat'");
$res = mysqli_query($dbconn, "SELECT id FROM teltyp WHERE id = 2");
if(!mysqli_num_rows($res))
mysqli_query($dbconn, "INSERT INTO teltyp SET id = 2, typ = 'Mobil'");
mysqli_query($dbconn, "INSERT INTO tel SET ort_id = '".$ortid."', partner_id='".$partnerid."', nr = '".$data["tel1"]."', typ_id = 1;")
or $err = error("Kunde ".$data["kdnr"]." Tel1 nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
mysqli_query($dbconn, "INSERT INTO tel SET ort_id = '".$ortid."', partner_id='".$partnerid."', nr = '".$data["tel2"]."', typ_id = 5;")
or $err = error("Kunde ".$data["kdnr"]." Tel2 nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
mysqli_query($dbconn, "INSERT INTO tel SET ort_id = '".$ortid."', partner_id='".$partnerid."', nr = '".$data["fax"]."', typ_id = 4;")
or $err = error("Kunde ".$data["kdnr"]." Fax nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
else
$err = error("Kunde ".$data["kdnr"]." ID nicht gefunden:
".formaterror(mysqli_error($dbconn)));
}
if($data["bem1"])
{
mysqli_query($dbconn, "INSERT INTO notiz SET
partner_id='".$data["kdnr"]."',
notiz='".$data["bem1"]."'")
or $err = error("Notiz zu Kunde ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
if($data["bem2"])
{
mysqli_query($dbconn, "INSERT INTO notiz SET
partner_id='".$data["kdnr"]."',
notiz='".$data["bem2"]."'")
or $err = error("Notiz zu Kunde ".$data["kdnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
if(!$err)
$import ++;
else
$no_import ++;
}
else
{
$err = error("Datensatz Nummer $i entspricht nicht dem erwarteten Format!");
ob_flush();
flush();
$no_import ++;
}
}
else
$deleted++;
}
warning("Zusammenfassung des Kundenimport:
".$import." erfolgreich importierte Kunden
Davon wurde bei ".$changedanrede." die Anrede als Firmennamen interpretiert.
".$no_import." fehlgeschagene Kunden
".$deleted." bereits in SKS gelöschte un damit übersprungene Kunden.");
if($no_import)
$err=1;
}
dbase_close($adressen);
if(!$err)
ok("ADRESSEN.DBF Datei wurde erfolgreich importiert, der Kundenstamm entspricht nun dem SKS Kundenstamm!!");
else
$err = error("ADRESSEN.DBF Datei wurde nicht oder unvollständig importiert!
(Siehe vorhergehende Felhermeldung)");
}
else
{
$err = error("dBase datenbank ADRESSEN.DBF konnte nicht geöffnet werden.");
}
$err = 0;
// $_FILES['faktu']['tmp_name'] 63 Felder
message("FAKTU.DBF wird geöffnet...");
$faktu = dbase_open ($_FILES['faktu']['tmp_name'], 0);
if($faktu)
{
if(dbase_numfields($faktu) != 63)
$err = error("Für die Fakturierungs Datenbank wird eine Tabelle mit 63 Feldern erwartet, die übergebene Tabelle hat aber ".dbase_numfields($adressen)." Felder. Das kann nicht importiert werden!");
if(!$err)
{
message(dbase_numrecords($faktu)." Rechnungen stehen bereit zum Import..
Der Import kann einige Zeit in Anspruch nehmen.
.....
......
.....
");
ob_flush();
flush();
$deleted = 0;
$import = 0;
$no_import = 0;
for ($i = 1; $i <= dbase_numrecords($faktu); $i++)
{
ob_flush();
flush();
$err=0;
$data = dbase_get_record_with_names($faktu, $i);
if(!$data["deleted"])
{
if($data=sks_process_fakturecord($data,$dbconn,$i))
{
$qry=mysqli_query($dbconn, "SELECT id FROM adresse WHERE partner_id = '".$data["kdnr"]."'");
$res=mysqli_fetch_array($qry);
$adresse = $res[0];
if($data["rechtyp"] == 1)
{
mysqli_query($dbconn, "INSERT INTO rechnung SET
rechnr='".$data["rechnr"]."',
partner_id='".$data["kdnr"]."',
adresse_id='".$adresse."',
mwst_id='".$data["mwst"]."',
changetime=NOW(),
user_id=1,
datetime='".$data["datetime"]."',
wahrung_id='".$data["wahrung"]."',
zahlziel_id=1,
sks=1,
typ_id=1")
or $err = error("Rechnung ".$data["rechnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
else if($data["rechtyp"] == 2)
{
mysqli_query($dbconn, "INSERT INTO rechnung SET
rechnr='".$data["rechnr"]."',
partner_id='".$data["kdnr"]."',
adresse_id='".$adresse."',
mwst_id='".$data["mwst"]."',
changetime=NOW(),
user_id=1,
datetime='".$data["datetime"]."',
wahrung_id='".$data["wahrung"]."',
zahlziel_id=1,
sks=1,
typ_id=2")
or $err = error("Rechnung ".$data["rechnr"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
else
$err = error("Rechnungstyp des Datensatzes Nr.:".$i." (Rechnungsnummer: ".$data["rechnr"].") nicht unterstützt!");
if(!$err)
$import ++;
else
$no_import ++;
}
else
{
$err = error("Datensatz Nummer $i entspricht nicht dem erwarteten Format!");
ob_flush();
flush();
$no_import ++;
}
}
else
$deleted++;
}
warning("Zusammenfassung des Rechnungsimports:
".$import." erfolgreich importierte Rechnungen
".$no_import." fehlgeschagene Rechnungen
".$deleted." bereits in SKS gelöschte un damit übersprungene Rechnungen.");
if($no_import)
$err=1;
}
dbase_close($faktu);
if(!$err)
ok("FAKTU.DBF Datei wurde erfolgreich importiert, der Rechnungsstamm entspricht nun dem SKS Rechnungsstamm!!");
else
$err = error("FAKTU.DBF Datei wurde nicht oder unvollständig importiert!
(Siehe vorhergehende Felhermeldung)");
}
else
{
$err = error("dBase datenbank FAKTU.DBF konnte nicht geöffnet werden.");
}
$err = 0;
// $_FILES['fpos']['tmp_name'] 25 Felder
message("FPOS.DBF wird geöffnet...");
$fpos = dbase_open ($_FILES['fpos']['tmp_name'], 0);
if($fpos)
{
if(dbase_numfields($fpos) != 25)
$err = error("Für die Artikel Datenbank wird eine Tabelle mit 25 Feldern erwartet, die übergebene Tabelle hat aber ".dbase_numfields($adressen)." Felder. Das kann nicht importiert werden!");
if(!$err)
{
message(dbase_numrecords($fpos)." Artikel stehen bereit zum Import..
Der Import kann einige Zeit in Anspruch nehmen.
.....
......
.....
");
ob_flush();
flush();
$deleted = 0;
$kicked = 0;
$import = 0;
$no_import = 0;
for ($i = 1; $i <= dbase_numrecords($fpos); $i++)
{
ob_flush();
flush();
$err=0;
$data = dbase_get_record_with_names($fpos, $i);
if(!$data["deleted"])
{
if($data=sks_process_fposrecord($data,$dbconn,$i))
{
if($data["menge"] != 0 && !(!$data["bez1"] && !$data["bez2"] && !$data["postxt"]))
{
mysqli_query($dbconn, "INSERT INTO artikelsks SET
rechnr='".$data["rechnr"]."',
pos='".$data["pos"]."',
menge='".$data["menge"]."',
bezeichn1='".$data["bez1"]."',
bezeichn2='".$data["bez2"]."',
rabatt='".$data["rabatt"]."',
beschr='".$data["postxt"]."',
preis='".$data["preis"]."'")
or $err = error("Artikel ".$data["bez1"]." nicht eingefügt:
".formaterror(mysqli_error($dbconn)));
}
else
{
$kicked++;
}
if(!$err)
$import ++;
else
$no_import ++;
}
else
{
$err = error("Datensatz Nummer $i entspricht nicht dem erwarteten Format!");
ob_flush();
flush();
$no_import ++;
}
}
else
$deleted++;
}
warning("Zusammenfassung des Artikelimports:
".$import." erfolgreich importierte Artikel
".$no_import." fehlgeschagene Artikel
".$kicked." Aussortierte Artikel (Menge=0 oder keinerlei Bezeichnung)
".$deleted." bereits in SKS gelöschte un damit übersprungene Artikel.");
if($no_import)
$err=1;
}
dbase_close($fpos);
if(!$err)
ok("FPOS.DBF Datei wurde erfolgreich importiert, der Artikelstamm entspricht nun dem SKS Artikelstamm!!");
else
$err = error("FPOS.DBF Datei wurde nicht oder unvollständig importiert!
(Siehe vorhergehende Felhermeldung)");
}
else
{
$err = error("dBase datenbank FPOS.DBF konnte nicht geöffnet werden.");
}
$err = 0;
}
else
{
$err = error("Es werden nur exakt die drei Dateien von SKS akzeptiert, bitte stellen Sie sicher, dass der Dateiname übereinstimmt.");
}
if(!$err)
{
ok("SKS Daten erfolgreich importiert!!");
$ret = 0;
}
else
{
$err = error("SKS daten konnten nicht importiert werden!!");
$ret = -1;
}
return $ret;
}
?>