158 lines
3.8 KiB
PHP
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";
|
|
|