Advertisement
liam_dao

11113

Feb 17th, 2022
5,811
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 20.69 KB | None | 0 0
  1. SELECT H.*
  2. FROM
  3. (SELECT CON.SUB_CON_CONTRACT_NO,
  4.        CON.SUB_CON_CODE,
  5.        SUP.PARTY_NAME AS SUPPLIER_NAME,
  6.        CON.PROJECT_NO,
  7.        CON.SUBJECT,
  8.        CON.RETENTION_PERCENT,
  9.        CON.MAX_RETENTION_PERCENT,
  10.        COALESCE(CON.MAX_RETENTION_AMOUNT, 0) CONTRACT_MAX_RETENTION_AMOUNT,
  11.        COALESCE(CON.TOTAL_AMOUNT_HOME, 0) CONTRACT_TOTAL_AMOUNT,
  12.        COALESCE(CON.TOTAL_ORIGINAL_HOME_AMT, 0) CONTRACT_TOTAL_ORIGINAL_AMT,
  13.        (COALESCE(CON.TOTAL_ORIGINAL_HOME_AMT, 0) - COALESCE(CON.OMISSION_HOME_AMT, 0) + COALESCE(CON.TOTAL_VO_HOME_AMT, 0) ) CONTRACT_ADJUSTED_AMT,
  14.        CL.CLM_SEQ_NO,
  15.        CL.SUB_CON_CLM_VOUCHER_NO,
  16.        CL.RESPONSE_DATE AS CLAIM_DATE,
  17.        CL.PAYMENT_DUE_DATE,
  18.        (CL.THIS_CUL_CLAIM_HOME_AMT - CL.CURRENT_CUL_CLAIM_HOME_AMT) AS THIS_CLAIM,
  19.        (CL.THIS_CUL_CERTIFIED_HOME_AMT - CL.CURRENT_CUL_CERTIFIED_HOME_AMT) AS THIS_CERTIFIED,
  20.        (CL.THIS_CUL_OTHER_RETENTION_HOME - CL.CUR_CUL_OTHER_RET_HOME) AS THIS_OTHER_RETENTION,
  21.        (MAX_CLM.TOTAL_CLAIM - MAX_CERF.TOTAL_CERT) AS UNCERTIFIED,
  22.        (CON.TOTAL_AMOUNT_HOME - MAX_CLM.TOTAL_CLAIM) BALANCE_CLAIM,
  23.        CASE WHEN FINAL_CLM.SUB_CON_CONTRACT_NO IS NULL THEN 'N' ELSE 'Y' END AS BALANCE_CLAIM_DONE,
  24.        COALESCE(CL.THIS_RETENTION_HOME_AMT,0) THIS_RETENTION_HOME_AMT,
  25.        COALESCE(CL.TOTAL_BACK_CHARGE_HOME_AMT,0) TOTAL_BACK_CHARGE_HOME_AMT,
  26.        COALESCE(INV.TOTAL_PRE_TAX_HOME_AMT,0) TOTAL_BEFORE_TAX_HOME_AMT,
  27.        COALESCE(INV.TOTAL_SALES_TAX_HOME_AMT,0) THIS_CERT_SALES_TAX_HOME_AMT,
  28.        COALESCE(INV.TOTAL_AFTER_TAX_HOME_AMT,0) TOTAL_AFTER_TAX_HOME_AMT,
  29.        COALESCE(CL.THIS_CUL_OTHER_RETENTION_HOME,0) THIS_CUL_OTHER_RETENTION_HOME,
  30.        COALESCE((SELECT CLAIM_PREV.THIS_CUL_OTHER_RETENTION_HOME
  31.         FROM PJ_SUB_CLM_HDR CLAIM_PREV
  32.         WHERE CON.SUB_CON_CONTRACT_NO = CLAIM_PREV.SUB_CON_CONTRACT_NO
  33.         AND ( (CLAIM_PREV.CLAIM_STATUS IS NULL OR (CLAIM_PREV.CLAIM_STATUS <> 'X' AND CLAIM_PREV.CLAIM_STATUS <> 'A'))
  34.         AND CLAIM_PREV.STATUS = 'H') AND CLAIM_PREV.CLM_SEQ_NO < CL.CLM_SEQ_NO ORDER BY CLAIM_PREV.CLM_SEQ_NO DESC FETCH FIRST 1 ROW ONLY
  35.         ), 0) PREV_OTHER_RETENTION_HOME,
  36.        INV.SUPPLIER_INVOICE_NO,
  37.        INV.SUPPLIER_INVOICE_DATE,
  38.        OSTAP.OUTSTANDING_HOME_AMT,
  39.        OSTAP.INVOICE_NO,
  40.        APPLY.PAYMENT_VOUCHER_NO_AND_APPLICATION_DATE,
  41.        COALESCE((SELECT PROPERTY_VALUE FROM MODULE_CONFIG WHERE MODULE_CODE='PJ' AND PROPERTY_NAME='ENABLETORELEASERETENTIONFROMSUBCONCLAIM'), 'N') ENABLE_OTHER_RETENTION
  42. FROM PJ_SUB_CON_HDR CON
  43.   INNER JOIN MT_PARTY SUP ON CON.SUB_CON_CODE = SUP.PARTY_CODE
  44.   LEFT JOIN PJ_EST_OST_HDR PJHDR ON PJHDR.PROJECT_NO = CON.PROJECT_NO
  45.   LEFT JOIN (SELECT MAX(T.THIS_CUL_CERTIFIED_HOME_AMT) AS TOTAL_CERT,
  46.                     T.SUB_CON_CONTRACT_NO
  47.              FROM PJ_SUB_CLM_HDR T
  48.                 LEFT JOIN PJ_AP_INV_HST_HDR INV ON INV.SOURCE_VOUCHER_NO = T.SUB_CON_CLM_VOUCHER_NO
  49.                 WHERE (
  50.                     (
  51.                     ((T.CLAIM_STATUS IS NULL OR (T.CLAIM_STATUS <> 'X' AND T.CLAIM_STATUS <> 'A')) AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}))
  52.                     OR (T.CLAIM_STATUS = 'X' AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}) AND (T.CANCELLATION_DATE > $P{AS_AT_DATE}))
  53.                     ) AND $P{AS_AT_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 0
  54.                         )
  55.                 AND ((INV.INVOICE_STATUS <>'X' OR INV.INVOICE_STATUS IS NULL OR (INV.INVOICE_STATUS ='X' AND $P{INV_POSTING_DATE_PASSED} = 1 AND $P{INV_POSTING_DATE} < (SELECT CRN.AGE_DATE FROM AP_CRN_HST_HDR CRN WHERE CRN.CREDIT_NOTE_NO = INV.CREDIT_NOTE_NO FETCH FIRST 1 ROW ONLY))) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  56.                 AND   (($P{INV_POSTING_DATE_PASSED} = 1 AND (INV.AGE_DATE <= $P{INV_POSTING_DATE})) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  57.                 AND   T.STATUS = 'H' AND ($P{INV_POSTING_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 1 OR (T.CLAIM_STATUS IS NULL AND $P{INV_POSTING_DATE_PASSED} = 0 AND $P{AS_AT_DATE_PASSED} = 0 ))
  58.              GROUP BY T.SUB_CON_CONTRACT_NO) MAX_CERF ON MAX_CERF.SUB_CON_CONTRACT_NO = CON.SUB_CON_CONTRACT_NO
  59.   LEFT JOIN (SELECT MAX(T.THIS_CUL_CLAIM_HOME_AMT) AS TOTAL_CLAIM,
  60.                     T.SUB_CON_CONTRACT_NO
  61.              FROM PJ_SUB_CLM_HDR T
  62.                 LEFT JOIN PJ_AP_INV_HST_HDR INV ON INV.SOURCE_VOUCHER_NO = T.SUB_CON_CLM_VOUCHER_NO
  63.                 WHERE (
  64.                     (
  65.                     ((T.CLAIM_STATUS IS NULL OR (T.CLAIM_STATUS <> 'X' AND T.CLAIM_STATUS <> 'A')) AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}))
  66.                     OR (T.CLAIM_STATUS = 'X' AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}) AND (T.CANCELLATION_DATE > $P{AS_AT_DATE}))
  67.                     ) AND $P{AS_AT_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 0
  68.                         )
  69.                 AND ((INV.INVOICE_STATUS <>'X' OR INV.INVOICE_STATUS IS NULL OR (INV.INVOICE_STATUS ='X' AND $P{INV_POSTING_DATE_PASSED} = 1 AND $P{INV_POSTING_DATE} < (SELECT CRN.AGE_DATE FROM AP_CRN_HST_HDR CRN WHERE CRN.CREDIT_NOTE_NO = INV.CREDIT_NOTE_NO FETCH FIRST 1 ROW ONLY))) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  70.                 AND   (($P{INV_POSTING_DATE_PASSED} = 1 AND (INV.AGE_DATE <= $P{INV_POSTING_DATE})) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  71.                 AND   T.STATUS = 'H' AND ($P{INV_POSTING_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 1 OR (T.CLAIM_STATUS IS NULL AND $P{INV_POSTING_DATE_PASSED} = 0 AND $P{AS_AT_DATE_PASSED} = 0 ))
  72.              GROUP BY T.SUB_CON_CONTRACT_NO) MAX_CLM ON MAX_CLM.SUB_CON_CONTRACT_NO = CON.SUB_CON_CONTRACT_NO
  73.   LEFT JOIN (SELECT DISTINCT T.SUB_CON_CONTRACT_NO
  74.              FROM PJ_SUB_CLM_HDR T
  75.              LEFT JOIN PJ_AP_INV_HST_HDR INV ON INV.SOURCE_VOUCHER_NO = T.SUB_CON_CLM_VOUCHER_NO
  76.                 WHERE (
  77.                     (
  78.                     ((T.CLAIM_STATUS IS NULL OR (T.CLAIM_STATUS <> 'X' AND T.CLAIM_STATUS <> 'A')) AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}))
  79.                     OR (T.CLAIM_STATUS = 'X' AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}) AND (T.CANCELLATION_DATE > $P{AS_AT_DATE}))
  80.                     ) AND $P{AS_AT_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 0
  81.                         )
  82.                 AND ((INV.INVOICE_STATUS <>'X' OR INV.INVOICE_STATUS IS NULL OR (INV.INVOICE_STATUS ='X' AND $P{INV_POSTING_DATE_PASSED} = 1 AND $P{INV_POSTING_DATE} < (SELECT CRN.AGE_DATE FROM AP_CRN_HST_HDR CRN WHERE CRN.CREDIT_NOTE_NO = INV.CREDIT_NOTE_NO FETCH FIRST 1 ROW ONLY))) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  83.                 AND   (($P{INV_POSTING_DATE_PASSED} = 1 AND (INV.AGE_DATE <= $P{INV_POSTING_DATE})) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  84.                 AND   T.STATUS = 'H' AND ($P{INV_POSTING_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 1 OR (T.CLAIM_STATUS IS NULL AND $P{INV_POSTING_DATE_PASSED} = 0 AND $P{AS_AT_DATE_PASSED} = 0 ))
  85.              AND T.FINAL_CLAIM = 'Y') FINAL_CLM ON FINAL_CLM.SUB_CON_CONTRACT_NO = CON.SUB_CON_CONTRACT_NO
  86.  LEFT JOIN (SELECT T.* FROM PJ_SUB_CLM_HDR T
  87.                 LEFT JOIN PJ_AP_INV_HST_HDR INV ON INV.SOURCE_VOUCHER_NO = T.SUB_CON_CLM_VOUCHER_NO
  88.                 WHERE (
  89.                     (
  90.                     ((T.CLAIM_STATUS IS NULL OR (T.CLAIM_STATUS <> 'X' AND T.CLAIM_STATUS <> 'A')) AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}))
  91.                     OR (T.CLAIM_STATUS = 'X' AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}) AND (T.CANCELLATION_DATE > $P{AS_AT_DATE}))
  92.                     ) AND $P{AS_AT_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 0
  93.                         )
  94.                 AND ((INV.INVOICE_STATUS <>'X' OR INV.INVOICE_STATUS IS NULL OR (INV.INVOICE_STATUS ='X' AND $P{INV_POSTING_DATE_PASSED} = 1 AND $P{INV_POSTING_DATE} < (SELECT CRN.AGE_DATE FROM AP_CRN_HST_HDR CRN WHERE CRN.CREDIT_NOTE_NO = INV.CREDIT_NOTE_NO FETCH FIRST 1 ROW ONLY))) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  95.                 AND   (($P{INV_POSTING_DATE_PASSED} = 1 AND (INV.AGE_DATE <= $P{INV_POSTING_DATE})) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  96.                 AND   T.STATUS = 'H' AND ($P{INV_POSTING_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 1 OR (T.CLAIM_STATUS IS NULL AND $P{INV_POSTING_DATE_PASSED} = 0 AND $P{AS_AT_DATE_PASSED} = 0 ))
  97.                 ) CL ON CON.SUB_CON_CONTRACT_NO = CL.SUB_CON_CONTRACT_NO
  98.   LEFT JOIN (SELECT INVOICE_STATUS, SOURCE_VOUCHER_NO,INVOICE_NO,AGE_DATE,TOTAL_PRE_TAX_HOME_AMT,TOTAL_SALES_TAX_HOME_AMT,TOTAL_AFTER_TAX_HOME_AMT,SUPPLIER_INVOICE_NO,SUPPLIER_INVOICE_DATE
  99.                 FROM PJ_AP_INV_HST_HDR HDR
  100.                 WHERE ((HDR.INVOICE_STATUS <>'X' OR HDR.INVOICE_STATUS IS NULL OR (HDR.INVOICE_STATUS ='X' AND $P{INV_POSTING_DATE_PASSED} = 1 AND $P{INV_POSTING_DATE} < (SELECT CRN.AGE_DATE FROM AP_CRN_HST_HDR CRN WHERE CRN.CREDIT_NOTE_NO = HDR.CREDIT_NOTE_NO FETCH FIRST 1 ROW ONLY))) OR ($P{INV_POSTING_DATE_PASSED} = 0)) AND ((HDR.AGE_DATE <= $P{AS_AT_DATE} AND $P{AS_AT_DATE_PASSED} = 1 ) OR $P{AS_AT_DATE_PASSED} = 0)
  101.              UNION ALL
  102.              SELECT
  103.                 INVOICE_STATUS,SOURCE_VOUCHER_NO,INVOICE_NO,AGE_DATE,TOTAL_PRE_TAX_HOME_AMT,TOTAL_SALES_TAX_HOME_AMT,TOTAL_AFTER_TAX_HOME_AMT,SUPPLIER_INVOICE_NO,SUPPLIER_INVOICE_DATE
  104.                 FROM PJ_AP_INV_OST_HDR
  105.             ) INV ON INV.SOURCE_VOUCHER_NO = CL.SUB_CON_CLM_VOUCHER_NO
  106.   LEFT JOIN AP_INV_OST_HDR OSTAP ON INV.INVOICE_NO = OSTAP.INVOICE_NO
  107.   LEFT JOIN
  108.     (
  109.         SELECT
  110.         APL.INVOICE_NO,
  111.         REPLACE(REPLACE(XMLSERIALIZE(CONTENT XMLAGG(XMLTEXT(CONCAT(REPLACE(REPLACE(CONCAT(CONCAT(APL.PAYMENT_VOUCHER_NO, '@#$'), TO_CHAR(APL.APPLICATION_DATE, 'dd/MM/YYYY')),'&','{}!'),'<','{}@'), '@#$@#$'))) AS VARCHAR(2000)), '{}@', '<'), '{}!', '&') AS PAYMENT_VOUCHER_NO_AND_APPLICATION_DATE
  112.         FROM AP_PAY_HST_APL APL
  113.         LEFT JOIN AP_PYC_HST_HDR PYC ON PYC.PAYMENT_CANCELLATION_NO = APL.PAYMENT_CANCELLATION_NO
  114.         WHERE 1=1
  115.         AND
  116.         (
  117.         (
  118.         $P{AS_AT_DATE_PASSED} = 1 AND $P{INV_POSTING_DATE_PASSED} = 0 AND DATE(APL.APPLICATION_DATE) <= CAST($P{AS_AT_DATE} AS DATE)
  119.         AND(APL.CANCELLED_FLAG IS NULL OR APL.CANCELLED_FLAG = 'N' OR (APL.CANCELLED_FLAG = 'Y' AND DATE(PYC.CANCELLATION_DATE) > CAST($P{AS_AT_DATE} AS DATE)))
  120.         )
  121.         OR
  122.         (
  123.         $P{AS_AT_DATE_PASSED} = 0 AND $P{INV_POSTING_DATE_PASSED} = 0 AND (APL.CANCELLED_FLAG IS NULL OR APL.CANCELLED_FLAG = 'N')
  124.         )
  125.         OR
  126.         (
  127.         $P{AS_AT_DATE_PASSED} = 0 AND $P{INV_POSTING_DATE_PASSED} = 1 AND DATE(APL.APPLICATION_DATE) <= CAST($P{INV_POSTING_DATE} AS DATE)
  128.         AND(APL.CANCELLED_FLAG IS NULL OR APL.CANCELLED_FLAG = 'N' OR (APL.CANCELLED_FLAG = 'Y' AND DATE(PYC.CANCELLATION_DATE) > CAST($P{INV_POSTING_DATE} AS DATE)))
  129.         )
  130.         )
  131.         GROUP BY APL.INVOICE_NO
  132.     )
  133.   APPLY ON APPLY.INVOICE_NO = INV.INVOICE_NO
  134. WHERE CON.STATUS <> 'D'
  135. AND   (($P{INV_POSTING_DATE_PASSED} = 1 AND (INV.AGE_DATE <= $P{INV_POSTING_DATE})) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  136. AND   (($P{CONTRACT_VOUCHER_DATE_PASSED} = 0) OR ($P{CONTRACT_VOUCHER_DATE_PASSED} = 1 AND CON.CONTRACT_VOUCHER_DATE >= $P{CONTRACT_VOUCHER_DATE_FROM}) OR ($P{CONTRACT_VOUCHER_DATE_PASSED} = 2 AND CON.CONTRACT_VOUCHER_DATE <= $P{CONTRACT_VOUCHER_DATE_TO}) OR ($P{CONTRACT_VOUCHER_DATE_PASSED} = 3 AND CON.CONTRACT_VOUCHER_DATE BETWEEN $P{CONTRACT_VOUCHER_DATE_FROM} AND $P{CONTRACT_VOUCHER_DATE_TO})) AND (($P{SUBCON_PASSED} = 0) OR ($P{SUBCON_PASSED} = 1 AND CON.SUB_CON_CODE >= $P{SUBCON_FROM}) OR ($P{SUBCON_PASSED} = 2 AND CON.SUB_CON_CODE <= $P{SUBCON_TO}) OR ($P{SUBCON_PASSED} = 3 AND CON.SUB_CON_CODE >= $P{SUBCON_FROM} AND CON.SUB_CON_CODE <= $P{SUBCON_TO}))
  137. AND   (($P{CONTRACT_NO_PASSED} = 0) OR ($P{CONTRACT_NO_PASSED} = 1 AND CON.SUB_CON_CONTRACT_NO >= $P{CONTRACT_NO_FROM}) OR ($P{CONTRACT_NO_PASSED} = 2 AND CON.SUB_CON_CONTRACT_NO <= $P{CONTRACT_NO_TO}) OR ($P{CONTRACT_NO_PASSED} = 3 AND CON.SUB_CON_CONTRACT_NO >= $P{CONTRACT_NO_FROM} AND CON.SUB_CON_CONTRACT_NO <= $P{CONTRACT_NO_TO}))
  138. AND   (($P{PROJECT_NO_PASSED} = 0) OR ($P{PROJECT_NO_PASSED} = 1 AND CON.PROJECT_NO >= $P{PROJECT_NO_FROM}) OR ($P{PROJECT_NO_PASSED} = 2 AND CON.PROJECT_NO <= $P{PROJECT_NO_TO}) OR ($P{PROJECT_NO_PASSED} = 3 AND CON.PROJECT_NO >= $P{PROJECT_NO_FROM} AND CON.PROJECT_NO <= $P{PROJECT_NO_TO}))
  139. AND   (($P{CUSTOMER_JOB_NO_PASSED} = 0) OR ($P{CUSTOMER_JOB_NO_PASSED} = 1 AND PJHDR.CUSTOMER_JOB_NO >= $P{CUSTOMER_JOB_NO_FROM}) OR ($P{CUSTOMER_JOB_NO_PASSED} = 2 AND PJHDR.CUSTOMER_JOB_NO <= $P{CUSTOMER_JOB_NO_TO}) OR ($P{CUSTOMER_JOB_NO_PASSED} = 3 AND PJHDR.CUSTOMER_JOB_NO >= $P{CUSTOMER_JOB_NO_FROM} AND PJHDR.CUSTOMER_JOB_NO <= $P{CUSTOMER_JOB_NO_TO}))
  140. AND (($P{AS_AT_DATE_PASSED}=1 AND (CL.RESPONSE_DATE <= $P{AS_AT_DATE}))
  141.     OR ($P{AS_AT_DATE_PASSED}=0))
  142.  AND (
  143.         $P{EXCLUDE_ZERO} = 'N'
  144.         OR ($P{EXCLUDE_ZERO} = 'Y' AND  COALESCE(CON.TOTAL_AMOUNT_HOME,0)>0 AND CL.SUB_CON_CLM_VOUCHER_NO IS NOT NULL)
  145.       )
  146. UNION ALL
  147. SELECT CON.SUB_CON_CONTRACT_NO,
  148.        CON.SUB_CON_CODE,
  149.        SUP.PARTY_NAME AS SUPPLIER_NAME,
  150.        CON.PROJECT_NO,
  151.        CON.SUBJECT,
  152.        CON.RETENTION_PERCENT,
  153.        CON.MAX_RETENTION_PERCENT,
  154.        COALESCE(CON.MAX_RETENTION_AMOUNT, 0) CONTRACT_MAX_RETENTION_AMOUNT,
  155.        COALESCE(CON.TOTAL_AMOUNT_HOME, 0) CONTRACT_TOTAL_AMOUNT,
  156.        COALESCE(CON.TOTAL_ORIGINAL_HOME_AMT, 0) CONTRACT_TOTAL_ORIGINAL_AMT,
  157.        (COALESCE(CON.TOTAL_ORIGINAL_HOME_AMT, 0) - COALESCE(CON.OMISSION_HOME_AMT, 0) + COALESCE(CON.TOTAL_VO_HOME_AMT, 0) ) CONTRACT_ADJUSTED_AMT,
  158.        NULL CLM_SEQ_NO,
  159.        INV_R.INVOICE_NO SUB_CON_CLM_VOUCHER_NO,
  160.        INV_R.AGE_DATE CLAIM_DATE,
  161.        NULL PAYMENT_DUE_DATE,
  162.        NULL THIS_CLAIM,
  163.        NULL THIS_CERTIFIED,
  164.        NULL THIS_OTHER_RETENTION,
  165.        (MAX_CLM.TOTAL_CLAIM - MAX_CERF.TOTAL_CERT) AS UNCERTIFIED,
  166.        (CON.TOTAL_AMOUNT_HOME - MAX_CLM.TOTAL_CLAIM) BALANCE_CLAIM,
  167.        CASE WHEN FINAL_CLM.SUB_CON_CONTRACT_NO IS NULL THEN 'N' ELSE 'Y' END AS BALANCE_CLAIM_DONE,
  168.        COALESCE(-1*INV_R.TOTAL_PRE_TAX_HOME_AMT ,0) THIS_RETENTION_HOME_AMT,
  169.        NULL TOTAL_BACK_CHARGE_HOME_AMT,
  170.        COALESCE(INV_R.TOTAL_PRE_TAX_HOME_AMT,0) TOTAL_BEFORE_TAX_HOME_AMT,
  171.        COALESCE(INV_R.TOTAL_SALES_TAX_HOME_AMT,0) THIS_CERT_SALES_TAX_HOME_AMT,
  172.        COALESCE(INV_R.TOTAL_AFTER_TAX_HOME_AMT,0) TOTAL_AFTER_TAX_HOME_AMT,
  173.        NULL THIS_CUL_OTHER_RETENTION_HOME,
  174.        NULL  PREV_OTHER_RETENTION_HOME,
  175.        INV_R.SUPPLIER_INVOICE_NO,
  176.        INV_R.SUPPLIER_INVOICE_DATE,
  177.        OSTAP.OUTSTANDING_HOME_AMT,
  178.        OSTAP.INVOICE_NO,
  179.        APPLY.PAYMENT_VOUCHER_NO_AND_APPLICATION_DATE,
  180.        COALESCE((SELECT PROPERTY_VALUE FROM MODULE_CONFIG WHERE MODULE_CODE='PJ' AND PROPERTY_NAME='ENABLETORELEASERETENTIONFROMSUBCONCLAIM'), 'N') ENABLE_OTHER_RETENTION
  181. FROM PJ_SUB_CON_HDR CON
  182.   INNER JOIN MT_PARTY SUP ON CON.SUB_CON_CODE = SUP.PARTY_CODE
  183.   LEFT JOIN PJ_EST_OST_HDR PJHDR ON PJHDR.PROJECT_NO = CON.PROJECT_NO
  184.   LEFT JOIN (SELECT MAX(T.THIS_CUL_CERTIFIED_HOME_AMT) AS TOTAL_CERT,
  185.                     T.SUB_CON_CONTRACT_NO
  186.              FROM PJ_SUB_CLM_HDR T
  187.                 WHERE (
  188.                     (
  189.                     ((T.CLAIM_STATUS IS NULL OR (T.CLAIM_STATUS <> 'X' AND T.CLAIM_STATUS <> 'A')) AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}))
  190.                     OR (T.CLAIM_STATUS = 'X' AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}) AND (T.CANCELLATION_DATE > $P{AS_AT_DATE}))
  191.                     ) AND $P{AS_AT_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 0
  192.                         )
  193.                 AND   T.STATUS = 'H' AND ($P{INV_POSTING_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 1 OR (T.CLAIM_STATUS IS NULL AND $P{INV_POSTING_DATE_PASSED} = 0 AND $P{AS_AT_DATE_PASSED} = 0 ))
  194.              GROUP BY T.SUB_CON_CONTRACT_NO) MAX_CERF ON MAX_CERF.SUB_CON_CONTRACT_NO = CON.SUB_CON_CONTRACT_NO
  195.   LEFT JOIN (SELECT MAX(T.THIS_CUL_CLAIM_HOME_AMT) AS TOTAL_CLAIM,
  196.                     T.SUB_CON_CONTRACT_NO
  197.              FROM PJ_SUB_CLM_HDR T
  198.                 WHERE (
  199.                     (
  200.                     ((T.CLAIM_STATUS IS NULL OR (T.CLAIM_STATUS <> 'X' AND T.CLAIM_STATUS <> 'A')) AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}))
  201.                     OR (T.CLAIM_STATUS = 'X' AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}) AND (T.CANCELLATION_DATE > $P{AS_AT_DATE}))
  202.                     ) AND $P{AS_AT_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 0
  203.                         )
  204.                 AND   T.STATUS = 'H' AND ($P{INV_POSTING_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 1 OR (T.CLAIM_STATUS IS NULL AND $P{INV_POSTING_DATE_PASSED} = 0 AND $P{AS_AT_DATE_PASSED} = 0 ))
  205.              GROUP BY T.SUB_CON_CONTRACT_NO) MAX_CLM ON MAX_CLM.SUB_CON_CONTRACT_NO = CON.SUB_CON_CONTRACT_NO
  206.   LEFT JOIN (SELECT DISTINCT T.SUB_CON_CONTRACT_NO
  207.              FROM PJ_SUB_CLM_HDR T
  208.                 WHERE (
  209.                     (
  210.                     ((T.CLAIM_STATUS IS NULL OR (T.CLAIM_STATUS <> 'X' AND T.CLAIM_STATUS <> 'A')) AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}))
  211.                     OR (T.CLAIM_STATUS = 'X' AND (T.RESPONSE_DATE <= $P{AS_AT_DATE}) AND (T.CANCELLATION_DATE > $P{AS_AT_DATE}))
  212.                     ) AND $P{AS_AT_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 0
  213.                         )
  214.                 AND   T.STATUS = 'H' AND ($P{INV_POSTING_DATE_PASSED} = 1 OR $P{AS_AT_DATE_PASSED} = 1 OR (T.CLAIM_STATUS IS NULL AND $P{INV_POSTING_DATE_PASSED} = 0 AND $P{AS_AT_DATE_PASSED} = 0 ))
  215.              AND T.FINAL_CLAIM = 'Y') FINAL_CLM ON FINAL_CLM.SUB_CON_CONTRACT_NO = CON.SUB_CON_CONTRACT_NO
  216.   LEFT JOIN (SELECT INVOICE_STATUS,SOURCE_VOUCHER_NO,INVOICE_NO,AGE_DATE,TOTAL_PRE_TAX_HOME_AMT,TOTAL_SALES_TAX_HOME_AMT,TOTAL_AFTER_TAX_HOME_AMT,SUPPLIER_INVOICE_NO,SUPPLIER_INVOICE_DATE,INVOICE_TYPE
  217.                 FROM PJ_AP_INV_HST_HDR HDR
  218.                 WHERE (($P{INV_POSTING_DATE_PASSED} = 1 AND (HDR.INVOICE_STATUS <>'X' OR HDR.INVOICE_STATUS IS NULL OR (HDR.INVOICE_STATUS ='X' AND $P{INV_POSTING_DATE} < (SELECT CRN.AGE_DATE FROM AP_CRN_HST_HDR CRN WHERE CRN.CREDIT_NOTE_NO = HDR.CREDIT_NOTE_NO FETCH FIRST 1 ROW ONLY))) )
  219.                 OR (($P{INV_POSTING_DATE_PASSED} = 0) AND (HDR.INVOICE_STATUS <>'X' OR HDR.INVOICE_STATUS IS NULL))) AND ((HDR.AGE_DATE <= $P{AS_AT_DATE} AND $P{AS_AT_DATE_PASSED} = 1 ) OR $P{AS_AT_DATE_PASSED} = 0)
  220.              UNION ALL
  221.              SELECT
  222.                 INVOICE_STATUS,SOURCE_VOUCHER_NO,INVOICE_NO,AGE_DATE,TOTAL_PRE_TAX_HOME_AMT,TOTAL_SALES_TAX_HOME_AMT,TOTAL_AFTER_TAX_HOME_AMT,SUPPLIER_INVOICE_NO,SUPPLIER_INVOICE_DATE,INVOICE_TYPE
  223.                 FROM PJ_AP_INV_OST_HDR
  224.             ) INV_R ON INV_R.SOURCE_VOUCHER_NO = CON.SUB_CON_CONTRACT_NO
  225.                                         AND INV_R.INVOICE_TYPE='N'
  226.  
  227.   LEFT JOIN AP_INV_OST_HDR OSTAP ON INV_R.INVOICE_NO = OSTAP.INVOICE_NO
  228.   LEFT JOIN
  229.     (
  230.         SELECT
  231.         APL.INVOICE_NO,
  232.         REPLACE(REPLACE(XMLSERIALIZE(CONTENT XMLAGG(XMLTEXT(CONCAT(REPLACE(REPLACE(CONCAT(CONCAT(APL.PAYMENT_VOUCHER_NO, '@#$'), TO_CHAR(APL.APPLICATION_DATE, 'dd/MM/YYYY')),'&','{}!'),'<','{}@'), '@#$@#$'))) AS VARCHAR(2000)), '{}@', '<'), '{}!', '&') AS PAYMENT_VOUCHER_NO_AND_APPLICATION_DATE
  233.         FROM AP_PAY_HST_APL APL
  234.         LEFT JOIN AP_PYC_HST_HDR PYC ON PYC.PAYMENT_CANCELLATION_NO = APL.PAYMENT_CANCELLATION_NO
  235.         WHERE 1=1
  236.         AND
  237.         (
  238.         (
  239.         $P{AS_AT_DATE_PASSED} = 1 AND $P{INV_POSTING_DATE_PASSED} = 0 AND DATE(APL.APPLICATION_DATE) <= CAST($P{AS_AT_DATE} AS DATE)
  240.         AND(APL.CANCELLED_FLAG IS NULL OR APL.CANCELLED_FLAG = 'N' OR (APL.CANCELLED_FLAG = 'Y' AND DATE(PYC.CANCELLATION_DATE) > CAST($P{AS_AT_DATE} AS DATE)))
  241.         )
  242.         OR
  243.         (
  244.         $P{AS_AT_DATE_PASSED} = 0 AND $P{INV_POSTING_DATE_PASSED} = 0 AND (APL.CANCELLED_FLAG IS NULL OR APL.CANCELLED_FLAG = 'N')
  245.         )
  246.         OR
  247.         (
  248.         $P{AS_AT_DATE_PASSED} = 0 AND $P{INV_POSTING_DATE_PASSED} = 1 AND DATE(APL.APPLICATION_DATE) <= CAST($P{INV_POSTING_DATE} AS DATE)
  249.         AND(APL.CANCELLED_FLAG IS NULL OR APL.CANCELLED_FLAG = 'N' OR (APL.CANCELLED_FLAG = 'Y' AND DATE(PYC.CANCELLATION_DATE) > CAST($P{INV_POSTING_DATE} AS DATE)))
  250.         )
  251.         )
  252.         GROUP BY APL.INVOICE_NO
  253.     )
  254.   APPLY ON APPLY.INVOICE_NO = INV_R.INVOICE_NO
  255. WHERE CON.STATUS <> 'D'
  256. AND   (($P{INV_POSTING_DATE_PASSED} = 1 AND (INV_R.AGE_DATE <= $P{INV_POSTING_DATE})) OR ($P{INV_POSTING_DATE_PASSED} = 0))
  257. AND   (($P{CONTRACT_VOUCHER_DATE_PASSED} = 0) OR ($P{CONTRACT_VOUCHER_DATE_PASSED} = 1 AND CON.CONTRACT_VOUCHER_DATE >= $P{CONTRACT_VOUCHER_DATE_FROM}) OR ($P{CONTRACT_VOUCHER_DATE_PASSED} = 2 AND CON.CONTRACT_VOUCHER_DATE <= $P{CONTRACT_VOUCHER_DATE_TO}) OR ($P{CONTRACT_VOUCHER_DATE_PASSED} = 3 AND CON.CONTRACT_VOUCHER_DATE BETWEEN $P{CONTRACT_VOUCHER_DATE_FROM} AND $P{CONTRACT_VOUCHER_DATE_TO})) AND (($P{SUBCON_PASSED} = 0) OR ($P{SUBCON_PASSED} = 1 AND CON.SUB_CON_CODE >= $P{SUBCON_FROM}) OR ($P{SUBCON_PASSED} = 2 AND CON.SUB_CON_CODE <= $P{SUBCON_TO}) OR ($P{SUBCON_PASSED} = 3 AND CON.SUB_CON_CODE >= $P{SUBCON_FROM} AND CON.SUB_CON_CODE <= $P{SUBCON_TO}))
  258. AND   (($P{CONTRACT_NO_PASSED} = 0) OR ($P{CONTRACT_NO_PASSED} = 1 AND CON.SUB_CON_CONTRACT_NO >= $P{CONTRACT_NO_FROM}) OR ($P{CONTRACT_NO_PASSED} = 2 AND CON.SUB_CON_CONTRACT_NO <= $P{CONTRACT_NO_TO}) OR ($P{CONTRACT_NO_PASSED} = 3 AND CON.SUB_CON_CONTRACT_NO >= $P{CONTRACT_NO_FROM} AND CON.SUB_CON_CONTRACT_NO <= $P{CONTRACT_NO_TO}))
  259. AND   (($P{PROJECT_NO_PASSED} = 0) OR ($P{PROJECT_NO_PASSED} = 1 AND CON.PROJECT_NO >= $P{PROJECT_NO_FROM}) OR ($P{PROJECT_NO_PASSED} = 2 AND CON.PROJECT_NO <= $P{PROJECT_NO_TO}) OR ($P{PROJECT_NO_PASSED} = 3 AND CON.PROJECT_NO >= $P{PROJECT_NO_FROM} AND CON.PROJECT_NO <= $P{PROJECT_NO_TO}))
  260. AND   (($P{CUSTOMER_JOB_NO_PASSED} = 0) OR ($P{CUSTOMER_JOB_NO_PASSED} = 1 AND PJHDR.CUSTOMER_JOB_NO >= $P{CUSTOMER_JOB_NO_FROM}) OR ($P{CUSTOMER_JOB_NO_PASSED} = 2 AND PJHDR.CUSTOMER_JOB_NO <= $P{CUSTOMER_JOB_NO_TO}) OR ($P{CUSTOMER_JOB_NO_PASSED} = 3 AND PJHDR.CUSTOMER_JOB_NO >= $P{CUSTOMER_JOB_NO_FROM} AND PJHDR.CUSTOMER_JOB_NO <= $P{CUSTOMER_JOB_NO_TO}))
  261. AND COALESCE(INV_R.TOTAL_PRE_TAX_HOME_AMT,0) <> 0
  262. AND (($P{AS_AT_DATE_PASSED}=1 AND (INV_R.AGE_DATE <= $P{AS_AT_DATE}))
  263.     OR ($P{AS_AT_DATE_PASSED}=0))
  264. AND   1 = 1
  265. )H
  266. ORDER BY SUPPLIER_NAME,
  267.          SUB_CON_CONTRACT_NO,
  268.          PROJECT_NO,
  269.          CLM_SEQ_NO,
  270.          CLAIM_DATE,
  271.          PAYMENT_DUE_DATE,
  272.          INVOICE_NO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement