= 3) : if ($isProductive) : $server = "https://startrax.time-matters.com/partnerinfo/json"; // Productive $password = "KA1nbUD2KdJnc2b"; else : $server = "https://traxint.time-matters.com/partnerinfo/json"; // Test $password = "MKN}ft9FBe3]8n1i"; endif; endif; elseif ($stateEvent == "2") : if ($isProductive) : $server = "https://startrax.time-matters.com/partnerinfo/json"; // Productive $password = "KA1nbUD2KdJnc2b"; else : $server = "https://traxint.time-matters.com/partnerinfo/json"; // Test $password = "MKN}ft9FBe3]8n1i"; endif; endif; // $crEid = ""; // if ($crId != "" && $crId != "0") : // $crEid = getFieldValueFromId("courier","cr_id",$crId,"cr_eid"); // endif; $shipmentId = $gdc_01; // Init // Convert timestamp from localtime to UTC $timestamp = gmdate("Y-m-d H:i:s", mktime(substr($timestamp, 11, 2), substr($timestamp, 14,2), substr($timestamp, 17, 2), substr($timestamp, 5, 2), substr($timestamp, 8,2), substr($timestamp, 0, 4))); $timestamp = substr($timestamp,0,10). "T" . substr($timestamp,11) . "Z"; // Location zipcode $adId = getFieldValueFromId("tour","tr_id",$trId,"ad_id"); $adZipcode = getFieldValueFromId("address","ad_id",$adId,"ad_zipcode"); // Taketime "job" (UTC) $jbTaketime = getFieldValueFromId("job","jb_id",$jbId,"jb_taketime"); $jbTaketime = gmdate("Y-m-d H:i:s", mktime(substr($jbTaketime, 11, 2), substr($jbTaketime, 14,2), substr($jbTaketime, 17, 2), substr($jbTaketime, 5, 2), substr($jbTaketime, 8,2), substr($jbTaketime, 0, 4))); $jbTaketime = substr($jbTaketime,0,10). "T" . substr($jbTaketime,11) . "Z"; // Finishtime "tour" (UTC) $trFinishtime = getFieldValueFromId("tour","tr_id",$trId,"tr_finishtime"); $trFinishtime = gmdate("Y-m-d H:i:s", mktime(substr($trFinishtime, 11, 2), substr($trFinishtime, 14,2), substr($trFinishtime, 17, 2), substr($trFinishtime, 5, 2), substr($trFinishtime, 8,2), substr($trFinishtime, 0, 4))); $trFinishtime = substr($trFinishtime,0,10). "T" . substr($trFinishtime,11) . "Z"; $requestHeader = array(); $requestBody = ""; // if ($stateEvent != "2" || $shipmentId != "") : if ($shipmentId != "") : // Define header request // $requestHeader[] = "PUT /" . $shipmentId . " HTTP/1.1\r\n"; // $requestHeader[] = "Host: " . $server . "\r\n"; // $requestHeader[] = "Host: " . $server . $shipmentId . "\r\n"; $requestHeader[] = "Content-Type: application/json; charset=utf-8\r\n"; // $requestHeader[] = "Authorization: Boxture " . $apiKey . " \r\n"; $requestHeader[] = "Content-Length: LENGTH\r\n"; $shipments = array(); $tmp_array = array(); $tmp_array['user'] = "Stadtbote"; $tmp_array['password'] = $password; $tmp_array['created'] = $timestamp; $tmp_array['routeID'] = $shipmentId; $tmp_array['orderNumber'] = $tr1CommissionNo; $tmp_array['trackingPoint'] = array(); $tmp_array['trackingPoint']['weight'] = $gdc_02; $tmp_array['trackingPoint']['pieces'] = $gdc_03; $tmp_array['trackingPoint']['handover'] = $trSignName; $tmp_array['trackingPoint']['locationZip'] = $adZipcode; $tmp_array['trackingPoint']['type'] = "actual"; if ($stateEvent == "0") { $tmp_array['trackingPoint']['comment'] = "Order confirmed"; $tmp_array['trackingPoint']['utcdateTime'] = $timestamp; // $jbTaketime; $tmp_array['trackingPoint']['event'] = "confirm"; } else if ($stateEvent == "1") { $tmp_array['trackingPoint']['comment'] = "Shipment pickup"; $tmp_array['trackingPoint']['utcdateTime'] = $trFinishtime; $tmp_array['trackingPoint']['event'] = "pickup"; } else if ($stateEvent == "2") { $tmp_array['trackingPoint']['comment'] = "Shipment delivery"; $tmp_array['trackingPoint']['utcdateTime'] = $trFinishtime; $tmp_array['trackingPoint']['event'] = "delivery"; // 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 . "'"); if ($eventCode != "" && $eventCode != "0" && is_numeric($eventCode)) : // Reasons if ($eventCode == "13") : $eventText = "Customs refusal"; elseif ($eventCode == "24") : $eventText = "Examination required by relevant authority"; elseif ($eventCode == "63") : $eventText = "Weather conditions"; elseif ($eventCode == "31") : $eventText = "Industrial dispute"; elseif ($eventCode == "88") : $eventText = "Accident involving means of transport"; elseif ($eventCode == "58") : $eventText = "Transit delay"; elseif ($eventCode == "7") : $eventText = "Business closed"; elseif ($eventCode == "19") : $eventText = "Discrepancy"; elseif ($eventCode == "30") : $eventText = "Incorrect address"; elseif ($eventCode == "39") : $eventText = "No recipient contact information"; elseif ($eventCode == "38") : $eventText = "New delivery arrangements"; elseif ($eventCode == "95") : $eventText = "Excess goods delivered"; elseif ($eventCode == "43") : $eventText = "Package not ready"; elseif ($eventCode == "21") : $eventText = "Due to customer"; elseif ($eventCode == "37") : $eventText = "Missing and/or incorrect documents"; elseif ($eventCode == "1") : $eventText = "Address ex delivery area"; elseif ($eventCode == "8") : $eventText = "Changed schedule"; elseif ($eventCode == "41") : $eventText = "Not loaded"; elseif ($eventCode == "2") : $eventText = "After transport departed"; elseif ($eventCode == "67") : $eventText = "Administrative error"; elseif ($eventCode == "62") : $eventText = "Unknown"; elseif ($eventCode == "17") : $eventText = "Departure delay"; elseif ($eventCode == "35") : $eventText = "Mechanical breakdown"; elseif ($eventCode == "70") : $eventText = "Undefined incident attributed to logistic service provider"; elseif ($eventCode == "23") : $eventText = "Equipment failure"; elseif ($eventCode == "36") : $eventText = "Mechanical inspection"; elseif ($eventCode == "33") : $eventText = "Lost goods/consignments/equipment"; elseif ($eventCode == "53") : $eventText = "Sorted wrong route"; elseif ($eventCode == "87") : $eventText = "Error"; else : $eventText = ""; endif; $tmp_array['delayCode'] = $eventCode; $tmp_array['delayReason'] = $eventText; $tmp_array['timestamps'] = array('undeliverableAt' => $timestamp); endif; } $frameArray = array(); $frameArray['trackingInformation'] = $tmp_array; $shipments[] = $frameArray; $requestBody .= json_encode($shipments); // $requestBody .= array_to_json($shipments); $requestBody = substr($requestBody,1,-1); // Remove "[" and "]" // $requestBody = urlencode($requestBody); $requestBodyLen = strlen($requestBody); $requestHeaderLen = count($requestHeader); for ($i = 0; $i < $requestHeaderLen; $i++) : if (!(strpos($requestHeader[$i], "LENGTH") === false)) : $requestHeader[$i] = str_replace("LENGTH", $requestBodyLen, $requestHeader[$i]); endif; endfor; else : // die(); endif; // echo implode("\n", $requestHeader) . "\n" . $requestBody . "\n"; die(); $requestConfigArray = array(); if ($requestBody != "") : $requestConfigArray["CURLOPT_URL"] = $server; // $requestConfigArray["CURLOPT_HTTPHEADER"] = $requestHeader; $requestConfigArray["CURLOPT_HTTPHEADER"] = array('Content-Type: application/json'); $requestConfigArray["CURLOPT_RETURNTRANSFER"] = true; $requestConfigArray["CURLOPT_CUSTOMREQUEST"] = "PUT"; $requestConfigArray["CURLOPT_POSTFIELDS"] = $requestBody; // JSON $requestConfigArray["CURLOPT_PUT"] = true; endif; // ********************************************************** // * Special static handling for timematters: // * Get "km"-value from "jb_freetext", parse the number value only and create a calculator item // ********************************************************** // Get srv_id and srvt_id, both has to exist (!!!!) $tmpSrvName = "TOUR"; $tmpSrvtName = "KM"; $tmpSrvId = getFieldValueFromClause("service","srv_id","srv_mode = '1' AND cs_id = '" . $csId . "' AND srv_name = '" . $tmpSrvName . "'"); $tmpSrvtId = getFieldValueFromClause("servicetype","srvt_id","srvt_mode = '1' AND cs_id = '" . $csId . "' AND srvt_name = '" . $tmpSrvtName . "'"); // if ($tmpSrvId == "" || $tmpSrvId == "0" || $tmpSrvtId == "" || $tmpSrvtId == "0") : // $tmpSrvId = getFieldValueFromClause("service","srv_id","srv_mode = '1' AND cs_id = '" . $csIdParent . "' AND srv_name = '" . $trCalcItemArray[$i][$j]["pricetype"] . "'"); // $tmpSrvtId = getFieldValueFromClause("servicetype","srvt_id","srvt_mode = '1' AND cs_id = '" . $csIdParent . "' AND srvt_name = '" . $trCalcItemArray[$i][$j]["servicetype"] . "'"); // endif; if ($tmpSrvId != "" && $tmpSrvtId != "") : // Get km value from table job $jbcQuantity = getFieldValueFromId("job","jb_id",$jbId,"jb_freetext_1"); // $jbcQuantity = preg_replace('/\D/', '', $jbcQuantity); $jbcQuantity = trim(str_replace ("km", "", $jbcQuantity)); $jbcQuantity = str_replace (",", ".", $jbcQuantity); // Get price from service matrix /* $jbCalcPrice = getServiceValues($tmpSrvId, $tmpSrvtId, $csId, $hqId, $currentTime, 1); if ($jbCalcPrice == "" || $jbCalcPrice == "0") : // Try to get price from meta customer $jbCalcPrice = getServiceValues($tmpSrvId, $tmpSrvtId, $csIdParent, $hqIdCsParent, $currentTime, 1); // If price empty or "0" then take price from request // if ($jbCalcPrice == "" || $jbCalcPrice == "0") : // $jbCalcPrice = $trCalcItemArray[$i][$j]["price"]; // endif; endif; */ insertStmt("jobcalculator", array("jb_id", $jbId, "tr_id", "0", "tr_sort", "0", "srv_id", $tmpSrvId, "srv_name", $tmpSrvName, "srvt_id", $tmpSrvtId, "srvt_name", $tmpSrvtName, "jbc_amount", $jbcQuantity, "jbc_price", "0", "jbc_totalprice", "0")); endif; // ********************************************************** return $requestConfigArray; } /* cs_id cs_eid emp_id usr_id 833194 STB975597 834135 841591 819825 STDD908923 819943 825800 823862 STE900608 824266 830604 823978 STF909226 824386 830734 819783 STH910930 819901 825754 832514 STHB922142 833410 840785 203463 STHH927621 203464 208443 823922 STL908468 824329 830671 839904 STM900029 841607 850094 --------------------------------------------------------------- LIVE-SERVER Berlin STB975597 STB975597 B20211 179db74797bde5f379b623ab73ee7c64eccbc87e4b5ce2fe28308fd9f2a7baf3d71eb342c50dca2186bce37ddca08cd1d41d8cd98f00b204e9800998ecf8427e Dresden STDD908923 STDD908923 DD70766 2642c4088801f315789ed587f791f3f21679091c5a880faf6fb5e6087eb1b2dc05400adb9a25903c9bd4ab3399aa48c4d41d8cd98f00b204e9800998ecf8427e Essen: STE900608 STE900608 E19785 9338acdf75d9aba376431a59973effaa8f14e45fceea167a5a36dedd4bea25432db4042d5f9efa9891bc2622189de8d9d41d8cd98f00b204e9800998ecf8427e Frankfurt STF909226 STF909226 F74661 f0cd63afa3dd55eb9f7857db09d52ce3e4da3b7fbbce2345d7772b0674a318d5510125b94deae7feac2dbf11b70f99bad41d8cd98f00b204e9800998ecf8427e Stuttgart STS910215 STS910215 S87519 322e03b788964c64c6a1806a36f21daf6512bd43d9caa6e02c990b0a82652dcab0dbfc9186e2efe4069de2755ebed87ed41d8cd98f00b204e9800998ecf8427e Hamburg STHH927621 STHH927621 HH56963 0d4caa61a340cc953d6d0ec97ecd6180c81e728d9d4c2f636f067f89cc14862c79ee52e282692e10fbecc3a8bd2e1bdad41d8cd98f00b204e9800998ecf8427e Hannover: STH910930 STH910930 H29323 89fcd07f20b6785b92134bd6c1d0fa42a87ff679a2f3e71d9181a67b7542122ccb47e8e20c0fa2f947d91b63e7017433d41d8cd98f00b204e9800998ecf8427e Bremen STHB922142 STHB922142 HB87513 a41db61e2728ef963614a8c8755b9b9ac4ca4238a0b923820dcc509a6f75849b73470fc91e4e42f4c465bf4b92c3f118d41d8cd98f00b204e9800998ecf8427e Leipzig STL908468 STL908468 L87588 30b6b8f7a8e3dba528fe76dec93d773ac9f0f895fb98ab9159f51fd0297e236db378d36bb689620d5819b127d0915efb67da9e2d2a17a760f08626cc02145f08 München STM900029 STM900029 M82357 9a02387b02ce7de2dac4b925892f68fb45c48cce2e2d7fbdea1afc51c7c6ad26f2d8c3218e07bfda1506998e80643362b086ab3a6b9acfc960265b6a0f7c7005 ----------------------------------------------------------------- TEST-SERVER Berlin (cs_id: 833194) STB975597 test2537 B20211 179db74797bde5f379b623ab73ee7c64eccbc87e4b5ce2fe28308fd9f2a7baf3d71eb342c50dca2186bce37ddca08cd1d41d8cd98f00b204e9800998ecf8427e Hamburg (cs_id: 203463) STHH927621 STHH927621 HH56963 0d4caa61a340cc953d6d0ec97ecd6180c81e728d9d4c2f636f067f89cc14862c79ee52e282692e10fbecc3a8bd2e1bdad41d8cd98f00b204e9800998ecf8427e */ ?>