0) : $specialUserTypeIsLoggedIn = true; list($specialUserType, $specialUserHqId, $specialUserFTPServerList, $specialUserObjType, $specialUserObjId, $specialUserDirSpecialForObjType) = $userTypesSpecialArray; if ($objType == $specialUserObjType && $objId == $specialUserObjType) : $hqId = $specialUserHqId; endif; endif; // Check for authentication access $empHasAdminRights = false; if (!$specialUserTypeIsLoggedIn) : $usrAccessArray["hq"] = "1"; authCheckForAccess($hq_id, $usr_id, $emp_id, "1", $customerId, $cscIdRoot, $cscIdActual); if (!(authCheckEmployeeRights($emp_id, "22"))) : gotoReferer("1"); endif; $empIdRootAdmin = getEmpIdOfRootAdmin($userTypeName); if ($empIdRootAdmin != "" && $emp_id == $empIdRootAdmin) : $empHasAdminRights = true; endif; endif; $debug = false; if ($empIdRootAdmin == $emp_id) : $debug = false; endif; if ($f_act != "executeImport" || $executeImportProcess != "1") : $executeImportProcess = ""; endif; // Execute import after check run $showExecutionProcessButton = true; $outText = ""; $closeWindow = "0"; $delimiter = ";"; $fire = true; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $currentDate = getDateTime(3); $objType = strtolower($objType); // Import for special customer ONLY !!!! $csId = ""; $csEid = ""; $cscIdPayer = ""; if ($objType == "cs" && $objId != "" && is_numeric($objId)) : $csId = $objId; endif; if ($objType == "csc" && $objId != "" && is_numeric($objId)) : $cscIdPayer = $objId; $csId = getFieldValueFromClause("costcenter", "cs_id", "csc_id = '" . $cscIdPayer . "'"); endif; $csAddress = array(); $adIdFrom = 0; if ($csId != "") : $hqId = getFieldValueFromClause("customer", "hq_id", "cs_id = '" . $csId . "'"); $csEid = getFieldValueFromClause("customer", "cs_eid", "cs_id = '" . $csId . "'"); // $csAddress = getAddress($csId, "customer"); $csAddress = getAddress($csId, "costcenteraddress"); $adIdFrom = $csAddress["id"]; // USE FOLLOWING FIX ADDRESS // $adIdFrom = "220594"; // Invoice address // $adIdFrom = "125964"; // Pick-up address // $trHsnoFrom = "4"; endif; if ($hqId == "") : $hqId = $hq_id; endif; $cscIdPayerExtern = getParameterValue("0", "CSC_ID_PAYER_EXTERN", $hqId); $pickUpStationFinishedByDefault = false; // Current file to be imported $importFile = urldecode($importFile); $posLastSlash = strripos($importFile, "/"); $posLastSlash++; $pathname = substr($importFile, 0, $posLastSlash); $filename = substr($importFile, $posLastSlash); $outText = "" . getLngt("IMPORTDATEI:") . " " . $filename . "

"; // Mapping "tour id" to "vehicle SID" $tourVehicleArray = array(); if ($hqId == "9000") : // ESSEN $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"; elseif ($hqId == "9001") : // NÜRNBERG /* $tourVehicleArray["299001"] = "N156"; $tourVehicleArray["299002"] = "N157"; $tourVehicleArray["299003"] = "N153"; $tourVehicleArray["299004"] = "N154"; $tourVehicleArray["299005"] = "N155"; $tourVehicleArray["299050"] = "N106"; */ endif; $tourCourierArray = array(); if ($hqId == "9000") : // ESSEN $tourCourierArray["294590"] = "e8020401"; // stepenka 01 $tourCourierArray["294501"] = "e8020402"; // stepenka 02 $tourCourierArray["294502"] = "e8020403"; // stepenka 03 $tourCourierArray["294503"] = "e8020404"; // stepneka 04 $tourCourierArray["294504"] = "e8020405"; // stepenka 05 $tourCourierArray["294505"] = "e8020406"; // stepenka 06 $tourCourierArray["294506"] = "e8020407"; // stepenka 07 $tourCourierArray["294507"] = "e8020408"; // stepenka 08 $tourCourierArray["294508"] = "e8020409"; // stepenka 09 $tourCourierArray["294509"] = "e8020410"; // stepenka 10 $tourCourierArray["294510"] = "e8020411"; // stepenka 11 $tourCourierArray["294511"] = "e8020412"; // stepneka 12 $tourCourierArray["294512"] = "e8020413"; // stepenka 13 $tourCourierArray["294513"] = "e8020414"; // stepenka 14 elseif ($hqId == "9001") : // NÜRNBERG $tourCourierArray["299001"] = "n8124502"; // Hokamp Benjamin 0157 84862698 $tourCourierArray["299002"] = "n8124503"; // Schulz Michael 0152 53666367 $tourCourierArray["299003"] = "n8124504"; // Möller Rene 0171 5823128 $tourCourierArray["299004"] = "n8124505"; // Kirschner Sascha 0152 53910965 $tourCourierArray["299005"] = "n8124506"; // Schulz Thomas 0176 24177518 $tourCourierArray["299050"] = "n8124507"; // Holler Stefan 0157 35374266 endif; // SID array (fix!) $tourSIDArray = array(); if ($hqId == "9000") : // ESSEN $tourSIDArray["294590"] = "E355"; $tourSIDArray["294501"] = "E356"; $tourSIDArray["294502"] = "E357"; $tourSIDArray["294503"] = "E358"; $tourSIDArray["294504"] = "E359"; $tourSIDArray["294505"] = "E360"; $tourSIDArray["294506"] = "E361"; $tourSIDArray["294507"] = "E362"; $tourSIDArray["294508"] = "E363"; $tourSIDArray["294509"] = "E364"; $tourSIDArray["294510"] = "E365"; $tourSIDArray["294511"] = "E366"; $tourSIDArray["294512"] = "E367"; $tourSIDArray["294513"] = "E368"; elseif ($hqId == "9001") : // NÜRNBERG $tourSIDArray["299001"] = "N156"; $tourSIDArray["299002"] = "N157"; $tourSIDArray["299003"] = "N153"; $tourSIDArray["299004"] = "N154"; $tourSIDArray["299005"] = "N155"; $tourSIDArray["299050"] = "N106"; endif; function mcStrWrap($aStr) { $aStr = str_replace("'", "", $aStr); $aStr = removeFieldSigns($aStr); // $aStr = str_replace("'", "\'", $aStr); $aStr = str_replace("\"", '', $aStr); return $aStr; } if ($importFile != "" && $hqId != "" && is_numeric($hqId) && $csId != "" && is_numeric($csId)) : if (file_exists($importFile)) : $currentTime = getDateTime("0"); // *********************** // * IMPORT FILE article * // *********************** if (!(strpos($filename, $csEid . "_import_FAMO_") === false)) : $executionCount = 0; $insertCount = 0; $updateCount = 0; $failedCount = 0; // Check for existence of the imported order number (for the same day ONLY) $gdcEntryExists = false; if (existsEntry("genericdatacontainer",array("gdc_obj_type","cs","gdc_obj_id",$csId,"gdc_gen_fieldname","check_exist","gdc_content",$currentDate,"gdc_context","FAMO"))) : $gdcEntryExists = true; endif; // Do NOT import if FAMO number does exist !!!! if (!$gdcEntryExists) : $remTourNo = ""; $remTrSort = ""; $jbIdNew = 0; $trSort = 2; // Init for 2nd station equals first delivery !!!! $tratSort = 1; // Init all serial numbers !!!! $jobNewArray = array(); $useJbNewArray = false; $rowToImport = array(); $parImportFieldsGroup == ""; if ($groupId != "") : $parImportFieldsGroup = getParameterValue("0", "IMPORT_FAMO_JOB_FIELDS", "0"); endif; if ($parImportFieldsGroup != "") : $rowToImport = spliti(",", $parImportFieldsGroup); else : /* A= Ausliefertag B= Fortlaufende Nummer je Tour C= Leer D= Fahrzeug E= Kundennummer / Kunden von Famo F= Auftragsnummer Famo G= Reihenfolge der Tour H= leer I= leer J= Zeitfenster der von uns geplanten Anlieferung K= PLZ L= Ort M= Straße N = Kundenname O= Brauchen wir aber im Votian Import nicht P= Artikelnummer ( Brauchen wir aber im Votian Import nicht) Q= Brauchen wir aber im Votian Import nicht R= Brauchen wir aber im Votian Import nicht S= Brauchen wir aber im Votian Import nicht T= Brauchen wir aber im Votian Import nicht */ $rowToImport[0] = "f_jb_orderdate"; // A : Bearbeitungsdatum (Ausführungsdatum) $rowToImport[1] = "f_tour_no"; // B : Tour $rowToImport[2] = "f_dummy_01"; // C : ? $rowToImport[3] = "f_vehicle_id"; // D : Fahrzeug $rowToImport[4] = "f_customer_id"; // E : Warenempfänger (spezielle Kundennummer) $rowToImport[5] = "f_order_id"; // F : Fremdauftragsnummer $rowToImport[6] = "f_tr_sort"; // G : Station $rowToImport[7] = "f_dummy_02"; // H : ? $rowToImport[8] = "f_dummy_03"; // I : ? $rowToImport[9] = "f_jb_warningtime"; // J : Gewünschte Anlieferzeit am Ausführungstag $rowToImport[10] = "f_ad_zipcode"; // K : Adresse.PLZ $rowToImport[11] = "f_ad_city"; // L : Adresse.Ort $rowToImport[12] = "f_ad_street_hsno"; // M : Adresse.Straße_Hausnummer $rowToImport[13] = "f_tr_comp"; // N : Firma Anlieferung $rowToImport[14] = "f_dummy_04"; // O : ? $rowToImport[15] = "f_trat_name"; // P : Artikelnummer (Bemerkung) $rowToImport[16] = "f_dummy_05"; // Q : ? $rowToImport[17] = "f_trat_data"; // R : Artikeldaten (Bemerkung) $rowToImport[18] = "f_trat_data2"; // S : Artikeldaten (Bemerkung) $rowToImport[19] = "f_dummy_08"; // T : ? // "f_tr_cs_freetext","f_tr_comp2","f_ad_country","f_trat_packingpieces","f_trat_palets","f_trat_weight","f_tr_phone" endif; $rowToImportLen = count($rowToImport); // Read file to import $data = importCSV($importFile, $delimiter, "1"); $dataLen = count($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]; } $f_tour_no = mcStrWrap($f_tour_no); $f_vehicle_id = mcStrWrap($f_vehicle_id); $f_jb_orderdate = mcStrWrap($f_jb_orderdate); $f_jb_ordertime = "20" . substr($f_jb_orderdate, 4,2) . "-" . substr($f_jb_orderdate, 2,2) . "-" . substr($f_jb_orderdate, 0,2); $f_jb_warningtime = mcStrWrap($f_jb_warningtime); $f_jb_warningtime = $f_jb_ordertime . " " . substr($f_jb_warningtime, 0,2) . ":" . substr($f_jb_warningtime, 3,2) . ":00"; $f_jb_ordertime .= " 06:00:00"; $f_tr_sort = mcStrWrap($f_tr_sort); $f_order_id = mcStrWrap($f_order_id); $f_customer_id = mcStrWrap($f_customer_id); $f_tr_comp = mcStrWrap($f_tr_comp); $f_tr_comp2 = ""; $f_tr_cs_freetext = ""; $f_trat_name = mcStrWrap($f_trat_name); $f_ad_street_hsno = mcStrWrap($f_ad_street_hsno); $f_ad_country = ""; if ($f_ad_country == "" || $f_ad_country == "D") : $f_ad_country = "DE"; endif; $f_ad_zipcode = mcStrWrap($f_ad_zipcode); $f_ad_city = mcStrWrap($f_ad_city); $f_tr_phone = ""; $f_dummy_01 = mcStrWrap($f_dummy_01); $f_trat_packingpieces = ""; $f_trat_palets = ""; $f_trat_weight = ""; // $f_trat_weight = str_replace (",", ".", $f_trat_weight); $f_tr_person = ""; $f_trat_data = mcStrWrap($f_trat_data); $f_trat_data2 = mcStrWrap($f_trat_data2); $f_dummy_04 = mcStrWrap($f_dummy_04); $f_dummy_05 = mcStrWrap($f_dummy_05); $f_dummy_06 = mcStrWrap($f_dummy_06); // $f_jb_totalprice = str_replace (",", ".", $f_jb_totalprice); // $f_tr_commission_no = mcStrWrap($f_tr_commission_no); $f_tr_commission_no = $f_tour_no . "_" . $f_order_id . "_" . $f_tr_sort; $f_trat_remark = $f_trat_data . " " . $f_trat_data2; // Set vehicle and courier $crId = ""; /* $crSid = $tourVehicleArray[$f_tour_no]; if ($crSid != "") : $crId = getFieldValueFromId("courier","cr_sid",$crSid,"cr_id"); endif; */ $crEid = $tourCourierArray[$f_tour_no]; if ($crEid != "") : $crId = getFieldValueFromId("courier","cr_eid",$crEid,"cr_id"); $crSid = $tourSIDArray[$f_tour_no]; endif; $jbStatus = "9"; $jbTaketime = ""; if ($crId != "" && is_numeric($crId)) : // $jbStatus = "1"; // jb_status will be set after the whole job is generated $jbTaketime = $currentTime; $useJbNewArray = true; 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 $f_jb_orderdate . ";" . $f_tour_no . ";" . $f_vehicle_id . ";" . $f_customer_id . ";" . $f_order_id . ";"; echo $f_tr_sort . ";" . $f_jb_warningtime . ";" . $f_ad_zipcode . ";" . $f_ad_city . ";" . $f_ad_street_hsno . ";" . $f_tr_comp . ";"; echo $f_trat_name . ";" . $f_trat_data . ";" . $f_trat_data2 . ";"; echo "
"; // Do NOT import if FAMO number does exist !!!! if (true) : // 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 ($fire) : // [**** JOB ****] // Insert new job because new cartage note does begin if ($remTourNo == "" || $remTourNo != $f_tour_no) : $jbIdNew = ""; // Remove existing tourname updateStmt("job","jb_tourname",$f_tour_no,array("jb_tourname",""), "jb_tourname = '" . $f_tour_no . "'"); // 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_jb_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_tour_no, "jb_finishtime", $jbFinishtime, "jb_warningtime", $f_jb_warningtime, "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", "")); $jbIdNew = getLastInsertId(); $jobNewArray[] = $jbIdNew; $trSort = 2; // Init for 2nd station equals first delivery !!!! $remTourNo = $f_tour_no; endif; // Check for inserted job if ($jbIdNew != "") : // [**** TOUR ****] if ($remTrSort == "" || $remTrSort != $f_tr_sort) : // Insert address $tmpArray = insertAddress($f_ad_street_hsno, $f_ad_zipcode, $f_ad_city, "", $f_ad_country, $noValidationOfAddress); $ad_id_new = $tmpArray[0]; // $outText .= "AD_ID : " . $ad_id_new . " | "; // Insert stations if ($trSort == 2) : $trStatus = "0"; $trFinishtime = ""; if ($pickUpStationFinishedByDefault) : $trStatus = "1"; $trFinishtime = $currentTime; endif; // Insert pick up station during first iteration insertStmt("tour", array("jb_id", $jbIdNew, "ad_id", $adIdFrom, "tr_sort", "1", "tr_comp", "FAMO", "tr_comp2", "", "tr_hsno", $trHsnoFrom, "tr_floor", $f_ad_floor, "csc_id", $cscIdPayer, "tr_status", $trStatus, "tr_finishtime", $trFinishtime, "tr_commission_no", "", "tr_ware_from_to", "", "tr_person", "", "tr_phone", "", "tr_remark", "")); $trIdPickUpNew = getLastInsertID(); endif; insertStmt("tour", array("jb_id", $jbIdNew, "ad_id", $ad_id_new, "tr_sort", $trSort, "tr_comp", $f_tr_comp, "tr_comp2", "", "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_trat_name, "tr_cs_freetext", $f_tr_cs_freetext)); $trIdNew = getLastInsertID(); // Insert tourservice data // !!!! MIT tr_id !!!! insertStmt("tourservice", array("tr_id", $trIdNew, "jb_id", $jbIdNew, "csc_id", $cscIdPayer, "tr_sort", $trSort, 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); // **** // Special patch because of "bug" in function "mk_jb_invtext()" if ($jbIdNew != "" && is_numeric($jbIdNew)) : // updateStmt("job","jb_id",$jbIdNew,array("jb_tourdata",$jbTourdata)); endif; // **** // Fremdauftragsnummer "$f_order_id" insertStmt("genericdatacontainer", array("gdc_obj_type", "tr", "gdc_obj_id", $trIdNew, "gdc_gen_fieldname", "info_0", "gdc_content", $f_order_id, "gdc_context", "FAMO")); // Kundennummer "$f_customer_id" insertStmt("genericdatacontainer", array("gdc_obj_type", "tr", "gdc_obj_id", $trIdNew, "gdc_gen_fieldname", "info_1", "gdc_content", $f_customer_id, "gdc_context", "FAMO")); insertStmt("genericdatacontainer", array("gdc_obj_type", "tr", "gdc_obj_id", $trIdNew, "gdc_gen_fieldname", "info_cust_no", "gdc_content", $f_customer_id, "gdc_context", "FAMO")); $trSort4Trat = $trSort; // To avoid that all articles will be shifted right $trSort++; $executionCount++; $remTrSort = $f_tr_sort; $tratSort = 1; // Init all serial numbers !!!! endif; // Check for inserted station if ($trIdNew != "") : // [**** TOURARTICLE ****] // Insert tourarticle data (delivery stations) insertStmt("tourarticle", array("tr_id", $trIdNew, "jb_id", $jbIdNew, "tr_sort", $trSort4Trat, "trat_sort", $tratSort, "at_id", "", "trat_name", $f_trat_name, "trat_quantity", "0", "trat_weight", $f_trat_weight, "trat_price", "0", "trat_packingpieces", $f_trat_packingpieces, "trat_serialno", $f_trat_name, "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_name", $f_trat_name, "trat_quantity", "0", // "trat_weight", $f_trat_weight, "trat_price", "0", "trat_packingpieces", $f_trat_packingpieces, "trat_serialno", $f_trat_name, // "trat_remark", $f_trat_remark, "trat_createtime", $currentTime)); endif; $tratSort++; endif; endif; TA("C"); TA("E"); endif; endif; else : $outText .= getLngt("Der Datensatz existiert schon! Es erfolgte kein Import!") . " [" . $f_order_id . "]
"; endif; } // Set generated jobs to status "taken" $jobNewArrayLen = count($jobNewArray); if ($jobNewArrayLen > 0) : for ($i = 0; $i < $jobNewArrayLen; $i++) : // updateStmt("job", "jb_id", $jobNewArray[$i], array("jb_status", "1")); endfor; // Write info to check existence by new import insertStmt("genericdatacontainer", array("gdc_obj_type", "cs", "gdc_obj_id", $csId, "gdc_gen_fieldname", "check_exist", "gdc_content", $currentDate, "gdc_context", "FAMO")); endif; $outText .= getLngt("Einträge in der Importdatei: " . $dataLen . "
"); else : $statusMessage .= getLngt("Die angegebene Datei wurde nach der Datenlage vermeintlich schon exportiert! Ein Verarbeitung fand nicht statt!"); endif; $outText .= getLngt("Angelegte Stationen: " . $executionCount . "
"); else : $statusMessage .= getLngt("Die angegebene Datei scheint nicht kompatibel zur angeforderten Importfunktionalität!"); endif; else : $statusMessage .= getLngt("Die angegebene Datei existiert nicht!"); endif; else : $statusMessage .= getLngt("Es wurde keine Datei spezifiziert!"); endif; ?> <?php echo $pageTitel ?>