|
@@ -27,6 +27,7 @@ class ocean_order {
|
|
|
}
|
|
}
|
|
|
return self::$_ocean;
|
|
return self::$_ocean;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
public function ocean_order() {
|
|
public function ocean_order() {
|
|
|
$operate = utils::_get('operate');
|
|
$operate = utils::_get('operate');
|
|
|
$operate = strtolower($operate);
|
|
$operate = strtolower($operate);
|
|
@@ -192,13 +193,13 @@ class ocean_order {
|
|
|
|
|
|
|
|
//detail information
|
|
//detail information
|
|
|
$detail_information_column = array();
|
|
$detail_information_column = array();
|
|
|
- $detail_information_column[] = array("title" =>"SN","field" =>"sn","formatter" =>"","type" =>"normal");
|
|
|
|
|
- $detail_information_column[] = array("title" =>"Carrier Booking No.","field" =>"carrier_booking_no","formatter" =>"","type" =>"normal");
|
|
|
|
|
- $detail_information_column[] = array("title" =>"Container No","field" =>"ctnr","formatter" =>"","type" =>"normal");
|
|
|
|
|
- $detail_information_column[] = array("title" =>"VGM Weight","field" =>"vgm_weight","formatter" =>"","type" =>"input");
|
|
|
|
|
- $detail_information_column[] = array("title" =>"VGM Unit","field" =>"unit","formatter" =>"","type" =>"select");
|
|
|
|
|
- $detail_information_column[] = array("title" =>"VGM Time","field" =>"vgm_time","formatter" =>"","type" =>"dateTime");
|
|
|
|
|
- $detail_information_column[] = array("title" =>"VGM Method","field" =>"vgm_method","formatter" =>"","type" =>"input");
|
|
|
|
|
|
|
+ $detail_information_column[] = array("title" =>"SN","field" =>"sn","formatter" =>"","edit_type" =>"normal",);
|
|
|
|
|
+ $detail_information_column[] = array("title" =>"Carrier Booking No.","field" =>"carrier_booking_no","formatter" =>"","edit_type" =>"normal");
|
|
|
|
|
+ $detail_information_column[] = array("title" =>"Container No","field" =>"ctnr","formatter" =>"","edit_type" =>"normal");
|
|
|
|
|
+ $detail_information_column[] = array("title" =>"VGM Weight","field" =>"vgm_weight","formatter" =>"","edit_type" =>"input");
|
|
|
|
|
+ $detail_information_column[] = array("title" =>"VGM Unit","field" =>"unit","formatter" =>"","edit_type" =>"select");
|
|
|
|
|
+ $detail_information_column[] = array("title" =>"VGM Time","field" =>"vgm_time","formatter" =>"","edit_type" =>"dateTime");
|
|
|
|
|
+ $detail_information_column[] = array("title" =>"VGM Method","field" =>"vgm_method","formatter" =>"","edit_type" =>"input");
|
|
|
foreach($rs as $rk => $rv){
|
|
foreach($rs as $rk => $rv){
|
|
|
$log[$rk]['sn'] = $rk +1;
|
|
$log[$rk]['sn'] = $rk +1;
|
|
|
}
|
|
}
|
|
@@ -459,59 +460,10 @@ class ocean_order {
|
|
|
|
|
|
|
|
private function _ocean_detail() {
|
|
private function _ocean_detail() {
|
|
|
$serial_no = common::deCode($_GET['a'], 'D');
|
|
$serial_no = common::deCode($_GET['a'], 'D');
|
|
|
- $sql = "SELECT m_eta as _m_eta, h_bol as _h_bol, m_bol as _m_bol,job_no as _job_bol,
|
|
|
|
|
- public.z_get_eta_dest(o.final_eta::date, o.eta_dest::text, o.service::text, o.m_eta::date, o.place_of_delivery::text, o.mport_of_discharge::text) as _eta_dest,
|
|
|
|
|
- to_char(final_eta, 'MM/DD/YYYY') as _final_eta,
|
|
|
|
|
- o.* ,sh.*, cn.* ,aa.*,dd.*,ee.status as new_status
|
|
|
|
|
- from ocean o
|
|
|
|
|
- left join LATERAL (select case when a.description='Booking Confirmation' then 'Booked'
|
|
|
|
|
- when a.description='Cargo Pickup' then 'Cargo Received'
|
|
|
|
|
- when a.description='Cargo Arrived at Origin' then 'Cargo Received'
|
|
|
|
|
- when a.description='Departure' then 'Departed'
|
|
|
|
|
- when a.description='Arrived at Final Destination Port Arrived' then 'Arrived'
|
|
|
|
|
- when a.description='Arrived at Final Destination' then 'Completed'
|
|
|
|
|
- else 'Booked' END as status
|
|
|
|
|
- from ocean_milestone a
|
|
|
|
|
- where a.serial_no=online_ocean.serial_no
|
|
|
|
|
- and a.description in (
|
|
|
|
|
- select regexp_split_to_table('Booking Confirmation,Cargo Pickup,Cargo Arrived at Origin,Departure,Arrived at Final Destination Port,Arrived at Final Destination', ','))
|
|
|
|
|
- order by id desc limit 1) ee on true
|
|
|
|
|
- LEFT JOIN LATERAL ( SELECT company as cn_company,
|
|
|
|
|
- address_1 as cn_address_1,
|
|
|
|
|
- address_2 as cn_address_2,
|
|
|
|
|
- address_3 as cn_address_3,
|
|
|
|
|
- address_4 as cn_address_4,
|
|
|
|
|
- city as cn_city, state as cn_state, zipcode as cn_zipcode, country as cn_country,
|
|
|
|
|
- phone_1 as cn_phone
|
|
|
|
|
- FROM contacts c WHERE o.consignee::text = c.contact_id::text) cn ON true
|
|
|
|
|
- LEFT JOIN LATERAL ( SELECT company as sh_company,
|
|
|
|
|
- address_1 as sh_address_1,
|
|
|
|
|
- address_2 as sh_address_2,
|
|
|
|
|
- address_3 as sh_address_3,
|
|
|
|
|
- address_4 as sh_address_4,
|
|
|
|
|
- city as sh_city, state as sh_state, zipcode as sh_zipcode, country as sh_country,
|
|
|
|
|
- phone_1 as sh_phone
|
|
|
|
|
- FROM contacts c WHERE o.shipper::text = c.contact_id::text) sh ON true
|
|
|
|
|
- LEFT JOIN LATERAL ( SELECT company as aa_company,
|
|
|
|
|
- address_1 as aa_address_1,
|
|
|
|
|
- address_2 as aa_address_2,
|
|
|
|
|
- address_3 as aa_address_3,
|
|
|
|
|
- address_4 as aa_address_4,
|
|
|
|
|
- city as aa_city, state as aa_state, zipcode as aa_zipcode, country as aa_country,
|
|
|
|
|
- phone_1 as aa_phone
|
|
|
|
|
- FROM contacts c WHERE o.origin_station::text = c.contact_id::text) aa ON true
|
|
|
|
|
- LEFT JOIN LATERAL ( SELECT company as dd_company,
|
|
|
|
|
- address_1 as dd_address_1,
|
|
|
|
|
- address_2 as dd_address_2,
|
|
|
|
|
- address_3 as dd_address_3,
|
|
|
|
|
- address_4 as dd_address_4,
|
|
|
|
|
- city as dd_city, state as dd_state, zipcode as dd_zipcode, country as dd_country,
|
|
|
|
|
- phone_1 as dd_phone
|
|
|
|
|
- FROM contacts c WHERE o.destination_station::text = c.contact_id::text) dd ON true
|
|
|
|
|
- where lower(serial_no) = '" . strtolower($serial_no) . "'";
|
|
|
|
|
|
|
+ $sql = $this->getOceanDetail($serial_no);
|
|
|
$ocean = common::excuteObjectSql($sql);
|
|
$ocean = common::excuteObjectSql($sql);
|
|
|
|
|
+
|
|
|
if (!empty($ocean)) {
|
|
if (!empty($ocean)) {
|
|
|
-
|
|
|
|
|
$ocean['_isf_bol'] = $ocean['isf_bol'];
|
|
$ocean['_isf_bol'] = $ocean['isf_bol'];
|
|
|
if (empty($ocean['_isf_bol'])) {
|
|
if (empty($ocean['_isf_bol'])) {
|
|
|
$ocean['_isf_bol'] = "AMAW" . $ocean['_h_bol'];
|
|
$ocean['_isf_bol'] = "AMAW" . $ocean['_h_bol'];
|
|
@@ -519,7 +471,6 @@ class ocean_order {
|
|
|
$isf_ss = md5(md5($ocean['_isf_bol']));
|
|
$isf_ss = md5(md5($ocean['_isf_bol']));
|
|
|
$isf_ss = substr($isf_ss, 7) . substr($isf_ss, 0, 7);
|
|
$isf_ss = substr($isf_ss, 7) . substr($isf_ss, 0, 7);
|
|
|
//ETA Dest的计算逻辑移除
|
|
//ETA Dest的计算逻辑移除
|
|
|
-
|
|
|
|
|
// most update status
|
|
// most update status
|
|
|
$_schemas = $_REQUEST["_schemas"];
|
|
$_schemas = $_REQUEST["_schemas"];
|
|
|
$mostStatusSql = "select last_status_loc, last_status_city, to_char(last_status_315_date, 'MM/DD/YYYY') as last_status_315_date,last_status_315_code "
|
|
$mostStatusSql = "select last_status_loc, last_status_city, to_char(last_status_315_date, 'MM/DD/YYYY') as last_status_315_date,last_status_315_code "
|
|
@@ -547,56 +498,24 @@ class ocean_order {
|
|
|
$uncode .= "'";
|
|
$uncode .= "'";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ $vueData = $this->returnOceanDetailData($ocean,$state);
|
|
|
//处理shipment data暂时写死
|
|
//处理shipment data暂时写死
|
|
|
- $simplexData = array();
|
|
|
|
|
- $simplexData[] = array("index" =>1,"label" =>"Place of Receipt",
|
|
|
|
|
- "path" =>$ocean['place_of_receipt_exp']."/".$ocean['place_of_receipt'],"isArrival" =>$state == 1 ? true : false);
|
|
|
|
|
-
|
|
|
|
|
- $simplexData[] = array("index" =>2,"label" =>"Port of Loading",
|
|
|
|
|
- "path" =>$ocean['fport_of_loading_exp_exp']."/".$ocean['fport_of_loading_exp'],"isArrival" =>$state == 2 ? true : false,
|
|
|
|
|
- "children" =>array(array("label" =>"Cargo arrival at Origin","date" =>"2024-02-01"),
|
|
|
|
|
- array("label" =>"'Departure","date" =>"2024-02-01")));
|
|
|
|
|
-
|
|
|
|
|
- $simplexData[] = array("index" =>3,"label" =>"Port of Discharge",
|
|
|
|
|
- "path" =>$ocean['mport_of_discharge_exp']."/".$ocean['mport_of_discharge'],"isArrival" =>$state == 3 ? true : false,
|
|
|
|
|
- "children" =>array(array("label" =>"ETA","date" =>"2024-02-01")));
|
|
|
|
|
-
|
|
|
|
|
- $simplexData[] = array("index" =>4,"label" =>"Place of Delivery",
|
|
|
|
|
- "path" =>$ocean['place_of_delivery_exp']."/".$ocean['place_of_delivery'],"isArrival" =>$state == 4 ? true : false);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ $simplexData = $vueData['shipmentData'];
|
|
|
|
|
+
|
|
|
//处理transportInfo信息数据
|
|
//处理transportInfo信息数据
|
|
|
- $transportInfo = array("Tracking No." =>$ocean['tracking_no'],"status"=>$ocean['new_status'],"mode" => "Ocean Freight",
|
|
|
|
|
- "origin" =>$ocean['origin_station'],"destination" =>$ocean['destination_station'],
|
|
|
|
|
- "etd" =>$ocean['f_etd'],"atd" =>"","eta" =>$ocean['m_eta'],"ata" =>"");
|
|
|
|
|
|
|
+ $transportInfo = $vueData['transportInfo'];
|
|
|
|
|
|
|
|
//处理basicInfo信息数据
|
|
//处理basicInfo信息数据
|
|
|
- $vessel = utils::outDisplayForMerge($ocean['f_vessel'],$ocean['m_vessel']);
|
|
|
|
|
- $voyage = utils::outDisplayForMerge($ocean['f_voyage'],$ocean['m_voyage']);
|
|
|
|
|
- $basicInfo = array("MAWB/MBL No." =>$ocean['m_bol'],"HAWB/HBOL" => $ocean['h_bol'],"Carrier_Booking_No" =>$ocean['carrier_booking'],
|
|
|
|
|
- "PO_NO" =>$ocean['po_no'],"Vessel/Airline" =>$vessel,"Voyage/Filght" =>$voyage,
|
|
|
|
|
- "Incoterm" =>$ocean['terms'],"Service_Type" =>$ocean['service']);
|
|
|
|
|
|
|
+ $basicInfo = $vueData['basicInfo'];
|
|
|
|
|
|
|
|
//处理 拼接地址 ocean表单exp 字段无法精准分割电话和地址信息,只能从contacts表里查询
|
|
//处理 拼接地址 ocean表单exp 字段无法精准分割电话和地址信息,只能从contacts表里查询
|
|
|
- $shipper_address = common::retStationInfo($ocean['sh_address_1'], $ocean['sh_address_2'], $ocean['sh_address_3'], $ocean['sh_address_4'],
|
|
|
|
|
- $ocean['sh_city'], $ocean['sh_state'], $ocean['sh_zipcode'], $ocean['sh_country']);
|
|
|
|
|
- $consignee_address = common::retStationInfo($ocean['cn_address_1'], $ocean['cn_address_2'], $ocean['cn_address_3'], $ocean['cn_address_4'],
|
|
|
|
|
- $ocean['cn_city'], $ocean['cn_state'], $ocean['cn_zipcode'], $ocean['cn_country']);
|
|
|
|
|
- $origin_address = common::retStationInfo($ocean['aa_address_1'], $ocean['aa_address_2'], $ocean['aa_address_3'], $ocean['aa_address_4'],
|
|
|
|
|
- $ocean['aa_city'], $ocean['aa_state'], $ocean['aa_zipcode'], $ocean['aa_country']);
|
|
|
|
|
- $destination_address = common::retStationInfo($ocean['dd_address_1'], $ocean['dd_address_2'], $ocean['dd_address_3'], $ocean['dd_address_4'],
|
|
|
|
|
- $ocean['dd_city'], $ocean['dd_state'], $ocean['dd_zipcode'], $ocean['dd_country']);
|
|
|
|
|
-
|
|
|
|
|
- $shipperPartners = array("company" =>$ocean['sh_company'],"address"=>$shipper_address,"phone"=>$ocean['sh_phone']);
|
|
|
|
|
- $consigneePartners = array("company" =>$ocean['cn_company'],"address"=>$consignee_address,"phone"=>$ocean['cn_phone']);
|
|
|
|
|
- $originPartners = array("company" =>$ocean['aa_company'],"address"=>$origin_address,"phone"=>$ocean['aa_phone']);
|
|
|
|
|
- $destinationPartners = array("company" =>$ocean['dd_company'],"address"=>$destination_address,"phone"=>$ocean['dd_phone']);
|
|
|
|
|
- $businessPartners = array("shipper"=>$shipperPartners,"consignee" => $consigneePartners,"origin" => $originPartners,"destination" => $destinationPartners);
|
|
|
|
|
|
|
+ $businessPartners = $vueData['businessPartners'];
|
|
|
|
|
|
|
|
//处理routes 转船可能有多个情况
|
|
//处理routes 转船可能有多个情况
|
|
|
- $routes = array(array("mode" =>"Sea", "origin" =>$ocean['origin_station'],
|
|
|
|
|
- "destination" => $ocean['destination_station'], "etd" => $ocean['f_etd'],"atd" => "",
|
|
|
|
|
- "eta" =>$ocean['m_eta'],"ata" =>"","vessel" =>$vessel,"voyageNo" =>$voyage));
|
|
|
|
|
|
|
+ $routes = $vueData['routes'];
|
|
|
|
|
+
|
|
|
|
|
+ //处理marksAndDescription
|
|
|
|
|
+ $marksAndDescription = $vueData['marksAndDescription'];
|
|
|
|
|
|
|
|
//处理ocean_reference
|
|
//处理ocean_reference
|
|
|
$ref_no = array();
|
|
$ref_no = array();
|
|
@@ -606,12 +525,8 @@ class ocean_order {
|
|
|
$ref_no[] = array("label"=>$ref["ref_code"],"value"=>$ref["ref_value"]);
|
|
$ref_no[] = array("label"=>$ref["ref_code"],"value"=>$ref["ref_value"]);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- //处理marksAndDescription
|
|
|
|
|
- $marksAndDescription = array("marks"=>$ocean['marks'],"description"=>$ocean['description']);
|
|
|
|
|
|
|
|
|
|
- //配置Ocean_Container字段 UI 需要的字段有:Container.no Packing,quantity,Gross weight(kg),Gross weight(LB),CBM,seal#,size.service
|
|
|
|
|
- //处理Container
|
|
|
|
|
|
|
+ //处理Container :配置Ocean_Container字段 UI 需要的字段有:Container.no Packing,quantity,Gross weight(kg),Gross weight(LB),CBM,seal#,size.service
|
|
|
$ocean_container_column = array();
|
|
$ocean_container_column = array();
|
|
|
$container_column = column::getInstance()->getDisplayColumnAll('Ocean_Container');
|
|
$container_column = column::getInstance()->getDisplayColumnAll('Ocean_Container');
|
|
|
foreach($container_column as $cc){
|
|
foreach($container_column as $cc){
|
|
@@ -640,7 +555,7 @@ class ocean_order {
|
|
|
}
|
|
}
|
|
|
$containers = array("container_column"=>$ocean_container_column,"container_data" =>$rss);
|
|
$containers = array("container_column"=>$ocean_container_column,"container_data" =>$rss);
|
|
|
|
|
|
|
|
- //Packing 不确定信息
|
|
|
|
|
|
|
+ //Packing信息
|
|
|
$packing = array("Quantity/Unit"=>$quantity_tolal.$packages,"G. Weight" => $g_weight_tolal." KGS","Ch. Weight" => $ch_weight_tolal." LBS","Volume" => $cbm_tolal." CBM");
|
|
$packing = array("Quantity/Unit"=>$quantity_tolal.$packages,"G. Weight" => $g_weight_tolal." KGS","Ch. Weight" => $ch_weight_tolal." LBS","Volume" => $cbm_tolal." CBM");
|
|
|
|
|
|
|
|
/* Container Status */
|
|
/* Container Status */
|
|
@@ -668,21 +583,7 @@ class ocean_order {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//Milestones info 列名固定
|
|
//Milestones info 列名固定
|
|
|
- $Milestones_column = array();
|
|
|
|
|
- $Milestones_column[] = array("title" =>"Milestones","field" =>"milestones","formatter" =>"","type" =>"normal");
|
|
|
|
|
- $Milestones_column[] = array("title" =>"Date Time","field" =>"date_time","formatter" =>"","type" =>"normal");
|
|
|
|
|
- $Milestones_column[] = array("title" =>"Locations","field" =>"locations","formatter" =>"","type" =>"normal");
|
|
|
|
|
- $Milestones_column[] = array("title" =>"Remarks","field" =>"remarks","formatter" =>"","type" =>"normal");
|
|
|
|
|
-
|
|
|
|
|
- //Milestones 数据信息待定
|
|
|
|
|
- $Milestones_data = array();
|
|
|
|
|
- $Milestones_data_arr = common::excuteListSql("select description,act_date||' '||act_time as date_time, remark,timezone from ocean_milestone a
|
|
|
|
|
- where a.serial_no='".$ocean["serial_no"]."' order by id");
|
|
|
|
|
- foreach($Milestones_data_arr as $mda){
|
|
|
|
|
- $Milestones_data[] = array("milestones"=>$mda['description'],"date_time"=>$mda['date_time'],"timezone" =>$mda['timezone'],
|
|
|
|
|
- "locations" => "", "remarks" =>$mda['remark']);
|
|
|
|
|
- }
|
|
|
|
|
- $Milestones = array("Milestones_column"=>$Milestones_column,"Milestones_data" =>$Milestones_data);
|
|
|
|
|
|
|
+ $Milestones = $this->getMilestonesInfo($ocean);
|
|
|
|
|
|
|
|
//页面固定写死的信息
|
|
//页面固定写死的信息
|
|
|
$document_column = array();
|
|
$document_column = array();
|
|
@@ -781,6 +682,7 @@ class ocean_order {
|
|
|
'isf_ss' => $isf_ss,
|
|
'isf_ss' => $isf_ss,
|
|
|
'_schemas' =>$_schemas,
|
|
'_schemas' =>$_schemas,
|
|
|
'uncode' =>$uncode,
|
|
'uncode' =>$uncode,
|
|
|
|
|
+ 'serial_no' =>$serial_no,
|
|
|
'can_upload_doc' => strtolower($_SESSION['ONLINE_USER']['can_upload_doc']) == 't' || strtolower($_SESSION['ONLINE_USER']['can_view_doc']) == 't',
|
|
'can_upload_doc' => strtolower($_SESSION['ONLINE_USER']['can_upload_doc']) == 't' || strtolower($_SESSION['ONLINE_USER']['can_view_doc']) == 't',
|
|
|
'canEdiVgm' => _canEdiVgm(),
|
|
'canEdiVgm' => _canEdiVgm(),
|
|
|
'copyright' =>$_COPYRIGHT);
|
|
'copyright' =>$_COPYRIGHT);
|
|
@@ -804,7 +706,7 @@ class ocean_order {
|
|
|
$amsLog = array();
|
|
$amsLog = array();
|
|
|
//页面固定写死的信息
|
|
//页面固定写死的信息
|
|
|
$amsLog_column = array();
|
|
$amsLog_column = array();
|
|
|
- $amsLog_column[] = array("title" =>"Date Time","field" =>"atime","formatter" =>"","type" =>"normal");
|
|
|
|
|
|
|
+ $amsLog_column[] = array("title" =>"Date Time","field" =>"atime","formatter" =>"","type" =>"dateTime");
|
|
|
$amsLog_column[] = array("title" =>"Code","field" =>"cbperrorcode","formatter" =>"","type" =>"normal");
|
|
$amsLog_column[] = array("title" =>"Code","field" =>"cbperrorcode","formatter" =>"","type" =>"normal");
|
|
|
$amsLog_column[] = array("title" =>"Name","field" =>"isams_submit","formatter" =>"","type" =>"normal");
|
|
$amsLog_column[] = array("title" =>"Name","field" =>"isams_submit","formatter" =>"","type" =>"normal");
|
|
|
$amsLog_column[] = array("title" =>"Description","field" =>"amslog","formatter" =>"","type" =>"normal");
|
|
$amsLog_column[] = array("title" =>"Description","field" =>"amslog","formatter" =>"","type" =>"normal");
|
|
@@ -844,7 +746,7 @@ class ocean_order {
|
|
|
$isfLog = array();
|
|
$isfLog = array();
|
|
|
//页面固定写死的信息
|
|
//页面固定写死的信息
|
|
|
$isfLog_column = array();
|
|
$isfLog_column = array();
|
|
|
- $isfLog_column[] = array("title" =>"Date Time","field" =>"atime","formatter" =>"","type" =>"normal");
|
|
|
|
|
|
|
+ $isfLog_column[] = array("title" =>"Date Time","field" =>"atime","formatter" =>"","type" =>"dateTime");
|
|
|
$isfLog_column[] = array("title" =>"Code","field" =>"cbperrorcode","formatter" =>"","type" =>"normal");
|
|
$isfLog_column[] = array("title" =>"Code","field" =>"cbperrorcode","formatter" =>"","type" =>"normal");
|
|
|
$isfLog_column[] = array("title" =>"Name","field" =>"isfsubmit","formatter" =>"","type" =>"normal");
|
|
$isfLog_column[] = array("title" =>"Name","field" =>"isfsubmit","formatter" =>"","type" =>"normal");
|
|
|
$isfLog_column[] = array("title" =>"Description","field" =>"isflog","formatter" =>"","type" =>"normal");
|
|
$isfLog_column[] = array("title" =>"Description","field" =>"isflog","formatter" =>"","type" =>"normal");
|
|
@@ -1133,6 +1035,144 @@ class ocean_order {
|
|
|
return "success";
|
|
return "success";
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
|
|
+ private function getOceanDetail($serial_no) {
|
|
|
|
|
+ $sql = "SELECT m_eta as _m_eta, h_bol as _h_bol, m_bol as _m_bol,job_no as _job_bol,
|
|
|
|
|
+ public.z_get_eta_dest(o.final_eta::date, o.eta_dest::text, o.service::text, o.m_eta::date, o.place_of_delivery::text, o.mport_of_discharge::text) as _eta_dest,
|
|
|
|
|
+ to_char(final_eta, 'MM/DD/YYYY') as _final_eta,
|
|
|
|
|
+ o.* ,sh.*, cn.* ,aa.*,dd.*,ee.status as new_status
|
|
|
|
|
+ from ocean o
|
|
|
|
|
+ left join LATERAL (select case when a.description='Booking Confirmation' then 'Booked'
|
|
|
|
|
+ when a.description='Cargo Pickup' then 'Cargo Received'
|
|
|
|
|
+ when a.description='Cargo Arrived at Origin' then 'Cargo Received'
|
|
|
|
|
+ when a.description='Departure' then 'Departed'
|
|
|
|
|
+ when a.description='Arrived at Final Destination Port Arrived' then 'Arrived'
|
|
|
|
|
+ when a.description='Arrived at Final Destination' then 'Completed'
|
|
|
|
|
+ else 'Booked' END as status
|
|
|
|
|
+ from ocean_milestone a
|
|
|
|
|
+ where a.serial_no=o.serial_no
|
|
|
|
|
+ and a.description in (
|
|
|
|
|
+ select regexp_split_to_table('Booking Confirmation,Cargo Pickup,Cargo Arrived at Origin,Departure,Arrived at Final Destination Port,Arrived at Final Destination', ','))
|
|
|
|
|
+ order by id desc limit 1) ee on true
|
|
|
|
|
+ LEFT JOIN LATERAL ( SELECT company as cn_company,
|
|
|
|
|
+ address_1 as cn_address_1,
|
|
|
|
|
+ address_2 as cn_address_2,
|
|
|
|
|
+ address_3 as cn_address_3,
|
|
|
|
|
+ address_4 as cn_address_4,
|
|
|
|
|
+ city as cn_city, state as cn_state, zipcode as cn_zipcode, country as cn_country,
|
|
|
|
|
+ phone_1 as cn_phone
|
|
|
|
|
+ FROM contacts c WHERE o.consignee::text = c.contact_id::text) cn ON true
|
|
|
|
|
+ LEFT JOIN LATERAL ( SELECT company as sh_company,
|
|
|
|
|
+ address_1 as sh_address_1,
|
|
|
|
|
+ address_2 as sh_address_2,
|
|
|
|
|
+ address_3 as sh_address_3,
|
|
|
|
|
+ address_4 as sh_address_4,
|
|
|
|
|
+ city as sh_city, state as sh_state, zipcode as sh_zipcode, country as sh_country,
|
|
|
|
|
+ phone_1 as sh_phone
|
|
|
|
|
+ FROM contacts c WHERE o.shipper::text = c.contact_id::text) sh ON true
|
|
|
|
|
+ LEFT JOIN LATERAL ( SELECT company as aa_company,
|
|
|
|
|
+ address_1 as aa_address_1,
|
|
|
|
|
+ address_2 as aa_address_2,
|
|
|
|
|
+ address_3 as aa_address_3,
|
|
|
|
|
+ address_4 as aa_address_4,
|
|
|
|
|
+ city as aa_city, state as aa_state, zipcode as aa_zipcode, country as aa_country,
|
|
|
|
|
+ phone_1 as aa_phone
|
|
|
|
|
+ FROM contacts c WHERE o.origin_station::text = c.contact_id::text) aa ON true
|
|
|
|
|
+ LEFT JOIN LATERAL ( SELECT company as dd_company,
|
|
|
|
|
+ address_1 as dd_address_1,
|
|
|
|
|
+ address_2 as dd_address_2,
|
|
|
|
|
+ address_3 as dd_address_3,
|
|
|
|
|
+ address_4 as dd_address_4,
|
|
|
|
|
+ city as dd_city, state as dd_state, zipcode as dd_zipcode, country as dd_country,
|
|
|
|
|
+ phone_1 as dd_phone
|
|
|
|
|
+ FROM contacts c WHERE o.destination_station::text = c.contact_id::text) dd ON true
|
|
|
|
|
+ where lower(serial_no) = '" . strtolower($serial_no) . "'";
|
|
|
|
|
+ return $sql;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private function returnOceanDetailData($ocean,$state){
|
|
|
|
|
+ $data = array();
|
|
|
|
|
+ //处理shipment data暂时写死
|
|
|
|
|
+ $simplexData = array();
|
|
|
|
|
+ $simplexData[] = array("index" =>1,"label" =>"Place of Receipt",
|
|
|
|
|
+ "path" =>$ocean['place_of_receipt_exp']."/".$ocean['place_of_receipt'],"isArrival" =>$state == 1 ? true : false);
|
|
|
|
|
+
|
|
|
|
|
+ $simplexData[] = array("index" =>2,"label" =>"Port of Loading",
|
|
|
|
|
+ "path" =>$ocean['fport_of_loading_exp_exp']."/".$ocean['fport_of_loading_exp'],"isArrival" =>$state == 2 ? true : false,
|
|
|
|
|
+ "children" =>array(array("label" =>"Cargo arrival at Origin","date" =>"2024-02-01"),
|
|
|
|
|
+ array("label" =>"'Departure","date" =>"2024-02-01")));
|
|
|
|
|
+
|
|
|
|
|
+ $simplexData[] = array("index" =>3,"label" =>"Port of Discharge",
|
|
|
|
|
+ "path" =>$ocean['mport_of_discharge_exp']."/".$ocean['mport_of_discharge'],"isArrival" =>$state == 3 ? true : false,
|
|
|
|
|
+ "children" =>array(array("label" =>"ETA","date" =>"2024-02-01")));
|
|
|
|
|
+
|
|
|
|
|
+ $simplexData[] = array("index" =>4,"label" =>"Place of Delivery",
|
|
|
|
|
+ "path" =>$ocean['place_of_delivery_exp']."/".$ocean['place_of_delivery'],"isArrival" =>$state == 4 ? true : false);
|
|
|
|
|
+ $data['shipmentData'] = $simplexData;
|
|
|
|
|
+
|
|
|
|
|
+ //处理transportInfo信息数据
|
|
|
|
|
+ $transportInfo = array("Tracking No." =>$ocean['tracking_no'],"status"=>$ocean['new_status'],"mode" => "Ocean Freight",
|
|
|
|
|
+ "origin" =>$ocean['origin_station'],"destination" =>$ocean['destination_station'],
|
|
|
|
|
+ "etd" =>$ocean['f_etd'],"atd" =>"","eta" =>$ocean['m_eta'],"ata" =>"");
|
|
|
|
|
+ $data['transportInfo'] = $transportInfo;
|
|
|
|
|
+
|
|
|
|
|
+ //处理basicInfo信息数据
|
|
|
|
|
+ $vessel = utils::outDisplayForMerge($ocean['f_vessel'],$ocean['m_vessel']);
|
|
|
|
|
+ $voyage = utils::outDisplayForMerge($ocean['f_voyage'],$ocean['m_voyage']);
|
|
|
|
|
+ $basicInfo = array("MAWB/MBL No." =>$ocean['m_bol'],"HAWB/HBOL" => $ocean['h_bol'],"Carrier_Booking_No" =>$ocean['carrier_booking'],
|
|
|
|
|
+ "PO_NO" =>$ocean['po_no'],"Vessel/Airline" =>$vessel,"Voyage/Filght" =>$voyage,
|
|
|
|
|
+ "Incoterm" =>$ocean['terms'],"Service_Type" =>$ocean['service']);
|
|
|
|
|
+ $data['basicInfo'] = $basicInfo;
|
|
|
|
|
+
|
|
|
|
|
+ //处理 拼接地址 ocean表单exp 字段无法精准分割电话和地址信息,只能从contacts表里查询
|
|
|
|
|
+ $shipper_address = common::retStationInfo($ocean['sh_address_1'], $ocean['sh_address_2'], $ocean['sh_address_3'], $ocean['sh_address_4'],
|
|
|
|
|
+ $ocean['sh_city'], $ocean['sh_state'], $ocean['sh_zipcode'], $ocean['sh_country']);
|
|
|
|
|
+ $consignee_address = common::retStationInfo($ocean['cn_address_1'], $ocean['cn_address_2'], $ocean['cn_address_3'], $ocean['cn_address_4'],
|
|
|
|
|
+ $ocean['cn_city'], $ocean['cn_state'], $ocean['cn_zipcode'], $ocean['cn_country']);
|
|
|
|
|
+ $origin_address = common::retStationInfo($ocean['aa_address_1'], $ocean['aa_address_2'], $ocean['aa_address_3'], $ocean['aa_address_4'],
|
|
|
|
|
+ $ocean['aa_city'], $ocean['aa_state'], $ocean['aa_zipcode'], $ocean['aa_country']);
|
|
|
|
|
+ $destination_address = common::retStationInfo($ocean['dd_address_1'], $ocean['dd_address_2'], $ocean['dd_address_3'], $ocean['dd_address_4'],
|
|
|
|
|
+ $ocean['dd_city'], $ocean['dd_state'], $ocean['dd_zipcode'], $ocean['dd_country']);
|
|
|
|
|
+
|
|
|
|
|
+ $shipperPartners = array("company" =>$ocean['sh_company'],"address"=>$shipper_address,"phone"=>$ocean['sh_phone']);
|
|
|
|
|
+ $consigneePartners = array("company" =>$ocean['cn_company'],"address"=>$consignee_address,"phone"=>$ocean['cn_phone']);
|
|
|
|
|
+ $originPartners = array("company" =>$ocean['aa_company'],"address"=>$origin_address,"phone"=>$ocean['aa_phone']);
|
|
|
|
|
+ $destinationPartners = array("company" =>$ocean['dd_company'],"address"=>$destination_address,"phone"=>$ocean['dd_phone']);
|
|
|
|
|
+ $businessPartners = array("shipper"=>$shipperPartners,"consignee" => $consigneePartners,"origin" => $originPartners,"destination" => $destinationPartners);
|
|
|
|
|
+ $data['businessPartners'] = $businessPartners;
|
|
|
|
|
+
|
|
|
|
|
+ //处理routes 转船可能有多个情况
|
|
|
|
|
+ $routes = array(array("mode" =>"Sea", "origin" =>$ocean['origin_station'],
|
|
|
|
|
+ "destination" => $ocean['destination_station'], "etd" => $ocean['f_etd'],"atd" => "",
|
|
|
|
|
+ "eta" =>$ocean['m_eta'],"ata" =>"","vessel" =>$vessel,"voyageNo" =>$voyage));
|
|
|
|
|
+ $data['routes'] = $routes;
|
|
|
|
|
+
|
|
|
|
|
+ //处理marksAndDescription
|
|
|
|
|
+ $marksAndDescription = array("marks"=>$ocean['marks'],"description"=>$ocean['description']);
|
|
|
|
|
+ $data['marksAndDescription'] = $marksAndDescription;
|
|
|
|
|
+
|
|
|
|
|
+ return $data;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private function getMilestonesInfo($ocean){
|
|
|
|
|
+ //Milestones info 列名固定
|
|
|
|
|
+ $Milestones_column = array();
|
|
|
|
|
+ $Milestones_column[] = array("title" =>"Milestones","field" =>"milestones","formatter" =>"","type" =>"normal");
|
|
|
|
|
+ $Milestones_column[] = array("title" =>"Date Time","field" =>"date_time","formatter" =>"","type" =>"normal");
|
|
|
|
|
+ $Milestones_column[] = array("title" =>"Locations","field" =>"locations","formatter" =>"","type" =>"normal");
|
|
|
|
|
+ $Milestones_column[] = array("title" =>"Remarks","field" =>"remarks","formatter" =>"","type" =>"normal");
|
|
|
|
|
+
|
|
|
|
|
+ //Milestones 数据信息待定
|
|
|
|
|
+ $Milestones_data = array();
|
|
|
|
|
+ $Milestones_data_arr = common::excuteListSql("select description,act_date||' '||act_time as date_time, remark,timezone from ocean_milestone a
|
|
|
|
|
+ where a.serial_no='".$ocean["serial_no"]."' order by id");
|
|
|
|
|
+ foreach($Milestones_data_arr as $mda){
|
|
|
|
|
+ $Milestones_data[] = array("milestones"=>$mda['description'],"date_time"=>$mda['date_time'],"timezone" =>$mda['timezone'],
|
|
|
|
|
+ "locations" => "", "remarks" =>$mda['remark']);
|
|
|
|
|
+ }
|
|
|
|
|
+ $Milestones = array("Milestones_column"=>$Milestones_column,"Milestones_data" =>$Milestones_data);
|
|
|
|
|
+
|
|
|
|
|
+ return $Milestones;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
?>
|
|
?>
|