Revision fc47e483
Von Holger Lindemann vor mehr als 15 Jahren hinzugefügt
lxo-import/addressB.php | ||
---|---|---|
require ("import_lib.php");
|
||
|
||
if (!$_SESSION["db"]) {
|
||
$conffile="../config/authentication.pl";
|
||
if (!is_file($conffile)) {
|
||
ende(4);
|
||
}
|
||
$conffile="../config/authentication.pl";
|
||
if (!is_file($conffile)) {
|
||
ende("authentication.pl nicht gefunden oder unlesbar");
|
||
}
|
||
}
|
||
|
||
if (!anmelden()) ende(5);
|
||
if (!anmelden()) ende("Anmeldung fehlgeschlagen");
|
||
|
||
if ($_POST["ok"]=="Hilfe") {
|
||
echo "Importfelder:<br>";
|
||
echo "Feldname => Bedeutung<br>";
|
||
foreach($address as $key=>$val) {
|
||
echo "$key => $val<br>";
|
||
}
|
||
exit(0);
|
||
echo "Importfelder:<br>";
|
||
echo "Feldname => Bedeutung<br>";
|
||
foreach($address as $key=>$val) {
|
||
echo "$key => $val<br>";
|
||
}
|
||
$header=implode(";",array_keys($address));
|
||
echo $header;
|
||
exit(0);
|
||
};
|
||
|
||
if ($_POST["ok"]) {
|
||
... | ... | |
|
||
$crm=checkCRM();
|
||
|
||
function ende($nr) {
|
||
echo "Abbruch: $nr<br>";
|
||
echo "Fehlende oder falsche Daten.";
|
||
exit(1);
|
||
function ende($txt) {
|
||
echo "Abbruch: $txt<br>";
|
||
exit(1);
|
||
}
|
||
|
||
clearstatcache ();
|
||
//print_r($_FILES);
|
||
$test=$_POST["test"];
|
||
if (!empty($_FILES["Datei"]["name"])) {
|
||
$file=$_POST["ziel"];
|
||
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) {
|
||
$file=false;
|
||
echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")<br>";
|
||
}
|
||
$file=$_POST["ziel"];
|
||
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) {
|
||
$file=false;
|
||
echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")<br>";
|
||
}
|
||
} else if (is_file($_POST["ziel"].".csv")) {
|
||
$file=$_POST["ziel"];
|
||
$file=$_POST["ziel"];
|
||
} else {
|
||
$file=false;
|
||
$file=false;
|
||
}
|
||
|
||
if (!$file) ende (2);
|
||
if (!$file) ende ("Kein Datenfile");
|
||
|
||
$trenner=($_POST["trenner"])?$_POST["trenner"]:",";
|
||
|
||
if (!file_exists("$file.csv")) ende(5);
|
||
if (!file_exists("$file.csv")) ende("$file.csv nicht im Ordner oder leer");
|
||
|
||
|
||
if (!$db->chkcol($file)) ende(6);
|
||
if (!$db->chkcol($file)) ende("Importspalte kann nicht angelegt werden");
|
||
|
||
$employee=chkUsr($_SESSION["employee"]);
|
||
if (!$employee) ende(4);
|
||
if (!$employee) ende("Ungültiger User");
|
||
|
||
$kunde_fld = array_keys($address);
|
||
|
||
... | ... | |
$first=true;
|
||
$ok=true;
|
||
foreach ($infld as $fld) {
|
||
$fld = strtolower(trim(strtr($fld,array("\""=>"","'"=>""))));
|
||
if ($fld=="branche" && !$crm) { $in_fld[]=""; continue; };
|
||
if ($fld=="sw" && !$crm) { $in_fld[]=""; continue; };
|
||
$in_fld[]=$fld;
|
||
$fld = strtolower(trim(strtr($fld,array("\""=>"","'"=>""))));
|
||
if ($fld=="branche" && !$crm) { $in_fld[]=""; continue; };
|
||
if ($fld=="sw" && !$crm) { $in_fld[]=""; continue; };
|
||
$in_fld[]=$fld;
|
||
}
|
||
//print_r($in_fld); echo "<br>";
|
||
|
||
$j=0;
|
||
$m=0;
|
||
$zeile=fgetcsv($f,1200,$trenner);
|
||
if ($ok) while (!feof($f)){
|
||
$i=0;
|
||
//echo "Arbeite an $m ";
|
||
$m++;
|
||
$anrede="";
|
||
$Matchcode="";
|
||
$sql="insert into $file ";
|
||
$keys="(";
|
||
$vals=" values (";
|
||
$number=false;
|
||
foreach($zeile as $data) {
|
||
if (!in_array(trim($in_fld[$i]),$kunde_fld)) {
|
||
if ($in_fld[$i]=="anrede") { $anrede=addslashes(trim($data)); }
|
||
$i++;
|
||
continue;
|
||
};
|
||
$data=trim($data);
|
||
$data=mb_convert_encoding($data,"ISO-8859-15","auto");
|
||
//$data=htmlentities($data);
|
||
$data=addslashes($data);
|
||
if ($in_fld[$i]==$file."number") { // customernumber || vendornumber
|
||
if (empty($data) or !$data) {
|
||
$data=getKdId();
|
||
$number=true;
|
||
} else {
|
||
$data=chkKdId($data);
|
||
$number=true;
|
||
}
|
||
} else if ($in_fld[$i]=="taxincluded"){
|
||
$data=strtolower(substr($data,0,1));
|
||
if ($data!="f" && $data!="t") $data="f";
|
||
} else if ($in_fld[$i]=="ustid"){
|
||
$data=strtr(" ","",$data);
|
||
} /*else if ($in_fld[$i]=="matchcode") {
|
||
$i=0;
|
||
$m++;
|
||
$anrede="";
|
||
$Matchcode="";
|
||
$sql="insert into $file ";
|
||
$keys="(";
|
||
$vals=" values (";
|
||
$number=false;
|
||
foreach($zeile as $data) {
|
||
if (!in_array(trim($in_fld[$i]),$kunde_fld)) {
|
||
if ($in_fld[$i]=="anrede") { $anrede=addslashes(trim($data)); }
|
||
$i++;
|
||
continue;
|
||
};
|
||
$data=trim($data);
|
||
$data=mb_convert_encoding($data,"ISO-8859-15","auto");
|
||
//$data=htmlentities($data);
|
||
$data=addslashes($data);
|
||
if ($in_fld[$i]==$file."number") { // customernumber || vendornumber
|
||
if (empty($data) or !$data) {
|
||
$data=getKdId();
|
||
$number=true;
|
||
} else {
|
||
$data=chkKdId($data);
|
||
$number=true;
|
||
}
|
||
} else if ($in_fld[$i]=="taxincluded"){
|
||
$data=strtolower(substr($data,0,1));
|
||
if ($data!="f" && $data!="t") $data="f";
|
||
} else if ($in_fld[$i]=="ustid"){
|
||
$data=strtr(" ","",$data);
|
||
} /*else if ($in_fld[$i]=="matchcode") {
|
||
$matchcode=$data;
|
||
$i++;
|
||
continue;
|
||
if ($data==false or empty($data) or !$data) {
|
||
if (in_array($in_fld[$i],array("name"))) {
|
||
$data=$matchcode;
|
||
}
|
||
}
|
||
}*/
|
||
|
||
$keys.=$in_fld[$i].",";
|
||
if ($data==false or empty($data) or !$data) {
|
||
$vals.="null,";
|
||
} else {
|
||
if ($in_fld[$i]=="contact"){
|
||
if ($anrede) {
|
||
$vals.="'$anrede $data',";
|
||
} else {
|
||
$vals.="'$data',";
|
||
}
|
||
} else {
|
||
$vals.="'".$data."',";
|
||
}
|
||
}
|
||
$i++;
|
||
}
|
||
if (!$number) {
|
||
$keys.=$file."number,";
|
||
$vals.="'".getKdId()."',";
|
||
}
|
||
if ($keys<>"(") {
|
||
if ($test) {
|
||
if ($first) {
|
||
echo "<table border='1'>\n";
|
||
echo "<tr><th>".str_replace(",","</th><th>",substr($keys,1,-1))."</th></tr>\n";
|
||
$first=false;
|
||
};
|
||
$vals=str_replace("',","'</td><td>",substr($vals,9,-1));
|
||
echo "<tr><td>".str_replace("null,","null</td><td>",$vals)."</td></tr>\n";
|
||
//echo "Import $j<br>\n";
|
||
flush();
|
||
} else {
|
||
$sql.=$keys."taxzone_id,import)";
|
||
$sql.=$vals."0,$nun)";
|
||
$rc=$db->query($sql);
|
||
if (!$rc) echo "Fehler: ".$sql."<br>";
|
||
}
|
||
$j++;
|
||
} else {
|
||
if (in_array($in_fld[$i],array("name"))) {
|
||
$data=$matchcode;
|
||
}
|
||
}
|
||
}*/
|
||
|
||
$keys.=$in_fld[$i].",";
|
||
if ($data==false or empty($data) or !$data) {
|
||
$vals.="null,";
|
||
} else {
|
||
if ($in_fld[$i]=="contact"){
|
||
if ($anrede) {
|
||
$vals.="'$anrede $data',";
|
||
} else {
|
||
$vals.="'$data',";
|
||
}
|
||
} else {
|
||
$vals.="'".$data."',";
|
||
}
|
||
}
|
||
$i++;
|
||
}
|
||
if (!$number) {
|
||
$keys.=$file."number,";
|
||
$vals.="'".getKdId()."',";
|
||
}
|
||
if ($keys<>"(") {
|
||
if ($test) {
|
||
if ($first) {
|
||
echo "<table border='1'>\n";
|
||
echo "<tr><th>".str_replace(",","</th><th>",substr($keys,1,-1))."</th></tr>\n";
|
||
$first=false;
|
||
};
|
||
$vals=str_replace("',","'</td><td>",substr($vals,9,-1));
|
||
echo "<tr><td>".str_replace("null,","null</td><td>",$vals)."</td></tr>\n";
|
||
//echo "Import $j<br>\n";
|
||
flush();
|
||
} else {
|
||
$sql.=$keys."taxzone_id,import)";
|
||
$sql.=$vals."0,$nun)";
|
||
$rc=$db->query($sql);
|
||
if (!$rc) echo "Fehler: ".$sql."<br>";
|
||
}
|
||
$j++;
|
||
} else {
|
||
$vals=str_replace("',","'</td><td>",substr($vals,9,-1));
|
||
echo "<tr><td style=\"color:red\">".str_replace("null,","null</td><td style=\"color:red\">",$vals)."</td></tr>\n";
|
||
flush();
|
||
}
|
||
$zeile=fgetcsv($f,1200,$trenner);
|
||
$zeile=fgetcsv($f,1200,$trenner);
|
||
}
|
||
fclose($f);
|
||
if ($test) echo "</table>\n ##### = Neue Kunden-/Lieferantennummer\n<br>";
|
lxo-import/customer.bsp | ||
---|---|---|
name;department_1;department_2;street;zipcode;city;country;contact;phone;fax;homepage;email;notes;discount;taxincluded;terms;customernumber;taxnumber;ustid;account_number;bank_code;bank;branche;sw;creditlimit
|
||
Import Kunde;;;Am Weg 3;12345;Sonstwo;D;Fr. Werner;01234123;;www.test.xx;info@test.xx;Hallole;;;;;;;2222;11223344;Meine Bank;Dienstleistung;;
|
lxo-import/customer_contact.bsp | ||
---|---|---|
customernumber;cp_cv_id;firma;cp_abteilung;cp_position;cp_gender;cp_title;cp_givenname;cp_name;cp_email;cp_phone1;cp_phone2;cp_mobile1;cp_mobile2;cp_homepage;cp_street;cp_country;cp_zipcode;cp_city;cp_privatphone;cp_privatemail;cp_notes;cp_stichwort1;cp_id
|
||
;;Import Kunde;Verwaltung;Leiter;m;Dr.;Hans Heinrich;Import;;;;;;;;D;12345;Sonstwo;;;;
|
lxo-import/customer_shipto.bsp | ||
---|---|---|
firma;shiptoname;shiptodepartment_1;shiptodepartment_2;shiptostreet;shiptozipcode;shiptocity;shiptocountry;shiptocontact;shiptophone;shiptofax;shiptoemail;customernumber
|
||
Import Kunde;Import Kunde;Lagerhaus;;Bahnhofstr. 4;12345;Sonstwo;D;Hr. Hansen;0293948;lager@firma.false;
|
lxo-import/db.php | ||
---|---|---|
var $showErr = false; // Browserausgabe
|
||
var $debug = false; // 1 = SQL-Ausgabe, 2 = zusätzlich Ergebnis
|
||
var $log = true; // Alle Abfragen mitloggen
|
||
var $errfile = "/tmp/lxcrm.err";
|
||
var $logfile = "/tmp/lxcrm.log";
|
||
var $path = "/tmp/";
|
||
var $lfh = false;
|
||
|
||
function dbFehler($sql,$err) {
|
||
$efh=fopen($this->errfile,"a");
|
||
fputs($efh,date("Y-m-d H:i:s ->"));
|
||
fputs($efh,$sql."\n");
|
||
fputs($efh,$err."\n");
|
||
fputs($efh,print_r($this->rc,true));
|
||
fputs($efh,"\n");
|
||
fclose($efh);
|
||
if ($this->showErr)
|
||
echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
|
||
}
|
||
function dbFehler($sql,$err) {
|
||
$efh=fopen($this->path."lxcrm".date("w").".err","a");
|
||
fputs($efh,date("Y-m-d H:i:s ->"));
|
||
fputs($efh,$sql."\n");
|
||
fputs($efh,$err."\n");
|
||
fputs($efh,print_r($this->rc,true));
|
||
fputs($efh,"\n");
|
||
fclose($efh);
|
||
if ($this->showErr)
|
||
echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
|
||
}
|
||
|
||
function showDebug($sql) {
|
||
echo $sql."<br>";
|
||
if ($this->debug==2) {
|
||
echo "<pre>";
|
||
print_r($this->rc);
|
||
echo "</pre>";
|
||
};
|
||
}
|
||
function showDebug($sql) {
|
||
echo $sql."<br>";
|
||
if ($this->debug==2) {
|
||
echo "<pre>";
|
||
print_r($this->rc);
|
||
echo "</pre>";
|
||
};
|
||
}
|
||
|
||
function writeLog($txt) {
|
||
if ($this->lfh===false)
|
||
$this->lfh=fopen($this->logfile,"a");
|
||
fputs($this->lfh,date("Y-m-d H:i:s ->"));
|
||
fputs($this->lfh,$txt."\n");
|
||
fputs($this->lfh,print_r($this->rc,true));
|
||
fputs($this->lfh,"\n");
|
||
}
|
||
function writeLog($txt) {
|
||
if ($this->lfh===false)
|
||
$this->lfh=fopen($this->path."lxcrm".date("w").".log","a");
|
||
fputs($this->lfh,date("Y-m-d H:i:s ->"));
|
||
fputs($this->lfh,$txt."\n");
|
||
fputs($this->lfh,print_r($this->rc,true));
|
||
fputs($this->lfh,"\n");
|
||
}
|
||
|
||
function closeLogfile() {
|
||
fclose($this->lfh);
|
||
}
|
||
|
||
function myDB($host,$user,$pwd,$db,$port,$showErr=false) {
|
||
$dsn = array(
|
||
function closeLogfile() {
|
||
fclose($this->lfh);
|
||
}
|
||
|
||
function myDB($host,$user,$pwd,$db,$port,$showErr=false) {
|
||
$dsn = array(
|
||
'phptype' => 'pgsql',
|
||
'username' => $user,
|
||
'password' => $pwd,
|
||
... | ... | |
'database' => $db,
|
||
'port' => $port
|
||
);
|
||
$this->showErr=$showErr;
|
||
$this->db=DB::connect($dsn);
|
||
if (!$this->db || DB::isError($this->db)) {
|
||
if ($this->log) $this->writeLog("Connect $dns");
|
||
$this->dbFehler("Connect ".print_r($dsn,true),$this->db->getMessage());
|
||
die ($this->db->getMessage());
|
||
}
|
||
if ($this->log) $this->writeLog("Connect: ok ");
|
||
return $this->db;
|
||
}
|
||
$this->showErr=$showErr;
|
||
$this->db=DB::connect($dsn);
|
||
if (!$this->db || DB::isError($this->db)) {
|
||
if ($this->log) $this->writeLog("Connect $dns");
|
||
$this->dbFehler("Connect ".print_r($dsn,true),$this->db->getMessage());
|
||
die ($this->db->getMessage());
|
||
}
|
||
if ($this->log) $this->writeLog("Connect: ok ");
|
||
return $this->db;
|
||
}
|
||
|
||
function query($sql) {
|
||
$this->rc=@$this->db->query($sql);
|
||
if ($this->debug) $this->showDebug($sql);
|
||
if ($this->log) $this->writeLog($sql);
|
||
if(DB::isError($this->rc)) {
|
||
$this->dbFehler($sql,$this->rc->getMessage());
|
||
$this->rollback();
|
||
return false;
|
||
} else {
|
||
return $this->rc;
|
||
}
|
||
}
|
||
function query($sql) {
|
||
$this->rc=@$this->db->query($sql);
|
||
if ($this->debug) $this->showDebug($sql);
|
||
if ($this->log) $this->writeLog($sql);
|
||
if(DB::isError($this->rc)) {
|
||
$this->dbFehler($sql,$this->rc->getMessage());
|
||
$this->rollback();
|
||
return false;
|
||
} else {
|
||
return $this->rc;
|
||
}
|
||
}
|
||
|
||
function begin() {
|
||
$this->query("BEGIN");
|
||
}
|
||
function commit() {
|
||
$this->query("COMMIT");
|
||
}
|
||
function rollback() {
|
||
$this->query("ROLLBACK");
|
||
}
|
||
function begin() {
|
||
$this->query("BEGIN");
|
||
}
|
||
function commit() {
|
||
$this->query("COMMIT");
|
||
}
|
||
function rollback() {
|
||
$this->query("ROLLBACK");
|
||
}
|
||
|
||
function getAll($sql) {
|
||
$this->rc=$this->db->getAll($sql,DB_FETCHMODE_ASSOC);
|
||
if ($this->debug) $this->showDebug($sql);
|
||
if ($this->log) $this->writeLog($sql);
|
||
if(DB::isError($this->rc)) {
|
||
$this->dbFehler($sql,$this->rc->getMessage());
|
||
return false;
|
||
} else {
|
||
return $this->rc;
|
||
}
|
||
}
|
||
function getAll($sql) {
|
||
$this->rc=$this->db->getAll($sql,DB_FETCHMODE_ASSOC);
|
||
if ($this->debug) $this->showDebug($sql);
|
||
if ($this->log) $this->writeLog($sql);
|
||
if(DB::isError($this->rc)) {
|
||
$this->dbFehler($sql,$this->rc->getMessage());
|
||
return false;
|
||
} else {
|
||
return $this->rc;
|
||
}
|
||
}
|
||
|
||
function saveData($txt) {
|
||
if (get_magic_quotes_gpc()) {
|
||
return $txt;
|
||
} else {
|
||
return DB::quoteSmart($string);
|
||
}
|
||
}
|
||
function saveData($txt) {
|
||
if (get_magic_quotes_gpc()) {
|
||
return $txt;
|
||
} else {
|
||
return DB::quoteSmart($string);
|
||
}
|
||
}
|
||
|
||
function chkcol($tbl) {
|
||
function execute($statement, $data){
|
||
$sth = $this->db->prepare($statement); //Prepare
|
||
/*if (PEAR::isError($sth)) {
|
||
$this->dbFehler($statement,$sth->getMessage());
|
||
$this->rollback();
|
||
return false;
|
||
}*/
|
||
$rc = $this->db->execute($sth,$data);
|
||
if(PEAR::isError($rc)) {
|
||
$this->dbFehler(print_r($data,true),$rc->getMessage()."\n".print_r($rc,true));
|
||
$this->rollback();
|
||
return false;
|
||
}
|
||
$this->db->commit();
|
||
return true;
|
||
}
|
||
|
||
function chkcol($tbl) {
|
||
// gibt es die Spalte import schon?
|
||
$rc=$this->db->query("select import from $tbl limit 1");
|
||
if(DB::isError($rc)) {
|
||
$rc=$this->db->query("alter table $tbl add column import int4");
|
||
if(DB::isError($rc)) { return false; }
|
||
else { return true; }
|
||
} else { return true; };
|
||
}
|
||
$rc=$this->db->query("select import from $tbl limit 1");
|
||
if(DB::isError($rc)) {
|
||
$rc=$this->db->query("alter table $tbl add column import int4");
|
||
if(DB::isError($rc)) { return false; }
|
||
else { return true; }
|
||
} else { return true; };
|
||
}
|
||
|
||
|
||
}
|
lxo-import/import_lib.php | ||
---|---|---|
<?php
|
||
/*
|
||
Funktionsbibliothek für den Datenimport in Lx-Office ERP
|
||
Funktionsbibliothek f?r den Datenimport in Lx-Office ERP
|
||
|
||
Copyright (C) 2005
|
||
Author: Holger Lindemann
|
||
... | ... | |
require_once "db.php";
|
||
|
||
$address = array(
|
||
"name" => "Firmenname",
|
||
"department_1" => "Abteilung",
|
||
"department_2" => "Abteilung",
|
||
"street" => "Strasse + Nr",
|
||
"zipcode" => "Plz",
|
||
"city" => "Ort",
|
||
"country" => "Land",
|
||
"contact" => "Ansprechpartner",
|
||
"phone" => "Telefon",
|
||
"fax" => "Fax",
|
||
"homepage" => "Homepage",
|
||
"email" => "eMail",
|
||
"notes" => "Bemerkungen",
|
||
"discount" => "Rabatt (nn.nn)",
|
||
"taxincluded" => "incl. Steuer? (t/f)",
|
||
"terms" => "Zahlungsziel (Tage)",
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer",
|
||
"taxnumber" => "Steuernummer",
|
||
"ustid" => "Umsatzsteuer-ID",
|
||
"account_number" => "Kontonummer",
|
||
"bank_code" => "Bankleitzahl",
|
||
"bank" => "Bankname",
|
||
"branche" => "Branche",
|
||
//"language" => "Sprache (de,en,fr)",
|
||
"sw" => "Stichwort",
|
||
"creditlimit" => "Kreditlimit (nnnnnn.nn)"); /*,
|
||
"hierarchie" => "Hierarchie",
|
||
"potenzial" => "Potenzial",
|
||
"ar" => "Debitorenkonto",
|
||
"ap" => "Kreditorenkonto",
|
||
"matchcode" => "Matchcode",
|
||
"customernumber2" => "Kundennummer 2");
|
||
Kundenspezifisch */
|
||
"name" => "Firmenname",
|
||
"department_1" => "Abteilung",
|
||
"department_2" => "Abteilung",
|
||
"street" => "Strasse + Nr",
|
||
"zipcode" => "Plz",
|
||
"city" => "Ort",
|
||
"country" => "Land",
|
||
"contact" => "Ansprechpartner",
|
||
"phone" => "Telefon",
|
||
"fax" => "Fax",
|
||
"homepage" => "Homepage",
|
||
"email" => "eMail",
|
||
"notes" => "Bemerkungen",
|
||
"discount" => "Rabatt (nn.nn)",
|
||
"taxincluded" => "incl. Steuer? (t/f)",
|
||
"terms" => "Zahlungsziel (Tage)",
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer",
|
||
"taxnumber" => "Steuernummer",
|
||
"ustid" => "Umsatzsteuer-ID",
|
||
"account_number" => "Kontonummer",
|
||
"bank_code" => "Bankleitzahl",
|
||
"bank" => "Bankname",
|
||
"branche" => "Branche",
|
||
//"language" => "Sprache (de,en,fr)",
|
||
"sw" => "Stichwort",
|
||
"creditlimit" => "Kreditlimit (nnnnnn.nn)"); /*,
|
||
"hierarchie" => "Hierarchie",
|
||
"potenzial" => "Potenzial",
|
||
"ar" => "Debitorenkonto",
|
||
"ap" => "Kreditorenkonto",
|
||
"matchcode" => "Matchcode",
|
||
"customernumber2" => "Kundennummer 2");
|
||
Kundenspezifisch */
|
||
|
||
$shiptos = array(
|
||
"shiptoname" => "Firmenname",
|
||
"shiptodepartment_1" => "Abteilung",
|
||
"shiptodepartment_2" => "Abteilung",
|
||
"shiptostreet" => "Strasse + Nr",
|
||
"shiptozipcode" => "Plz",
|
||
"shiptocity" => "Ort",
|
||
"shiptocountry" => "Land",
|
||
"shiptocontact" => "Ansprechpartner",
|
||
"shiptophone" => "Telefon",
|
||
"shiptofax" => "Fax",
|
||
"shiptoemail" => "eMail",
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer");
|
||
"firma" => "Firmenname",
|
||
"shiptoname" => "Liefername",
|
||
"shiptodepartment_1" => "Abteilung",
|
||
"shiptodepartment_2" => "Abteilung",
|
||
"shiptostreet" => "Strasse + Nr",
|
||
"shiptozipcode" => "Plz",
|
||
"shiptocity" => "Ort",
|
||
"shiptocountry" => "Land",
|
||
"shiptocontact" => "Ansprechpartner",
|
||
"shiptophone" => "Telefon",
|
||
"shiptofax" => "Fax",
|
||
"shiptoemail" => "eMail",
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer");
|
||
|
||
$parts = array(
|
||
"partnumber" => "Artikelnummer",
|
||
"description" => "Artikeltext",
|
||
"unit" => "Einheit",
|
||
"weight" => "Gewicht in Benutzerdefinition",
|
||
"onhand" => "Lagerbestand",
|
||
"bin" => "Lagerplatz",
|
||
"notes" => "Beschreibung",
|
||
"notes1" => "Beschreibung",
|
||
//"makemodel" => "Hersteller",
|
||
//"model" => "Modellbezeichnung",
|
||
"bin" => "Lagerort",
|
||
"image" => "Pfad/Dateiname",
|
||
"drawing" => "Pfad/Dateiname",
|
||
"microfiche" => "Pfad/Dateiname",
|
||
"listprice" => "Listenpreis",
|
||
"sellprice" => "Verkaufspreis",
|
||
"lastcost" => "letzter EK",
|
||
"art" => "Ware/Dienstleistung (*/d), muß vor den Konten kommen",
|
||
"inventory_accno" => "Bestandskonto",
|
||
"income_accno" => "Erlöskonto",
|
||
"expense_accno" => "Konto Umsatzkosten",
|
||
"obsolete" => "Gesperrt (Y/N)",
|
||
"lastcost" => "letzer EK-Preis",
|
||
"rop" => "Mindestbestand",
|
||
"shop" => "Shopartikel (Y/N)",
|
||
"assembly" => "St?ckliste (Y/N); wird noch nicht unterst?tzt",
|
||
"partsgroup" => "Warengruppenbezeichnung",
|
||
"partsgroup1" => "2.Warengruppenbezeichnung",
|
||
"partsgroup2" => "3.Warengruppenbezeichnung",
|
||
"partsgroup3" => "4.Warengruppenbezeichnung",
|
||
"partsgroup4" => "5.Warengruppenbezeichnung",
|
||
//"income_accno_0" => "?Nummer? f?r Erl?se Inland",
|
||
//"income_accno_1" => "?Nummer? f?r Erl?se EG",
|
||
//"income_accno_3" => "?Nummer? f?r Erl?se Ausland",
|
||
);
|
||
|
||
"partnumber" => "Artikelnummer",
|
||
"ean" => "Barcode",
|
||
"description" => "Artikeltext",
|
||
"unit" => "Einheit",
|
||
"weight" => "Gewicht in Benutzerdefinition",
|
||
"notes" => "Beschreibung",
|
||
"notes1" => "Beschreibung",
|
||
"makemodel" => "Hersteller",
|
||
"model" => "Modellbezeichnung",
|
||
"image" => "Pfad/Dateiname",
|
||
"drawing" => "Pfad/Dateiname",
|
||
"microfiche" => "Pfad/Dateiname",
|
||
"listprice" => "Listenpreis",
|
||
"sellprice" => "Verkaufspreis",
|
||
"lastcost" => "letzter EK",
|
||
"art" => "Ware/Dienstleistung (*/d), muß vor den Konten kommen",
|
||
"inventory_accno" => "Bestandskonto",
|
||
"income_accno" => "Erlöskonto",
|
||
"expense_accno" => "Konto Umsatzkosten",
|
||
"obsolete" => "Gesperrt (Y/N)",
|
||
"lastcost" => "letzer EK-Preis",
|
||
"rop" => "Mindestbestand",
|
||
"shop" => "Shopartikel (Y/N)",
|
||
"assembly" => "Stückliste (Y/N); wird noch nicht unterstützt",
|
||
"partsgroup" => "Warengruppenbezeichnung",
|
||
"partsgroup1" => "2.Warengruppenbezeichnung",
|
||
"partsgroup2" => "3.Warengruppenbezeichnung",
|
||
"partsgroup3" => "4.Warengruppenbezeichnung",
|
||
"partsgroup4" => "5.Warengruppenbezeichnung",
|
||
);
|
||
|
||
$contactscrm = array(
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer",
|
||
"cp_cv_id" => "FirmenID in der db",
|
||
"firma" => "Firmenname",
|
||
"cp_abteilung" => "Abteilung",
|
||
"cp_position" => "Position/Hierarchie",
|
||
"cp_greeting" => "Anrede",
|
||
"cp_title" => "Titel",
|
||
"cp_givenname" => "Vorname",
|
||
"cp_name" => "Nachname",
|
||
"cp_email" => "eMail",
|
||
"cp_phone1" => "Telefon 1",
|
||
"cp_phone2" => "Telefon 2",
|
||
"cp_mobile1" => "Mobiltelefon 1",
|
||
"cp_mobile2" => "Mobiltelefon 2",
|
||
"cp_homepage" => "Homepage",
|
||
"cp_street" => "Strasse",
|
||
"cp_country" => "Land",
|
||
"cp_zipcode" => "PLZ",
|
||
"cp_city" => "Ort",
|
||
"cp_privatphone" => "Privattelefon",
|
||
"cp_privatemail" => "private eMail",
|
||
"cp_notes" => "Bemerkungen",
|
||
"cp_stichwort1" => "Stichwort(e)",
|
||
"cp_id" => "Kontakt ID"
|
||
);
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer",
|
||
"cp_cv_id" => "FirmenID in der db",
|
||
"firma" => "Firmenname",
|
||
"cp_abteilung" => "Abteilung",
|
||
"cp_position" => "Position/Hierarchie",
|
||
"cp_gender" => "Geschlecht (m/f)",
|
||
"cp_title" => "Titel",
|
||
"cp_givenname" => "Vorname",
|
||
"cp_name" => "Nachname",
|
||
"cp_email" => "eMail",
|
||
"cp_phone1" => "Telefon 1",
|
||
"cp_phone2" => "Telefon 2",
|
||
"cp_mobile1" => "Mobiltelefon 1",
|
||
"cp_mobile2" => "Mobiltelefon 2",
|
||
"cp_homepage" => "Homepage",
|
||
"cp_street" => "Strasse",
|
||
"cp_country" => "Land",
|
||
"cp_zipcode" => "PLZ",
|
||
"cp_city" => "Ort",
|
||
"cp_privatphone" => "Privattelefon",
|
||
"cp_privatemail" => "private eMail",
|
||
"cp_notes" => "Bemerkungen",
|
||
"cp_stichwort1" => "Stichwort(e)",
|
||
"cp_id" => "Kontakt ID"
|
||
);
|
||
|
||
$contacts = array(
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer",
|
||
"cp_cv_id" => "FirmenID in der db",
|
||
"firma" => "Firmenname",
|
||
"cp_greeting" => "Anrede",
|
||
"cp_title" => "Titel",
|
||
"cp_givenname" => "Vorname",
|
||
"cp_greeting" => "Anrede",
|
||
"cp_name" => "Nachname",
|
||
"cp_email" => "eMail",
|
||
"cp_phone1" => "Telefon 1",
|
||
"cp_phone2" => "Telefon 2",
|
||
"cp_mobile1" => "Mobiltelefon 1",
|
||
"cp_mobile2" => "Mobiltelefon 2",
|
||
"cp_privatphone" => "Privattelefon",
|
||
"cp_privatemail" => "private eMail",
|
||
"cp_homepage" => "Homepage",
|
||
"cp_id" => "Kontakt ID"
|
||
);
|
||
"customernumber" => "Kundennummer",
|
||
"vendornumber" => "Lieferantennummer",
|
||
"cp_cv_id" => "FirmenID in der db",
|
||
"firma" => "Firmenname",
|
||
"cp_greeting" => "Anrede",
|
||
"cp_title" => "Titel",
|
||
"cp_givenname" => "Vorname",
|
||
"cp_greeting" => "Anrede",
|
||
"cp_name" => "Nachname",
|
||
"cp_email" => "eMail",
|
||
"cp_phone1" => "Telefon 1",
|
||
"cp_phone2" => "Telefon 2",
|
||
"cp_mobile1" => "Mobiltelefon 1",
|
||
"cp_mobile2" => "Mobiltelefon 2",
|
||
"cp_privatphone" => "Privattelefon",
|
||
"cp_privatemail" => "private eMail",
|
||
"cp_homepage" => "Homepage",
|
||
"cp_id" => "Kontakt ID"
|
||
);
|
||
|
||
function checkCRM() {
|
||
global $db;
|
||
$sql="select * from crm";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
global $db;
|
||
$sql="select * from crm";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function chkUsr($usr) {
|
||
// ist es ein g?ltiger ERP-Benutzer? Er mu? mindestens 1 x angemeldet gewesen sein.
|
||
global $db;
|
||
$sql="select * from employee where login = '$usr'";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs[0]["id"]) { return $rs[0]["id"]; }
|
||
else { return false; };
|
||
global $db;
|
||
$sql="select * from employee where login = '$usr'";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs[0]["id"]) { return $rs[0]["id"]; }
|
||
else { return false; };
|
||
}
|
||
|
||
function getKdId() {
|
||
// die n?chste freie Kunden-/Lieferantennummer holen
|
||
global $db,$file,$test;
|
||
if ($test) { return "#####"; }
|
||
$sql1="select * from defaults";
|
||
$sql2="update defaults set ".$file."number = '%s'";
|
||
$db->begin();
|
||
$rs=$db->getAll($sql1);
|
||
$nr=$rs[0][$file."number"];
|
||
preg_match("/^([^0-9]*)([0-9]+)/",$nr,$hits);
|
||
if ($hits[2]) { $nr=$hits[2]+1; $nnr=$hits[1].$nr; }
|
||
else { $nr=$hits[1]+1; $nnr=$nr; };
|
||
$rc=$db->query(sprintf($sql2,$nnr));
|
||
if ($rc) {
|
||
$db->commit();
|
||
return $nnr;
|
||
} else {
|
||
$db->rollback();
|
||
return false;
|
||
};
|
||
global $db,$file,$test;
|
||
if ($test) { return "#####"; }
|
||
$sql1="select * from defaults";
|
||
$sql2="update defaults set ".$file."number = '%s'";
|
||
$db->begin();
|
||
$rs=$db->getAll($sql1);
|
||
$nr=$rs[0][$file."number"];
|
||
preg_match("/^([^0-9]*)([0-9]+)/",$nr,$hits);
|
||
if ($hits[2]) { $nr=$hits[2]+1; $nnr=$hits[1].$nr; }
|
||
else { $nr=$hits[1]+1; $nnr=$nr; };
|
||
$rc=$db->query(sprintf($sql2,$nnr));
|
||
if ($rc) {
|
||
$db->commit();
|
||
return $nnr;
|
||
} else {
|
||
$db->rollback();
|
||
return false;
|
||
};
|
||
}
|
||
|
||
function chkKdId($data) {
|
||
// gibt es die Nummer schon?
|
||
global $db,$file,$test;
|
||
$sql="select * from $file where ".$file."number = '$data'";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs[0][$file."number"]==$data) {
|
||
// ja, eine neue holen
|
||
return getKdId();
|
||
} else {
|
||
return $data;
|
||
}
|
||
global $db,$file,$test;
|
||
$sql="select * from $file where ".$file."number = '$data'";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs[0][$file."number"]==$data) {
|
||
// ja, eine neue holen
|
||
return getKdId();
|
||
} else {
|
||
return $data;
|
||
}
|
||
}
|
||
|
||
function chkContact($id) {
|
||
global $db;
|
||
$sql="select * from contact where cp_id = $id";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs[0]["cp_id"]==$id) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
global $db;
|
||
$sql="select * from contact where cp_id = $id";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs[0]["cp_id"]==$id) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function getKdRefId($data) {
|
||
// gibt es die Nummer schon?
|
||
global $db,$file,$test;
|
||
if (empty($data) or !$data) {
|
||
return false;
|
||
}
|
||
$sql="select * from $file where ".$file."number = '$data'";
|
||
$rs=$db->getAll($sql);
|
||
return $rs[0]["id"];
|
||
global $db,$file,$test;
|
||
if (empty($data) or !$data) {
|
||
return false;
|
||
}
|
||
$sql="select * from $file where ".$file."number = '$data'";
|
||
$rs=$db->getAll($sql);
|
||
return $rs[0]["id"];
|
||
}
|
||
|
||
function suchFirma($tab,$data) {
|
||
// gibt die Firma ?
|
||
global $db;
|
||
if (empty($data) or !$data) {
|
||
return false;
|
||
}
|
||
$data=strtoupper($data);
|
||
$sql="select * from $tab where upper(name) like '%$data%'";
|
||
$rs=$db->getAll($sql);
|
||
if (!$rs) {
|
||
$org=$data;
|
||
while(strpos($data," ")>0) {
|
||
$data=ereg_replace(" "," ",$data);
|
||
}
|
||
$data=preg_replace("/[^A-Z0-9]/ ",".*",trim($data));
|
||
$sql="select * from $tab where upper(name) ~ '$data'";
|
||
$rs=$db->getAll($sql);
|
||
if (count($rs)==1) {
|
||
return array("cp_cv_id"=>$rs[0]["id"],"Firma"=>$rs[0]["name"]);
|
||
}
|
||
return false;
|
||
} else {
|
||
return array("cp_cv_id"=>$rs[0]["id"],"Firma"=>$rs[0]["name"]);
|
||
}
|
||
global $db;
|
||
if (empty($data) or !$data) {
|
||
return false;
|
||
}
|
||
$data=strtoupper($data);
|
||
$sql="select * from $tab where upper(name) like '%$data%'";
|
||
$rs=$db->getAll($sql);
|
||
if (!$rs) {
|
||
$org=$data;
|
||
while(strpos($data," ")>0) {
|
||
$data=ereg_replace(" "," ",$data);
|
||
}
|
||
$data=preg_replace("/[^A-Z0-9]/ ",".*",trim($data));
|
||
$sql="select * from $tab where upper(name) ~ '$data'";
|
||
$rs=$db->getAll($sql);
|
||
if (count($rs)==1) {
|
||
return array("cp_cv_id"=>$rs[0]["id"],"Firma"=>$rs[0]["name"]);
|
||
}
|
||
return false;
|
||
} else {
|
||
return array("cp_cv_id"=>$rs[0]["id"],"Firma"=>$rs[0]["name"]);
|
||
}
|
||
}
|
||
|
||
$land=array("DEUTSC"=>"D","FRANKR"=>"F","SPANIE"=>"ES","ITALIE"=>"I","HOLLAN"=>"NL","NIEDER"=>"NL",
|
||
"BELGIE"=>"B","LUXEMB"=>"L","NORWEG"=>"N","FINNLA"=>"","GRIECH"=>"GR","OESTER"=>"A",
|
||
"SCHWEI"=>"CH","SCHWED"=>"S","AUSTRI"=>"A");
|
||
|
||
function mkland($data) {
|
||
global $land;
|
||
$data=strtr($data,array("Ö"=>"OE","Ä"=>"AE","Ü"=>"UE","ö"=>"OE","ä"=>"AE","ü"=>"UE","ß"=>"SS",
|
||
'?'=>'OE','?'=>'AE','?'=>'UE','?'=>'OE','?'=>'AE','?'=>'UE','?'=>'SS'));
|
||
$data=strtoupper(substr($data,0,6));
|
||
$cntr=$land[$data];
|
||
return (strlen($cntr)>0)?$cntr:substr($data,0,3);
|
||
}
|
||
|
||
//Suche Nach Kunden-/Lieferantenummer
|
||
function getFirma($nummer,$tabelle) {
|
||
global $db;
|
||
$nummer=strtoupper($nummer);
|
||
$sql="select id from $tabelle where upper(".$tabelle."number) = '$nummer'";
|
||
$rs=$db->getAll($sql);
|
||
if (!$rs) {
|
||
$nr=ereg_replace(" ","%",$nummer);
|
||
$sql="select id,".$tabelle."number from $tabelle where upper(".$tabelle."number) like '$nr'";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs) {
|
||
$nr=ereg_replace(" ","",$nummer);
|
||
foreach ($rs as $row) {
|
||
$tmp=ereg_replace(" ","",$row[$tabelle."number"]);
|
||
if ($tmp==$nr) return $row["id"];
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
} else {
|
||
return $rs[0]["id"];
|
||
}
|
||
global $db;
|
||
$nummer=strtoupper($nummer);
|
||
$sql="select id from $tabelle where upper(".$tabelle."number) = '$nummer'";
|
||
$rs=$db->getAll($sql);
|
||
if (!$rs) {
|
||
$nr=ereg_replace(" ","%",$nummer);
|
||
$sql="select id,".$tabelle."number from $tabelle where upper(".$tabelle."number) like '$nr'";
|
||
$rs=$db->getAll($sql);
|
||
if ($rs) {
|
||
$nr=ereg_replace(" ","",$nummer);
|
||
foreach ($rs as $row) {
|
||
$tmp=ereg_replace(" ","",$row[$tabelle."number"]);
|
||
if ($tmp==$nr) return $row["id"];
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
} else {
|
||
return $rs[0]["id"];
|
||
}
|
||
}
|
||
|
||
function getAllBG($db) {
|
||
$sql = "select * from buchungsgruppen order by description";
|
||
$rs=$db->getAll($sql);
|
||
return $rs;
|
||
$sql = "select * from buchungsgruppen order by description";
|
||
$rs=$db->getAll($sql);
|
||
return $rs;
|
||
}
|
||
|
||
function anmelden() {
|
||
ini_set("gc_maxlifetime","3600");
|
||
$tmp = @file_get_contents("../config/authentication.pl");
|
||
preg_match("/'db'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbname=$hits[1];
|
||
preg_match("/'password'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbpasswd=$hits[1];
|
||
preg_match("/'user'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbuser=$hits[1];
|
||
preg_match("/'host'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbhost=($hits[1])?$hits[1]:"localhost";
|
||
preg_match("/'port'[ ]*=> '?(.+)'?/",$tmp,$hits);
|
||
$dbport=($hits[1])?$hits[1]:"5432";
|
||
preg_match("/[ ]*\\\$self->\{cookie_name\}[ ]*=[ ]*'(.+)'/",$tmp,$hits);
|
||
$cookiename=$hits[1];
|
||
if (!$cookiename) $cookiename='lx_office_erp_session_id';
|
||
$cookie=$_COOKIE[$cookiename];
|
||
if (!$cookie) header("location: ups.html");
|
||
$auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,$cookie);
|
||
if (!$auth) { return false; };
|
||
$_SESSION["sessid"]=$cookie;
|
||
$_SESSION["cookie"]=$cookiename;
|
||
$_SESSION["employee"]=$auth["login"];
|
||
$_SESSION["mansel"]=$auth["dbname"];
|
||
$_SESSION["dbname"]=$auth["dbname"];
|
||
$_SESSION["dbhost"]=(!$auth["dbhost"])?"localhost":$auth["dbhost"];
|
||
$_SESSION["dbport"]=(!$auth["dbport"])?"5432":$auth["dbport"];
|
||
$_SESSION["dbuser"]=$auth["dbuser"];
|
||
$_SESSION["dbpasswd"]=$auth["dbpasswd"];
|
||
$_SESSION["db"]=new myDB($_SESSION["dbhost"],$_SESSION["dbuser"],$_SESSION["dbpasswd"],$_SESSION["dbname"],$_SESSION["dbport"],$showErr);
|
||
$_SESSION["authcookie"]=$authcookie;
|
||
$sql="select * from employee where login='".$auth["login"]."'";
|
||
$rs=$_SESSION["db"]->getAll($sql);
|
||
if(!$rs) {
|
||
return false;
|
||
ini_set("gc_maxlifetime","3600");
|
||
$tmp = @file_get_contents("../config/authentication.pl");
|
||
preg_match("/'db'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbname=$hits[1];
|
||
preg_match("/'password'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbpasswd=$hits[1];
|
||
preg_match("/'user'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbuser=$hits[1];
|
||
preg_match("/'host'[ ]*=> '(.+)'/",$tmp,$hits);
|
||
$dbhost=($hits[1])?$hits[1]:"localhost";
|
||
preg_match("/'port'[ ]*=> '?(.+)'?/",$tmp,$hits);
|
||
$dbport=($hits[1])?$hits[1]:"5432";
|
||
preg_match("/[ ]*\\\$self->\{cookie_name\}[ ]*=[ ]*'(.+)'/",$tmp,$hits);
|
||
$cookiename=$hits[1];
|
||
if (!$cookiename) $cookiename='lx_office_erp_session_id';
|
||
$cookie=$_COOKIE[$cookiename];
|
||
if (!$cookie) header("location: ups.html");
|
||
$auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,$cookie);
|
||
if (!$auth) { return false; };
|
||
$_SESSION["sessid"]=$cookie;
|
||
$_SESSION["cookie"]=$cookiename;
|
||
$_SESSION["employee"]=$auth["login"];
|
||
$_SESSION["mansel"]=$auth["dbname"];
|
||
$_SESSION["dbname"]=$auth["dbname"];
|
||
$_SESSION["dbhost"]=(!$auth["dbhost"])?"localhost":$auth["dbhost"];
|
||
$_SESSION["dbport"]=(!$auth["dbport"])?"5432":$auth["dbport"];
|
||
$_SESSION["dbuser"]=$auth["dbuser"];
|
||
$_SESSION["dbpasswd"]=$auth["dbpasswd"];
|
||
$_SESSION["db"]=new myDB($_SESSION["dbhost"],$_SESSION["dbuser"],$_SESSION["dbpasswd"],$_SESSION["dbname"],$_SESSION["dbport"],$showErr);
|
||
$_SESSION["authcookie"]=$authcookie;
|
||
$sql="select * from employee where login='".$auth["login"]."'";
|
||
$rs=$_SESSION["db"]->getAll($sql);
|
||
if(!$rs) {
|
||
return false;
|
||
} else {
|
||
if ($rs) {
|
||
$tmp=$rs[0];
|
||
$_SESSION["termbegin"]=(($tmp["termbegin"]>=0)?$tmp["termbegin"]:8);
|
||
$_SESSION["termend"]=($tmp["termend"])?$tmp["termend"]:19;
|
||
$_SESSION["Pre"]=$tmp["pre"];
|
||
$_SESSION["interv"]=($tmp["interv"]>0)?$tmp["interv"]:60;
|
||
$_SESSION["loginCRM"]=$tmp["id"];
|
||
$_SESSION["lang"]=$tmp["countrycode"]; //"de";
|
||
$_SESSION["kdview"]=$tmp["kdview"];
|
||
$sql="select * from defaults";
|
||
$rs=$_SESSION["db"]->getAll($sql);
|
||
$_SESSION["ERPver"]=$rs[0]["version"];
|
||
return true;
|
||
} else {
|
||
if ($rs) {
|
||
$tmp=$rs[0];
|
||
$_SESSION["termbegin"]=(($tmp["termbegin"]>=0)?$tmp["termbegin"]:8);
|
||
$_SESSION["termend"]=($tmp["termend"])?$tmp["termend"]:19;
|
||
$_SESSION["Pre"]=$tmp["pre"];
|
||
$_SESSION["interv"]=($tmp["interv"]>0)?$tmp["interv"]:60;
|
||
$_SESSION["loginCRM"]=$tmp["id"];
|
||
$_SESSION["lang"]=$tmp["countrycode"]; //"de";
|
||
$_SESSION["kdview"]=$tmp["kdview"];
|
||
$sql="select * from defaults";
|
||
$rs=$_SESSION["db"]->getAll($sql);
|
||
$_SESSION["ERPver"]=$rs[0]["version"];
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
|
||
function authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,$cookie) {
|
||
$db=new myDB($dbhost,$dbuser,$dbpasswd,$dbname,$dbport,true);
|
||
$sql="select sc.session_id,u.id from auth.session_content sc left join auth.user u on ";
|
||
$sql.="u.login=sc.sess_value left join auth.session s on s.id=sc.session_id ";
|
||
$sql.="where session_id = '$cookie' and sc.sess_key='login'";// order by s.mtime desc";
|
||
$rs=$db->getAll($sql,"authuser_1");
|
||
if (!$rs) return false;
|
||
$stmp="";
|
||
if (count($rs)>1) {
|
||
header("location:../login.pl?action=logout");
|
||
/*foreach($rs as $row) {
|
||
$stmp.=$row["session_id"].",";
|
||
}
|
||
$sql1="delete from session where id in (".substr($stmp,-1).")";
|
||
$sql2="delete from session_content where session_id in (".substr($stmp,-1).")";
|
||
$db->query($sql1,"authuser_A");
|
||
$db->query($sql2,"authuser_B");
|
||
$sql3="insert into session ";*/
|
||
$db=new myDB($dbhost,$dbuser,$dbpasswd,$dbname,$dbport,true);
|
||
$sql="select sc.session_id,u.id from auth.session_content sc left join auth.user u on ";
|
||
$sql.="u.login=sc.sess_value left join auth.session s on s.id=sc.session_id ";
|
||
$sql.="where session_id = '$cookie' and sc.sess_key='login'";// order by s.mtime desc";
|
||
$rs=$db->getAll($sql,"authuser_1");
|
||
if (!$rs) return false;
|
||
$stmp="";
|
||
if (count($rs)>1) {
|
||
header("location:../login.pl?action=logout");
|
||
/*foreach($rs as $row) {
|
||
$stmp.=$row["session_id"].",";
|
||
}
|
||
$sql="select * from auth.user where id=".$rs[0]["id"];
|
||
$rs1=$db->getAll($sql,"authuser_1");
|
||
if (!$rs1) return false;
|
||
$auth=array();
|
||
$auth["login"]=$rs1[0]["login"];
|
||
$sql="select * from auth.user_config where user_id=".$rs[0]["id"];
|
||
$rs1=$db->getAll($sql,"authuser_2");
|
||
$keys=array("dbname","dbpasswd","dbhost","dbport","dbuser");
|
||
foreach ($rs1 as $row) {
|
||
if (in_array($row["cfg_key"],$keys)) {
|
||
$auth[$row["cfg_key"]]=$row["cfg_value"];
|
||
}
|
||
$sql1="delete from session where id in (".substr($stmp,-1).")";
|
||
$sql2="delete from session_content where session_id in (".substr($stmp,-1).")";
|
||
$db->query($sql1,"authuser_A");
|
||
$db->query($sql2,"authuser_B");
|
||
$sql3="insert into session ";*/
|
||
}
|
||
$sql="select * from auth.user where id=".$rs[0]["id"];
|
||
$rs1=$db->getAll($sql,"authuser_1");
|
||
if (!$rs1) return false;
|
||
$auth=array();
|
||
$auth["login"]=$rs1[0]["login"];
|
||
$sql="select * from auth.user_config where user_id=".$rs[0]["id"];
|
||
$rs1=$db->getAll($sql,"authuser_2");
|
||
$keys=array("dbname","dbpasswd","dbhost","dbport","dbuser");
|
||
foreach ($rs1 as $row) {
|
||
if (in_array($row["cfg_key"],$keys)) {
|
||
$auth[$row["cfg_key"]]=$row["cfg_value"];
|
||
}
|
||
$sql="update auth.session set mtime = '".date("Y-M-d H:i:s.100001")."' where id = '".$rs[0]["session_id"]."'";
|
||
$db->query($sql,"authuser_3");
|
||
return $auth;
|
||
}
|
||
$sql="update auth.session set mtime = '".date("Y-M-d H:i:s.100001")."' where id = '".$rs[0]["session_id"]."'";
|
||
$db->query($sql,"authuser_3");
|
||
return $auth;
|
||
}
|
||
|
||
function getLager($db) {
|
||
$sql="select w.description as ort,bin.id,bin.description as platz from warehouse w left join bin on w.id=bin.warehouse_id";
|
||
$rs=$db->getAll($sql,"getLager");
|
||
return $rs;
|
||
}
|
||
?>
|
lxo-import/parts.bsp | ||
---|---|---|
"partnumber" "ean" "description" "unit" "weight" "notes" "makemodel" "model" "image" "sellprice" "lastcost" "partsgroup" "partsgroup1" "partsgroup2" "partsgroup3" "rop" "partsgroup4" "income_accno" "expense_accno" "microfiche" "art"
|
||
"TI12346" 92384754671 "Importartikel 1" "Stck" 2 "Die Beschreibung zum Artikel" "Lx-System" "LX123" 10 6 "Hardware" "Test" 1.10 184 37 "Mfiche 1" "W"
|
||
"TI12345" 92384754672 "Importartikel 2" 3,1 "Die Beschreibung zum Artikel" "Lx-System" "LX124" 13 8,1 "Hardware" "Test" 184 37 "y" "W"
|
||
"TD2345" "Import Diestleistung" "Std" 125 184 37 "D"
|
lxo-import/partsB.php | ||
---|---|---|
*/
|
||
|
||
|
||
function ende($nr) {
|
||
echo "Abbruch: $nr<br>";
|
||
echo "Fehlende oder falsche Daten.";
|
||
exit(1);
|
||
function ende($txt) {
|
||
echo "Abbruch: $txt<br>";
|
||
exit(1);
|
||
}
|
||
|
||
if (!$_SESSION["db"]) {
|
||
$conffile="../config/authentication.pl";
|
||
if (!is_file($conffile)) {
|
||
ende(4);
|
||
}
|
||
$conffile="../config/authentication.pl";
|
||
if (!is_file($conffile)) {
|
||
ende("authentication.pl nicht gefunden oder kein Leserecht.");
|
||
}
|
||
}
|
||
require ("import_lib.php");
|
||
|
||
if (!anmelden()) ende(5);
|
||
if (!anmelden()) ende("Anmeldung fehlgeschlagen.");
|
||
|
||
/* get DB instance */
|
||
$db=$_SESSION["db"]; //new myDB($login);
|
||
... | ... | |
/* just display page or do real import? */
|
||
if ($_POST["ok"]) {
|
||
|
||
require ("parts_import.php");
|
||
|
||
/* display help */
|
||
if ($_POST["ok"]=="Hilfe") {
|
||
echo "Importfelder:<br>";
|
||
echo "Feldname => Bedeutung<br>";
|
||
foreach($parts as $key=>$val) {
|
||
echo "$key => $val<br>";
|
||
}
|
||
echo "<br>Die erste Zeile enthält die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>";
|
||
echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen können mit ihrem Dezimalwert geführt von einem "#" eingegebn werden (#11).<br><br>";
|
||
echo "Der "sellprice" kann um den eingegeben Wert geändert werden.<br><br>";
|
||
echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgeführt werden oder der Artikel mit anderer Artikelnummer eingefügt werden.<br><br>";
|
||
echo "Jeder Artikel muß einer Buchungsgruppe zugeordnet werden. ";
|
||
echo "Dazu muß entweder in der Maske eine Standardbuchungsgruppe gewählt werden <br>";
|
||
echo "oder es wird ein gültiges Konto in 'income_accno_id' und 'expense_accno_id' eingegeben. ";
|
||
echo "Das Programm versucht dann eine passende Buchungsgruppe zu finden.";
|
||
exit(0);
|
||
};
|
||
|
||
clearstatcache ();
|
||
|
||
$test = $_POST["test"];
|
||
$lager = $_POST["lager"];
|
||
$TextUpd = $_POST["TextUpd"];
|
||
$trenner = ($_POST["trenner"])?$_POST["trenner"]:",";
|
||
$trennzeichen = ($_POST["trennzeichen"])?$_POST["trennzeichen"]:"";
|
||
$precision = $_POST["precision"];
|
||
$quotation = $_POST["quotation"];
|
||
$quottype = $_POST["quottype"];
|
||
$file = "parts";
|
||
|
||
/* no data? */
|
||
if (empty($_FILES["Datei"]["name"]))
|
||
ende (2);
|
||
|
||
/* copy file */
|
||
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) {
|
||
echo "Upload von Datei fehlerhaft.";
|
||
echo $_FILES["Datei"]["error"], "<br>";
|
||
ende (2);
|
||
}
|
||
|
||
/* ??? */
|
||
//if (!chkUsr($login))
|
||
// ende(4);
|
||
|
||
/* ??? */
|
||
//if (!file_exists("../users/$login.conf"))
|
||
// ende(3);
|
||
|
||
/* check if file is really there */
|
||
if (!file_exists("$file.csv"))
|
||
ende(3);
|
||
|
||
/* ??? */
|
||
if (!$db->chkcol($file))
|
||
ende(6);
|
||
|
||
|
||
/* first check all elements */
|
||
echo "Checking data:<br>";
|
||
$_test=$_POST;
|
||
$_test["precision"]=-1;
|
||
$_test["quotation"]=0;
|
||
$_test["lager"]=$_POST["lager"];
|
||
$_test["lagerplatz"]=$_POST["lagerplatz"];
|
||
//$_test["shop"]="n";
|
||
//$_test["wgtrenner"]="!";
|
||
$err = import_parts($db, $file, $trenner, $trennzeichen, $parts, TRUE, FALSE, FALSE,$_test);
|
||
echo "$err Errors found\n";
|
||
|
||
|
||
if ($err!=0)
|
||
exit(0);
|
||
|
||
/* just print data or insert it, if test is false */
|
||
import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, TRUE,$_POST);
|
||
require ("parts_import.php");
|
||
|
||
/* display help */
|
||
if ($_POST["ok"]=="Hilfe") {
|
||
echo "Importfelder:<br>";
|
||
echo "Feldname => Bedeutung<br>";
|
||
foreach($parts as $key=>$val) {
|
||
echo "$key => $val<br>";
|
||
}
|
||
$header=implode(";",array_keys($parts));
|
||
echo $header;
|
||
echo "<br><br>Die erste Zeile enthält die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>";
|
||
echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen können mit ihrem Dezimalwert ";
|
||
echo "geführt von einem "#" eingegebn werden (#11).<br><br>";
|
||
echo "Wird bei "Art" in der Maske "gemischt" gewählt, muss die Spalte "art" vor der Einheit stehen.<br><br>";
|
||
echo "Der "sellprice" kann um den eingegeben Wert geändert werden.<br><br>";
|
||
echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgeführt werden oder ";
|
||
echo "der Artikel mit anderer Artikelnummer eingefügt werden.<br><br>";
|
||
echo "Jeder Artikel muß einer Buchungsgruppe zugeordnet werden. ";
|
||
echo "Dazu muß entweder in der Maske eine Standardbuchungsgruppe gewählt werden <br>";
|
||
echo "oder es wird ein gültiges Konto in 'income_accno_id' und 'expense_accno_id' eingegeben. ";
|
||
echo "Das Programm versucht dann eine passende Buchungsgruppe zu finden.";
|
||
exit(0);
|
||
};
|
||
|
||
clearstatcache ();
|
||
|
||
$test = $_POST["test"];
|
||
$lager = $_POST["lager"];
|
||
$TextUpd = $_POST["TextUpd"];
|
||
$trenner = ($_POST["trenner"])?$_POST["trenner"]:",";
|
||
$trennzeichen = ($_POST["trennzeichen"])?$_POST["trennzeichen"]:"";
|
||
$precision = $_POST["precision"];
|
||
$quotation = $_POST["quotation"];
|
||
$quottype = $_POST["quottype"];
|
||
$file = "parts";
|
||
|
||
/* no data? */
|
||
if (empty($_FILES["Datei"]["name"]))
|
||
ende ("Kein Datenfile angegeben");
|
||
|
||
/* copy file */
|
||
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) {
|
||
ende ("Upload von Datei fehlerhaft.".$_FILES["Datei"]["error"]);
|
||
}
|
||
|
||
/* check if file is really there */
|
||
if (!file_exists("$file.csv") or filesize("$file.csv")==0)
|
||
ende("Datenfile ($file.csv) nicht im Ordner gefunden oder leer");
|
||
|
||
/* Zu diesem Zeitpunkt wurde der Artikel Importiert */
|
||
if (!$db->chkcol($file))
|
||
ende("Importspalte konnte nicht angelegt werden");
|
||
|
||
/* first check all elements */
|
||
$_test=$_POST;
|
||
$_test["precision"]=-1;
|
||
$_test["quotation"]=0;
|
||
$_test["lager"]=$_POST["lager"];
|
||
$_test["lagerplatz"]=$_POST["lagerplatz"];
|
||
|
||
/* just print data or insert it, if test is false */
|
||
import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, $_POST["show"],$_POST);
|
||
|
||
} else {
|
||
$bugrus=getAllBG($db);
|
||
$lagerplatz=getLager($db);
|
||
$bugrus=getAllBG($db);
|
||
?>
|
||
|
||
<p class="listtop">Artikelimport für die ERP<p>
|
||
... | ... | |
<table>
|
||
<tr><td><input type="submit" name="ok" value="Hilfe"></td><td></td></tr>
|
||
<tr><td>Trennzeichen</td><td>
|
||
<input type="radio" name="trenner" value=";" checked>Semikolon
|
||
<input type="radio" name="trenner" value=",">Komma
|
||
<input type="radio" name="trenner" value="#9" checked>Tabulator
|
||
<input type="radio" name="trenner" value=" ">Leerzeichen
|
||
<input type="radio" name="trenner" value="other">
|
||
<input type="text" size="2" name="trennzeichen" value="">
|
||
<input type="radio" name="trenner" value=";" checked>Semikolon
|
||
<input type="radio" name="trenner" value=",">Komma
|
||
<input type="radio" name="trenner" value="#9" checked>Tabulator
|
||
<input type="radio" name="trenner" value=" ">Leerzeichen
|
||
<input type="radio" name="trenner" value="other">
|
||
<input type="text" size="2" name="trennzeichen" value="">
|
||
</td></tr>
|
||
<tr><td>VK-Preis<br>Nachkomma:</td><td><input type="Radio" name="precision" value="0">0
|
||
<input type="Radio" name="precision" value="1">1
|
||
<input type="Radio" name="precision" value="2" checked>2
|
||
<input type="Radio" name="precision" value="3">3
|
||
<input type="Radio" name="precision" value="4">4
|
||
<input type="Radio" name="precision" value="5">5
|
||
</td></tr>
|
||
<input type="Radio" name="precision" value="1">1
|
||
<input type="Radio" name="precision" value="2" checked>2
|
||
<input type="Radio" name="precision" value="3">3
|
||
<input type="Radio" name="precision" value="4">4
|
||
<input type="Radio" name="precision" value="5">5
|
||
</td></tr>
|
||
<tr><td>VK-Preis<br>Aufschlag:</td><td><input type="text" name="quotation" size="5" value="0">
|
||
<input type="radio" name="quottype" value="P" checked>%
|
||
<input type="radio" name="quottype" value="A">Absolut</td></tr>
|
||
<input type="radio" name="quottype" value="P" checked>%
|
||
<input type="radio" name="quottype" value="A">Absolut</td></tr>
|
||
<tr><td>Vorhandene<br>Artikelnummer:</td><td><input type="radio" name="update" value="U" checked>Preis update durchführen<br>
|
||
<input type="radio" name="update" value="I">mit neuer Nummer einfügen</td></tr>
|
||
<input type="radio" name="update" value="I">mit neuer Nummer einfügen</td></tr>
|
||
<tr><td>Kontollausgabe</td><td><input type="checkbox" name="show" value="1" checked>ja</td></tr>
|
||
<tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr>
|
||
<tr><td>Textupdate</td><td><input type="checkbox" name="TextUpd" value="1">ja</td></tr>
|
||
<tr><td>Warengruppen<br>verbinder</td><td><input type="text" name="wgtrenner" value="!" size="3"></td></tr>
|
||
<tr><td>Shopartikel</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="n" checked>nein</td></tr>
|
||
<tr><td>Shopartikel</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="f" checked>nein</td></tr>
|
||
<tr><td>Art</td><td><input type="Radio" name="ware" value="W" checked>Ware
|
||
<input type="Radio" name="ware" value="D">Dienstleistung
|
||
<input type="Radio" name="ware" value="G">gemischt (Spalte 'art' vorhanden)</td></tr>
|
||
<input type="Radio" name="ware" value="D">Dienstleistung
|
||
<input type="Radio" name="ware" value="G">gemischt (Spalte 'art' vorhanden)</td></tr>
|
||
<tr><td>Default Bugru<br></td><td><select name="bugru">
|
||
<? if ($bugrus) foreach ($bugrus as $bg) { ?>
|
||
<option value="<?= $bg["id"] ?>"><?= $bg["description"] ?>
|
||
<? } ?>
|
||
</select>
|
||
<input type="radio" name="bugrufix" value="0">nie<br>
|
||
<input type="radio" name="bugrufix" value="1" checked>für alle Artikel verwenden
|
||
<input type="radio" name="bugrufix" value="2">für Artikel ohne passende Bugru
|
||
</td></tr>
|
||
<tr><td>Default Lager<br></td><td><select name="lager">
|
||
<? if ($lagerplatz) foreach ($lagerplatz as $lp) { ?>
|
||
<option value="<?= $lp["id"] ?>"><?= $lp["ort"] ?>-<?= $lp["platz"] ?>
|
||
<? } ?>
|
Auch abrufbar als: Unified diff
Code überarbeitet
Beispielimportdateien zugefügt