0) :
getDBData("job", $jbId);
$jbArr = $dbData["job"];
if ($jbArr["jb_status"] != "") :
if ($jbArr["cr_sid"] != "") :
$crvhId = getFieldValueFromId("couriervehicle", "crvh_sid", $jbArr["cr_sid"], "crvh_id");
getDBData("couriervehicle", $crvhId);
$crvhArr = $dbData["couriervehicle"];
$co2_KG = $crvhArr["crvh_payload"];
if ($jbArr["jb_weight"] > 0) :
$co2_T = $jbArr["jb_weight"];
else :
$co2_T = ($co2_KG * 0.5);
endif;
if ($co2_T != "" && is_numeric($co2_T) && $co2_T > 0) :
$jbHqId = getFieldValueFromId("job", "jb_id", $jbId, "hq_id");
// Leerfahrtsfaktor
$co2_L = getParameterValue("0", "CO2_FORMULAR_L", $jbHqId);
if ($co2_L == "" || !is_numeric($co2_L)) : $co2_L = getParameterValue("0", "CO2_FORMULAR_L", "0"); endif;
if ($co2_L == "" || !is_numeric($co2_L)) : $co2_L = 1.2; endif;
// Umrechnungsfaktor
$co2_U = getParameterValue("0", "CO2_FORMULAR_U", $jbHqId);
if ($co2_U == "" || !is_numeric($co2_U)) : $co2_U = getParameterValue("0", "CO2_FORMULAR_U", "0"); endif;
if ($co2_U == "" || !is_numeric($co2_U)) : $co2_U = 3.15; endif;
// Teilungsfaktor
$co2_TF = getParameterValue("0", "CO2_FORMULAR_TF", $jbHqId);
if ($co2_TF == "" || !is_numeric($co2_U)) : $co2_TF = getParameterValue("0", "CO2_FORMULAR_TF", "0"); endif;
if ($co2_TF == "" || !is_numeric($co2_U)) : $co2_TF = 1000; endif;
// MLP
$co2_MLP = "0.13"; // Default
if ($crvhArr["vht_id"] <= "7") :
switch ($crvhArr["crvh_env_badge_level"]) {
case 1:
$co2_MLP = "0.13";
break;
case 2:
$co2_MLP = "0.1255";
break;
case 3:
$co2_MLP = "0.133";
break;
case 4:
$co2_MLP = "0.134";
break;
case 5:
$co2_MLP = "0.1285";
break;
case 6:
$co2_MLP = "0.13";
break;
}
else :
switch ($crvhArr["crvh_env_badge_level"]) {
case 1:
$co2_MLP = "0.1755";
break;
case 2:
$co2_MLP = "0.17";
break;
case 3:
$co2_MLP = "0.181";
break;
case 4:
$co2_MLP = "0.1795";
break;
case 5:
$co2_MLP = "0.1715";
break;
case 6:
$co2_MLP = "0.1755";
break;
}
endif;
$co2_KM = getFieldValueFromClause("jobprice","jbprc_price","jb_id = '" . $jbId . "' AND mt_sort = '11'");
if ($co2_KM != "" && is_numeric($co2_KM) && $co2_KM > 0) :
$request_data = array(
"referenz" => $jbId,
"mlp" => $co2_MLP,
"gewicht" => $co2_T,
"gefahreneKm" => $co2_KM
);
$json_request_data = json_encode($request_data);
$json_request_data = '{"data" : [' . $json_request_data . ']}';
$isProductive = true;
$rca["reqMode"] = "POST";
$rca["reqProtocol"] = "";
$username = "co2";
if ($isProductive) :
$password = "?P\+NW5\&4M+";
$rca["urlTarget"] = "https://co2-calc.hansetrans.de/api/v1/co2-emission/evaluate"; // LIVE
// $rca["reqHeaders"] = array('Content-Type: application/json', 'Authorization: Basic ' . base64_encode("$username:$password"));
$rca["reqHeaders"] = array('Content-Type: application/json', 'Authorization: Basic Y28yOj9QXCtOVzVcJjRNKw=='); // LIVE
else :
$password = "x:(dMRR5JH\3";
// $rca["urlTarget"] = "https://httpbin.org/post"; // REQUEST CHECKER
$rca["urlTarget"] = "https://stage-co2-calc.hansetrans.de/api/v1/co2-emission/evaluate"; // TEST
// $rca["reqHeaders"] = array('Content-Type: application/json', 'Authorization: Basic ' . base64_encode("$username:$password"));
$rca["reqHeaders"] = array('Content-Type: application/json', 'Authorization: Basic Y28yOng6KGRNUlI1SkhcMw=='); // TEST
endif;
$rca["reqContent"] = $json_request_data;
$rca["reqUsrPwd"] = $username . ":" . $password;
$rca["urlEncode"] = "0";
$rca["returnResponse"] = "1";
$rca["connectTimeout"] = "";
$rca["getCurlInfo"] = "";
$rca["verbose"] = "";
$rca["logFile"] = "";
$jbprcRemark = "T=" . $co2_T . "|" . "L=" . $co2_L . "|" . "KM=" . $co2_KM . "|" . "MLP=" . $co2_MLP . "|" . "U=" . $co2_U . "|" . "TF=" . $co2_TF;
$response = sendRequestCO2e($rca, "1");
// echo "jb_weight = " . $jbArr["jb_weight"] . "
";
// echo "crvh_payload = " . $co2_KG . "
";
// echo "co2_weight = " . $co2_T . "
";
// echo "
RESPONSE:
";
// echo $response;
// echo "
";
// $jbprcPriceExpected = ($co2_T * $co2_L * $co2_KM * $co2_MLP * $co2_U) / $co2_TF;
// echo $jbprcPriceExpected . "
";
// echo $jbprcRemark . "
";
// print_r($dbData); die();
$rspArr = json_decode($response, true);
// print_r($rspArr);
// echo "
";
// Error handling
$errRspStatus = $rspArr["errors"]["0"]["status"];
if ($errRspStatus == "") :
$jbIdRef = $rspArr["data"]["0"]["referenz"];
$jbprcPrice = $rspArr["data"]["0"]["co2"];
// Insert "CO2e" value in "jobprice" (mt_sort = 12)
if (existsEntry("jobprice", array("jb_id", $jbId, "mt_sort", "12"))) :
updateStmt("jobprice","jb_id",$jbId,array("jbprc_price", $jbprcPrice, "jbprc_remark", $jbprcRemark),"mt_sort = '12'");
else :
insertStmt("jobprice", array("jb_id", $jbId, "mt_sort", "12", "jbprc_price", $jbprcPrice, "jbprc_remark ", $jbprcRemark));
endif;
// Write logdata into log database [STATE=OK]
$logDescription = $jbprcRemark . "|REQ_STATE=OK|RSP_STATE=OK|RSP_REF=" . $jbIdRef . "|RSP_CO2=" . $jbprcPrice;
else :
// ATTENTION: The field jobprice.jbprc_price will not be written => NEW TRIAL BY CRON....!!!!
$errRspDescription = $rspArr["errors"]["0"]["errorDescription"];
// Write logdata into log database [STATE=NOK]
$logDescription = $jbprcRemark . "|REQ_STATE=OK|RSP_STATE=NOK|RSP_ERR_STATE=" . $errRspStatus . "|RSP_ERR_DESC=" . $errRspDescription;
endif;
else :
$errMsg = getLngt("Das Ergebnis der KM-Berechnung scheint nicht valide!") . " [" . $jbId . " :: " . $co2_KM . "]";
$logDescription = $jbprcRemark . "|REQ_STATE=NOK|REQ_ERR_MSG=" . $errMsg;
endif;
else :
$errMsg = getLngt("Das Fahrzeuggewicht fehlt!") . " [" . $jbId . " :: " . $co2_T . "]";
$logDescription = $jbprcRemark . "|REQ_STATE=NOK|REQ_ERR_MSG=" . $errMsg;
endif;
// *******************************
// * !!!! SPECIAL TREATMENT !!!! *
insertJobpriceByVehicleFieldvalue($jbId, "crvh_partner_commission", "14");
// *******************************
else :
$errMsg = getLngt("Kein Fahrzeug eingetragen!") . " [" . $jbId . "]";
$logDescription = $jbprcRemark . "|REQ_STATE=NOK|REQ_ERR_MSG=" . $errMsg;
endif;
else :
$errMsg = getLngt("Der Auftrag ist noch nicht erledigt!") . " [" . $jbId . "]";
$logDescription = $jbprcRemark . "|REQ_STATE=NOK|REQ_ERR_MSG=" . $errMsg;
endif;
// Write logdata into log database
writeToLogDB("165",$jbHqId,$jbId,$usr_id,"","","",$logDescription);
endif;
return array($jbprcPrice, $response, $rspArr, $jbId, $logDescription);
}
?>