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

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;
}

 


Revision #1
Created 6 March 2020 13:40:43 by Phillip Langer
Updated 6 March 2020 14:05:51 by Phillip Langer