Files
thetool/scripts/import-addresses-no-fibu-num.php
2024-01-04 20:35:42 +01:00

158 lines
3.8 KiB
PHP

#!/usr/bin/php
<?php
//require 'vendor/autoload.php';
require("../config/config.php");
define('FRONKDB_SQLDEBUG',false);
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
require_once(LIBDIR."/mvcfronk/mfRouter/mfRouter.php");
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseModel.php");
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseController.php");
$me = new User(1);
define("INTERNAL_USER_ID", $me->id);
define("INTERNAL_USER_USERNAME", $me->username);
$folder = __DIR__."/import/";
$csvname = "kunden_ohne_fibunr.csv";
$filename = $folder.$csvname;
$name_to_id = [
"Autohaus Lang GmbH" => 1493,
"Camyno GmbH" => 6925,
"Dr. Smetan Martin" => 715,
"EDGBL Ltd." => 6645,
"List Sascha" => 5467,
"Technopark Raaba Holding GmbH" => 4755
];
$db = FronkDB::singleton();
$log = mfLoghandler::singleton();
$input = fopen($filename, "r");
$header_line = "";
$l = 0;
$c = 0;
while($csv = fgetcsv($input, 0, ";")) {
$l++;
if($l == 1) {
$header_line = $csv;
continue;
}
if(!trim($csv[3])) {
continue;
}
//var_dump($csv);exit;
$customer_number = trim($csv[0]);
$supplier_number = trim($csv[2]);
$company = trim($csv[3]);
$street = trim($csv[4]);
$zip = trim($csv[5]);
$city = trim($csv[6]);
$country = trim($csv[7]);
if(!$company) continue;
$address = false;
if(!$customer_number) $customer_number = null;
if(array_key_exists($company, $name_to_id)) {
$address = new Address($name_to_id[$company]);
}
if(!$address) {
if($customer_number) {
$address = AddressModel::getFirst(["customer_number" => $customer_number]);
if(!$address) {
echo "customer number not found $company - $customer_number: to create\n";
$address = AddressModel::create([
'customer_number' => $customer_number,
'company' => $company,
'street' => $street,
'zip' => $zip,
'city' => $city,
'country' => $country,
'firstname' => '',
'lastname' => '',
'phone' => '',
'fax' => '',
'mobile' => '',
'email' => '',
'note' => '',
'create_by' => $me->id,
'edit_by' => $me->id
]);
if(!$address->save()) {
die("Cannot save $company $fibu_supplier_number\n");
}
}
} else {
$address = AddressModel::getFirst([
"company" => $company,
"street" => $street,
"zip" => $zip
]);
if(!$address) {
echo "Adresse nicht gefunden $company, $street, $zip\n";
}
}
}
if($address && !$address->customer_number) {
$address->customer_number = $customer_number;
}
if(!$address || ($address->customer_number && $customer_number && $address->customer_number != $customer_number)) {
echo "creating new ($company, $customer_number)\n";
$address = AddressModel::create([
'customer_number' => $customer_number,
'company' => $company,
'street' => $street,
'zip' => $zip,
'city' => $city,
'country' => $country,
'firstname' => '',
'lastname' => '',
'phone' => '',
'fax' => '',
'mobile' => '',
'email' => '',
'note' => '',
'create_by' => $me->id,
'edit_by' => $me->id
]);
if(!$address->save()) {
die("Cannot save $company $fibu_supplier_number\n");
}
}
$address->save();
if(!$address->customer_number) {
$address->getNewCustomerNumber();
//echo "==================\nbefore customerNum save:\n";
//var_dump($address);
$address->save();
//echo "==================\nafter customerNum save:\n";
//var_dump($address);exit;
}
$csv_out[] = $address->fibu_account_number.";".implode(";", $csv);
}
$out = "fibu_account_number;".implode(";",$header_line)."\n";
$out .= implode("\n",$csv_out);
echo $out."\n";