Initialer Commit: Kundenverwaltung (PHP/Smarty)
Bestehende Codebasis als Ausgangsstand aufgenommen. - .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen; Verzeichnisstruktur ueber .gitkeep erhalten - .gitattributes: Zeilenenden normalisiert (LF im Repo), Binaerformate markiert - db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der Anwendung aus der externen Konfiguration statt hartkodiert aus der Datei; Passwort wird ueber eine temporaere Optionsdatei statt per Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet, Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+683
@@ -0,0 +1,683 @@
|
||||
<?php
|
||||
function sks_process_adressrecord($data,$dbconn,$datanr)
|
||||
{
|
||||
$anredechange=0;
|
||||
$err = 0;
|
||||
$procd["kdnr"] = mysqli_real_escape_string($dbconn,trim(iconv( "850", "UTF-8", $data["K_NUMMER"])));
|
||||
$procd["datetime"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_DATUM"])));
|
||||
$procd["anrede"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_ANREDE"])));
|
||||
$procd["vname"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_VORNAME"])));
|
||||
$procd["nname"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_NAME1"])));
|
||||
$procd["nname2"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_NAME2"])));
|
||||
$procd["zusatz"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_ZUSATZ"])));
|
||||
$procd["str"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_STRASSE"])));
|
||||
|
||||
preg_match("!(^[^0-9]*)([0-9]+.*[0-9]*$)!",$procd["str"],$tmp);
|
||||
if($tmp[1] && $tmp[2])
|
||||
{
|
||||
$procd["str"] = $tmp[1];
|
||||
$procd["hnr"] = $tmp[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
$procd["str"] = $procd["str"];
|
||||
$procd["hnr"] = "";
|
||||
}
|
||||
$procd["plz"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_PLZ"])));
|
||||
$procd["ort"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_ORT"])));
|
||||
$procd["tel1"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_TEL1"])));
|
||||
$procd["tel2"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_TEL2"])));
|
||||
$procd["fax"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_FAX"])));
|
||||
$procd["bem1"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_BEM1"])));
|
||||
$procd["bem2"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_BEM2"])));
|
||||
$procd["sksnotiz"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["K_NOTIZ"])));
|
||||
$procd["titel"] = 1;
|
||||
$procd["firma"] = "";
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM land WHERE land_short = 'DE'");
|
||||
if(!mysqli_num_rows($qry))
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO land SET land_short = 'DE'");
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM land WHERE land_short = 'DE'");
|
||||
}
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["land"] = $row[0];
|
||||
|
||||
if(!preg_match("!^[0-9]+$!",$procd["kdnr"]))
|
||||
$err = error("Datensatz $datanr hat eine falsche kundennummer (".$procd["kdnr"].")!");
|
||||
|
||||
//format date
|
||||
if(!preg_match("!^[0-9]{8}$!",$procd["datetime"]))
|
||||
$err = error("Datensatz $datanr hat ein falsches Datumsformat (".$procd["kdnr"].")!");
|
||||
else
|
||||
{
|
||||
$procd["datetime"] = substr($procd["datetime"],0,4)."-".substr($procd["datetime"],4,2)."-".substr($procd["datetime"],6,2);
|
||||
}
|
||||
|
||||
//PROCESS anrede (categorize)
|
||||
if(preg_match("!Herr!", $procd["anrede"]))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = 'Herrn'");
|
||||
if(!mysqli_num_rows($qry))
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO anrede SET anrede = 'Herrn'");
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = 'Herrn'");
|
||||
}
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["anrede"] = $row[0];
|
||||
}
|
||||
else if($procd["anrede"] == "Frau")
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = 'Frau'");
|
||||
if(!mysqli_num_rows($qry))
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO anrede SET anrede = 'Frau'");
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = 'Frau'");
|
||||
}
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["anrede"] = $row[0];
|
||||
}
|
||||
else if($procd["anrede"] == "Firma")
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
if(!mysqli_num_rows($qry))
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO anrede SET anrede = ''");
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
}
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["anrede"] = $row[0];
|
||||
$procd["firma"] = $procd["vname"]." ".$procd["nname"];
|
||||
$procd["vname"] = "";
|
||||
$procd["nname"] = "";
|
||||
}
|
||||
else if(preg_match("!Fam!",$procd["anrede"]))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
if(!mysqli_num_rows($qry))
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO anrede SET anrede = ''");
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
}
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["anrede"] = $row[0];
|
||||
$procd["firma"] = "";
|
||||
$procd["vname"] = $procd["vname"];
|
||||
$procd["nname"] = $procd["nname"];
|
||||
}
|
||||
else if($procd["anrede"]=="")
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
if(!mysqli_num_rows($qry))
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO anrede SET anrede = ''");
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
}
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["anrede"] = $row[0];
|
||||
$procd["firma"] = $procd["vname"]." ".$procd["nname"];
|
||||
$procd["vname"] = "";
|
||||
$procd["nname"] = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
if(!mysqli_num_rows($qry))
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO anrede SET anrede = ''");
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM anrede WHERE anrede = ''");
|
||||
}
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["firma"] = $procd["anrede"]." ".$procd["nname"];
|
||||
if(!$procd["vname"])
|
||||
$procd["nname"] = "";
|
||||
$anredechange=1;
|
||||
ob_flush();
|
||||
flush();
|
||||
$procd["anrede"] = $row[0];
|
||||
}
|
||||
|
||||
//extract titles
|
||||
if(preg_match("!.*Dr\.med\..*!",$procd["nname"]) || preg_match("!.*Dr\. med\..*!",$procd["nname"]))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Dr. med.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["nname"] = str_replace("Dr. med. ","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Dr. med.","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Dr.med. ","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Dr.med.","",$procd["nname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
if(preg_match("!.*Dr\..*!",$procd["nname"]))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Dr.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["nname"] = str_replace("Dr. ","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Dr.","",$procd["nname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
if(strstr($procd["nname"],"Prof. Dr.") || strstr($procd["nname"],"Prof.Dr."))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Prof. Dr.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["nname"] = str_replace("Prof. Dr. ","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Prof. Dr.","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Prof.Dr. ","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Prof.Dr.","",$procd["nname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
if(strstr($procd["nname"],"Dipl. Ing.") || strstr($procd["nname"],"Dipl.Ing."))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Dipl. Ing.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["nname"] = str_replace("Dipl. Ing. ","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Dipl. Ing.","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Dipl.Ing. ","",$procd["nname"]);
|
||||
$procd["nname"] = str_replace("Dipl.Ing.","",$procd["nname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
if(strstr($procd["vname"],"Dr.med.") || strstr($procd["vname"],"Dr. med."))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Dr. med.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["vname"] = str_replace("Dr. med. ","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Dr. med.","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Dr.med. ","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Dr.med.","",$procd["vname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
if(strstr($procd["vname"],"Prof. Dr.") || strstr($procd["vname"],"Prof.Dr."))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Prof. Dr.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["vname"] = str_replace("Prof. Dr. ","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Prof. Dr.","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Prof.Dr. ","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Prof.Dr.","",$procd["vname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
if(strstr($procd["vname"],"Dipl. Ing.") || strstr($procd["vname"],"Dipl.Ing."))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Dipl. Ing.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["vname"] = str_replace("Dipl. Ing. ","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Dipl. Ing.","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Dipl.Ing. ","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Dipl.Ing.","",$procd["vname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
if(preg_match("!.*Dr\..*!",$procd["vname"]))
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id FROM titel WHERE titel = 'Dr.'");
|
||||
$row = mysqli_fetch_array($qry);
|
||||
$procd["vname"] = str_replace("Dr. ","",$procd["vname"]);
|
||||
$procd["vname"] = str_replace("Dr.","",$procd["vname"]);
|
||||
$procd["titel"] = $row[0];
|
||||
}
|
||||
|
||||
if(!$err)
|
||||
$ret = array($procd,$anredechange);
|
||||
else
|
||||
$ret = 0;
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function sks_process_fakturecord($data,$dbconn,$datanr)
|
||||
{
|
||||
$err = 0;
|
||||
$procd["rechnr"] = mysqli_real_escape_string($dbconn,trim(iconv( "850", "UTF-8", $data["F_BELNUM"])));
|
||||
$procd["rechtyp"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_BELTYP"])));
|
||||
$procd["datetime"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_BELDAT"])));
|
||||
$procd["kdnr"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_KNUMMER"])));
|
||||
$procd["koposten"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_KOPOSTEN"])));
|
||||
$procd["wahrung"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_WAEHRUNG"])));
|
||||
$procd["wechselkurs"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_WECHSEL"])));
|
||||
$procd["land"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_LANDNAME"])));
|
||||
$procd["mwst"] = mysqli_real_escape_string($dbconn,trim(iconv("850","UTF-8",$data["F_MAXSTEUER"])));
|
||||
|
||||
if(!preg_match("!^[0-9]+$!",$procd["rechnr"]))
|
||||
$err = error("Datensatz $datanr hat eine falsche Rechnungsnummer (".$procd["rechnr"].")!");
|
||||
|
||||
//format date
|
||||
if(!preg_match("!^[0-9]{8}$!",$procd["datetime"]))
|
||||
$err = error("Datensatz $datanr hat ein falsches Datumsformat (".$procd["datetime"].")!");
|
||||
else
|
||||
{
|
||||
$procd["datetime"] = substr($procd["datetime"],0,4)."-".substr($procd["datetime"],4,2)."-".substr($procd["datetime"],6,2);
|
||||
}
|
||||
//>>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 <b>DBF Explorer</b>!");
|
||||
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..<br />Der Import kann einige Zeit in Anspruch nehmen.<br />.....<br />......<br />.....<br />");
|
||||
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: <br />".formaterror(mysqli_error($dbconn)));
|
||||
if(!$strid=mysqli_insert_id($dbconn))
|
||||
{
|
||||
$err = error("Kundenadresse STR ".$data["kdnr"]." nicht eingefügt: <br />".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: <br />".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: <br />".formaterror(mysqli_error($dbconn)));
|
||||
if(!$strid = mysqli_insert_id($dbconn))
|
||||
{
|
||||
$err = error("Kundenadresse STR ".$data["kdnr"]." nicht eingefügt: <br />".formaterror(mysqli_error($dbconn)));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Kundenadresse ORT ".$data["kdnr"]." nicht eingefügt: <br />".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: <br />".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: <br />".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: <br />".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: <br />".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: <br />".formaterror(mysqli_error($dbconn)));
|
||||
}
|
||||
else
|
||||
$err = error("Kunde ".$data["kdnr"]." ID nicht gefunden: <br />".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: <br />".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: <br />".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("<font sizer='+1'><b>Zusammenfassung des Kundenimport:</b></font> <br />".$import." erfolgreich importierte Kunden<br />Davon wurde bei ".$changedanrede." die Anrede als Firmennamen interpretiert.<br />".$no_import." fehlgeschagene Kunden<br />".$deleted." bereits in SKS gelöschte un damit übersprungene Kunden.");
|
||||
if($no_import)
|
||||
$err=1;
|
||||
}
|
||||
dbase_close($adressen);
|
||||
if(!$err)
|
||||
ok("<b>ADRESSEN.DBF Datei wurde erfolgreich importiert, der Kundenstamm entspricht nun dem SKS Kundenstamm!!</b>");
|
||||
else
|
||||
$err = error("<b>ADRESSEN.DBF Datei wurde nicht oder unvollständig importiert!<br /> (Siehe vorhergehende Felhermeldung)</b>");
|
||||
}
|
||||
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..<br />Der Import kann einige Zeit in Anspruch nehmen.<br />.....<br />......<br />.....<br />");
|
||||
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: <br />".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: <br />".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("<font sizer='+1'><b>Zusammenfassung des Rechnungsimports:</b></font> <br />".$import." erfolgreich importierte Rechnungen<br />".$no_import." fehlgeschagene Rechnungen<br />".$deleted." bereits in SKS gelöschte un damit übersprungene Rechnungen.");
|
||||
if($no_import)
|
||||
$err=1;
|
||||
}
|
||||
dbase_close($faktu);
|
||||
if(!$err)
|
||||
ok("<b>FAKTU.DBF Datei wurde erfolgreich importiert, der Rechnungsstamm entspricht nun dem SKS Rechnungsstamm!!</b>");
|
||||
else
|
||||
$err = error("<b>FAKTU.DBF Datei wurde nicht oder unvollständig importiert!<br /> (Siehe vorhergehende Felhermeldung)</b>");
|
||||
}
|
||||
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..<br />Der Import kann einige Zeit in Anspruch nehmen.<br />.....<br />......<br />.....<br />");
|
||||
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: <br />".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("<font sizer='+1'><b>Zusammenfassung des Artikelimports:</b></font> <br />".$import." erfolgreich importierte Artikel<br />".$no_import." fehlgeschagene Artikel<br />".$kicked." Aussortierte Artikel (Menge=0 oder keinerlei Bezeichnung)<br />".$deleted." bereits in SKS gelöschte un damit übersprungene Artikel.");
|
||||
if($no_import)
|
||||
$err=1;
|
||||
}
|
||||
dbase_close($fpos);
|
||||
if(!$err)
|
||||
ok("<b>FPOS.DBF Datei wurde erfolgreich importiert, der Artikelstamm entspricht nun dem SKS Artikelstamm!!</b>");
|
||||
else
|
||||
$err = error("<b>FPOS.DBF Datei wurde nicht oder unvollständig importiert!<br /> (Siehe vorhergehende Felhermeldung)</b>");
|
||||
}
|
||||
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("<font size='+1'><b>SKS Daten erfolgreich importiert!!</b></font>");
|
||||
|
||||
$ret = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("<font size='+1'><b>SKS daten konnten nicht importiert werden!!</b></font>");
|
||||
$ret = -1;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user