129 lines
3.7 KiB
PHP
129 lines
3.7 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(TT_RIMO_IMPORT_USER_ID);
|
|
|
|
define("INTERNAL_USER_ID", $me->id);
|
|
define("INTERNAL_USER_USERNAME", $me->username);
|
|
define("MFBASE_BYPASS_LOGIN", true);
|
|
|
|
$folder = __DIR__."/input/";
|
|
//$filename = __DIR__."/input/GST60001_V2.csv";
|
|
$now = date("U");
|
|
|
|
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
|
$log = mfLoghandler::singleton();
|
|
|
|
$start = date("U");
|
|
$last_ts = $start;
|
|
|
|
$input_dir = opendir($folder);
|
|
while($file = readdir($input_dir)) {
|
|
if(!preg_match('/\.csv$/', $file)) {
|
|
echo "Skipping $file\n";
|
|
continue;
|
|
}
|
|
$filename = $folder.$file;
|
|
$input = fopen($filename, "r");
|
|
|
|
$bom = "\xef\xbb\xbf";
|
|
if(fgets($input, 4) !== $bom) {
|
|
// BOM not found - rewind pointer to start of file.
|
|
rewind($input);
|
|
}
|
|
|
|
$headers = [];
|
|
$import_date = false;
|
|
|
|
$c = 0;
|
|
$i = 0;
|
|
while($csv = fgetcsv($input, 0, ";")) {
|
|
$i++;
|
|
|
|
|
|
if($i == 1) {
|
|
foreach($csv as $key => $name) {
|
|
$headers[$name] = $key;
|
|
$match = [];
|
|
// EZ #01.10.2024#
|
|
if(preg_match('/EZ #(\d\d)\.(\d\d)\.(\d\d\d\d)/', $name, $match)) {
|
|
$d = $match[1];
|
|
$m = $match[2];
|
|
$y = $match[3];
|
|
|
|
if(!$d || !$m || !$y) {
|
|
die("Kein Datum in EZ Header gefunden ($d, $m, $y)\n");
|
|
}
|
|
|
|
$import_date = "$y-$m-$d";
|
|
$headers["EZ"] = $key;
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
|
|
if(!$import_date) {
|
|
die("Kein Datum in EZ Header gefunden ($import_date)\n");
|
|
}
|
|
|
|
if(!trim($csv[1])) {
|
|
continue;
|
|
}
|
|
|
|
$kgnr = trim($csv[$headers["KG-NR"]]);
|
|
$gstnr = trim($csv[$headers["GST-NR"]]);
|
|
$g = trim($csv[$headers["G"]]);
|
|
$ba = trim($csv[$headers["BA"]]);
|
|
$nu = trim($csv[$headers["NU"]]);
|
|
$tind = trim($csv[$headers["TIND"]]);
|
|
$ind = trim($csv[$headers["IND"]]);
|
|
$flaeche = trim($csv[$headers["FLAECHE"]]);
|
|
$emz = trim($csv[$headers["EMZ"]]);
|
|
$gfn = trim($csv[$headers["GFN"]]);
|
|
$gft = trim($csv[$headers["GFT"]]);
|
|
$kgez = trim($csv[$headers["KG-EZ"]]);
|
|
$ez = trim($csv[$headers["EZ"]]);
|
|
|
|
//echo "kgnr: '$kgnr' gstnr: '$gstnr' g: '$g' ba: '$ba' nu: '$nu' tind: '$tind' ind: '$ind' flaeche: '$flaeche' emz: '$emz' gfn: '$gfn' gft: '$gft' kgez '$kgez' ez: '$ez'\n";
|
|
|
|
$sql = "INSERT INTO `Gwrgst` (`kgnr`,`gstnr`,`g`,`ba`,`nu`,`tind`,`ind`,`flaeche`,`emz`,`gfn`,`gft`,`kgez`,`ez`,`create`,`edit`) VALUES";
|
|
$insert_values[] = "($kgnr,'$gstnr','$g','$ba','$nu','$tind','$ind','$flaeche','$emz','$gfn','$gft','$kgez','$ez',$now,$now)";
|
|
|
|
$c++;
|
|
|
|
if($c % 100000 == 0) {
|
|
runQuery($sql.implode(",", $insert_values), $c);
|
|
$insert_values = [];
|
|
}
|
|
|
|
}
|
|
|
|
if(count($insert_values)) {
|
|
runQuery($sql . implode(",", $insert_values), $c);
|
|
$insert_values = [];
|
|
$c = 0;
|
|
}
|
|
echo "$filename: $i lines imported\n";
|
|
|
|
}
|
|
|
|
function runQuery($sql, $c) {
|
|
global $db;
|
|
global $last_ts;
|
|
|
|
mysqli_query($db->link, $sql);
|
|
|
|
$now = date("U");
|
|
//echo "$c: ".date("Y-m-d H:i:s")." - delta ".($now - $last_ts)."\n";
|
|
$last_ts = $now;
|
|
} |