|
|
@@ -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);
|