Task #15868
Updated by Redmine Admin 3 months ago
``` /* Billing Rules: Booking must be accepted by Customs Booking must have atleast 1 active container Booking vessel must be departed Booking must have atleast 1 container loaded. */ WITH B AS ( SELECT B.SHIPPING_AGENT_CODE, B.SHIPPING_LINE_BOOKINGNO BOOKING_NO, V.VESSEL_NAME, B.ATP, V.ACTUAL_DEPARTURE_TIME, TO_CHAR(MIN(TO_DATE(LOADING_DATE, 'DD-MON-YYYY HH24:MI')), 'DD-MON-YYYY HH24:MI') LAST_LOADING_DATE FROM BOOKING B INNER JOIN OCEAN_COMMON.VOYAGE_HEADER V ON B.ATP = V.ATP INNER JOIN LOADING L ON B.SHIPPING_LINE_BOOKINGNO = L.SHIPPING_LINE_BOOKING_NO WHERE B.APPROVED_AT_CUSTOMS = 'Y' AND TO_DATE(ACTUAL_DEPARTURE_TIME, 'DD-MON-YYYY HH24:MI') between :IN_DATE_FROM and :IN_DATE_TO GROUP BY B.SHIPPING_AGENT_CODE, B.SHIPPING_LINE_BOOKINGNO, V.VESSEL_NAME, B.ATP, V.ACTUAL_DEPARTURE_TIME ) SELECT /*SELECT * FROM B WHERE 1 = 1 AND LAST_LOADING_DATE IS NOT NULL; NULL AND BOOKING_NO = 'EBKG09815175';*/ --useful query /*SELECT SELECT DISTINCT N.MANIFESTID, N.HOUSEREFERENCE ATP, CASE WHEN TO_DATE(SUBSTR(N.transactiondate, 1, 19), 'YYYY-MM-DD HH24:MI:SS') < TO_DATE(:IN_DATE_FROM, 'DD-MON-YYYY') THEN 'BILLED IN PERIOD '||N.BILLING_PERIOD||', SHOULD HAVE BEEN BILLED IN YEAR ' || SUBSTR(N.transactiondate, 1, 4) ||' DEPARTED ON '||V.ACTUAL_DEPARTURE_TIME||' loaded on '||l.loading_date WHEN L.LOADING_ID IS NULL THEN 'OVERBILLED DUR TO MISSIGN LOADING' WHEN V.ACTUAL_DEPARTURE_TIME IS NULL THEN 'OVERBILLED DUR TO MISSING ACTUAL DEPARTURE DATE' ELSE 'OVERBILLING' END AS STATUS FROM NB_EXP_BL N LEFT JOIN B on B.BOOKING_NO = N.MANIFESTID AND LAST_LOADING_DATE IS NOT NULL--AND B.ATP = N.ATP LEFT JOIN LOADING L ON N.MANIFESTID = L.SHIPPING_LINE_BOOKING_NO LEFT JOIN OCEAN_COMMON.VOYAGE_HEADER V ON N.HOUSEREFERENCE = V.ATP WHERE B.BOOKING_NO IS NULL AND TO_DATE(N.BILLING_PERIOD, 'MON-YYYY') BETWEEN TO_DATE(:IN_DATE_FROM, 'DD-MON-YYYY') AND TO_DATE(:IN_DATE_TO, 'DD-MON-YYYY') - 1 UNION SELECT B.BOOKING_NO, B.ATP, 'UNDERBILLING' FROM B LEFT JOIN NB_EXP_BL N on B.BOOKING_NO = N.MANIFESTID WHERE N.MANIFESTID IS NULL */ ; ```