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);
$currentYear = getDateTime("year");
$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"];
$trHsnoFrom = $csAddress["hsno"];
if ($trHsnoFrom == "") : $trHsnoFrom = "."; endif;
$trCompFrom = $csAddress["comp"];
if ($trCompFrom == "") : $trCompFrom = "STANDARD_02"; endif;
$trFloorFrom = "";
// 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 = true;
// Tourdata array
$jbTourdata = "";
$jbTourdataZipcodeArray = array();
$jbTourdataCityArray = array();
$jbTourdataCountryArray = array();
// 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 == "nnn") :
// NL X
$tourVehicleArray["294501"] = "E501";
$tourVehicleArray["294502"] = "E502";
$tourVehicleArray["294503"] = "E503";
$tourVehicleArray["294504"] = "E504";
....
elseif ($hqId == "mmm") :
// NL Y
endif;
*/
/*
BSP.:
TOUR_NO SID EID NAME FIRSTNAME
294501 E501 e8020201 Schmidt Alexander 0176 62283533
294502 E502 e8020202 Brazinskas Zilvinas 0152 55904274
294503 E503 e8020203 Orakov Anton 0152 01985959
294504 E504 e8020204 Isaak Alexander 0152 53172115
....
$tourCourierArray = array();
$tourCourierArray["294501"] = "e8020201";
$tourCourierArray["294502"] = "e8020202";
$tourCourierArray["294503"] = "e8020203";
$tourCourierArray["294504"] = "e8020204";
....
*/
$tourCourierArray = array();
/*
if ($hqId == "nnn") :
// NL X
$tourCourierArray["294590"] = "e8020401"; // stepenka 01
$tourCourierArray["294501"] = "e8020402"; // stepenka 02
$tourCourierArray["294502"] = "e8020403"; // stepenka 03
$tourCourierArray["294503"] = "e8020404"; // stepneka 04
....
elseif ($hqId == "mmm") :
// NL Y
endif;
// SID array (fix!)
$tourSIDArray = array();
if ($hqId == "107") :
// NL X
$tourSIDArray["294590"] = "E355";
$tourSIDArray["294501"] = "E356";
$tourSIDArray["294502"] = "E357";
$tourSIDArray["294503"] = "E358";
....
elseif ($hqId == "110") :
// NL Y
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_STANDARD_02_") === false)) :
$executionCount = 0;
$insertCount = 0;
$updateCount = 0;
$failedCount = 0;
$remTourNo = "";
$jbIdNew = 0;
$trSort = 2; // Init for 2nd station equals first delivery !!!!
$tratSort = 1; // Init all serial numbers !!!!
$jobNewArray = array();
$rowToImport = array();
$parImportFieldsGroup == "";
if ($groupId != "") :
$parImportFieldsGroup = getParameterValue("0", "IMPORT_STANDARD_02_JOB_FIELDS", "0");
endif;
if ($parImportFieldsGroup != "") :
$rowToImport = spliti(",", $parImportFieldsGroup);
else :
/*
Lfd Datum Auftrag / Tourenverlauf Betrag Fahrzeug
1; 10.03.2016; JIS: Magna Bremen-Daimler Bremen Bordero: 6410-0001; 75,94; HB048
2; 11.03.2016; JIS: Magna Bremen-Daimler Bremen Bordero: 6410-0002; 75,94; HB048
3; 12.03.2016; JIS: Magna Bremen-Daimler Bremen Bordero: 6410-0003; 75,94; HB048
4; 13.03.2016; JIS: Magna Bremen-Daimler Bremen Bordero: 6410-0004; 75,94; HB048
*/
$rowToImport[0] = "f_lfd"; // A : LFD
$rowToImport[1] = "f_tr_orderdate"; // B : Datum (Auftragszeit UND Erledigungszeit)
$rowToImport[2] = "f_inv_text"; // C : Rechnungstext (Auftrag/Tourenverlauf)
$rowToImport[3] = "f_inv_reference"; // D : Kostenstelle/Referenz
$rowToImport[4] = "f_jb_totalprice"; // E : Preis (Betrag)
$rowToImport[5] = "f_crvh_sid"; // F : Fahrzeug
$rowToImport[6] = "f_dummy"; // G : DUMMY
// $rowToImport[6] = "f_discount"; // F : Rabatt
// $rowToImport[7] = "f_markup"; // G : Zuschlag
// $rowToImport[8] = "f_dummy_01"; // H : DUMMY
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 = 1; $j < $dataLen; $j++) {
// Loop for all fields of $fields of the row
for ($i = 0; $i < $rowToImportLen; $i++) {
${$rowToImport[$i]} = $data[$j][$i];
}
$f_lfd = mcStrWrap($f_lfd);
$f_tr_orderdate = mcStrWrap($f_tr_orderdate);
$f_inv_text = mcStrWrap($f_inv_text);
$f_inv_reference = mcStrWrap($f_inv_reference);
$f_jb_totalprice = mcStrWrap($f_jb_totalprice);
$crSid = mcStrWrap($f_crvh_sid);
$f_discount = mcStrWrap($f_discount);
$f_markup = mcStrWrap($f_markup);
// if ($f_special_01 != "") : $f_tr_remark .= "\n
" . getLngt("Besteller") . ": " . $f_special_01; endif;
// if ($f_special_02 != "") : $f_tr_remark .= "\n
" . getLngt("Mobiltelefonnummer") . ": " . $f_special_02; endif;
// Set vehicle and courier
$crId = "";
$vhtId = "";
$doContinue = false;
if ($crSid != "") :
$crId = getFieldValueFromId("couriervehicle","crvh_sid",$crSid,"cr_id");
$vhtId = getFieldValueFromId("couriervehicle", "crvh_sid", $crSid, "vht_id");
if ($crId != "" && is_numeric($crId)) :
$doContinue = true;
endif;
endif;
if ($doContinue) :
$jbStatus = "2";
$jbOrdertime = substr($f_tr_orderdate,6,4) . "-" . substr($f_tr_orderdate,3,2) . "-" . substr($f_tr_orderdate,0,2) . " 08:00:00";
$jbTaketime = "";
if ($crId != "" && is_numeric($crId)) :
$jbTaketime = $jbOrdertime;
endif;
$f_jb_totalprice = str_replace (",", ".", $f_jb_totalprice);
// $f_discount = str_replace (",", ".", $f_discount);
if ($f_discount != "1") :
$f_discount = "0";
endif;
// $f_markup = str_replace (",", ".", $f_markup);
if ($f_markup != "1") :
$f_markup = "0";
endif;
$jbType = "";
$jbFinishtime = $jbOrdertime;
$jbFreetext1 = $f_inv_text . " " . $f_inv_reference;
// $jbFreetext1 = $f_inv_reference;
$trCommissionNo = $f_inv_reference;
$txValue = "4";
$txSign = "V";
$price = 0;
$f_jb_cr_price = 0;
$jbCrvhWeight = 0;
$jbCrvhLength = 0;
$jbCrvhWidth = 0;
$jbCrvhHeight = 0;
$jbCrvhPosition = 0;
if (is_numeric($f_jb_totalprice)) :
$price = $f_jb_totalprice;
$f_jb_cr_price = 0;
$jbCrvhWeight = 0;
$jbCrvhLength = 0;
$jbCrvhWidth = 0;
$jbCrvhHeight = 0;
$jbCrvhPosition = 0;
else :
$doContinue = false;
endif;
endif;
echo $f_lfd . ";" . $f_tr_orderdate . ";" . $f_tr_starttime . ";" . $f_inv_text . ";" . $f_inv_reference . ";" . $f_jb_totalprice . ";" . $f_crvh_sid . ";";
// echo $f_discount . ";" . $f_markup . ";";
echo ";
";
echo "--------------------------------------------------------------------------------------------------------------------------------------------------
";
// Insert job
if ($doContinue && $executeImportProcess == "1") :
// Check for existence of the imported order number (for the same day ONLY)
$gdcEntryExists = false;
if (existsEntry("genericdatacontainer",array("gdc_obj_type","jb","gdc_gen_fieldname","check_exist","gdc_content",$currentYear . "_" . $f_inv_reference,"gdc_context","STANDARD_02"))) :
$gdcEntryExists = true;
endif;
// Do NOT import if STANDARD_02 number does exist on the current day!!!!
if (!$gdcEntryExists) :
// Check debug mode
if ($fire) :
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;
// Postage
$cmpId = getFieldValueFromId("customer", "cs_id", $csId, "cmp_id");
$cmpPostage = getFieldValueFromId("company", "cmp_id", $cmpId, "cmp_postage");
if ($cmpPostage == "" || !is_numeric($cmpPostage)) :
$cmpPostage = 0;
endif;
$csInvmode = getFieldValueFromId("customer", "cs_id", $csId, "cs_invmode");
// Check for customer provision, amount to be stored in "jb_cr_price"
$csProv = 0;
// $useCsProvEnabled = getParameterValue("0", "JB_EDITBATCH_CS_PROV_ENABLED", "0");
$useCsProvEnabled = "1";
if ($useCsProvEnabled == "1") :
$csProv = getFieldValueFromId("customer", "cs_id", $csId, "cs_prov");
if ($csProv == "" || $csProv == 0) :
$csProv = getParameterValue("0", "MASK_CS_PROV_DEFAULT", $hq_id);
$csProv = str_replace (",", ".", $csProv);
if ($csProv == "") :
$csProv = 0;
endif;
endif;
endif;
// Check for absolute customer discount (ATTENTION: Parameter means DISABLED !!!) and check for markup
$csDiscountAbsolute = "0";
$csMarkupFlag = "0";
if ($csId != "") :
// Discount
$csDiscountAbsolute = getFieldValueFromId("customer", "cs_id", $csId, "cs_discount");
// Markup
$csMarkupFlag = getFieldValueFromId("customer", "cs_id", $csId, "cs_markup");
endif;
$csDiscount = "0";
if ($csDiscountAbsolute != 0 && $f_discount == "1") :
$csDiscount = $csDiscountAbsolute;
endif;
$csMarkup = "0";
if ($csMarkupFlag == "1" && $f_markup == "1") :
$csMarkup = "1";
endif;
// Check prices because one of them has to be set only (!!!)
if ($price == "") : $price = 0; endif;
if ($price2 == "") : $price2 = 0; endif;
// Fixprice without markup and without customer discount
$fixPrice = $price;
// Service price
$servicePrice = $price2;
// Compute markup
$subTotalPrice = $price; // Price without markup
$tmpSrvt = $db->getOne("SELECT mt_value FROM metatype WHERE mt_sort = '" . $vhtId . "' AND mt_type= 'vehicletype'");
$final_markup = getFuelMarkup($tmpSrvt, $csId, $hqId, $jbFinishtime);
if ($f_markup == "0" && $final_markup > 0) :
$final_markup = 0;
endif;
// New price containing markup
if ($final_markup > 0) :
$price *= (1 + ($final_markup / 100));
endif;
// Price with markup but without customer discount
$trsPrice = $price;
// Check for absolute customer discount
if ($csDiscountAbsolute > 0) :
$price = ($price * ((100 - $csDiscount) / 100));
$subTotalPrice = ($subTotalPrice * ((100 - $csDiscount) / 100));
endif;
// Courier price
$jbCrPrice = 0;
if (is_numeric($csProv) && $csProv > 0) :
$jbCrPrice = ($price * ((100 - $csProv) / 100));
endif;
// Total price and subtotal price containing the service price
$subTotalPrice = $subTotalPrice + $servicePrice;
$totalPrice = $price + $servicePrice;
insertStmt("job", array("hq_id", $hqId, "vht_id", $vhtId, "vht_id_real", $vhtId, "csc_id_payer", $cscIdPayer, "jb_payment", "0",
"jb_ordertime", $jbOrdertime, "cr_id", $crId, "cr_sid", $crSid, "cr_id_order", $crId,
"jb_taketime", $jbFinishtime, "jb_status", "2", "jb_autoranking", "0", "jb_type", $jbType,
"jb_finishtime", $jbFinishtime, "emp_id", $usrId, "jb_fixprice", $fixPrice, "jb_serviceprice", $servicePrice, "jb_totalprice", $totalPrice, "jb_cr_price", $jbCrPrice,
"jb_subtotalprice", $subTotalPrice, "jb_markup", $final_markup, "jb_postage", $cmpPostage, "jb_invmode", $csInvmode, "jb_freetext_1", $jbFreetext1,
"jb_sales_tax_rate", $txValue, "jb_sales_tax_rate_sign", $txSign,
"jb_automailsent", "997", "jb_booktime", $currentTime));
$jbIdNew = getLastInsertId();
insertStmt("tour", array("jb_id", $jbIdNew, "ad_id", $adIdFrom, "tr_sort", "1", "tr_comp", my_str_check($trCompFrom), "tr_comp2", "",
"tr_hsno", $trHsnoFrom, "csc_id", $cscIdPayer, "tr_status", "1", "tr_signname", "Listenbuchung",
"tr_finishtime", $jbFinishtime, "tr_commission_no", $trCommissionNo));
if ($trsPrice != 0) :
insertStmt("tourservice", array("jb_id", $jbIdNew, "csc_id", $cscIdPayer, "tr_sort", "0",
"srv_id", "0", "trs_srv_name", "Fixpreis", "srvt_id", "0", "trs_srvt_name", "",
"trs_price", $trsPrice, "trs_discount", $csDiscount));
endif;
if ($servicePrice != 0) :
insertStmt("tourservice", array("jb_id", $jbIdNew, "csc_id", $cscIdPayer, "tr_sort", "0",
"srv_id", "0", "trs_srv_name", "Servicepreis", "srvt_id", "0", "trs_srvt_name", "",
"trs_price", $servicePrice, "trs_discount", "0"));
endif;
insertStmt("genericdatacontainer", array("gdc_obj_type", "jb", "gdc_obj_id", $jbIdNew, "gdc_gen_fieldname", "check_exist", "gdc_content", $currentYear . "_" . $f_inv_reference, "gdc_context", "STANDARD_02"));
// Write logdata into log database
writeToLogDB("1",$hq_id,$jbIdNew,$usrId,$crId,$crSid,"","");
// Generate invoice text
mk_jb_invtext($jbIdNew, false);
$executionCount++;
TA("C");
TA("E");
endif;
else :
if ($executeImportProcess == "1") :
$outText .= getLngt("Der Datensatz existiert schon! Es erfolgte kein Import!") . " [" . $f_inv_reference . "]
";
endif;
endif;
else :
if ($executeImportProcess == "1") :
$outText .= getLngt("Der Datensatz wurde nicht importiert! Die Vorlagedaten sind nicht vollständig!") . " [" . $f_inv_reference . "]
";
endif;
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("Die angegebene Datei existiert nicht!");
endif;
else :
$statusMessage .= getLngt("Es wurde keine Datei spezifiziert!");
endif;
?>