ShuanghongS 1 рік тому
батько
коміт
8f15061fc1
4 змінених файлів з 65 додано та 54 видалено
  1. 18 11
      main_new_version.php
  2. 10 10
      service/login.class.php
  3. 35 31
      service/ocean_order.class.php
  4. 2 2
      utils/common.class.php

+ 18 - 11
main_new_version.php

@@ -519,7 +519,7 @@ switch ($action) {
         }
         $tp = ceil($rc / $ps);
         if ($rc > 0) {
-            $sql = "SELECT order_from as _schemas,serial_no,last_status_city, consignee, shipper, h_bol, 
+            $sql = "SELECT order_from as _schemas,serial_no,last_status_city, consignee, shipper, h_bol,final_desination_uncode, 
                     to_char(etd, 'MM/DD/YYYY'::text) as etd, to_char(eta, 'MM/DD/YYYY'::text) AS eta, 
                     fport_of_loading_un, mport_of_discharge_un, place_of_receipt_un, place_of_delivery_un, ctnrs, count_cntr, last_status_ctnr,booking_no,
                     to_char(last_status_315_date, 'MM/DD/YYYY'::text) as last_status_315_date,last_status_315_code, last_status_loc, last_status_city, order_from,
@@ -536,7 +536,7 @@ switch ($action) {
                                     when a.code='IFFREC' then 'Cargo Received'
                                     when a.code='IFFDEP' then 'Departure'
                                     when a.code='IFFARR' then 'Arrived'
-                                    when a.code='IFFAFD' then 'Completed'
+                                    when a.code='IFFDEL' then 'Completed'
                                     else 'Created' END as status,
                                     act_date,act_time,
                                     _dd.description as description,
@@ -544,7 +544,7 @@ switch ($action) {
                             from  ocean_milestone a 
                                 left join LATERAL (select sno,description  from  milestone where code=a.code and project_no = '*'  order by sno limit 1) _dd on true
                     where a.serial_no=online_ocean.serial_no 
-                        and a.code in (select regexp_split_to_table('IFFBCF,IFFCPU,IFFREC,IFFDEP,IFFARR,IFFAFD', ','))
+                        and a.code in (select regexp_split_to_table('IFFBCF,IFFCPU,IFFREC,IFFDEP,IFFARR,IFFDEL', ','))
                         and a.act_date is not null
                     order by id desc limit 1) dd on true 
                     $sqlWhere  and last_status_315_update_time is not null";
@@ -568,7 +568,13 @@ switch ($action) {
                          FROM $_schemas.contacts c WHERE  c.contact_id = '".$value['origin']."'";
                     $timezone = common::excuteOneSql($sql);     
                 }
-                if($value['dd_code'] == "IFFREC" || $value['dd_code'] == "IFFDEP" || $value['dd_code'] == "IFFARR" || $value['dd_code'] == "IFFAFD"){
+                //按照最新execl Timezone From 来自于final_destination
+                if($value['dd_code'] == "IFFDEL"){
+                    $sql = "select time_zone from public.city_timezone where uncode = '".$value['final_desination_uncode']."'"; 
+                    $timezone = common::excuteOneSql($sql);     
+                }
+
+                if($value['dd_code'] == "IFFREC" || $value['dd_code'] == "IFFDEP" || $value['dd_code'] == "IFFARR"){
                     //Timezone From 来自于EDI315
                     $serial_no = $value["serial_no"];
                     $EDI315Time = common::getEDI315Time($serial_no);
@@ -593,13 +599,14 @@ switch ($action) {
                         }
                     }
     
-                    if($value['dd_code'] == "IFFAFD"){
-                        $timezone = $EDI315Time[$value['dd_code']]['timezone'];
-                        if(empty($timezone)){
-                            $sql = "select time_zone from public.city_timezone where uncode = '".$value['place_of_delivery_un']."'";
-                            $timezone = common::excuteOneSql($sql);
-                        }
-                    }
+                    // 根据IFFDEL这个milestone来判断是否转变为completed
+                    // if($value['dd_code'] == "IFFAFD"){
+                    //     $timezone = $EDI315Time[$value['dd_code']]['timezone'];
+                    //     if(empty($timezone)){
+                    //         $sql = "select time_zone from public.city_timezone where uncode = '".$value['place_of_delivery_un']."'";
+                    //         $timezone = common::excuteOneSql($sql);
+                    //     }
+                    // }
                 }
                 
                 $Arrived = $value['description'];

+ 10 - 10
service/login.class.php

@@ -1232,11 +1232,11 @@ class login {
                     (select uncity from public.ports where uncode = oo.place_of_delivery_un limit 1) as pod_uncity,
                     po_no as _po_no,
                     CASE
-                        WHEN ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Created'::text
-                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Cargo Received'::text
-                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffafd is null) THEN 'Departure'::text
-                        WHEN (m_iffarr is not null and m_iffafd is null) THEN 'Arrived'::text
-                        WHEN (m_iffafd is not null) THEN 'Completed'::text
+                        WHEN ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Created'::text
+                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Cargo Received'::text
+                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffdel is null) THEN 'Departure'::text
+                        WHEN (m_iffarr is not null and m_iffdel is null) THEN 'Arrived'::text
+                        WHEN (m_iffdel is not null) THEN 'Completed'::text
                         ELSE 'Created'::text
                     END AS new_status
                 FROM  public.online_ocean oo WHERE oo.serial_no::text = o.serial_no::text) oo ON true
@@ -1462,11 +1462,11 @@ class login {
                     (select uncity from public.ports where uncode = oo.place_of_delivery_un limit 1) as pod_uncity,
                     po_no as _po_no,
                     CASE
-                        WHEN ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Created'::text
-                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Cargo Received'::text
-                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffafd is null) THEN 'Departure'::text
-                        WHEN (m_iffarr is not null and m_iffafd is null) THEN 'Arrived'::text
-                        WHEN (m_iffafd is not null) THEN 'Completed'::text
+                        WHEN ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Created'::text
+                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Cargo Received'::text
+                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffdel is null) THEN 'Departure'::text
+                        WHEN (m_iffarr is not null and m_iffdel is null) THEN 'Arrived'::text
+                        WHEN (m_iffdel is not null) THEN 'Completed'::text
                         ELSE 'Created'::text
                     END AS new_status
                 FROM  public.online_ocean oo WHERE oo.serial_no::text = o.serial_no::text) oo ON true

+ 35 - 31
service/ocean_order.class.php

@@ -408,7 +408,9 @@ class ocean_order {
         // IFFREC  Cargo Arrived at Origin                   Cargo Received
         // IFFDEP  Departure                                 Departed
         // IFFARR  Arrived at Final Destination Port         Arrived
-        // IFFAFD  Arrived at Final Destination              Completed
+        // IFFAFD  Arrived at Final Destination              Completed (remove)
+
+        // IFFDEL  document turnover/delivered              Completed
         $filterTag_param = "";
         if (!empty($_POST["filterTag"])) {
             if (utils::count($_POST['filterTag']) == 1){
@@ -423,24 +425,24 @@ class ocean_order {
                 $filterTag_param = "1=1";
             }
             if (stripos($filterTag, "Created") !== FALSE) {
-                $_sqlwhere .= " or ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null)";
-                $filterTag_param .= " or ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null)";
+                $_sqlwhere .= " or ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null)";
+                $filterTag_param .= " or ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null)";
             }
             if (stripos($filterTag, "Cargo Received") !== FALSE) {
-                $_sqlwhere .= " or ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null)";
-                $filterTag_param .= " or ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null)";
+                $_sqlwhere .= " or ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null)";
+                $filterTag_param .= " or ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null)";
             }
             if (stripos($filterTag, "Departure") !== FALSE) {
-                $_sqlwhere .= "or (m_iffdep is not null and m_iffarr is null and m_iffafd is null)";
-                $filterTag_param .= "or (m_iffdep is not null and m_iffarr is null and m_iffafd is null)";
+                $_sqlwhere .= "or (m_iffdep is not null and m_iffarr is null and m_iffdel is null)";
+                $filterTag_param .= "or (m_iffdep is not null and m_iffarr is null and m_iffdel is null)";
             }
             if (stripos($filterTag, "Arrived") !== FALSE) {
-                $_sqlwhere .= " or (m_iffarr is not null and m_iffafd is null)";
-                $filterTag_param .= " or (m_iffarr is not null and m_iffafd is null)";
+                $_sqlwhere .= " or (m_iffarr is not null and m_iffdel is null)";
+                $filterTag_param .= " or (m_iffarr is not null and m_iffdel is null)";
             }
             if (stripos($filterTag, "Completed") !== FALSE) {
-                $_sqlwhere .= " or (m_iffafd is not null)";
-                $filterTag_param .= " or (m_iffafd is not null)";
+                $_sqlwhere .= " or (m_iffdel is not null)";
+                $filterTag_param .= " or (m_iffdel is not null)";
             }
             if(strtolower($filterTag) <> "all" && !empty($filterTag)){
                 $sqlWhere .= " and ($_sqlwhere)";
@@ -456,15 +458,15 @@ class ocean_order {
         if ($rc == - 1 || true) {
             $sql = "select count(1) as rc,
                 sum(case when $filterTag_param then 1 else 0 end) as seach_rc, 
-                sum(case when (m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null)
+                sum(case when (m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null)
                      then 1 else 0 end) 
                 as created, 
-                sum(case when ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null)
+                sum(case when ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null)
                      then 1 else 0 end) 
                 as cargo_received,
-                sum(case when (m_iffdep is not null and m_iffarr is null and m_iffafd is null) then 1 else 0 end) as departed,
-                sum(case when (m_iffarr is not null and m_iffafd is null) then 1 else 0 end) as arrived,
-                sum(case when (m_iffafd is not null) then 1 else 0 end) as completed,
+                sum(case when (m_iffdep is not null and m_iffarr is null and m_iffdel is null) then 1 else 0 end) as departed,
+                sum(case when (m_iffarr is not null and m_iffdel is null) then 1 else 0 end) as arrived,
+                sum(case when (m_iffdel is not null) then 1 else 0 end) as completed,
                 string_agg(distinct incoterms, '<$>') as incoterm_str,
                 string_agg(distinct service, '<$>') as service_str 
             from online_ocean". $sqlWhere_befrom_filterTag;
@@ -540,11 +542,11 @@ class ocean_order {
             $sql = "with oo  as (SELECT order_from as _schemas,serial_no as __serial_no, serial_no,
                     h_bol as _hbol, isf_bol as _isfbol, consignee_city as _consignee_city,
                     CASE
-	    	            WHEN (m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Created'::text
-                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Cargo Received'::text
-                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffafd is null) THEN 'Departure'::text
-                        WHEN (m_iffarr is not null and m_iffafd is null) THEN 'Arrived'::text
-                        WHEN (m_iffafd is not null) THEN 'Completed'::text
+	    	            WHEN (m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Created'::text
+                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Cargo Received'::text
+                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffdel is null) THEN 'Departure'::text
+                        WHEN (m_iffarr is not null and m_iffdel is null) THEN 'Arrived'::text
+                        WHEN (m_iffdel is not null) THEN 'Completed'::text
 	    	            ELSE 'Created'
 		            END AS new_status, ".
                     column::getInstance()->getSearchSqlForDisplay('Ocean_Search') . " from public.online_ocean " . $sqlWhere . 
@@ -554,11 +556,11 @@ class ocean_order {
             $tmp_search_without_limit = "with oo  as (SELECT order_from as _schemas,serial_no as __serial_no, serial_no,
                     h_bol as _hbol, isf_bol as _isfbol, consignee_city as _consignee_city,
                     CASE
-	    	            WHEN (m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Created'::text
-                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Cargo Received'::text
-                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffafd is null) THEN 'Departure'::text
-                        WHEN (m_iffarr is not null and m_iffafd is null) THEN 'Arrived'::text
-                        WHEN (m_iffafd is not null) THEN 'Completed'::text
+	    	            WHEN (m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Created'::text
+                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Cargo Received'::text
+                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffdel is null) THEN 'Departure'::text
+                        WHEN (m_iffarr is not null and m_iffdel is null) THEN 'Arrived'::text
+                        WHEN (m_iffdel is not null) THEN 'Completed'::text
 	    	            ELSE 'Created'
 		            END AS new_status, ".
                     column::getInstance()->getSearchSqlForDisplay('Ocean_Search') . " from public.online_ocean " . $sqlWhere . 
@@ -1144,13 +1146,15 @@ class ocean_order {
                     (select uncity from public.ports where uncode = oo.place_of_receipt_un limit 1) as por_uncity,
                     (select time_zone from public.city_timezone where uncode = oo.place_of_delivery_un limit 1) as pod_timezone,
                     (select uncity from public.ports where uncode = oo.place_of_delivery_un limit 1) as pod_uncity,
+                    (select time_zone from public.city_timezone where uncode = oo.final_desination_uncode limit 1) as _fd_timezone,
+                    (select uncity from public.ports where uncode = oo.final_desination_uncode limit 1) as _pd_uncity,
                     po_no as _po_no,
                     CASE
-                        WHEN ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Created'::text
-                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffafd is null) THEN 'Cargo Received'::text
-                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffafd is null) THEN 'Departure'::text
-                        WHEN (m_iffarr is not null and m_iffafd is null) THEN 'Arrived'::text
-                        WHEN (m_iffafd is not null) THEN 'Completed'::text
+                        WHEN ((m_iffbcf is not null or m_iffbcf is null) and m_iffcpu is null and m_iffrec is null and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Created'::text
+                        WHEN ((m_iffcpu is not null or m_iffrec is not null) and m_iffdep is null and m_iffarr is null and m_iffdel is null) THEN 'Cargo Received'::text
+                        WHEN (m_iffdep is not null and m_iffarr is null and m_iffdel is null) THEN 'Departure'::text
+                        WHEN (m_iffarr is not null and m_iffdel is null) THEN 'Arrived'::text
+                        WHEN (m_iffdel is not null) THEN 'Completed'::text
                         ELSE 'Created'::text
                     END AS new_status
                 FROM  public.online_ocean oo WHERE oo.serial_no::text = o.serial_no::text) oo ON true

+ 2 - 2
utils/common.class.php

@@ -1780,8 +1780,8 @@ class common {
         
 
         //final_destination $ocean['fd_city']不是必需
-        $Milestones_NO_Mapping['IFFDEL'] = array("code"=>"fd","timezone"=>$ocean['fd_timezone'],"location"=>"");
-        $Milestones_NO_Mapping['IFFHBL'] = array("code"=>"fd","timezone"=>$ocean['fd_timezone'],"location"=>"");
+        $Milestones_NO_Mapping['IFFDEL'] = array("code"=>"fd","timezone"=>$ocean['_fd_timezone'],"location"=>"");
+        $Milestones_NO_Mapping['IFFHBL'] = array("code"=>"fd","timezone"=>$ocean['_fd_timezone'],"location"=>"");
 
         return $Milestones_NO_Mapping;
     }