2021-01-11 22:56:04
$arrivalTime = substr($arrivalTime, 0, 4) . "-" . substr($arrivalTime, 4, 2) . "-" . substr($arrivalTime, 6, 2) . " " . substr($arrivalTime, 8, 2) . ":" . substr($arrivalTime, 10, 2) . ":" . substr($arrivalTime, 12, 2);
endif;
// Get data for log history
$trSortMaxVal = 0;
if ($jbId != "") :
$hqId = getFieldValueFromId("job", "jb_id", $jbId, "hq_id");
$jbStatus = getFieldValueFromId("job", "jb_id", $jbId, "jb_status");
$trStatusOfPickUpStation = getFieldValueFromClause("tour", "tr_status", "jb_id = '" . $jbId . "' AND tr_sort = '1'");
$trSortMaxVal = getMaxOfField("tour", "tr_sort", "jb_id = '" . $jbId . "'");
$trStatusOfTrSortMaxVal = getFieldValueFromClause("tour", "tr_status", "jb_id = '" . $jbId . "' AND tr_sort = '" . $trSortMaxVal . "'");
endif;
if ($crId != "") :
$crGpsLong = getFieldValueFromId("courier", "cr_id", $crId, "cr_gps_long");
$crGpsLat = getFieldValueFromId("courier", "cr_id", $crId, "cr_gps_lat");
endif;
/*
Folgendermaßen kann jetzt der Status eines Auftrags gesetzt werden.
Als “status” kann Folgendes übergeben werden: PICKEDUP, NOTPICKEDUP, DELIVERED, NOTDELIVERED.
Es wird je nachdem, ob es PICKEUP oder DELIVERY der benötigte Checkin automatisch vorher durchgeführt.
orderReferenceId => Pflicht (“938a928824b34a768223e968e1d26ea4”)
status => Pflicht (PICKEDUP, NOTPICKEDUP, DELIVERED, NOTDELIVERED)
updateTime => optional (UTC Beispiel: 2018-02-08T09:30:00Z)
reasonCd => optional (“REASON”)
$orderStatusData = array(
"orderReferenceId" => “938a928824b34a768223e968e1d26ea4”,
"status" => "DELIVERED",
"updateTime" => "2021-02-08 9:30:00",
"reasonText" => "REASON"
"reasonCd" => "CODE"
);
lnUpdateOrderStatus($orderStatusData);
*/
if ($stateEvent == "0") :
// **** ACCEPT ****
$resultCallOrderState = true; // Request had been sent!!!!
writeToFile($logFile, "ACCEPTED: " . "[jbId=" . $jbId . "][orderReferenceId=" . $orderReferenceId . "]");
elseif ($stateEvent == "1") :
// **** CHECK-IN PICKUP ****
// $orderPickedUp = array($orderReferenceId, $arrivalTime);
// lnUpdateOrderStatus($orderPickedUp);
// **** PICKEDUP ****
// Check for order is picked
$resultCallOrderState = true;
$pickedState = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'jb' AND gdc_gen_fieldname = 'auto_response' AND gdc_obj_id = '" . $jbId . "'");
if ($pickedState < "2") :
$resultCallOrderState = false;
$trFinishtime = getFieldValueFromId("tour","tr_id",$trId,"tr_finishtime");
$crUsrId = "";
if ($crId != "" && is_numeric($crId)) :
$crUsrId = getFieldValueFromId("courier","cr_id",$crId,"usr_id");
endif;
// **** PICKEDUP ****
// Get event state from GDC
$eventCode = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'tr' AND gdc_gen_fieldname = 'del_code' AND gdc_obj_id = '" . $trId . "'");
$eventRemark = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'tr' AND gdc_gen_fieldname = 'del_rem' AND gdc_obj_id = '" . $trId . "'");
// Init delivery state
$pickupState = "PICKEDUP";
$eventText = "";
if ($eventCode != "" && $eventCode != "1") :
if ($eventRemark != "") :
$eventText = $eventRemark;
endif;
$pickupState = "NOTPICKEDUP";
endif;
$orderStatusData = array(
"orderReferenceId" => $orderReferenceId,
"status" => $pickupState,
"updateTime" => $trFinishtime,
"reasonText" => $eventText,
"reasonCd" => $eventCode,
"recipientName" => "",
"crID" => $crId,
"crUsrID" => $crUsrId,
"vehicle" => $gdc_03,
"crGpsLong" => $crGpsLong,
"crGpsLat" => $crGpsLat
);
// Write logdata into log database
$gdcJbLogWritten = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'jb' AND gdc_gen_fieldname = 'db_log' AND gdc_obj_id = '" . $jbId . "'");
if ($gdcJbLogWritten == "" && $trStatusOfPickUpStation == "1") :
writeToFile($logFile, "PICKEDUP (Begin): " . "[currentTime=" . getDateTime("0") . "][jbId=" . $jbId . "][orderReferenceId=" . $orderReferenceId . "][trFinishtime=" . $trFinishtime . "]");
// $resultCallOrderState = lnUpdateOrderStatus($orderReferenceId, "PICKEDUP", $trFinishtime, "", "");
$resultCallOrderState = lnUpdateOrderStatus($orderStatusData);
writeToFile($logFile, "PICKEDUP (End): " . "[currentTime=" . getDateTime("0") . "][jbId=" . $jbId . "][orderReferenceId=" . $orderReferenceId . "][trFinishtime=" . $trFinishtime . "][resultCallOrderState=" . $resultCallOrderState . "]");
writeToLogDB("172",$hqId,$jbId,"",$crId,$crSid,"","LONG=" . $crGpsLong . "|LAT=" . $crGpsLat . "|INFO_2=" . $gdc_03 . "|RES=" . $resultCallOrderState);
insertStmt("genericdatacontainer", array("gdc_obj_type", "jb", "gdc_obj_id", $jbId, "gdc_gen_fieldname", "db_log", "gdc_content", "172", "gdc_context", ""));
endif;
endif;
elseif ($stateEvent == "2") :
// **** CHECK-IN DELIVERY ****
// $orderDelivered = array($orderReferenceId, $arrivalTime);
// lnUpdateOrderStatus($orderDelivered);
// Check for order is picked
// $resultCallOrderState = false;
// $pickedState = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'jb' AND gdc_gen_fieldname = 'auto_response' AND gdc_obj_id = '" . $jbId . "'");
// if ($pickedState >= "2") :
// **** DELIVERED ****
// Get event state from GDC
$eventCode = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'tr' AND gdc_gen_fieldname = 'del_code' AND gdc_obj_id = '" . $trId . "'");
$eventRemark = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'tr' AND gdc_gen_fieldname = 'del_rem' AND gdc_obj_id = '" . $trId . "'");
// Init delivery state
$deliveryState = "DELIVERED";
$eventText = "";
if ($eventCode != "" && $eventCode != "1") :
if ($eventRemark != "") :
$eventText = $eventRemark;
endif;
$deliveryState = "NOTDELIVERED";
endif;
$trFinishtime = getFieldValueFromId("tour","tr_id",$trId,"tr_finishtime");
$tr_signname = getFieldValueFromId("tour","tr_id",$trId,"tr_signname");
$crUsrId = "";
if ($crId != "" && is_numeric($crId)) :
$crUsrId = getFieldValueFromId("courier","cr_id",$crId,"usr_id");
endif;
$orderStatusData = array(
"orderReferenceId" => $orderReferenceId,
"status" => $deliveryState,
"updateTime" => $trFinishtime,
"reasonText" => $eventText,
"reasonCd" => $eventCode,
"recipientName" => $tr_signname,
"crID" => $crId,
"crUsrID" => $crUsrId,
"vehicle" => $gdc_03,
"crGpsLong" => $crGpsLong,
"crGpsLat" => $crGpsLat
);
// Write logdata into log database
$gdcJbLogWritten = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'jb' AND gdc_gen_fieldname = 'db_log' AND gdc_obj_id = '" . $jbId . "'");
if ($gdcJbLogWritten == "172" && ($jbStatus == "2" || $trStatusOfTrSortMaxVal == "1")) :
writeToFile($logFile, $deliveryState . " (Begin): " . "[currentTime=" . getDateTime("0") . "][jbId=" . $jbId . "][orderReferenceId=" . $orderReferenceId . "][trFinishtime=" . $trFinishtime . "][deliveryState=" . $deliveryState . "]");
// $resultCallOrderState = lnUpdateOrderStatus($orderReferenceId, $deliveryState, $trFinishtime, $eventText, $eventCode);
$resultCallOrderState = lnUpdateOrderStatus($orderStatusData);
writeToFile($logFile, $deliveryState . " (End): " . "[currentTime=" . getDateTime("0") . "][jbId=" . $jbId . "][orderReferenceId=" . $orderReferenceId . "][trFinishtime=" . $trFinishtime . "][deliveryState=" . $deliveryState . "][resultCallOrderState=" . $resultCallOrderState . "]");
writeToLogDB("174",$hqId,$jbId,"",$crId,$crSid,"","LONG=" . $crGpsLong . "|LAT=" . $crGpsLat . "|INFO_2=" . $gdc_03 . "|RES=" . $resultCallOrderState);
updateStmt("genericdatacontainer","gdc_obj_type","jb",array("gdc_content", "174", "gdc_context", ""),"gdc_obj_id = '" . $jbId . "' AND gdc_gen_fieldname = 'db_log'");
endif;
// endif;
endif;
endif;
$requestConfigArray = array();
if ($resultCallOrderState) :
$requestConfigArray["SEND_STATE"] = "OK:0:";
else :
$requestConfigArray["SEND_STATE"] = "ERR:no:msg";
endif;
return $requestConfigArray;
}
/*
---------------------------------------------------------------
LIVE-SERVER
cs_id cs_eid emp_id usr_id
123456 STH911739 123456 123456
123456 STH911740 123456 123456
123456 STF910972 123456 123456
123456 STS920307 123456 123456
123456 STS920308 123456 123456
123456 STS920315 123456 123456
-----------------------------------------------------------------
TEST-SERVER
cs_id cs_eid emp_id usr_id
123456 STH911739 123456 123456
123456 STH911740 123456 123456
123456 STF910972 123456 123456
123456 STS920307 123456 123456
123456 STS920308 123456 123456
123456 STS920315 123456 123456
STF910972
STF910972
F92184
0e143c3bef0f7759c230664c4dc905f8e4da3b7fbbce2345d7772b0674a318d51dde48a31c101b2feb6c5e598654d88d3f694af5242fcf7dffe7129497871797
STH911739
STH911739
H85450
5067ed417ec5779207a81178c50017b4a87ff679a2f3e71d9181a67b7542122c74e6497fd22dd8eafa58e21abe4b371bf72642f12aa2d1a323334db941c0f145
STH911740
STH911740
H63474
fe709c654eac84d5239d1a12a4f71877a87ff679a2f3e71d9181a67b7542122c618b8800517a6c10f8f27a7c48166ea392433abdf2a5a3badf45c990fc732aff
STS920307
STS920307
S68031
dc363817786ff182b7bc59565d8645236512bd43d9caa6e02c990b0a82652dca2ab855e70e04711a44aea6555af30f10ab1a2d9401e4ae7fe5acff76e5f10420
STS920308
STS920308
S27196
f096d3da9f8797e053edd854335413ab6512bd43d9caa6e02c990b0a82652dcaf5bea4fc2cbc9766f98b8d8fd28d597c3485aa0e07dfb703721627b6edf1759e
STS920315
STS920315
S36338
0a30a980e3540e51eb25423caa79f0cb6512bd43d9caa6e02c990b0a82652dcae0442a7d0949964ee2de23a30ff2c1c3cbd682237d1c378be6413427c69ffba6
*/
?>