" . getLngt("IMPORTDATEI:") . " " . $filename . "

"; // Mapping "tour id" to "vehicle SID" /* $tourVehicleArray = array(); $tourVehicleArray["294501"] = "E501"; $tourVehicleArray["294502"] = "E502"; $tourVehicleArray["294503"] = "E503"; $tourVehicleArray["294504"] = "E504"; $tourVehicleArray["294505"] = "E505"; $tourVehicleArray["294506"] = "E506"; $tourVehicleArray["294507"] = "E507"; $tourVehicleArray["294508"] = "E508"; $tourVehicleArray["294509"] = "E509"; $tourVehicleArray["294510"] = "E510"; $tourVehicleArray["294511"] = "E511"; $tourVehicleArray["294512"] = "E512"; $tourVehicleArray["294590"] = "E590"; */ $tourCourierArray = array(); /* $tourCourierArray["294501"] = "e8020201"; $tourCourierArray["294502"] = "e8020202"; $tourCourierArray["294503"] = "e8020203"; $tourCourierArray["294504"] = "e8020204"; $tourCourierArray["294505"] = "e8020205"; $tourCourierArray["294506"] = "e8020206"; $tourCourierArray["294507"] = "e8020207"; $tourCourierArray["294508"] = "e8020208"; $tourCourierArray["294509"] = "e8020209"; $tourCourierArray["294510"] = "e8020210"; $tourCourierArray["294511"] = "e8020211"; $tourCourierArray["294512"] = "e8020212"; $tourCourierArray["294590"] = "e8020213"; */ function mcStrWrap($aStr) { $aStr = str_replace("'", "", $aStr); // $aStr = mcDecode($aStr); $aStr = removeFieldSigns($aStr); // $aStr = str_replace("'", "\'", $aStr); $aStr = str_replace("\"", '', $aStr); $aStr = str_replace("ß", "ß", $aStr); $aStr = str_replace("ä", "ä", $aStr); $aStr = str_replace("ö", "ö", $aStr); $aStr = str_replace("ü", "ü", $aStr); $aStr = str_replace("Ä", "Ä", $aStr); $aStr = str_replace("Ö", "Ö", $aStr); $aStr = str_replace("Ü", "Ü", $aStr); return $aStr; } echo "importFile: " . $importFile . "
"; echo "hqId: " . $hqId . "
"; echo "csId: " . $csId . "
"; if ($importFile != "" && $hqId != "" && is_numeric($hqId) && $csId != "" && is_numeric($csId)) : if (file_exists($importFile)) : $currentTime = getDateTime("0"); // The filename contains the execution day !!!! // $tmpJbOrdertime = substr($filename,-12,8); // $jbOrdertime = substr($tmpJbOrdertime,0,4) . "-" . substr($tmpJbOrdertime,4,2) . "-" . substr($tmpJbOrdertime,6,2) . " 08:00:00"; // echo $jbOrdertime . "
"; // $jbOrdertime = checkDateTimeFormat($jbOrdertime); // DISABLED BECAUSE OF PHP VERSION ONLY !!! ACTIVATE AFTER MIGRATION !!! // $checkGmtdatetimeIsValid = strtotime($jbOrdertime); // echo $checkGmtdatetimeIsValid . "
"; // if ($checkGmtdatetimeIsValid != "" && is_int($checkGmtdatetimeIsValid)): if (true): // *********************** // * IMPORT FILE article * // *********************** if (!(strpos($filename, $csEid . "_import_HORNBACH_") === false)) : $executionCount = 0; $insertCount = 0; $updateCount = 0; $failedCount = 0; $remTourNo = ""; $f_tour_no = 1; $remIsPickup = true; $jbIdNew = 0; $trSort = 0; // Init for 1st station $tratSort = 1; // Init all serial numbers !!!! $rowToImport = array(); $parImportFieldsGroup == ""; if ($groupId != "") : $parImportFieldsGroup = getParameterValue("0", "IMPORT_HORNBACH_JOB_FIELDS", "0"); endif; if ($parImportFieldsGroup != "") : $rowToImport = spliti(",", $parImportFieldsGroup); else : /* Station;Datum;Avisiertes Zeitfenster;Auftragsnr.;Name;Straße;Hausnr.;Plz;Ort;Telefonnr.;Kunde;Bemerkungen (Warenart; KG; Stpl.; Zone; Inkasso; Besonderheiten */ $rowToImport[0] = "f_lfd"; // A : Nur fortlaufende Nummer $rowToImport[1] = "f_orderdate"; // B : Tag des Auftragsbeginns $rowToImport[2] = "f_time_window"; // C : Auftragsstartzeit und gewünschte Auftragsendezeit $rowToImport[3] = "f_tr_commission_no"; // D : Kundenauftragsnummer $rowToImport[4] = "f_tr_comp"; // E : Kunde / Firma $rowToImport[5] = "f_ad_street"; // F : Straße $rowToImport[6] = "f_tr_hsno"; // G : Hausnummer $rowToImport[7] = "f_ad_zipcode"; // H : PLZ $rowToImport[8] = "f_ad_city"; // I : Ort $rowToImport[9] = "f_tr_phone"; // J : Telefon $rowToImport[10] = "f_tr_remark"; // K : Bemerkung $rowToImport[11] = "f_dummy_01"; // L : ? endif; $rowToImportLen = count($rowToImport); // Read file to import $data = importCSV($importFile, $delimiter, "1"); $dataLen = count($data); echo "Datensätze: " . ($dataLen - 1) . "
"; // print_r($data); // Loop all rows (EXCEPT header row [$j = 1]) for ($j = 0; $j < $dataLen; $j++) { // Loop for all fields of $fields of the row for ($i = 0; $i < $rowToImportLen; $i++) { ${$rowToImport[$i]} = $data[$j][$i]; } // Check for existing headline if ($j > 0) : $f_lfd = mcStrWrap($f_lfd); $f_orderdate = mcStrWrap($f_orderdate); $f_time_window = mcStrWrap($f_time_window); $f_tr_commission_no = mcStrWrap($f_tr_commission_no); $f_tr_comp = mcStrWrap($f_tr_comp); $f_ad_street = mcStrWrap($f_ad_street); $f_tr_hsno = mcStrWrap($f_tr_hsno); $f_ad_zipcode = mcStrWrap($f_ad_zipcode); $f_ad_city = mcStrWrap($f_ad_city); $f_tr_phone = mcStrWrap($f_tr_phone); $f_tr_remark = mcStrWrap($f_tr_remark); // Ordertime by order date and time window $f_ordertime = substr($f_orderdate,6,4) . "-" . substr($f_orderdate,3,2) . "-" . substr($f_orderdate,0,2); $f_warningtime = $f_ordertime; if ($f_time_window != "") : $orderClockTime = " " . substr($f_time_window,0,2) . ":" . substr($f_time_window,3,2) . ":00"; $warningClockTime = " " . substr($f_time_window,8,2) . ":" . substr($f_time_window,11,2) . ":00"; else : $orderClockTime = " 08:00:00"; $warningClockTime = " 08:00:00"; endif; // Special static handling per headquarters if ($hqId == "111") : $orderClockTime = " 07:30:00"; $warningClockTime = " 07:30:00"; endif; $f_ordertime .= $orderClockTime; $f_warningtime .= $warningClockTime; $f_tr_person = $f_tr_comp; // Set vehicle and courier $crId = ""; $jbStatus = "9"; $jbTaketime = ""; if ($crId != "" && is_numeric($crId)) : $jbStatus = "1"; $jbTaketime = $currentTime; endif; $jbType = "2"; // Init with job type "G" $jbFinishtime = ""; $jbRemark = ""; $vhtId = ""; $jbCrFilter = ""; $sum_totalprice = 0; $f_jb_cr_price = 0; $jbCrvhWeight = 0; $jbCrvhLength = 0; $jbCrvhWidth = 0; $jbCrvhHeight = 0; $jbCrvhPosition = 0; echo "------------------------------------------------------
"; echo "f_tour_no: " . $f_tour_no . "
"; echo "f_lfd: " . $f_lfd . "
"; echo "f_orderdate: " . $f_orderdate . "
"; echo "f_time_window: " . $f_time_window . "
"; echo "f_ordertime: " . $f_ordertime . "
"; echo "f_warningtime: " . $f_warningtime . "
"; echo "f_tr_commission_no: " . $f_tr_commission_no . "
"; echo "f_tr_comp: " . $f_tr_comp . "
"; echo "f_tr_person: " . $f_tr_person . "
"; echo "f_ad_street: " . $f_ad_street . "
"; echo "f_tr_hsno: " . $f_tr_hsno . "
"; echo "f_ad_zipcode: " . $f_ad_zipcode . "
"; echo "f_ad_city: " . $f_ad_city . "
"; echo "f_tr_phone: " . $f_tr_phone . "
"; echo "f_tr_remark: " . $f_tr_remark . "
"; // Check for existence of the imported "tour name" AND "station number" (unique for station) $gdcEntryExists = false; if (existsEntry("genericdatacontainer",array("gdc_obj_type","tr","gdc_gen_fieldname","check_exist","gdc_content",$f_orderdate . " " . $f_tr_commission_no,"gdc_context","HORNBACH"))) : $gdcEntryExists = true; endif; // Do NOT import if HORNBACH number does exist !!!! if (!$gdcEntryExists) : // Insert new article if ($executeImportProcess == "1") : TA("B"); if ($cscIdPayer == "") : // Get root costcenter $cscIdPayer = getFieldValueFromClause("costcenter", "csc_id", "cs_id = '" . $csId . "' AND (isnull(csc_pre_id) OR csc_pre_id = '')"); endif; /* $crId = ""; $crSid = ""; if ($crvhId != "") : $crId = getFieldValueFromId("couriervehicle","crvh_id",$crvhId,"cr_id"); if ($crId != "") : $crSid = $vhtPrefix . $f_crvh_sid; endif; endif; */ $txValue = "4"; $txSign = "V"; $noValidationOfAddress = true; if ($remTourNo == "" || $remTourNo == $f_tour_no) : if ($jbTourdataZipcode != "") : $jbTourdataZipcode .= ";"; endif; $jbTourdataZipcode .= $f_ad_zipcode; if ($jbTourdataCity != "") : $jbTourdataCity .= ";"; endif; $jbTourdataCity .= $f_ad_city; if ($jbTourdataCountry != "") : $jbTourdataCountry .= ";"; endif; $jbTourdataCountry .= "DE"; endif; // Insert address if ($f_ad_street == "" || $f_ad_zipcode == "" || $f_ad_city == "") : $noValidationOfAddress = "1"; endif; if ($f_ad_zipcode != "" && $f_ad_city != "") : $tmpArray = insertAddress($f_ad_street, $f_ad_zipcode, $f_ad_city, "", $f_ad_country, $noValidationOfAddress); $ad_id_new = $tmpArray[0]; $isPickup = false; else : $ad_id_new = $address["id"]; $f_tr_hsno = $address["hsno"]; $isPickup = true; endif; // $outText .= "AD_ID : " . $ad_id_new . " | "; // If current station IS "pickup" AND the station before was NOT "pickup" then start next tour // Check last stations if ($j < 1 || $j >= ($dataLen - 2)) : $remIsPickup = true; endif; echo "isPickup : " . ($isPickup ? "YES" : "NO") . "     remIsPickup : " . ($remIsPickup ? "YES" : "NO") . "
"; if ($isPickup && !$remIsPickup) : $f_tour_no++; $remIsPickup = $isPickup; endif; // Tourname $f_jb_tourname = $f_tr_comp . " " . $f_orderdate . " " . $f_tour_no; if ($fire) : // Insert new job because new cartage note does begin if ($remTourNo == "" || $remTourNo != $f_tour_no) : // Finalize currently imported job // Write "jb_tourdata" of the job currently imported if ($remTourNo != "" && $jbIdNew != "" && is_numeric($jbIdNew)) : $jbTourdata = $jbTourdataZipcode . "|" . $jbTourdataCity . "|" . $jbTourdataCountry; updateStmt("job","jb_id",$jbIdNew,array("jb_tourdata",$jbTourdata)); endif; // Remove existing tourname updateStmt("job","jb_tourname",$f_jb_tourname,array("jb_tourname",""), "jb_tourname = '" . $f_jb_tourname . "'"); // Tour data /* if ($jbIdNew != "" && is_numeric($jbIdNew)) : // updateStmt("job","jb_id",$jbIdNew,array("jb_tourdata",$jbTourdata)); endif; */ $jbIdNew = ""; // Init // Insert job insertStmt("job", array("hq_id", $hqId, "csc_id", "", "vht_id", $vhtId, "csc_id_payer", $cscIdPayer, "csc_id_related", "0", "jb_payment", "0", "jb_ordertime", $f_ordertime, "jb_reserv", "1", "cr_id", $crId, "cr_sid", $crSid, "cr_id_order", $crId, "jb_cr_filter", $jbCrFilter, "jb_cr_filter_opt", "", "jb_waitstorno", "0", "jb_taketime", $jbTaketime, "jb_status", $jbStatus, "jb_autoranking", "0", "jb_type", $jbType, "jb_incomplete", "0", "jb_globaljob", "0", "jb_tourname", $f_jb_tourname, "jb_finishtime", $jbFinishtime, "emp_id", $usr_id, "jb_serviceprice", "0", "jb_fixprice", $sum_totalprice, "jb_totalprice", $sum_totalprice, "jb_subtotalprice", $sum_totalprice, "jb_cr_price", $f_jb_cr_price, "jb_cr_subprice", $f_jb_cr_price, "jb_postage", "0", "jb_freetext_1", $jbRemark, "jb_weight", $jbCrvhWeight, "jb_crvh_length", $jbCrvhLength, "jb_crvh_width", $jbCrvhWidth, "jb_crvh_height", $jbCrvhHeight, "jb_crvh_position", $jbCrvhPosition, "jb_tourdata", $jbTourdata, "jb_lockuser", "0", "jb_id_parent", "0", "jb_dispoinfo", "", "jb_sales_tax_rate", $txValue, "jb_sales_tax_rate_sign", $txSign, "jb_timeunits", "0", "jb_service", "", "jb_booktime", "", "jb_warningtime", $f_warningtime, "jb_createtime", $currentTime)); $jbIdNew = getLastInsertId(); $trSort = 0; $remTourNo = $f_tour_no; $remIsPickup = true; // Init for the next job to be imported $jbTourdata = ""; // Init with current values $jbTourdataZipcode = $f_ad_zipcode; $jbTourdataCity = $f_ad_city; $jbTourdataCountry = "DE"; endif; // Check for inserted job if ($jbIdNew != "") : $trSort++; insertStmt("tour", array("jb_id", $jbIdNew, "ad_id", $ad_id_new, "tr_sort", $trSort, "tr_comp", $f_tr_comp, "tr_comp2", "", "tr_hsno", $f_tr_hsno, "csc_id", $cscIdPayerExtern, "tr_status", "0", "tr_commission_no", $f_tr_commission_no, "tr_ware_from_to", "", "tr_person", $f_tr_person, "tr_phone", $f_tr_phone, "tr_remark", $f_tr_remark, "tr_cs_freetext", $f_tr_cs_freetext)); $trIdNew = getLastInsertID(); // Insert tourservice data insertStmt("tourservice", array("tr_id", $trIdNew, "jb_id", $jbIdNew, "csc_id", $cscIdPayer, "tr_sort", $trSort, "srv_id", "0", "trs_srv_name", "Fixpreis", "srvt_id", "0", "trs_srvt_name", "", "trs_price", $sum_totalprice)); // Generate invoice text // mk_jb_invtext($jbIdNew, false); // Tourname // insertStmt("genericdatacontainer", array("gdc_obj_type", "tr", "gdc_obj_id", $trIdNew, "gdc_gen_fieldname", "check_exist", "gdc_content", $f_orderdate . " " . $f_tr_commission_no, "gdc_context", "HORNBACH")); // Insert tourarticle data (delivery stations) /* insertStmt("tourarticle", array("tr_id", $trIdNew, "jb_id", $jbIdNew, "tr_sort", $trSort, "trat_sort", "1", "at_id", "", "trat_quantity", "0", "trat_weight", $f_trat_weight, "trat_price", "0", "trat_packingpieces", $f_trat_packingpieces, "trat_serialno", $f_tr_commission_no, "trat_remark", $f_trat_remark, "trat_createtime", $currentTime)); */ // Insert tourarticle data (pick up station only) // ATTENTION: Execution only if pick-up station is NOT finished by default /* if (!$pickUpStationFinishedByDefault) : insertStmt("tourarticle", array("tr_id", $trIdPickUpNew, "jb_id", $jbIdNew, "tr_sort", "1", "trat_sort", $tratSort, "at_id", "", "trat_quantity", "0", "trat_weight", $f_trat_weight, "trat_price", "0", "trat_packingpieces", $f_trat_packingpieces, "trat_serialno", $f_tr_commission_no, "trat_remark", $f_trat_remark, "trat_createtime", $currentTime)); $tratSort++; endif; */ $executionCount++; endif; TA("C"); TA("E"); endif; endif; else : $outText .= getLngt("Der Datensatz existiert schon! Es erfolgte kein Import!") . " [" . $f_order_id . "]
"; endif; endif; // Check for headline } // If at least onne imported job does exist ($jbIdNew > 0) then finalize last imported job // Write "jb_tourdata" of the job currently imported if ($jbIdNew != "" && is_numeric($jbIdNew)) : $jbTourdata = $jbTourdataZipcode . "|" . $jbTourdataCity . "|" . $jbTourdataCountry; updateStmt("job","jb_id",$jbIdNew,array("jb_tourdata",$jbTourdata)); endif; $outText .= getLngt("Einträge in der Importdatei: " . $dataLen . "
"); $outText .= getLngt("Verarbeitete Einträge: " . $executionCount . "
"); else : $statusMessage .= getLngt("Die angegebene Datei scheint nicht kompatibel zur angeforderten Importfunktionalität!"); endif; else : $statusMessage .= getLngt("Das Datum für den Ausführungstag im Dateinamen scheint nicht korrekt! Bitte folgendes Format für den Dateinamen verwenden: import_HORNBACH_YYYYMMDD.csv"); endif; else : $statusMessage .= getLngt("Die angegebene Datei existiert nicht!"); endif; else : $statusMessage .= getLngt("Es wurde keine Datei spezifiziert!"); endif; ?> <?php echo $pageTitel ?>