ShuanghongS 3 tuần trước cách đây
mục cha
commit
d55087b520

+ 56 - 52
service/destination_delivery.class.php

@@ -1362,7 +1362,6 @@ class destination_delivery {
                     ooc.shipper,
                     ooc.consignee_id,
                     ooc.consignee,
-                    (select customer_name from public.ocean_extend ex where ex.serial_no = ooc.serial_no  limit 1) as controlling_customer,
                     ooc.booking_no,
                     (select manifest_type from public.ocean o where o.serial_no = ooc.serial_no  limit 1) as manifest_type,
                     dc_serial_no,
@@ -1397,7 +1396,6 @@ class destination_delivery {
                     ooc.shipper,
                     ooc.consignee_id,
                     ooc.consignee,
-                    (select customer_name from ocean_extend ex where ex.serial_no = ooc.serial_no  limit 1) as controlling_customer,
                     ooc.booking_no,
                     (select manifest_type from sfs.ocean o where o.serial_no = ooc.serial_no  limit 1) as manifest_type,
                     dc_serial_no,
@@ -1432,7 +1430,6 @@ class destination_delivery {
                     ooc.shipper,
                     ooc.consignee_id,
                     ooc.consignee,
-                    '' as controlling_customer,
                     ooc.booking_no,
                     '' as manifest_type,
                     dc_serial_no,
@@ -1442,56 +1439,63 @@ class destination_delivery {
                     ooc.order_from
                 from ooc
                 where ooc.transport_mode = 'air'
-            )
-            select md.*,
-                CASE 
-                    WHEN  r.recommended_delivery_from IS NOT NULL AND r.recommended_delivery_to IS NOT NULL THEN
-                        to_char((COALESCE(ata, eta) + (r.recommended_delivery_from ||' days')::INTERVAL)::date, 'YYYY.MM.DD') 
-                        || '-' || 
-                        to_char((COALESCE(ata, eta) + (r.recommended_delivery_to ||' days')::INTERVAL)::date, 'YYYY.MM.DD') 
-                    WHEN  r.recommended_delivery_from IS NULL AND r.recommended_delivery_to IS NOT NULL THEN
-                        '-' || 
-                        to_char((COALESCE(ata, eta) + (r.recommended_delivery_to || ' days')::INTERVAL)::date, 'YYYY.MM.DD')
-                    WHEN r.recommended_delivery_from IS NOT NULL AND r.recommended_delivery_to IS NULL THEN   
-                        to_char((COALESCE(ata, eta) + (r.recommended_delivery_from || ' days')::INTERVAL)::date, 'YYYY.MM.DD')
-                        || '-' 
-                    ELSE '' END 
-                AS date_range,
-                r.recommended_delivery_from, 
-                r.recommended_delivery_to,
-                CASE 
-                    WHEN r.recommended_delivery_from IS NOT NULL THEN
-                        (COALESCE(ata, eta) + (r.recommended_delivery_from ||' days')::INTERVAL)::date
-                    ELSE null END
-                AS recommended_delivery_from_date,
-
-                CASE 
-                    WHEN r.recommended_delivery_to IS NOT NULL THEN
-                        (COALESCE(ata, eta) + (r.recommended_delivery_to ||' days')::INTERVAL)::date
-                    ELSE null END
-                AS recommended_delivery_to_date
-            from matched_data md
-            LEFT JOIN LATERAL (
-                SELECT 
-                    r.*
-                FROM public.kln_destination_delivery_rule r 
-                WHERE md.transport_mode = r.mode_type 
-                    and r.recommended_delivery_serial_no = md.dc_serial_no
-                    AND ((md.transport_mode = 'sea' AND (
-                            (r.ports ilike '%'|| md.mport_of_discharge_un ||'%' AND r.carrier ilike '%'|| md.carrier ||'%') 
-                            OR (r.ports ilike '%'|| md.mport_of_discharge_un ||'%' AND r.carrier = 'ALL')
-                            OR (r.ports = 'ALL' AND r.carrier ilike '%'|| md.carrier ||'%')
-                            OR (r.ports = 'ALL' AND r.carrier = 'ALL'))
-                        ) 
-                        OR (md.transport_mode = 'air' AND (
-                            r.ports ilike '%'|| md.mport_of_discharge_un ||'%'
-                            OR r.ports = 'ALL')
+            ),
+            shipment_table as(
+                select md.*,
+                    CASE 
+                        WHEN md.manifest_type = 'BCN' THEN (select string_agg(trim(COALESCE(h_bol,'')), ';'::text ORDER BY h_bol) from public.kln_ocean where m_bol = md.m_bol)
+                        ELSE '' END
+                    As same_mbol,    
+                    CASE 
+                        WHEN  r.recommended_delivery_from IS NOT NULL AND r.recommended_delivery_to IS NOT NULL THEN
+                            to_char((COALESCE(ata, eta) + (r.recommended_delivery_from ||' days')::INTERVAL)::date, 'YYYY.MM.DD') 
+                            || '-' || 
+                            to_char((COALESCE(ata, eta) + (r.recommended_delivery_to ||' days')::INTERVAL)::date, 'YYYY.MM.DD') 
+                        WHEN  r.recommended_delivery_from IS NULL AND r.recommended_delivery_to IS NOT NULL THEN
+                            '-' || 
+                            to_char((COALESCE(ata, eta) + (r.recommended_delivery_to || ' days')::INTERVAL)::date, 'YYYY.MM.DD')
+                        WHEN r.recommended_delivery_from IS NOT NULL AND r.recommended_delivery_to IS NULL THEN   
+                            to_char((COALESCE(ata, eta) + (r.recommended_delivery_from || ' days')::INTERVAL)::date, 'YYYY.MM.DD')
+                            || '-' 
+                        ELSE '' END 
+                    AS date_range,
+                    r.recommended_delivery_from, 
+                    r.recommended_delivery_to,
+                    CASE 
+                        WHEN r.recommended_delivery_from IS NOT NULL THEN
+                            (COALESCE(ata, eta) + (r.recommended_delivery_from ||' days')::INTERVAL)::date
+                        ELSE null END
+                    AS recommended_delivery_from_date,
+
+                    CASE 
+                        WHEN r.recommended_delivery_to IS NOT NULL THEN
+                            (COALESCE(ata, eta) + (r.recommended_delivery_to ||' days')::INTERVAL)::date
+                        ELSE null END
+                    AS recommended_delivery_to_date
+                from matched_data md
+                LEFT JOIN LATERAL (
+                    SELECT 
+                        r.*
+                    FROM public.kln_destination_delivery_rule r 
+                    WHERE md.transport_mode = r.mode_type 
+                        and r.recommended_delivery_serial_no = md.dc_serial_no
+                        AND ((md.transport_mode = 'sea' AND (
+                                (r.ports ilike '%'|| md.mport_of_discharge_un ||'%' AND r.carrier ilike '%'|| md.carrier ||'%') 
+                                OR (r.ports ilike '%'|| md.mport_of_discharge_un ||'%' AND r.carrier = 'ALL')
+                                OR (r.ports = 'ALL' AND r.carrier ilike '%'|| md.carrier ||'%')
+                                OR (r.ports = 'ALL' AND r.carrier = 'ALL'))
+                            ) 
+                            OR (md.transport_mode = 'air' AND (
+                                r.ports ilike '%'|| md.mport_of_discharge_un ||'%'
+                                OR r.ports = 'ALL')
+                            )
                         )
-                    )
-                    ORDER BY priority asc
-                    LIMIT 1
-                ) r ON true
-            order by md.eta desc";
+                        ORDER BY priority asc
+                        LIMIT 1
+                    ) r ON true
+                order by md.eta desc,md.h_bol asc
+            )
+            select * from shipment_table";
 
         $rs = common::excuteListSql($sql);
         error_log($sql);

+ 8 - 3
service/ocean_order.class.php

@@ -108,8 +108,13 @@ class ocean_order {
                     $filename = common::deCode($url_param, 'D');
                     $filename = str_replace("/", DIRECTORY_SEPARATOR, $filename);
                     $filename = str_replace("\\", DIRECTORY_SEPARATOR, $filename);
-                    if (!file_exists($filename))
-                        exit('File Not Exist');
+                    if (!file_exists($filename)){
+                        $display_name = basename($filename);
+                        $data = array(
+                            'msg' => $display_name.": File Not Exist."
+                        );
+                        common::echo_json_encode(500, $data);
+                    }
 
                     $fileMap[] = [
                             'file_path' => $filename,
@@ -2378,7 +2383,7 @@ class ocean_order {
                         h.consignee_country_code,h.consignee_city_code,
                         (select time_zone from public.city_timezone where uncode = CONCAT(h.consignee_country_code, h.consignee_city_code) limit 1) as timezone,
                         d.ctnr 
-                    from h left join station_data.do_detail d on h.id = d.do_header_id and h.from_station = d.from_station 
+                    from h inner join station_data.do_detail d on h.id = d.do_header_id and h.from_station = d.from_station 
                         where h.from_station = '".$ocean["destination_station"]."'
                             order by h.est_delivery_date";
         // bb as (select o.serial_no from $order_from.ocean o

+ 6 - 2
utils/common.class.php

@@ -961,8 +961,12 @@ class common {
      public static function download_file($filename, $display_name = null, $delete = FALSE, $files = NULL) {
         $filename = str_replace("/", DIRECTORY_SEPARATOR, $filename);
         $filename = str_replace("\\", DIRECTORY_SEPARATOR, $filename);
-        if (!file_exists($filename))
-            exit('File Not Exist');
+        if (!file_exists($filename)){
+            $data = array(
+                'msg' =>"File Not Exist"
+            );
+            common::echo_json_encode(500, $data);
+        }
         if (empty($display_name))
             $display_name = basename($filename);
         //$file = fopen($filename, "r");