Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision fc47e483

Von Holger Lindemann vor mehr als 15 Jahren hinzugefügt

  • ID fc47e4830133fb0841ae91a63f909ea7ce6d72fe
  • Vorgänger c510d88b
  • Nachfolger 57bf9c89

Code überarbeitet

Beispielimportdateien zugefügt

Unterschiede anzeigen:

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&uuml;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&szlig; vor den Konten kommen",
"inventory_accno" => "Bestandskonto",
"income_accno" => "Erl&ouml;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&szlig; vor den Konten kommen",
"inventory_accno" => "Bestandskonto",
"income_accno" => "Erl&ouml;skonto",
"expense_accno" => "Konto Umsatzkosten",
"obsolete" => "Gesperrt (Y/N)",
"lastcost" => "letzer EK-Preis",
"rop" => "Mindestbestand",
"shop" => "Shopartikel (Y/N)",
"assembly" => "St&uuml;ckliste (Y/N); wird noch nicht unterst&uuml;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&auml;lt die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>";
echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen k&ouml;nnen mit ihrem Dezimalwert gef&uuml;hrt von einem &quot;#&quot; eingegebn werden (#11).<br><br>";
echo "Der &quot;sellprice&quot; kann um den eingegeben Wert ge&auml;ndert werden.<br><br>";
echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgef&uuml;hrt werden oder der Artikel mit anderer Artikelnummer eingef&uuml;gt werden.<br><br>";
echo "Jeder Artikel mu&szlig; einer Buchungsgruppe zugeordnet werden. ";
echo "Dazu mu&szlig; entweder in der Maske eine Standardbuchungsgruppe gew&auml;hlt werden <br>";
echo "oder es wird ein g&uuml;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&auml;lt die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>";
echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen k&ouml;nnen mit ihrem Dezimalwert ";
echo "gef&uuml;hrt von einem &quot;#&quot; eingegebn werden (#11).<br><br>";
echo "Wird bei &quot;Art&quot; in der Maske &quot;gemischt&quot; gew&auml;hlt, muss die Spalte &quot;art&quot; vor der Einheit stehen.<br><br>";
echo "Der &quot;sellprice&quot; kann um den eingegeben Wert ge&auml;ndert werden.<br><br>";
echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgef&uuml;hrt werden oder ";
echo "der Artikel mit anderer Artikelnummer eingef&uuml;gt werden.<br><br>";
echo "Jeder Artikel mu&szlig; einer Buchungsgruppe zugeordnet werden. ";
echo "Dazu mu&szlig; entweder in der Maske eine Standardbuchungsgruppe gew&auml;hlt werden <br>";
echo "oder es wird ein g&uuml;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&uuml;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&uuml;hren<br>
<input type="radio" name="update" value="I">mit neuer Nummer einf&uuml;gen</td></tr>
<input type="radio" name="update" value="I">mit neuer Nummer einf&uuml;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 &nbsp;
<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&uuml;r alle Artikel verwenden
<input type="radio" name="bugrufix" value="2">f&uuml;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"] ?>
<? } ?>
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff