getOne("SELECT jb_longhaul FROM job WHERE jb_id = " . $jb_id); $ori_zipcode = $zipcode; if ($jb_longhaul == 1) { // if (!authCheckEmployeeRights($emp_id, "44")) : die("Das Recht \"BWV-Aufträge\" ist bei Ihnen nicht gesetzt!"); endif; // Die Koordinaten der Home-Zipcodes eintragen $sqlQuery = "SELECT cr_id, cr_homezipcode, cr_gps_long_home, cr_gps_lat_home, cr_desiredzipcode, ad_zipcode FROM courier, company, address WHERE cr_available = 1 AND courier.cmp_id = company.cmp_id AND company.ad_id = address.ad_id"; $res = $db->query($sqlQuery); if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery'" . $res->getMessage()); while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): $tmp_cur_cr_homezipcode = $row["cr_desiredzipcode"]; if (trim($tmp_cur_cr_homezipcode) == "") $tmp_cur_cr_homezipcode = $row["cr_homezipcode"]; if (trim($tmp_cur_cr_homezipcode) == "") $tmp_cur_cr_homezipcode = $row["ad_zipcode"]; $tmp_home_coords = get_coords("DE", $tmp_cur_cr_homezipcode, ".", ".", ".", true); if ($tmp_home_coords[0] != $row["cr_gps_lat_home"] || $tmp_home_coords[1] != $row["cr_gps_long_home"]) { writeLog_("../log/job_courier_cur_", "cr_id = " . $row["cr_id"] . ", cr_gps_lat_home = " . $tmp_home_coords[0] . ", cr_gps_long_home = " . $tmp_home_coords[1]); updateStmt("courier", "cr_id", $row["cr_id"], array("cr_gps_lat_home", $tmp_home_coords[0], "cr_gps_long_home", $tmp_home_coords[1], "cr_modify", "cr_modify")); } endwhile; $res->free(); // Die Kuriere finden, deren aktulle Position im Umkreis um die Start-Adresse liegt $ad_id = $db->getOne("SELECT ad_id FROM tour WHERE jb_id = " . $jb_id . " AND tr_sort = 1"); $tr_hsno = $db->getOne("SELECT tr_hsno FROM tour WHERE jb_id = " . $jb_id . " AND tr_sort = 1"); list($ad_country, $ad_zipcode, $ad_city, $ad_street) = getFieldsValueFromId("address", "ad_id", $ad_id, array("ad_country", "ad_zipcode", "ad_city", "ad_street")); $zipcodeArr = get_coords($ad_country, $ad_zipcode, $ad_city, $ad_street, $tr_hsno); $zipcode = $zipcodeArr[0] . "," . $zipcodeArr[1]; // Auch die Kuriere finden, deren Heimat-PLZ im Umkreis um die Zieladresse liegt $tr_sort_end = $db->getOne("SELECT MAX(tr_sort) FROM tour WHERE jb_id = " . $jb_id); $ad_id_end = $db->getOne("SELECT ad_id FROM tour WHERE jb_id = " . $jb_id . " AND tr_sort = " . $tr_sort_end); $tr_hsno_end = $db->getOne("SELECT tr_hsno FROM tour WHERE jb_id = " . $jb_id . " AND tr_sort = " . $tr_sort_end); list($ad_country_end, $ad_zipcode_end, $ad_city_end, $ad_street_end) = getFieldsValueFromId("address", "ad_id", $ad_id_end, array("ad_country", "ad_zipcode", "ad_city", "ad_street")); $zipcodeArrEnd = get_coords($ad_country_end, $ad_zipcode_end, $ad_city_end, $ad_street_end, $tr_hsno_end); $zipcode_home = $zipcodeArr[0] . "," . $zipcodeArr[1] . "," . $zipcodeArrEnd[0] . "," . $zipcodeArrEnd[1]; $cr_id_order_list2 = ""; } // hq_id aus dem job holen if (isset($jb_id) && $jb_id != ""): $hq_id = getFieldValueFromId("job", "jb_id", "$jb_id", "hq_id"); if ($jb_longhaul == 1) $hq_id_dispo = getFieldValueFromId("job", "jb_id", "$jb_id", "hq_id_dispo"); endif; if (!defined("CONST_MASK_COURIER_SORT_BY_OCCUPIED")) define ("CONST_MASK_COURIER_SORT_BY_OCCUPIED", getParameterValue("0", "MASK_COURIER_SORT_BY_OCCUPIED", $hq_id)); if (!defined("CONST_MODE_INTERMEDIATION")) define ("CONST_MODE_INTERMEDIATION", getParameterValue("0", "MODE_INTERMEDIATION", $hq_id)); if (!defined("CONST_AUTORANKING_NEIGHBOUR_LEVEL")) define ("CONST_AUTORANKING_NEIGHBOUR_LEVEL", getParameterValue("0", "AUTORANKING_NEIGHBOUR_LEVEL", $hq_id)); if (!defined("CONST_RANKING_JB2CRVH_MEASURE")) define ("CONST_RANKING_JB2CRVH_MEASURE", getParameterValue("0", "RANKING_JB2CRVH_MEASURE", $hq_id)); if (!defined("CONST_RANKING_RADIUS_KM")) define ("CONST_RANKING_RADIUS_KM", getParameterValue("0", "RANKING_RADIUS_KM", $hq_id)); //define ("CONST_RANKING_RADIUS_KM", 320); $hq_workmode = getFieldValueFromId("headquarters", "hq_id", "$hq_id", "hq_workmode"); //if ($hq_workmode == "2" && $hq_id != 1): $userType = (isset($usr_id) && trim($usr_id != "")? getFieldValueFromId("user", "usr_id", $usr_id, "usr_type") : 1); // Wenn jb_id gesetzt, dann kommt der Aufruf aus der Auftragsliste if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): // Auftragsliste -> Kuriere sortieren //die("\"$zipcode\", \"1111100\", $jb_id"); if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): writeLog_("../log/job_courier_", "vor getCourierByRanking"); endif; $ranking_radius_km = 0; do { if ($jb_longhaul == 1) { $ranking_radius_km += CONST_RANKING_RADIUS_KM; } writeLog_("../log/job_courier_cur_", "getCourierByRanking(" . $zipcode . ", 111110001, " . $jb_id . ", " . $hq_id_string . ", " . $ranking_radius_km . ")"); $cr_id_order_list_temp_all = getCourierByRanking("$zipcode", "111110001", $jb_id, "", $hq_id_string, $ranking_radius_km); if ($jb_longhaul == 1) { writeLog_("../log/job_courier_cur_", var_export($cr_id_order_list_temp_all[2], true)); writeLog_("../log/job_courier_cur_", var_export($cr_id_order_list_temp_all[3], true)); writeLog_("../log/job_courier_cur_", "getCourierByRanking(" . $zipcode_home . ", 111110001, " . $jb_id . ", " . $hq_id_string . ", " . $ranking_radius_km . ")"); $cr_id_order_list_temp_all_home = getCourierByRanking("$zipcode_home", "111110001", $jb_id, "", $hq_id_string, $ranking_radius_km); writeLog_("../log/job_courier_cur_", var_export($cr_id_order_list_temp_all_home[2], true)); writeLog_("../log/job_courier_cur_", var_export($cr_id_order_list_temp_all_home[3], true)); } } while ($jb_longhaul == 1 && count($cr_id_order_list_temp_all_home[2]) == 0 && count($cr_id_order_list_temp_all[2]) == 0 && count($cr_id_order_list_temp_all_home[3]) == 0 && count($cr_id_order_list_temp_all[3]) == 0 && $ranking_radius_km <= CONST_RANKING_RADIUS_KM * 12); if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): writeLog_("../log/job_courier_", "nach getCourierByRanking"); endif; if ($jb_longhaul == 1) { $cr_id_order_list_temp_all_home[2] = my_array_diff ($cr_id_order_list_temp_all_home[2], $cr_id_order_list_temp_all[2]); writeLog_("../log/job_courier_cur_", "\$cr_id_order_list_temp_all_home[2] = " . var_export($cr_id_order_list_temp_all_home[2], true)); $cr_id_order_list_temp_all[2] = array_merge($cr_id_order_list_temp_all[2], $cr_id_order_list_temp_all_home[2]); } // Favorisierte Kuriere $cr_id_order_list_favoured = get_complete_courier_data($cr_id_order_list_temp_all[2]); // // favorisierte Kuriere // if ($jb_longhaul == 1) // $cr_id_order_list_favoured = get_longhaul_courier_data($cr_id_order_list_favoured, $ad_zipcode, $ad_city, $ad_street, $tr_hsno); if ($jb_longhaul != 1) usort ($cr_id_order_list_favoured, "cmp_usort"); if ($jb_longhaul == 1): array_unshift($cr_id_order_list_favoured, array("*", " FrachtvergütungAnfahrt min.KM zur Start-PLZStandortHeimat-PLZRundkilometerFahrzeug")); endif; if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1"): array_unshift($cr_id_order_list_favoured, array("*", "- bevorzugte")); else: array_unshift($cr_id_order_list_favoured, array("*", "Bevorzugte Kuriere")); endif; if ($jb_longhaul == 1) { $cr_id_order_list_temp_all_home[1] = my_array_diff ($cr_id_order_list_temp_all_home[1], $cr_id_order_list_temp_all[1]); writeLog_("../log/job_courier_cur_", "\$cr_id_order_list_temp_all_home[1] = " . var_export($cr_id_order_list_temp_all_home[1], true)); $cr_id_order_list_temp_all[1] = array_merge($cr_id_order_list_temp_all[1], $cr_id_order_list_temp_all_home[1]); } // geblockte Kuriere $cr_id_order_list_blocked = get_complete_courier_data($cr_id_order_list_temp_all[1]); usort ($cr_id_order_list_blocked, "cmp_usort"); foreach($cr_id_order_list_blocked as $cr_id_order_blocked) { $cr_id_order_list_blocked_js .= "'" . trim($cr_id_order_blocked[1]) . "',"; } if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1"): array_unshift($cr_id_order_list_blocked, array("*", "- gesperrte")); else: array_unshift($cr_id_order_list_blocked, array("*", "Gesperrte Kuriere")); endif; if ($jb_longhaul == 1) { $cr_id_order_list_temp_all_home[3] = my_array_diff ($cr_id_order_list_temp_all_home[3], $cr_id_order_list_temp_all[3]); writeLog_("../log/job_courier_cur_", "\$cr_id_order_list_temp_all_home[3] = " . var_export($cr_id_order_list_temp_all_home[3], true)); $cr_id_order_list_temp_all[3] = array_merge($cr_id_order_list_temp_all[3], $cr_id_order_list_temp_all_home[3]); } // Kuriere im Vermittlungsbereich $cr_id_order_list_area = $cr_id_order_list_temp_all[3]; // Nur hier (und in den favorisierten natürlich) können bei $jb_longhaul = 1 Einträge sein if ($jb_longhaul == 1) { $cr_id_order_list_area = my_array_diff ($cr_id_order_list_area, $cr_id_order_list_favoured); // $cr_id_order_list_area = get_longhaul_courier_data($cr_id_order_list_area, $ad_zipcode, $ad_city, $ad_street, $tr_hsno); } if ($cr_id_order_list_area == "") $cr_id_order_list_area = Array(); if ($jb_longhaul != 1) usort ($cr_id_order_list_area, "cmp_usort"); if ($jb_longhaul == 1): array_unshift($cr_id_order_list_area, array("*", " FrachtvergütungAnfahrt min.KM zur Start-PLZStandortHeimat-PLZRundkilometerFahrzeug")); // array_unshift($cr_id_order_list_blocked, array("*", " FahrzeugAnfahrt min.KM zur Start-PLZStandortHeimat-PLZRundkilometerFrachtvergütung")); endif; if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1"): if (CONST_MODE_INTERMEDIATION == 1 && $jb_longhaul != 1): // Bremen array_unshift($cr_id_order_list_area, array("*", "- im Vermittlungsbereich")); elseif((CONST_MODE_INTERMEDIATION == 2 || CONST_MODE_INTERMEDIATION == 3) && $jb_longhaul != 1): // Hamburg, Berlin $srvpa_name = $db2->getOne( "SELECT srvpa.srvpa_name FROM serviceplzareamapping AS srvpam, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvp.srvp_id = srvpam.srvp_id AND srvpa.hq_id = '$hq_id' AND srvpam.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); $srvpa_longname = $db2->getOne( "SELECT srvpa.srvpa_longname FROM serviceplzareamapping AS srvpam, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvp.srvp_id = srvpam.srvp_id AND srvpa.hq_id = '$hq_id' AND srvpam.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); array_unshift($cr_id_order_list_area, array("*", "- im Vermittlungsbereich $srvpa_name (" . $srvpa_longname . ")")); elseif($jb_longhaul == 1): array_unshift($cr_id_order_list_area, array("*", "- restliche verfügbare")); endif; else: if (CONST_MODE_INTERMEDIATION == 1 && $jb_longhaul != 1): // Bremen array_unshift($cr_id_order_list_area, array("*", "Kuriere im Vermittlungsbereich")); elseif((CONST_MODE_INTERMEDIATION == 2 || CONST_MODE_INTERMEDIATION == 3) && $jb_longhaul != 1): // Hamburg, Berlin $srvpa_name = $db2->getOne( "SELECT srvpa.srvpa_name FROM serviceplzareamapping AS srvpam, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvp.srvp_id = srvpam.srvp_id AND srvpna.hq_id = '$hq_id' AND srvpa.hq_id = '$hq_id' AND srvpam.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); $srvpa_longname = $db2->getOne( "SELECT srvpa.srvpa_longname FROM serviceplzareamapping AS srvpam, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvp.srvp_id = srvpam.srvp_id AND srvpna.hq_id = '$hq_id' AND srvpa.hq_id = '$hq_id' AND srvpam.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); array_unshift($cr_id_order_list_area, array("*", "Kuriere im Vermittlungsbereich $srvpa_name (" . $srvpa_longname . ")")); endif; endif; // Kuriere in der Vermittlungsbereich-Nachbarschaft if (CONST_MODE_INTERMEDIATION == 1): // Bremen $cr_id_order_list_neighbourhood = $cr_id_order_list_temp_all[4]; if ($cr_id_order_list_neighbourhood == "") $cr_id_order_list_neighbourhood = Array(); usort ($cr_id_order_list_neighbourhood, "cmp_usort"); elseif(CONST_MODE_INTERMEDIATION == 2 || CONST_MODE_INTERMEDIATION == 3): // Hamburg, Berlin for($i = 1; $i <= CONST_AUTORANKING_NEIGHBOUR_LEVEL; $i++): $cr_id_order_list_temp_all[$i] = getCourierByRanking("$zipcode", "010010001", $jb_id, $i, $hq_id); $cr_id_order_list_neighbourhoods[$i] = $cr_id_order_list_temp_all[$i][4]; if ($cr_id_order_list_neighbourhoods[$i] == "") $cr_id_order_list_neighbourhoods[$i] = Array(); usort ($cr_id_order_list_neighbourhoods[$i], "cmp_usort"); endfor; endif; if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1"): if (CONST_MODE_INTERMEDIATION == 1 && $jb_longhaul != 1): // Bremen array_unshift($cr_id_order_list_neighbourhood, array("*", "- in der Nachbarschaft")); elseif((CONST_MODE_INTERMEDIATION == 2 || CONST_MODE_INTERMEDIATION == 3) && $jb_longhaul != 1): // Hamburg, Berlin for($i = 1; $i <= CONST_AUTORANKING_NEIGHBOUR_LEVEL; $i++): $srvpa_name = $db2->getOne( "SELECT srvpa.srvpa_name FROM serviceplzneighbourarea AS srvpna, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvpna.srvpna_sort = $i AND srvp.srvp_id = srvpna.srvp_id AND srvpna.hq_id = '$hq_id' AND srvpa.hq_id = '$hq_id' AND srvpna.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); $srvpa_longname = $db2->getOne( "SELECT srvpa.srvpa_longname FROM serviceplzneighbourarea AS srvpna, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvpna.srvpna_sort = $i AND srvp.srvp_id = srvpna.srvp_id AND srvpna.hq_id = '$hq_id' AND srvpa.hq_id = '$hq_id' AND srvpna.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); array_unshift($cr_id_order_list_neighbourhoods[$i], array("*", "- in der Nachbarschaft $srvpa_name (" . $srvpa_longname . ")")); endfor; endif; else: if (CONST_MODE_INTERMEDIATION == 1 && $jb_longhaul != 1): // Bremen array_unshift($cr_id_order_list_neighbourhood, array("*", "Kuriere in der Nachbarschaft")); elseif((CONST_MODE_INTERMEDIATION == 2 || CONST_MODE_INTERMEDIATION == 3) && $jb_longhaul != 1): // Hamburg, Berlin for($i = 1; $i <= CONST_AUTORANKING_NEIGHBOUR_LEVEL; $i++): $srvpa_name = $db2->getOne( "SELECT srvpa.srvpa_name FROM serviceplzneighbourarea AS srvpna, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvpna.srvpna_sort = $i AND srvp.srvp_id = srvpna.srvp_id AND srvpna.hq_id = '$hq_id' AND srvpa.hq_id = '$hq_id' AND srvpna.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); $srvpa_longname = $db2->getOne( "SELECT srvpa.srvpa_longname FROM serviceplzneighbourarea AS srvpna, serviceplz AS srvp, serviceplzarea AS srvpa" . " WHERE srvpna.srvpna_sort = $i AND srvp.srvp_id = srvpna.srvp_id AND srvpna.hq_id = '$hq_id' AND srvpa.hq_id = '$hq_id' AND srvpna.srvpa_id = srvpa.srvpa_id AND srvp.srvp_plz = '$zipcode'"); array_unshift($cr_id_order_list_neighbourhoods[$i], array("*", "- in der Nachbarschaft $srvpa_name (" . $srvpa_longname . ")")); endfor; endif; endif; // Alle Kuriere $cr_id_order_list_absolutely_all = Array(); // Neu ab 24.05.2020: Filter checkNationality ($jbId, $objId, $objType = "cr") if (isset($jb_id) && $jb_id != ""): for($i = 0; $i < count($cr_id_order_list_temp_all[0]); $i++): if (checkNationality ($jb_id, $cr_id_order_list_temp_all[0][$i][0])): $cr_id_order_list_absolutely_all[] = $cr_id_order_list_temp_all[0][$i]; // writeLog_("../log/job_courier_cur_", "checkNationality (" . $jb_id . ", " . $cr_id_order_list_temp_all[0][$i][0] . ") results to true"); else: $cr_id_order_list_blocked[] = $cr_id_order_list_temp_all[0][$i]; $cr_id_order_list_blocked_js .= "'" . trim($cr_id_order_list_temp_all[0][$i][1]) . "',"; writeLog_("../log/job_courier_cur_", "checkNationality (" . $jb_id . ", " . $cr_id_order_list_temp_all[0][$i][0] . ") results to false"); endif; endfor; endif; // Die Liste aller Kuriere soll nur die enthalten, die nicht bereits in den ersten Listen enthalten sind if (CONST_MODE_INTERMEDIATION == 1): // Bremen elseif(CONST_MODE_INTERMEDIATION == 2 || CONST_MODE_INTERMEDIATION == 3): // Hamburg, Berlin $cr_id_order_list_neighbourhood = Array(); for($i = 1; $i <= CONST_AUTORANKING_NEIGHBOUR_LEVEL; $i++): $cr_id_order_list_neighbourhood = array_merge($cr_id_order_list_neighbourhood, $cr_id_order_list_neighbourhoods[$i]); endfor; //print_r($cr_id_order_list_neighbourhoods[1]); //echo "1"; //print_r($cr_id_order_list_neighbourhoods[2]); //echo "2"; //print_r($cr_id_order_list_neighbourhoods[3]); //echo "3"; //print_r($cr_id_order_list_neighbourhood); //reportDie (); endif; $cr_id_order_list_rest = my_array_diff ($cr_id_order_list_absolutely_all, array_merge($cr_id_order_list_favoured, $cr_id_order_list_area, $cr_id_order_list_neighbourhood, $cr_id_order_list_blocked)); // $cr_id_order_list_rest ist bei jb_longhaul == 1 immer leer usort ($cr_id_order_list_rest, "cmp_usort"); if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1"): array_unshift($cr_id_order_list_rest, array("*", "- restliche verfügbare")); else: array_unshift($cr_id_order_list_rest, array("*", "Anderweitige verfügbare Kuriere")); endif; if ($jb_longhaul != 1) { $cr_id_order_list_temp = array_merge ($cr_id_order_list_favoured, $cr_id_order_list_area, $cr_id_order_list_neighbourhood, $cr_id_order_list_rest, $cr_id_order_list_blocked); } else { $cr_id_order_list_temp = array_merge ($cr_id_order_list_favoured, $cr_id_order_list_area, $cr_id_order_list_blocked); } else: // Auftragserfassung -> alle Kuriere (auch unangemeldet wg. Auftragsnacherfassung) $sqlQuery = "SELECT cr.cr_id, cr.cr_eid, mt.mt_value, cr.cr_locationzipcode, cr.cr_availabletime, crvh.crvh_payload, crvh.crvh_filter, crvh.crvh_sid, crvh.crvh_height, crvh.crvh_width, crvh.crvh_length, crvh.crvh_position" . " FROM courier AS cr, couriervehicle AS crvh, metatype AS mt, company AS cmp" . " WHERE " // . " cr.hq_id = '" . $hq_id . "' AND" // BWV: Kuriere über alle Niederlassungen sind zugelassen . " crvh.crvh_sid != '' AND" . " cr.cmp_id = cmp.cmp_id AND" . " cmp.cmp_authenticated = '1' AND" . " cr.cr_id = crvh.cr_id AND" // Quickhack wg. Fehler in der Kurierverwaltung!!! // . " cr.cr_sid = crvh.crvh_sid AND" . " crvh.vht_id = mt.mt_sort AND" . " mt.mt_type = 'vehicletype' " . " ORDER BY crvh.crvh_sid"; //if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): // writeLog_("../log/job_courier_", "[" . $sqlQuery . "]"); //endif; if ($userType != 1): $sqlQuery = " SELECT cr.cr_id, cr.cr_eid, mt.mt_value, cr.cr_locationzipcode, cr.cr_availabletime, crvh.crvh_payload, crvh.crvh_filter, crvh.crvh_sid, crvh.crvh_height, crvh.crvh_width, crvh.crvh_length, crvh.crvh_position FROM employee AS emp, costcenter AS csc, customer AS cs, customercourier AS cscr, courier AS cr, couriervehicle AS crvh, metatype AS mt, company AS cmp WHERE emp.usr_id = " . $usr_id . " AND emp.csc_id = csc.csc_id AND csc.cs_id = cs.cs_id AND cs.cs_id = cscr.cs_id AND cr.cr_id = cscr.cr_id AND cscr.cscr_relation = 1 AND crvh.crvh_sid != '' AND cr.cmp_id = cmp.cmp_id AND cmp.cmp_authenticated = '1' AND cr.cr_id = crvh.cr_id AND crvh.vht_id = mt.mt_sort AND mt.mt_type = 'vehicletype' "; endif; $res = $db2->query($sqlQuery); $cr_id_order_list_temp = array(); if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery'" . $res->getMessage()); while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): $cr_id_order_list_temp[] = array( $row["cr_id"], $row["crvh_sid"], $row["cr_eid"], $row["mt_value"], $row["cr_locationzipcode"], $row["cr_availabletime"], $row["crvh_filter"], $row["crvh_payload"], $row["crvh_height"], $row["crvh_width"], $row["crvh_length"], $row["crvh_position"] ); endwhile; $res->free(); // Spezieller Verbuchungskurier von Hansetrans // $cr_id_order_list_temp[] = array(87, "1888", 283128, "", "", "", ""); endif; //// Die Fahrzeugtabelle laden, damit nicht für jeden Kurier das Fahrzeug einzeln aus der DB geladen werden muss // ab 01.12.2010 ausgelagert //$vehicletypes = array(); //$vehicletype_ids = array(); //$sqlQuery = "SELECT mt_sort, mt_value FROM metatype WHERE mt_type = 'vehicletype'"; //$res = $db2->query($sqlQuery); //if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery': " . $res->getMessage()); //while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): // $vehicletypes[$row["mt_sort"]] = $row["mt_value"]; // $vehicletype_ids[$row["mt_value"]] = $row["mt_sort"]; //endwhile; //$res->free(); $vehicletype_ids = array( '---' => 0, 'Fahrrad' => 1, 'PKW' => 2, 'Kombi' => 3, 'Kastenwagen' => 4, 'Bus' => 5, 'Großer Bus' => 6, 'LKW' => 7, 'LKW 12 To.' => 11, 'Service' => 999); // bei occupied Kurieren sollen die aktuellen Aufträge angezeigt werden if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != ""): $cur_jb_cr_filter_opt = ""; // Optionale Filter werden zukünftig nicht mehr berücksichtigt list($cur_jb_weight, $cur_jb_height, $cur_jb_width, $cur_jb_length, $cur_jb_position, $cur_jb_ordertime, $cur_jb_reserv, $cur_jb_permanent, $cur_vht_id_job, $cur_jb_totalprice, $cur_jb_payment, $cur_jb_cr_filter,/* $cur_jb_cr_filter_opt,*/ $cur_jb_tourdata, $cur_cr_sid, $cur_csc_id_payer, $cur_csc_id_payer_cash) = getFieldsValueFromId("job", "jb_id", $jb_id, array("jb_weight", "jb_crvh_height", "jb_crvh_width", "jb_crvh_length", "jb_crvh_position", "jb_ordertime", "jb_reserv", "jb_permanent", "vht_id", "jb_totalprice", "jb_payment", "jb_cr_filter",/* "jb_cr_filter_opt",*/ "jb_tourdata", "cr_sid", "csc_id_payer", "csc_id_payer_cash")); if ($jb_longhaul == 1) { $jb_km_unrounded = $db->getOne("SELECT jbprc_price FROM jobprice WHERE jb_id = " . $jb_id . " AND mt_sort = 11"); $jb_km = round($jb_km_unrounded, 2); } $cur_vht_id_value_job = $vehicletypes[$cur_vht_id_job]; $cur_vht_id_str = ($jb_longhaul != 1 ? " Fahrzeug: " : "") . $cur_vht_id_value_job; $cur_jb_totalprice_str = ($jb_longhaul != 1 ? ", Preis: " : "") . str_replace(".", ",", sprintf("%01.2f", $cur_jb_totalprice)) . " EUR"; if ($cur_jb_payment == 2) $cur_jb_totalprice_str .= " (BAR)"; if ($jb_longhaul != 1) { $cur_jb_reserv_str = ""; if ($cur_jb_reserv == 1) { $cur_jb_ordertime_vals = getValsFromDate($cur_jb_ordertime); $cur_jb_reserv_str = ", bestellt für "; $today = getdate(); if ($today['mon'] != $cur_jb_ordertime_vals[1] || $today['mday'] != $cur_jb_ordertime_vals[2]) $cur_jb_reserv_str .= sprintf("%02d", $cur_jb_ordertime_vals[2]) . "." . sprintf("%02d", $cur_jb_ordertime_vals[1]) . "., "; $cur_jb_reserv_str .= sprintf("%02d", $cur_jb_ordertime_vals[3]) . ":" . sprintf("%02d", $cur_jb_ordertime_vals[4]) . " UHR"; if ($cur_jb_permanent >= 1) $cur_jb_reserv_str .= " (Dauerauf.)"; } } $cur_jb_cr_filter_str = ""; if ($cur_jb_cr_filter != "") { $tmp_cur_jb_cr_filter = $cur_jb_cr_filter; $mandatory_filters = trim(getParameterValue("0", "MASK_MANDATORY_FILTERS", $hq_id)); if ($mandatory_filters != ''): $mandatory_filtersArr = explode(",", $mandatory_filters); for ($i = 0; $i < count($mandatory_filtersArr); $i++): if ($tmp_cur_jb_cr_filter == $mandatory_filtersArr[$i]) $tmp_cur_jb_cr_filter = ""; $tmp_cur_jb_cr_filter = str_replace("," . $mandatory_filtersArr[$i] . ",", ",", $tmp_cur_jb_cr_filter); $tmp_cur_jb_cr_filter = str_replace($mandatory_filtersArr[$i] . ",", "", $tmp_cur_jb_cr_filter); $tmp_cur_jb_cr_filter = str_replace("," . $mandatory_filtersArr[$i], "", $tmp_cur_jb_cr_filter); endfor; endif; if (trim($tmp_cur_jb_cr_filter) != "") $cur_jb_cr_filter_str = ", Filter: " . $tmp_cur_jb_cr_filter; } $cur_jb_cr_filter_opt_str = ""; if ($cur_jb_cr_filter_opt != "") $cur_jb_cr_filter_opt_str = ", opt. Filter: " . $cur_jb_cr_filter_opt; // if ($jb_longhaul != 1) { $cur_jb_weight_str = ""; if ($cur_jb_weight > 0) $cur_jb_weight_str = ", Gewicht: " . $cur_jb_weight . " kg"; if ($cur_jb_height > 0) $cur_jb_weight_str .= ", Höhe: " . $cur_jb_height . " cm"; if ($cur_jb_width > 0) $cur_jb_weight_str .= ", Breite: " . $cur_jb_width . " cm"; if ($cur_jb_length > 0) $cur_jb_weight_str .= ", Länge: " . $cur_jb_length . " cm"; if ($cur_jb_position > 0) $cur_jb_weight_str .= ", Stellplätze: " . $cur_jb_position; // } // Etappenliste in "Kurzform" list($csc_id, $tr_comp, $tr_person, $ad_street, $tr_hsno, $ad_zipcode, $ad_city, $tr_remark, $tr_status, $tr_ware_from_to, $tr_status, $tr_sign, $tr_signname, $tr_finishtime, $tr_id) = getTourData($jb_id, 1, "tour"); $cur_jb_tour_data_split = !isset($cur_jb_tour_data) || $cur_jb_tour_data == "" ? "" : split("|", $cur_jb_tour_data); $cur_jb_tour_data_plzs = $cur_jb_tour_data_split == "" ? "" : split(",", $cur_jb_tour_data_split[0]); $cur_jb_tour_data_orte = $cur_jb_tour_data_split == "" ? "" : split(",", $cur_jb_tour_data_split[1]); // Alte Touren (Daueraufträge etc. haben noch keinen Eintrag in jb_tour_data; // deshalb zur Sicherheit checken, ob noch mehr Etappen vorhanden $cur_max_tour = 1; $via_str = ""; $t_ad_zipcode = ""; $t_ad_city = ""; while (existsEntry("tour", array("jb_id", $jb_id, "tr_sort", $cur_max_tour + 1))) { if (++$cur_max_tour > 3) $via_str .= $jb_longhaul != 1 ? ", " : "
"; if ($cur_max_tour > 2) $via_str .= $jb_longhaul != 1 ? $t_ad_zipcode . " " . $t_ad_city : $t_ad_street . " " . $t_tr_hsno . ", " . $t_ad_zipcode . " " . $t_ad_city; list($t_csc_id, $t_tr_comp, $t_tr_person, $t_ad_street, $t_tr_hsno, $t_ad_zipcode, $t_ad_city, $t_tr_remark, $t_tr_status, $t_tr_ware_from_to, $t_tr_status, $t_tr_sign, $t_tr_signname, $t_tr_finishtime) = getTourData($jb_id, $cur_max_tour, "tour"); } if ($jb_longhaul != 1 && $via_str != "") $via_str = " (via " . $via_str . ")"; if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1" && $userType == 1 && $jb_longhaul != 1): array_unshift($cr_id_order_list_temp, array("*", "KURIERE OHNE AUFTRAG<\/td><\/tr>")); endif; // $reset_cr_availabletime_checked = "checked"; $reset_cr_availabletime_checked = ""; $reset_cr_availabletime_disabled = ""; if (trim($cur_cr_sid) == ""): $cur_cr_sid = "???"; $reset_cr_availabletime_checked = ""; $reset_cr_availabletime_disabled = "disabled"; endif; $cur_cs_id = getFieldValueFromId("costcenter", "csc_id", ($cur_csc_id_payer == CSC_ID_PAYER_CASH ? $cur_csc_id_payer_cash : $cur_csc_id_payer), "cs_id"); if ($jb_longhaul == 1) { $cur_cmp_id = getFieldValueFromId("customer", "cs_id", $cur_cs_id , "cmp_id"); list($cur_cmp_comp, $cur_cmp_comp2) = getFieldsValueFromId("company", "cmp_id", $cur_cmp_id, array("cmp_comp", "cmp_comp2")); $cur_cmp_str = $cur_cmp_comp . " " . $cur_cmp_comp2; } $ignore_fav_only_checkbox = ""; if (existsEntry("customer", array("cs_id", $cur_cs_id, "cs_cr_fav_only", 1))) $ignore_fav_only_checkbox = ",
ignoriere \\\"Nur Anforderungen\\\""; array_unshift($cr_id_order_list_temp, array("#", ($jb_longhaul != 1 ? "Auftrag Nr. " : "
AuftragsnummerFahrzeugFilterKundeStartviaZielReferenzkilometerPreis
 " ) . "$jb_id" . ($jb_longhaul != 1 ? "," . $cur_vht_id_str . $cur_jb_totalprice_str . $cur_jb_reserv_str . $cur_jb_cr_filter_str . $cur_jb_cr_filter_opt_str . $cur_jb_weight_str : "  " . $cur_vht_id_str . "  " . $cur_jb_cr_filter_str . $cur_jb_cr_filter_opt_str . "  " . $cur_cmp_str . "  " . "$ad_street $tr_hsno, $ad_zipcode $ad_city" . "  " . $via_str . "  " . "$t_ad_street $t_tr_hsno, $t_ad_zipcode $t_ad_city" . "  " . str_replace(".", ",", sprintf("%01.2f", $jb_km)) . "  " . $cur_jb_totalprice_str . " 
" ) . ($jb_longhaul != 1 ? "
Start: " . "$ad_zipcode $ad_city, $ad_street $tr_hsno, " . " $tr_comp" . (trim($tr_person) != "" ? ", $tr_person" : "") . "" . ($cur_max_tour > 1 ? "
Ziel:   " . "$t_ad_zipcode $t_ad_city, $t_ad_street $t_tr_hsno, " . " $t_tr_comp" . (trim($t_tr_person) != "" ? ", $t_tr_person" : "") . $via_str . "" : "") : "" ) . ($userType == 1 ? "" . ($jb_longhaul != 1 ? "
(" . "In automatische Vermittlung einstellen" . "" . $ignore_fav_only_checkbox . ")" . "" : "") . "(" . "In manuelle Vermittlung einstellen" . ")" . "Freimeldezeit von " . $cur_cr_sid . " aktualisieren bei Neuvergabe" . "" . "" . // Uhrzeit/Aktualisieren "Stand: " . date("H:i:s") . " Uhr" . " (Aktualisieren)
" : ""))); endif; // Alle Kuriere finden, die diesen Auftrag schonmal hatten $revoked_cr_sids = array(); if (isset($jb_id) && $jb_id != ""): $sqlQuery = "SELECT cr_id FROM autoranking WHERE jb_id = '$jb_id'"; // if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): // writeLog_("../log/job_courier_cur_", "[" . $sqlQuery . "]"); // endif; $res = $db2->query($sqlQuery); if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery': " . $res->getMessage()); while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): $revoked_cr_sids[$row["cr_id"]] = 1; endwhile; $res->free(); endif; // Alle Kuriere finden, die KEINE newbies sind... (d.h. erster eledigter Job innerhalb von MASK_COURIER_NEWBIE_TIME Tagen in der Vergangenheit) // ab 01.12.2010 ausgelagert //$newbie_date = getdate(mktime(0, 0, 0, date("m"), date("d") - MASK_COURIER_NEWBIE_TIME, date("Y"))); //$newbie_date_sql = $newbie_date['year'] . "-" . sprintf("%02d", $newbie_date['mon']) . "-" . sprintf("%02d", $newbie_date['mday']) . " 23:59:59"; //$newbie_cr_sids = array(); ////$sqlQuery = "SELECT cr_id, MIN(jb_ordertime) AS min_jb_ordertime FROM job WHERE jb_status = 2 AND cr_id IS NOT NULL AND cr_id != '' GROUP BY cr_id ORDER BY min_jb_ordertime ASC"; //$sqlQuery = "SELECT DISTINCT cr_id FROM job WHERE jb_status = 2 AND jb_ordertime > '$newbie_date_sql'"; //if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): // writeLog_("../log/job_courier_cur_", "$sqlQuery"); //else: // writeLog_("../log/job_courier_", "$sqlQuery"); //endif; //$res = $db2->query($sqlQuery); //if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery': " . $res->getMessage()); //while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): //// if ($row["min_jb_ordertime"] < $newbie_date_sql) // $newbie_cr_sids[$row["cr_id"]] = 1; //// else //// break; //endwhile; //$res->free(); // Alle laufenden Aufträge laden, damit nicht für jeden Kurier die DB einzeln abgefrägt werden muss if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): writeLog_("../log/job_courier_cur_", "..." . trace_execution_time_stop() . " (" . (isset($jb_id) ? $jb_id : "") . ") nach revoked_cr_sids"); else: writeLog_("../log/job_courier_", "..." . trace_execution_time_stop() . " (" . (isset($jb_id) ? $jb_id : "") . ") nach revoked_cr_sids"); endif; $job_ids_sql = ""; $current_jobs = array(); if ($userType == 1): //$sqlQuery = "SELECT jb_id, jb_ordertime, cr_sid, jb_longhaul, hq_id FROM job WHERE jb_status = 0 OR jb_status = 1 ORDER BY cr_sid, jb_id ASC"; $sqlQuery = "SELECT job.jb_id, jb_ordertime, cr_sid, jb_longhaul, hq_id, jb_tourdata, tr_status FROM job LEFT JOIN tour ON job.jb_id = tour.jb_id WHERE (jb_status = 0 OR jb_status = 1) AND tr_sort = 1 ORDER BY jb_id ASC"; // if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "")): // writeLog_("../log/job_courier_", "[" . $sqlQuery . "]"); // endif; $res = $db2->query($sqlQuery); if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery': " . $res->getMessage()); while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): $current_jobs[$row["cr_sid"]][] = array($row["jb_id"], $row["jb_ordertime"], $row["jb_longhaul"], $row["hq_id"], $row["jb_tourdata"], $row["tr_status"]); if ($job_ids_sql != "") $job_ids_sql .= ","; $job_ids_sql .= "'" . $row["jb_id"] . "'"; endwhile; $res->free(); endif; if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): writeLog_("../log/job_courier_cur_", "..." . trace_execution_time_stop() . " ($jb_id) nach current_jobs"); else: writeLog_("../log/job_courier_", "..." . trace_execution_time_stop() . " ($jb_id) nach current_jobs"); endif; $current_tours = array(); if ($job_ids_sql != ""): $sqlQuery = "SELECT tour.jb_id, tour.tr_sort, tour.tr_status, address.ad_zipcode FROM tour, address WHERE tour.jb_id IN ($job_ids_sql) AND tour.ad_id = address.ad_id ORDER BY tour.jb_id, tour.tr_sort ASC"; //if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): // writeLog_("../log/job_courier_", "[" . $sqlQuery . "]"); //endif; $res = $db2->query($sqlQuery); if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery': " . $res->getMessage()); while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): $current_tours[$row["jb_id"]][] = array($row["tr_sort"], $row["tr_status"], $row["ad_zipcode"]); endwhile; $res->free(); endif; if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): writeLog_("../log/job_courier_cur_", "..." . trace_execution_time_stop() . " ($jb_id) nach current_tours"); else: writeLog_("../log/job_courier_", "..." . trace_execution_time_stop() . " ($jb_id) nach current_tours"); endif; // Im Falle eines Auftrages mit Maßbeschränkungen die Maße der Fahrzeuge holen $current_measures = array(); if (CONST_RANKING_JB2CRVH_MEASURE == "1" && isset($cur_jb_weight_str) && $cur_jb_weight_str != ""): $sqlQuery = "SELECT cr.cr_id, crvh.crvh_payload, crvh.crvh_sid, crvh.crvh_height, crvh.crvh_width, crvh.crvh_length, crvh.crvh_position" . " FROM courier AS cr, couriervehicle AS crvh" . " WHERE " . " cr.hq_id = '" . $hq_id . "' AND" . " crvh.crvh_sid != '' AND" . " cr.cr_id = crvh.cr_id" . " ORDER BY crvh.crvh_sid"; //if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): // writeLog_("../log/job_courier_cur_", "[" . $sqlQuery . "]"); //endif; $res = $db2->query($sqlQuery); if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery'" . $res->getMessage()); while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): /* if (trim($row["crvh_payload"]) == "") $row["crvh_payload"] = 0; if (trim($row["crvh_height"]) == "") $row["crvh_height"] = 0; if (trim($row["crvh_width"]) == "") $row["crvh_width"] = 0; if (trim($row["crvh_length"]) == "") $row["crvh_length"] = 0; if (trim($row["crvh_position"]) == "") $row["crvh_position"] = 0; */ $current_measures[$row["crvh_sid"]] = array( $row["crvh_payload"], $row["crvh_height"], $row["crvh_width"], $row["crvh_length"], $row["crvh_position"] ); endwhile; $res->free(); endif; //if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): // writeLog_("../log/job_courier_cur_", "..." . trace_execution_time_stop() . "($jb_id) nach current_measures"); //else: // writeLog_("../log/job_courier_", "..." . trace_execution_time_stop() . "($jb_id) nach current_measures"); //endif; // Die verschlüsselten cmp_ids für die Fahreransicht holen //$companyIds = array(); //$sqlquery = // "SELECT cmp.cmp_id, cr.cr_sid" // . " FROM company AS cmp, courier AS cr" // . " WHERE " // . " cmp.cmp_id = cr.cmp_id AND" // . " cr.hq_id = '" . $hq_id . "' AND" // . " cr.cr_sid != '' AND NOT (cr.cr_sid IS NULL)"; $sqlquery = "SELECT cr.cr_id, crvh.crvh_id, crvh.crvh_sid" . " FROM courier AS cr, couriervehicle AS crvh" . " WHERE " . " crvh.crvh_sid = cr.cr_sid AND" . " cr.hq_id = '" . $hq_id . "' AND" . " cr.cr_sid != '' AND NOT (cr.cr_sid IS NULL)"; //if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): // writeLog_("../log/job_courier_", "[" . $sqlQuery . "]"); //endif; $res = $db2->query($sqlquery); if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlquery'" . $res->getMessage()); $i = 0; while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): $companyIds[$row["crvh_sid"]] = "courierId=" . ec($row["cr_id"]) . "&" . "f_crvh_id=" . ec($row["crvh_id"]); endwhile; $res->free(); //if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): // writeLog_("../log/job_courier_cur_", "..." . trace_execution_time_stop() . " ($jb_id) nach $companyIds"); //else: // writeLog_("../log/job_courier_", "..." . trace_execution_time_stop() . " ($jb_id) nach $companyIds"); //endif; // Jeden Kurier einzeln verarzten $i01 = 1; $i1 = 0; $i02 = 1; $i2 = 1; $i3 = 0; if ($jb_longhaul != 1) { $cr_id_order_list0 .= "\"*Bevorzugte Kuriere ohne Auftrag<\/td><\/tr>" . "\""; $cr_id_order_list02 .= "\"*Bevorzugte Kuriere mit Auftrag<\/td><\/tr>" . "\""; $cr_id_order_list2 .= "\"*KURIERE MIT AUFTRAG<\/td><\/tr>" . "\""; } else { $cr_id_order_list0 .= "\"*- bevorzugte<\/td><\/tr>" . "\""; $cr_id_order_list02 .= "\"*- bevorzugte<\/td><\/tr>" . "\""; } //print_r($cr_id_order_list_temp); die(); if ($jb_longhaul == 1) writeLog_("../log/job_courier_cur_", "\$cr_id_order_list_temp2 = " . var_export($cr_id_order_list_temp, true)); $tmp_job_line = ""; if ($cr_id_order_list_temp[0][0] == "#"): $tmp_job_line = "#" . $cr_id_order_list_temp[0][1]; array_shift($cr_id_order_list_temp); endif; if ($jb_longhaul == 1) writeLog_("../log/job_courier_cur_", "\$cr_id_order_list_temp2 = " . var_export($cr_id_order_list_temp, true)); $is_bevorzugt = false; if ($jb_longhaul == 1) writeLog_("../log/job_courier_cur_", "\$tmp_job_line = " . $tmp_job_line); $min_jb_cr_price = 0; $jb_cr_price_tmp = ""; for($i = 0; $i < count($cr_id_order_list_temp); $i++): if ($cr_id_order_list_temp[$i][0] == "*"): $is_bevorzugt = strpos($cr_id_order_list_temp[$i][1], "bevorzugte") !== false; endif; if ($cr_id_order_list_temp[$i][0] != "*" && $cr_id_order_list_temp[$i][0] != "#"): list($dummy_year, $dummy_month, $dummy_day, $hours, $minutes) = getValsFromDate(trim($cr_id_order_list_temp[$i][5])); // courierfilter // $curFilter = substr(trim($cr_id_order_list_temp[$i][6]), 1, strlen(trim($cr_id_order_list_temp[$i][6])) - 2); // if ($curFilter != "") // $curFilter = " (" . $curFilter . ")"; // find jobs of occupied couriers // if ($cr_id_order_list_temp[$i][7] == 1): // $sqlQuery = // "SELECT jb_id, jb_ordertime FROM job WHERE cr_sid = '" . $cr_id_order_list_temp[$i][1] . "' AND (jb_status = 0 OR jb_status = 1 AND (jb_globaljob IS NULL OR jb_globaljob = 0)) ORDER BY jb_id ASC"; // $sqlQuery = // "SELECT jb_id, jb_ordertime FROM job WHERE cr_sid = '" . $cr_id_order_list_temp[$i][1] . "' AND (jb_status = 0 OR jb_status = 1) ORDER BY jb_id ASC"; // $res = $db2->query($sqlQuery); // if (DB::isError($res)) reportDie ("$PHP_SELF: '$sqlQuery'" . $res->getMessage()); $cr_id_order_list_temp[$i][7] = ""; $cr_is_occupied = false; // while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): if (isset($current_jobs[$cr_id_order_list_temp[$i][1]]) && $current_jobs[$cr_id_order_list_temp[$i][1]] != ""): foreach($current_jobs[$cr_id_order_list_temp[$i][1]] as $current_job) { $plz_str = ""; // $max_tr_sort = $db2->getOne("SELECT max(tr_sort) FROM tour WHERE jb_id = '" . $row["jb_id"] . "'"); //echo "Honk: " . $row["jb_id"] . $max_tr_sort . "
\n"; // for ($j = 1; $j <= $max_tr_sort; $j++): if ($current_tours[$current_job[0]] != ""): foreach($current_tours[$current_job[0]] as $current_tour) { // $ad_zipcode = // $db2->getOne("SELECT ad_zipcode FROM address WHERE ad_id = '" . // $db2->getOne("SELECT ad_id FROM tour WHERE tr_sort = '" . $j . "' AND jb_id = '" . $row["jb_id"] . "'") // . "'"); // $tr_status = // $db2->getOne("SELECT tr_status FROM tour WHERE tr_sort = '" . $j . "' AND jb_id = '" . $row["jb_id"] . "'"); $cur_zipcode = ($current_tour[1] == "1" ? "" . $current_tour[2] . "" : $current_tour[2]); $plz_str .= ($plz_str == "" ? $cur_zipcode : "->" . $cur_zipcode); //echo "i:$i
\n"; //echo $plz_str; } endif; // endfor; // $start_plz = // $db2->getOne("SELECT ad_zipcode FROM address WHERE ad_id = '" . // $db2->getOne("SELECT ad_id FROM tour WHERE tr_sort = '1' AND jb_id = '" . $row["jb_id"] . "'") // . "'"); // $ziel_plz = ""; // if ($db2->getOne("SELECT max(tr_sort) FROM tour WHERE jb_id = '" . $row["jb_id"] . "'") > 1): // $ziel_plz = // $db2->getOne("SELECT ad_zipcode FROM address WHERE ad_id = '" . // $db2->getOne("SELECT ad_id FROM tour WHERE tr_sort = '" . // $db2->getOne("SELECT max(tr_sort) FROM tour WHERE jb_id = '" . $row["jb_id"] . "'") . // "' AND jb_id = '" . $row["jb_id"] . "'") . "'"); // endif; if ($plz_str != "") $plz_str = " (" . $plz_str . ")"; $curFilter = ""; $jb_ordertimeStr = ""; // $jb_ordertime_vals = getValsFromDate($row["jb_ordertime"]); $jb_ordertime_vals = getValsFromDate($current_job[1]); $today = getdate(); if ($today['mon'] != $jb_ordertime_vals[1] || $today['mday'] != $jb_ordertime_vals[2]): // Kurier hat Auftrag für nachfolgenden Tag aufgenommen, d.h. er gilt nicht als besetzt $jb_ordertimeStr = " (" . sprintf("%02d", $jb_ordertime_vals[2]) . "." . sprintf("%02d", $jb_ordertime_vals[1]) . "., " . sprintf("%02d", $jb_ordertime_vals[3]) . ":" . sprintf("%02d", $jb_ordertime_vals[4]) . ")"; else: // Kurier hat Auftrag für heutigen Tag aufgenommen, gilt erstmal als besetzt $row = array(); // $row["jb_id"] = $current_job[0]; // $row["jb_ordertime"] = $current_job[1]; // $job_is_occupied = checkCrIsOccupied($row); $job_is_occupied = false; if (isset($jb_id) && $jb_id != "") $job_is_occupied = checkCrIsOccupied($current_job[0], $jb_id); if ($job_is_occupied && $jb_longhaul == 1) { $jb_id_occupied = $current_job[0]; $plz_string_occupied = $plz_str; $cur_zipcode_occupied = $cur_zipcode; } if (!$cr_is_occupied) $cr_is_occupied = $job_is_occupied; // prüfen, ob Auftragsdatum heute in der Zukunft liegt if (($jb_ordertime_vals[3] > $today['hours']) || ($jb_ordertime_vals[3] == $today['hours'] && $jb_ordertime_vals[4] > $today['minutes'])): // prüfen, ob Vorlaufzeit schon erreicht if (!$job_is_occupied): $jb_ordertimeStr = " (" . sprintf("%02d", $jb_ordertime_vals[3]) . ":" . sprintf("%02d", $jb_ordertime_vals[4]) . ")"; endif; endif; endif; if ($cr_id_order_list_temp[$i][7] == ""): $cr_id_order_list_temp[$i][7] = "<\/a>, aktueller Auftrag: "; else: $cr_id_order_list_temp[$i][7] .= ",  "; endif; // Bei Ferntouren wird der Auftrag anders angezeigt!!! if ($current_job[2] != 1): $cr_id_order_list_temp[$i][7] .= "" . $current_job[0] . $plz_str . $jb_ordertimeStr . ""; else: $hq_name = $db2->getOne("SELECT hq_name FROM headquarters WHERE hq_id = '" . $current_job[3] . "'"); // bei Ferntouren entscheidet das Mandantenrecht, ob der Auftrag bearbeitet werden kann $showLink = false; if (authCheckEmployeeRights($emp_id, "10")): $showLink = true; endif; $cr_id_order_list_temp[$i][7] .= "[FT $hq_name] " . ($showLink ? "" : "") . "" . $current_job[0] . $plz_str . $jb_ordertimeStr . "" . ($showLink ? "" : ""); endif; } endif; // endwhile; // $res->free(); // else: // $cr_id_order_list_temp[$i][7] = ""; // endif; $plzString = trim($cr_id_order_list_temp[$i][4]); if ($plzString == "") $plzString = "00000"; // if ($hq_id == 3) // $plzString .= " " . getAreaName($cr_id_order_list_temp[$i][4], 1); if ($cr_is_occupied): $plzString = "" . $plzString . ""; $is_occupied[$cr_id_order_list_temp[$i][1]] = 1; endif; if ($jb_longhaul != 1) { $leadingStr = " " . $plzString . ", " . $hours . ":" . $minutes . " - "; if (trim($hours) == "") $hours = "00"; if (trim($minutes) == "") $minutes = "00"; // Auftragserfassung: Zusätzlich Datum anzeigen, wenn nicht heute if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): $leadingStr = " " . $plzString . ", " . $hours . ":" . $minutes . " (" . sprintf("%02d", $dummy_day) . "." . sprintf("%02d", $dummy_month) . ".)" . " - "; if ($today['mday'] == $dummy_day && $today['mon'] == $dummy_month && $today['year'] == $dummy_year) $leadingStr = " " . $plzString . ", " . $hours . ":" . $minutes . " (" . sprintf("%02d", $dummy_day) . "." . sprintf("%02d", $dummy_month) . ".)" . " - "; endif; } $tmp_cr_sid = trim($cr_id_order_list_temp[$i][1]); //if (!(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): // writeLog_("../log/job_courier_", "\$tmp_cr_sid = " . $tmp_cr_sid); //endif; $jb2crvh_measure_str = ""; $ranking_jb2crvh_measure_str = ""; $jb2crvh_measure_weight_str = ""; $jb2crvh_measure_height_str = ""; $jb2crvh_measure_width_str = ""; $jb2crvh_measure_length_str = ""; $jb2crvh_measure_position_str = ""; if (CONST_RANKING_JB2CRVH_MEASURE == "1" && isset($cur_jb_weight_str) && $cur_jb_weight_str != ""): $jb2crvh_measure_weight_str = $current_measures[$tmp_cr_sid][0] . "kg"; $jb2crvh_measure_height_str .= "H:" . $current_measures[$tmp_cr_sid][1]; $jb2crvh_measure_width_str .= "B:" . $current_measures[$tmp_cr_sid][2]; $jb2crvh_measure_length_str .= "L:" . $current_measures[$tmp_cr_sid][3]; $jb2crvh_measure_position_str .= "P:" . $current_measures[$tmp_cr_sid][4]; if ($current_measures[$tmp_cr_sid][0] < $cur_jb_weight): $ranking_jb2crvh_measure_str = trim("\\\\\ ") . "nGewicht: " . $current_measures[$tmp_cr_sid][0] . " kg sind weniger als gefordert " . $cur_jb_weight . " kg"; $jb2crvh_measure_weight_str = "" . $jb2crvh_measure_weight_str . "<\/span>"; endif; if ($jb2crvh_measure_weight_str != "") $jb2crvh_measure_weight_str = ", " . $jb2crvh_measure_weight_str; if ($current_measures[$tmp_cr_sid][3] < $cur_jb_length): $ranking_jb2crvh_measure_str .= trim("\\\\\ ") . "nLänge: " . $current_measures[$tmp_cr_sid][3] . " cm sind weniger als gefordert " . $cur_jb_length . " cm"; $jb2crvh_measure_length_str = "" . $jb2crvh_measure_length_str . "<\/span>"; endif; if ($jb2crvh_measure_length_str != "") $jb2crvh_measure_length_str = ", " . $jb2crvh_measure_length_str; if ($current_measures[$tmp_cr_sid][2] < $cur_jb_width): $ranking_jb2crvh_measure_str .= trim("\\\\\ ") . "nBreite: " . $current_measures[$tmp_cr_sid][2] . " cm sind weniger als gefordert " . $cur_jb_width . " cm"; $jb2crvh_measure_width_str = "" . $jb2crvh_measure_width_str . "<\/span>"; endif; if ($jb2crvh_measure_width_str != "") $jb2crvh_measure_width_str = ", " . $jb2crvh_measure_width_str; if ($current_measures[$tmp_cr_sid][1] < $cur_jb_height): $ranking_jb2crvh_measure_str .= trim("\\\\\ ") . "nHöhe: " . $current_measures[$tmp_cr_sid][1] . " cm sind weniger als gefordert " . $cur_jb_height . " cm"; $jb2crvh_measure_height_str = "" . $jb2crvh_measure_height_str . "<\/span>"; endif; if ($jb2crvh_measure_height_str != "") $jb2crvh_measure_height_str = ", " . $jb2crvh_measure_height_str; if ($current_measures[$tmp_cr_sid][4] < $cur_jb_position): $ranking_jb2crvh_measure_str .= trim("\\\\\ ") . "nStellplätze: " . $current_measures[$tmp_cr_sid][4] . " ist/sind weniger als gefordert " . $cur_jb_position; $jb2crvh_measure_position_str = "" . $jb2crvh_measure_position_str . "<\/span>"; endif; if ($jb2crvh_measure_position_str != "") $jb2crvh_measure_position_str = ", " . $jb2crvh_measure_position_str; $jb2crvh_measure_str = $jb2crvh_measure_weight_str . $jb2crvh_measure_length_str . $jb2crvh_measure_width_str . $jb2crvh_measure_height_str . $jb2crvh_measure_position_str; if ($jb2crvh_measure_str != "") $jb2crvh_measure_str = " (" . substr($jb2crvh_measure_str, 2) . ")"; endif; $tmpCompanyIdStr = ""; if (isset($companyIds[$tmp_cr_sid])) $tmpCompanyIdStr = "\"" . $companyIds[$tmp_cr_sid] . "\""; if (isset($revoked_cr_sids[trim($cr_id_order_list_temp[$i][0])]) && $revoked_cr_sids[trim($cr_id_order_list_temp[$i][0])] == 1): $tmp_cr_sid = "" . $tmp_cr_sid . "<\/span>"; elseif (isset($newbie_cr_sids[trim($cr_id_order_list_temp[$i][0])]) && $newbie_cr_sids[trim($cr_id_order_list_temp[$i][0])] != 1): $tmp_cr_sid = "" . $tmp_cr_sid . "<\/span>"; endif; if ($jb_longhaul != 1) { $tmpCourierStr = "\"" . $leadingStr . "" . $tmp_cr_sid . ", " . trim($cr_id_order_list_temp[$i][3]) . $jb2crvh_measure_str . "" . (isset($curFilter) ? $curFilter : "") . "" . $cr_id_order_list_temp[$i][7] . "\""; } else { $is_blocked = false; foreach($cr_id_order_list_blocked as $cr_id_blocked) { if ($cr_id_blocked[0] == $cr_id_order_list_temp[$i][0]) { $is_blocked = true; break; } } if (!$is_blocked) { $is_desiredzipcode = true; list($cur_cr_homezipcode) = getFieldsValueFromId("courier", "cr_id", $cr_id_order_list_temp[$i][0], array("cr_desiredzipcode")); if (trim($cur_cr_homezipcode) == "") { list($cur_cr_homezipcode) = getFieldsValueFromId("courier", "cr_id", $cr_id_order_list_temp[$i][0], array("cr_homezipcode")); $is_desiredzipcode = false; } if (trim($cur_cr_homezipcode) == "") $cur_cr_homezipcode = $db2->getOne("SELECT ad_zipcode FROM courier, company, address WHERE courier.cmp_id = company.cmp_id AND company.ad_id = address.ad_id AND cr_id = " . $cr_id_order_list_temp[$i][0]); ////echo $cur_cr_homezipcode . "
"; // $home_coords = get_coords("DE", $cur_cr_homezipcode, ".", ".", ".", true); ////print_r($home_coords) . "

"; // $ad_country ist noch nicht sauber! // $cr_gps_lat = $cr_id_order_list_temp[$i][9]; // $cr_gps_long = $cr_id_order_list_temp[$i][10]; $home_coords = getFieldsValueFromId("courier", "cr_id", $cr_id_order_list_temp[$i][0], array("cr_gps_lat_home", "cr_gps_long_home")); list($cr_gps_long, $cr_gps_lat) = getFieldsValueFromId("courier", "cr_id", $cr_id_order_list_temp[$i][0], array("cr_gps_long", "cr_gps_lat")); if (!$cr_is_occupied) { $starting_gps_lat = $cr_gps_lat; $starting_gps_long = $cr_gps_long; // $dest_coords = $zipcodeArr; $force_date = '0000-00-00 00:00:00'; writeLog_("../log/job_courier_cur_", "get_distance_google(array($cr_gps_lat, $cr_gps_long), array(" . $zipcodeArr[0] . ", " . $zipcodeArr[1] . "), $force_date, \"km\", true)"); $starting_sec = get_distance_google(array($cr_gps_lat, $cr_gps_long), $zipcodeArr, $force_date, "km", true); $starting_min = round($starting_sec / 60); writeLog_("../log/job_courier_cur_", "\$starting_sec = $starting_sec, \$starting_min = $starting_min"); writeLog_("../log/job_courier_cur_", "get_distance_google(array($cr_gps_lat, $cr_gps_long), array(" . $zipcodeArr[0] . ", " . $zipcodeArr[1] . "), $force_date, \"km\")"); $starting_m = get_distance_google(array($cr_gps_lat, $cr_gps_long), $zipcodeArr, $force_date, "km"); $starting_km = round($starting_m / 1000); writeLog_("../log/job_courier_cur_", "\$starting_km = $starting_km"); $ending_m = get_distance_google($home_coords, $zipcodeArrEnd, $force_date, "km"); $ending_km = round($ending_m / 1000); writeLog_("../log/job_courier_cur_", "\$ending_km = $ending_km"); } else { $ad_id_jb_id_occupied_end = $db->getOne("SELECT ad_id FROM tour WHERE jb_id = " . $jb_id_occupied . " AND tr_sort = " . count($current_tours[$jb_id_occupied])); $tr_hsno_jb_id_occupied_end = $db->getOne("SELECT tr_hsno FROM tour WHERE jb_id = " . $jb_id_occupied . " AND tr_sort = " . count($current_tours[$jb_id_occupied])); list($ad_country_jb_id_occupied_end, $ad_zipcode_jb_id_occupied_end, $ad_city_jb_id_occupied_end, $ad_street_jb_id_occupied_end) = getFieldsValueFromId("address", "ad_id", $ad_id_jb_id_occupied_end, array("ad_country", "ad_zipcode", "ad_city", "ad_street")); $coords_jb_id_occupied_end = get_coords($ad_country_jb_id_occupied_end, $ad_zipcode_jb_id_occupied_end, $ad_city_jb_id_occupied_end, $ad_street_jb_id_occupied_end, $tr_hsno_jb_id_occupied_end); $starting_gps_lat = $coords_jb_id_occupied_end[0]; $starting_gps_long = $coords_jb_id_occupied_end[1]; } // $starting_min = $cr_id_order_list_temp[$i][11]; // $starting_m = $cr_id_order_list_temp[$i][12]; // $starting_km = round($starting_m / 1000); //writeLog_("../log/job_courier_cur_", $tmp_cr_sid . ", " . $cr_gps_lat . ", " . $cr_gps_long); $current_locationArr = get_address($cr_gps_lat, $cr_gps_long); $current_location = (($current_locationArr[1] != "DE" && $current_locationArr[1] != "D") ? $current_locationArr[1] . "-" : "") . $current_locationArr[2] . " " . $current_locationArr[3] . ", " . $current_locationArr[4] . " " . $current_locationArr[5]; writeLog_("../log/job_courier_cur_", "get_job_distance($jb_id, \"km\", 0, $starting_gps_lat, $starting_gps_long, " . $home_coords[0] . ", " . $home_coords[1] . ")"); $round_kms = get_job_distance($jb_id, "km", 0, $starting_gps_lat, $starting_gps_long, $home_coords[0], $home_coords[1]); $round_km = round($round_kms[0]); writeLog_("../log/job_courier_cur_", "\$round_km = $round_km"); // $jb_cr_price = $db2->getOne("SELECT jb_cr_price FROM job WHERE jb_id = " . $jb_id); $jbprc_cr_subtotal = (float) $db->getOne("SELECT jbprc_price FROM jobprice WHERE jb_id = " . $jb_id . " AND mt_sort = 10"); $jb_cr_serviceprice = (float) $db->getOne("SELECT jbprc_price FROM jobprice WHERE jb_id = " . $jb_id . " AND mt_sort = 3"); $jbprc_cr_subtotal -= $jb_cr_serviceprice; list($jb_cr_price, $jb_cr_price_sub, $cr_price_longhaul_rund, $cr_price_longhaul_last, $jb_cr_price_one_way, $jb_cr_price_one_way_sub, $basic_cr_price, $cr_price_per_km_rund, $cr_price_per_km_last, $cr_fuel_markup) = get_cr_price_longhaul($cr_id_order_list_temp[$i][0], $cur_cs_id, $cur_vht_id_job, $jb_km, $round_km, $starting_m, $jb_km_unrounded, $cur_jb_ordertime, $hq_id_dispo, $jbprc_cr_subtotal); if (getParameterValue("0", "BWV_CR_PRICE_RETOUR", "0") != "1") { $jb_cr_price_one_way = $jb_cr_price; $jb_cr_price_one_way_sub = $jb_cr_price_sub; } if ($jb_cr_price_tmp == "") $jb_cr_price_tmp = date("Y-m-d H:i:s") . "\n"; $jb_cr_price_tmp .= "\$cr_id=" . $cr_id_order_list_temp[$i][0] . "|" . "\$cr_sid=" . trim($cr_id_order_list_temp[$i][1]) . "|" . "\$cr_vehicle=" . $cr_id_order_list_temp[$i][3] . "|" . "\$cr_is_occupied=" . $cr_is_occupied . "|" . (!$cr_is_occupied ? "\$starting_min=" . $starting_min : "\$jb_id_occupied=" . $jb_id_occupied) . "|" . (!$cr_is_occupied ? "\$starting_km=" . $starting_km : "\$cur_zipcode_occupied=" . $cur_zipcode_occupied) . "|" . (!$cr_is_occupied ? "\$ending_km=" . $ending_km . "|" : "") . "\$cr_gps_lat=" . $cr_gps_lat . "|" . "\$cr_gps_long=" . $cr_gps_long . "|" . "\$current_location=" . $current_location . "|" . "\$cr_homezipcode=" . $cur_cr_homezipcode . "|" . "\$is_desiredzipcode=" . $is_desiredzipcode . "|" . "\$home_gps_lat=" . $home_coords[0] . "|" . "\$home_gps_long=" . $home_coords[1] . "|" . "\$round_km=" . $round_km . "|" . "\$jb_cr_price=" . $jb_cr_price . "|" . "\$starting_gps_lat=" . $starting_gps_lat . "|" . "\$starting_gps_long=" . $starting_gps_long . "|" . // "\$hq_id=" . $hq_id . "|" . // "\$cs_id=" . $cur_cs_id . "|" . // "\$vht_id_job=" . $cur_vht_id_job . "|" . // "\$jb_km=" . $jb_km . "|" . "\$starting_m=" . (!$cr_is_occupied ? $starting_m : 0) . "|" . // "\$jb_km_unrounded=" . $jb_km_unrounded . "|" . // "\$cur_jb_ordertime=" . $cur_jb_ordertime . "|" . "\$jb_cr_price_sub=" . $jb_cr_price_sub . "|" . "\$cr_price_longhaul_rund=" . $cr_price_longhaul_rund . "|" . "\$cr_price_longhaul_last=" . $cr_price_longhaul_last . "|" . "\$jb_cr_price_one_way=" . $jb_cr_price_one_way . "|" . "\$basic_cr_price=" . $basic_cr_price . "|" . "\$cr_price_per_km_rund=" . $cr_price_per_km_rund . "|" . "\$cr_price_per_km_last=" . $cr_price_per_km_last . "|" . "\$cr_fuel_markup=" . $cr_fuel_markup . "`\n"; $jb_cr_price_text = mk_jb_cr_price_text( array( "\$cr_sid" => trim($cr_id_order_list_temp[$i][1]), "\$cr_vehicle" => $cr_id_order_list_temp[$i][3], "\$current_location" => $current_location, "\$cr_gps_lat" => $cr_gps_lat, "\$cr_gps_long" => $cr_gps_long, "\$cr_is_occupied" => $cr_is_occupied, "\$starting_min" => $starting_min, "\$jb_id_occupied" => isset($jb_id_occupied) ? $jb_id_occupied : "", "\$starting_km" => $starting_km, "\$ending_km" => isset($ending_km) ? $ending_km : "", "\$cur_zipcode_occupied" => isset($cur_zipcode_occupied) ? $cur_zipcode_occupied : "", "\$cr_homezipcode" => $cur_cr_homezipcode, "\$is_desiredzipcode" => $is_desiredzipcode, "\$home_gps_lat" => $home_coords[0], "\$home_gps_long" => $home_coords[1], "\$jb_cr_price" => $jb_cr_price, "\$cr_fuel_markup" => $cr_fuel_markup, "\$basic_cr_price" => $basic_cr_price, "\$starting_m" => $starting_m, "\$cr_price_per_km_rund" => $cr_price_per_km_rund, "\$jb_cr_price_one_way" => $jb_cr_price_one_way, "\$round_km" => $round_km, "\$cr_price_per_km_rund" => $cr_price_per_km_rund, "\$basic_cr_price" => $basic_cr_price, "\$cr_price_longhaul_rund" => $cr_price_longhaul_rund, "\$cr_price_per_km_last" => $cr_price_per_km_last, "\$cr_price_longhaul_last" => $cr_price_longhaul_last), $jb_id, date("Y-m-d H:i:s"), $jb_km_unrounded); if ($min_jb_cr_price == 0 || $jb_cr_price < $min_jb_cr_price) $min_jb_cr_price = $jb_cr_price; if ($is_desiredzipcode) $cur_cr_homezipcode = "" . $cur_cr_homezipcode . ""; $tmpCourierStr = "\"" . " " . $tmp_cr_sid . " " . " " . "
" . str_replace(".", ",", sprintf("%01.2f", $jb_cr_price)) . "
" . "" . (!$cr_is_occupied ? $starting_min : $cur_zipcode_occupied) . "" . "" . (!$cr_is_occupied ? $starting_km : "" . $plz_string_occupied . "") . "" . "" . $current_location . "" . "" . $cur_cr_homezipcode . "" . "" . $round_km . "" . "" . trim($cr_id_order_list_temp[$i][3]) . $jb2crvh_measure_str . "" . "" . "" . "" . "" . " \""; // "|" . $cr_id_order_list_temp[$i][7] . "\""; // $tmpCourierStr = // "\"" . trim($cr_id_order_list_temp[$i][3]) . // "" . "Anfahrt min." . // "" . "KM zur Start-PLZ" . // "" . "Standort" . // "" . "Heimat-PLZ" . // "" . "Rundkilometer" . // "" . "Fuhrlohn" . "\""; // "" . $cr_id_order_list_temp[$i][7] . "\""; //$tmp_cr_sid .$jb2crvh_measure_str . $curFilter } else { $tmpCourierStr = "\"" . " " . $tmp_cr_sid . " " . " " . trim($cr_id_order_list_temp[$i][3]) . "" . "" . " " . "" . "" . " " . "" . "" . " " . "" . "" . " " . "" . "" . " " . "" . "" . " " . " \""; } } // BWV: // Kuriere ohne Auftrag // Fahrzeug Anfahrt min. KM zur Start-PLZ Standort Heimat-PLZ Rundkilometer Fuhrlohn // Kuriere mit Auftrag // Fahrzeug Ziel-PLZ aktuelle Tour Standort Heimat-PLZ Rundkilometer Fuhrlohn // Wenn CONST_MASK_COURIER_SORT_BY_OCCUPIED gesetzt, dann müssen die Kuriere nach occupied-status sortiert werden if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1"): if ($cr_is_occupied != true || !(isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1)): if ($is_bevorzugt): if ($i01++ > 0) $cr_id_order_list0 .= ",\n"; if ($i3++ > 0) $companyIds_js .= ",\n"; $cr_id_order_list0 .= /* "cr_id_order_list0[" . $i01++ . "] = " . */ $tmpCourierStr; $companyIds_js .= $tmpCompanyIdStr; else: if ($i1++ > 0) $cr_id_order_list .= ",\n"; if ($i3++ > 0) $companyIds_js .= ",\n"; $cr_id_order_list .= /* "cr_id_order_list[" . $i1++ . "] = " . */ $tmpCourierStr; $companyIds_js .= $tmpCompanyIdStr; endif; else: if ($is_bevorzugt): if ($i02++ > 0) $cr_id_order_list02 .= ",\n"; if ($i3++ > 0) $companyIds_js .= ",\n"; $cr_id_order_list02 .= /* "cr_id_order_list92[" . $i02++ . "] = " . */ $tmpCourierStr; $companyIds_js .= $tmpCompanyIdStr; else: if ($i2++ > 0) $cr_id_order_list2 .= ",\n"; if ($i3++ > 0) $companyIds_js .= ",\n"; $cr_id_order_list2 .= /* "cr_id_order_list2[" . $i2++ . "] = " . */ $tmpCourierStr; $companyIds_js .= $tmpCompanyIdStr; endif; endif; else: if ($i1++ > 0) $cr_id_order_list .= ",\n"; if ($i3++ > 0) $companyIds_js .= ",\n"; $cr_id_order_list .= /* "cr_id_order_list[" . $i1++ . "] = " . */ $tmpCourierStr; $companyIds_js .= $tmpCompanyIdStr; endif; // Abgleich der Fahrzeugtypen Kurier/Auftrag $vht_id_str = ""; if (isset($jb_id) && $jb_id != "") { // $assignStatusGPS = ""; $locatingStateArray = array("","0","0"); $locatingStatus = 0; if (getPDALocatingStatus($hq_id) == "1" && is_numeric($cr_id_order_list_temp[$i][4])) : $locatingStateArray = checkLocatingState($cr_id_order_list_temp[$i][0]); if ($locatingStateArray[3] == "9") : // $doAssignRegardingLocating = false; // Locating disabled by courier $vht_id_str .= "\\\\n" . "\\\\n" . "ACHTUNG: GPS auf dem Gerät ist deaktiviert, eine Überprüfung der Freimeldung ist nicht möglich!"; elseif ($locatingStateArray[0] == "0" || $locatingStateArray[0] == "") : // Coordinates do exist => check for ranking zipcode of the courier // writeLog_("../log/job_courier_cur_", "checkRanking(" . $cr_id_order_list_temp[$i][0]. ", " .$locatingStateArray[1]. ", " .$locatingStateArray[2]. ", " .$locatingStateArray[3]. ", " .$locatingStateArray[4]. ", " .$locatingStateArray[5]. ", " .$jb_id. ", " .$hq_id. ", " .$cr_id_order_list_temp[$i][1]. ", " .$ori_zipcode . ", false)"); $locatingStatus = checkRanking($cr_id_order_list_temp[$i][0], $locatingStateArray[1], $locatingStateArray[2], $locatingStateArray[3], $locatingStateArray[4], $locatingStateArray[5], $jb_id, $hq_id, $cr_id_order_list_temp[$i][1], $ori_zipcode, false); if ($locatingStatus == "1") : // $doAssignRegardingLocating = false; $vht_id_str .= "\\\\n" . "\\\\n" . "ACHTUNG: Die Freimeldung des Kuriers in " . $db->getOne("SELECT cr_locationzipcode FROM courier WHERE cr_id = " . $cr_id_order_list_temp[$i][0]) . " war laut Ortung fehlerhaft, er befindet sich in " . findZipcodeArea($locatingStateArray[1], $locatingStateArray[2]) . "."; endif; if ($locatingStatus == "") : $locatingStatus = "1"; endif; else: // $assignStatusGPS = "|LOCOLD=YES"; $vht_id_str .= "\\\\n" . "\\\\n" . "ACHTUNG: Die Freimeldung des Kuriers in " . $db->getOne("SELECT cr_locationzipcode FROM courier WHERE cr_id = " . $cr_id_order_list_temp[$i][0]) . " lässt sich nicht überprüfen, da die letzte Ortung veraltet ist (" . findZipcodeArea($locatingStateArray[1], $locatingStateArray[2]) . " am " . str_replace(" ", " um ", my_datum_zeit_format_datetime($locatingStateArray[4])) . " Uhr)."; endif; endif; // writeLog_("../log/job_courier_cur_", getPDALocatingStatus($hq_id) . ": " . $cr_id_order_list_temp[$i][1]. ", " . $locatingStatus . ", " . $locatingStateArray[0]); // if ($vht_id_str != ""): // writeLog_("../log/job_courier_cur_", "locating check: " . $jb_id . ", " . $cr_id_order_list_temp[$i][1] . ", " . $vht_id_str); //// writeLog_("../log/job_courier_cur_", var_export($cr_id_order_list_temp[$i], true)); //// $vht_id_str = ""; // endif; if (!check_third_country($jb_id, $cr_id_order_list_temp[$i][0])) { $vht_id_str = "\\\\n" . "\\\\n" . "*** Dieses Fahrzeug darf aufgrund der fehlenden EG-Lizenz und des zulässigen Gesamtgewichts nicht für Auslandseinsätze verplant werden. ***"; // $cur_vht_id_job = $db2->getOne("SELECT vht_id FROM job WHERE jb_id = '" . $jb_id . "'"); // $cur_vht_id_value_job = $db2->getOne("SELECT mt_value FROM metatype WHERE mt_sort = " . $cur_vht_id_job . " AND mt_type = 'vehicletype'"); // $cur_vht_id_courier = $db2->getOne("SELECT mt_sort FROM metatype WHERE mt_value = '" . $cr_id_order_list_temp[$i][3] . "' AND mt_type = 'vehicletype'"); writeLog_("../log/job_courier_cur_", "check_third_country (" . $jb_id . ", " . $cr_id_order_list_temp[$i][0] . ") results to false"); } } $cur_vht_id_courier = $vehicletype_ids[$cr_id_order_list_temp[$i][3]]; //writeLog_("../log/job_courier_cur_", "\$vehicletype_ids = " . json_encode($vehicletype_ids)); if (isset($cur_vht_id_job) && $cur_vht_id_job > $cur_vht_id_courier) { $vht_id_str .= "\\\\n" . "\\\\n" . "ACHTUNG: Fahrzeug passt nicht! (Angefordert: " . $cur_vht_id_value_job . ", zuweisen: " . $cr_id_order_list_temp[$i][3] . ")"; //writeLog_("../log/job_courier_cur_", "\$cur_vht_id_job = $cur_vht_id_job, \$cur_vht_id_courier = $cur_vht_id_courier (\$vehicletype_ids[$cr_id_order_list_temp[$i][3]] = " . $vehicletype_ids[$cr_id_order_list_temp[$i][3]] . "), \$cur_vht_id_value_job = $cur_vht_id_value_job, \$missing_filters = " . $missing_filters); } elseif (isset($cur_vht_id_job) && $cur_vht_id_job < $cur_vht_id_courier) { $vht_id_str .= "\\\\n" . "\\\\n" . "(Fahrzeug angefordert: " . $cur_vht_id_value_job . ", zuweisen: " . $cr_id_order_list_temp[$i][3] . ")"; } $cr_id_order_list_temp[$i][6] = str_replace(',,', ',', str_replace(',,,', ',,', $cr_id_order_list_temp[$i][6] . "," . $db->getOne("SELECT cr_filter FROM courier WHERE cr_id = " . $cr_id_order_list_temp[$i][0]))); $mandatory_filters = trim(getParameterValue("0", "MASK_MANDATORY_FILTERS", $hq_id)); if ($mandatory_filters != ''): $mandatory_filtersArr = explode(",", $mandatory_filters); $mandatory_filters_text = $db->getOne("SELECT par_text FROM parameter WHERE hq_id = " . $hq_id . " AND par_key = 'MASK_MANDATORY_FILTERS'"); $mandatory_filters_textArr = explode(",", $mandatory_filters_text); endif; $missing_filters = ""; $warning_text = "Filterbedingung nicht erfüllt!"; if (isset($cur_jb_cr_filter) && trim($cur_jb_cr_filter) != "") { $tmpArray = split(",", $cur_jb_cr_filter); for ($ii = 0; $ii < count($tmpArray); $ii++): if ((strpos ($cr_id_order_list_temp[$i][6], trim($tmpArray[$ii])) === false)) { $missing_filters .= ", " . trim($tmpArray[$ii]); if (!($key = array_search(trim($tmpArray[$ii]), $mandatory_filtersArr) === false)) $warning_text = $mandatory_filters_textArr[$key]; } endfor; } // writeLog_("../log/job_courier_cur_", "\$cur_jb_cr_filter = $cur_jb_cr_filter, \$missing_filters = " . $missing_filters); if (isset($cur_jb_cr_filter_opt) && trim($cur_jb_cr_filter_opt) != "") { $tmpArray = split(",", $cur_jb_cr_filter_opt); for ($ii = 0; $ii < count($tmpArray); $ii++): if ((strpos ($cr_id_order_list_temp[$i][6], trim($tmpArray[$ii])) === false)) $missing_filters .= ", " . trim($tmpArray[$ii]) . " opt."; endfor; } if ($missing_filters != "") $vht_id_str .= trim("\\\\\ ") . trim("n\\\\\ ") . "nACHTUNG: " . $warning_text . " (" . substr($missing_filters, 2) . ")"; if ($ranking_jb2crvh_measure_str != "") $vht_id_str .= trim("\\\\\ ") . trim("n\\\\\ ") . "nACHTUNG: Fahrzeugmaße passen nicht! " . trim("\\\\\ ") . trim("n") . $ranking_jb2crvh_measure_str; if ($vht_id_str != "") // $vht_id_str_js .= "vht_id_str[] = " . "new Array(\"" . $cr_id_order_list_temp[$i][1] . "\", \"" . $vht_id_str . "\");\n"; // else // $vht_id_str_js .= "vht_id_str[] = " . "new Array(\"" . $cr_id_order_list_temp[$i][1] . "\", \"\");\n"; $vht_id_str_js .= "vht_id_str[\"" . $cr_id_order_list_temp[$i][1] . "\"] = \"" . $vht_id_str . "\";\n"; else $vht_id_str_js .= "vht_id_str[\"" . $cr_id_order_list_temp[$i][1] . "\"] = \"\";\n"; else: if ($i1++ > 0) $cr_id_order_list .= ",\n"; $cr_id_order_list .= "\"" . trim($cr_id_order_list_temp[$i][0]) . trim($cr_id_order_list_temp[$i][1]) . "\""; if (CONST_MASK_COURIER_SORT_BY_OCCUPIED == "1" && $cr_id_order_list_temp[$i][0] != "#" && trim($cr_id_order_list_temp[$i][1]) != "KURIERE OHNE AUFTRAG<\/td><\/tr>"): if ($i2++ > 0) $cr_id_order_list2 .= ",\n"; $cr_id_order_list2 .= "\"" . trim($cr_id_order_list_temp[$i][0]) . trim($cr_id_order_list_temp[$i][1]) . "\""; endif; endif; endfor; if ($jb_longhaul == 1) { writeLog_("../log/job_courier_cur_", "\$cr_id_order_list_temp3 = " . var_export($cr_id_order_list_temp, true)); writeLog_("../log/job_courier_cur_", "\$jb_cr_price_tmp = " . $jb_cr_price_tmp); } if ($jb_cr_price_tmp != "") { deleteStmt("genericdatacontainer", "gdc_obj_type = 'jb' AND gdc_obj_id = " . $jb_id . " AND gdc_gen_fieldname = 'jb_cr_price_tmp'"); insertStmt("genericdatacontainer", array("gdc_obj_type", "jb", "gdc_obj_id", $jb_id, "gdc_gen_fieldname", "jb_cr_price_tmp", "gdc_content", $jb_cr_price_tmp, "gdc_context", "")); } if ($jb_longhaul == 1) { writeLog_("../log/job_courier_cur_", "\$min_jb_cr_price = " . $min_jb_cr_price); writeLog_("../log/job_courier_cur_", "\$cr_id_order_list = " . $cr_id_order_list); } $cr_id_order_list = str_replace("" . str_replace(".", ",", sprintf("%01.2f", $min_jb_cr_price)) . "" . "" . str_replace(".", ",", sprintf("%01.2f", $min_jb_cr_price)) . "" . "" . str_replace(".", ",", sprintf("%01.2f", $min_jb_cr_price)) . "" . "" . str_replace(".", ",", sprintf("%01.2f", $min_jb_cr_price)) . "" . "query("SELECT cr.cr_sid, cr.cr_locationzipcode, cr.cr_availabletime, srvp.srvp_latitude, srvp.srvp_longitude, cr.cr_occupied, mt.mt_value" . // " FROM courier AS cr, serviceplz AS srvp, couriervehicle AS crvh, metatype AS mt" . // " WHERE cr.hq_id = '$hq_id' AND" . // " cr.cr_locationzipcode = srvp.srvp_plz AND" . // " cr.cr_available = 1 AND" . // " cr.cr_id = crvh.cr_id AND" . // " cr.cr_sid = crvh.crvh_sid AND" . // " crvh.vht_id = mt.mt_sort AND" . // " mt.mt_type = 'vehicletype' " . // " ORDER BY cr.cr_locationzipcode ASC, cr.cr_availabletime ASC"); // elseif ($hq_workmode == "1" || $hq_workmode == "0" || $hq_id == 1): // $res = $db2->query("SELECT cr.cr_sid, cr.cr_locationzipcode, cr.cr_availabletime, cr.cr_occupied, mt.mt_value" . // " FROM courier AS cr, couriervehicle AS crvh, metatype AS mt" . // " WHERE cr.hq_id = '$hq_id' AND" . // " cr.cr_available = 1 AND" . // " cr.cr_id = crvh.cr_id AND" . // " cr.cr_sid = crvh.crvh_sid AND" . // " crvh.vht_id = mt.mt_sort AND" . // " mt.mt_type = 'vehicletype' " . // " ORDER BY cr.cr_locationzipcode ASC, cr.cr_availabletime ASC"); // endif; // if (DB::isError($res)) // reportDie ("$PHP_SELF: 'SELECT cr_sid ...' :" . $res->getMessage()); // $plz_geo_list = array(); // $i = 0; // while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): // // Kuriere einsammeln // if ($hq_workmode == "1" || $hq_id == 1): // list($dummy_year, $dummy_month, $dummy_day, $hours, $minutes) = // getValsFromDate($row["cr_availabletime"]); // $cr_occupied_sign = ($row["cr_occupied"] > 0) ? "*" : ""; // $cr_id_order_list .= "cr_id_order_list[" . $i++ . "] = \"" . trim($row["cr_sid"]) . " - " . trim($row["mt_value"]) . // $cr_occupied_sign . " (" . trim($row["cr_locationzipcode"]) . ", " . $hours . ":" . $minutes . ")\";\n"; // // Liste der Koordinaten (nur wenn hq_distancecalc = 1) // if ($hq_distancecalc == "1"): // $plz_geo_list[$row["cr_locationzipcode"]] = array($row["srvp_latitude"] , $row["srvp_longitude"]); // // save courier-zipcodes for search of surrounding zipcodes below // // we want to avoid duplicate querys for duplicate courier-zipcodes // endif; // else: // $cr_id_order_list .= "cr_id_order_list[" . $i++ . "] = \"" . trim($row["cr_sid"]) . "\";\n"; // endif; // endwhile; // $res->free(); // /** Searches for valid PLZs, that are in a specified radius around the PLZ of each courier. // Nur wenn hq_workmode = 1 und hq_distancecalc = 1// */// if ($hq_workmode == "1" && $hq_distancecalc == "1"): // $plz_key_list = array_keys($plz_geo_list); // foreach($plz_key_list as $zipcode) // { // $query = "SELECT srvp_plz, srvp_latitude, srvp_longitude" .// " FROM serviceplz WHERE srvp_valid = 1 AND " . // "(ACOS((SIN(" . deg2rad($plz_geo_list[$zipcode][0]) . ")*SIN(RADIANS(srvp_latitude))) + " .// "(COS(" . deg2rad($plz_geo_list[$zipcode][0]) . ")*COS(RADIANS(srvp_latitude))*COS(RADIANS(srvp_longitude)-" . // deg2rad($plz_geo_list[$zipcode][1]) . "))) * " . GEO_EARTH_RADIUS . ") < " . MAXIMUM_SEARCH_RADIUS; // $res_geo = $db2->query($query); // if (DB::isError($res_geo)) // reportDie ("$PHP_SELF: '$query': " . $res_geo->getMessage()); // while ($row = ($phpVersion >= "8.0" ? $res_geo->fetch_assoc() : $res_geo->fetchRow())): // $plz_geo_list[$row["srvp_plz"]] = array($row["srvp_latitude"] , $row["srvp_longitude"]); // endwhile; // $res_geo->free(); // } // endif; endif; if ($tmp_job_line != "") $tmp_job_line = "\"" . $tmp_job_line . "\"" . ",\n"; $cr_id_order_list = str_replace("\"" . "*- bevorzugte" . "\",\n", "", $cr_id_order_list); $cr_id_order_list2 = str_replace("\"" . "*- bevorzugte" . "\",\n", "", $cr_id_order_list2); if ($jb_longhaul == 1) $cr_id_order_list2 = str_replace("Anfahrt min.", "Ziel PLZ", str_replace("KM zur Start-PLZ", "aktuelle Tour", $cr_id_order_list2)); if ($jb_longhaul != 1) { $cr_id_order_list = "var cr_id_order_list=[" . $tmp_job_line . $cr_id_order_list0 . ",\n" . $cr_id_order_list02 . ",\n" . $cr_id_order_list . "];\n"; $cr_id_order_list2 .= "];\n"; } else { $cr_id_order_list = "var cr_id_order_list=[" . $tmp_job_line . "\"*KURIERE OHNE AUFTRAG<\/td><\/tr>" . "\"" . ",\n" . $cr_id_order_list0 . ",\n" . $cr_id_order_list . "];\n"; $cr_id_order_list2 = "var cr_id_order_list2=[" . "\"*KURIERE MIT AUFTRAG<\/td><\/tr>" . "\"" . ",\n" . $cr_id_order_list02 . $cr_id_order_list2 . "];\n"; } //echo $cr_id_order_list; //echo $cr_id_order_list2; //die(); $companyIds_js .= "];\n"; $cr_id_order_list_blocked_js = substr($cr_id_order_list_blocked_js, 0, -1) . "];\n"; if (isset($jb_id) && $jb_id != "" && isset($zipcode) && $zipcode != "" && $userType == 1): writeLog_("../log/job_courier_cur_", trace_execution_time_stop() . " job_courier.inc.php executed: \$jb_id = $jb_id, couriers: " . count($cr_id_order_list_temp) . ", vehicletype: $cur_vht_id_value_job" . ", \$usr_id = $usr_id"); else: writeLog_("../log/job_courier_", trace_execution_time_stop() . " job_courier.inc.php executed: \$jb_id = " . (isset($jb_id) ? $jb_id : "") . ", couriers: " . count($cr_id_order_list_temp) . ", vehicletype: " . (isset($cur_vht_id_value_job) ? $cur_vht_id_value_job : "") . ", \$usr_id = $usr_id"); endif; //// Gesperrte / gewünschte Kuriere der Kunden //$res = $db2->query("SELECT cs_id, cr_id, cscr_relation FROM customercourier ORDER BY cr_id"); //if (DB::isError($res)) // reportDie ("$PHP_SELF: 'SELECT cs_id, cr_id, cscr_relation FROM customercourier ORDER BY cr_id': " . $res->getMessage()); //$customercourier_list = "var customercourier_list = new Array();\n"; //$i = 0; //while ($row = ($phpVersion >= "8.0" ? $res->fetch_assoc() : $res->fetchRow())): // $customercourier_list .= "customercourier_list[" . $i++ . "] = " . // "new Array(" . $row["cs_id"] . ", " . $row["cr_id"] . ", " . $row["cscr_relation"] . ");\n"; //endwhile; //$res->free(); ?>