-- PROCEDURE NAME: TR_REQ_PAYMENT_Log DECLARE @p_REQ_PAY_ID varchar(15) = N'TADY00000203477', @p_REQ_PAY_CODE varchar(50) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_DEP_ID varchar(15) = NULL, @p_REQ_REASON nvarchar(MAX) = NULL, @p_REQ_TYPE varchar(15) = NULL, @P_REQ_ENTRIES nvarchar(MAX) = NULL, @p_REQ_DESCRIPTION nvarchar(MAX) = NULL, @p_REF_ID varchar(15) = NULL, @p_RECEIVER_PO nvarchar(250) = NULL, @p_RECEIVER_DEBIT nvarchar(250) = NULL, @p_REQ_PAY_TYPE varchar(15) = NULL, @p_REQ_TYPE_CURRENCY nvarchar(50) = NULL, @p_REQ_AMT decimal = 0, @p_REQ_TEMP_AMT decimal = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT varchar(25) = NULL, @p_EDITOR_ID varchar(15) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT varchar(25) = NULL, @p_CREATE_DT_KT varchar(25) = NULL, @p_MAKER_ID_KT varchar(15) = NULL, @p_AUTH_STATUS_KT varchar(1) = N'A', @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25) = NULL, @p_CORE_NOTE nvarchar(500) = NULL, @p_BRANCH_CREATE varchar(15) = NULL, @p_NOTES varchar(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_TRANSFER_MAKER nvarchar(50) = NULL, @p_TRANSFER_DT varchar(25) = NULL, @p_TRASFER_USER_RECIVE varchar(15) = NULL, @p_PROCESS varchar(15) = NULL, @p_XMP_TEMP xml = NULL, @p_TOP int = 300, @p_LEVEL varchar(10) = NULL, @p_FRMDATE varchar(20) = NULL, @p_TODATE varchar(20) = NULL, @p_BRANCH_LOGIN varchar(15) = N'DV0001', @p_IS_UPDATE_KT varchar(15) = NULL, @p_IS_TRANSFER varchar(15) = NULL, @p_PAY_PHASE varchar(15) = NULL SET @p_TOP = NULL declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0 OR @P_TOP>0) BEGIN -- PAGING BEGIN BEGIN SELECT COUNT(*) -- SELECT END FROM TR_REQ_ADVANCE_PAYMENT A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID --Luanlt--2019/10/15-Sửa AL,AL1 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER' LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME LEFT JOIN ( SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAYMENT_DT X INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID) AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY') --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID --WHERE Y.REF_ID = @p_REF_ID GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID UNION SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_PERIOD X INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2' UNION SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_SCHEDULE X -- PDN TAM UNG LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID -- PDN THANH TOAN INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG WHERE X.AUTH_STATUS_KT ='A' ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D' LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I' LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D' WHERE 1=1 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' ) AND (A.AUTH_STATUS_KT ='A') ;WITH QUERY_DATA AS ( SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT, BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ, --Luanlt--2019/10/15-Sửa AL,AL1 BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, (A.REQ_AMT -ISNULL(A.PAY_AMT,0)) AS AMT_REMAIN, H.PAY_HIS AS AMT_PAY_HIS, CASE WHEN H.SO_TIEN_THANH_TOAN IS NOT NULL THEN (ISNULL(H.SO_TIEN_THANH_TOAN,0)) ELSE A.PAY_AMT END AS TOTAL_AMT_PAY, TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME, TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE, --ISNULL(PO.PO_CODE, CT.CONTRACT_CODE) AS PO_CODE ,ISNULL(PO.PO_NAME, CT.[CONTRACT_NAME]) AS PO_NAME, --PO.SUP_NAME, --SUP.TAX_NO AS SUP_TAX_NO, CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME, PM.PAY_PHASE KY_TAM_UNG, H.APPROVE_DT_KT NGAY_HOAN_UNG, H.REQ_PAY_CODE AS SO_PHIEU_HOAN_UNG, H.ID_HOAN_UNG , ROW_NUMBER() OVER (ORDER BY A.CREATE_DT DESC ) AS __ROWNUM-- SELECT END FROM TR_REQ_ADVANCE_PAYMENT A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID --Luanlt--2019/10/15-Sửa AL,AL1 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER' LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME LEFT JOIN ( SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAYMENT_DT X INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID) AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY') --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID --WHERE Y.REF_ID = @p_REF_ID GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID UNION SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_PERIOD X INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2' UNION SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_SCHEDULE X -- PDN TAM UNG LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID -- PDN THANH TOAN INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG WHERE X.AUTH_STATUS_KT ='A' ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D' LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I' LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D' WHERE 1=1 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' ) AND (A.AUTH_STATUS_KT ='A') ) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10 END-- PAGING END END ELSE BEGIN -- PAGING BEGIN BEGIN SELECT COUNT(*) -- SELECT END FROM TR_REQ_ADVANCE_PAYMENT A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID --Luanlt--2019/10/15-Sửa AL,AL1 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER' LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME LEFT JOIN ( SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAYMENT_DT X INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID) AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY') --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID --WHERE Y.REF_ID = @p_REF_ID GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID UNION SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_PERIOD X INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2' UNION SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_SCHEDULE X -- PDN TAM UNG LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID -- PDN THANH TOAN INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG WHERE X.AUTH_STATUS_KT ='A' ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D' LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I' LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D' WHERE 1=1 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' ) AND (A.AUTH_STATUS_KT ='A') ;WITH QUERY_DATA AS ( SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT, BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ, --Luanlt--2019/10/15-Sửa AL,AL1 BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, (A.REQ_AMT -ISNULL(A.PAY_AMT,0)) AS AMT_REMAIN, H.PAY_HIS AS AMT_PAY_HIS, CASE WHEN H.SO_TIEN_THANH_TOAN IS NOT NULL THEN (ISNULL(H.SO_TIEN_THANH_TOAN,0)) ELSE A.PAY_AMT END AS TOTAL_AMT_PAY, TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME, TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE, --ISNULL(PO.PO_CODE, CT.CONTRACT_CODE) AS PO_CODE ,ISNULL(PO.PO_NAME, CT.[CONTRACT_NAME]) AS PO_NAME, --PO.SUP_NAME, --SUP.TAX_NO AS SUP_TAX_NO, CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME, PM.PAY_PHASE KY_TAM_UNG, H.APPROVE_DT_KT NGAY_HOAN_UNG, H.REQ_PAY_CODE AS SO_PHIEU_HOAN_UNG, H.ID_HOAN_UNG , ROW_NUMBER() OVER (ORDER BY A.CREATE_DT DESC ) AS __ROWNUM-- SELECT END FROM TR_REQ_ADVANCE_PAYMENT A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID --Luanlt--2019/10/15-Sửa AL,AL1 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER' LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME LEFT JOIN ( SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAYMENT_DT X INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID) AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY') --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID --WHERE Y.REF_ID = @p_REF_ID GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID UNION SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_PERIOD X INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2' UNION SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG FROM TR_REQ_PAY_SCHEDULE X -- PDN TAM UNG LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID -- PDN THANH TOAN INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG WHERE X.AUTH_STATUS_KT ='A' ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D' LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I' LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY' --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D' WHERE 1=1 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' ) AND (A.AUTH_STATUS_KT ='A') ) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10 END-- PAGING END END; go