ALTER PROCEDURE [dbo].[rpt_TR_ADVANCE_TEMP_PAYMENT_ByID] @p_REQ_PAY_ID varchar(15)= NULL AS ------- DECLARE @TITLE_APPROVE NVARCHAR(50) ='', @TITLE_APPROVE_KSV NVARCHAR(50) ='' IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT='S')) BEGIN SET @TITLE_APPROVE =N'Đã từ chối ' END ELSE BEGIN SET @TITLE_APPROVE =N'Đã chấp thuận ' END ---------------- IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT='R')) BEGIN SET @TITLE_APPROVE_KSV =N'Đã từ chối ' END ELSE BEGIN SET @TITLE_APPROVE_KSV =N'Đã chấp thuận ' END ---------------- DECLARE @TRUONG_DV NVARCHAR(50),@DVKD_APP_DT NVARCHAR(50), @SO_DU_TAM_UNG DECIMAL(18,2) DECLARE @DATE_APPR DATETIME SET @DATE_APPR =ISNULL((SELECT TOP 1 CONVERT(DATETIME,APPROVE_DT,103) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID),CONVERT(DATETIME,GETDATE(),103)) DECLARE @REQ_TYPE VARCHAR(15) SET @REQ_TYPE =(SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID) ------------------------------------------- DECLARE @CONTENT NVARCHAR(MAX)='', @CONTENT_CK NVARCHAR(MAX)='', @REQ_PAY_TYPE VARCHAR(5), @ACCNO VARCHAR(50), @ACCNAME NVARCHAR(500), @BANK NVARCHAR(500), @ISUED_DT DATE,@REASON NVARCHAR(MAX), @DESC NVARCHAR(MAX),@NDTM NVARCHAR(MAX) ='', @NDCK NVARCHAR(MAX) ='' DECLARE CURS CURSOR FOR SELECT A.REQ_PAY_TYPE, A.ACC_NO,A.ACC_NAME,A.ISSUED_BY,A.ISSUED_DT,A.REQ_PAY_REASON,A.REQ_PAY_ENTRIES FROM TR_REQ_PAY_METHOD A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID DECLARE @NOIDUNG NVARCHAR(MAX) ='' --- LAY NOI DUNG THANH TOAN NEU THANH TOAN CHO NHA CUNG CAP DECLARE CURS_PO CURSOR FOR SELECT A.REQ_PAY_DESC,A.REQ_PAY_ENTRIES FROM TR_REQ_PAY_SCHEDULE A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID DECLARE @NOIDUNG_PO NVARCHAR(MAX) ='' DECLARE @BRANCH_TYPE VARCHAR(15), @BRANCH_RQ VARCHAR(15),@TOTAL_ADVANCE DECIMAL(18,0), @TOTAL_PAYBACK DECIMAL(18,0) SET @BRANCH_RQ =(SELECT TOP 1 BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @BRANCH_TYPE = (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ) IF(@BRANCH_TYPE ='HS' AND @REQ_TYPE ='I') BEGIN SET @TRUONG_DV = (SELECT TOP 1 TLFullName FROM TL_USER WHERE TLNANME = (SELECT top 1 CHECKER_ID FROM PL_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND PROCESS_ID='0' AND ID =(SELECT MAX(ID) FROM PL_PROCESS WHERE REQ_ID= @p_REQ_PAY_ID AND PROCESS_ID ='0'))) SET @DVKD_APP_DT =(SELECT TOP 1 ISNULL(FORMAT(APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM PL_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND PROCESS_ID='0' AND ID =(SELECT MAX(ID) FROM PL_PROCESS WHERE REQ_ID= @p_REQ_PAY_ID AND PROCESS_ID ='0')) IF(@DVKD_APP_DT IS NOT NULL AND @DVKD_APP_DT <>'') BEGIN SET @DVKD_APP_DT =N'Đã chấp thuận '+ @DVKD_APP_DT END END ELSE IF (@BRANCH_TYPE = 'PGD' AND @REQ_TYPE ='I') BEGIN SET @TRUONG_DV =(SELECT TOP 1 TLFullName FROM TL_USER WHERE TLNANME = (SELECT TOP 1 CHECKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) --AND ID =(SELECT MAX(ID) FROM PL_PROCESS WHERE REQ_ID= @p_REQ_PAY_ID AND PROCESS_ID ='0'))) SET @DVKD_APP_DT =(SELECT TOP 1 ISNULL(FORMAT(APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) --AND ID =(SELECT MAX(ID) FROM PL_PROCESS WHERE REQ_ID= @p_REQ_PAY_ID AND PROCESS_ID ='0')) IF(@DVKD_APP_DT IS NOT NULL AND @DVKD_APP_DT <>'') BEGIN SET @DVKD_APP_DT =N'Đã chấp thuận '+ @DVKD_APP_DT END END ELSE BEGIN SET @TRUONG_DV = (SELECT TOP 1 TLFullName FROM TL_USER WHERE TLNANME = (SELECT top 1 CHECKER_ID FROM PL_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND PROCESS_ID='1' AND ID =(SELECT MAX(ID) FROM PL_PROCESS WHERE REQ_ID= @p_REQ_PAY_ID AND PROCESS_ID ='1'))) --SET @DVKD_APP_DT =(SELECT TOP 1 ISNULL(FORMAT(APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM PL_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND PROCESS_ID='1') SET @DVKD_APP_DT = (SELECT TOP 1 ISNULL(FORMAT(APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID ) IF(@DVKD_APP_DT IS NOT NULL AND @DVKD_APP_DT <>'') BEGIN SET @DVKD_APP_DT =N'Đã chấp thuận '+ @DVKD_APP_DT END END DECLARE @TMP_DVDM TABLE(DVDM_ID VARCHAR(15)) INSERT INTO @TMP_DVDM SELECT A.DVDM_ID--, A.COST_CODE, A.COST_NAME, B.DEP_ID --, C.DEP_CODE, C.DEP_NAME FROM PL_COSTCENTER A LEFT JOIN PL_COSTCENTER_DT B ON A.COST_ID = B.COST_ID WHERE B.DEP_ID = (SELECT TOP 1 DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) GROUP BY A.DVDM_ID DECLARE @tmp_CN table(BRANCH_ID varchar(15)) IF((SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ)='CN') BEGIN INSERT into @tmp_CN SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_RQ) END ELSE IF((SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ)='PGD') BEGIN DECLARE @FATHER_ID VARCHAR(15) = NULL SET @FATHER_ID =(SELECT TOP 1 FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ) INSERT into @tmp_CN SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@FATHER_ID) END SET @SO_DU_TAM_UNG = (SELECT AMT FROM TR_REQ_ADVANCE_LIMIT_LOG WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ID =(SELECT MAX(ID) FROM TR_REQ_ADVANCE_LIMIT_LOG WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) --IF(@BRANCH_TYPE='HS' AND @REQ_TYPE ='I') -- BEGIN -- SET @TOTAL_ADVANCE =ISNULL((SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE -- DEP_ID IN -- (SELECT A.DEP_ID FROM PL_COSTCENTER_DT A -- LEFT JOIN PL_COSTCENTER B ON A.COST_ID = B.COST_ID -- WHERE B.DVDM_ID IN (SELECT DVDM_ID FROM @TMP_DVDM) AND A.BRANCH_ID =@BRANCH_RQ) -- AND REQ_TYPE ='I' AND AUTH_STATUS ='A' AND (CONVERT(DATETIME,APPROVE_DT,103) <=@DATE_APPR OR APPROVE_DT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID),0) -- SET @TOTAL_PAYBACK = -- ISNULL( -- ( -- SELECT (SUM(B.AMT_USE) - SUM(B.AMT_ADD) + SUM (B.AMT_REVERT)) -- FROM TR_REQ_PAYMENT_DT B -- INNER JOIN TR_REQ_PAYMENT A ON B.PAY_ID = A.REQ_PAY_ID -- INNER JOIN TR_REQ_ADVANCE_PAYMENT C ON C.REQ_PAY_ID = B.PAY_ADV_ID -- WHERE A.DEP_ID IN -- (SELECT A.DEP_ID FROM PL_COSTCENTER_DT A -- LEFT JOIN PL_COSTCENTER B ON A.COST_ID = B.COST_ID -- WHERE B.DVDM_ID IN (SELECT DVDM_ID FROM @TMP_DVDM) AND A.BRANCH_ID =@BRANCH_RQ) -- AND A.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I' AND (CONVERT(DATETIME,A.APPROVE_DT_KT,103) <=@DATE_APPR OR A.APPROVE_DT_KT IS NULL) AND B.PAY_ADV_ID <>@p_REQ_PAY_ID -- ),0) -- END -- -- NEU PHIEU DUOC TAO KHAC VOI HOI SO THI TIEN HANH TINH TONG SO TIEN TAM UNG CUA CN VA PHONG GIAO DICH TRUC THUOC -- ELSE IF(@BRANCH_TYPE <>'HS') -- BEGIN -- SET @TOTAL_ADVANCE =(SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp_CN) -- AND REQ_TYPE ='I' AND AUTH_STATUS='A' AND (CONVERT(DATETIME,APPROVE_DT,103) <=@DATE_APPR OR APPROVE_DT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID) -- SET @TOTAL_PAYBACK = -- ( -- SELECT (SUM(B.AMT_USE) - SUM(B.AMT_ADD) + SUM (B.AMT_REVERT)) -- FROM TR_REQ_PAYMENT_DT B -- INNER JOIN TR_REQ_PAYMENT A ON B.PAY_ID = A.REQ_PAY_ID -- INNER JOIN TR_REQ_ADVANCE_PAYMENT C ON C.REQ_PAY_ID = B.PAY_ADV_ID -- WHERE A.BRANCH_ID IN -- (SELECT BRANCH_ID FROM @tmp_CN) -- AND A.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I' AND (CONVERT(DATETIME,A.APPROVE_DT_KT,103) <=@DATE_APPR OR A.APPROVE_DT_KT IS NULL) AND B.PAY_ADV_ID <>@p_REQ_PAY_ID -- ) -- END --- SELECT A.REQ_PAY_CODE, A.REQ_REASON,A.DEP_ID, N'Đã chấp thuận '+ISNULL(FORMAT(A.CREATE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') AS CREATE_DT, A.MAKER_ID_KT,A.CHECKER_ID, CASE WHEN ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') <>'' THEN N'Đã chấp thuận '+ ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS APPROVE_DT,A.CHECKER_ID_KT,MAKER_ID_KT, CASE WHEN ISNULL(FORMAT(A.APPROVE_DT_KT,'dd/MM/yyyy,hh:mm:ss tt'),'') <>'' THEN @TITLE_APPROVE_KSV + ISNULL(FORMAT(A.APPROVE_DT_KT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS APPROVE_DT_KT , CASE WHEN ISNULL(FORMAT(A.CREATE_DT_KT,'dd/MM/yyyy,hh:mm:ss tt'),'') <>'' THEN @TITLE_APPROVE +ISNULL(FORMAT(A.CREATE_DT_KT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS CREATE_DT_KT, B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, CASE WHEN A.REF_ID IS NOT NULL AND A.REF_ID <>'' THEN TL6.TLFullName ELSE TL.TLFullName END CREATE_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, 0 TOTAL_AMT_TEMP, 0 TOTAL_AMT_PAY_HIS,TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME, DAY(A.CREATE_DT) D_, MONTH(A.CREATE_DT) M_, YEAR(A.CREATE_DT) Y_, CASE WHEN A.REQ_TYPE='I' THEN CAST(1 AS BIT) WHEN A.REQ_TYPE <>'I' THEN CAST(0 AS BIT) END AS IS_NB, CASE WHEN A.REQ_TYPE='P' THEN CAST(1 AS BIT) WHEN A.REQ_TYPE <>'P' THEN CAST(0 AS BIT) END AS IS_NCC, CASE WHEN A.REQ_TYPE='D' THEN CAST(1 AS BIT) WHEN A.REQ_TYPE <>'D' THEN CAST(0 AS BIT) END AS IS_XLN, CASE WHEN LEN(@CONTENT) >0 THEN LEFT(@CONTENT,LEN(@CONTENT)-2) ELSE '' END AS TTTM, CASE WHEN LEN(@CONTENT_CK) >0 THEN LEFT(@CONTENT_CK, LEN(@CONTENT_CK)-2) ELSE NULL END AS TTCK, CASE WHEN LEN(@CONTENT) >0 THEN N'Tiền mặt:' ELSE '' END AS TM_TITLE, CASE WHEN LEN(@CONTENT_CK) >0 THEN N'Chuyển khoản:' ELSE NULL END AS CK_TITLE, --CASE WHEN @REQ_TYPE <>'P' THEN LEFT(@NOIDUNG, LEN(@NOIDUNG)-2) ELSE LEFT(@NOIDUNG_PO,LEN(@NOIDUNG_PO)-2) END AS NOIDUNG, TL1.TLFullName AS APPROVE_FULLNAME, --ISNULL(A.REQ_AMT,0) AS SO_TIEN_PTTT, CASE WHEN LEN(@NDTM + @NDCK) >0 THEN LEFT(@NDTM + @NDCK,LEN(@NDTM + @NDCK)-2) ELSE '' END AS PHUONG_THUC_THANH_TOAN, CASE WHEN EXISTS(SELECT * FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND CURRENCY <>'VND') THEN (SELECT TOP 1 CURRENCY FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ELSE 'VND' END AS TYPE_CUR, CASE WHEN EXISTS(SELECT * FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND CURRENCY <>'VND') THEN (SELECT SUM(TOTAL_AMT) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ELSE A.REQ_AMT END AS SO_TIEN_PTTT, --(ISNULL(@TOTAL_ADVANCE,0) -ISNULL(@TOTAL_PAYBACK,0))+A.REQ_AMT*A.RATE AS SO_DU_TAM_UNG, ISNULL(@SO_DU_TAM_UNG,0.00) AS SO_DU_TAM_UNG, CASE WHEN EXISTS(SELECT * FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND CURRENCY <>'VND') THEN (SELECT SUM(TOTAL_AMT) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ELSE A.REQ_AMT END AS REQ_AMT, @TRUONG_DV AS TRUONG_DV, @DVKD_APP_DT AS DVKD_APP_DT,CASE WHEN A.CONFIRM_NOTES <>'' AND A.CONFIRM_NOTES IS NOT NULL THEN N'Ghi chú: '+ A.CONFIRM_NOTES ELSE '' END AS CONFIRM_NOTES 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' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' 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 TL_USER TL6 ON A.REF_ID = TL6.TLNANME WHERE 1=1 AND(A.REQ_PAY_ID=@p_REQ_PAY_ID) ORDER BY A.CREATE_DT DESC;