1000) : $maskJoblistBrowseMax = 100; endif; $maskJoblistShowUpToVht = getParameterValue($emp_id, "MASK_JOBLIST_SHOW_UPTO_VHT"); if ($maskJoblistShowUpToVht == "0" || !is_numeric($maskJoblistShowUpToVht)) : $maskJoblistShowUpToVht = ""; endif; $maskJoblistModeJobNum = getParameterValue($emp_id, "MASK_JOBLIST_MODE_JOB_NUM"); $maskJoblistModeRefresh = getParameterValue($emp_id, "MASK_JOBLIST_MODE_REFRESH"); $maskJoblistGetCourierData = getParameterValue($emp_id, "MASK_JOBLIST_GET_COURIER_DATA"); // Get minutes to be added to the ordertime a taken AD HOC job will be declared with a warning $maskJoblistTakenJobOrdertimePlusOffsetMinutes = getParameterValue("0", "MASK_TAKEN_JOB_ORDERTIME_PLUSOFFSETMINUTES", $hq_id); // Get minutes to be added to the ordertime a taken RESERVATION job will be declared with a warning $maskJoblistTakenReservationJobOrdertimePlusOffsetMinutes = getParameterValue("0", "MASK_TAKEN_JOB_ORDERTIME_RESERVATION_PLUSOFFSETMINUTES", $hq_id); // Table header fields $maskJoblistHeaderFieldsBgColJbOrdertime = getParameterValue("0", "MASK_JOBLIST_HEADERFIELD_BGCOL_ORDERTIME", $hq_id); if ($maskJoblistHeaderFieldsBgColJbOrdertime == "") : $maskJoblistHeaderFieldsBgColJbOrdertime = getParameterValue("0", "MASK_JOBLIST_HEADERFIELD_BGCOL_ORDERTIME", "0"); endif; $maskJoblistHeaderFieldsBgColJbDispoinfo = getParameterValue("0", "MASK_JOBLIST_HEADERFIELD_BGCOL_DISPOINFO", $hq_id); if ($maskJoblistHeaderFieldsBgColJbDispoinfo == "") : $maskJoblistHeaderFieldsBgColJbDispoinfo = getParameterValue("0", "MASK_JOBLIST_HEADERFIELD_BGCOL_DISPOINFO", "0"); endif; // Get GLOBAL parameter for the number of hops (to be searched in) $jobHopsToBeSearchedIn = ""; if ($filter_searchdeep == "checked" || $jb_status == "1") : $jobHopsToBeSearchedIn = getParameterValue("0", "JOBLIST_NUM_OF_HOPS", "0"); endif; if ($jobHopsToBeSearchedIn == "" || !is_numeric($jobHopsToBeSearchedIn)) : $jobHopsToBeSearchedIn = "6"; // Default endif; // Get customers for displaying the jobs with special colour $csIdColArray = getColVectorFromDB2ArrayByClause("parameter", "par_value", "par_key LIKE 'JOBLIST_CS_JB_COLOR%'", "SUBSTR(par_key,21) AS par_key"); $csIdColKeyArray = array_keys($csIdColArray); // *** Save job-informations (Begin) *** if ($f_act == "storno" && $jb_id_storno != "" && ($jb_storno_costs == "1" || $jb_storno_costs == "2")) : // Set the current timestamp to store the data $currentTime = getDateTime("0"); // Update the job-entry: // jb_storno = 1 or 2 (selectable by hq), jb_status = 2 (finished), jb_finishtime = NOW() TA("B"); // Get current jb_status and cr_id of the storno job $jbStatus = getFieldValueFromId("job","jb_id",$jb_id_storno,"jb_status"); $crId = getFieldValueFromId("job","jb_id",$jb_id_storno,"cr_id"); $crIdOrder = getFieldValueFromId("job","jb_id",$jb_id_storno,"cr_id_order"); $jbStatusString = " (jb_status = '8' OR jb_status = '9' OR jb_status = '0' OR jb_status = '1') "; if (is_numeric($jb_status)) : $jbStatusString = "jb_status = '" . $jb_status . "'"; else : if ($jb_status == "ALL") : $jbStatusString = "jb_status = '" . $jbStatus . "'"; endif; endif; $jbStatusString .= " AND (isnull(jb_export_time) OR jb_export_time = '' OR jb_export_time = '0000-00-00 00:00:00' OR jb_export_time = '9999-12-31 23:59:59')"; $res = updateStmt("job", "jb_id", $jb_id_storno, array("jb_storno", $jb_storno_costs, "usr_id_storno", $usr_id, "jb_status" , "2", "jb_finishtime", $currentTime), "(" . $jbStatusString . " AND (isnull(jb_storno) OR jb_storno = '0'))"); if ($db->affected_rows > 0) : // Insert PDA command to remove job (take cr_id/cr_id_order before changing) if ($jbStatus == "1") : if ($crId != "" && $crId != "0") : insertPDACommand($hq_id, $crId, "3", "1", $jb_id_storno, $currentTime, ""); insertPDACommand($hq_id, $crId, "8", "1", $jb_id_storno, $currentTime, ""); endif; if ($crIdOrder != "" && $crIdOrder != "0" && $crIdOrder != $crId) : insertPDACommand($hq_id, $crIdOrder, "3", "1", $jb_id_storno, $currentTime, ""); insertPDACommand($hq_id, $crIdOrder, "8", "1", $jb_id_storno, $currentTime, ""); endif; endif; // Check for storno-job has a standing order $jbPermanent = getFieldValueFromId("job","jb_id",$jb_id_storno,"jb_permanent"); if ($jbPermanent != "" && $jbPermanent > "0") : // Check for the continued existence of the standing order rule if ($jb_storno_rhythm == "2") : // Update row for termnination of the standing order updateStmt("job", "jb_id", $jb_id_storno, array("jb_permanent", "0")); endif; endif; // Remove payment entry/entries from table "jobpayment" for the job if not being exported $removedFromJbp = false; if ($jb_storno_jbp_id != "" && is_numeric($jb_storno_jbp_id)) : // Remove ALL payments if NOT be exported deleteStmt("jobpayment","jb_id = '" . $jb_id_storno . "' AND (jbpc_id = '' OR jbpc_id = '0')"); // Check for removal $jbpcJbId = getFieldValueFromId("jobpayment","jbp_id",$jb_storno_jbp_id,"jb_id"); if ($jbpcJbId == "") : $removedFromJbp = true; $statusMessage = getLngt("ACHTUNG: Die Einnahmenbuchung dieses stornierten Auftrags wurde gelöscht, da noch KEIN Export stattfand!"); else : $statusMessage = getLngt("ACHTUNG: Die Einnahmenbuchung dieses stornierten Auftrags wurde schon exportiert und kann deshalb NICHT gelöscht werden!"); endif; endif; // Remove reservation entry from table "vehicledisposition" if FDS is enabled $removedFromFDS = false; if ($fastDispositionStructureEnabled == "1") : $removedFromFDS = removeAssocCrvhJb($jb_id_storno, "", "", "1"); endif; // Storno "addmont" job $gdcContentIdAddMon = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'jb' AND gdc_gen_fieldname = 'jb_id_addmont' AND gdc_obj_id = '" . $jb_id_storno . "'"); if ($gdcContentIdAddMon != "" && is_numeric($gdcContentIdAddMon)) : updateStmt("job", "jb_id", $gdcContentIdAddMon, array("jb_storno", "2", "jb_status", "2", "jb_incomplete", "1", "jb_finishtime", $currentTime)); endif; // Get all stations (tr_id) of the job to remove potential existing "check_exist" entries in GDC (as result of import) to enable a new import after cancellation $trIdArray = getColVectorFromDB2ArrayByClause("tour", "tr_id", "jb_id = '" . $jb_id_storno . "'"); if (count($trIdArray) > 0) : deleteStmt("genericdatacontainer","gdc_obj_type = 'tr' AND gdc_gen_fieldname = 'check_exist' AND gdc_obj_id IN (" . implode(",", $trIdArray) . ")"); endif; deleteStmt("genericdatacontainer","gdc_obj_type = 'jb' AND gdc_gen_fieldname = 'check_exist' AND gdc_obj_id = '" . $jb_id_storno . "'"); $jb_id_insurance = $db->getOne("SELECT gdc_content FROM genericdatacontainer WHERE gdc_obj_type = 'jb' AND gdc_obj_id = " . $jb_id_storno . " AND gdc_gen_fieldname = 'jb_id_insurance'"); if ($jb_id_insurance != "") { deleteStmt("genericdatacontainer", "gdc_obj_type = 'jb' AND gdc_obj_id = " . $jb_id_storno . " AND gdc_gen_fieldname = 'jb_id_insurance'"); deleteStmt("job", "jb_id = " . $jb_id_insurance); deleteStmt("tour", "jb_id = " . $jb_id_insurance); deleteStmt("tourservice", "jb_id = " . $jb_id_insurance); } // Write logdata into log database writeToLogDB("10",$hq_id,$jb_id_storno,$currentSessionUsrId,"","","","COSTS=" . ($jb_storno_costs == "1" ? "YES" : "NO") . "|JB_RHYTHM_DEL=" . $jb_storno_rhythm . "|JBP_REMOVAL=" . ($removedFromJbp ? "YES" : "NO") . "|FDS_REMOVAL=" . ($removedFromFDS ? "YES" : "NO")); // Call for generation of a new job with negative invoice data if ($globalParUseRelatedCustomer != "1") : copy_job($jb_id_storno, $jb_storno_costs, $jbStatus, true); else : // Remove commission no. updateStmt("tour", "jb_id", $jb_id_storno, array("tr_commission_no", "")); endif; // **** Send cancellation mail if enabled for payer **** // Exclude jobs with special vehicles (E.g.: Do not generate a mail if internal job is generated with vehicle SID=1888) $excludedVehicles = getParameterValue("0", "EMAIL_CRVHSID_NO_MAIL", "0"); // "Meta-Global" <=> hq_id = 0 $whereClauseExcludedVehicles = ""; if ($excludedVehicles != "") : $tmp = spliti(",",$excludedVehicles); $lenTmp = count($tmp); for ($i = 0; $i < $lenTmp; $i++) { $whereClauseExcludedVehicles .= " jb.cr_sid != '" . $tmp[$i] . "' AND "; }; endif; $whereClauseExcludedVehicles = " "; $sqlquery = "SELECT usr.usr_email, jb.cr_sid, jb.hq_id, cs.cs_jbstatusmail2csc, cscad.cscad_email, cs.cs_id" . " FROM job AS jb, costcenter AS csc, customer AS cs, costcenteraddress AS cscad, employee AS emp, user AS usr" . " WHERE jb.jb_id = '" . $jb_id_storno . "' AND" . " jb.jb_offer = '0' AND" . $whereClauseExcludedVehicles . " jb.csc_id_payer = csc.csc_id AND" . " csc.cs_id = cs.cs_id AND" . " SUBSTRING(cs.cs_jbstatusmail_fields,8,1) = '1' AND" . " cs.cs_admin = emp.emp_id AND" . " emp.usr_id = usr.usr_id AND" . " csc.csc_id = cscad.csc_id AND" . " cscad.adt_id = '2' "; $result = $db->query($sqlquery); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); $jbRetArray = array(); while ($row = $result->fetch_assoc()): $jbRetArray = array($row["usr_email"], $row["cr_sid"], $row["hq_id"], $row["cs_jbstatusmail2csc"], $row["cscad_email"], $row["cs_id"]); endwhile; $result->free(); $jbRetArrayLen = count($jbRetArray); if ($jbRetArrayLen > 0) : $f_email = trim($jbRetArray[0]); $f_email = str_replace(" ", "", $f_email); $f_email_csc = trim($jbRetArray[4]); $f_email_csc = str_replace(" ", "", $f_email_csc); if ($f_email_csc != "" && $jbRetArray[3] == "1") : $f_email = $f_email_csc; endif; $csIdPayer = $jbRetArray[5]; // Check language by payer for sending email and take customer parameter $csLanguageMail = getParameterValue("0", "JOBDETAILS_EMAIL_LANGUAGE_" . $csIdPayer, "0"); if ($csLanguageMail == "") : $csLanguageMail = "0"; endif; $remLanguageSelected = ""; if ($languageSelected != $csLanguageMail) : $remLanguageSelected = $languageSelected; $languageSelected = $csLanguageMail; getLanguage(__FILE__); endif; $mailContent = getLngt("Der Transportauftrag") . " " . $jb_id_storno . " ". getLngt("wurde storniert!"); $mailSubject = getLngt("Storno Transportauftrag") . " " . $jb_id_storno; $mailTo = $f_email; if ($mailTo == "") : $mailTo = getParameterValue("0", "MAIL_SENDER_ADDRESS", $hq_id); endif; $mailResult = false; if ($mailTo != "") : $mailResult = sendExternalMailExtended($mailContent, $mailSubject, $mailTo); endif; // Reset language if ($remLanguageSelected != "") : $languageSelected = $remLanguageSelected; getLanguage(__FILE__); endif; writeToLogDB("149",$hq_id,$jb_id_storno,$currentSessionUsrId,"","","","MAIL_STATE=" . ($mailResult ? "SENT" : "NOT SENT") . "|MAIL_TO=" . $mailTo); endif; endif; TA("C"); TA("E"); endif; if ($f_act == "setCourier" && $f_cr_sid != "" && $f_jb_id != "") : // Get current cr_id of the job before changing the courier $crIdCurrent = getFieldValueFromId("job","jb_id",$f_jb_id,"cr_id"); $crIdOrderCurrent = getFieldValueFromId("job","jb_id",$f_jb_id,"cr_id_order"); $jbHqId = getFieldValueFromId("job","jb_id",$f_jb_id,"hq_id_dispo"); $jbStatusCurrent = getFieldValueFromId("job","jb_id",$f_jb_id,"jb_status"); if ($jbHqId == "" || !is_numeric($jbHqId) || $jbHqId == "0") : $jbHqId = $hq_id; endif; if ($f_cr_availabletime_reset != "1") : $f_cr_availabletime_reset = "0"; endif; // getDbFieldValues("courier",array("cr_id","cr_occupied"),array("cr_sid",$f_cr_sid)); $cr_id = getFieldValueFromClause("courier","cr_id","cr_sid = '" . $f_cr_sid . "' ORDER BY cr_logintime"); $jb_status_new = "0"; $cr_id_new = ""; if ($cr_id == ""): // Offline-Dispo $cr_id = getFieldValueFromClause("couriervehicle","cr_id","crvh_sid = '" . $f_cr_sid . "' ORDER BY crvh_export_time DESC"); if ($cr_id != "") $jb_status_new = "1"; $cr_id_new = $cr_id; endif; if ($cr_id != "" && ($crIdCurrent != $cr_id || $jbStatusCurrent != "1")) : $crHqId = getFieldValueFromId("courier","cr_id",$cr_id,"hq_id"); // RANKING // Special treatment according to vehicletype ("BUS" or greater will NOT be revoked if job-order is "PKW") // Get cr.vht_id and jb.vht_id /* $arLooseRanking = "1"; // Init: Loose ranking "yes" $courierVhtId = getFieldValueFromId("courier","cr_id",$cr_id,"vht_id"); $jobVhtId = getFieldValueFromId("job","jb_id",$f_jb_id,"vht_id"); if ($courierVhtId != "" && $jobVhtId != "" && $courierVhtId >= getVhtId("5", "transporter_01") && $jobVhtId <= getVhtId("3", "car_02")) : $arLooseRanking = "0"; // Loose ranking "no" endif; */ // Special treatment according areas $jbAdressIdStart = getFieldValueFromClause("tour", "ad_id", "jb_id = '" . $f_jb_id . "' AND tr_sort = '1'"); $jbZipcodeStart = getFieldValueFromId("address", "ad_id", $jbAdressIdStart, "ad_zipcode"); // 29.01.2018: No check for looseRanking if the job is in the future $sqlStmt = "SELECT jb_ordertime, srvp_traveltime, job.hq_id_dispo, DATE_SUB(jb_ordertime, INTERVAL GREATEST(srvp_traveltime, 30) MINUTE) AS datesub, UNIX_TIMESTAMP(DATE_SUB(jb_ordertime, INTERVAL GREATEST(srvp_traveltime, 30) MINUTE)) AS unixtimestamp" . " FROM serviceplz, serviceplztraveltime, job" . " WHERE serviceplz.srvp_id = serviceplztraveltime.srvp_id AND srvp_plz = '" . $jbZipcodeStart . "' AND serviceplztraveltime.hq_id = job.hq_id_dispo AND jb_id = " . $f_jb_id; writeLog_("../log/jb_list_", $sqlStmt); $res = $db->query($sqlStmt); if ($row = $res->fetch_assoc()): writeLog_("../log/jb_list_", "jb_id = " . $f_jb_id . ", jbZipcodeStart = " . $jbZipcodeStart . ", srvp_traveltime = " . $row['srvp_traveltime'] . ", hq_id = " . $row["hq_id_dispo"] . ", jb_ordertime = " . $row['jb_ordertime'] . ", datesub = " . $row['datesub'] . ", unixtimestamp = " . $row['unixtimestamp']); $unixtimestamp = $row['unixtimestamp']; endif; $res->free(); $arLooseRanking = "0"; if ($unixtimestamp < time()): writeLog_("../log/jb_list_", "looseRanking will be checked\n"); $arLooseRanking = looseRanking($cr_id, $jbZipcodeStart, $jbHqId); else: writeLog_("../log/jb_list_", "looseRanking will _not_ be checked\n"); endif; // Check first that courier is NOT occupied // $cr_occupied = getFieldValueFromId("courier", "cr_id", $cr_id, "cr_occupied"); // if ($cr_occupied == "0") : // if (getCountOfTable("job","cr_id_order = '" . $cr_id . "' AND (jb_status = '1' OR jb_status = '0') AND (isnull(jb_globaljob) or jb_globaljob = '0')") == 0) : $currentTime = getDateTime("0"); TA("B"); // Update job // According to be TA-safe the WHERE-Clause depends on the current list the user is in $jbStatusString = " (jb_status = '8' OR jb_status = '9' OR jb_status = '0' OR jb_status = '1') "; if (is_numeric($jb_status)) : $jbStatusString = "jb_status = '" . $jb_status . "'"; endif; $res = updateStmt("job", "jb_id", $f_jb_id, array("cr_id", $cr_id_new, "cr_id_order", $cr_id, "jb_status", $jb_status_new, "cr_sid", $f_cr_sid, "jb_globaljob", "0", "jb_autoranking", "0"), $jbStatusString); if ($db->affected_rows > 0) : $jb_cr_price_tmp = ""; if ($f_jb_cr_price != "" && $f_jb_cr_subprice != "") { $res = updateStmt("job", "jb_id", $f_jb_id, array("jb_cr_price", $f_jb_cr_price)); $res = updateStmt("jobprice", "jb_id", $f_jb_id, array("jbprc_price", $f_jb_cr_subprice), "mt_sort = 10"); $jb_cr_price_tmpArr = array(); $jb_cr_price_tmp = $db->getOne("SELECT gdc_content FROM genericdatacontainer WHERE gdc_obj_type = 'jb' AND gdc_obj_id = " . $f_jb_id . " AND gdc_gen_fieldname = 'jb_cr_price_tmp'"); if ($jb_cr_price_tmp != "") { $jb_cr_price_tmp_time = substr($jb_cr_price_tmp, 0, 19); $pos_start = strpos($jb_cr_price_tmp, "\$cr_id=" . $cr_id); if ($pos_start !== false) { $pos_end = strpos($jb_cr_price_tmp, "`", $pos_start); if ($pos_end !== false) { //writeLog_("../log/jb_list_", "substr(\$jb_cr_price_tmp, \$pos_start, \$pos_end - \$pos_start) = " . substr($jb_cr_price_tmp, $pos_start, $pos_end - $pos_start)); $jb_cr_price_tmp = substr($jb_cr_price_tmp, $pos_start, $pos_end - $pos_start); $jb_cr_price_tmpArr = explode("|", $jb_cr_price_tmp); //writeLog_("../log/jb_list_", " var_export(\$jb_cr_price_tmpArr, true) = " . var_export($jb_cr_price_tmpArr, true)); //writeLog_("../log/jb_list_", "count(\$jb_cr_price_tmpArr) = " . count($jb_cr_price_tmpArr)); for($j = 0; $j < count($jb_cr_price_tmpArr); $j++) { $jb_cr_price_tmp_entry = explode("=", $jb_cr_price_tmpArr[$j]); //writeLog_("../log/jb_list_", " var_export(\$jb_cr_price_tmp_entry, true) = " . var_export($jb_cr_price_tmp_entry, true)); unset($jb_cr_price_tmpArr[$j]); $jb_cr_price_tmpArr[$jb_cr_price_tmp_entry[0]] = $jb_cr_price_tmp_entry[1]; } } } } //writeLog_("../log/jb_list_", "count(\$jb_cr_price_tmpArr) = " . count($jb_cr_price_tmpArr)); //writeLog_("../log/jb_list_", " var_export(\$jb_cr_price_tmpArr, true) = " . var_export($jb_cr_price_tmpArr, true)); if (count($jb_cr_price_tmpArr) > 0) { if (getParameterValue("0", "BWV_CR_PRICE_RETOUR", "0") == "1") { deleteStmt("genericdatacontainer", "gdc_obj_type = 'jb' AND gdc_obj_id = " . $f_jb_id . " AND gdc_gen_fieldname = 'jb_cr_price_retour'"); insertStmt("genericdatacontainer", array("gdc_obj_type", "jb", "gdc_obj_id", $f_jb_id, "gdc_gen_fieldname", "jb_cr_price_retour", "gdc_content", $jb_cr_price_tmpArr["\$jb_cr_price"] . "|" . $jb_cr_price_tmpArr["\$jb_cr_price_sub"] , "gdc_context", "")); } $jb_km_unrounded = $db->getOne("SELECT jbprc_price FROM jobprice WHERE jb_id = " . $f_jb_id . " AND mt_sort = 11"); $jb_cr_price_text = mk_jb_cr_price_text($jb_cr_price_tmpArr, $f_jb_id, $jb_cr_price_tmp_time, $jb_km_unrounded); // "\$cur_jb_ordertime=" . $cur_jb_ordertime . "|" . $jb_freetext_3 = $db->getOne("SELECT jb_freetext_3 FROM job WHERE jb_id = " . $f_jb_id); //writeLog_("../log/jb_list_", "strpos(\$jb_freetext_3, \"~~~\" . PHP_EOL) = " . strpos($jb_freetext_3, "~~~" . PHP_EOL)); //writeLog_("../log/jb_list_", "\$jb_freetext_3_honk = " . $jb_freetext_3); //writeLog_("../log/jb_list_", "\$jb_freetext_3_explode = " . var_export(explode("\n", $jb_freetext_3), true)); if (!(strpos($jb_freetext_3, "~~~") === false)): $jb_freetext_3Arr = explode("\n", $jb_freetext_3); $jb_freetext_3 = ""; $isintexttobedeleted = false; for ($j = 0; $j < count($jb_freetext_3Arr); $j++) { //writeLog_("../log/jb_list_", "\$jb_freetext_3 = #" . $jb_freetext_3Arr[$j]) . "#"; if ($jb_freetext_3Arr[$j] == "~~~") { $isintexttobedeleted = !$isintexttobedeleted; } else { if (!$isintexttobedeleted) { $jb_freetext_3 .= $jb_freetext_3Arr[$j] . "\n"; //writeLog_("../log/jb_list_", "\$jb_freetext_3 = |" . $jb_freetext_3Arr[$j]) . "|"; } } } // $jb_cr_price_text_old = strstr($jb_freetext_3, "~~~" . PHP_EOL); //writeLog_("../log/jb_list_", "\$jb_cr_price_text_old = " . $jb_cr_price_text_old); // $jb_cr_price_text_old = substr($jb_cr_price_text_old, 0, strpos($jb_cr_price_text_old, "~~~" . PHP_EOL, strlen("~~~" . PHP_EOL)) + strlen("~~~" . PHP_EOL)); //writeLog_("../log/jb_list_", "\$jb_cr_price_text_old = " . $jb_cr_price_text_old); // if ($jb_cr_price_text_old == "~~~" . PHP_EOL) { // $jb_cr_price_text_old = strstr($jb_freetext_3_old, "~~~" . PHP_EOL); //writeLog_("../log/jb_list_", "\$jb_cr_price_text_old = " . $jb_cr_price_text_old); // $jb_cr_price_text_old = substr($jb_cr_price_text_old, 0, strpos($jb_cr_price_text_old, "~~~", strlen("~~~")) + strlen("~~~")); //writeLog_("../log/jb_list_", "\$jb_cr_price_text_old = " . $jb_cr_price_text_old); // } // $jb_freetext_3 = str_replace($jb_cr_price_text_old, "", $jb_freetext_3); //writeLog_("../log/jb_list_", "\$jb_freetext_3_honk = " . $jb_freetext_3); endif; $jb_cr_price_text = "~~~\n" . $jb_cr_price_text . "~~~\n"; writeLog_("../log/jb_list_", "\$jb_cr_price_text = " . $jb_cr_price_text); //writeLog_("../log/jb_list_", "\$jb_freetext_3_honk = " . $jb_freetext_3); $res = updateStmt("job", "jb_id", $f_jb_id, array("jb_freetext_3", $jb_cr_price_text . $jb_freetext_3)); // Kuriere mit Auftrag: Ziel-PLZ und Aktuelle Tour kaputt gemacht } } if ($f_jb_cr_markup != "" && $f_jb_cr_markup != "0") { $db->query("DELETE FROM jobprice WHERE jb_id = " . $f_jb_id . " AND mt_sort IN (" . JB_CR_MARKUP . ", " . JB_CR_MARKUP_MAN . ")"); $db->query("INSERT INTO jobprice (jb_id, mt_sort, jbprc_price, jbprc_remark) VALUES (" . $f_jb_id . ", " . JB_CR_MARKUP . ", " . $f_jb_cr_markup . ", '')"); } // Set current assigning time for revoking a job if not taken by the courier if (existsEntry("autoranking",array("jb_id",$f_jb_id,"cr_id",$cr_id))) : updateStmt("autoranking", "jb_id", $f_jb_id, array("ar_challenge", "0", "ar_lastassigntime", $currentTime, "ar_looseranking", $arLooseRanking, "ar_locating", "0"),"cr_id = '" . $cr_id . "'"); else : insertStmt("autoranking", array("jb_id", $f_jb_id, "cr_id", $cr_id, "ar_challenge", "0", "ar_lastassigntime", $currentTime, "ar_looseranking", $arLooseRanking, "ar_locating", "0")); endif; // Insert PDA command to remove job (take cr_id/cr_id_order before changing) $currentTimePDA = getDateTime("datetime_plus_offset", array(0,0,30,0,0,0), $formatStr = "Y-m-d H:i:s"); if ($crIdCurrent != "" && $crIdCurrent != "0" && $crIdCurrent != $cr_id) : insertPDACommand($jbHqId, $crIdCurrent, "4", "1", $f_jb_id, $currentTimePDA, ""); endif; if ($crIdOrderCurrent != "" && $crIdOrderCurrent != "0" && $crIdOrderCurrent != $crIdCurrent && $crIdOrderCurrent != $cr_id) : insertPDACommand($jbHqId, $crIdOrderCurrent, "4", "1", $f_jb_id, $currentTimePDA, ""); endif; // Reset availabletime of the OLD courier if requested by the disposition manually if ($f_cr_availabletime_reset == "1") : updateStmt("courier", "cr_id", $crIdCurrent, array("cr_availabletime", $currentTime)); endif; deleteStmt("genericdatacontainer", "gdc_obj_type = 'jb' AND gdc_obj_id = " . $f_jb_id . " AND gdc_gen_fieldname = 'jb_cr_price_tmp'"); // Write logdata into log database writeToLogDB("7",$jbHqId,$f_jb_id,$currentSessionUsrId,$cr_id,$f_cr_sid,"","LOST_RANKING=" . ($arLooseRanking == "1" ? "YES" : "NO") . ($jb_cr_price_tmp != "" ? "|" . "\$jb_cr_price_tmp_time=" . $jb_cr_price_tmp_time . "|" . $jb_cr_price_tmp : "")); // Survey checkJobForSurvey($f_jb_id); endif; TA("C"); TA("E"); // else : // $statusMessage = getLngt("Dem Fahrzeug") . " " . $f_cr_sid . " " . getLngt("wurde zwischenzeitlich ein Auftrag zugewiesen! Bitte ein anderes Fahrzeug wählen."); // endif; else : if ($cr_id != ""): // Write logdata into log database writeToLogDB("7",$jbHqId,$f_jb_id,$currentSessionUsrId,$cr_id,$f_cr_sid,"","STATE=CR_SAME_COURIER"); endif; endif; endif; // Push all jobs (of the current search result !!!) with jb_status = '9' into autoranking if ($f_act == "goAutoranking" || $f_act == "goReservAutoranking") : // Set the current timestamp to store the data $currentTime = getDateTime("0"); TA("B"); // $whereClauseHq = " AND jb.hq_id = '" . $hq_id . "' "; $whereClauseHq = " AND (jb.hq_id = '" . $hq_id . "' OR jb.hq_id_dispo = '" . $hq_id . "') "; // if ($f_hq_id_string != "") : $whereClauseHq = " AND jb.hq_id IN (" . $f_hq_id_string . ") "; endif; if ($f_hq_id_string != "") : $whereClauseHq = " AND (jb.hq_id IN (" . $f_hq_id_string . ") OR jb.hq_id_dispo IN (" . $f_hq_id_string . ")) "; endif; // Get job IDs ONLY for logging $tmpLogJobsArray = array(); if ($f_act == "goReservAutoranking") : $sqlStmt = "SELECT jb.jb_id FROM job AS jb, costcenter AS csc, customer AS cs " . " WHERE jb.jb_status = '9' AND jb.jb_ordertime >= '" . $fromDateRange . "' AND DATE_SUB(jb.jb_ordertime, INTERVAL 30 MINUTE) <= '" . $currentTime . "' " . $whereClauseHq . " AND " . " jb.jb_reserv = '1' AND jb.jb_offer = '0' AND jb.vht_id < '" . getVhtId("7", "truck_01") . "' AND jb.csc_id_payer = csc.csc_id AND csc.cs_id = cs.cs_id AND (ISNULL(cs_joblist_disabled) OR cs_joblist_disabled = '0')"; else : $sqlStmt = "SELECT jb_id FROM job AS jb " . " WHERE jb.jb_status = '9' AND jb.jb_ordertime >= '" . $fromDateRange . "' AND jb.jb_ordertime <= '" . $currentTime . "' " . $whereClauseHq . " AND " . " jb.jb_cr_fav = '0' AND (isnull(jb.jb_reserv) OR jb.jb_reserv = '0') AND jb.jb_offer = '0' AND jb.vht_id < '" . getVhtId("7", "truck_01") . "'"; endif; $res = $db->query($sqlStmt); while ($row = $res->fetch_assoc()): $tmpLogJobsArray[] = $row["jb_id"]; endwhile; $res->free(); $tmpLogJobsArrayLen = count($tmpLogJobsArray); // Change jb_status (go autoranking) $clauseRemoveCourier = ", cr_id= '', cr_id_order = '', cr_sid = ''"; $parGoAutorankingNoRemovalCourier = getParameterValue("0", "JOB_GO_AUTORANKING_NOT_REMOVAL_COURIER", $hq_id); if ($parGoAutorankingNoRemovalCourier == "") : $parGoAutorankingNoRemovalCourier = getParameterValue("0", "JOB_GO_AUTORANKING_NOT_REMOVAL_COURIER", "0"); endif; if ($parGoAutorankingNoRemovalCourier == "1") : $clauseRemoveCourier = ""; endif; /* if ($f_act == "goReservAutoranking") : $sqlStmt = "UPDATE job SET jb_status = '8', jb_globaljob = '0'" . $clauseRemoveCourier . " WHERE jb_status = '9' AND jb_ordertime >= '$fromDateRange' AND DATE_SUB(jb_ordertime, INTERVAL 30 MINUTE) <= '$currentTime' " . $whereClauseHq . " AND " . " jb_reserv = '1' AND jb_offer = '0' AND vht_id < '" . getVhtId("7", "truck_01") . "'"; else : $sqlStmt = "UPDATE job SET jb_status = '8', jb_globaljob = '0'" . $clauseRemoveCourier . " WHERE jb_status = '9' AND jb_ordertime >= '$fromDateRange' AND jb_ordertime <= '$currentTime' " . $whereClauseHq . " AND " . " jb_cr_fav = '0' AND (isnull(jb_reserv) OR jb_reserv = '0') AND jb_offer = '0' AND vht_id < '" . getVhtId("7", "truck_01") . "'"; endif; */ if ($tmpLogJobsArrayLen > 0) : $sqlStmt = "UPDATE job SET jb_status = '8', jb_globaljob = '0'" . $clauseRemoveCourier . " WHERE jb_id IN (" . implode(",", $tmpLogJobsArray) . ")"; $res = $db->query($sqlStmt); if (DB::isError($res)) : die ("$PHP_SELF: " . $res->getMessage()); endif; // Write logdata into log database for ($j = 0; $j < $tmpLogJobsArrayLen; $j++) : if ($f_act == "goReservAutoranking") : writeToLogDB("56",$hq_id,$tmpLogJobsArray[$j],$currentSessionUsrId,"","","","jb_reserv=1"); else : writeToLogDB("56",$hq_id,$tmpLogJobsArray[$j],$currentSessionUsrId,"","","",""); endif; endfor; endif; TA("C"); TA("E"); endif; // *** Save job-informations (End) *** // Get the array for formatting the database-values for the output according to the defined type $outputFormatField = defineOutputFormats(); // Get the pathname of the actual costcenter // NOT necessary in HQ-administration, but in CS-administration /* $tmpFields = getFieldsValueFromId("costcenter","csc_id",$cscIdActual,array("csc_path","csc_name")); $cscPathActual = $tmpFields[0]; $cscNameActual = $tmpFields[1]; */ // Search filter in use? $searchFiltersInUse = false; $searchFiltersPayerInUse = false; $searchFiltersStationsInUse = false; if (strlen($f_search_ad_street_payer) > 2 || strlen($f_search_ad_zipcode_payer) > 2 || strlen($f_search_ad_city_payer) > 2 || ($f_search_ad_country_payer != "" && $f_search_ad_country_payer != "--") || strlen($f_search_cmp_comp_payer) > 2 || strlen($f_search_cs_eid_payer) > 2 || strlen($f_search_csc_name_payer) > 2) : $searchFiltersPayerInUse = true; endif; if (strlen($f_search_ad_street) > 2 || strlen($f_search_ad_zipcode) > 2 || strlen($f_search_ad_city) > 2 || ($f_search_ad_country != "" && $f_search_ad_country != "--") || strlen($f_search_tr_comp) > 2 || strlen($f_search_tr_person) > 2 || strlen($f_search_tr_remark) > 2 || strlen($f_search_tr_commission_no) > 2) : $searchFiltersStationsInUse = true; endif; $searchFiltersInUse = $searchFiltersPayerInUse || $searchFiltersStationsInUse; $filterOnlyOfferCheckbox = ""; $filterNoOfferCheckbox = ""; if ($jb_status == "9" || ($globalParUseRelatedCustomer == "1" && ($jb_status == "9" || $jb_status == "0"))) : $filterOnlyOfferCheckbox .= "  " . getLngt("Nur Angebote"); $filterNoOfferCheckbox .= "" . getLngt("Ohne Angebote") . " "; endif; $filterDisplayInvisibleCheckbox = ""; if ($jb_status == "9") : $filterDisplayInvisibleCheckbox .= "  " . getLngt("Ausgeblendete Aufträge einblenden"); endif; // --- JOB ------------------- // initialize if (true) : $dspTitles = array(); $dspFields = array(); $dspAligns = array(); $dspTitles["jb_id"] = getLngt("Nr."); $dspFields["jb_id"] = "jb_id"; $dspAligns["jb_id"] = "r"; $dspTitles["jb_id_parent"] = getLngt("Bezugs-Nr."); $dspFields["jb_id_parent"] = "jb_id_parent"; $dspAligns["jb_id_parent"] = "r"; $dspTitles["business_volume"] = getLngt("Preis"); $dspFields["business_volume"] = "business_volume"; $dspAligns["business_volume"] = "r"; $dspTitles["business_volume_gross"] = getLngt("Bruttopreis"); $dspFields["business_volume_gross"] = "business_volume_gross"; $dspAligns["business_volume_gross"] = "r"; $dspTitles["jb_tourname"] = getLngt("Tourenname"); $dspFields["jb_tourname"] = "jb_tourname"; $dspAligns["jb_tourname"] = "l"; $dspTitles["tr_comp"] = getLngt("Firma"); $dspFields["tr_comp"] = "tr_comp"; $dspAligns["tr_comp"] = "l"; $dspTitles["tr_comp2"] = getLngt("Fa.2"); $dspFields["tr_comp2"] = "tr_comp2"; $dspAligns["tr_comp2"] = "l"; $dspTitles["streethsno"] = getLngt("Startadresse"); $dspFields["streethsno"] = "streethsno"; $dspAligns["streethsno"] = "l"; $dspTitles["zipcodecity"] = getLngt("Start-PLZ/Ort"); $dspFields["zipcodecity"] = "zipcodecity"; $dspAligns["zipcodecity"] = "l"; $dspTitles["streethsno2"] = getLngt("2.Adresse"); $dspFields["streethsno2"] = "streethsno2"; $dspAligns["streethsno2"] = "l"; $dspTitles["zipcodecity2"] = getLngt("2.PLZ/Ort"); $dspFields["zipcodecity2"] = "zipcodecity2"; $dspAligns["zipcodecity2"] = "l"; if ($globalParUseRelatedCustomer == "1") : $dspTitles["tr2_comp"] = getLngt("Kunde"); $dspFields["tr2_comp"] = "tr2_comp"; $dspAligns["tr2_comp"] = "l"; else : $dspTitles["tr2_comp"] = getLngt("2.Firma"); $dspFields["tr2_comp"] = "tr2_comp"; $dspAligns["tr2_comp"] = "l"; endif; $dspTitles["jb_tourzipcodes"] = getLngt("PLZn"); $dspFields["jb_tourzipcodes"] = "jb_tourzipcodes"; $dspAligns["jb_tourzipcodes"] = "c"; $dspTitles["jb_tourcities"] = getLngt("Orte"); $dspFields["jb_tourcities"] = "jb_tourcities"; $dspAligns["jb_tourcities"] = "c"; $dspTitles["vht_value"] = getLngt("Fahrz."); $dspFields["vht_value"] = "vht_value"; $dspAligns["vht_value"] = "c"; $dspTitles["jb_ordertime"] = getLngt("Auftragszeit"); $dspFields["jb_ordertime"] = "jb_ordertime"; $dspAligns["jb_ordertime"] = "c"; $dspTitles["jb_reserv"] = getLngt("R."); $dspFields["jb_reserv"] = "jb_reserv"; $dspAligns["jb_reserv"] = "c"; $dspTitles["jb_permanent"] = getLngt("D."); $dspFields["jb_permanent"] = "jb_permanent"; $dspAligns["jb_permanent"] = "c"; $dspTitles["cr_id_favoured"] = getLngt("B."); $dspFields["cr_id_favoured"] = "cr_id_favoured"; $dspAligns["cr_id_favoured"] = "c"; $dspTitles["jb_csc_id"] = getLngt("K."); $dspFields["jb_csc_id"] = "jb_csc_id"; $dspAligns["jb_csc_id"] = "c"; $dspTitles["jb_emp_hq_id"] = getLngt("CC."); $dspFields["jb_emp_hq_id"] = "jb_emp_hq_id"; $dspAligns["jb_emp_hq_id"] = "c"; $dspTitles["cr_sid"] = getLngt("Fahrer"); $dspFields["cr_sid"] = "cr_sid"; $dspAligns["cr_sid"] = "c"; $dspTitles["jb_latesttaketime"] = getLngt("Spät.Annahmez."); $dspFields["jb_latesttaketime"] = "jb_latesttaketime"; $dspAligns["jb_latesttaketime"] = "c"; $dspTitles["jb_taketime"] = getLngt("Annahme"); $dspFields["jb_taketime"] = "jb_taketime"; $dspAligns["jb_taketime"] = "c"; $dspTitles["jb_edit"] = getLngt("Bearb."); $dspFields["jb_edit"] = "jb_edit"; $dspAligns["jb_edit"] = "c"; $dspTitles["jb_cr_price"] = getLngt("Frachtverg."); $dspFields["jb_cr_price"] = "jb_cr_price"; $dspAligns["jb_cr_price"] = "r"; $dspTitles["jb_cr_price_gross"] = getLngt("Bruttofrachtverg."); $dspFields["jb_cr_price_gross"] = "jb_cr_price_gross"; $dspAligns["jb_cr_price_gross"] = "r"; $dspTitles["jb_cr_subprice"] = getLngt("Man. Frachtverg."); $dspFields["jb_cr_subprice"] = "jb_cr_subprice"; $dspAligns["jb_cr_subprice"] = "r"; $dspTitles["jb_cr_subprice_gross"] = getLngt("Man. Bruttofrachtverg."); $dspFields["jb_cr_subprice_gross"] = "jb_cr_subprice"; $dspAligns["jb_cr_subprice_gross"] = "r"; if ($jb_status != "ALL" || $maskDisplayColCacellationEnabled == "1") : $dspTitles["jb_storno"] = getLngt("Storno"); $dspFields["jb_storno"] = "jb_storno"; $dspAligns["jb_storno"] = "c"; endif; $dspTitles["jb_service"] = getLngt("Service"); $dspFields["jb_service"] = "jb_service"; $dspAligns["jb_service"] = "r"; $dspTitles["ad_zipcode"] = getLngt("Start-PLZ"); $dspFields["ad_zipcode"] = "ad_zipcode"; $dspAligns["ad_zipcode"] = "c"; $dspTitles["ad2_zipcode"] = getLngt("2. PLZ"); $dspFields["ad2_zipcode"] = "ad2_zipcode"; $dspAligns["ad2_zipcode"] = "c"; $dspTitles["jb_lastzipcode"] = getLngt("Ziel-PLZ"); $dspFields["jb_lastzipcode"] = "jb_lastzipcode"; $dspAligns["jb_lastzipcode"] = "c"; $dspTitles["jb_dispoinfo"] = getLngt("Dispo-Info"); $dspFields["jb_dispoinfo"] = "jb_dispoinfo"; $dspAligns["jb_dispoinfo"] = "l"; $dspTitles["jb_warningtime"] = getLngt("Warnzeit"); $dspFields["jb_warningtime"] = "jb_warningtime"; $dspAligns["jb_warningtime"] = "c"; $dspTitles["jb_hq_id"] = getLngt("Erf.-NL"); $dspFields["jb_hq_id"] = "jb_hq_id"; $dspAligns["jb_hq_id"] = "c"; $dspTitles["jb_bsg"] = " " . getLngt("BSG-Ges.") . " [%]"; $dspFields["jb_bsg"] = "jb_bsg"; $dspAligns["jb_bsg"] = "r"; $dspTitles["jb_hq_id_bsg"] = " " . getLngt("BSG-Erf.") . " [" . chr(128) . "]"; $dspFields["jb_hq_id_bsg"] = "jb_hq_id_bsg"; $dspAligns["jb_hq_id_bsg"] = "r"; $dspTitles["jb_hq_id_exec_bsg"] = " " . getLngt("BSG-Ausf.") . " [" . chr(128) . "]"; $dspFields["jb_hq_id_exec_bsg"] = "jb_hq_id_exec_bsg"; $dspAligns["jb_hq_id_exec_bsg"] = "r"; $dspTitles["jb_cs_report"] = getLngt("Berichte"); $dspFields["jb_cs_report"] = "jb_cs_report"; $dspAligns["jb_cs_report"] = "c"; $dspTitles["jb_cs_documents"] = getLngt("Dokumente"); $dspFields["jb_cs_documents"] = "jb_cs_documents"; $dspAligns["jb_cs_documents"] = "c"; if (($jb_status == "9" || $jb_status == "8" || $jb_status == "0" || $jb_status == "1") && authCheckEmployeeRights($emp_id, "30")) : $dspTitles["jb_tr_sort"] = getLngt("Sortierung"); $dspFields["jb_tr_sort"] = "jb_tr_sort"; $dspAligns["jb_tr_sort"] = "c"; endif; $dspTitles["jb_map"] = getLngt("Karte"); $dspFields["jb_map"] = "jb_map"; $dspAligns["jb_map"] = "c"; if ($maskJoblistGetCourierData == "1" && ($jb_status == "1" || $jb_status == "2")) : $dspTitles["cr_cmp_remark"] = getLngt("Transp.Bemerk"); $dspFields["cr_cmp_remark"] = "cr_cmp_remark"; $dspAligns["cr_cmp_remark"] = "l"; $dspTitles["cr_cmp_remark2"] = getLngt("Transp.Int.Bemerk."); $dspFields["cr_cmp_remark2"] = "cr_cmp_remark2"; $dspAligns["cr_cmp_remark2"] = "l"; endif; $dspTitles["gdc_addmont_context"] = getLngt("GZM"); $dspFields["gdc_addmont_context"] = "gdc_addmont_context"; $dspAligns["gdc_addmont_context"] = "r"; $dspTitles["gdc_addmont_content"] = getLngt("RZM"); $dspFields["gdc_addmont_content"] = "gdc_addmont_content"; $dspAligns["gdc_addmont_content"] = "r"; $dspTitles["gdc_toll_content"] = getLngt("Maut"); $dspFields["gdc_toll_content"] = "gdc_toll_content"; $dspAligns["gdc_toll_content"] = "r"; $dspTitles["business_volume_with_toll"] = getLngt("Preis m.M."); $dspFields["business_volume_with_toll"] = "business_volume_with_toll"; $dspAligns["business_volume_with_toll"] = "r"; $dspTitles["jb_cr_price_with_toll"] = getLngt("Frachtvergütung m.M."); $dspFields["jb_cr_price_with_toll"] = "jb_cr_price_with_toll"; $dspAligns["jb_cr_price_with_toll"] = "r"; $dspTitles["jb_cr_subprice_with_toll"] = getLngt("Frachtverg. o.Z.m.M."); $dspFields["jb_cr_subprice_with_toll"] = "jb_cr_subprice_with_toll"; $dspAligns["jb_cr_subprice_with_toll"] = "r"; $dspTitles["business_volume_gross_with_toll"] = getLngt("Preis m.M."); $dspFields["business_volume_gross_with_toll"] = "business_volume_gross_with_toll"; $dspAligns["business_volume_gross_with_toll"] = "r"; $dspTitles["jb_cr_price_gross_with_toll"] = getLngt("Frachtverg. m.M."); $dspFields["jb_cr_price_gross_with_toll"] = "jb_cr_price_gross_with_toll"; $dspAligns["jb_cr_price_gross_with_toll"] = "r"; $dspTitles["jb_serviceprice"] = getLngt("Service-Preis"); $dspFields["jb_serviceprice"] = "jb_serviceprice"; $dspAligns["jb_serviceprice"] = "r"; $dspTitles["jb_markup"] = getLngt("TSZ [%]"); $dspFields["jb_markup"] = "jb_markup"; $dspAligns["jb_markup"] = "r"; $dspTitles["jb_finishtime"] = getLngt("Erledigungszeit"); $dspFields["jb_finishtime"] = "jb_finishtime"; $dspAligns["jb_finishtime"] = "c"; $dspTitles["jb_km"] = getLngt("KM"); $dspFields["jb_km"] = "jb_km"; $dspAligns["jb_km"] = "r"; $dspTitles["jb_co2e"] = getLngt("CO2/äq"); $dspFields["jb_co2e"] = "jb_co2e"; $dspAligns["jb_co2e"] = "r"; $dspTitles["jb_km_zone"] = getLngt("Preis-KM"); $dspFields["jb_km_zone"] = "jb_km_zone"; $dspAligns["jb_km_zone"] = "r"; $dspTitles["tr_commission_no"] = getLngt("Komm.-Nr"); $dspFields["tr_commission_no"] = "tr_commission_no"; $dspAligns["tr_commission_no"] = "c"; $dspTitles["jb_traveltime"] = getLngt("Vorlaufzeit"); $dspFields["jb_traveltime"] = "jb_traveltime"; $dspAligns["jb_traveltime"] = "c"; // Get the parameter to set the order of the columns to be displayed $displayedListCols = getParameterValue($emp_id, "MASK_JB_LIST_COLS"); if ($displayedListCols == "") : $displayedListCols = getParameterValue("0", "MASK_JB_LIST_COLS", $hq_id); if ($displayedListCols == "") : // Default settings if ($globalParUseRelatedCustomer == "1") : $displayedListCols = "jb_id,business_volume_gross,tr_comp,tr_comp2,streethsno,tr2_comp,jb_tourzipcodes,vht_value,jb_ordertime,jb_csc_id,cr_sid"; else : // $displayedListCols = "jb_id,business_volume,jb_tourname,tr_comp,tr_comp2,s5treethsno,jb_tourzipcodes,vht_value,jb_ordertime,jb_reserv,jb_permanent,cr_id_favoured,jb_csc_id,cr_sid"; $displayedListCols = "jb_id,business_volume,jb_markup,jb_cr_price,jb_cr_subprice,jb_serviceprice,jb_bsg,jb_hq_id_bsg,jb_hq_id_exec_bsg,jb_tourname,tr_comp,streethsno,jb_tourzipcodes,vht_value,jb_taketime,jb_ordertime,jb_warningtime,jb_map,jb_tr_sort,jb_reserv,jb_permanent,cr_id_favoured,jb_csc_id,cr_sid"; endif; $displayedListCols .= (FALSE ? ",jb_latesttaketime" : ""); // Latest taketime // $displayedListCols .= ",jb_taketime"; if ($jb_status != "ALL" || $maskDisplayColCacellationEnabled == "1") : $displayedListCols .= ",jb_storno"; // Cancellation else : $displayedListCols .= ($jb_status != "ALL" ? ",jb_storno" : ""); // Cancellation endif; // $displayedListCols .= ",jb_edit"; $displayedListCols .= ",jb_edit,ad_zipcode,ad2_zipcode,jb_lastzipcode,jb_tourcities,jb_dispoinfo,jb_cs_report,jb_emp_hq_id,jb_cs_documents,gdc_toll_content,jb_finishtime"; if ($maskJoblistGetCourierData == "1" && ($jb_status == "1" || $jb_status == "2")) : $displayedListCols .= ",cr_cmp_remark,cr_cmp_remark2"; endif; endif; endif; $displayedListColsArray = spliti(",",$displayedListCols); $displayedListColsArrayLen = count($displayedListColsArray); $tmpKeys = array_keys($dspFields); $titles = ""; $fields = ""; $aligns = ""; $valigns = ""; $cellTextPre = ""; for ($i = 0; $i < $displayedListColsArrayLen; $i++) { // Search for the value "$displayedListColsArray" in "$dspColArray" and get the key (index) $j = array_search($displayedListColsArray[$i], $tmpKeys); if (!($j === FALSE)) : $titles .= $dspTitles[$tmpKeys[$j]] . ","; $fields .= $dspFields[$tmpKeys[$j]] . ","; $aligns .= $dspAligns[$tmpKeys[$j]] . ","; endif; } // Remove last ","-sign if (substr($titles, -1) == ",") : $titles = substr($titles, 0, -1); endif; if (substr($fields, -1) == ",") : $fields = substr($fields, 0, -1); endif; if (substr($aligns, -1) == ",") : $aligns = substr($aligns, 0, -1); endif; endif; $titlesArray = spliti(",",$titles); $fieldsArray = spliti(",",$fields); $fieldsLength = count($fieldsArray); $alignsArray = spliti(",",$aligns); $valignsArray = spliti(",",$valigns); $cellTextPreArray = spliti(",",$cellTextPre); $fieldClause = getDBFields("job") . "," . getDBFields("jb_edit") . "," . "jb.hq_id AS jb_hq_id" . "," . "jb.hq_id_exec AS jb_hq_id_exec" . "," . "jb.hq_id_dispo AS jb_hq_id_dispo" . "," . "jb.hq_id_sales AS jb_hq_id_sales" . "," . "usr.hq_id AS jb_emp_hq_id,usr.usr_type AS jb_emp_usr_type," . getDBFields("jb_tourzipcodes") . "," . getDBFields("jb_tourcities") . "," . getDBFields("tour") . "," . getDBFields("address") . "," . getDBFields("vehicletype") . "," . getDBFields("ad_street_hsno") . "," . getDBFields("ad_zipcode_city") . "," . getDBFields("ad_street_hsno_2") . "," . getDBFields("ad_zipcode_city_2") . "," . getDBFields("jb_latesttaketime") . "," . getDBFields("jb_traveltime") . ", IF (jb.jb_cr_price != 0, IF (jb.jb_totalprice != 0, ((jb.jb_totalprice - jb.jb_cr_price) / jb.jb_totalprice) * 100, 0), 0) AS jb_bsg" . ", CASE WHEN jb.jb_totalprice = 0 OR jb.jb_cr_price = 0 THEN 0" . // WHEN jb.jb_hq_id_exec_price != 0 THEN (1 - (jb.jb_totalprice - (jb.jb_hq_id_exec_price - jb.jb_cr_price)) / jb.jb_totalprice) * 100 // ELSE ((jb.jb_totalprice - jb.jb_cr_price) / jb.jb_totalprice) * 100 " WHEN jb.jb_hq_id_exec_price != 0 THEN jb.jb_totalprice - jb.jb_cr_price - (jb.jb_hq_id_exec_price - jb.jb_cr_price) ELSE jb.jb_totalprice - jb.jb_cr_price END AS jb_hq_id_bsg" . ", CASE WHEN jb.jb_totalprice = 0 OR jb.jb_cr_price = 0 THEN 0" . // WHEN jb.jb_hq_id_exec_price != 0 THEN ((jb.jb_hq_id_exec_price - jb.jb_cr_price) / jb.jb_totalprice) * 100 " WHEN jb.jb_hq_id_exec_price != 0 THEN (jb.jb_hq_id_exec_price - jb.jb_cr_price) ELSE 0 END AS jb_hq_id_exec_bsg"; if (MASK_JOBLIST_TOTALPRICE == "1") : $fieldClause .= "," . "SUM(trs.trs_price * ((100 - trs.trs_discount) / 100)) AS business_volume "; else : $fieldClause .= "," . "jb.jb_totalprice AS business_volume "; endif; $fieldClause .= "," . "(jb.jb_totalprice * (1 + (" . $globalParSalesTaxRate . " / 100))) AS business_volume_gross "; $fieldClause .= "," . "(jb.jb_cr_price * (1 + (" . $globalParSalesTaxRate . " / 100))) AS jb_cr_price_gross "; $fieldClause .= "," . "(jb.jb_totalprice + IF (gdc_toll.gdc_content != '', gdc_toll.gdc_content, 0)) AS business_volume_with_toll "; $fieldClause .= "," . "(jb.jb_cr_price + IF (gdc_toll.gdc_content != '', gdc_toll.gdc_content, 0)) AS jb_cr_price_with_toll "; $fieldClause .= "," . "(jb.jb_cr_subprice + IF (gdc_toll.gdc_content != '', gdc_toll.gdc_content, 0)) AS jb_cr_subprice_with_toll "; $fieldClause .= "," . "(jb.jb_totalprice * (1 + (" . $globalParSalesTaxRate . " / 100)) + IF (gdc_toll.gdc_content != '', gdc_toll.gdc_content, 0)) AS business_volume_gross_with_toll "; $fieldClause .= "," . "(jb.jb_cr_price * (1 + (" . $globalParSalesTaxRate . " / 100)) + IF (gdc_toll.gdc_content != '', gdc_toll.gdc_content, 0)) AS jb_cr_price_gross_with_toll "; $fieldClause .= "," . " ad2.ad_zipcode AS ad2_zipcode " . "," . " srvpt.srvpt_traveltime , jb.csc_id AS jb_csc_id "; $fieldClause .= "," . " SUBSTRING_INDEX(SUBSTRING(jb.jb_tourdata, 1, (INSTR(jb.jb_tourdata, '|') - 1) ), ';', -1) AS jb_lastzipcode "; $fieldClause .= "," . " jb.csc_id_payer AS jb_cs_report "; $fieldClause .= "," . " jb.csc_id_payer AS jb_cs_documents "; $fieldClause .= "," . " jb.jb_id AS jb_tr_sort "; $fieldClause .= "," . " jb.jb_id AS jb_map "; $fieldClause .= "," . " jbprc_km.jbprc_price AS jb_km "; $fieldClause .= "," . " jbprc_co2e.jbprc_price AS jb_co2e "; $fieldClause .= "," . " jbprc_km_zone.jbprc_price AS jb_km_zone "; $fieldClause .= "," . " cs_payer.cs_id AS cs_id_payer "; $fieldClause .= "," . " cs_payer.cs_price_warn_uncomplete "; $fieldClause .= "," . " tr.tr_status AS tr1_status, tr2.tr_status AS tr2_status, tr2.tr_comp AS tr2_comp "; // Check for inclusion of courier data if ($maskJoblistGetCourierData == "1" && ($jb_status == "1" || $jb_status == "2")) : $fieldClause .= "," . " LEFT(cmp2.cmp_remark, 20) AS cr_cmp_remark " . "," . " LEFT(cmp2.cmp_remark2, 20) AS cr_cmp_remark2 "; endif; // Active if jb_status IN (8,9,0,1) OR filter is set if (MASK_JOBLIST_CR_FAVOURED == "1") : if (($jb_status != "ALL" && $jb_status != "2" && $jb_status != "1") || $filter_cr_favoured == "checked") : $fieldClause .= "," . " cscr.cr_id AS cr_id_favoured " . "," . " cr.vht_id AS vht_id_cr_favoured "; endif; else : $fieldClause .= "," . " jb.jb_cr_fav AS cr_id_favoured "; endif; $fieldClause .= ", gdc_toll.gdc_content AS gdc_toll_content "; $fieldClause .= ", gdc_blink.gdc_content AS gdc_blink_content "; if ($globalParUseRelatedCustomer == "1") : $fieldClause .= ", gdc_addmont.gdc_content AS gdc_addmont_content, gdc_addmont.gdc_context AS gdc_addmont_context "; $fieldClause .= ", gdc_search.gdc_content AS gdc_search_content "; endif; $fromClause = " metatype AS vht, " . $dbh_jb . " AS jb "; $fromClause .= " LEFT JOIN costcenter AS csc_payer ON jb.csc_id_payer = csc_payer.csc_id "; $fromClause .= " LEFT JOIN customer AS cs_payer ON csc_payer.cs_id = cs_payer.cs_id "; $fromClause .= " LEFT JOIN user AS usr ON usr.usr_id = jb.emp_id "; $fromClause .= " LEFT JOIN " . $dbh_tr . " AS tr ON tr.jb_id = jb.jb_id AND tr.tr_sort = '1' "; $fromClause .= " LEFT JOIN address AS ad ON ad.ad_id = tr.ad_id "; $fromClause .= " LEFT JOIN serviceplz AS srvp ON ad.ad_zipcode = srvp.srvp_plz "; // $fromClause .= " LEFT JOIN serviceplztraveltime AS srvpt ON srvp.srvp_id = srvpt.srvp_id AND srvpt.hq_id = jb.hq_id "; $fromClause .= " LEFT JOIN serviceplztraveltime AS srvpt ON srvp.srvp_id = srvpt.srvp_id AND srvpt.hq_id = jb.hq_id_dispo "; $fromClause .= " LEFT JOIN jobprice AS jbprc_km ON jbprc_km.jb_id = jb.jb_id AND jbprc_km.mt_sort = '11' "; $fromClause .= " LEFT JOIN jobprice AS jbprc_co2e ON jbprc_co2e.jb_id = jb.jb_id AND jbprc_co2e.mt_sort = '12' "; $fromClause .= " LEFT JOIN jobprice AS jbprc_km_zone ON jbprc_km_zone.jb_id = jb.jb_id AND jbprc_km_zone.mt_sort = '15' "; if (MASK_JOBLIST_TOTALPRICE == "1") : $fromClause .= " LEFT JOIN " . $dbh_trs . " AS trs ON trs.jb_id = jb.jb_id "; endif; $fromClause .= " LEFT JOIN " . $dbh_tr . " AS tr2 ON tr2.jb_id = jb.jb_id AND tr2.tr_sort = '2' "; $fromClause .= " LEFT JOIN address AS ad2 ON ad2.ad_id = tr2.ad_id "; if ($globalParUseRelatedCustomer == "1") : if ($parMaskDispositionGroup != "") : $fromClause .= " LEFT JOIN costcenter AS csc_related ON csc_related.csc_id = jb.csc_id_related "; $fromClause .= " LEFT JOIN customer AS cs_related ON cs_related.cs_id = csc_related.cs_id "; $fromClause .= " LEFT JOIN company AS cmp_related ON cmp_related.cmp_id = cs_related.cmp_id "; endif; // $fromClause .= " LEFT JOIN genericdatacontainer AS gdc_hide ON gdc_hide.gdc_obj_type = 'jb' AND gdc_hide.gdc_obj_id = jb.jb_id AND gdc_hide.gdc_gen_fieldname = 'hide' "; $fromClause .= " LEFT JOIN genericdatacontainer AS gdc_addmont ON gdc_addmont.gdc_obj_type = 'jb' AND gdc_addmont.gdc_obj_id = jb.jb_id AND gdc_addmont.gdc_gen_fieldname = 'jb_addmont' "; $fromClause .= " LEFT JOIN genericdatacontainer AS gdc_search ON gdc_search.gdc_obj_type = 'jb' AND gdc_search.gdc_obj_id = jb.jb_id AND gdc_search.gdc_gen_fieldname = 'jb_search' "; endif; $fromClause .= " LEFT JOIN genericdatacontainer AS gdc_toll ON gdc_toll.gdc_obj_type = 'jb' AND gdc_toll.gdc_obj_id = jb.jb_id AND gdc_toll.gdc_gen_fieldname = 'jb_toll' "; $fromClause .= " LEFT JOIN genericdatacontainer AS gdc_blink ON gdc_blink.gdc_obj_type = 'jb' AND gdc_blink.gdc_obj_id = jb.jb_id AND gdc_blink.gdc_gen_fieldname = 'jb_blink' "; if (MASK_JOBLIST_CR_FAVOURED == "1") : if (($jb_status != "ALL" && $jb_status != "2" && $jb_status != "1") || $filter_cr_favoured == "checked") : $fromClause .= " LEFT JOIN costcenter AS csc ON (jb.csc_id_payer = csc.csc_id) OR (jb.csc_id_payer_cash = csc.csc_id) "; $fromClause .= " LEFT JOIN customercourier AS cscr ON csc.cs_id = cscr.cs_id AND cscr_sort = '1' AND cscr_relation = '1' "; $fromClause .= " LEFT JOIN courier AS cr ON cscr.cr_id = cr.cr_id AND cr.vht_id >= jb.vht_id "; endif; endif; // Check for inclusion of courier data if ($maskJoblistGetCourierData == "1" && ($jb_status == "1" || $jb_status == "2")) : $fromClause .= " LEFT JOIN courier AS cr2 ON cr2.cr_id = jb.cr_id "; $fromClause .= " LEFT JOIN company AS cmp2 ON cr2.cmp_id = cmp2.cmp_id"; endif; $whereClause = ""; $orderByClause = "jb_ordertime"; if ($jb_sort != "") : $orderByClause = $fieldsArray[$jb_sort]; // Check for emptiness because e.g. in list "all jobs" no coloumn "storno" does exist // and the offset has to be decremented. Pay attention for more restrictions in the future. while ($orderByClause == "" && $jb_sort > 0) : $jb_sort--; $orderByClause = $fieldsArray[$jb_sort]; endwhile; else : $defSortValue = array_search("jb_ordertime",$fieldsArray); if (!($defSortValue === FALSE)) : $jb_sort = $defSortValue; endif; // List of jobs taken by the courier in special order: ORDER BY jb_taketime if ($jb_status == "1") : $specialOrderByTakenJobs = getParameterValue("0", "MASK_JOBLIST_TAKENJOB_ORDERBY"); if ($specialOrderByTakenJobs == "1") : $defSortValue = array_search("jb_taketime",$fieldsArray); if (!($defSortValue === FALSE)) : $orderByClause = $fieldsArray[$defSortValue]; $jb_sort = $defSortValue; endif; endif; endif; endif; // ASCending or DESCending // if ($orderByClause == "jb_ordertime") : $orderByClause = "jb_ordertime ASC"; endif; $orderByClause .= " " . $f_sort_direction_text . " "; // $whereClause .= " (jb.hq_id IN " . getSQLMandatorArray($f_hq_id) . " OR jb.hq_id_dispo IN " . getSQLMandatorArray($f_hq_id) . ") "; $whereClauseHqId = " jb.hq_id IN " . getSQLMandatorArray($f_hq_id); $whereClauseHqIdExec = " jb.hq_id_exec IN " . getSQLMandatorArray($f_hq_id); $whereClauseHqIdDispo = " jb.hq_id_dispo IN " . getSQLMandatorArray($f_hq_id); $whereClauseHqIdSales = " jb.hq_id_sales IN " . getSQLMandatorArray($f_hq_id); $whereClause .= "[HQ_ID_MC]"; // This macro has to be replaced regarding UNION // Separate list for each status if ($jb_status != "" && is_numeric($jb_status)) : $whereClause .= " AND jb.jb_status = " . $jb_status; endif; /* // Separate list for each status but jb_status = "9" and jb_status = "0" in ONE list // ATTENTION: To use this (again), remove entry for job_status = "9" in metatype !!! if ($jb_status != "") : if ($jb_status == "0") : $whereClause .= " AND (jb.jb_status = 0 OR jb.jb_status = 9)"; else : $whereClause .= " AND jb.jb_status = " . $jb_status; endif; endif; */ // Only show longhaul jobs if ($filter_only_longhaul == "checked") : $whereClause .= " AND (NOT isnull(jb.jb_longhaul) AND jb.jb_longhaul != '0' AND jb.jb_longhaul != '2')"; endif; // Only show incomplete jobs if ($filter_job_incomplete == "checked") : $whereClause .= " AND jb.jb_incomplete = '1'"; endif; // Only show jobs with service price if ($filter_job_serviceprice == "checked") : $whereClause .= " AND jb.jb_serviceprice != '0'"; endif; // Only show incomplete jobs if ($jb_status == "9") : if ($filter_only_offer == "checked") : $whereClause .= " AND jb.jb_offer = '1'"; endif; if ($filter_no_offer == "checked") : $whereClause .= " AND jb.jb_offer != '1'"; endif; endif; // Especially ONE vehicle type if (is_numeric($f_filter_vehicletype) && $f_filter_vehicletype > 0) : $whereClause .= " AND jb.vht_id = '" . $f_filter_vehicletype . "'"; endif; // Especially ONE employee created the job if (is_numeric($f_filter_employee) && $f_filter_employee > 0) : $whereClause .= " AND jb.emp_id = '" . $f_filter_employee . "'"; endif; if ($globalParUseRelatedCustomer == "1") : if ($f_filter_service != "" && is_numeric($f_filter_service)) : $tmpService = pow(2,$f_filter_service); $whereClause .= " AND (jb.jb_service & " . $tmpService . ") = " . $tmpService . " "; endif; endif; // Special related customer if ($globalParUseRelatedCustomer == "1" && $parMaskDispositionGroup != "") : if (is_numeric($f_filter_related_customer) && $f_filter_related_customer > 0) : $whereClause .= " AND jb.csc_id_related = csc_related.csc_id AND csc_related.cs_id = cs_related.cs_id AND cs_related.cs_id = '" . $f_filter_related_customer . "' AND cmp_related.cmp_id = cs_related.cmp_id AND cmp_related.cmp_comp != 'EXTERN' AND cs_related.cs_id_parent != '0' AND NOT isnull(cs_related.cs_id_parent) AND cs_related.cs_group LIKE '%," . $parMaskDispositionGroup . ",%'"; endif; $whereClause .= " AND (NOT EXISTS (SELECT * FROM genericdatacontainer AS gdc_addmont WHERE gdc_addmont.gdc_obj_type = 'jb' AND gdc_addmont.gdc_obj_id = jb.jb_id AND gdc_addmont.gdc_gen_fieldname = 'hide')) "; else : $whereClause .= " AND (NOT EXISTS (SELECT * FROM genericdatacontainer AS gdc_hide WHERE gdc_hide.gdc_obj_type = 'jb' AND gdc_hide.gdc_obj_id = jb.jb_id AND gdc_hide.gdc_gen_fieldname = 'hide')) "; endif; // Display vehicle type only up to "$maskJoblistShowUpToVht" (overruled by filter "$f_filter_vehicletype" !!!) if ($maskJoblistShowUpToVht != "" && $f_filter_vehicletype == 0) : $whereClause .= " AND jb.vht_id <= '" . $maskJoblistShowUpToVht . "'"; endif; $whereClause .= " AND (jb.vht_id = vht.mt_sort AND vht.mt_type = 'vehicletype')"; // Time-range (disabled if existence of id-range-search) if ($job_no_from == "" && $job_no_to == "" && $idSearchArrayLen == 0) : if ($fromDateRange != "") : $whereClause .= " AND jb.jb_ordertime >= '$fromDateRange'"; endif; if ($toDateRange != "") : $whereClause .= " AND jb.jb_ordertime <= '$toDateRange'"; endif; endif; // ID range if ($globalParUseRelatedCustomer == "1" && $idSearchArrayLen > 0) : $whereClause .= " AND jb.jb_id IN (" . implode(",",$idSearchArray) . ")"; else : if ($job_no_from != "") : $whereClause .= " AND jb.jb_id >= '" . $job_no_from . "'"; if ($globalParUseRelatedCustomer == "1") : $job_no_from = getJobIdOutput($job_no_from); endif; endif; if ($job_no_to != "") : $whereClause .= " AND jb.jb_id <= '" . $job_no_to . "'"; if ($globalParUseRelatedCustomer == "1") : $job_no_to = getJobIdOutput($job_no_to); endif; endif; endif; // SID if ($f_cr_sid_search != "") : // Without subjobs // $whereClause .= " AND jb.cr_sid = '$f_cr_sid_search'"; // With subjobs $fromClause .= " LEFT JOIN " . $dbh_jb . " AS jb_sub ON jb.jb_id = jb_sub.jb_id_parent "; $whereClause .= " AND (jb.cr_sid = '$f_cr_sid_search' OR jb_sub.cr_sid = '$f_cr_sid_search')"; endif; // mediation-area if ($f_area_from != "") : $whereClause .= " AND jb.jb_mediationarea_name >= '$f_area_from'"; endif; if ($f_area_to != "") : $whereClause .= " AND jb.jb_mediationarea_name <= '$f_area_to'"; endif; // Do not show storno jobs if ($jb_status == "ALL" || $jb_status == "2") : if ($filter_no_storno == "checked") : $whereClause .= " AND (ISNULL(jb.jb_storno) OR (jb.jb_storno = '0')) "; endif; if ($filter_cr_price == "checked") : $whereClause .= " AND jb.jb_cr_price != '0' "; endif; endif; // Optional search filters for list of done jobs only if ($jb_status == "2") : // Only show not exported jobs if ($filter_only_not_exported == "checked") : $whereClause .= " AND (ISNULL(jb.jb_export_time) OR (jb.jb_export_time = '0000-00-00 00:00:00')) "; endif; endif; // Filter by selected vehicle filters if ($jb_status == "ALL" || $jb_status == "2") : if ($g_crvh_filter != "") : $tmpFilter = spliti(",",$g_crvh_filter); $lenTmp = count($tmpFilter); for ($i = 0; $i < $lenTmp; $i++) : // $whereClause .= " AND (jb.jb_cr_filter LIKE '%" . $tmpFilter[$i] . "%' OR jb.jb_cr_filter_opt LIKE '%" . $tmpFilter[$i] . "%') "; $tfx = $tmpFilter[$i]; $tfxLen = strlen($tfx) + 1; // with comma $whereClause .= " AND (jb.jb_cr_filter = '" . $tfx . "' OR jb.jb_cr_filter LIKE '%," . $tfx . ",%' OR LEFT(jb.jb_cr_filter," . $tfxLen . ") = '" . $tfx . ",' OR RIGHT(jb.jb_cr_filter," . $tfxLen . ") = '," . $tfx . "' OR jb.jb_cr_filter_opt = '" . $tfx . "' OR jb.jb_cr_filter_opt LIKE '%," . $$tfx . ",%' OR LEFT(jb.jb_cr_filter_opt," . $tfxLen . ") = '" . $tfx . ",' OR RIGHT(jb.jb_cr_filter_opt," . $tfxLen . ") = '," . $tfx . "')"; endfor; endif; endif; // Check for displaying state regarding visibility in joblists if ($jb_status == "9" && $filter_display_invisible == "") : $whereClause .= " AND cs_payer.cs_joblist_disabled = '0' "; endif; // Optional search filters for list of done or of all jobs if (($jb_status == "ALL" || $jb_status == "2") && $searchFiltersInUse) : // Payer if ($searchFiltersPayerInUse) : $fromClause .= " LEFT JOIN costcenter AS csc_search_payer ON jb.csc_id_payer = csc_search_payer.csc_id "; $fromClause .= " LEFT JOIN customer AS cs_search_payer ON csc_search_payer.cs_id = cs_search_payer.cs_id "; $fromClause .= " LEFT JOIN company AS cmp_search_payer ON cs_search_payer.cmp_id = cmp_search_payer.cmp_id "; $fromClause .= " LEFT JOIN address AS ad_search_payer ON cmp_search_payer.ad_id = ad_search_payer.ad_id "; if ($f_search_ad_street_payer != "") : $whereClause .= " AND (ad_search_payer.ad_street LIKE '%" . $f_search_ad_street_payer . "%') "; endif; if ($f_search_ad_zipcode_payer != "") : $whereClause .= " AND (ad_search_payer.ad_zipcode LIKE '%" . $f_search_ad_zipcode_payer . "%') "; endif; if ($f_search_ad_city_payer != "") : $whereClause .= " AND (ad_search_payer.ad_city LIKE '%" . $f_search_ad_city_payer . "%') "; endif; if ($f_search_ad_country_payer != "" && $f_search_ad_country_payer != "--") : $whereClause .= " AND (ad_search_payer.ad_country = '" . $f_search_ad_country_payer . "') "; endif; if ($f_search_cmp_comp_payer != "") : $whereClause .= " AND (cmp_search_payer.cmp_comp LIKE '%" . $f_search_cmp_comp_payer . "%') "; endif; if ($f_search_cs_eid_payer != "") : $whereClause .= " AND (cs_search_payer.cs_eid LIKE '%" . $f_search_cs_eid_payer . "%') "; endif; if ($f_search_csc_name_payer != "") : $whereClause .= " AND (csc_search_payer.csc_name LIKE '%" . $f_search_csc_name_payer . "%') "; endif; endif; // Stations if ($searchFiltersStationsInUse) : $whereClause .= " AND EXISTS ( " . " SELECT 1 FROM " . $dbh_tr . " AS tr_search LEFT JOIN address AS ad_search ON tr_search.ad_id = ad_search.ad_id WHERE tr_search.jb_id = jb.jb_id "; if ($f_search_ad_street != "") : $whereClause .= " AND (ad_search.ad_street LIKE '%" . $f_search_ad_street . "%')"; endif; if ($f_search_ad_zipcode != "") : $whereClause .= " AND (ad_search.ad_zipcode LIKE '%" . $f_search_ad_zipcode . "%')"; endif; if ($f_search_ad_city != "") : $whereClause .= " AND (ad_search.ad_city LIKE '%" . $f_search_ad_city . "%')"; endif; if ($f_search_ad_country != "" && $f_search_ad_country != "--") : $whereClause .= " AND (ad_search.ad_country LIKE '%" . $f_search_ad_country . "%')"; endif; if ($f_search_tr_comp != "") : $whereClause .= " AND (tr_search.tr_comp LIKE '%" . $f_search_tr_comp . "%')"; endif; if ($f_search_tr_person != "") : $whereClause .= " AND (tr_search.tr_person LIKE '%" . $f_search_tr_person . "%')"; endif; if ($f_search_tr_remark != "") : $whereClause .= " AND (tr_search.tr_remark LIKE '%" . $f_search_tr_remark . "%')"; endif; if ($f_search_tr_commission_no != "") : $whereClause .= " AND (tr_search.tr_commission_no LIKE '%" . $f_search_tr_commission_no . "%')"; endif; $whereClause .= ") "; // EXISTS endif; endif; // Group for price if (MASK_JOBLIST_TOTALPRICE == "1") : $whereClause .= " GROUP BY trs.jb_id "; endif; // Set limit for browsing // $f_filter_browse_start contains the factor to be multiplicated with the number of rows to be displayed $orderByClause .= " LIMIT ". ($f_filter_browse_start * $maskJoblistBrowseMax) . "," . $maskJoblistBrowseMax; // Generate statement // $sqlquery = generateStatement($fieldClause,$fromClause,$whereClause,$orderByClause); $whereClauseA = str_replace("[HQ_ID_MC]",$whereClauseHqId,$whereClause); $whereClauseB = str_replace("[HQ_ID_MC]",$whereClauseHqIdExec,$whereClause); $whereClauseC = str_replace("[HQ_ID_MC]",$whereClauseHqIdDispo,$whereClause); $whereClauseD = str_replace("[HQ_ID_MC]",$whereClauseHqIdSales,$whereClause); $sqlqueryA = generateStatement($fieldClause,$fromClause,$whereClauseA,""); $sqlqueryB = generateStatement($fieldClause,$fromClause,$whereClauseB,""); $sqlqueryC = generateStatement($fieldClause,$fromClause,$whereClauseC,""); $sqlqueryD = generateStatement($fieldClause,$fromClause,$whereClauseD,""); $sqlquery = "(" . $sqlqueryA . ") UNION (" . $sqlqueryB . ") UNION (" . $sqlqueryC . ") UNION (" . $sqlqueryD . ") ORDER BY " . $orderByClause; // if ($jb_status == "ALL") : echo $sqlquery . "
"; endif; // echo $sqlquery . "
"; // die(); // FILTER-DEFINITIONS $filter_status = addOptionsFromTable("metatype","mt_sort","mt_value","mt_sort","mt_type = 'job_status'",($jb_status == "ALL" ? "10" : $jb_status)); $filter_costcenter = addOptionsFromTable("metatype","mt_sort","mt_value","mt_sort","mt_type = 'job_costcenter'",$jb_costcenter); // Related customer if ($globalParUseRelatedCustomer == "1" && $parMaskDispositionGroup != "") : $filter_related_customer = "  " . getLngt("Bezugskunde:") . "\n"; $filter_related_customer .= "  \n"; endif; // Date-ranges $filter_dateranges = getLngt("von:") . "\n"; $filter_dateranges .= "\n"; $filter_dateranges .= "\n"; $filter_dateranges .= "\n"; $filter_dateranges .= getLngt("bis:") . "\n"; $filter_dateranges .= "\n"; $filter_dateranges .= "\n"; $filter_dateranges .= "\n"; // Vehicle type OR services $filter_vehicletype = ""; $filter_service = ""; if ($globalParUseRelatedCustomer == "1") : $filter_service = "  " . getLngt("Service:") . "\n"; $filter_service .= "\n"; else : // Check excludes vehicle type IDs $mask_exclude_vht_ids = getParameterValue("0", "MASK_EXCLUDE_VHT_IDS", $hq_id); if ($mask_exclude_vht_ids != "") $mask_exclude_vht_ids = " AND NOT mt_sort IN (" . $mask_exclude_vht_ids . ")"; $filter_vehicletype = "  " . getLngt("Typ:") . "\n"; $filter_vehicletype .= "\n"; endif; $filter_employee = getLngt("MA:") . "\n"; $filter_employee .= "\n"; // Buttons for sort $filter_sort_direction = ""; if ($f_sort_direction == "0") : $filter_sort_direction .= " "; $filter_sort_direction .= ""; else : $filter_sort_direction .= " "; $filter_sort_direction .= ""; endif; // Buttons for browsing $filter_browse = defineButtonType08("<", "action_browse_back", "setBrowseStartRange(1);", "20px", "left", "1", "", "", "", ($f_filter_browse_start == 0 ? "disabled" : "")); $filter_browse .= "
" . ($f_filter_browse_start * $maskJoblistBrowseMax) . "-" . (($f_filter_browse_start * $maskJoblistBrowseMax) + $maskJoblistBrowseMax) . " 
\n"; $filter_browse .= defineButtonType08(">", "action_browse_forward", "setBrowseStartRange(2);", "20px", "left", "3", "", "", "", ($f_filter_browse_start > 8 ? "disabled" : "")); // Javascript-function as template only for $js_date = "\n"; // Other special filters (parameter $filters_out ONLY for output) $filters_out = ""; $filter_01 = ""; $filter_02 = ""; $filter_03 = ""; $filter_04 = ""; $filter_05 = ""; $filter_06 = ""; $filter_07 = ""; $filter_08 = ""; $filter_09 = ""; $filter_10 = ""; if ($jb_status == "ALL" || $jb_status == "2") : if (MASK_JOBLIST_CR_FAVOURED == "1") : $filter_01 .= " " . getLngt("Bevorzugte Fahrer") . "   "; endif; $filter_02 .= " " . getLngt("Prüfung Etappenzeit") . "   "; $filter_04 .= " " . getLngt("Keine stornierten") . "   "; $filter_09 .= " " . getLngt("Nur mit Frachtvergütung") . "   "; if ($jb_status == "2") : $filter_03 .= " " . getLngt("Nur nicht exportierte") . "   "; // $filter_05 .= " " . getLngt("Druckansicht") . "   "; if (authCheckEmployeeRights($emp_id, "42")) : $filter_10 .= " " . getLngt("CSV") . "   "; endif; endif; if (authCheckEmployeeRights($emp_id, "12")) : $filter_06 .= " " . getLngt("Suche in allen Etappen") . "   "; endif; $filter_08 .= getLngt("Filter") . ":  "; // $filter_08 .= defineButtonType08("...", "action_filter", "openFilters();", "20", "", "2"); $filter_08 .= ""; $filters_out .= $filter_01; // Filter for coloumn favoured couriers $filters_out .= $filter_02; // Filter for computing time between stops $filters_out .= $filter_03; // Filter for done and not exported jobs $filters_out .= $filter_04; // Filter for no storno jobs $filters_out .= $filter_09; // Filter for "cr_price != 0" $filters_out .= $filter_05; // Print view $filters_out .= $filter_10; // File export as CSV $filters_out .= $filter_06; // Filter for searchdeep in tour // $filters_out .= $filter_07; // Filter for longhaul (see below output association to filter of mandators !!!) $filters_out .= $filter_08; // Filter for vehicle filters and special filters endif; // Mandators filter $filterMandators = ""; if (authCheckEmployeeRights($emp_id, "10")) : $filter_07 = "
" . getLngt("Nur Ferntouren") . "    
\n"; // Check for "callcenter mode" $empHqList = getParameterValue("0", "HEADQUARTERS_MULTIPLE_ACCESS_EMPLOYEES", "0"); $showMultipleHqSelection = isInParameterString($emp_id, $empHqList); if ($showMultipleHqSelection) : $filterMandators = $filter_07; $filterMandators .= "
" . getLngt("Niederlassungen:") . "  " . addCheckboxesFromTable("f_hq_id","headquarters","hq_id","hq_mnemonic","hq_mnemonic","hq_disabled = '0'",$f_hq_id, "   ","") . ""; $filterMandators .= defineButtonType08("Alle", "f_hq_check_all", "hqCheckAll(" . $numOfHq . ");", "50px", "left", "3"); $filterMandators .= defineButtonType08("Keine", "f_hq_uncheck_all", "hqUncheckAll(" . $numOfHq . ");", "50px", "left"); else : $filterMandators = $filter_07 . getHeadquartersCheckboxes($f_hq_id, "", "left"); endif; endif; // Search fields $filter_search = ""; $filter_search2 = ""; if ($jb_status == "ALL" || $jb_status == "2") : // Search parameter for tour data $f_search_ad_street = trim($f_search_ad_street); $f_search_ad_zipcode = trim($f_search_ad_zipcode); $f_search_ad_city = trim($f_search_ad_city); $f_search_ad_country = "--"; $f_search_tr_comp = trim($f_search_tr_comp); $f_search_tr_person = trim($f_search_tr_person); $f_search_tr_remark = trim($f_search_tr_remark); $f_search_tr_commission_no = trim($f_search_tr_commission_no); // Search parameter for payer data $f_search_ad_street_payer = trim($f_search_ad_street_payer); $f_search_ad_zipcode_payer = trim($f_search_ad_zipcode_payer); $f_search_ad_city_payer = trim($f_search_ad_city_payer); $f_search_ad_country_payer = "--"; $f_search_cmp_comp_payer = trim($f_search_cmp_comp_payer); $f_search_cs_eid_payer = trim($f_search_cs_eid_payer); $f_search_csc_name_payer = trim($f_search_csc_name_payer); // Filter for tour data $filter_search .= "
" . getLngt("ETAPPEN-FILTER:") . "
"; $filter_search .= "
"; $filter_search .= getLngt("Str.:") . " \n"; $filter_search .= getLngt("PLZ:") . " \n"; $filter_search .= getLngt("Ort:") . " \n"; $filter_search .= " \n"; $filter_search .= getLngt("Firma:") . " \n"; $filter_search .= getLngt("Person:") . " \n"; $filter_search .= getLngt("Bemerkung:") . " \n"; $filter_search .= getLngt("Komm.-Nr.:") . " \n"; $filter_search .= "
\n"; $filter_search .= "
"; // Filter for payer data $filter_search2 .= "
" . getLngt("BEZAHLER-FILTER:") . "
"; $filter_search2 .= "
"; $filter_search2 .= getLngt("Str.:") . " \n"; $filter_search2 .= getLngt("PLZ:") . " \n"; $filter_search2 .= getLngt("Ort:") . " \n"; $filter_search2 .= " \n"; $filter_search2 .= getLngt("Firma:") . " \n"; $filter_search2 .= getLngt("EID:") . " \n"; $filter_search2 .= getLngt("Kst.-Name:") . " \n"; $filter_search2 .= "
\n"; $filter_search2 .= "
"; endif; // Send request to database if ($jb_status == "2" || $jb_status == "10" || $jb_status == "ALL") : $checkDeepSearchStr = $f_search_ad_street . $f_search_ad_zipcode . $f_search_ad_city . $f_search_tr_comp . $f_search_tr_person . $f_search_tr_remark . $f_search_ad_street_payer . $f_search_ad_zipcode_payer . $f_search_cmp_comp_payer . $f_search_cs_eid_payer . $f_search_csc_name_payer; if (($fromDateRange != "" && $toDateRange != "" && mcDateDiff($fromDateRange, $toDateRange) > 2) || $checkDeepSearchStr != "") : global $dbhostStatistic; if ($dbhostStatistic != "") : global $dbname2, $dblogin2, $dbpassword2; $db_conn = getDbConnectionSpecial($dbhostStatistic, $dbname2, $dblogin2, $dbpassword2); $result = $db_conn->query($sqlquery); else : getDb2Connection(); // Try to connect request server because of performance $result = $db2->query($sqlquery); endif; else : getDb2Connection(); // Try to connect request server because of performance $result = $db2->query($sqlquery); endif; else : $result = $db->query($sqlquery); endif; if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); // Special links $special_links = ""; $special_links .= "K"; if ($jb_status == "9") : $special_links .= "  A"; $special_links .= "  R"; if (authCheckEmployeeRights($emp_id, "10")) : // Get scaling for BWV window to be opened $maskBWVwindowScaling = getParameterValue("0", "MASK_LONGHAUL_WINDOW_SCALE", "0"); $maskBWVwindowScaling = spliti(",",$maskBWVwindowScaling); $special_links .= "  BWV"; // ****************************************************** // Very special treatment for access to remote database if (BWV2_checkEmpRemoteDBAccess("13", $emp_id)) : $special_links .= "  BWV2"; endif; // ****************************************************** endif; endif; if ($jb_status == "1") : // $special_links .= "  N"; $openMsgs = getCountOfTable("phoenix_log.messageforum", "hq_id = '" . $hq_id . "' AND mf_createtime >= '" . getDateTime("3") . " 00:00:00' AND mf_createtime <= '" . getDateTime("3") . " 23:59:59' AND mf_usr_type = '3' AND mf_state < '2'"); if ($openMsgs > "0") : // $special_links .= " "; $special_links .= "    "; endif; endif; // if ($jb_status == "2") : // $special_links .= "  R"; // endif; // Header and entries of the list if ($globalParUseRelatedCustomer == "1") : $summationField = "business_volume_gross"; else : // if ($jb_status == "2") : $summationField = "business_volume"; $summationField2 = "business_volume_with_toll"; // $summationField3 = "jb_cr_subprice"; // $summationField4 = "jb_cr_subprice_with_toll"; $summationField3 = "jb_cr_price"; // $summationField4 = "jb_cr_price_with_toll"; $summationField4 = "jb_bsg"; // endif; endif; $targetPath = "admin"; // used in following include-file $classNameBlink = "blink"; // Get path for listed customer document data (type "CS") $checkNumOfCsDocuments = getParameterValue("0", "MASK_JOBLIST_CHECK_NUM_OF_CS_DOCS", "0"); if (mcIsSet($docPath) == "") : $docPath = "../import/upload/"; endif; $docPath = getPathForObjectData($docPath, "CS"); // Get number of reports of listed customer $checkNumOfCsReports = getParameterValue("0", "MASK_JOBLIST_CHECK_NUM_OF_CS_REPORTS", "0"); // Get switch to enable check for "NO STORNO LINK IF PAID NOT CASH". // If it does NOT exist then $stornoCheckPayment = getParameterValue("0", "MASK_JOBLIST_STORNO_CHECK_PAYMENT", $hq_id); if ($stornoCheckPayment == "") : $stornoCheckPayment = getParameterValue("0", "MASK_JOBLIST_STORNO_CHECK_PAYMENT", "0"); endif; // Get parameter for displaying OFFERS only $jobEditOffersOnly = getParameterValue("0", "MASK_JOBLIST_DISPLAY_OFFERS_ONLY", "0"); include_once ("../include/jb_list_defineoutput.inc.php"); // if (($sumOfSummationField != 0 || $sumOfSummationField2 != 0) && $filter_printview == "") : if ($rowCounter > 0) : $tableBody .= "
" . getLngt("EINTRÄGE:") . "" . $rowCounter . "\n"; // if ($sumOfSummationField != 0) : $tableBody .= "" . getLngt("GESAMTKUNDENPREIS:") . "" . number_format(round($sumOfSummationField,2), 2, ",", ".") . "\n"; // endif; // if ($sumOfSummationField2 != 0) : // $tableBody .= "" . getLngt("GESAMTKUNDENPREIS MIT MAUT:") . "" . number_format(round($sumOfSummationField2,2), 2, ",", ".") . "\n"; // endif; // if ($sumOfSummationField3 != 0) : $tableBody .= "" . getLngt("GESAMTFRACHTVERGÜTUNG:") . "" . number_format(round($sumOfSummationField3,2), 2, ",", ".") . "\n"; // endif; // if ($sumOfSummationField4 != 0) : // $tableBody .= "" . getLngt("GESAMTFRACHTVERGÜTUNG MIT MAUT:") . "" . number_format(round($sumOfSummationField4,2), 2, ",", ".") . "\n"; // endif; // if ($sumOfSummationField4 != 0) : $tableBody .= "" . getLngt("BSG [%]:") . "" . number_format(round(($sumOfSummationField != 0 ? ((($sumOfSummationField - $sumOfSummationField3) / $sumOfSummationField) * 100) : 0 ),2), 2, ",", ".") . (false ? " <=> " . ($sumOfSummationField4 / $rowCounter) : "") . "\n"; // endif; endif; $result->free(); // Optional output to file $f_secretFileName = ""; if ($fileOutput == "1") : // Remove old files foreach (glob($tempPath . "*.jb.csv") as $fileNameToBoRemoved) { if ((time() - filemtime($fileNameToBoRemoved)) > 60) : if (file_exists($fileNameToBoRemoved)) : unlink($fileNameToBoRemoved); endif; endif; } // Convert matrix to CSV $outputLinesArray = convertMatrixToCsv($outArr2File); $outputLinesArrayLen = count($outputLinesArray); if ($outputLinesArrayLen > 0) : $f_fileName = "JOBLIST_" . date("YmdHis"); $f_secretFileName = md5($f_fileName) . ".jb.csv"; for ($i = 0; $i < $outputLinesArrayLen; $i++) : writeToFile($tempPath . $f_secretFileName, $outputLinesArray[$i]); // write statistic data endfor; else : $statusMessage = "Es wurden keine Daten gefunden! Eine Datei wurde deshalb nicht generiert!"; $fileOutput = "0"; endif; endif; // wenn MASK_AUTO_REFRESH == 0, dann wird die Kurierliste dynamisch (bei Aufruf) aufgebaut // wenn MASK_AUTO_REFRESH == 1, dann wird die Kurierliste statisch (hier) aufgebaut if (MASK_AUTO_REFRESH == "1"): include_once("../jobs/job_courier.inc.php"); endif; $auto_refresh = MASK_AUTO_REFRESH; $cr_id_order_list_out = "var MASK_COURIER_SORT_BY_OCCUPIED = \"\";\nvar jb_longhaul = \"0\";\n" . $cr_id_order_list . $cr_id_order_list2 . $vht_id_str_js . $customercourier_list . "when = \"" . date("H:i") . "\";\n"; $reload_status = "1"; if ($jb_status == "2" || $jb_status == "10" || $jb_status == "ALL") : $reload_status = "0"; endif; // Check if employee parameter for refreshing state is active if ($maskJoblistModeRefresh == "1") : if ($jb_status != "2" && $jb_status != "10" && $jb_status != "ALL") : if ($f_currentRefreshState == "0") : $reload_status = 0; endif; endif; endif; ?> <?php echo $pageTitel ?> ....
as "actioncontainer" if ($isFirefox) : $actioncontainerDivPos = "style=\"position:fixed; top:0px; left:450; width:600px; height:500px; z-index:10; background-color:#AACCAA;\""; else : $actioncontainerDivPos = ""; ?> "; ?> ">
 
  
size="7">
     
>   
>   
>   
>   
  
 
Bereich von: bis:
 
>