creditors.php
Die Lieferantenstammdaten müssen i.d.R. noch normalisiert werden.
Dazu gibt es im Invoice Template einen ausgelieferten UserExit, der diese Aufgabe übernimmt.
Zu den Normalisierungsschritten gehört
- das Setzen einer Firmennummer, wenn keine Firmennummer angegeben wurde
- das Entfernen der Leerzeichen in IBANs
- das Entfernen der Leerzeichen in Umsatzsteueridentifikationsnummern
- das Entfernen von Sonderzeichen in Telefon und Faxnummern
- das Setzen der BLZ auf Basis der IBAN, sofern keine BLZ angeben ist
- das Setzen des Kontos auf Basis der IBAN, sofern keine Konto angeben ist
- die Umschlüsselung von Länderkennzeichen
Hier das ausgelieferte Skript, welches beliebig auf die Anforderungen des Kunden angepasst werden kann:
<?php
function Enhance_Creditors($data){
$logger = Logger::getLogger("main");
// Enhance Company Id
if(isset($data['CompanyId']) == false) $data['CompanyId'] = "1000";
// Enhance IBAN
if(isset($data['IBAN'])){
$data['IBAN'] = strtoupper(str_replace(" ","",$data['IBAN']));
}
// Enhance EU Tax Id
$data['EUTaxId'] = strtoupper(str_replace(" ","",$data['EUTaxId']));
// Enhance Phone
if(isset($data['Phone'])) {
$data['Phone'] = str_replace(" ", "", $data['Phone']);
$data['Phone'] = str_replace("-", "", $data['Phone']);
$data['Phone'] = str_replace("/", "", $data['Phone']);
$data['Phone'] = str_replace("(", "", $data['Phone']);
$data['Phone'] = str_replace(")", "", $data['Phone']);
$data['Phone'] = str_replace("\\", "", $data['Phone']);
}
// Enhance Fax
if(isset($data['Fax'])) {
$data['Fax'] = str_replace(" ", "", $data['Fax']);
$data['Fax'] = str_replace("-", "", $data['Fax']);
$data['Fax'] = str_replace("/", "", $data['Fax']);
$data['Fax'] = str_replace("(", "", $data['Fax']);
$data['Fax'] = str_replace(")", "", $data['Fax']);
$data['Fax'] = str_replace("\\", "", $data['Fax']);
}
// Enhance Bank Code if IBAN is German
if(isset($data['BankCode']) && $data['IBAN']){
if($data['BankCode'] == "" && substr($data['IBAN'],0,2) == "DE"){
$data['BankCode'] = substr($data['IBAN'],4,8);
}
}
// Enhance Bank Account if IBAN is German
if(isset($data['BankAccount']) && $data['IBAN']){
if($data['BankAccount'] == "" && substr($data['IBAN'],0,2) == "DE"){
$data['BankAccount'] = ltrim(substr($data['IBAN'],12,10),"0");
}
}
// Enhance Bank Account delete leading Zeros
if(isset($data['BankAccount'])){
$data['BankAccount'] = ltrim($data['BankAccount'],"0");
}
// Enhance Country Code if EU Tax Id is set or IBAN is set
if($data['CountryCode'] == "" && $data['EUTaxId'] != ""){
$data['CountryCode'] = substr($data['EUTaxId'],0,2);
} elseif($data['CountryCode'] == "" && isset($data['IBAN'])){
$data['CountryCode'] = substr($data['IBAN'],0,2);
} elseif($data['CountryCode'] == "D"){
$data['CountryCode'] = "DE";
} elseif($data['CountryCode'] == "A"){
$data['CountryCode'] = "AT";
} elseif($data['CountryCode'] == "B"){
$data['CountryCode'] = "BE";
} elseif($data['CountryCode'] == "E"){
$data['CountryCode'] = "ES";
} elseif($data['CountryCode'] == "F"){
$data['CountryCode'] = "FR";
} elseif($data['CountryCode'] == "I"){
$data['CountryCode'] = "IT";
} elseif($data['CountryCode'] == "IRL"){
$data['CountryCode'] = "IE";
} elseif($data['CountryCode'] == "USA"){
$data['CountryCode'] = "US";
} elseif($data['CountryCode'] == "S"){
$data['CountryCode'] = "SE";
}
return $data;
}
No Comments