+++ /dev/null
-<?php
-/*
-Funktionsbibliothek für den Datenimport in Lx-Office ERP
-
-Copyright (C) 2005
-Author: Holger Lindemann
-Email: hli@lx-system.de
-Web: http://lx-system.de
-
-*/
-
-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",
- "business_id" => "BranchenID",
- "salesman_id" => "VerkäuferID",
- //"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(
- "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",
- "ean" => "Barcode",
- "description" => "Artikeltext",
- "unit" => "Einheit",
- "weight" => "Gewicht in Benutzerdefinition",
- "notes" => "Beschreibung",
- "notes1" => "Beschreibung",
- "formel" => "Formel",
- "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",
- "shop" => "Shopexport vorghesehen",
- );
-
-$contactscrm = array(
- "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"
- );
-
-function checkCRM() {
- 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; };
-}
-
-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;
- };
-}
-
-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;
- }
-}
-
-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;
- }
-}
-
-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"];
-}
-/**
- * TODO: short description.
- *
- * @param mixed $tab
- * @param object $own
- * @param mixed $fld
- * @param mixed $val
- *
- * @return TODO
- */
-function insertExtra($tab,$own,$fld,$val) {
- global $db;
- $sql = "insert into extra_felder (fkey,fval,tab,owner) ";
- $sql.= "values ('$fld','$val','$tab','$own')";
- $rc = $db->query($sql);
- return $rc;
-}
-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=str_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"]);
- }
-}
-
-
-//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=str_replace(" ","%",$nummer);
- $sql="select id,".$tabelle."number from $tabelle where upper(".$tabelle."number) like '$nr'";
- $rs=$db->getAll($sql);
- if ($rs) {
- $nr=str_replace(" ","",$nummer);
- foreach ($rs as $row) {
- $tmp=str_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;
-}
-
-function getAllUnits($db,$type) {
- $sql = "select * from units where type = '$type' order by sortkey";
- $rs=$db->getAll($sql);
- return $rs;
-}
-
-function anmelden($login=false,$pwd=false) {
- ini_set("gc_maxlifetime","3600");
- if (file_exists("../config/lx_office.conf")) {
- $lxo = fopen("../config/lx_office.conf","r");
- } else if (file_exists("../config/lx_office.conf.default")) {
- $lxo = fopen("../config/lx_office.conf.default","r");
- } else {
- return false;
- }
- $dbsec = false;
- $tmp = fgets($lxo,512);
- while (!feof($lxo)) {
- if (preg_match("/^[\s]*#/",$tmp)) {
- $tmp = fgets($lxo,512);
- continue;
- }
- if ($dbsec) {
- preg_match("/db[ ]*= (.+)/",$tmp,$hits);
- if ($hits[1]) $dbname=$hits[1];
- preg_match("/password[ ]*= (.+)/",$tmp,$hits);
- if ($hits[1]) $dbpasswd=$hits[1];
- preg_match("/user[ ]*= (.+)/",$tmp,$hits);
- if ($hits[1]) $dbuser=$hits[1];
- preg_match("/host[ ]*= (.+)/",$tmp,$hits);
- if ($hits[1]) $dbhost=($hits[1])?$hits[1]:"localhost";
- preg_match("/port[ ]*= (.+)/",$tmp,$hits);
- if ($hits[1]) $dbport=($hits[1])?$hits[1]:"5432";
- if (preg_match("/\[[a-z]+/",$tmp)) break;
- $tmp = fgets($lxo,512);
- continue;
- }
- preg_match("/[ ]*cookie_name[ ]*=[ ]*(.+)/",$tmp,$hits);
- if ($hits[1]) $cookiename=$hits[1];
- if (preg_match("!\[authentication/database\]!",$tmp)) $dbsec = true;
- $tmp = fgets($lxo,512);
- }
- if (!$cookiename) $cookiename='lx_office_erp_session_id';
- $cookie=$_COOKIE[$cookiename];
- if ($login) {
- $auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,false,$login,$pwd);
- } else {
- $cookie=$_COOKIE[$cookiename];
- if (!$cookie) header("location: ups.html");
- $auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,$cookie,false,false);
- };
- 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;$_SESSION;
- } else {
- return false;
- }
- }
-}
-
-function authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,$cookie,$login,$pwd) {
- $db=new myDB($dbhost,$dbuser,$dbpasswd,$dbname,$dbport,true);
- if ($cookie) {
- $sql="select sc.session_id,u.id from auth.session_content sc left join auth.user u on ";
- $sql.="('--- ' || u.login || E'\\n')=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) {
- 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");
- header("location:../login.pl?action=logout");
- };
- $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");
- $sql="select * from auth.user where id=".$rs[0]["id"];
- } else {
- $sql = "select * from auth.user where login = '$login' and password = '$pwd'";
- }
- $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=".$rs1[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"];
- }
- }
- return $auth;
-}
-
-/**
- * Zeichencode übersetzen
- *
- * @param String $txt
- */
-function translate(&$txt) {
- if (Auto) {
- $encoding = mb_detect_encoding($data,"UTF-8,ISO-8859-1,ISO-8859-15,Windows-1252,ASCII");
- $txt = iconv("$encoding",ServerCode."//TRANSLIT",$txt);
- //$txt = mb_convert_encoding($txt, ServerCode,"$encoding");
- } else {
- $txt = iconv(FileCode,ServerCode."//TRANSLIT",$txt);
- //$txt = mb_convert_encoding($txt, ServerCode,FileCode);
- }
-}
-
-?>