/* Run this script on: (local)\SQLEXPRESS.gAMS_BVB_v3_Customer - This database will be modified to synchronize it with: 192.168.1.230,5036.gAMSPro_BVB_v3_UAT_NB You are recommended to back up your database before running this script Script created by SQL Compare version 13.1.6.5463 from Red Gate Software Ltd at 2/15/2022 9:40:02 AM */ SET NUMERIC_ROUNDABORT OFF GO SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS ON GO SET XACT_ABORT ON GO SET TRANSACTION ISOLATION LEVEL Serializable GO BEGIN TRANSACTION GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_ById]' GO ALTER PROC [dbo].[TR_REQ_PAYMENT_ById] @p_REQ_PAYMENT_ID varchar(15) = NULL, @p_REQ_TYPE varchar(15)=NULL AS SELECT A.PAY_ADV_ID,A.PAY_ID,A.TRN_DATE,A.PAYDTID,A.AMT_PAY,B.REQ_PAY_CODE, B.MAKER_ID,B.CHECKER_ID, B.APPROVE_DT, B.TRANSFER_MAKER, B.TRANSFER_DT, B.TRASFER_USER_RECIVE, B.MAKER_ID_KT, B.APPROVE_DT_KT,B.CHECKER_ID_KT, B.CREATE_DT_KT,AL.CONTENT REQ_TYPE_NAME,B.REQ_DT, AL1.CONTENT REQ_TYPE_PAY_NAME,B.CREATE_DT,B.APPROVE_DT, BR.BRANCH_CODE, BR.BRANCH_NAME,A.AMT_ADVANCED,A.AMT_DO,A.AMT_REMAIN,A.AMT_REVERT,A.AMT_USE,A.AMT_ADD, DP.DEP_CODE, DP.DEP_NAME, A.CURRENCY, A.RATE, ISNULL(A.AMT_REMAIN, 0) - ISNULL(A.AMT_USE, 0) - ISNULL(A.AMT_REVERT, 0) + ISNULL(A.AMT_ADD, 0) AS SO_TIEN_TU_CL FROM TR_REQ_PAYMENT_DT A LEFT JOIN TR_REQ_ADVANCE_PAYMENT B ON A.PAY_ADV_ID = B.REQ_PAY_ID LEFT JOIN CM_ALLCODE AL ON B.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ) LEFT JOIN CM_ALLCODE AL1 ON B.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER'--Hình thức thanh toán( Tiền mặt/Chuyển khoản) LEFT JOIN dbo.CM_BRANCH BR ON B.BRANCH_ID=BR.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP ON B.DEP_ID=DP.DEP_ID WHERE A.PAY_ID = @p_REQ_PAYMENT_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_Ins]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_Ins] @p_CONTRACT_ID varchar(15) = NULL, @p_BUILDING_ID varchar(15) = NULL, @p_CONTRACT_NO nvarchar(100) = NULL, @p_VERSION_NO int = NULL, @p_TR_CONTRACT_ID VARCHAR(15) = NULL, @p_CUST_ID varchar(15) = NULL, @p_INPUT_DT VARCHAR(20) = NULL, @p_AMEND_DT VARCHAR(20) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DATE VARCHAR(20) = NULL, @p_CLOSE_DT VARCHAR(20) = NULL, @p_MONTHS int = NULL, @p_RENT_PRICE numeric(18) = NULL, @p_NOTES NVARCHAR(MAX)= NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_STATUS VARCHAR(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_VAT DECIMAL(18,0) = NULL, @p_VAT_AMT DECIMAL(18,0) = NULL, @p_DEPOSITS_AMT DECIMAL(18,0) = NULL, @p_PAYMENT_SHEDULE NVARCHAR(500) = NULL, @p_PAYMENT_DT VARCHAR(20) = NULL, @p_EXTEND_DT VARCHAR(20) = NULL, @p_IS_SEND_APPR VARCHAR(15) = NULL, @p_SEND_APPR_DT VARCHAR(20) = NULL, @p_SIGN_USER VARCHAR(15) = NULL, @p_SIGN_DT VARCHAR(15) = NULL AS ---BAODNQ 30/12/2021:Thêm cột vào bảng BUD_CONTRACT_MASTER------- IF (EXISTS ( SELECT * FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_NO=@p_CONTRACT_NO AND VERSION_NO=@p_VERSION_NO)) BEGIN SELECT '-1' Result, '' CONTRACT_ID, N'Số hợp đồng này đã tồn tại' ErrorDesc RETURN '0' END BEGIN TRANSACTION DECLARE @l_CONTRACT_ID VARCHAR(15) IF(LEN( @p_CONTRACT_ID)=0 OR @p_CONTRACT_ID IS NULL) EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_MASTER', @p_CONTRACT_ID out IF @p_CONTRACT_ID='' OR @p_CONTRACT_ID IS NULL GOTO ABORT INSERT INTO BUD_CONTRACT_CUST_MASTER([CONTRACT_ID],[BUILDING_ID],[CONTRACT_NO],[VERSION_NO], [TR_CONTRACT_ID],[CUST_ID],[INPUT_DT],[AMEND_DT],[FROM_DT],[TO_DATE],[CLOSE_DT],[MONTHS], [RENT_PRICE],[NOTES],[BRANCH_ID],[RECORD_STATUS],[AUTH_STATUS],[STATUS],[MAKER_ID], [CREATE_DT],[CHECKER_ID],[APPROVE_DT],[XML_TEMP],[VAT],[VAT_AMT],[DEPOSITS_AMT], [PAYMENT_SHEDULE], [PAYMENT_DT],[EXTEND_DT],[IS_SEND_APPR],[SEND_APPR_DT],[SIGN_USER],[SIGN_DT]) VALUES(@p_CONTRACT_ID ,@p_BUILDING_ID ,@p_CONTRACT_NO ,@p_VERSION_NO,@p_TR_CONTRACT_ID ,@p_CUST_ID , CONVERT(DATE, @p_INPUT_DT, 103) ,CONVERT(DATE, @p_AMEND_DT, 103) ,CONVERT(DATE, @p_FROM_DT, 103) , CONVERT(DATE, @p_TO_DATE, 103) ,CONVERT(DATE, @p_CLOSE_DT, 103) ,@p_MONTHS ,@p_RENT_PRICE ,@p_NOTES,@p_BRANCH_ID, '1' ,'U','N',@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,NULL ,@p_XML_TEMP, @p_VAT,@p_VAT_AMT,@p_DEPOSITS_AMT,@p_PAYMENT_SHEDULE, CONVERT(DATE, @p_PAYMENT_DT, 103),CONVERT(DATETIME,@p_EXTEND_DT,103) ,@p_IS_SEND_APPR, @p_SEND_APPR_DT,@p_SIGN_USER,@p_SIGN_DT) ----------------------------------------------------------------------------------------------------- ----INSERT VAO BANG BUD_CONTACT DELETE FROM BUD_CONTACT WHERE CONTRACT_ID = @p_CONTRACT_ID INSERT INTO BUD_CONTACT VALUES(@p_CONTRACT_ID,@p_VERSION_NO,@p_BUILDING_ID,@p_CONTRACT_NO,@p_CUST_ID,CONVERT(DATE, @p_CREATE_DT, 103)) IF @@Error <> 0 GOTO ABORT Declare @hdoc1 INT DECLARE @d_CONTRACT_DTID VARCHAR(15), @d_BUILD_ID VARCHAR(15), @d_VERSION_NO INT, @d_BUILDING_AREA_ID VARCHAR(15), @d_RENT_AREA DECIMAL, @d_RENT_AREA_APP DECIMAL, @d_AREA_REMAIN DECIMAL, @d_RENT_PRICE DECIMAL, @d_NOTES NVARCHAR(MAX), @d_DIEN_TICH_TANG DECIMAL, @d_DIEN_TICH_SD_NOI_BO DECIMAL, @d_DIEN_TICH_DA_CHO_THUE DECIMAL, @d_DIEN_TICH_CON_LAI DECIMAL, @d_DIEN_TICH_CAN_CHOTHUE DECIMAL, @d_PRICE DECIMAL, @d_TOTAL_AMT DECIMAL, @d_DIEN_TICH_CON_LAI_FINAL DECIMAL Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( CONTRACT_DTID VARCHAR(15), BUILD_ID VARCHAR(15), VERSION_NO INT, BUILDING_AREA_ID VARCHAR(15), RENT_AREA DECIMAL, RENT_AREA_APP DECIMAL, AREA_REMAIN DECIMAL, RENT_PRICE DECIMAL, NOTES NVARCHAR(MAX), DIEN_TICH_TANG DECIMAL, DIEN_TICH_SD_NOI_BO DECIMAL, DIEN_TICH_DA_CHO_THUE DECIMAL, DIEN_TICH_CON_LAI DECIMAL, DIEN_TICH_CAN_CHOTHUE DECIMAL, PRICE DECIMAL, TOTAL_AMT DECIMAL, DIEN_TICH_CON_LAI_FINAL DECIMAL ) OPEN XmlDataDoc FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_CHOTHUE, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_DT', @d_CONTRACT_DTID out IF @d_CONTRACT_DTID='' OR @d_CONTRACT_DTID IS NULL GOTO ABORT INSERT INTO BUD_CONTRACT_CUST_DT([CONTRACT_DTID],[BUILD_ID],[CONTRACT_ID],[VERSION_NO],[BUILDING_AREA_ID],[RENT_AREA],[RENT_AREA_APP], [AREA_REMAIN],[RENT_PRICE],[NOTES], [DIEN_TICH_TANG], [DIEN_TICH_SD_NOI_BO],[DIEN_TICH_DA_CHO_THUE],[DIEN_TICH_CON_LAI], [DIEN_TICH_CAN_CHOTHUE],[PRICE],[TOTAL_AMT],[DIEN_TICH_CON_LAI_FINAL]) VALUES(@d_CONTRACT_DTID ,@d_BUILD_ID ,@p_CONTRACT_ID ,@d_VERSION_NO ,@d_BUILDING_AREA_ID ,@d_RENT_AREA,0,@d_AREA_REMAIN,@d_RENT_PRICE,@d_NOTES, @d_DIEN_TICH_TANG,@d_DIEN_TICH_SD_NOI_BO,@d_DIEN_TICH_DA_CHO_THUE,@d_DIEN_TICH_CON_LAI,@d_DIEN_TICH_CAN_CHOTHUE, @d_PRICE,@d_TOTAL_AMT,@d_DIEN_TICH_CON_LAI_FINAL) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_CHOTHUE, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) UPDATE BUD_CONTRACT_CUST_MASTER SET RENT_PRICE=@p_RENT_PRICE*MONTHS WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO ---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'INSERT', @p_MAKER_ID, GETDATE(), N'Thêm mới hợp đồng khách thuê thành công' , N'Thêm mới hợp đồng khách thuê' ) COMMIT TRANSACTION SELECT '0' as Result, @p_CONTRACT_ID CONTRACT_ID, @p_CONTRACT_NO CONTRACT_NO, '' ErrorDesc RETURN '0' ABORT: BEGIN --CLOSE XmlDataDoc --DEALLOCATE XmlDataDoc ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, @p_CONTRACT_NO CONTRACT_NO, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_DEPARTMENT_Search]' GO ALTER PROCEDURE [dbo].[CM_DEPARTMENT_Search] @p_DEP_ID varchar(15) = NULL, @p_DEP_CODE varchar(15) = NULL, @p_DEP_NAME nvarchar(200) = NULL, @p_DAO_CODE varchar(40) = NULL, @p_DAO_NAME nvarchar(500) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_GROUP_ID varchar(15) = NULL, @p_TEL varchar(20) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(12) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_KHOI_ID VARCHAR(20)=NULL, @p_TOP INT = 10 AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE [CONDITION] )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ BEGIN -- PAGING BEGIN TRANSACTION IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*, B.BRANCH_CODE, B.BRANCH_NAME, C.AUTH_STATUS_NAME, R.CONTENT AS RECORD_STATUS_NAME,FD.DEP_CODE +' - '+ FD.DEP_NAME as FATHER_NAME,D.DVDM_CODE, D.DVDM_NAME -- SELECT END FROM CM_DEPARTMENT A LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS LEFT JOIN CM_ALLCODE R ON A.RECORD_STATUS = R.CDVAL AND R.CDNAME = 'RECORD_STATUS' LEFT JOIN CM_DEPARTMENT FD ON A.FATHER_ID = FD.DEP_ID LEFT JOIN CM_DVDM D ON A.KHOI_ID = D.DVDM_ID WHERE 1 = 1 AND (A.DEP_ID LIKE '%' + @p_DEP_ID + '%' OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') AND (A.DEP_CODE LIKE '%' + @p_DEP_CODE + '%' OR @p_DEP_CODE IS NULL OR @p_DEP_CODE = '') AND (A.DEP_NAME LIKE '%' + @p_DEP_NAME + '%' OR @p_DEP_NAME IS NULL OR @p_DEP_NAME = '') AND (A.DAO_CODE LIKE '%' + @p_DAO_CODE + '%' OR @p_DAO_CODE IS NULL OR @p_DAO_CODE = '') AND (A.DAO_NAME LIKE '%' + @p_DAO_NAME + '%' OR @p_DAO_NAME IS NULL OR @p_DAO_NAME = '') AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.GROUP_ID LIKE '%' + @p_GROUP_ID + '%' OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '') AND (A.TEL LIKE '%' + @p_TEL + '%' OR @p_TEL IS NULL OR @p_TEL = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY, A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.RECORD_STATUS = @p_RECORD_STATUS OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.KHOI_ID = @p_KHOI_ID OR @p_KHOI_ID IS NULL OR @p_KHOI_ID = '') -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*, B.BRANCH_CODE, B.BRANCH_NAME, C.AUTH_STATUS_NAME, R.CONTENT AS RECORD_STATUS_NAME,FD.DEP_CODE +' - '+ FD.DEP_NAME as FATHER_NAME,D.DVDM_CODE, D.DVDM_NAME -- SELECT END FROM CM_DEPARTMENT A LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS=C.AUTH_STATUS LEFT JOIN CM_ALLCODE R ON A.RECORD_STATUS = R.CDVAL AND R.CDNAME = 'RECORD_STATUS' LEFT JOIN CM_DEPARTMENT FD ON A.FATHER_ID = FD.DEP_ID LEFT JOIN CM_DVDM D ON A.KHOI_ID = D.DVDM_ID WHERE 1 = 1 AND (A.DEP_ID LIKE '%' + @p_DEP_ID + '%' OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') AND (A.DEP_CODE LIKE '%' + @p_DEP_CODE + '%' OR @p_DEP_CODE IS NULL OR @p_DEP_CODE = '') AND (A.DEP_NAME LIKE '%' + @p_DEP_NAME + '%' OR @p_DEP_NAME IS NULL OR @p_DEP_NAME = '') AND (A.DAO_CODE LIKE '%' + @p_DAO_CODE + '%' OR @p_DAO_CODE IS NULL OR @p_DAO_CODE = '') AND (A.DAO_NAME LIKE '%' + @p_DAO_NAME + '%' OR @p_DAO_NAME IS NULL OR @p_DAO_NAME = '') AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.GROUP_ID LIKE '%' + @p_GROUP_ID + '%' OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '') AND (A.TEL LIKE '%' + @p_TEL + '%' OR @p_TEL IS NULL OR @p_TEL = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY, A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.RECORD_STATUS = @p_RECORD_STATUS OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.KHOI_ID = @p_KHOI_ID OR @p_KHOI_ID IS NULL OR @p_KHOI_ID = '') -- PAGING END COMMIT TRANSACTION END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_Upd]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_Upd] @p_CONTRACT_ID varchar(15) = NULL, @p_BUILDING_ID varchar(15) = NULL, @p_CONTRACT_NO nvarchar(100) = NULL, @p_VERSION_NO int = NULL, @p_TR_CONTRACT_ID VARCHAR(15) = NULL, @p_CUST_ID varchar(15) = NULL, @p_INPUT_DT VARCHAR(20) = NULL, @p_AMEND_DT VARCHAR(20) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DATE VARCHAR(20) = NULL, @p_CLOSE_DT VARCHAR(20) = NULL, @p_MONTHS int = NULL, @p_RENT_PRICE numeric(18) = NULL, @p_NOTES NVARCHAR(MAX)= NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_STATUS VARCHAR(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_VAT DECIMAL(18,0) = NULL, @p_VAT_AMT DECIMAL(18,0) = NULL, @p_DEPOSITS_AMT DECIMAL(18,0) = NULL, @p_PAYMENT_SHEDULE NVARCHAR(500) = NULL, @p_PAYMENT_DT VARCHAR(20) = NULL, @p_EXTEND_DT VARCHAR(20) = NULL, @p_IS_SEND_APPR VARCHAR(15) = NULL, @p_SEND_APPR_DT VARCHAR(20) = NULL, @p_SIGN_USER VARCHAR(15) = NULL, @p_SIGN_DT VARCHAR(15) = NULL AS /* --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM BUD_CONTRACT_MASTER WHERE VERSION_NO=@p_VERSION_NO SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' VERSION_NO, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ BEGIN TRANSACTION IF (@p_STATUS = 'C') BEGIN UPDATE BUD_CONTRACT_CUST_MASTER SET STATUS= @p_STATUS, AUTH_STATUS='U', APPROVE_DT=NULL, CHECKER_ID=NULL WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO END ELSE BEGIN DELETE FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO= @p_VERSION_NO Declare @hdoc1 INT DECLARE @d_CONTRACT_DTID VARCHAR(15), @d_BUILD_ID VARCHAR(15), @d_VERSION_NO INT, @d_BUILDING_AREA_ID VARCHAR(15), @d_RENT_AREA DECIMAL, @d_RENT_AREA_APP DECIMAL, @d_AREA_REMAIN DECIMAL, @d_RENT_PRICE DECIMAL, @d_NOTES NVARCHAR(MAX), @d_DIEN_TICH_TANG DECIMAL, @d_DIEN_TICH_SD_NOI_BO DECIMAL, @d_DIEN_TICH_DA_CHO_THUE DECIMAL, @d_DIEN_TICH_CON_LAI DECIMAL, @d_DIEN_TICH_CAN_CHOTHUE DECIMAL, @d_PRICE DECIMAL, @d_TOTAL_AMT DECIMAL, @d_DIEN_TICH_CON_LAI_FINAL DECIMAL Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( CONTRACT_DTID VARCHAR(15), BUILD_ID VARCHAR(15), VERSION_NO INT, BUILDING_AREA_ID VARCHAR(15), RENT_AREA DECIMAL, RENT_AREA_APP DECIMAL, AREA_REMAIN DECIMAL, RENT_PRICE DECIMAL, NOTES NVARCHAR(MAX), DIEN_TICH_TANG DECIMAL, DIEN_TICH_SD_NOI_BO DECIMAL, DIEN_TICH_DA_CHO_THUE DECIMAL, DIEN_TICH_CON_LAI DECIMAL, DIEN_TICH_CAN_CHOTHUE DECIMAL, PRICE DECIMAL, TOTAL_AMT DECIMAL, DIEN_TICH_CON_LAI_FINAL DECIMAL ) OPEN XmlDataDoc FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_CHOTHUE, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL WHILE @@FETCH_STATUS = 0 BEGIN IF(LEN( @d_CONTRACT_DTID)=0) EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_DT', @d_CONTRACT_DTID out IF @d_CONTRACT_DTID='' OR @d_CONTRACT_DTID IS NULL GOTO ABORT INSERT INTO BUD_CONTRACT_CUST_DT([CONTRACT_DTID],[BUILD_ID],[CONTRACT_ID],[VERSION_NO],[BUILDING_AREA_ID],[RENT_AREA],[RENT_AREA_APP],[AREA_REMAIN],[RENT_PRICE],[NOTES], [DIEN_TICH_TANG],[DIEN_TICH_SD_NOI_BO],[DIEN_TICH_DA_CHO_THUE],[DIEN_TICH_CON_LAI],[DIEN_TICH_CAN_CHOTHUE],[PRICE],[TOTAL_AMT], [DIEN_TICH_CON_LAI_FINAL]) VALUES(@d_CONTRACT_DTID ,@d_BUILD_ID ,@p_CONTRACT_ID ,@d_VERSION_NO ,@d_BUILDING_AREA_ID ,@d_RENT_AREA,@d_RENT_AREA_APP,@d_AREA_REMAIN,@d_RENT_PRICE,@d_NOTES, @d_DIEN_TICH_TANG,@d_DIEN_TICH_SD_NOI_BO,@d_DIEN_TICH_DA_CHO_THUE,@d_DIEN_TICH_CON_LAI,@d_DIEN_TICH_CAN_CHOTHUE,@d_PRICE,@d_TOTAL_AMT,@d_DIEN_TICH_CON_LAI_FINAL) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN , @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_CHOTHUE, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc IF @@Error <> 0 GOTO ABORT SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) ---BAODNQ 30/12/2021:Thêm cột vào bảng BUD_CONTRACT_MASTER------- UPDATE BUD_CONTRACT_CUST_MASTER SET BUILDING_ID =@p_BUILDING_ID, CONTRACT_NO =@p_CONTRACT_NO, TR_CONTRACT_ID = @p_TR_CONTRACT_ID, CUST_ID=@p_CUST_ID, INPUT_DT = CONVERT(DATE,@p_INPUT_DT,103), AMEND_DT = CONVERT(DATE,@p_AMEND_DT,103), FROM_DT = CONVERT(DATE,@p_FROM_DT,103), TO_DATE = CONVERT(DATE,@p_TO_DATE,103), CLOSE_DT = CONVERT(DATE,@p_CLOSE_DT,103), AUTH_STATUS = @p_AUTH_STATUS, STATUS= @p_STATUS, MONTHS = @p_MONTHS, RENT_PRICE=@p_RENT_PRICE*@p_MONTHS, [NOTES] = @p_NOTES, VAT =@p_VAT, VAT_AMT =@p_VAT_AMT, DEPOSITS_AMT =@p_DEPOSITS_AMT, PAYMENT_SHEDULE =@p_PAYMENT_SHEDULE, PAYMENT_DT = CONVERT(DATETIME, @p_PAYMENT_DT, 103), EXTEND_DT = CONVERT(DATETIME, @p_EXTEND_DT, 103) --IS_SEND_APPR = @p_IS_SEND_APPR, --SEND_APPR_DT = @p_SEND_APPR_DT, --SIGN_USER = @p_SIGN_USER, --SIGN_DT = @p_SIGN_DT WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO END ---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'UPDATE', @p_MAKER_ID, GETDATE(), N'Cập nhật hợp đồng khách thuê thành công' , N'Cập nhật hợp đồng khách thuê' ) COMMIT TRANSACTION SELECT '0' as Result, @p_CONTRACT_ID CONTRACT_ID, @p_CONTRACT_NO CONTRACT_NO, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlDataDoc DEALLOCATE XmlDataDoc ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, @p_CONTRACT_NO CONTRACT_NO, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_Del]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_Del] @p_CONTRACT_ID varchar(15), @p_VERSION_NO int AS BEGIN TRANSACTION BEGIN DELETE FROM BUD_CONTRACT_CUST_MASTER WHERE VERSION_NO= @p_VERSION_NO AND CONTRACT_ID= @p_CONTRACT_ID DELETE FROM BUD_CONTACT WHERE CONTRACT_ID = @p_CONTRACT_ID AND LATEST_VER_NO=@p_VERSION_NO DELETE FROM BUD_CONTRACT_CUST_DT WHERE VERSION_NO= @p_VERSION_NO AND CONTRACT_ID= @p_CONTRACT_ID IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_ById]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_ById] @p_CONTRACT_ID varchar(15) = NULL, @p_VERSION_NO int =1 AS BEGIN ------BAODNQ 27/12/2021: Select thêm SIGN_DT, START_DT, END_DT, APPROVE_DT từ bảng TR_CONTRACT--------- SELECT A.*, B.AUTH_STATUS_NAME, C.BUILDING_ID, C.NUM_FLOOR, C.BUILDING_NAME, BR.BRANCH_NAME, LS.CUSTOMER_NAME, LS.CUSTOMER_CODE, TC.CONTRACT_NAME, TC.SIGN_DT AS NGAY_KY_HD, TC.START_DT AS HIEU_LUC_TU_NGAY, TC.END_DT AS HIEU_LUC_DEN_NGAY, CASE WHEN DATEDIFF(DAY, A.TO_DATE, TC.END_DT) <> 0 THEN TC.APPROVE_DT ELSE A.EXTEND_DT END AS NGAY_GIA_HAN_HD, -----BAODNQ 30/12/2021: Lấy thêm cột full name---- D.TLFullName AS SIGN_USER_FULLNAME FROM BUD_CONTRACT_CUST_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = A.BRANCH_ID LEFT JOIN LS_CUSTOMER LS ON LS.CUSTOMER_ID = A.CUST_ID LEFT JOIN TR_CONTRACT TC ON A.TR_CONTRACT_ID = TC.CONTRACT_ID ----BAODNQ 30/12/2021: Kết thêm bảng TL_USER---- LEFT JOIN TL_USER D ON A.SIGN_USER = D.TLNANME WHERE 1 = 1 AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '') AND (A.VERSION_NO = @p_VERSION_NO) END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_DT_ById]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_DT_ById] @p_CONTRACT_ID varchar(15), @p_VERSION_NO int, @p_CURRENT_CONTRACT_ID VARCHAR(15),-- = '' KHI VIEW, <> '' KHI TAO PHU LUC HOP DONG, KHONG TINH GIA TRI CUA HOP DONG HIEN TAI @p_TO_DATE VARCHAR(18)--NEU '' THI LAY THEO NGAY DUYET HOP DONG - TRUONG HOP VIEW -- NGUOC LAI NEU <> '': LAY THEO NGAY TU CLIEN - LAY DEN HIEN TAI - TAO PHU LUC HOP DONG AS DECLARE @l_TO_DATE DATETIME IF @p_TO_DATE = '' SET @l_TO_DATE = (select TOP 1 CONVERT(DATETIME,APPROVE_DT,103) from BUD_UTIL_LOG where CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO = @p_VERSION_NO) ELSE SET @l_TO_DATE = CONVERT(DATETIME, @p_TO_DATE, 103) SELECT A.*,B.FLOOR_NO, B.BUILDING_AREA_ID,B.INTERNAL_AREA,B.UTILZED_AREA,B.FLOOR_AREA, ISNULL(B.UTILZED_AREA,0) DIENTICH_DACHOTHUE, ISNULL(B.FLOOR_AREA -B.UTILZED_AREA- B.INTERNAL_AREA + A.RENT_AREA_APP,0) DIENTICH_CONLAI, ISNULL(B.FLOOR_AREA- B.INTERNAL_AREA,0) DIENTICH_CONLAI_CHOTHUE, ((select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @p_CURRENT_CONTRACT_ID OR @p_CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='I' AND UTIL_RELEASE ='U' AND VERSION_NO <=@p_VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID) - (select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @p_CURRENT_CONTRACT_ID OR @p_CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='I' AND UTIL_RELEASE ='R' AND VERSION_NO <=@p_VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID)) AS TONGDIENTICH_NGANHANG_SUDUNG, ((select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @p_CURRENT_CONTRACT_ID OR @p_CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='C' AND UTIL_RELEASE ='U' AND VERSION_NO <=@p_VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID) - (select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @p_CURRENT_CONTRACT_ID OR @p_CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='C' AND UTIL_RELEASE ='R' AND VERSION_NO <=@p_VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID)) AS TONGDIENTICH_KHACHHANG_SUDUNG FROM BUD_CONTRACT_CUST_DT A LEFT JOIN BUD_AREA_DT B ON A.BUILDING_AREA_ID = B.BUILDING_AREA_ID WHERE A.CONTRACT_ID =@p_CONTRACT_ID AND A.VERSION_NO=@p_VERSION_NO GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_Del]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Del] @p_REQ_PAY_ID varchar(15) AS DECLARE @REQ_CODE VARCHAR(50), @BRANCH_ID VARCHAR(15), @MAKER_ID VARCHAR(15) SET @REQ_CODE =(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) DECLARE @ERRORSYS NVARCHAR(15) = '' --IF ( NOT EXISTS ( SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID)) -- SET @ERRORSYS = 'REQ-00002' --IF @ERRORSYS <> '' --BEGIN -- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS -- RETURN '0' --END BEGIN TRANSACTION --IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <>'E')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được gửi phê duyệt! Bạn chỉ được phép xóa bản nháp!' ErrorDesc -- RETURN '-1' --END --IF((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A') --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: ' +(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được trưởng đơn vị phê duyệt, bạn không được phép xóa!' ErrorDesc -- RETURN '-1' --END SET @BRANCH_ID =(SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @MAKER_ID =(SELECT MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@MAKER_ID AND (RoleName ='DISABLE' OR AUTH_STATUS ='U'))) BEGIN IF(NOT EXISTS(SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID AND ISNULL(AUTH_STATUS_KT,'') ='A')) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C')) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS ='D' WHERE PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_INVOICE SET AUTH_STATUS ='D', AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+@REQ_CODE+ N' đã được hủy thành công.Bạn có thể tra cứu phiếu ở tình trạng Phiếu bị hủy!' AS ErrorDesc RETURN '0' --RETURN END END END IF(NOT EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@MAKER_ID AND TLSUBBRID =@BRANCH_ID)) BEGIN IF(NOT EXISTS(SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID AND ISNULL(AUTH_STATUS_KT,'') ='A')) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C')) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS ='D' WHERE PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_INVOICE SET AUTH_STATUS ='D', AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+@REQ_CODE+ N' đã được hủy thành công.Bạn có thể tra cứu phiếu ở tình trạng Phiếu bị hủy!' AS ErrorDesc RETURN '0' END END END IF((SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được kiểm soát viên duyệt, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được điều phối và xử lý ở phòng kế toán. Bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF((SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'R') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang bị KSV từ chối, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'R') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang ở tình trạng từ chối, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM PL_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID AND CHECKER_ID IN ('nghihm','huongvt','chaudtm','hainth'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã có lịch sử xử lý.Vui lòng tiếp tục thao tác trên phiếu này. Bạn không được phép xóa!' ErrorDesc RETURN '-1' END ELSE BEGIN Delete FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID Delete FROM TR_REQ_PAYMENT_DT WHERE PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_CAT WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số : '+@REQ_CODE+ N' đã được xóa thành công khỏi hệ thống!' AS ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' AS ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_App]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_App] @p_CONTRACT_ID varchar(15), @p_VERSION_NO varchar(15), @P_AUTH_STATUS VARCHAR(1), @P_CHECKER_ID VARCHAR(12), @P_APPROVE_DT VARCHAR(25), @P_TYPE_CONTRACT VARCHAR(1), @P_XML_TEMP XML AS BEGIN TRANSACTION DECLARE @_BUILDING_UTIL_LOG VARCHAR(15) DECLARE @p_VALUE_ID VARCHAR(15) DECLARE @p_MONTH DECIMAL(18,0) DECLARE @VALUE_ERROR DECIMAL(18,0) DECLARE @p_RENT_PRICE DECIMAL(18,0) DECLARE @TOATAL_INTERNAL DECIMAL(18,0) DECLARE @STT INT SET @STT =0 DECLARE @_BUILDING_ID VARCHAR(15) DECLARE @_BUILDING_AREA_ID VARCHAR(15) DECLARE @_RENT_AREA DECIMAL(18,0) DECLARE @_RENT_PRICE_OLD DECIMAL(18,0) DECLARE @tmp table(CONTRACT_DTID VARCHAR(15), BUILDING_AREA_ID varchar(15),RENT_AREA DECIMAL(18,2),RENT_PRICE DECIMAL(18,2)) insert into @tmp SELECT CONTRACT_DTID, BUILDING_AREA_ID,RENT_AREA,RENT_PRICE FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO =@p_VERSION_NO-1 -----BAODNQ 20/1/2022-------------------- DECLARE @p_VAT_INIT NUMERIC(18,0) SET @p_VAT_INIT = (SELECT VAT FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) -----*** INSERT VERSION -1 VAO TRONG BANG LOG IF @@Error <> 0 GOTO ABORT Declare @hdoc1 INT DECLARE @d_CONTRACT_DTID VARCHAR(15), @d_BUILD_ID VARCHAR(15), @d_VERSION_NO INT, @d_BUILDING_AREA_ID VARCHAR(15), @d_RENT_AREA DECIMAL, @d_RENT_AREA_APP DECIMAL, @d_AREA_REMAIN DECIMAL, @d_RENT_PRICE DECIMAL, @d_NOTES NVARCHAR(MAX), @d_DIEN_TICH_TANG DECIMAL, @d_DIEN_TICH_SD_NOI_BO DECIMAL, @d_DIEN_TICH_DA_CHO_THUE DECIMAL, @d_DIEN_TICH_CON_LAI DECIMAL, @d_DIEN_TICH_CAN_CHOTHUE DECIMAL, @d_PRICE DECIMAL, @d_TOTAL_AMT DECIMAL, @d_DIEN_TICH_CON_LAI_FINAL DECIMAL Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( CONTRACT_DTID VARCHAR(15), BUILD_ID VARCHAR(15), VERSION_NO INT, BUILDING_AREA_ID VARCHAR(15), RENT_AREA DECIMAL, RENT_AREA_APP DECIMAL, AREA_REMAIN DECIMAL, RENT_PRICE DECIMAL, NOTES NVARCHAR(MAX), DIEN_TICH_TANG DECIMAL, DIEN_TICH_SD_NOI_BO DECIMAL, DIEN_TICH_DA_CHO_THUE DECIMAL, DIEN_TICH_CON_LAI DECIMAL, DIEN_TICH_CAN_CHOTHUE DECIMAL, PRICE DECIMAL, TOTAL_AMT DECIMAL, DIEN_TICH_CON_LAI_FINAL DECIMAL ) OPEN XmlDataDoc FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_CHOTHUE, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL WHILE @@FETCH_STATUS = 0 BEGIN SET @STT= @STT+1 SET @VALUE_ERROR = (SELECT FLOOR_AREA - (UTILZED_AREA + INTERNAL_AREA) FROM BUD_AREA_DT WHERE BUILDING_AREA_ID = @d_BUILDING_AREA_ID ) --+(SELECT SUM(RENT_AREA) FROM BUD_CONTRACT_DT --WHERE CONTRACT_ID =@p_CONTRACT_ID AND CONTRACT_ID IN(SELECT CONTRACT_ID FROM --BUD_CONTRACT_MASTER WHERE AUTH_STATUS='A')) --DIEN TICH CHO THUE PHAI LON HON DIEN TICH CON LAI+ DIEN TICH VERSION CŨ TRONG TRUONG --HOP TAO PHU LUC HOP DONG -- IF ( @d_DIEN_TICH_CAN_CHOTHUE > (@VALUE_ERROR + @d_RENT_AREA_APP)) BEGIN DECLARE @ERRORSYS NVARCHAR(200) ='' SET @ERRORSYS = N'Dòng '+ convert(nvarchar(2),@stt) +N': Diện tích cho thuê phải nhỏ hơn hoặc bằng '+ convert(nvarchar(20),@VALUE_ERROR) END IF @ERRORSYS <> '' BEGIN CLOSE XmlDataDoc DEALLOCATE XmlDataDoc ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, @ERRORSYS ErrorDesc RETURN '-1' END ----**** INSERT VERSION CURRENT -1------------------------------------------------------------------------- --IF(@p_VERSION_NO>1) --BEGIN -- SET @_BUILDING_AREA_ID= (SELECT TOP(1) BUILDING_AREA_ID FROM @tmp) -- SET @_RENT_AREA= (SELECT TOP(1) RENT_AREA FROM @tmp) -- SET @p_RENT_PRICE= (SELECT TOP(1) RENT_PRICE FROM @tmp) -- EXEC SYS_CodeMasters_Gen 'BUD_UTIL_LOG', @_BUILDING_UTIL_LOG out -- IF @_BUILDING_UTIL_LOG='' OR @_BUILDING_UTIL_LOG IS NULL GOTO ABORT -- INSERT INTO BUD_UTIL_LOG([UTIL_ID],[BUILDING_AREA_ID],[UTIL_TYPE],[UTIL_RELEASE],[CONTRACT_ID],[VERSION_NO],[UTIL_DT],[AREA],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT]) -- VALUES(@_BUILDING_UTIL_LOG ,@_BUILDING_AREA_ID ,@P_TYPE_CONTRACT ,'R' ,@p_CONTRACT_ID ,@p_VERSION_NO-1 ,CONVERT(DATETIME, GETDATE(), 103) ,@_RENT_AREA ,'1' ,'A' ,@P_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103) ) -- ------**** INSERT INTO CONTRACT_VALUES --------------------------------------------------------------- -- EXEC SYS_CodeMasters_Gen 'CONTRACT_VALUES', @p_VALUE_ID out -- IF @p_VALUE_ID='' OR @p_VALUE_ID IS NULL GOTO ABORT -- INSERT INTO BUD_CONTRACT_VALUES VALUES (@p_VALUE_ID,@p_CONTRACT_ID,@p_VERSION_NO-1,@_BUILDING_AREA_ID,@P_TYPE_CONTRACT,'R',@p_RENT_PRICE*@_RENT_AREA,NULL,@d_NOTES, -- '1','A',@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103),@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103)) -- DELETE @tmp WHERE CONTRACT_DTID = (SELECT TOP(1) CONTRACT_DTID FROM @tmp) --END -----***INSERT VERSION CURRENT------------------------------------------------------------------ DECLARE @l_UTIL_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'BUD_UTIL_LOG', @l_UTIL_ID out IF @l_UTIL_ID='' OR @l_UTIL_ID IS NULL GOTO ABORT -----BAODNQ 17/1/2022: Thêm cột vào bảng BUD_UTIL_LOG DECLARE @p_CUSTOMER_ID VARCHAR(15) = (SELECT CUST_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) DECLARE @p_IS_FIRST_TIME VARCHAR(1) IF(NOT EXISTS (SELECT * FROM BUD_UTIL_LOG WHERE CONTRACT_ID = @p_CONTRACT_ID AND BUILDING_AREA_ID = @d_BUILDING_AREA_ID AND CUSTOMER_ID = @p_CUSTOMER_ID AND IS_FIRST_TIME = 'Y')) BEGIN SET @p_IS_FIRST_TIME = 'Y' END ELSE BEGIN SET @p_IS_FIRST_TIME = 'N' END INSERT INTO BUD_UTIL_LOG([UTIL_ID],[BUILDING_AREA_ID],[UTIL_TYPE],[UTIL_RELEASE],[CONTRACT_ID], [VERSION_NO],[UTIL_DT],[AREA],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID], [APPROVE_DT], [TOTAL_AMT_INIT], [VAT_INIT], [IS_FIRST_TIME], [CUSTOMER_ID]) VALUES(@l_UTIL_ID ,@d_BUILDING_AREA_ID ,@P_TYPE_CONTRACT ,'U' ,@p_CONTRACT_ID ,@p_VERSION_NO , CONVERT(DATETIME, GETDATE(), 103) ,@d_DIEN_TICH_CAN_CHOTHUE ,'1' ,'A' ,@P_CHECKER_ID , CONVERT(DATETIME, GETDATE(), 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103), @d_TOTAL_AMT, @p_VAT_INIT, @p_IS_FIRST_TIME, @p_CUSTOMER_ID) ---*** UPDATE CONTRACT_VALUES------------------------------------------------------- EXEC SYS_CodeMasters_Gen 'CONTRACT_VALUES', @p_VALUE_ID out IF @p_VALUE_ID='' OR @p_VALUE_ID IS NULL GOTO ABORT INSERT INTO BUD_CONTRACT_VALUES VALUES (@p_VALUE_ID,@p_CONTRACT_ID,@p_VERSION_NO,@d_BUILDING_AREA_ID,@P_TYPE_CONTRACT,'U',@d_PRICE*@d_DIEN_TICH_CAN_CHOTHUE,NULL,@d_NOTES, '1','A',@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103),@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103)) ---*** UPDATE DIEN TICH CHO KHACH THUE BEGIN UPDATE BUD_AREA_DT --SET UTILZED_AREA =( -- (SELECT ISNULL(SUM(AREA),0) FROM BUD_UTIL_LOG WHERE BUILDING_AREA_ID=@d_BUILDING_AREA_ID AND UTIL_RELEASE='U' AND UTIL_TYPE=@P_TYPE_CONTRACT) -- - -- (SELECT ISNULL(SUM(AREA),0) FROM BUD_UTIL_LOG WHERE BUILDING_AREA_ID=@d_BUILDING_AREA_ID AND UTIL_RELEASE='R' AND UTIL_TYPE =@P_TYPE_CONTRACT) -- ) SET UTILZED_AREA = UTILZED_AREA + @d_DIEN_TICH_CAN_CHOTHUE WHERE BUILDING_AREA_ID =@d_BUILDING_AREA_ID ---****** UPDATE BUD_CONTRACT_CUST_DT ******************************************--------- UPDATE BUD_CONTRACT_CUST_DT SET RENT_AREA_APP = RENT_AREA_APP + @d_DIEN_TICH_CAN_CHOTHUE, --DIEN_TICH_DA_CHO_THUE = DIEN_TICH_DA_CHO_THUE + @d_DIEN_TICH_CAN_CHOTHUE, AREA_REMAIN = AREA_REMAIN - @d_DIEN_TICH_CAN_CHOTHUE, --DIEN_TICH_CON_LAI_FINAL = DIEN_TICH_CON_LAI_FINAL - @d_DIEN_TICH_CAN_CHOTHUE DIEN_TICH_CON_LAI_FINAL = DIEN_TICH_CON_LAI - @d_DIEN_TICH_CAN_CHOTHUE WHERE CONTRACT_DTID = @d_CONTRACT_DTID END ------------------------------------------------------------------------------------------ IF @@Error <> 0 GOTO ABORT -----BAODNQ 17/1/2022: Insert vào BUD_CONTRACT_LOG khi trưởng dv duyệt thành công FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_CHOTHUE, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc --**** UPDATE BUD_CONTRACT_CUST_MASTER************* SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) SET @p_MONTH= (SELECT MONTHS FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) UPDATE BUD_CONTRACT_CUST_MASTER SET RENT_PRICE=@p_RENT_PRICE *@p_MONTH WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO ---*** UPDATE BUD_MASTER------------------------------- SET @_BUILDING_ID =(SELECT BUILDING_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO =@p_VERSION_NO) UPDATE BUD_MASTER SET UTILZED_AREA = (SELECT ISNULL(SUM(UTILZED_AREA),0) FROM BUD_AREA_DT WHERE BUILD_ID =@_BUILDING_ID) WHERE BUILDING_ID=@_BUILDING_ID ---***UPDATE DIEN TICH CHO THUE TOAN BO TOA NHA --SET @TOATAL_INTERNAL = (SELECT ISNULL(SUM(INTERNAL_AREA),0) FROM BUD_AREA_DT WHERE BUILD_ID =@_BUILDING_ID) --UPDATE BUD_MASTER --SET RENT_TOTAL_AREA = TOTAL_AREA -@TOATAL_INTERNAL --WHERE BUILDING_ID = @_BUILDING_ID UPDATE BUD_CONTRACT_CUST_MASTER SET AUTH_STATUS = 'A', CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103) WHERE VERSION_NO=@p_VERSION_NO AND CONTRACT_ID =@p_CONTRACT_ID ---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'APPROVE', @P_CHECKER_ID, GETDATE(), N'Trưởng đơn vị duyệt hợp đồng khách thuê thành công' , N'Trưởng đơn vị duyệt hợp đồng khách thuê' ) -----BAODNQ 17/1/2022: Insert vào BUD_CONTRACT_LOG khi trưởng dv duyệt thành công --DECLARE @p_CUSTOMER_ID VARCHAR(15), -- @p_TOTAL_AMT DECIMAL(18,0), -- @p_IS_FIRST_TIME VARCHAR(1), -- @p_VAT DECIMAL(18,0) --SET @p_CUSTOMER_ID = (SELECT CUST_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) --SET @p_TOTAL_AMT = (SELECT VAT_AMT FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) --SET @p_VAT = (SELECT VAT FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) --IF(NOT EXISTS (SELECT * FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = @p_CONTRACT_ID AND IS_FIRST_TIME = 'Y')) --BEGIN -- SET @p_IS_FIRST_TIME = 'Y' --END --ELSE --BEGIN -- SET @p_IS_FIRST_TIME = 'N' --END --INSERT INTO BUD_CONTRACT_LOG -- VALUES(@p_CONTRACT_ID, @p_CUSTOMER_ID, @p_TOTAL_AMT, @p_VAT ,@p_IS_FIRST_TIME, -- CONVERT(DATETIME,@P_APPROVE_DT,103)) --IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @p_VERSION_NO VERSION_NO, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_GetRentAreaInfo]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_GetRentAreaInfo] @p_BUIDING_AREA_ID varchar(15) = NULL AS BEGIN -- PAGING -- PAGING BEGIN SELECT B.CONTRACT_ID, B.CONTRACT_NO, E.CONTRACT_NAME, G.BUILDING_NAME, C.FLOOR_NO, D.CUSTOMER_NAME, ISNULL(A.DIEN_TICH_CAN_CHOTHUE,0) AS DIEN_TICH_DA_CHO_THUE, B.INPUT_DT, B.FROM_DT, B.TO_DATE, ISNULL(A.TOTAL_AMT,0) AS THANH_TIEN, B.CREATE_DT, B.MAKER_ID, B.APPROVE_DT, B.CHECKER_ID, F.AUTH_STATUS_NAME -- SELECT END FROM BUD_CONTRACT_CUST_DT A LEFT JOIN BUD_CONTRACT_CUST_MASTER B ON A.CONTRACT_ID = B.CONTRACT_ID LEFT JOIN BUD_AREA_DT C ON A.BUILDING_AREA_ID = C.BUILDING_AREA_ID LEFT JOIN LS_CUSTOMER D ON B.CUST_ID = D.CUSTOMER_ID LEFT JOIN TR_CONTRACT E ON B.TR_CONTRACT_ID = E.CONTRACT_ID LEFT JOIN CM_AUTH_STATUS F ON B.AUTH_STATUS = F.AUTH_STATUS LEFT JOIN BUD_MASTER G ON A.BUILD_ID = G.BUILDING_ID WHERE 1 = 1 AND C.BUILDING_AREA_ID = @p_BUIDING_AREA_ID AND B.AUTH_STATUS = 'A' -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_Ins]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Ins] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(20)= 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_REQ_PAY_TYPE varchar(15) = NULL, @p_REQ_TYPE_CURRENCY nvarchar(50) = NULL, @p_REQ_AMT decimal(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25)= null, @p_CONFIRM_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_PAY_PHASE VARCHAR(15) = NULL, @p_RATE DECIMAL(18,2) = 0, @p_IS_PERIOD VARCHAR(5) = NULL, @p_TYPE_FUNCTION VARCHAR(15) = NULL, @p_AMT_PAY decimal(18, 0) = NULL, @p_XMP_TEMP XML = NULL, @p_XMP_TEMP_2 XML = NULL, @p_XMP_TEMP_METHOD XML = NULL, @p_XMP_TEMP_BUDGET XML = NULL, @p_XMP_TEMP_SERVICE XML = NULL, @p_XMP_TEMP_ATTACH XML = NULL, @p_XMP_TEMP_INVOICE XML = NULL, @p_XMP_TEMP_PO XML = NULL, @p_XMP_TEMP_SCHEDULE XML = NULL, @p_XMP_TEMP_PERIOD XML = NULL, @p_XMP_ADVANCE_DT XML = NULL AS BEGIN TRANSACTION DECLARE @ROLE_KI_NHAY VARCHAR(50) SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC')) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID, @p_REQ_PAY_CODE AS REQ_PAY_CODE, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc RETURN '-1' END DECLARE @VAT decimal(18, 0) =NULL, @TRANS_NO nvarchar(50)=NULL, @TRANS_DT VARCHAR(20)=NULL,@INVOICE_SIGN nvarchar(50) = NULL,@INVOICE_NO_SIGN nvarchar(50)=null, @INVOICE_NO nvarchar(50) = NULL,@INVOICE_DT VARCHAR(20) = NULL,@SELLER nvarchar(500) = NULL,@TAX_NO nvarchar(15) = NULL,@GOODS_NAME nvarchar(500) = NULL, @PRICE decimal(18, 0) = NULL,@TAX decimal(18, 0) = NULL,@NOTES NVARCHAR(MAX) = NULL,@VAT_RATE decimal(18,2), @REF_ID VARCHAR(15),@IS_CLOSED VARCHAR(1), @ACC_NO VARCHAR(25),@ACC_NAME NVARCHAR(250),@ISSUED_BY NVARCHAR(250),@ISSUED_DT VARCHAR(20),@CURRENCY VARCHAR(15)= NULL,@RATE DECIMAL(18,2),@TYPE_TRANSFER VARCHAR(15), @TYPE_VAT VARCHAR(15),@TYPE_FUNC VARCHAR(15),@REASON NVARCHAR(1000),@REF_TYPE VARCHAR(15), @TRN_DATE VARCHAR(15) DECLARE @PAY_ADV_ID VARCHAR(15), @REQ_PAY_ADV_CODE VARCHAR(15) DECLARE @AMT_ADVANCED decimal(18,2),@AMT_DO decimal(18,2), @AMT_REMAIN decimal(18,2),@AMT_PAY decimal(18,2),@AMT_USE decimal(18,2),@AMT_REVERT DECIMAL(18,2), @AMT_ADD DECIMAL(18,2) DECLARE @TOTAL_SCHEDULE_AMT decimal(18,2) =0 DECLARE @INDEX_PO INT =0, @INDEX_AD INT =0, @INDEX_IV INT=0,@INDEX_NS INT =0, @INDEX_INVOICE INT = 0 DECLARE @TYPE_COST VARCHAR(15), @FR_LEVEL INT ,@TO_LEVEL INT DECLARE @hdoc INT, @hDoc2 INT, @hDocMeThod INT, @hdocBudget INT, @hdocService INT, @hdocAttach INT, @hdocInvoice INT, @hdocPO INT, @hdocSchedule INT, @hdocPeriod INT, @hdocRecurring INT EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP; EXEC sp_xml_preparedocument @hDoc2 OUTPUT, @p_XMP_TEMP_2; EXEC sp_xml_preparedocument @hDocMeThod OUTPUT, @p_XMP_TEMP_METHOD; EXEC sp_xml_preparedocument @hdocBudget OUTPUT, @p_XMP_TEMP_BUDGET; EXEC sp_xml_preparedocument @hdocService OUTPUT, @p_XMP_TEMP_SERVICE; EXEC sp_xml_preparedocument @hdocAttach OUTPUT, @p_XMP_TEMP_ATTACH; EXEC sp_xml_preparedocument @hdocInvoice OUTPUT, @p_XMP_TEMP_INVOICE; EXEC sp_xml_preparedocument @hdocPO OUTPUT, @p_XMP_TEMP_PO; EXEC sp_xml_preparedocument @hdocSchedule OUTPUT, @p_XMP_TEMP_SCHEDULE; EXEC sp_xml_preparedocument @hdocPeriod OUTPUT, @p_XMP_TEMP_PERIOD; EXEC sp_xml_preparedocument @hdocRecurring OUTPUT, @p_XMP_ADVANCE_DT; DECLARE XmlData CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocInvoice, '/Root/XmlData', 2) WITH(TRANS_NO nvarchar(50),TRANS_DT VARCHAR(20),INVOICE_SIGN nvarchar(50),INVOICE_NO_SIGN nvarchar(50), INVOICE_NO nvarchar(50),INVOICE_DT VARCHAR(20) ,SELLER nvarchar(500),TAX_NO nvarchar(15),GOODS_NAME nvarchar(500) , PRICE decimal(18,2),TAX decimal(18, 2),VAT decimal(18,2),NOTE NVARCHAR(MAX),VAT_RATE decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),TYPE_VAT VARCHAR(15), TYPE_FUNC VARCHAR(15)) OPEN XmlData; --CURSOR 2 DECLARE XmlDataPay CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc2, '/Root/XmlDataPay', 2) WITH(PAY_ADV_ID nvarchar(50),AMT_ADVANCED decimal(18, 0),AMT_DO decimal(18,2), AMT_REMAIN decimal(18,2),AMT_PAY decimal(18,2),AMT_USE decimal(18,2),AMT_REVERT DECIMAL(18,2), AMT_ADD DECIMAL(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2), TRN_DATE VARCHAR(15)) OPEN XmlDataPay; ------------------------ --Luanlt--- --MethodCursor DECLARE @RECEIVE_ID varchar(15),@RECEIVE_NAME nvarchar(100),@REQ_PAY_REASON nvarchar(MAX),@TOTAL_AMT_METHOD decimal(18,2), @REQ_PAY_TYPE varchar(1),@REQ_PAY_DESC nvarchar(MAX),@REQ_PAY_ENTRIES nvarchar(MAX),@CHECK_IN VARCHAR(15) DECLARE XmlDataMethod CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDocMeThod, 'Root/XmlDataMethod',2) WITH(RECEIVE_ID varchar(15),RECEIVE_NAME nvarchar(100),REQ_PAY_REASON nvarchar(MAX),TOTAL_AMT decimal(18,2), REQ_PAY_TYPE varchar(1),REQ_PAY_DESC nvarchar(MAX),REQ_PAY_ENTRIES nvarchar(MAX),ACC_NO VARCHAR(25), ACC_NAME NVARCHAR(250),ISSUED_BY NVARCHAR(250), ISSUED_DT VARCHAR(20),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),CHECK_IN VARCHAR(15),TYPE_TRANSFER VARCHAR(15)) OPEN XmlDataMethod ---------- --CatCursor DECLARE @REQ_ADV_ID varchar(15),@CAT_NAME nvarchar(100),@TOTAL_AMT_CAT decimal(18,2), @DEPT_ID VARCHAR(15) DECLARE XmlDataCat CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdoc, 'Root/XmlDataCat',2) WITH(REQ_ADV_ID VARCHAR(15),CAT_NAME nvarchar(100),TOTAL_AMT decimal(18,2), DEPT_ID VARCHAR(15),CURRENCY VARCHAR(15), RATE DECIMAL(18,2)) OPEN XmlDataCat --------------- --ServiceCursor DECLARE @REQ_PAY_SERVICE_NAME nvarchar(100),@RECEIVE_ID_SERVICE varchar(15),@RECEIVE_NAME_SERVICE nvarchar(100),@REQ_PAY_REASON_SERVICE nvarchar(MAX), @TOTAL_AMT_SERVICE decimal(18,2), @REQ_PAY_TYPE_SERVICE varchar(1),@REQ_PAY_DESC_SERVICE nvarchar(MAX),@REQ_PAY_ENTRIES_SERVICE nvarchar(MAX),@DEPT_ID_SRV VARCHAR(15) DECLARE XmlDataService CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocService, 'Root/XmlDataService',2) WITH(REQ_PAY_SERVICE_NAME nvarchar(100),RECEIVE_ID_SERVICE varchar(15),RECEIVE_NAME_SERVICE nvarchar(100),REQ_PAY_REASON_SERVICE nvarchar(MAX), TOTAL_AMT_SERVICE decimal(18,2),REQ_PAY_TYPE_SERVICE varchar(1),REQ_PAY_DESC_SERVICE nvarchar(MAX),REQ_PAY_ENTRIES_SERVICE nvarchar(MAX), DEPT_ID VARCHAR(15),CURRENCY VARCHAR(15), RATE DECIMAL(18,2)) OPEN XmlDataService --------------- --ScheduleCursor DECLARE @PO_ID varchar(15),@TERM_PAY varchar(15),@AMT_PAY_SCHEDULE decimal(18,2),@REQ_ADV_ID_SCHE VARCHAR(15),@AMT_ADVANCE_SCHEDULE decimal(18,2), @AMT_REMAIN_SCHEDULE decimal(18,2),@REQ_AD_DT varchar(20),@PROCESS varchar(15),@PAY_ID VARCHAR(15),@AMT_PAY_REAL DECIMAL(18,2), @AMT_PAY_DO DECIMAL(18,2) DECLARE XmlDataSchedule CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocSchedule, 'Root/XmlDataSchedule',2) WITH(PO_ID varchar(15),TERM_PAY varchar(15),AMT_PAY_SCHEDULE decimal(18,2),REQ_ADV_ID varchar(15),AMT_ADVANCE_SCHEDULE decimal(18,2), AMT_REMAIN_SCHEDULE decimal(18,2),REQ_AD_DT varchar(20),PROCESS varchar(15), PAY_ID VARCHAR(15),REF_ID VARCHAR(15),REQ_PAY_DESC NVARCHAR(250), REQ_PAY_ENTRIES NVARCHAR(250),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),AMT_PAY_DO DECIMAL(18,2),AMT_PAY_REAL DECIMAL(18,2)) OPEN XmlDataSchedule --END luanlt--- -- DS HANG MUC NGAN SACH DECLARE @TRADE_ID varchar(15),@GD_ID varchar(15),@AMT_APP decimal(18,2),@AMT_EXE decimal(18,2), @AMT_REMAIN_GD decimal(18,2), @MONTH_RATE VARCHAR(4), @YEAR_RATE VARCHAR(4) DECLARE XmlDataGood CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocBudget, 'Root/XmlDataGood',2) WITH(TRADE_ID varchar(15),GD_ID varchar(15),AMT_APP decimal(18,2),AMT_DO decimal(18,2),AMT_EXE decimal(18,2), AMT_REMAIN decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),REASON NVARCHAR(1000),TYPE_COST VARCHAR(15), FR_LEVEL INT ,TO_LEVEL INT, MONTH_RATE VARCHAR(4), YEAR_RATE VARCHAR(4)) OPEN XmlDataGood ---- END CURSOR --CatCursor DECLARE @ATTACH_ID varchar(15),@CON_ID varchar(100),@CONT_CODE VARCHAR(50), @CON_NOTES VARCHAR(1000), @CON_DESC NVARCHAR(1000),@CON_TYPE VARCHAR(15),@AMT_ATT DECIMAL(18,2),@REF_DT VARCHAR(20), @LICENSE_DT VARCHAR(15) DECLARE XmlAttach CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocAttach, 'Root/XmlAttach',2) WITH(ATTACH_ID varchar(15),CON_ID varchar(100),CONT_CODE VARCHAR(50), CON_NOTES NVARCHAR(1000), CON_DESC NVARCHAR(1000),CON_TYPE VARCHAR(15),AMT_ATT DECIMAL(18,2),REF_DT VARCHAR(20), LICENSE_DT VARCHAR(15)) OPEN XmlAttach --THIEUVQ 281119--- EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @p_REQ_PAY_CODE out --END-- DECLARE @INDEX INT =0 IF @p_REQ_PAY_CODE IS NULL OR @p_REQ_PAY_CODE ='' BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Mã số phiếu không được để trống' ErrorDesc RETURN '-1' END --IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @p_REQ_PAY_CODE ) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Số phiếu đề nghị thanh toán đã tồn tại trong hệ thống' ErrorDesc -- RETURN '-1' --END EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @p_REQ_PAY_ID out IF @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL GOTO ABORT INSERT INTO [dbo].[TR_REQ_PAYMENT] ([REQ_PAY_ID] ,[REQ_PAY_CODE],[REQ_DT] ,[BRANCH_ID] ,[DEP_ID] ,[REQ_REASON] ,[REQ_TYPE],REQ_ENTRIES, [REQ_DESCRIPTION] ,REF_ID, RECEIVER_PO ,[REQ_PAY_TYPE] ,[REQ_TYPE_CURRENCY] ,[REQ_AMT] ,[REQ_TEMP_AMT] ,[MAKER_ID] ,[CREATE_DT] ,[EDITOR_ID] ,[AUTH_STATUS] ,[CHECKER_ID] ,[APPROVE_DT] ,[CREATE_DT_KT] ,[MAKER_ID_KT] ,[AUTH_STATUS_KT] ,[CHECKER_ID_KT] ,[APPROVE_DT_KT] ,[CONFIRM_NOTE] ,[BRANCH_CREATE] ,[NOTES],RECORD_STATUS,TRANSFER_MAKER,TRANSFER_DT,TRASFER_USER_RECIVE,PROCESS, PAY_PHASE,IS_PERIOD, RATE, AMT_PAY) VALUES (@p_REQ_PAY_ID, @p_REQ_PAY_CODE,CONVERT(DATE,GETDATE(),103), @p_BRANCH_ID, @p_DEP_ID, @p_REQ_REASON, @p_REQ_TYPE, @P_REQ_ENTRIES, @p_REQ_DESCRIPTION, @p_REF_ID, @p_RECEIVER_PO, @p_REQ_PAY_TYPE, @p_REQ_TYPE_CURRENCY, @p_REQ_AMT, @p_REQ_TEMP_AMT, @p_MAKER_ID, GETDATE(), @p_EDITOR_ID, 'E', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @p_BRANCH_CREATE, @p_NOTES,@p_RECORD_STATUS, @p_TRANSFER_MAKER, NULL, @p_TRASFER_USER_RECIVE, NULL,@p_PAY_PHASE,ISNULL(@p_IS_PERIOD,'N'), @p_RATE, @p_AMT_PAY) IF @@Error <> 0 GOTO ABORT --- INSERT LICH THANH TOAN --INSERT FROM MethodCursor SET @INDEX = 0 FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE, @REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN SET @INDEX_INVOICE = @INDEX_INVOICE+1 ----------------------- begin validate ------------------------ IF(@ACC_NO IS NULL OR @ACC_NO = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_INVOICE)+N': số tài khoản '+ N' không được để trống' ErrorDesc RETURN '-1' END IF(@REQ_PAY_TYPE = '1' AND (@ISSUED_DT = '' OR @ISSUED_DT IS NULL)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_INVOICE)+N': Ngày cấp CMND '+ N' không được để trống' ErrorDesc RETURN '-1' END ----------------------- end validate -------------------------- END IF(@REQ_PAY_TYPE<>'1') BEGIN SET @ISSUED_DT = NULL END --IF(@p_REQ_TYPE<>'I') --BEGIN --SET @TYPE_TRANSFER = '' --END IF(@TYPE_TRANSFER IS NULL OR @TYPE_TRANSFER ='') BEGIN SET @TYPE_TRANSFER ='A' END SET @INDEX = @INDEX +1 DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT; IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_METHOD VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_ID,@RECEIVE_ID,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'',@p_MAKER_ID,GETDATE(),@ACC_NO, @ACC_NAME,@ISSUED_BY,CONVERT(DATE,@ISSUED_DT,103),@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC, @REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER END CLOSE XmlDataMethod; DEALLOCATE XmlDataMethod; ------------------------- -- INSERT CHUNG TU DINH KEM FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC, @CON_TYPE,@AMT_ATT,@REF_DT, @LICENSE_DT WHILE @@fetch_status=0 BEGIN IF (@REF_DT='') BEGIN SET @REF_DT = NULL END EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ATTACH', @ATTACH_ID OUT; IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_ATTACH(ATTACH_ID,REQ_PAY_ID,REF_ID,REF_CODE,NOTES,[DESCRIPTION],[TYPE],AMT,REF_DT, LICENSE_DT) VALUES(@ATTACH_ID,@p_REQ_PAY_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT, CONVERT(DATE, @REF_DT,103), CONVERT(DATE, @LICENSE_DT,103)) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT, @REF_DT, @LICENSE_DT END CLOSE XmlAttach; DEALLOCATE XmlAttach; ----END --Insert XmlData FETCH NEXT FROM XmlData INTO @TRANS_NO , @TRANS_DT ,@INVOICE_SIGN ,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER , @TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@TYPE_VAT,@TYPE_FUNC WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN SET @INDEX_IV = @INDEX_IV+1 IF(LEN(@INVOICE_NO) < 1) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Hóa đơn đính kèm, dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' không được để trống' ErrorDesc RETURN '-1' END IF(LEN(@INVOICE_NO) > 8) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Hóa đơn đính kèm, dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' phải bé hơn 9 ký tự' ErrorDesc RETURN '-1' END --IF(EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND --INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND AUTH_STATUS <>'A')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc -- RETURN '-1' --END IF(EXISTS( SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS <> 'E') )) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END IF(@GOODS_NAME IS NULL OR @GOODS_NAME ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Tên mặt hàng trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- TÊN NGƯỜI BÀN IF(@SELLER IS NULL OR @SELLER ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Người bán trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- MÃ SỐ THUẾ -- TÊN NGƯỜI BÀN IF(@TAX_NO IS NULL OR @TAX_NO ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Mã số thuế trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- NGÀY HÓA ĐƠN IF(@INVOICE_DT IS NULL OR @INVOICE_DT ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Ngày hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- SỐ HÓA ĐƠN IF(@INVOICE_NO IS NULL OR @INVOICE_NO ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- KÍ HIỆU HÓA ĐƠN IF(@INVOICE_NO_SIGN IS NULL OR @INVOICE_NO_SIGN ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Kí hiệu số hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- KÍ HIỆU HÓA ĐƠN IF(@INVOICE_SIGN IS NULL OR @INVOICE_SIGN ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Kí hiệu mẫu hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- KÍ HIỆU HÓA ĐƠN IF(@PRICE IS NULL OR @PRICE =0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số tiền hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END END SET @INDEX = @INDEX +1 DECLARE @p_REQ_INV_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_INVOICE', @p_REQ_INV_ID OUT; IF @p_REQ_INV_ID='' OR @p_REQ_INV_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_INVOICE(REQ_PAYDT_ID,REQ_PAY_ID,TRANS_NO,TRANS_DT,INVOICE_SIGN,INVOICE_NO,INVOICE_DT,SELLER,TAX_NO,GOODS_NAME,PRICE,TAX,VAT,NOTE, MAKER_ID,CREATE_DT,EDITOR_ID,AUTH_STATUS,CHECKER_ID,APPROVE_DT, CREATE_DT_KT,MAKER_ID_KT,AUTH_STATUS_KT,CHECKER_ID_KT,APPROVE_DT_KT,RECORD_STATUS,INVOICE_NO_SIGN,VAT_RATE,CURRENCY,RATE,PRICE_KT,VAT_KT,TOTAL_AMT_KT,TYPE_VAT,TYPE_FUNC) VALUES (@p_REQ_INV_ID,@p_REQ_PAY_ID , @TRANS_NO , NULL ,@INVOICE_SIGN ,@INVOICE_NO ,CONVERT(DATE,@INVOICE_DT,103) ,UPPER(([dbo].[RemoveVietNamese](@SELLER))) ,@TAX_NO ,UPPER(([dbo].[RemoveVietNamese](@GOODS_NAME))) ,@PRICE ,@TAX,@VAT,@NOTES, @p_MAKER_ID,GETDATE(),NULL,'U',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'1',@INVOICE_NO_SIGN,@VAT_RATE,@CURRENCY,@RATE,@PRICE,@VAT,@PRICE+@VAT,@TYPE_VAT,@TYPE_FUNC) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlData INTO @TRANS_NO , @TRANS_DT,@INVOICE_SIGN,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@TYPE_VAT,@TYPE_FUNC END; CLOSE XmlData; DEALLOCATE XmlData; --- INSERT CAC HANG MUC NGAN SACH FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE WHILE @@fetch_status=0 BEGIN --- KIEM TRA NEU NGAN SACH SU DUNG THUC THE LON HON NGAN SACH CON LAI SET @INDEX_NS = @INDEX_NS +1 --KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(ISNULL(@AMT_EXE,0) =0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Số tiền sử dụng thực tế phải lớn hơn không.' ErrorDesc RETURN '-1' END IF((@AMT_EXE > @AMT_REMAIN_GD) AND ((SELECT GD_TYPE_ID FROM CM_GOODS WHERE GD_ID =@GD_ID) ='NS')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc RETURN '-1' END END IF(NOT EXISTS(SELECT * FROM PL_IMPORT_DT WHERE TRADE_ID =@TRADE_ID AND IMP_YEAR =YEAR(GETDATE())) AND NOT EXISTS (SELECT * FROM PL_MASTER WHERE PLAN_ID =(SELECT TOP 1 PLAN_ID FROM PL_TRADEDETAIL WHERE TRADE_ID =@TRADE_ID) AND YEAR =YEAR(GETDATE()))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng phải chọn lại ngân sách của năm hiện tại. Không được phép sử dụng ngân sách năm cũ.' ErrorDesc RETURN '-1' END DECLARE @p_BUDGET_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT; IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID,GD_ID,REQ_PAY_ID,TRADE_ID,AMT_APP,AMT_DO,AMT_EXE,AMT_REMAIN,MAKER_ID,CREATE_DT,CURRENCY,RATE,REASON,TYPE_COST , FR_LEVEL ,TO_LEVEL, MONTH_RATE, YEAR_RATE ) VALUES (@p_BUDGET_ID,@GD_ID,@p_REQ_PAY_ID,@TRADE_ID,@AMT_APP,@AMT_DO,@AMT_EXE,@AMT_REMAIN_GD,@p_MAKER_ID, GETDATE(),@CURRENCY,@RATE,@REASON,@TYPE_COST , @FR_LEVEL ,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE END; CLOSE XmlDataGood; DEALLOCATE XmlDataGood; --- END INSERT NGAN SACH --------------------------- --Luanlt-- ------------------------ IF(@p_REQ_TYPE = 'I') BEGIN DECLARE @SUM_TTCT_LINK DECIMAL(18,0), @SUM_TT_CT DECIMAL(18,0), @SUM_KUY_KE_TT DECIMAL(18,0),@SUM_PYCMS_LINK DECIMAL(18,0), @PYCMS_CODE_LIST VARCHAR(250), @PDNTT_CODE_LIST VARCHAR(250) FETCH NEXT FROM XmlDataPay INTO @PAY_ADV_ID, @AMT_ADVANCED ,@AMT_DO,@AMT_REMAIN,@AMT_PAY ,@AMT_USE ,@AMT_REVERT,@AMT_ADD,@CURRENCY,@RATE, @TRN_DATE WHILE @@fetch_status=0 BEGIN SET @REQ_PAY_ADV_CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PAY_ADV_ID) SET @INDEX_AD = @INDEX_AD +1 SET @SUM_PYCMS_LINK =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@RECEIVE_ID_SERVICE AND AUTH_STATUS IN ('U','A')),0) SET @SUM_TT_CT =(SELECT ISNULL(TOTAL_AMT,0) FROM PL_REQUEST_DOC WHERE REQ_ID =@RECEIVE_ID_SERVICE) SET @PYCMS_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE PL_REQ_ID =@RECEIVE_ID_SERVICE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) SET @PDNTT_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@RECEIVE_ID_SERVICE) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) --IF(@RECEIVE_ID_SERVICE IS NOT NULL AND @RECEIVE_ID_SERVICE <> '') --BEGIN -- SET @SUM_PYCMS_LINK = @SUM_PYCMS_LINK +@TOTAL_AMT_SERVICE --END --SET @SUM_KUY_KE_TT = @SUM_KUY_KE_TT + @TOTAL_AMT_SERVICE SET @SUM_TTCT_LINK =(SELECT SUM(TOTAL_AMT*ISNULL(RATE,1)) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT) AND REQ_PAY_ID <> @p_REQ_PAY_ID AND EMP_ID =@RECEIVE_ID_SERVICE) IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(((ISNULL(@SUM_TTCT_LINK,0) +ISNULL(@SUM_PYCMS_LINK,0) + ISNULL(@TOTAL_AMT_SERVICE,0)) > ISNULL(@SUM_TT_CT,0)) AND @RECEIVE_ID_SERVICE IS NOT NULL AND @RECEIVE_ID_SERVICE <> '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX)+N': Thông tin chi tiết về hạn mức sử dụng của tờ trình số: '+(SELECT TOP 1 ISNULL(REQ_CODE,'') FROM PL_REQUEST_DOC WHERE REQ_ID =@RECEIVE_ID_SERVICE)+N' như sau:' + CHAR(10) + N'* Số tiền các phiếu yêu cầu mua sắm số:'+ISNULL(@PYCMS_CODE_LIST,'')+N' đã sử dụng: '+FORMAT(ISNULL(@SUM_PYCMS_LINK,0),'#,#', 'vi-VN') +' VND'+ + CHAR(10) +N'* Số tiền ở các phiếu thanh toán số: '+ISNULL(@PDNTT_CODE_LIST,'')+N' đã sử dụng: '+ FORMAT(ISNULL(@SUM_TTCT_LINK,0),'#,#', 'vi-VN') +' VND'+ + CHAR(10) +N'* Số tiền còn lại được phép thanh toán là: '+FORMAT(ISNULL(@SUM_TT_CT,0) -ISNULL(@SUM_TTCT_LINK,0) -ISNULL(@SUM_PYCMS_LINK,0),'#,#', 'vi-VN') +' VND' ErrorDesc RETURN '-1' END END -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN -- KIEM TRA XEM CO PHIEU NAO DANG DUOC THANH TOAN HOAN TAM UNG MA CHUA DUYET HAY CHUA --IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_DT WHERE (PAY_ADV_ID =@PAY_ADV_ID AND (AUTH_STATUS_KT <>'A' OR AUTH_STATUS_KT IS NULL)) AND PAY_ID <>@p_REQ_PAY_ID)) IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_DT WHERE (PAY_ADV_ID =@PAY_ADV_ID AND (AUTH_STATUS ='A' AND ISNULL(AUTH_STATUS_KT,'') <> 'A')) AND PAY_ID <>@p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_AD)+ N': Phiếu tạm ứng số '+@REQ_PAY_ADV_CODE+ N' đang được thanh toán hoàn tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU SO TIEN DE NGHI HOAN TAM ƯNG LON HON SO TIEN CON LAI CAN PHAI TAM UNG IF(@AMT_REVERT>(@AMT_REMAIN -@AMT_USE) AND @AMT_REVERT >0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_AD)+ N': Số tiền hoàn ứng không được vượt quá '+FORMAT((@AMT_REMAIN -@AMT_USE),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END DECLARE @p_REQ_PAYDT_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT_DT', @p_REQ_PAYDT_ID OUT; IF @p_REQ_PAYDT_ID='' OR @p_REQ_PAYDT_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAYMENT_DT VALUES (@p_REQ_PAYDT_ID,@PAY_ADV_ID,@p_REQ_PAY_ID , ISNULL(@AMT_ADVANCED,0) ,ISNULL(@AMT_DO,0),ISNULL(@AMT_REMAIN,0), ISNULL(@AMT_PAY,0) ,ISNULL(@AMT_USE,0) ,ISNULL(@AMT_REVERT,0), ISNULL(@AMT_ADD,0), CONVERT(DATE,@TRN_DATE,103) ,@p_MAKER_ID ,GETDATE() ,NULL ,NULL,'U' ,NULL ,NULL ,NULL ,NULL,NULL,@CURRENCY,@RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPay INTO @PAY_ADV_ID, @AMT_ADVANCED ,@AMT_DO,@AMT_REMAIN,@AMT_PAY ,@AMT_USE ,@AMT_REVERT,@AMT_ADD,@CURRENCY,@RATE, @TRN_DATE END CLOSE XmlDataPay; DEALLOCATE XmlDataPay; --INSERT FROM CatCursor SET @INDEX = 0 FETCH NEXT FROM XmlDataCat INTO @REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@CURRENCY,@RATE WHILE @@fetch_status=0 BEGIN SET @INDEX = @INDEX +1 DECLARE @p_REQ_PAY_CAT_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_CAT', @p_REQ_PAY_CAT_ID OUT; IF @p_REQ_PAY_CAT_ID='' OR @p_REQ_PAY_CAT_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_CAT VALUES (@p_REQ_PAY_CAT_ID,@p_REQ_PAY_ID,@REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@p_MAKER_ID,GETDATE(),@CURRENCY,@RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataCat INTO @REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@CURRENCY,@RATE END CLOSE XmlDataCat; DEALLOCATE XmlDataCat; END IF(@p_REQ_TYPE = 'D' OR @p_REQ_TYPE='I') BEGIN ---------------------------- --INSERT FROM ServiceCursor SET @INDEX = 0 FETCH NEXT FROM XmlDataService INTO @REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@RECEIVE_NAME_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE, @REQ_PAY_TYPE_SERVICE,@REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@DEPT_ID_SRV,@CURRENCY,@RATE WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN SET @INDEX = @INDEX +1 --------------- begin validate-------------- --IF(@p_TYPE_FUNCTION ='SEND' AND @p_REQ_TYPE ='D') --BEGIN IF(@DEPT_ID_SRV IS NULL OR @DEPT_ID_SRV ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Phòng ban chịu chi phí không được để trống' ErrorDesc RETURN '-1' END IF(@TOTAL_AMT_SERVICE IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Số tiền thanh toán không được để trống' ErrorDesc RETURN '-1' END IF(@TOTAL_AMT_SERVICE < 0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Số tiền thanh toán không thể nhỏ hơn 0' ErrorDesc RETURN '-1' END --END --------------- end validate ---------------- END DECLARE @p_REQ_PAY_SERVICE_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SERVICE', @p_REQ_PAY_SERVICE_ID OUT; IF @p_REQ_PAY_SERVICE_ID='' OR @p_REQ_PAY_SERVICE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_SERVICE(SERVICE_ID,REQ_PAY_ID,[SERVICE_NAME],EMP_ID,REQ_PAY_REASON,TOTAL_AMT,REQ_PAY_TYPE,REQ_PAY_DESC,REQ_PAY_ENTRIES,MAKER_ID,CREATE_DT,DEPT_ID,CURRENCY,RATE) VALUES (@p_REQ_PAY_SERVICE_ID,@p_REQ_PAY_ID,@REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE, @REQ_PAY_TYPE_SERVICE,@REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@p_MAKER_ID,GETDATE(),@DEPT_ID_SRV,@CURRENCY,@RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataService INTO @REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@RECEIVE_NAME_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE,@REQ_PAY_TYPE_SERVICE, @REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@DEPT_ID_SRV,@CURRENCY,@RATE END CLOSE XmlDataService; DEALLOCATE XmlDataService; END -- INSERT PO/ HỢP ĐỒNG IF((@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) OR @p_REQ_TYPE ='I') BEGIN DECLARE XmlDataPO CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocPO, '/Root/XmlDataPO', 2) WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataPO; SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN SET @INDEX_PO = @INDEX_PO +1 ---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO/ hợp đồng số '+(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc -- RETURN '-1' --END ---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO/ hợp đồng số '+(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc -- RETURN '-1' --END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END --- KIEM TRA XEM PO NAY DUOC THANH TOAN HAY CHUA IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED ='Y' ))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán xong. Vui lòng chọn PO khác để thanh toán hoặc xóa bản nháp này!' ErrorDesc RETURN '-1' END END DECLARE @REQ_PAYDTID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID OUT; IF @REQ_PAYDTID='' OR @REQ_PAYDTID IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataPO; DEALLOCATE XmlDataPO; --- CUSOR DANH SACH LICH THANH TOAN PO - HD ---------------------------- --INSERT FROM ScheduleCursor SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_REMAIN_SCHEDULE,@REQ_AD_DT, @PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_DO,@AMT_PAY_REAL WHILE @@fetch_status=0 BEGIN --IF(@AMT_REMAIN_SCHEDULE =0) --BEGIN -- SET @PROCESS ='3' --END --IF(@PROCESS <>'2') --BEGIN -- SET @TOTAL_SCHEDULE_AMT = @TOTAL_SCHEDULE_AMT +@AMT_REMAIN_SCHEDULE --END ---- SET @INDEX_PO = @INDEX_PO +1 --IF(@p_TYPE_FUNCTION ='SEND') --BEGIN -- IF(ISNULL(@AMT_PAY_REAL,0) >ISNULL(@AMT_REMAIN_SCHEDULE,1)) -- BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Số tiền thanh toán không được vượt quá số tiền còn lại của kì thanh toán' ErrorDesc -- RETURN '-1' -- END --END SET @TOTAL_SCHEDULE_AMT =@TOTAL_SCHEDULE_AMT+(@AMT_PAY_SCHEDULE -@AMT_ADVANCE_SCHEDULE-@AMT_PAY_DO) DECLARE @p_REQ_PAY_SCHEDULE_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SCHEDULE', @p_REQ_PAY_SCHEDULE_ID OUT; IF @p_REQ_PAY_SCHEDULE_ID='' OR @p_REQ_PAY_SCHEDULE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_SCHEDULE (SCHEDULE_ID,REQ_PAY_ID,PAY_ID,AMT_PAY,PAY_PHASE,REQ_ADV_ID,AMT_ADVANCE,AMT_PAY_DO,AMT_REMAIN,REQ_PAY_DT,REQ_AD_DT,PROCESS,MAKER_ID, CREATE_DT,AUTH_STATUS_KT,PAYMENT_STATUS,TRN_TYPE,REF_ID,REQ_PAY_DESC,REQ_PAY_ENTRIES,CURRENCY,RATE, AMT_PAY_REAL) VALUES (@p_REQ_PAY_SCHEDULE_ID,@p_REQ_PAY_ID,@PAY_ID,@AMT_PAY_SCHEDULE,@TERM_PAY,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE, --IIF(@PROCESS<>'2',(@AMT_PAY_SCHEDULE-@AMT_ADVANCE_SCHEDULE),0), @AMT_PAY_DO, @AMT_REMAIN_SCHEDULE,GETDATE(),CONVERT(DATETIME,@REQ_AD_DT,103),@PROCESS,@p_MAKER_ID,GETDATE(),'U','','PAY', @REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_REMAIN_SCHEDULE,@REQ_AD_DT, @PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_DO,@AMT_PAY_REAL END CLOSE XmlDataSchedule; DEALLOCATE XmlDataSchedule; -- VALIDATE DANH SACH HOAN UNG -- LUCTV BO SUNG 19-11-2019. CHUA BIET CO VALIDATE HAY KHONG NEN VALIDATE DUOI STORE --IF(@INDEX_PO =0) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Danh sách các khoản hoàn tạm ứng không được phép trống' ErrorDesc -- RETURN '-1' --END -- VALIDATE SO TIEN --IF(@p_REQ_AMT >= @TOTAL_SCHEDULE_AMT) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END ---- END -- THANH TOAN HOP DONG DINH KY IF((@p_REQ_TYPE = 'P' AND @p_IS_PERIOD='Y') OR @p_REQ_TYPE ='I') BEGIN /*DECLARE XmlDataPO CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocPO, '/Root/XmlDataPO', 2) WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataPO; SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN SET @INDEX_PO = @INDEX_PO +1 DECLARE @REQ_PAYDTID_C VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_C OUT; IF @REQ_PAYDTID_C='' OR @REQ_PAYDTID_C IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID_C,@p_REQ_PAY_ID,@REF_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataPO; DEALLOCATE XmlDataPO; --- CUSOR DANH SACH LICH THANH TOAN PO - HD */ ---------------------------- -- INSERT PRIOD DECLARE @INDEX_PERIOD INT, @CONTRACT_PERIOD_ID VARCHAR(15),@IS_PERIOD_CLOSED VARCHAR(1) DECLARE XmlDataRecurring CURSOR FOR SELECT * FROM OPENXML(@hdocRecurring, '/Root/XmlDataRecurring', 2) WITH(CONTRACT_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataRecurring; SET @INDEX_PERIOD = 0 FETCH NEXT FROM XmlDataRecurring INTO @CONTRACT_PERIOD_ID,@IS_PERIOD_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT; IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES(@REQ_PAYDTID_PERIOD,@p_REQ_PAY_ID,@CONTRACT_PERIOD_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_PERIOD_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataRecurring INTO @CONTRACT_PERIOD_ID,@IS_PERIOD_CLOSED,@REF_TYPE END CLOSE XmlDataRecurring; DEALLOCATE XmlDataRecurring; --INSERT DETAIL PERIOD DECLARE XmlDataPeriod CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocPeriod, '/Root/XmlDataPeriod', 2) WITH(CONTRACT_ID varchar(15),PAY_DT_REAL VARCHAR(20),PAY_TYPE VARCHAR(5), OLD_INDEX DECIMAL(18,0),NEW_INDEX DECIMAL(18,0),AMT_PAY DECIMAL(18,2),CURRENCY VARCHAR(5), RATE DECIMAL(18,0), FROM_DATE VARCHAR(20), TO_DATE VARCHAR(20),AD_PAY_ID VARCHAR(15), PROCESS VARCHAR(5), PARENT_ID VARCHAR(15), PAY_PHASE NVARCHAR(250),REASON NVARCHAR(2000),TYPE_COST VARCHAR(15), FR_LEVEL INT,TO_LEVEL INT) OPEN XmlDataPeriod; DECLARE @CONTRACT_ID varchar(15),@PAY_DT_REAL VARCHAR(20),@PAY_TYPE VARCHAR(5), @OLD_INDEX DECIMAL(18,0),@NEW_INDEX DECIMAL(18,0),@AMT_PAY_PERIOD DECIMAL(18,2),@FROM_DATE VARCHAR(20),@TO_DATE VARCHAR(20),@AD_PAY_ID VARCHAR(15), @_PROCESS VARCHAR(5),@PARENT_ID VARCHAR(15),@PAY_PHASE NVARCHAR(250),@REASON_TTDK NVARCHAR(2000) FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE,@TO_DATE,@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK,@TYPE_COST, @FR_LEVEL ,@TO_LEVEL WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(@NEW_INDEX <=@OLD_INDEX AND (@NEW_INDEX >0 AND @OLD_INDEX >0) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Chỉ số mới phải lớn hơn chỉ số cũ' ErrorDesc RETURN '-1' END IF(@PROCESS ='2' AND (@AD_PAY_ID IS NULL OR @AD_PAY_ID ='')) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result,'' REQ_PAY_ID,N'Lưới chi tiết thanh toán định kì: Tại hình thức thanh toán Hoàn ứng, số phiếu tạm ứng không được phép để trống' ErrorDesc RETURN '-1' END IF( @PAY_ADV_ID IS NOT NULL AND @PAY_ADV_ID <> '' AND (SELECT ISNULL(REQ_AMT,0.00) - ISNULL(PAY_AMT,0.00) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PAY_ADV_ID) <=0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Bạn không được phép hoàn tạm ứng cho phiếu đã được hoàn ứng xong! Vui lòng gỡ khỏi danh sách kì thanh toán & hoàn ứng' ErrorDesc RETURN '-1' END -- NEU LÀ DINH KI THI HD PHAI KHAC NULL IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Cột Số hợp đồng không được phép để trống' ErrorDesc RETURN '-1' END -- KIEM TRA CHI TIET HOP DONG PHAI NAM TRONG DANH SACH CAC HOP DONG IF(@CONTRACT_ID IS NOT NULL AND @CONTRACT_ID <> '' ) BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REF_ID =@CONTRACT_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì - Số hợp đồng phải nằm trong danh sách các hợp đồng được chọn trên lưới Hợp đồng định kì' ErrorDesc RETURN '-1' END END END IF(@PROCESS ='2' AND (@AD_PAY_ID IS NULL OR @AD_PAY_ID ='')) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result,'' REQ_PAY_ID,N'Lưới chi tiết thanh toán định kì: Tại hình thức thanh toán Hoàn ứng, số phiếu tạm ứng không được phép để trống' ErrorDesc RETURN '-1' END IF( @PAY_ADV_ID IS NOT NULL AND @PAY_ADV_ID <> '' AND (SELECT ISNULL(REQ_AMT,0.00) - ISNULL(PAY_AMT,0.00) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PAY_ADV_ID) <=0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Bạn không được phép hoàn tạm ứng cho phiếu đã được hoàn ứng xong! Vui lòng gỡ khỏi danh sách kì thanh toán & hoàn ứng' ErrorDesc RETURN '-1' END DECLARE @PERIOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT; IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID,REQ_PAY_ID,PAY_TYPE, CONTRACT_ID,PAY_DT_REAL,OLD_INDEX,NEW_INDEX,AMT_PAY,AUTH_STATUS_KT,CURRENCY,RATE,FROM_DATE, TO_DATE,AD_PAY_ID,PROCESS,PARENT_ID,PAY_PHASE,REASON,TYPE_COST, FR_LEVEL ,TO_LEVEL) VALUES (@PERIOD_ID,@p_REQ_PAY_ID,'PAY',@CONTRACT_ID,CONVERT(DATE,@PAY_DT_REAL,103),@OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,'U',@CURRENCY, @RATE,CONVERT(DATE,@FROM_DATE,103), CONVERT(DATE,@TO_DATE,103),@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK,@TYPE_COST, @FR_LEVEL ,@TO_LEVEL) -- LUCTV 16 03 2021 BO SUNG BANG LOG DE FIX LOI HOÀN TẠM ỨNG ĐỊNH KỲ NHƯNG SỐ PHIẾU BỊ TRỐNG INSERT INTO TR_REQ_PAY_PER_LOG VALUES (@p_REQ_PAY_ID, @PAY_ADV_ID) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE,@TO_DATE,@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK,@TYPE_COST, @FR_LEVEL ,@TO_LEVEL END CLOSE XmlDataPeriod; DEALLOCATE XmlDataPeriod ; END --IF(1=1) --GOTO ABORT COMMIT TRANSACTION IF(@p_TYPE_FUNCTION ='SEND') -- KIEM TRA NEU 2 BIEN XML KHAC NULL TUC LA DANG TRONG QUA TRINH LUU NHAP BEGIN DECLARE @BRANCH_TYPE_CR VARCHAR(15) SET @BRANCH_TYPE_CR =(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_CREATE) DECLARE @SUM_THANH_TOAN DECIMAL(18,0) =0, @SUM_PHUONG_THUC DECIMAL(18,0) =0, @SUM_NGAN_SACH DECIMAL(18,2) =0, @SUM_USE_REAL DECIMAL(18,2), @SUM_SERVICE DECIMAL(18,0), @SUM_SCHEDULE DECIMAL(18,0), @SUM_PERIOD DECIMAL(18,0), @SUM_PAY_BACK DECIMAL(18,0) =0, @SUM_ADD DECIMAL(18,0) SET @SUM_THANH_TOAN =(SELECT ISNULL(SUM(REQ_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_PHUONG_THUC =ABS((SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND (TYPE_TRANSFER ='A' OR TYPE_TRANSFER IS NULL OR TYPE_TRANSFER ='')) - (SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='R')) SET @SUM_NGAN_SACH =(SELECT ISNULL(SUM(AMT_EXE * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_SERVICE =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_PERIOD =(SELECT ISNULL(SUM(AMT_PAY * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_SCHEDULE =(SELECT ISNULL(SUM(AMT_PAY_REAL * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(@p_REQ_TYPE ='I') BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_USE*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID) SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_REVERT*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID) SET @SUM_ADD =(SELECT ISNULL(SUM(AMT_ADD*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID) SET @SUM_PHUONG_THUC =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='A') - (SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='R') END IF(@p_REQ_TYPE ='P' AND @p_IS_PERIOD ='Y' AND @p_IS_PERIOD <>'' AND @p_IS_PERIOD IS NOT NULL) BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_PAY*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) --SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_PAY*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND PROCESS <> '0') END IF(@p_REQ_TYPE ='P' AND (@p_IS_PERIOD ='N' OR (@p_IS_PERIOD ='' OR @p_IS_PERIOD IS NULL))) BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_PAY_REAL*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_ADVANCE*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) END IF(@p_REQ_TYPE ='D') BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(TOTAL_AMT*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) END IF(@p_REQ_TYPE = 'D' AND ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_THANH_TOAN,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(SUM(@SUM_THANH_TOAN),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END IF(@p_REQ_TYPE <> 'D' AND ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_USE_REAL,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền bạn sử dụng thực tế là: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='PGD') BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Cấp độ phòng giao dịch vui lòng không được chọn cấp phê duyệt trung gian' ErrorDesc RETURN '-1' END IF(@p_REQ_TYPE <> 'I') BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc RETURN '-1' END IF(ROUND(@SUM_THANH_TOAN,0) <> ROUND(@SUM_PHUONG_THUC,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(SUM(@SUM_THANH_TOAN),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END ELSE BEGIN IF(ISNULL(@SUM_USE_REAL,0) >0) BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc RETURN '-1' END IF(ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_USE_REAL,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền sử dụng thực tế trên lưới hoàn tạm ứng: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END IF(ISNULL(@SUM_USE_REAL,0) <> (ISNULL(@SUM_SERVICE,0) + ISNULL(@SUM_PERIOD,0) + ISNULL(@SUM_SCHEDULE,0))) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng số tiền thanh toán dịch vụ, thanh toán nhà cung cấp, thanh toán định kì phải bằng số tiền sử dụng thực tế trên lưới hoàn tạm ứng: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') + ' ' + FORMAT(SUM(@SUM_SERVICE),'#,#', 'vi-VN') + ' ' + FORMAT(SUM(@SUM_PERIOD),'#,#', 'vi-VN') + ' ' + FORMAT(SUM(@SUM_SCHEDULE),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END --IF(ABS((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))) <> @SUM_PHUONG_THUC) IF(((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))) <> @SUM_PHUONG_THUC) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán (hiệu số thanh toán và trích từ tai khoản) tương ứng với số tiền chi bổ sung trừ số tiền hoàn tạm ứng: ' + FORMAT(ABS((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS='U')) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc RETURN '-1' END -- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='U', PROCESS = NULL,CREATE_DT = GETDATE() WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Đơn vị gửi phê duyệt',N'Đơn vị tạo phiếu thanh toán và gửi phê duyệt') --- Luu log chinh sua INSERT INTO TR_REQ_PAY_INVOICE_LOG SELECT * FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID ----- UPDATE TR_REQ_PAY_SCHEDULE SET AMT_REMAIN =0.00 WHERE AMT_REMAIN <0 UPDATE TR_REQ_PAY_BUDGET SET AMT_APP= ROUND(AMT_APP,0), AMT_REMAIN = ROUND(AMT_REMAIN,0) IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE (TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị thanh toán số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc RETURN '4' END ELSE BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị thanh toán số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '4' END END SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, @p_REQ_PAY_CODE AS REQ_PAY_CODE, N'Thêm mới thành công' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; CLOSE XmlDataPay; DEALLOCATE XmlDataPay; Close XmlDataMethod; Close XmlDataCat; CLOSE XmlDataService; CLOSE XmlDataSchedule; Deallocate XmlDataMethod; Deallocate XmlDataCat; DEALLOCATE XmlDataService; DEALLOCATE XmlDataSchedule; --SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_MASTER_GetInternalArea]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_MASTER_GetInternalArea] @p_BUIDING_AREA_ID varchar(15) = NULL AS BEGIN -- PAGING -- PAGING BEGIN SELECT B.CONTRACT_ID,G.BUILDING_NAME ,C.FLOOR_NO, ISNULL(A.DIEN_TICH_CAN_SD,0) AS DIEN_TICH_SD_NOI_BO, B.INPUT_DT, D.BRANCH_NAME, E.DEP_NAME, A.REASON, ISNULL(A.TOTAL_AMT,0) AS THANH_TIEN, B.CREATE_DT, B.MAKER_ID, B.APPROVE_DT, B.CHECKER_ID, F.AUTH_STATUS_NAME -- SELECT END FROM BUD_CONTRACT_DT A LEFT JOIN BUD_CONTRACT_MASTER B ON A.CONTRACT_ID = B.CONTRACT_ID LEFT JOIN BUD_AREA_DT C ON A.BUILDING_AREA_ID = C.BUILDING_AREA_ID LEFT JOIN CM_BRANCH D ON A.BRANCH_ID = D.BRANCH_ID LEFT JOIN CM_DEPARTMENT E ON A.DEP_ID = E.DEP_ID LEFT JOIN CM_AUTH_STATUS F ON B.AUTH_STATUS = F.AUTH_STATUS LEFT JOIN BUD_MASTER G ON A.BUILD_ID = G.BUILDING_ID WHERE 1 = 1 AND C.BUILDING_AREA_ID = @p_BUIDING_AREA_ID AND B.AUTH_STATUS = 'A' -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAY_ATTACH_BYID]' GO ALTER PROC [dbo].[TR_REQ_PAY_ATTACH_BYID] @p_REQ_PAY_ID VARCHAR(15)= NULL, @p_TYPE VARCHAR(15)= NULL AS BEGIN SELECT A.ATTACH_ID, A.REQ_PAY_ID, A.REF_ID, A.NOTES, A.REF_DT, A.LICENSE_DT, A.REF_CODE as CONT_CODE, A.[DESCRIPTION] AS CON_DESC, A.AMT AS AMT_ATT, A.[TYPE] AS CON_TYPE FROM TR_REQ_PAY_ATTACH A WHERE A.REQ_PAY_ID = @p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CON_REQUEST_DOC_UpdXml]' GO ALTER PROCEDURE [dbo].[CON_REQUEST_DOC_UpdXml] @p_CONSTRUCT_ID varchar(15) = NULL, @p_CONSTRUCT_CODE varchar(15) = NULL, @p_CONSTRUCT_NAME nvarchar(100) = NULL, @p_PLAN_ID varchar(15) = NULL, @p_CONST_ID varchar(15) = NULL, @p_DIVI_ID varchar(15) = NULL, @p_CONSTRUCT_ADDR nvarchar(200) = NULL, @p_LENGTH decimal(18, 2) = NULL, @p_WIDTH decimal(18, 2) = NULL, @p_CONSTRUCT_AREA decimal(18) = NULL, @p_FLOORS int = NULL, @p_FLOORS_AREA decimal(18, 2) = NULL, @p_TOTAL_AREA_USE decimal(18, 2) = NULL, -- GIANT @p_TOTAL_COST decimal(18, 2) = NULL,-- GIANT @p_UNIT_PRICE decimal(18, 2) = NULL,-- GIANT @p_YEAR_EXE varchar(4) = NULL, @p_CONST_TYPE varchar(15) = NULL, @p_HQ_TYPE varchar(15) = NULL, @p_TOTAL_AMT decimal(18) = NULL, @p_COST_ESTIMATE decimal(18) = NULL, @p_COST_EXE decimal(18) = NULL, @p_COST_INCURRED decimal(18) = NULL, @p_CONST_PURPOSE varchar(15) = NULL, @p_DESCRIPTION nvarchar(2000) = NULL, @p_START_DT VARCHAR(20) = NULL, @p_END_DT VARCHAR(20) = NULL, @p_DATE_EXE VARCHAR(20) = NULL, @p_COMPLETION_DT VARCHAR(20) = NULL, @p_CONSTRUCT_PROGRESS decimal(18) = NULL, @p_RECORD_STATUS varchar(1) = '1', @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(1) = 'N', @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_REQUEST_ID VARCHAR(15) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_STREET NVARCHAR(200) = NULL, @p_LOCATION VARCHAR(15) = NULL, @p_UPD_DT varchar(20) = NULL, @p_SCALE NVARCHAR(1000) = NULL, @p_ENGINEER nvarchar(500) = NULL, @p_APPROVE_VALUE decimal(18) = NULL, @p_BRANCH_NAME_ETX nvarchar(500) = NULL, @P_ListRequestDoc XML = NULL, -- THONG TIN VE TO TRINH @P_ListBid XML = NULL, -- CHI PHI SUA CHUA @P_ListContract_DT XML = NULL, -- DANH SACH HO SO THI CONG @P_ListPayment XML = NULL, -- CAC DOT THANH TOAN @P_ListBid_DT XML = NULL, -- DANH SACH CHI TIET DON VI THAM GIA THAU @P_ListContractorArise XML = NULL, -- DANH SACH CHI TIET PHAT SINH TANG GIAM @P_ListReviewXML XML = NULL, -- ĐÁNH GIÁ NCC @P_ListConsProcessXML XML = NULL, -- TIẾN ĐỘ CÔNG TRÌNH @P_ListConsHHXML XML = NULL -- DANH SÁCH HÀNG HÓA AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM CON_REQUEST_DOC WHERE )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ DECLARE @OLD_REQUEST_ID VARCHAR(15) = @P_REQUEST_ID DECLARE @sErrorCode VARCHAR(20) Declare @hdoc INT -- THONG TIN VE TO TRINH Exec sp_xml_preparedocument @hdoc Output,@P_ListRequestDoc DECLARE ListRequestDoc CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListRequestDoc',2) WITH ( CON_REQUEST_DOC_ID varchar(15), REQ_ID varchar(15), REQ_CODE nvarchar(100), REQ_NAME nvarchar(200), REQ_DT VARCHAR(20), REQ_CONTENT nvarchar(1000), CONSTRUCT_ID varchar(15), TOTAL_AMT decimal(18), BRANCH_ID varchar(15), PLAN_TYPE VARCHAR(1), IS_PARENT VARCHAR(1), IS_ARISE VARCHAR(1), BUDGET VARCHAR(15), YEAR_BUDGET INT, REQUEST_PARENT VARCHAR(15), APPROVE_DT VARCHAR(20) ) OPEN ListRequestDoc -- CHI PHI SUA CHUA Exec sp_xml_preparedocument @hdoc Output,@P_ListBid DECLARE ListBid CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListBid',2) WITH ( BID_ID varchar(15), BID_CODE varchar(15), BID_TYPE varchar(1), PROJECT_ID varchar(15), TERM_BID nvarchar(200), FORM varchar(4), INPUT_DT VARCHAR(20), EXP_DT VARCHAR(20), OPEN_DT VARCHAR(20), BUDGET decimal(18), TOTAL_AMT decimal(18), GUARANTEE_AMT decimal(18), GUARANTEE_PER decimal(18), GUARANTEE_EXP VARCHAR(20), REQUEST_ID varchar(15), BID_WIN nvarchar(200), SETTLE_AMT decimal(18), CONTRACT_CODE varchar(15), NOTES nvarchar(1000), TOTAL_AMT_KT decimal(18), CONTRACT_VALUE decimal(18,2), [PERCENT] decimal(18,2), OUTSTANDINGVALUE decimal(18,2), ARISE_VALUE decimal(18,2), PAID_VALUE decimal(18,2), [DESC] nvarchar(1000) ) OPEN ListBid -- DANH SACH HO SO THI CONG (HOP DONG) Exec sp_xml_preparedocument @hdoc Output,@P_ListContract_DT DECLARE ListContract_DT CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListContract_DT',2) WITH ( CONTRACT_ID varchar(15), CONTRACT_CODE varchar(15), [CONTRACT_NAME] nvarchar(200), CONTRACT_TYPE varchar(15), BID_ID nvarchar(200), TOTAL_AMT DECIMAL(18), IS_PARENT varchar(1), REQUEST_ID varchar(15) ) OPEN ListContract_DT -- CAC DOT THANH TOAN Exec sp_xml_preparedocument @hdoc Output,@P_ListPayment DECLARE PaymentDetail CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/PaymentDetail',2) WITH ( PAY_ID VARCHAR(15), [PERCENT] decimal(18,2), AMOUNT decimal(18), BID_ID varchar(15), PAY_DT varchar(20), PAY_STATUS varchar(1), NOTES nvarchar(1000), CONTRACT_CODE varchar(15) ) OPEN PaymentDetail -- CHI TIET DON VI THAM GIA THAU Exec sp_xml_preparedocument @hdoc Output,@P_ListBid_DT DECLARE ContractorDetail CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ContractorDetail',2) WITH ( ID VARCHAR(15), BID_ID varchar(15), BID_CODE varchar(15), IS_BID_WIN varchar(1), SUPPLIER nvarchar(200), OFFERING_VALUE decimal(18), CHECK_VALUE decimal(18) ) OPEN ContractorDetail -- CHI TIET PHAT SINH TANG GIAM Exec sp_xml_preparedocument @hdoc Output,@P_ListContractorArise DECLARE ListContractorArise CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListContractorArise',2) WITH ( ARISE_ID VARCHAR(15), BID_ID varchar(15), BID_CODE varchar(15), SUPPLIER nvarchar(200), IS_BID_WIN varchar(1), BEGIN_VALUE decimal(18,2), CHECKED_VALUE decimal(18,2) ) OPEN ListContractorArise -- DANH SÁCH HÀNG HÓA Exec sp_xml_preparedocument @hdoc Output,@P_ListConsHHXML DECLARE ListHH CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListHH',2) WITH ( CON_REQ_HH_ID VARCHAR(15), REQ_CODE VARCHAR(50), REQ_ID VARCHAR(15), SUP_ID VARCHAR(15), SELLTEMENT_AMT DECIMAL(18,2), [DESCRIPTION] NVARCHAR(4000), -- KHOONG SU DUNG HH_ID VARCHAR(15), ESTIMATES_AMT DECIMAL(18,2), BRANCH_DO VARCHAR(15), CONS_DOCUMENT_ID VARCHAR(15), BID_ID VARCHAR(15), BID_CODE VARCHAR(50), REQDT_ID VARCHAR(15) ) OPEN ListHH -- ĐÁNH GIÁ NCC Exec sp_xml_preparedocument @hdoc Output,@P_ListReviewXML DECLARE ListReview CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListReview',2) WITH ( CON_REQ_REVIEW_ID VARCHAR(15), SUP_ID VARCHAR(15), QCKT_REVIEW NVARCHAR(4000), CONS_PROCESS VARCHAR(15), MAINTENANCE VARCHAR(15), REPORT_PLAN_EDIT VARCHAR(15), CONS_QUALITY VARCHAR(15), BEAUTY_IMAGE VARCHAR(15), REQ_ID VARCHAR(15), REQ_CODE VARCHAR(50), SUP_NAME NVARCHAR(1000) ) OPEN ListReview -- TIẾN ĐỘ CÔNG TRÌNH Exec sp_xml_preparedocument @hdoc Output,@P_ListConsProcessXML DECLARE ListConsProcess CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListConsProcess',2) WITH ( CON_REQ_PROCESS_ID VARCHAR(15), DATE_REPORT VARCHAR(15), PERCENT_COMPLETED DECIMAL(18,2), PERCENT_REMAIN DECIMAL(18,2), DEADLINE VARCHAR(15) ) OPEN ListConsProcess BEGIN TRANSACTION -- insert zô bảng tài liệu ---TAO BANG TAM DECLARE @TEMP TABLE ( [KEY] varchar(15), [REF_ID] varchar(15), [TYPE] varchar(50) ) -- THEM THONG TIN CONG TRINH DECLARE @IS_FINISH VARCHAR(1) = 'N' UPDATE CON_MASTER SET [IS_FINISH] = @IS_FINISH, [CONSTRUCT_CODE] = @p_CONSTRUCT_CODE,[CONSTRUCT_NAME] = @p_CONSTRUCT_NAME,[PLAN_ID] = @p_PLAN_ID,[DIVI_ID] = @p_DIVI_ID,[CONSTRUCT_ADDR] = @p_CONSTRUCT_ADDR,[LENGTH] = @p_LENGTH,[WIDTH] = @p_WIDTH, [CONSTRUCT_AREA] = @p_CONSTRUCT_AREA, [FLOORS] = @p_FLOORS, [FLOORS_AREA] = @p_FLOORS_AREA, [YEAR_EXE] = @p_YEAR_EXE,[CONST_TYPE] = @p_CONST_TYPE, [HQ_TYPE] = @p_HQ_TYPE,[TOTAL_AMT] = @p_TOTAL_AMT,[COST_ESTIMATE] = @p_COST_ESTIMATE,[COST_EXE] = @p_COST_EXE, [COST_INCURRED] = @p_COST_INCURRED, [CONST_PURPOSE] = @p_CONST_PURPOSE, [DESCRIPTION] = @p_DESCRIPTION,[START_DT] = CONVERT(DATETIME, @p_START_DT, 103),[END_DT] = CONVERT(DATETIME, @p_END_DT, 103),[DATE_EXE] = CONVERT(DATETIME, @p_DATE_EXE, 103),[COMPLETION_DT] = CONVERT(DATETIME, @p_COMPLETION_DT, 103),[CONSTRUCT_PROGRESS] = @p_CONSTRUCT_PROGRESS,[RECORD_STATUS] = @p_RECORD_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[CONST_ID] = @p_CONST_ID, [REQUEST_ID] = @p_REQUEST_ID, [BRANCH_ID] = @P_BRANCH_ID, [STREET] = @P_STREET, [LOCATION] = @P_LOCATION, [SCALE] = @P_SCALE, [ENGINEER] = @p_ENGINEER, [BRANCH_NAME_ETX] = @p_BRANCH_NAME_ETX, UPD_DT = CONVERT(DATETIME, @p_UPD_DT, 103), APPROVE_VALUE = @p_APPROVE_VALUE, TOTAL_AREA_USE = @p_TOTAL_AREA_USE,TOTAL_COST = @p_TOTAL_COST,UNIT_PRICE= @p_UNIT_PRICE WHERE CONSTRUCT_ID = @p_CONSTRUCT_ID INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@p_CONSTRUCT_ID, 'CON_MASTER') IF @@Error <> 0 GOTO ABORT -- UPDATE BANG THONG TIN VE TO TRINH DELETE CON_REQUEST_DOC WHERE REQUEST_PARENT = @p_REQUEST_ID DECLARE @INDEX int = 0, @CON_REQUEST_DOC_ID varchar(15), @REQ_ID varchar(15), @REQ_CODE nvarchar(100), @REQ_NAME nvarchar(200), @REQ_DT VARCHAR(20), @REQ_CONTENT nvarchar(1000), @CONSTRUCT_ID varchar(15), @TOTAL_AMT decimal(18), @BRANCH_ID varchar(15), @PLAN_TYPE VARCHAR(1), @IS_PARENT VARCHAR(1), @IS_ARISE VARCHAR(1), @REQ_BUDGET VARCHAR(15), @REQ_YEAR_BUDGET int, @REQUEST_PARENT VARCHAR(15), @APPROVE_DT VARCHAR(20) --INSERT ListBid DETAIL FETCH NEXT FROM ListRequestDoc INTO @CON_REQUEST_DOC_ID, @REQ_ID, @REQ_CODE, @REQ_NAME, @REQ_DT, @REQ_CONTENT, @CONSTRUCT_ID, @TOTAL_AMT, @BRANCH_ID, @PLAN_TYPE, @IS_PARENT,@IS_ARISE, @REQ_BUDGET, @REQ_YEAR_BUDGET, @REQUEST_PARENT, @APPROVE_DT WHILE @@FETCH_STATUS = 0 BEGIN --25/12/2014 Anh Ai yeu cau khong kiem tra trung to trinh - mot to trinh dung cho nhieu cong trinh ---- KIEM TRA SO TO TRINH CO TRUNG HAY KHONG --IF EXISTS(SELECT * FROM CON_REQUEST_DOC WHERE [REQ_CODE]= @REQ_CODE) --BEGIN -- SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'CON-0001' -- GOTO ABORT --END IF(@CON_REQUEST_DOC_ID IS NULL OR @CON_REQUEST_DOC_ID = '') BEGIN EXEC SYS_CodeMasters_Gen 'CON_REQUEST_DOC', @CON_REQUEST_DOC_ID out END IF @CON_REQUEST_DOC_ID='' OR @CON_REQUEST_DOC_ID IS NULL GOTO ABORT SET @INDEX = @INDEX + 1 IF (@INDEX = 1) -- TRA VE SO TO TRINH DAU TIEN BEGIN SET @P_REQUEST_ID = @CON_REQUEST_DOC_ID END SET @REQUEST_PARENT = @P_REQUEST_ID PRINT @REQUEST_PARENT INSERT INTO CON_REQUEST_DOC([CON_REQUEST_DOC_ID],[REQ_ID], [REQ_CODE], [REQ_NAME], [REQ_DT], [REQ_CONTENT], [CONSTRUCT_ID], [TOTAL_AMT], [NOTES], [RECORD_STATUS], [MAKER_ID], [CREATE_DT], [AUTH_STATUS], [CHECKER_ID], [APPROVE_DT], [BRANCH_ID], [PLAN_TYPE], [IS_PARENT] , [BUDGET], [YEAR_BUDGET], [REQUEST_PARENT], [IS_ARISE]) VALUES(@CON_REQUEST_DOC_ID,@REQ_ID, @REQ_CODE, @REQ_NAME, CONVERT(DATETIME, @REQ_DT, 103), @REQ_CONTENT, @CONSTRUCT_ID, @TOTAL_AMT, '', @p_RECORD_STATUS, @P_MAKER_ID, CONVERT(DATETIME, @P_CREATE_DT , 103), @P_AUTH_STATUS, @P_CHECKER_ID, CONVERT(DATETIME, @APPROVE_DT, 103), @BRANCH_ID, @PLAN_TYPE, @IS_PARENT, @REQ_BUDGET, @REQ_YEAR_BUDGET, @REQUEST_PARENT, @IS_ARISE) INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@CON_REQUEST_DOC_ID, 'CON_REQUEST_DOC') PRINT @@ERROR IF @@ERROR <> 0 GOTO ABORT FETCH NEXT FROM ListRequestDoc INTO @CON_REQUEST_DOC_ID, @REQ_ID, @REQ_CODE, @REQ_NAME, @REQ_DT, @REQ_CONTENT, @CONSTRUCT_ID, @TOTAL_AMT, @BRANCH_ID, @PLAN_TYPE, @IS_PARENT,@IS_ARISE, @REQ_BUDGET, @REQ_YEAR_BUDGET, @REQUEST_PARENT, @APPROVE_DT END CLOSE ListRequestDoc DEALLOCATE ListRequestDoc -- CAP NHAT PARENT TRADE_REQUEST_DOC DECLARE @OLD_REQUEST_PARENT VARCHAR(15) = @REQUEST_PARENT SET @REQUEST_PARENT = (SELECT TOP(1) CON_REQUEST_DOC_ID FROM CON_REQUEST_DOC WHERE REQUEST_PARENT = @OLD_REQUEST_PARENT ORDER BY TOTAL_AMT DESC) UPDATE CON_REQUEST_DOC SET IS_PARENT = (CASE WHEN CON_REQUEST_DOC_ID = @REQUEST_PARENT THEN '1' ELSE '0' END), REQUEST_PARENT = @REQUEST_PARENT WHERE REQUEST_PARENT = @OLD_REQUEST_PARENT update CON_MASTER set REQUEST_ID = @REQUEST_PARENT where CONSTRUCT_ID = @p_CONSTRUCT_ID SET @P_REQUEST_ID = @REQUEST_PARENT -- UPDATE CHI PHI SUA CHUA DELETE BID_MASTER WHERE REQUEST_ID = @OLD_REQUEST_ID DECLARE @BID_ID varchar(15), @BID_CODE varchar(15), @BID_TYPE varchar(1), @PROJECT_ID varchar(15), @TERM_BID nvarchar(200), @FORM varchar(4), @INPUT_DT VARCHAR(20), @EXP_DT VARCHAR(20), @OPEN_DT VARCHAR(20), @BUDGET decimal(18), @_TOTAL_AMT decimal(18), -- CHI PHI @GUARANTEE_AMT decimal(18), @GUARANTEE_PER decimal(18), @GUARANTEE_EXP VARCHAR(20), @REQUEST_ID varchar(15), @BID_WIN nvarchar(200), @SETTLE_AMT decimal(18), @NOTES nvarchar(1000), @_CONTRACT_CODE varchar(15), @TOTAL_AMT_KT decimal(18), @CONTRACT_VALUE decimal(18,2), @PERCENT decimal(18,2), @OUTSTANDINGVALUE decimal(18,2), @ARISE_VALUE decimal(18,2), @PAID_VALUE decimal(18,2), @DESC nvarchar(1000) --INSERT ListBid DETAIL FETCH NEXT FROM ListBid INTO @BID_ID, @BID_CODE, @BID_TYPE, @PROJECT_ID, @TERM_BID, @FORM, @INPUT_DT, @EXP_DT, @OPEN_DT, @BUDGET, @_TOTAL_AMT, @GUARANTEE_AMT, @GUARANTEE_PER, @GUARANTEE_EXP, @REQUEST_ID, @BID_WIN, @SETTLE_AMT, @_CONTRACT_CODE, @NOTES,@TOTAL_AMT_KT,@CONTRACT_VALUE,@PERCENT,@OUTSTANDINGVALUE,@ARISE_VALUE,@PAID_VALUE,@DESC WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_BID_ID VARCHAR(15) = @BID_ID, @l_PREFIX varchar(100) SELECT @l_PREFIX = Prefix FROM SYS_PREFIX WHERE ID = 'BID_MASTER' IF(@l_BID_ID IS NULL OR @l_BID_ID not like @l_PREFIX + '%') BEGIN EXEC SYS_CodeMasters_Gen 'BID_MASTER', @l_BID_ID out END IF @l_BID_ID='' OR @l_BID_ID not like @l_PREFIX + '%' GOTO ABORT print @l_BID_ID --INSERT INTO BID_MASTER([BID_ID],[BID_CODE],[BID_TYPE],[PROJECT_ID],[TERM_BID],[FORM],[INPUT_DT],[EXP_DT], --[OPEN_DT],[BUDGET],[TOTAL_AMT],[GUARANTEE_AMT],[GUARANTEE_PER],[GUARANTEE_EXP],[NOTES], --[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[REQUEST_ID], --[BID_WIN], [SETTLE_AMT],[CONTRACT_CODE],[TOTAL_AMT_KT],CONTRACT_VALUE,[PERCENT],OUTSTANDINGVALUE,ARISE_VALUE,PAID_VALUE,[DESC]) --VALUES(@l_BID_ID ,@BID_CODE , @BID_TYPE,@PROJECT_ID ,@TERM_BID ,@FORM , --CONVERT(DATETIME, @INPUT_DT, 103) ,CONVERT(DATETIME, @EXP_DT, 103) , --CONVERT(DATETIME, @OPEN_DT, 103) ,@BUDGET ,@_TOTAL_AMT ,@GUARANTEE_AMT , --@GUARANTEE_PER ,CONVERT(DATETIME, @GUARANTEE_EXP, 103) ,@NOTES ,@p_RECORD_STATUS , --@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID , --CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_REQUEST_ID, @BID_WIN, @SETTLE_AMT, @_CONTRACT_CODE,@TOTAL_AMT_KT ,@CONTRACT_VALUE,@PERCENT,@OUTSTANDINGVALUE,@ARISE_VALUE,@PAID_VALUE,@DESC) --IF @@ERROR <> 0 GOTO ABORT INSERT INTO @TEMP([KEY],[REF_ID],[TYPE]) VALUES (@BID_ID, @l_BID_ID, 'BID_MASTER') FETCH NEXT FROM ListBid INTO @BID_ID, @BID_CODE, @BID_TYPE, @PROJECT_ID, @TERM_BID, @FORM, @INPUT_DT, @EXP_DT, @OPEN_DT, @BUDGET, @_TOTAL_AMT, @GUARANTEE_AMT, @GUARANTEE_PER, @GUARANTEE_EXP, @REQUEST_ID, @BID_WIN, @SETTLE_AMT, @_CONTRACT_CODE, @NOTES,@TOTAL_AMT_KT,@CONTRACT_VALUE,@PERCENT,@OUTSTANDINGVALUE,@ARISE_VALUE,@PAID_VALUE,@DESC END CLOSE ListBid DEALLOCATE ListBid -- UPDATE DANH SÁCH HỒ SƠ THI CÔNG -- HOP DONG & PHU LUC HOP DONG DELETE TR_CONTRACT WHERE REQUEST_ID = @OLD_REQUEST_ID DECLARE @CDT_INDEX int = 0, @CDT_CONTRACT_ID varchar(15), @CONTRACT_CODE varchar(15), @CONTRACT_NAME nvarchar(200), @CONTRACT_TYPE varchar(1), @CDT_BID_ID nvarchar(200), @CDT_TOTAL_AMT decimal(18), @CDT_IS_PARENT varchar(1), @CDT_REQUEST_ID varchar(15), @CDT_CONTRACT_PARENT varchar(15) --INSERT ListContract_DT DETAIL FETCH NEXT FROM ListContract_DT INTO @CDT_CONTRACT_ID, @CONTRACT_CODE, @CONTRACT_NAME, @CONTRACT_TYPE, @CDT_BID_ID, @CDT_TOTAL_AMT, @CDT_IS_PARENT, @CDT_REQUEST_ID WHILE @@FETCH_STATUS = 0 BEGIN -- KIEM TRA SO HOP DONG CO TRUNG HAY KHONG IF EXISTS(SELECT * FROM TR_CONTRACT WHERE REQUEST_ID = @P_REQUEST_ID AND [CONTRACT_CODE]= @CONTRACT_CODE AND @CONTRACT_CODE<>'' AND @CONTRACT_CODE IS NOT NULL) BEGIN CLOSE ListContract_DT DEALLOCATE ListContract_DT SELECT ErrorCode Result, @p_REQUEST_ID REQ_ID, '' REF_ID, '' [TYPE], ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'CTRC-0001' ROLLBACK TRANSACTION RETURN '-1' END SELECT @BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @CDT_BID_ID DECLARE @l_CONTRACT_ID VARCHAR(15) = @CDT_CONTRACT_ID IF(@l_CONTRACT_ID IS NULL OR @l_CONTRACT_ID = '') BEGIN EXEC SYS_CodeMasters_Gen 'TR_CONTRACT', @l_CONTRACT_ID out END IF @l_CONTRACT_ID='' OR @l_CONTRACT_ID IS NULL GOTO ABORT --SET @CDT_INDEX = @CDT_INDEX + 1 IF (@CDT_IS_PARENT = '1') -- TRA VE SO TO TRINH DAU TIEN SET @CDT_CONTRACT_PARENT = @l_CONTRACT_ID INSERT INTO TR_CONTRACT([CONTRACT_ID],[CONTRACT_CODE],[CONTRACT_NAME],[CONTRACT_TYPE],[BID_ID],[SUP_ID], [TOTAL_AMT],[DELIVERY_DT],[FORM1],[VOUCHER_ID1],[BANK1],[AMOUNT1], [EXP_DT1],[RATE1],[FORM2],[VOUCHER_ID2],[BANK2],[AMOUNT2],[EXP_DT2], [RATE2],[REQ_DOC_ID],[REQ_DOC_CONTENT],[APPROVE_VALUE],[SIGN_DT],[CONSTRUCT_PROGRESS], [NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[START_DT],[END_DT], [IS_PARENT], [REQUEST_ID], [CONTRACT_PARENT]) VALUES(@l_CONTRACT_ID ,@CONTRACT_CODE ,@CONTRACT_NAME, @CONTRACT_TYPE ,@BID_ID ,NULL, @CDT_TOTAL_AMT,NULL , NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL, NULL ,NULL ,NULL ,NULL, NULL,NULL,NULL , NULL ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS, @p_CHECKER_ID ,(CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END), CONVERT(DATETIME,@P_START_DT,103),CONVERT(DATETIME,@P_END_DT,103), @CDT_IS_PARENT, @p_REQUEST_ID, case when @CDT_IS_PARENT = '1' then null else @CDT_CONTRACT_PARENT end) IF @@Error <> 0 GOTO ABORT INSERT INTO @TEMP([KEY],[REF_ID],[TYPE]) VALUES (@CONTRACT_CODE, @l_CONTRACT_ID, 'TR_CONTRACT') FETCH NEXT FROM ListContract_DT INTO @CDT_CONTRACT_ID, @CONTRACT_CODE, @CONTRACT_NAME, @CONTRACT_TYPE, @CDT_BID_ID, @CDT_TOTAL_AMT, @CDT_IS_PARENT, @CDT_REQUEST_ID END CLOSE ListContract_DT DEALLOCATE ListContract_DT -- UPDATE CAC DOT THANH TOAN DELETE TR_CONTRACT_PAYMENT WHERE REQUEST_ID = @OLD_REQUEST_ID DECLARE @PAY_ID VARCHAR(15), @AMOUNT decimal(18), @PAY_DT varchar(20), @PAY_STATUS varchar(1), @CONTRACT_ID varchar(15), @P_CONTRACT_CODE varchar(15) DECLARE @l_PAY_ID VARCHAR(15), @l_PAY_BID_ID varchar(15) FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PERCENT, @AMOUNT, @BID_CODE, @PAY_DT, @PAY_STATUS, @NOTES, @P_CONTRACT_CODE WHILE @@FETCH_STATUS = 0 BEGIN SELECT @l_PAY_BID_ID = BID_ID FROM TR_CONTRACT WHERE CONTRACT_CODE = @P_CONTRACT_CODE AND REQUEST_ID = @p_REQUEST_ID set @BID_ID = '' set @CONTRACT_ID = '' SELECT @BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @BID_CODE SELECT @CONTRACT_ID = REF_ID FROM @TEMP where [TYPE]='TR_CONTRACT' AND [KEY] = @P_CONTRACT_CODE SET @l_PAY_ID = @PAY_ID IF(@l_PAY_ID IS NULL OR @l_PAY_ID = '') BEGIN EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @l_PAY_ID out END IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT INSERT INTO TR_CONTRACT_PAYMENT([PAY_AMOUNT],[PAY_DT], [PAY_ID],[CONTRACT_ID], [CONTRACT_CODE], [PAY_PHASE],[EXPECTED_DT], [PERCENT],[AMOUNT],[PAY_STATUS],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], [REQUEST_ID], BID_ID) VALUES(@AMOUNT,(CASE WHEN @PAY_DT IS NOT NULL AND @PAY_DT <> '' then CONVERT(DATETIME, @PAY_DT, 103) ELSE NULL END), @l_PAY_ID ,@CONTRACT_ID, @P_CONTRACT_CODE, NULL ,CONVERT(DATETIME, NULL, 103) ,@PERCENT,@AMOUNT,@PAY_STATUS ,@NOTES , @p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID , (CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END), @p_REQUEST_ID, @BID_ID) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM PaymentDetail INTO @PAY_ID, @PERCENT, @AMOUNT, @BID_CODE, @PAY_DT, @PAY_STATUS, @NOTES, @P_CONTRACT_CODE END CLOSE PaymentDetail DEALLOCATE PaymentDetail -- UPDATE BANG CON CHI TIET DON VI THAM GIA THAU DELETE BID_CONTRACTOR_DT WHERE REQUEST_ID = @OLD_REQUEST_ID DECLARE @ID VARCHAR(15), @DT_BID_ID varchar(15), @DT_BID_CODE varchar(15), @SUPPLIER nvarchar(200), @IS_BID_WIN varchar(1), @OFFERING_VALUE decimal(18), @CHECK_VALUE decimal(18) FETCH NEXT FROM ContractorDetail INTO @ID, @DT_BID_ID, @DT_BID_CODE, @IS_BID_WIN, @SUPPLIER, @OFFERING_VALUE, @CHECK_VALUE WHILE @@FETCH_STATUS = 0 BEGIN -- LAY MA HO SO THAU O BANG MASTER SELECT @DT_BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @DT_BID_ID IF(@ID IS NULL OR @ID = '') BEGIN EXEC SYS_CodeMasters_Gen 'BID_CONTRACTOR_DT', @ID out END IF @ID='' OR @ID IS NULL GOTO ABORT IF @EXP_DT = '' SET @EXP_DT = NULL INSERT INTO BID_CONTRACTOR_DT([ID],[SUP_ID],[BID_ID], [BID_CODE], [SEND_DT],[OFFERING_VALUE],[FORM],[EXP_DT], [BANK],[VOUCHER],[ISVALID],[IS_BID_WIN],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS], [CHECKER_ID],[APPROVE_DT],[PROGRESS_TIME], [SUPPLIER], [CHECK_VALUE], [REQUEST_ID]) VALUES(@ID , NULL ,@DT_BID_ID ,@DT_BID_CODE, NULL ,@OFFERING_VALUE ,NULL, NULL ,NULL ,NULL ,NULL,@IS_BID_WIN , @NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID , CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, @SUPPLIER, @CHECK_VALUE, @P_REQUEST_ID) IF @@ERROR <> 0 GOTO ABORT INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@ID, 'BID_CONTRACTOR_DT') FETCH NEXT FROM ContractorDetail INTO @ID, @DT_BID_ID, @DT_BID_CODE, @IS_BID_WIN, @SUPPLIER, @OFFERING_VALUE, @CHECK_VALUE END CLOSE ContractorDetail DEALLOCATE ContractorDetail -- CHI PHI PHAT SINH TANG GIAM DELETE CON_BID_CONTRACTOR_DT_ARISE WHERE REQ_ID = @OLD_REQUEST_ID DECLARE @ARISE_ID VARCHAR(15), @BEGIN_VALUE decimal(18,2), @CHECKED_VALUE decimal(18,2) FETCH NEXT FROM ListContractorArise into @ARISE_ID, @DT_BID_ID, @DT_BID_CODE, @SUPPLIER, @IS_BID_WIN, @BEGIN_VALUE, @CHECKED_VALUE WHILE @@FETCH_STATUS = 0 BEGIN -- LAY MA HO SO THAU O BANG MASTER SELECT @DT_BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @DT_BID_CODE IF(@ARISE_ID IS NULL OR @ARISE_ID = '') BEGIN EXEC SYS_CodeMasters_Gen 'CON_BID_CONTRACTOR_DT_ARISE', @ARISE_ID out IF @ARISE_ID='' OR @ARISE_ID IS NULL GOTO ABORT END INSERT INTO CON_BID_CONTRACTOR_DT_ARISE(ARISE_ID,REQ_ID, SUPPLIER, IS_BID_WIN, BEGIN_VALUE, CHECKED_VALUE, BID_ID, BID_CODE) VALUES (@ARISE_ID, @P_REQUEST_ID, @SUPPLIER, @IS_BID_WIN, @BEGIN_VALUE, @CHECKED_VALUE, @DT_BID_ID ,@DT_BID_CODE) INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@ARISE_ID, 'CON_BID_CONTRACTOR_DT_ARISE') FETCH NEXT FROM ListContractorArise into @ARISE_ID, @DT_BID_ID, @DT_BID_CODE, @SUPPLIER, @IS_BID_WIN, @BEGIN_VALUE, @CHECKED_VALUE END CLOSE ListContractorArise DEALLOCATE ListContractorArise -- DANH SÁCH HÀNG HÓA DELETE CON_REQUEST_HH_DT WHERE CONSTRUCT_ID = @p_CONSTRUCT_ID DECLARE @CON_REQ_HH_ID VARCHAR(15), @SUP_ID VARCHAR(15), @SELLTEMENT_AMT DECIMAL(18,2), @DESCRIPTION NVARCHAR(4000), @HH_ID VARCHAR(15), @ESTIMATES_AMT DECIMAL(18,2), @BRANCH_DO VARCHAR(15), @CONS_DOCUMENT_ID VARCHAR(15), @REQDT_ID VARCHAR(15) FETCH NEXT FROM ListHH INTO @CON_REQ_HH_ID,@REQ_CODE, @REQ_ID, @SUP_ID, @SELLTEMENT_AMT, @DESCRIPTION, @HH_ID, @ESTIMATES_AMT,@BRANCH_DO,@CONS_DOCUMENT_ID,@BID_ID,@BID_CODE,@REQDT_ID WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'CON_REQUEST_HH_DT', @CON_REQ_HH_ID out IF @CON_REQ_HH_ID='' OR @CON_REQ_HH_ID IS NULL GOTO ABORT SET @DESCRIPTION = (SELECT [DESCRIPTION] FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID) print @BID_CODE print @REQDT_ID INSERT INTO [dbo].[CON_REQUEST_HH_DT] ( [CON_REQ_HH_ID], [SUP_ID], [SELLTEMENT_AMT], [DESCRIPTION], [HH_ID], [REQ_ID], [ESTIMATES_AMT], [BRANCH_DO], [CONS_DOCUMENT_ID], [BID_ID], [REQ_CODE], [CONSTRUCT_ID], [REQDT_ID], [BID_CODE] ) VALUES ( @CON_REQ_HH_ID, @SUP_ID, @SELLTEMENT_AMT, @DESCRIPTION, @HH_ID, @REQ_ID, @ESTIMATES_AMT, @BRANCH_DO, @CONS_DOCUMENT_ID, @BID_ID, @REQ_CODE, @p_CONSTRUCT_ID, @REQDT_ID, @BID_CODE ) FETCH NEXT FROM ListHH INTO @CON_REQ_HH_ID,@REQ_CODE, @REQ_ID, @SUP_ID, @SELLTEMENT_AMT, @DESCRIPTION, @HH_ID, @ESTIMATES_AMT,@BRANCH_DO,@CONS_DOCUMENT_ID,@BID_ID,@BID_CODE,@REQDT_ID END CLOSE ListHH DEALLOCATE ListHH -- ĐÁNH GIÁ NCC DELETE CON_REQUEST_REVIEW_DT WHERE CONSTRUCT_ID = @p_CONSTRUCT_ID DECLARE @CON_REQ_REVIEW_ID VARCHAR(15), @QCKT_REVIEW NVARCHAR(4000), @CONS_PROCESS VARCHAR(15), @MAINTENANCE VARCHAR(15), @REPORT_PLAN_EDIT VARCHAR(15), @CONS_QUALITY VARCHAR(15), @BEAUTY_IMAGE VARCHAR(15), @SUP_NAME NVARCHAR(1000) FETCH NEXT FROM ListReview into @CON_REQ_REVIEW_ID,@SUP_ID, @QCKT_REVIEW, @CONS_PROCESS, @MAINTENANCE, @REPORT_PLAN_EDIT, @CONS_QUALITY, @BEAUTY_IMAGE,@REQ_ID,@REQ_CODE,@SUP_NAME WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'CON_REQUEST_REVIEW_DT', @CON_REQ_REVIEW_ID out IF @CON_REQ_REVIEW_ID='' OR @CON_REQ_REVIEW_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CON_REQUEST_REVIEW_DT] ( [CON_REQ_REVIEW_ID], [SUP_ID], [CONS_PROCESS], [MAINTENANCE], [REPORT_PLAN_EDIT], [CONS_QUALITY], [BEAUTY_IMAGE], [CONSTRUCT_ID], [QCKT_REVIEW], [SUP_NAME], [REQ_CODE], [REQ_ID] ) VALUES ( @CON_REQ_REVIEW_ID, @SUP_ID, @CONS_PROCESS, @MAINTENANCE, @REPORT_PLAN_EDIT, @CONS_QUALITY, @BEAUTY_IMAGE, @p_CONSTRUCT_ID, @QCKT_REVIEW, @SUP_NAME, @REQ_CODE, @REQ_ID ) FETCH NEXT FROM ListReview INTO @CON_REQ_REVIEW_ID,@SUP_ID, @QCKT_REVIEW, @CONS_PROCESS, @MAINTENANCE, @REPORT_PLAN_EDIT, @CONS_QUALITY, @BEAUTY_IMAGE,@REQ_ID,@REQ_CODE,@SUP_NAME END CLOSE ListReview DEALLOCATE ListReview -- TIẾN ĐỘ CÔNG TRÌNH DELETE CON_REQUEST_PROCESS_DT WHERE CONSTRUCT_ID = @p_CONSTRUCT_ID DECLARE @CON_REQ_PROCESS_ID VARCHAR(15), @DATE_REPORT VARCHAR(50), @PERCENT_COMPLETED DECIMAL(18,2), @PERCENT_REMAIN DECIMAL(18,2), @DEADLINE VARCHAR(50) FETCH NEXT FROM ListConsProcess into @CON_REQ_PROCESS_ID,@DATE_REPORT, @PERCENT_COMPLETED, @PERCENT_REMAIN, @DEADLINE WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'CON_REQUEST_PROCESS_DT', @CON_REQ_PROCESS_ID out IF @CON_REQ_PROCESS_ID='' OR @CON_REQ_PROCESS_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CON_REQUEST_PROCESS_DT] ( [CON_REQ_PROCESS_ID], [DATE_REPORT], [PERCENT_COMPLETED], [PERCENT_REMAIN], [DEADLINE], [CONSTRUCT_ID] ) VALUES ( @CON_REQ_PROCESS_ID, @DATE_REPORT, @PERCENT_COMPLETED, @PERCENT_REMAIN, @DEADLINE, @p_CONSTRUCT_ID ) FETCH NEXT FROM ListConsProcess INTO @CON_REQ_PROCESS_ID,@DATE_REPORT, @PERCENT_COMPLETED, @PERCENT_REMAIN, @DEADLINE END CLOSE ListConsProcess DEALLOCATE ListConsProcess COMMIT TRANSACTION SELECT '0' as Result, @p_REQUEST_ID REQ_ID, [REF_ID], [TYPE], '' ErrorDesc FROM @TEMP RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION CLOSE ListRequestDoc DEALLOCATE ListRequestDoc CLOSE ListBid DEALLOCATE ListBid CLOSE ListContract_DT DEALLOCATE ListContract_DT CLOSE PaymentDetail DEALLOCATE PaymentDetail CLOSE ContractorDetail DEALLOCATE ContractorDetail SELECT ErrorCode Result, @p_REQUEST_ID REQ_ID, '' [REF_ID], '' [TYPE], ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode RETURN '-1' End ABORT1: BEGIN ROLLBACK TRANSACTION CLOSE ListRequestDoc DEALLOCATE ListRequestDoc SELECT ErrorCode Result, @p_REQUEST_ID REQ_ID, '' [REF_ID], '' [TYPE],ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode RETURN '-1' End ABORT2: BEGIN ROLLBACK TRANSACTION CLOSE ListContract_DT DEALLOCATE ListContract_DT CLOSE PaymentDetail DEALLOCATE PaymentDetail CLOSE ContractorDetail DEALLOCATE ContractorDetail SELECT ErrorCode Result, @p_REQUEST_ID REQ_ID, '' [REF_ID], '' [TYPE], ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_ADVANCE_PAYMENT_Search]' GO ALTER PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Search] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(20)= 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(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @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_PAY_PHASE VARCHAR(15)= NULL, @p_XMP_TEMP XML = NULL, @p_TOP INT = 10, @p_LEVEL varchar(10) = NULL, @p_FRMDATE VARCHAR(20)= NULL, @p_TODATE VARCHAR(20) = NULL, @p_BRANCH_LOGIN VARCHAR(15) = NULL, @p_IS_UPDATE_KT VARCHAR(15) = NULL, @p_IS_TRANSFER VARCHAR(15)= NULL, @p_DVDM_ID VARCHAR(15)= NULL, @p_USER_LOGIN VARCHAR(15) = NULL, @p_RATE DECIMAL(18,0) =0, @p_FUNCTION VARCHAR(15) = NULL, @p_TYPE_SEARCH VARCHAR(15) = NULL, @p_TEMP_PAY_STATUS VARCHAR(10) = NULL --select * from CM_ALLCODE where CDTYPE = 'TEMPPAYSTATUS' --HT Hoàn tất --DCHU Đang chờ hoàn ứng --DHU Đã hoàn ứng --'' tất cả AS BEGIN -- PAGING SET @p_TOP = NULL DECLARE @TB_TYPE TABLE (BRANCH_TYPE VARCHAR(15)) IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_LOGIN)='HS') BEGIN INSERT INTO @TB_TYPE VALUES('HS') END ELSE BEGIN INSERT INTO @TB_TYPE VALUES('PGD') INSERT INTO @TB_TYPE VALUES('CN') END declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) declare @tmp_Login table(BRANCH_ID varchar(15)) insert into @tmp_Login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15) DECLARE @BRANCH_TYPE VARCHAR(15) SET @BRANCH_TYPE =(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN) -- KHAI BAO UY QUYEN KIEM NHIEM DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50)) INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID) INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='') AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') AND TLNAME =@p_USER_LOGIN --AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN) DECLARE @TMP_DEP TABLE(DEP_ID VARCHAR(15)) SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG) SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG) INSERT INTO @TMP_DEP SELECT B.DEP_ID FROM PL_COSTCENTER_DT B WHERE COST_ID =@COST_LG DECLARE @BRANCH_TYPE_LG VARCHAR(15) SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN) -- KHAI BAO NHUNG PHONG BAN MA 1 USER KIEM NHIEM DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15)) INSERT INTO @DEP_AUTH VALUES (@DEP_ID_LG) INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='') AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR(15)) INSERT INTO @BRANCH_AUTH VALUES (@BRANCH_TYPE_LG) INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) --END --IF(EXISTS(SELECT * FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID)) -- SET @ROLE_ID=(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID) SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD','TKTGD','TKHDQT')) BEGIN PRINT @ROLE_ID END ELSE BEGIN --SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN) SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN) IF(@ROLE_ID IS NULL OR @ROLE_ID ='') BEGIN SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)) END END IF(@p_TOP IS NULL OR @p_TOP=0) BEGIN -- PAGING BEGIN SELECT A.*,'' as TEMP_PAY_STATUS ,B.AUTH_STATUS_NAME AS 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, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS 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 AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS, 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, PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG, DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, --PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS, --PC1.NOTES AS NEXT_STEP, ---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý' WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý' WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') = '' AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP, PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH, SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT -- 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 A.DEP_ID= DP.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_PAY_ADVANCE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL.CDTYPE = 'REQ_PAY_METHOD' 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.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D' LEFT JOIN ( SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I' LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D' LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P' LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID --LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID LEFT JOIN ( SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P INNER JOIN ( SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR GROUP BY PR.REQ_ID ) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID --WHERE P.REQ_ID =@p_REQ_PAY_ID ) AS PR ON A.REQ_PAY_ID = PR.REQ_ID LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND (PC.ROLE_USER = @ROLE_ID OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN)) AND PC.STATUS='C' --LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C' LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C' LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID 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.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL) AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL OR (A.REQ_TYPE ='I' AND A.AUTH_STATUS <>'A' AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT')))) AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='') AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL) --Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL) AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL) AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL) --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'') AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL) AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))) AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) ---AND(( @p_IS_TRANSFER='Y' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) OR ISNULL(A.AUTH_STATUS_KT,'') ='A')) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat --OR((@p_IS_TRANSFER='N' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' ))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='') AND(( @p_IS_TRANSFER='Y' AND (@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')) OR(@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')) OR (@p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) OR ISNULL(A.AUTH_STATUS_KT,'') ='A')) ) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((@p_IS_TRANSFER='N' AND (@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' ) OR (@p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2') AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' ) OR (@p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' )) OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')) AND(((@p_PROCESS='PM' AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0) AND (A.REQ_TYPE IN('I','D','P') OR (@DEP_ID_LG ='DEP000000000014' AND A.REQ_TYPE IN ('I','P','D'))) AND ((A.DEP_ID =@DEP_ID_LG OR A.MAKER_ID =@p_USER_LOGIN OR A.MAKER_ID IS NULL) OR(@BRANCH_TYPE_LG <>'HS' AND A.BRANCH_ID =@p_BRANCH_LOGIN) OR (@p_REQ_PAY_CODE IS NOT NULL AND @p_REQ_PAY_CODE <> '' AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE))) OR @p_PROCESS IS NULL OR @p_PROCESS ='') AND((@p_LEVEL='ALL' AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)) OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) OR (@p_REQ_PAY_CODE IS NOT NULL AND @p_REQ_PAY_CODE <> '' AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE))) AND ((@p_FUNCTION ='KT' AND (EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE X.REQ_ID = A.REQ_PAY_ID AND (X.TLNAME= @p_USER_LOGIN OR X.TLNAME =@p_TRASFER_USER_RECIVE))) OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='' OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') OR @p_FUNCTION ='SIGN') AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='') AND(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE TLNAME =@p_TRASFER_USER_RECIVE AND TYPE_JOB IN ('XL','KS','TP') AND REQ_ID = A.REQ_PAY_ID) OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE='') AND ( A.MAKER_ID =@p_USER_LOGIN OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R')) OR( A.AUTH_STATUS <>'E' AND( (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND A.REQ_TYPE ='I' AND ( (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','TP','KTT','TC')) AND (A.BRANCH_ID =@p_BRANCH_LOGIN OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)) AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)) AND ((@p_AUTH_STATUS ='A' AND ISNULL(PROCESS,'') ='0' AND EXISTS(SELECT * FROM PL_PROCESS WHERE REQ_ID =A.REQ_PAY_ID AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')) OR (@p_AUTH_STATUS ='U' AND ISNULL(PROCESS,'')='') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS ='')) ) OR (@ROLE_ID IN ('NVMS','NVTT','TBP') AND (A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR A.MAKER_ID =@p_MAKER_ID OR A.DEP_ID=@p_DEP_ID) AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')) OR (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDK','PTGD')) AND (A.DVDM_ID =@DVDM_ID OR (A.DVDM_ID IS NULL OR A.DVDM_ID ='')) AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND A.BRANCH_CREATE ='DV0001' AND A.PROCESS<>'' AND A.PROCESS IS NOT NULL AND ((@p_AUTH_STATUS ='A' AND STATUS IN ('P','A')) OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') OR(ISNULL(@p_AUTH_STATUS,'') ='' AND STATUS IN ('C','P','A'))) )) OR (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) AND A.BRANCH_CREATE ='DV0001' AND A.PROCESS<>'' AND A.PROCESS IS NOT NULL AND ((@p_AUTH_STATUS ='A' AND STATUS IN ('P','A')) OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') OR(ISNULL(@p_AUTH_STATUS,'') ='' )) )) )-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW ) -- NGUOC LAI NEU LA TAM UNG KHAC OR (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND A.REQ_TYPE <> 'I' AND (A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR (@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND (A.BRANCH_ID =@p_BRANCH_LOGIN OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)) AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)) AND( A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='' OR (A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>''))) OR (@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))) )) -- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND (@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') AND ( (A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'') OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL) OR ((A.BRANCH_CREATE <> @p_BRANCH_LOGIN AND A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'') OR A.BRANCH_CREATE = @p_BRANCH_LOGIN) AND A.BRANCH_ID IN (SELECT * FROM @tmp))) OR (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND A.BRANCH_ID IN (SELECT * FROM @tmp)) OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'PGD' AND (@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN)) OR(@p_TYPE_SEARCH ='HC' AND (A.DVDM_ID IS NOT NULL AND A.DVDM_ID <>'' AND A.DVDM_ID =@DVDM_ID AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' AND @ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)) OR(A.DEP_ID IN (SELECT * FROM @TMP_DEP) AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' AND @ROLE_ID <> 'TKTGD' AND @ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID))) --OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C'))) OR(@p_TYPE_SEARCH='KT' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)) OR(@p_TYPE_SEARCH='HC' AND (@ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022') AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)) OR(@p_TYPE_SEARCH='HC' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TLNAME =@p_USER_LOGIN AND TYPE_JOB ='XL')) OR(@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') AND A.PROCESS<>'' AND A.PROCESS IS NOT NULL AND ( (@p_FUNCTION ='TF' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER =@ROLE_ID AND STATUS ='C')) OR (ISNULL(@p_FUNCTION,'') <> 'TF' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER =@ROLE_ID AND ((@p_IS_TRANSFER ='N' AND STATUS ='C') OR (@p_IS_TRANSFER <>'N' AND STATUS IN ('C','P')))))) ) OR(@p_TYPE_SEARCH='PAY' AND (A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 AND ( (@BRANCH_TYPE_LG ='HS' AND (A.DEP_ID =@DEP_ID_LG OR A.MAKER_ID =@p_USER_LOGIN OR A.MAKER_ID IS NULL OR 1=1)) OR (@BRANCH_TYPE_LG <> 'HS' AND A.BRANCH_ID = @p_BRANCH_LOGIN) OR (@p_REQ_PAY_CODE IS NOT NULL AND @p_REQ_PAY_CODE <> '' AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE))) ) OR(@p_TYPE_SEARCH='HC' AND (@ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022') AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)) )) AND ( (A.PAY_AMT = A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'HT')) OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') ) OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU')) OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = '' ) AND (A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X') ORDER BY A.CREATE_DT DESC -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT A.*,'' as TEMP_PAY_STATUS ,B.AUTH_STATUS_NAME AS 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, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS 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 AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS, 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, PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG, DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, --PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS, --PC1.NOTES AS NEXT_STEP, ---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý' WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý' WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') = '' AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận' WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP, PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH, SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT -- 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 A.DEP_ID= DP.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_PAY_ADVANCE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL.CDTYPE = 'REQ_PAY_METHOD' 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.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D' LEFT JOIN ( SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I' LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D' LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P' LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID --LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID LEFT JOIN ( SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P INNER JOIN ( SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR GROUP BY PR.REQ_ID ) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID --WHERE P.REQ_ID =@p_REQ_PAY_ID ) AS PR ON A.REQ_PAY_ID = PR.REQ_ID LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND (PC.ROLE_USER = @ROLE_ID OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN)) AND PC.STATUS='C' --LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C' LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C' LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID 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.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL) AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL OR (A.REQ_TYPE ='I' AND A.AUTH_STATUS <>'A' AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT')))) AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='') AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL) --Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL) AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL) AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL) --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'') AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL) AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))) AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) ---AND(( @p_IS_TRANSFER='Y' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) OR ISNULL(A.AUTH_STATUS_KT,'') ='A')) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat --OR((@p_IS_TRANSFER='N' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' ))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='') AND(( @p_IS_TRANSFER='Y' AND (@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')) OR(@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')) OR (@p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) OR ISNULL(A.AUTH_STATUS_KT,'') ='A')) ) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((@p_IS_TRANSFER='N' AND (@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' ) OR (@p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2') AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' ) OR (@p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <>'A' )) OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')) AND(((@p_PROCESS='PM' AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0) AND (A.REQ_TYPE IN('I','D','P') OR (@DEP_ID_LG ='DEP000000000014' AND A.REQ_TYPE IN ('I','P','D'))) AND ((A.DEP_ID =@DEP_ID_LG OR A.MAKER_ID =@p_USER_LOGIN OR A.MAKER_ID IS NULL) OR(@BRANCH_TYPE_LG <>'HS' AND A.BRANCH_ID =@p_BRANCH_LOGIN) OR (@p_REQ_PAY_CODE IS NOT NULL AND @p_REQ_PAY_CODE <> '' AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE))) OR @p_PROCESS IS NULL OR @p_PROCESS ='') AND((@p_LEVEL='ALL' AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)) OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) OR (@p_REQ_PAY_CODE IS NOT NULL AND @p_REQ_PAY_CODE <> '' AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE))) AND ((@p_FUNCTION ='KT' AND (EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE X.REQ_ID = A.REQ_PAY_ID AND (X.TLNAME= @p_USER_LOGIN OR X.TLNAME =@p_TRASFER_USER_RECIVE))) OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='' OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') OR @p_FUNCTION ='SIGN') AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='') AND(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE TLNAME =@p_TRASFER_USER_RECIVE AND TYPE_JOB IN ('XL','KS','TP') AND REQ_ID = A.REQ_PAY_ID) OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE='') AND ( A.MAKER_ID =@p_USER_LOGIN OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R')) OR( A.AUTH_STATUS <>'E' AND( (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND A.REQ_TYPE ='I' AND ( (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','TP','KTT','TC')) AND (A.BRANCH_ID =@p_BRANCH_LOGIN OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)) AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)) AND ((@p_AUTH_STATUS ='A' AND ISNULL(PROCESS,'') ='0' AND EXISTS(SELECT * FROM PL_PROCESS WHERE REQ_ID =A.REQ_PAY_ID AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')) OR (@p_AUTH_STATUS ='U' AND ISNULL(PROCESS,'')='') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS ='')) ) OR (@ROLE_ID IN ('NVMS','NVTT','TBP') AND (A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR A.MAKER_ID =@p_MAKER_ID OR A.DEP_ID=@p_DEP_ID) AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')) OR (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDK','PTGD')) AND (A.DVDM_ID =@DVDM_ID OR (A.DVDM_ID IS NULL OR A.DVDM_ID ='')) AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND A.BRANCH_CREATE ='DV0001' AND A.PROCESS<>'' AND A.PROCESS IS NOT NULL AND ((@p_AUTH_STATUS ='A' AND STATUS IN ('P','A')) OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') OR(ISNULL(@p_AUTH_STATUS,'') ='' AND STATUS IN ('C','P','A'))) )) OR (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) AND A.BRANCH_CREATE ='DV0001' AND A.PROCESS<>'' AND A.PROCESS IS NOT NULL AND ((@p_AUTH_STATUS ='A' AND STATUS IN ('P','A')) OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') OR(ISNULL(@p_AUTH_STATUS,'') ='' )) )) )-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW ) -- NGUOC LAI NEU LA TAM UNG KHAC OR (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND A.REQ_TYPE <> 'I' AND (A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR (@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND (A.BRANCH_ID =@p_BRANCH_LOGIN OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)) AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)) AND( A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='' OR (A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>''))) OR (@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))) )) -- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND (@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') AND ( (A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'') OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL) OR ((A.BRANCH_CREATE <> @p_BRANCH_LOGIN AND A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'') OR A.BRANCH_CREATE = @p_BRANCH_LOGIN) AND A.BRANCH_ID IN (SELECT * FROM @tmp))) OR (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND A.BRANCH_ID IN (SELECT * FROM @tmp)) OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'PGD' AND (@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN)) OR(@p_TYPE_SEARCH ='HC' AND (A.DVDM_ID IS NOT NULL AND A.DVDM_ID <>'' AND A.DVDM_ID =@DVDM_ID AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' AND @ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)) OR(A.DEP_ID IN (SELECT * FROM @TMP_DEP) AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' AND @ROLE_ID <> 'TKTGD' AND @ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID))) --OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C'))) OR(@p_TYPE_SEARCH='KT' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)) OR(@p_TYPE_SEARCH='HC' AND (@ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022') AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)) OR(@p_TYPE_SEARCH='HC' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TLNAME =@p_USER_LOGIN AND TYPE_JOB ='XL')) OR(@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') AND A.PROCESS<>'' AND A.PROCESS IS NOT NULL AND ( (@p_FUNCTION ='TF' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER =@ROLE_ID AND STATUS ='C')) OR (ISNULL(@p_FUNCTION,'') <> 'TF' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND ROLE_USER =@ROLE_ID AND ((@p_IS_TRANSFER ='N' AND STATUS ='C') OR (@p_IS_TRANSFER <>'N' AND STATUS IN ('C','P')))))) ) OR(@p_TYPE_SEARCH='PAY' AND (A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 AND ( (@BRANCH_TYPE_LG ='HS' AND (A.DEP_ID =@DEP_ID_LG OR A.MAKER_ID =@p_USER_LOGIN OR A.MAKER_ID IS NULL OR 1=1)) OR (@BRANCH_TYPE_LG <> 'HS' AND A.BRANCH_ID = @p_BRANCH_LOGIN) OR (@p_REQ_PAY_CODE IS NOT NULL AND @p_REQ_PAY_CODE <> '' AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE))) ) OR(@p_TYPE_SEARCH='HC' AND (@ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022') AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)) )) AND ( (A.PAY_AMT = A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'HT')) OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') ) OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU')) OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = '' ) AND (A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X') ORDER BY A.CREATE_DT DESC -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_CONTRACT_MASTER_Ins]' GO /* INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_MASTER','UMA','') INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UMA','1','1') INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_DT','UDT','') INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UDT','1','1') INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTACT','UCO','') INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UCO','1','1') INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_UTIL_LOG','ULO','') INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('ULO','1','1') */ ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_Ins] @p_CONTRACT_ID varchar(15) = NULL, @p_BUILDING_ID varchar(15) = NULL, @p_CONTRACT_NO nvarchar(100) = NULL, @p_VERSION_NO int = NULL, @p_CUST_ID varchar(15) = NULL, @p_INPUT_DT VARCHAR(20) = NULL, @p_AMEND_DT VARCHAR(20) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DATE VARCHAR(20) = NULL, @p_CLOSE_DT VARCHAR(20) = NULL, @p_MONTHS int=0, @p_RENT_PRICE numeric(18) = NULL, @p_NOTES NVARCHAR(MAX)= NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_STATUS VARCHAR(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_VAT DECIMAL(18,0), @p_VAT_AMT DECIMAL(18,0), @p_DEPOSITS_AMT DECIMAL(18,0), @p_PAYMENT_SHEDULE NVARCHAR(500), @p_IS_SEND_APPR VARCHAR(15), @p_SEND_APPR_DT VARCHAR(20), @p_SIGN_USER VARCHAR(15), @p_SIGN_DT VARCHAR(15) AS ---BAODNQ 30/12/2021:Thêm cột vào bảng BUD_CONTRACT_MASTER------- IF (EXISTS ( SELECT * FROM BUD_CONTRACT_MASTER WHERE CONTRACT_NO=@p_CONTRACT_NO AND VERSION_NO=@p_VERSION_NO)) BEGIN SELECT '-1' Result, '' CONTRACT_ID, N'Số hợp đồng này đã tồn tại' ErrorDesc RETURN '0' END BEGIN TRANSACTION DECLARE @l_CONTRACT_ID VARCHAR(15) IF(LEN( @p_CONTRACT_ID)=0 OR @p_CONTRACT_ID IS NULL) EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_MASTER', @p_CONTRACT_ID out IF @p_CONTRACT_ID='' OR @p_CONTRACT_ID IS NULL GOTO ABORT INSERT INTO BUD_CONTRACT_MASTER([CONTRACT_ID],[BUILDING_ID],[CONTRACT_NO],[VERSION_NO],[CUST_ID], [INPUT_DT],[AMEND_DT],[FROM_DT],[TO_DATE],[CLOSE_DT],[MONTHS],[RENT_PRICE],[NOTES], [BRANCH_ID],[RECORD_STATUS],[AUTH_STATUS],[STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID], [APPROVE_DT],[XML_TEMP],[VAT],[VAT_AMT],[DEPOSITS_AMT],[PAYMENT_SHEDULE],[IS_SEND_APPR],[SEND_APPR_DT], [SIGN_USER], [SIGN_DT]) VALUES(@p_CONTRACT_ID ,@p_BUILDING_ID ,@p_CONTRACT_NO ,@p_VERSION_NO ,@p_CUST_ID ,CONVERT(DATE, @p_INPUT_DT, 103) , CONVERT(DATE, @p_AMEND_DT, 103) ,CONVERT(DATE, @p_FROM_DT, 103) ,CONVERT(DATE, @p_TO_DATE, 103) , CONVERT(DATE, @p_CLOSE_DT, 103) ,@p_MONTHS ,@p_RENT_PRICE ,@p_NOTES,@p_BRANCH_ID, '1' ,'U','N',@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,NULL ,@p_XML_TEMP,@p_VAT, (@p_VAT*@p_RENT_PRICE)/100,@p_DEPOSITS_AMT,@p_PAYMENT_SHEDULE,@p_IS_SEND_APPR, @p_SEND_APPR_DT,@p_SIGN_USER,@p_SIGN_DT) ----------------------------------------------------------------------------------------------------- ----INSERT VAO BANG BUD_CONTACT DELETE FROM BUD_CONTACT WHERE CONTRACT_ID = @p_CONTRACT_ID INSERT INTO BUD_CONTACT VALUES(@p_CONTRACT_ID,@p_VERSION_NO,@p_BUILDING_ID,@p_CONTRACT_NO,@p_CUST_ID,CONVERT(DATE, @p_CREATE_DT, 103)) IF @@Error <> 0 GOTO ABORT Declare @hdoc1 INT ----BAODNQ : Thêm các cột vào bảng BUD_CONTRACT_DT--- DECLARE @d_CONTRACT_DTID VARCHAR(15), @d_BUILD_ID VARCHAR(15), @d_VERSION_NO INT, @d_BUILDING_AREA_ID VARCHAR(15), @d_RENT_AREA DECIMAL, @d_RENT_AREA_APP DECIMAL, @d_AREA_REMAIN DECIMAL, @d_RENT_PRICE DECIMAL, @d_NOTES NVARCHAR(MAX), @d_DIEN_TICH_TANG DECIMAL, @d_DIEN_TICH_SD_NOI_BO DECIMAL, @d_DIEN_TICH_DA_CHO_THUE DECIMAL, @d_DIEN_TICH_CON_LAI DECIMAL, @d_DIEN_TICH_CAN_SD DECIMAL, @d_REASON NVARCHAR(MAX), @d_PRICE DECIMAL, @d_TOTAL_AMT DECIMAL, @d_DIEN_TICH_CON_LAI_FINAL DECIMAL, @d_BRANCH_ID NVARCHAR(15), @d_DEP_ID NVARCHAR(15) Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( ----BAODNQ : Thêm các cột vào bảng BUD_CONTRACT_DT--- CONTRACT_DTID VARCHAR(15), BUILD_ID VARCHAR(15), VERSION_NO INT, BUILDING_AREA_ID VARCHAR(15), RENT_AREA DECIMAL, RENT_AREA_APP DECIMAL, AREA_REMAIN DECIMAL, RENT_PRICE DECIMAL, NOTES NVARCHAR(MAX), DIEN_TICH_TANG DECIMAL, DIEN_TICH_SD_NOI_BO DECIMAL, DIEN_TICH_DA_CHO_THUE DECIMAL, DIEN_TICH_CON_LAI DECIMAL, DIEN_TICH_CAN_SD DECIMAL, REASON NVARCHAR(MAX), PRICE DECIMAL, TOTAL_AMT DECIMAL, DIEN_TICH_CON_LAI_FINAL DECIMAL, BRANCH_ID NVARCHAR(15), DEP_ID NVARCHAR(15) ) OPEN XmlDataDoc ----BAODNQ : Thêm các cột vào bảng BUD_CONTRACT_DT--- FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID WHILE @@FETCH_STATUS = 0 BEGIN ---BAODNQ: insert thêm vào các cột trong bảng BUD_CONTRACT_DT--- EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_DT', @d_CONTRACT_DTID out IF @d_CONTRACT_DTID='' OR @d_CONTRACT_DTID IS NULL GOTO ABORT INSERT INTO BUD_CONTRACT_DT([CONTRACT_DTID],[BUILD_ID],[CONTRACT_ID],[VERSION_NO],[BUILDING_AREA_ID],[RENT_AREA],[RENT_AREA_APP], [AREA_REMAIN],[RENT_PRICE],[NOTES], [DIEN_TICH_TANG], [DIEN_TICH_SD_NOI_BO],[DIEN_TICH_DA_CHO_THUE],[DIEN_TICH_CON_LAI], [DIEN_TICH_CAN_SD],[REASON],[PRICE],[TOTAL_AMT],[DIEN_TICH_CON_LAI_FINAL],[BRANCH_ID],[DEP_ID]) VALUES(@d_CONTRACT_DTID ,@d_BUILD_ID ,@p_CONTRACT_ID ,@d_VERSION_NO ,@d_BUILDING_AREA_ID ,@d_RENT_AREA,0,@d_AREA_REMAIN,@d_RENT_PRICE,@d_NOTES, @d_DIEN_TICH_TANG,@d_DIEN_TICH_SD_NOI_BO,@d_DIEN_TICH_DA_CHO_THUE,@d_DIEN_TICH_CON_LAI,@d_DIEN_TICH_CAN_SD,@d_REASON, @d_PRICE,@d_TOTAL_AMT,@d_DIEN_TICH_CON_LAI_FINAL,@d_BRANCH_ID,@d_DEP_ID) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc ---BAODNQ: sửa lấy tổng thành TOTAL_AMT--- SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) UPDATE BUD_CONTRACT_MASTER --SET RENT_PRICE=@p_RENT_PRICE*MONTHS SET RENT_PRICE = @p_RENT_PRICE WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO ---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'INSERT', @p_MAKER_ID, GETDATE(), N'Thêm mới thông tin khai báo DTSD nội bộ thành công' , N'Thêm mới thông tin khai báo DTSD nội bộ' ) COMMIT TRANSACTION SELECT '0' as Result, @p_CONTRACT_ID CONTRACT_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN --CLOSE XmlDataDoc --DEALLOCATE XmlDataDoc ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_MASTER_Search]' GO ALTER PROCEDURE [dbo].[BUD_MASTER_Search] @p_BUILDING_ID varchar(15) = NULL, @p_ASSET_ID varchar(15) = NULL, @p_BUILDING_NAME nvarchar(1000) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_ADDRESS nvarchar(800) = NULL, @p_OWNER_OR_RENT varchar(1) = NULL, @p_NUM_FLOOR int = NULL, @p_AREA numeric(18) = NULL, @p_TOTAL_AREA numeric(18) = NULL, @p_RENT_TOTAL_AREA numeric(18) = NULL, @p_UTILZED_AREA numeric(18) = NULL, @p_NOTES nvarchar(MAX) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_RENT_AMT DECIMAL(18,0) =NULL, @p_DEPOSITS_AMT DECIMAL(18,0) =NULL, @p_RENT_TIME int = NULL, @p_TOP INT = 10, @p_FROM_FLOOR int= NULL, @p_TO_FLOOR int = NULL, @p_FROMDATE VARCHAR(20) = NULL, @p_TODATE VARCHAR(20)= NULL, @p_LEVEL VARCHAR(15)='ALL', @p_CUSTOMER_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) AS --datmq:Thêm cấu trúc phân trang--- ---BAODNQ: Thêm tham số tìm kiếm theo CUSTOMER_ID + kết bảng TR_CONTRACT, LS_CUSTOMER-- BEGIN -- PAGING declare @p_BRANCH_LOGIN VARCHAR(15) set @p_BRANCH_LOGIN = (select TLSUBBRID from TL_USER where TLNANME=@p_USER_LOGIN) IF @p_BRANCH_ID IS NOT NULL AND @p_BRANCH_ID <> '' SET @p_BRANCH_LOGIN = @p_BRANCH_ID DECLARE @p_USER_LOGIN_ROLE VARCHAR(50) SET @p_USER_LOGIN_ROLE = (SELECT RoleName FROM TL_USER WHERE TLNANME = @p_USER_LOGIN) 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) -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME,C.BRANCH_NAME,''HINHTHUC_SOHUU, (SELECT SUM(DT.INTERNAL_AREA) FROM BUD_AREA_DT DT WHERE A.BUILDING_ID= DT.BUILD_ID) INTERNAL_ARE, D.CONTRACT_CODE, D.CONTRACT_NAME, E.CUSTOMER_NAME,F.TLFullName AS SIGN_USER_FULLNAME -- SELECT END FROM BUD_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID LEFT JOIN LS_CUSTOMER E ON D.CUST_ID = E.CUSTOMER_ID LEFT JOIN TL_USER F ON A.SIGN_USER = F.TLNANME WHERE 1 = 1 AND (A.BUILDING_ID LIKE '%' + @p_BUILDING_ID + '%' OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '') AND (A.BUILDING_NAME LIKE '%' + @p_BUILDING_NAME + '%' OR @p_BUILDING_NAME IS NULL OR @p_BUILDING_NAME = '') AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.ADDRESS LIKE '%' + @p_ADDRESS + '%' OR @p_ADDRESS IS NULL OR @p_ADDRESS = '') AND (A.OWNER_OR_RENT LIKE '%' + @p_OWNER_OR_RENT + '%' OR @p_OWNER_OR_RENT IS NULL OR @p_OWNER_OR_RENT = '') AND (A.NUM_FLOOR >= @p_FROM_FLOOR OR @p_FROM_FLOOR IS NULL OR @p_FROM_FLOOR = 0) AND (A.NUM_FLOOR <= @p_TO_FLOOR OR @p_TO_FLOOR IS NULL OR @p_TO_FLOOR = 0) AND (A.AREA = @p_AREA OR @p_AREA IS NULL OR @p_AREA = '') AND (A.TOTAL_AREA = @p_TOTAL_AREA OR @p_TOTAL_AREA IS NULL OR @p_TOTAL_AREA = '') AND (A.RENT_TOTAL_AREA = @p_RENT_TOTAL_AREA OR @p_RENT_TOTAL_AREA IS NULL OR @p_RENT_TOTAL_AREA = '') AND (A.UTILZED_AREA = @p_UTILZED_AREA OR @p_UTILZED_AREA IS NULL OR @p_UTILZED_AREA = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp)) AND (D.CUST_ID LIKE '%' + @p_CUSTOMER_ID + '%' OR @p_CUSTOMER_ID IS NULL OR @p_CUSTOMER_ID = '') AND (A.MAKER_ID = @p_USER_LOGIN OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') OR ((@p_USER_LOGIN_ROLE IN ('GDDV','PGD', 'TP', 'PP','TPGD','PPGD')) AND A.IS_SEND_APPR = 'Y' AND ( (ISNULL(A.SIGN_USER,'') ='' OR ((ISNULL(A.SIGN_USER,'') <>'' AND A.SIGN_DT IS NOT NULL ))) ) ) ) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.AUTH_STATUS_NAME,C.BRANCH_NAME,''HINHTHUC_SOHUU, (SELECT SUM(DT.INTERNAL_AREA) FROM BUD_AREA_DT DT WHERE A.BUILDING_ID= DT.BUILD_ID) INTERNAL_ARE, D.CONTRACT_CODE, D.CONTRACT_NAME, E.CUSTOMER_NAME,F.TLFullName AS SIGN_USER_FULLNAME -- SELECT END FROM BUD_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID LEFT JOIN LS_CUSTOMER E ON D.CUST_ID = E.CUSTOMER_ID LEFT JOIN TL_USER F ON A.SIGN_USER = F.TLNANME WHERE 1 = 1 AND (A.BUILDING_ID LIKE '%' + @p_BUILDING_ID + '%' OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '') AND (A.BUILDING_NAME LIKE N'%' + @p_BUILDING_NAME + '%' OR @p_BUILDING_NAME IS NULL OR @p_BUILDING_NAME = '') AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.ADDRESS LIKE '%' + @p_ADDRESS + '%' OR @p_ADDRESS IS NULL OR @p_ADDRESS = '') AND (A.OWNER_OR_RENT LIKE '%' + @p_OWNER_OR_RENT + '%' OR @p_OWNER_OR_RENT IS NULL OR @p_OWNER_OR_RENT = '') AND (A.NUM_FLOOR >= @p_FROM_FLOOR OR @p_FROM_FLOOR IS NULL OR @p_FROM_FLOOR = 0) AND (A.NUM_FLOOR <= @p_TO_FLOOR OR @p_TO_FLOOR IS NULL OR @p_TO_FLOOR = 0) AND (A.AREA = @p_AREA OR @p_AREA IS NULL OR @p_AREA = 0) AND (A.TOTAL_AREA = @p_TOTAL_AREA OR @p_TOTAL_AREA IS NULL OR @p_TOTAL_AREA = 0) AND (A.RENT_TOTAL_AREA = @p_RENT_TOTAL_AREA OR @p_RENT_TOTAL_AREA IS NULL OR @p_RENT_TOTAL_AREA = 0) AND (A.UTILZED_AREA = @p_UTILZED_AREA OR @p_UTILZED_AREA IS NULL OR @p_UTILZED_AREA = 0) AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (A.APPROVE_DT >=CONVERT(DATE, @p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE = '') AND (A.APPROVE_DT <=CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE = '') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp) OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='') AND (D.CUST_ID LIKE '%' + @p_CUSTOMER_ID + '%' OR @p_CUSTOMER_ID IS NULL OR @p_CUSTOMER_ID = '') AND (A.MAKER_ID = @p_USER_LOGIN OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') OR ((@p_USER_LOGIN_ROLE IN ('GDDV','PGD', 'TP', 'PP','TPGD','PPGD')) AND A.IS_SEND_APPR = 'Y' AND ( (ISNULL(A.SIGN_USER,'') ='' OR ((ISNULL(A.SIGN_USER,'') <>'' AND A.SIGN_DT IS NOT NULL ))) ) ) ) ORDER BY A.CREATE_DT DESC -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_CONTRACT_MASTER_Upd]' GO /*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_MASTER','UMA','') INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UMA','1','1') INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_DT','UDT','') INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UDT','1','1') */ ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_Upd] @p_CONTRACT_ID varchar(15) = NULL, @p_BUILDING_ID varchar(15) = NULL, @p_CONTRACT_NO nvarchar(100) = NULL, @p_VERSION_NO int = NULL, @p_CUST_ID varchar(15) = NULL, @p_INPUT_DT VARCHAR(20) = NULL, @p_AMEND_DT VARCHAR(20) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DATE VARCHAR(20) = NULL, @p_CLOSE_DT VARCHAR(20) = NULL, @p_MONTHS int = NULL, @p_RENT_PRICE numeric(18) = NULL, @p_NOTES NVARCHAR(MAX)= NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_STATUS VARCHAR(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_VAT DECIMAL(18,0), @p_VAT_AMT DECIMAL(18,0), @p_DEPOSITS_AMT DECIMAL(18,0), @p_PAYMENT_SHEDULE NVARCHAR(500), @p_IS_SEND_APPR VARCHAR(15), @p_SEND_APPR_DT VARCHAR(20), @p_SIGN_USER VARCHAR(15), @p_SIGN_DT VARCHAR(15) AS /* --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM BUD_CONTRACT_MASTER WHERE VERSION_NO=@p_VERSION_NO SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' VERSION_NO, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ BEGIN TRANSACTION IF (@p_STATUS = 'C') BEGIN UPDATE BUD_CONTRACT_MASTER SET STATUS= @p_STATUS, AUTH_STATUS='U', APPROVE_DT=NULL, CHECKER_ID=NULL WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO END ELSE BEGIN DELETE FROM BUD_CONTRACT_DT WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO= @p_VERSION_NO Declare @hdoc1 INT ---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML--- DECLARE @d_CONTRACT_DTID VARCHAR(15), @d_BUILD_ID VARCHAR(15), @d_VERSION_NO INT, @d_BUILDING_AREA_ID VARCHAR(15), @d_RENT_AREA DECIMAL, @d_RENT_AREA_APP DECIMAL, @d_AREA_REMAIN DECIMAL, @d_RENT_PRICE DECIMAL, @d_NOTES NVARCHAR(MAX), @d_DIEN_TICH_TANG DECIMAL, @d_DIEN_TICH_SD_NOI_BO DECIMAL, @d_DIEN_TICH_DA_CHO_THUE DECIMAL, @d_DIEN_TICH_CON_LAI DECIMAL, @d_DIEN_TICH_CAN_SD DECIMAL, @d_REASON NVARCHAR(MAX), @d_PRICE DECIMAL, @d_TOTAL_AMT DECIMAL, @d_DIEN_TICH_CON_LAI_FINAL DECIMAL, @d_BRANCH_ID NVARCHAR(15), @d_DEP_ID NVARCHAR(15) Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( ---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML--- CONTRACT_DTID VARCHAR(15), BUILD_ID VARCHAR(15), VERSION_NO INT, BUILDING_AREA_ID VARCHAR(15), RENT_AREA DECIMAL, RENT_AREA_APP DECIMAL, AREA_REMAIN DECIMAL, RENT_PRICE DECIMAL, NOTES NVARCHAR(MAX), DIEN_TICH_TANG DECIMAL, DIEN_TICH_SD_NOI_BO DECIMAL, DIEN_TICH_DA_CHO_THUE DECIMAL, DIEN_TICH_CON_LAI DECIMAL, DIEN_TICH_CAN_SD DECIMAL, REASON NVARCHAR(MAX), PRICE DECIMAL, TOTAL_AMT DECIMAL, DIEN_TICH_CON_LAI_FINAL DECIMAL, BRANCH_ID NVARCHAR(15), DEP_ID NVARCHAR(15) ) OPEN XmlDataDoc ---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML--- FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID WHILE @@FETCH_STATUS = 0 BEGIN ---BAODNQ: insert thêm vào các cột trong bảng BUD_CONTRACT_DT--- IF(LEN( @d_CONTRACT_DTID)=0) EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_DT', @d_CONTRACT_DTID out IF @d_CONTRACT_DTID='' OR @d_CONTRACT_DTID IS NULL GOTO ABORT INSERT INTO BUD_CONTRACT_DT([CONTRACT_DTID],[BUILD_ID],[CONTRACT_ID],[VERSION_NO],[BUILDING_AREA_ID],[RENT_AREA],[RENT_AREA_APP],[AREA_REMAIN],[RENT_PRICE],[NOTES], [DIEN_TICH_TANG],[DIEN_TICH_SD_NOI_BO],[DIEN_TICH_DA_CHO_THUE],[DIEN_TICH_CON_LAI],[DIEN_TICH_CAN_SD],[REASON],[PRICE],[TOTAL_AMT], [DIEN_TICH_CON_LAI_FINAL],[BRANCH_ID], [DEP_ID]) VALUES(@d_CONTRACT_DTID ,@d_BUILD_ID ,@p_CONTRACT_ID ,@d_VERSION_NO ,@d_BUILDING_AREA_ID ,@d_RENT_AREA,@d_RENT_AREA_APP,@d_AREA_REMAIN,@d_RENT_PRICE,@d_NOTES, @d_DIEN_TICH_TANG,@d_DIEN_TICH_SD_NOI_BO,@d_DIEN_TICH_DA_CHO_THUE,@d_DIEN_TICH_CON_LAI,@d_DIEN_TICH_CAN_SD,@d_REASON,@d_PRICE,@d_TOTAL_AMT,@d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID,@d_DEP_ID) IF @@Error <> 0 GOTO ABORT ---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML--- FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN , @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc IF @@Error <> 0 GOTO ABORT ---BAODNQ: sửa lấy tổng thành TOTAL_AMT--- SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) ---BAODNQ 30/12/2021:Thêm cột vào bảng BUD_CONTRACT_MASTER------- UPDATE BUD_CONTRACT_MASTER SET BUILDING_ID =@p_BUILDING_ID, CONTRACT_NO =@p_CONTRACT_NO, --VERSION_NO=@p_VERSION_NO, CUST_ID=@p_CUST_ID, INPUT_DT = CONVERT(DATE,@p_INPUT_DT,103), AMEND_DT = CONVERT(DATE,@p_AMEND_DT,103), FROM_DT = CONVERT(DATE,@p_FROM_DT,103), TO_DATE = CONVERT(DATE,@p_TO_DATE,103), CLOSE_DT = CONVERT(DATE,@p_CLOSE_DT,103), AUTH_STATUS = @p_AUTH_STATUS, STATUS= @p_STATUS, MONTHS = @p_MONTHS, --RENT_PRICE=@p_RENT_PRICE*@p_MONTHS, RENT_PRICE = @p_RENT_PRICE, [NOTES] = @p_NOTES, VAT =@p_VAT, VAT_AMT =(@p_VAT*@p_RENT_PRICE)/100, DEPOSITS_AMT =@p_DEPOSITS_AMT, PAYMENT_SHEDULE =@p_PAYMENT_SHEDULE --IS_SEND_APPR = @p_IS_SEND_APPR, --SEND_APPR_DT = @p_SEND_APPR_DT, --SIGN_USER = @p_SIGN_USER, --SIGN_DT = @p_SIGN_DT WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO END ---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'UPDATE', @p_MAKER_ID, GETDATE(), N'Cập nhật thông tin khai báo DTSD nội bộ thành công' , N'Cập nhật thông tin khai báo DTSD nội bộ' ) COMMIT TRANSACTION SELECT '0' as Result, @p_CONTRACT_ID CONTRACT_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlDataDoc DEALLOCATE XmlDataDoc ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_PO_DETAIL_ById]' GO -- Stored Procedure /* [TR_PO_DETAIL_ById] 'TRPM00000000016' */ ALTER PROCEDURE [dbo].[TR_PO_DETAIL_ById] @PO_ID varchar(500), @BRANCH_LOGIN varchar(15) = NULL, @ASSET_TYPE varchar(15) = NULL AS DECLARE @l_CCLD_VALUE decimal(18,0) = 0 DECLARE @l_PAY_ID VARCHAR(15) = '' DECLARE @l_PAY_TYPE VARCHAR(100) = '' DECLARE @l_PAY_ACC VARCHAR(100) = '' DECLARE @l_PAY_DATE Datetime DECLARE @l_BRANCH_TYPE VARCHAR(15) SET @l_CCLD_VALUE = (SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'ASSET_VALUE') IF @@ERROR <> 0 SET @l_CCLD_VALUE = 0 SELECT @l_BRANCH_TYPE = BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_LOGIN IF @@ERROR <> 0 SET @l_BRANCH_TYPE ='' --THIEUVQ 21092016 - THEM TIM KIEM TU NHIEU PO DECLARE @LSTPO TABLE (POID VARCHAR(15)) INSERT INTO @LSTPO SELECT * FROM wsiSplit(@PO_ID,';') SELECT A.PD_ID, A.PO_ID, A.PLAN_ID, A.TRADE_ID, A.REQ_DT_ID, A.GOODS_ID, A.[DESCRIPTION], A.UNIT_ID, A.QUANTITY, A.PRICE, A.TOTAL_AMT, A.IS_DELIVERY, A.DELIVERY_DT, A.PAYMENT_STATUS, A.AMOUNT_PAID, A.PAID_DT, A.INVOICENO, A.NOTES, A.RECEIVE_BRANCH, A.RECEIVE_ADDR, A.RECEIVE_PERSON, A.RECEIVE_TEL, A.RECORD_STATUS, A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS, A.CHECKER_ID, A.APPROVE_DT, A.EXP_DELIVERY_DT, A.GOODS_NAME, A.INVOICE_DT, A.GOODSTYPE_REAL, A.VAT, A.PRICE_VAT, A.CONTRACT_DT, A.PRICE AS PRICE_D, E.BRANCH_CODE, E.BRANCH_ID,E.BRANCH_NAME, B.HH_CODE AS GD_CODE, B.GD_ID, ISNULL(CTDT.GD_NAME_REAL, B.HH_NAME) AS GD_NAME, --THIEUVQ LAY TEN TRONG HOP DONG NEU LINK DEN HOP DONG C.UNIT_CODE, C.UNIT_ID, C.UNIT_NAME, F.PLAN_CODE, F.PLAN_NAME, ISNULL((A.TOTAL_AMT - A.AMOUNT_PAID),0) AS REMAIN_AMOUNT, G.BRANCH_CODE AS R_BRANCH_CODE, G.BRANCH_NAME AS R_BRANCH_NAME, @l_PAY_ID AS PAY_ID, @l_PAY_TYPE AS PAY_TYPE, @l_PAY_ACC AS ACC, ( SELECT SUM(PAID_AMT) FROM ASS_PAYMENT_DT H WHERE H.REF_DETAIL_ID = A.PD_ID AND H.REF_MASTER_ID = A.PO_ID) AS AMT, @l_PAY_DATE AS PAY_DATE, GR.GD_RETYPE_ID, GR.GD_RETYPE_CODE, GR.TYPE_NAME AS GDREAL_TYPE_NAME, POUP_DT.SERIAL_NO, POUP_DT.GUARANTEE, TY.HH_TYPE_CODE, TY.HH_TYPE_NAME, A.CURRENCY, A.RATE,A.TOTAL_AMT_FN FROM TR_PO_DETAIL A --LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID LEFT JOIN CM_HANGHOA B ON A.GOODS_ID= B.HH_ID LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID LEFT JOIN PL_MASTER F ON F.PLAN_ID = A.PLAN_ID LEFT JOIN CM_BRANCH E ON E.BRANCH_ID = F.BRANCH_ID LEFT JOIN CM_BRANCH G ON G.BRANCH_ID = A.RECEIVE_BRANCH LEFT JOIN CM_GOODSTYPE_REAL GR ON GR.GD_RETYPE_ID = A.GOODSTYPE_REAL LEFT JOIN TR_CONTRACT_DT CTDT ON CTDT.CD_ID = A.CONTRACT_DT LEFT JOIN TR_PO_UP_DETAIL POUP_DT ON POUP_DT.PD_UP_ID = A.PD_ID LEFT JOIN CM_HANGHOA_TYPE TY ON B.HH_TYPE_ID = TY.HH_TYPE_ID --LEFT JOIN ASS_PAYMENT_DT H ON H.REF_DETAIL_ID = A.PD_ID AND H.REF_MASTER_ID = A.PO_ID WHERE --A.PO_ID IN (SELECT * FROM @LSTPO) --AND (A.RECEIVE_BRANCH = @BRANCH_LOGIN OR @BRANCH_LOGIN IS NULL OR @BRANCH_LOGIN = '' OR (@l_BRANCH_TYPE = 'HS' AND A.PRICE > @l_CCLD_VALUE)) AND ((@ASSET_TYPE = 'TSCD' AND A.PRICE >= @l_CCLD_VALUE) OR (@ASSET_TYPE = 'CCLD' AND A.PRICE < @l_CCLD_VALUE) OR @ASSET_TYPE IS NULL OR @ASSET_TYPE = '') --EXEC TR_PO_DETAIL_ById 'TRPM00000000001', 'DV0001' GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[PL_REQUEST_DOC_CHECK_YEAR]' GO CREATE PROC [dbo].[PL_REQUEST_DOC_CHECK_YEAR] @p_REQ_ID VARCHAR(15) NULL AS BEGIN SELECT TOP 1 A.*,B.YEAR AS NAMNGANSACH FROM PL_REQUEST_DOC_DT A LEFT JOIN PL_MASTER B ON A.PLAN_ID = B.PLAN_ID WHERE A.REQ_ID = @p_REQ_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_MASTER_SendAppr]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_MASTER_SendAppr] @p_CONTRACT_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL, @p_SEND_APPR_DT VARCHAR(20) = NULL AS BEGIN TRANSACTION UPDATE BUD_CONTRACT_MASTER SET IS_SEND_APPR = 'Y', SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103) WHERE CONTRACT_ID = @p_CONTRACT_ID IF @@ERROR <> 0 GOTO ABORT DECLARE @l_IS_SEND_APPR VARCHAR(15) SET @l_IS_SEND_APPR = (SELECT IS_SEND_APPR FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_CONTRACT_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Người tạo gửi phê duyệt thành công', N' Người tạo gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, '' CONTRACT_ID, @l_IS_SEND_APPR IS_SEND_APPR, N'Hồ sơ số: '+@p_CONTRACT_ID+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_SendAppr]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_SendAppr] @p_CONTRACT_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL, @p_SEND_APPR_DT VARCHAR(20) = NULL AS BEGIN TRANSACTION UPDATE BUD_CONTRACT_CUST_MASTER SET IS_SEND_APPR = 'Y', SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103) WHERE CONTRACT_ID = @p_CONTRACT_ID IF @@ERROR <> 0 GOTO ABORT DECLARE @l_IS_SEND_APPR VARCHAR(15) SET @l_IS_SEND_APPR = (SELECT IS_SEND_APPR FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_CONTRACT_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Người tạo gửi phê duyệt thành công', N'Người tạo gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, '' CONTRACT_ID, @l_IS_SEND_APPR IS_SEND_APPR, N'Hợp đồng: '+ (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID)+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[fChuyenCoDauThanhKhongDau]' GO CREATE FUNCTION [dbo].[fChuyenCoDauThanhKhongDau](@inputVar NVARCHAR(MAX) ) RETURNS NVARCHAR(MAX) AS BEGIN IF (@inputVar IS NULL OR @inputVar = '') RETURN '' DECLARE @RT NVARCHAR(MAX) DECLARE @SIGN_CHARS NCHAR(256) DECLARE @UNSIGN_CHARS NCHAR (256) SET @SIGN_CHARS = N'ăâđêôơưàảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệếìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵýĂÂĐÊÔƠƯÀẢÃẠÁẰẲẴẶẮẦẨẪẬẤÈẺẼẸÉỀỂỄỆẾÌỈĨỊÍÒỎÕỌÓỒỔỖỘỐỜỞỠỢỚÙỦŨỤÚỪỬỮỰỨỲỶỸỴÝ' + NCHAR(272) + NCHAR(208) SET @UNSIGN_CHARS = N'aadeoouaaaaaaaaaaaaaaaeeeeeeeeeeiiiiiooooooooooooooouuuuuuuuuuyyyyyAADEOOUAAAAAAAAAAAAAAAEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOUUUUUUUUUUYYYYYDD' DECLARE @COUNTER int DECLARE @COUNTER1 int SET @COUNTER = 1 WHILE (@COUNTER <= LEN(@inputVar)) BEGIN SET @COUNTER1 = 1 WHILE (@COUNTER1 <= LEN(@SIGN_CHARS) + 1) BEGIN IF UNICODE(SUBSTRING(@SIGN_CHARS, @COUNTER1,1)) = UNICODE(SUBSTRING(@inputVar,@COUNTER ,1)) BEGIN IF @COUNTER = 1 SET @inputVar = SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1) + SUBSTRING(@inputVar, @COUNTER+1,LEN(@inputVar)-1) ELSE SET @inputVar = SUBSTRING(@inputVar, 1, @COUNTER-1) +SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1) + SUBSTRING(@inputVar, @COUNTER+1,LEN(@inputVar)- @COUNTER) BREAK END SET @COUNTER1 = @COUNTER1 +1 END SET @COUNTER = @COUNTER +1 END SET @inputVar = replace(@inputVar,'','') RETURN @inputVar END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_PAY_METHOD_Search]' GO CREATE PROC [dbo].[TR_REQ_PAY_METHOD_Search] @p_ACC_NO varchar(15), @p_ACC_NAME varchar(15), @p_ISSUED_BY varchar(250), @p_ISSUED_DT VARCHAR(20), @p_TOP INT = 10 AS BEGIN -- PAGING SET @p_TOP = NULL DECLARE @DEP_CODE VARCHAR(15) SET @DEP_CODE =(SELECT DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =(SELECT TOP 1 SECUR_CODE FROM TL_USER WHERE TLNANME =@p_ISSUED_BY)) IF(@p_TOP IS NULL OR @p_TOP='' OR @p_TOP=0) BEGIN -- PAGING BEGIN SELECT MAX(A.ACC_NO) AS ACC_NO, CASE WHEN B.ACC_NAME IS NOT NULL AND B.ACC_NAME <> '' THEN UPPER(B.ACC_NAME) ELSE dbo.fChuyenCoDauThanhKhongDau(MAX(A.ACC_NAME)) END AS ACC_NAME, MAX(A.ISSUED_BY) AS ISSUED_BY , MAX(A.ISSUED_DT) AS ISSUED_DT -- SELECT END FROM TR_REQ_PAY_METHOD A LEFT JOIN CM_ACCOUNT B ON A.ACC_NO = B.ACC_NO WHERE (A.ACC_NO <> NULL OR A.ACC_NO <> '') AND (A.ACC_NAME <> NULL OR A.ACC_NAME <> '') AND (A.ACC_NO LIKE '%' + @p_ACC_NO + '%' OR @p_ACC_NO IS NULL OR @p_ACC_NO = '') AND (A.ACC_NAME LIKE '%' + @p_ACC_NAME + '%' OR @p_ACC_NAME IS NULL OR @p_ACC_NAME = '') --AND (A.ISSUED_BY LIKE '%' + @p_ISSUED_BY + '%' OR @p_ISSUED_BY IS NULL OR @p_ISSUED_BY = '') AND (A.MAKER_ID =@p_ISSUED_BY OR @p_ISSUED_BY ='' OR @p_ISSUED_BY IS NULL OR @DEP_CODE ='0690604') AND (A.ISSUED_DT LIKE '%' + @p_ISSUED_DT + '%' OR @p_ISSUED_DT IS NULL OR @p_ISSUED_DT = '') GROUP BY A.ACC_NO, A.CHECK_IN,B.ACC_NAME -- PAGING END END ELSE BEGIN -- PAGING BEGIN SELECT TOP (CONVERT(INT, @P_TOP)) MAX(A.ACC_NO) AS ACC_NO, CASE WHEN B.ACC_NAME IS NOT NULL AND B.ACC_NAME <> '' THEN UPPER(B.ACC_NAME) ELSE dbo.fChuyenCoDauThanhKhongDau(MAX(A.ACC_NAME)) END AS ACC_NAME, MAX(A.ISSUED_BY) AS ISSUED_BY , MAX(A.ISSUED_DT) AS ISSUED_DT -- SELECT END FROM TR_REQ_PAY_METHOD A LEFT JOIN CM_ACCOUNT B ON A.ACC_NO = B.ACC_NO WHERE (A.ACC_NO <> NULL OR A.ACC_NO <> '') AND (A.ACC_NAME <> NULL OR A.ACC_NAME <> '') AND (A.ACC_NO LIKE '%' + @p_ACC_NO + '%' OR @p_ACC_NO IS NULL OR @p_ACC_NO = '') AND (A.ACC_NAME LIKE '%' + @p_ACC_NAME + '%' OR @p_ACC_NAME IS NULL OR @p_ACC_NAME = '') --AND (A.ISSUED_BY LIKE '%' + @p_ISSUED_BY + '%' OR @p_ISSUED_BY IS NULL OR @p_ISSUED_BY = '') AND (A.MAKER_ID =@p_ISSUED_BY OR @p_ISSUED_BY ='' OR @p_ISSUED_BY IS NULL OR @DEP_CODE ='0690604') AND (A.ISSUED_DT LIKE '%' + @p_ISSUED_DT + '%' OR @p_ISSUED_DT IS NULL OR @p_ISSUED_DT = '') GROUP BY A.ACC_NO, A.CHECK_IN,B.ACC_NAME -- PAGING END END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CM_DEPARTMENT_ByCode]' GO CREATE PROCEDURE [dbo].[CM_DEPARTMENT_ByCode] @DEP_CODE varchar(15) AS SELECT TOP 1 D.*, b.BRANCH_NAME AS BRANCH_NAME, FD.DEP_ID AS FATHER_ID, FD.DEP_NAME AS FATHER_NAME FROM CM_DEPARTMENT d LEFT JOIN CM_BRANCH b ON d.BRANCH_ID = b.BRANCH_ID LEFT JOIN CM_DEPARTMENT FD ON d.FATHER_ID = FD.DEP_ID WHERE d.DEP_CODE= @DEP_CODE GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_CHECK_ROLE_APPROVE]' GO ALTER PROCEDURE [dbo].[TR_CHECK_ROLE_APPROVE] @TYPE VARCHAR(15) = NULL, @p_REQ_ID varchar(15) = NULL, @p_USER_LOGIN varchar(15) = NULL AS BEGIN TRANSACTION IF(@TYPE <> 'ADV_PAY') BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN AND TYPE_JOB IN ('TP','KS'))) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END END -- KHAI BAO THEM ROLE NHAN UY QUYEN DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50)) DECLARE @ROLE_ID VARCHAR(50) SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) INSERT INTO @TABLE_ROLE SELECT @ROLE_ID INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@p_USER_LOGIN AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)) DECLARE @AUTHOR TABLE ( ROLE_ID VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), BRANCH_TYPE VARCHAR(20) ) DECLARE @AUTHOR_DVDM TABLE ( ROLE_ID VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), DVDM_ID VARCHAR(20) ) DECLARE @AUTHOR_DMMS TABLE ( ROLE_ID VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), DMMS_ID VARCHAR(20) ) INSERT INTO @AUTHOR ( ROLE_ID, BRANCH_ID, DEP_ID, BRANCH_TYPE ) SELECT RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID WHERE TLNANME=@p_USER_LOGIN UNION ALL SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='') LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID WHERE TLNANME=@p_USER_LOGIN UNION ALL SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1 LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) UNION ALL SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1 LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='') LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) INSERT INTO @AUTHOR_DVDM ( ROLE_ID, BRANCH_ID, DEP_ID, DVDM_ID ) SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID WHERE TU.TLNANME=@p_USER_LOGIN UNION ALL SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNANME=@p_USER_LOGIN UNION ALL SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) UNION ALL SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) INSERT INTO @AUTHOR_DMMS ( ROLE_ID, BRANCH_ID, DEP_ID, DMMS_ID ) SELECT RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TU.SECUR_CODE=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS') WHERE TLNANME=@p_USER_LOGIN UNION ALL SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='') LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TU.SECUR_CODE=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS') WHERE TLNANME=@p_USER_LOGIN UNION ALL SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1 LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TM1.DEP_ID=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS') WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) UNION ALL SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1 LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='') LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TM1.DEP_ID=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS') WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) IF(@TYPE='ADV_PAY') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Phiếu đã duyệt xong. Vui lòng chờ các giao dịch tiếp theo để thực hiện phê duyệt' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND ROLE_USER IN (SELECT * FROM @TABLE_ROLE)) ) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND ROLE_USER IN (SELECT * FROM @TABLE_ROLE))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc RETURN '-1' END END --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND BRANCH_CREATE ='DV0001') --BEGIN -- IF(EXISTS(SELECT * FROM PL_PROCESS WHERE CHEC)) --END --ELSE --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' ErrorDesc -- RETURN '-1' --END END ELSE IF (@TYPE ='CORE') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT ='A') OR EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT ='A')) BEGIN IF(EXISTS(SELECT * FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REQ_ID AND ISNULL(REF_NO,'') <> '')) BEGIN ROLLBACK TRANSACTION SELECT '6' as Result, N'Giao dịch được phê duyệt thành công trên AMS và hạch toán thành công vào hệ thống Core FC' ErrorDesc RETURN '6' END ELSE BEGIN ROLLBACK TRANSACTION SELECT '5' as Result, N'Giao dịch được phê duyệt thành công nhưng bắn vào Core FC thất bại. Vui lòng rà soát lại nội dung hạch toán (không được phép chứa kí tự & hoặc kí tự <)' ErrorDesc RETURN '5' END END ELSE BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT <> 'A') AND EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT <>'A')) BEGIN ROLLBACK TRANSACTION SELECT '7' as Result, '' ErrorDesc RETURN '7' END END END ELSE IF(@TYPE ='CON_LAYOUT') BEGIN -- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND (@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD')))) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END -- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKHDQT' AND (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT')))) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END IF(EXISTS(SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_REQ_ID AND PROCESS_ID ='APPROVE')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' END IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND ( EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND AUTH.BRANCH_ID=PR.BRANCH_ID AND (AUTH.DEP_ID=PR.DEP_ID OR AUTH.BRANCH_TYPE<>'HS')) OR EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID) OR ( (PR.BRANCH_ID IS NULL OR PR.BRANCH_ID='') AND (PR.DVDM_ID ='' OR PR.DVDM_ID IS NULL) ) ))) BEGIN print 'haha' ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' END END ELSE BEGIN -- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND (@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD')))) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END -- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKHDQT' AND (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT')))) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN)) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND ( EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND AUTH.BRANCH_ID=PR.BRANCH_ID AND (AUTH.DEP_ID=PR.DEP_ID OR AUTH.BRANCH_TYPE<>'HS')) OR EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID) OR EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DMMS AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND EXISTS (SELECT * FROM dbo.TR_REQUEST_DOC A WHERE A.REQ_ID=@p_REQ_ID AND A.DMMS_ID=AUTH.DMMS_ID AND A.PROCESS_ID='DMMS')) OR EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND EXISTS (SELECT * FROM dbo.TR_REQUEST_DOC A WHERE A.REQ_ID=@p_REQ_ID AND A.DMMS_ID=AUTH.DVDM_ID AND A.PROCESS_ID='DMMS')) OR EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PR.ID AND TLNAME=@p_USER_LOGIN AND TYPE_JOB='KS' AND STATUS_JOB='C') OR ( (PR.BRANCH_ID IS NULL OR PR.BRANCH_ID='') AND (PR.DVDM_ID ='' OR PR.DVDM_ID IS NULL) ) ))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' END -- GiaNT IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='P' AND PROCESS_ID ='KT' AND (@ROLE_ID ='KSV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='KSV')))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' END END COMMIT TRANSACTION print 'haha' SELECT '0' as Result, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_MASTER_Confirm]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_MASTER_Confirm] ------STORE duyệt cấp phê duyệt trung gian----------- @p_CONTRACT_ID varchar(15), @p_SIGN_USER VARCHAR(12), @p_SIGN_DT VARCHAR(20) AS BEGIN TRANSACTION -------Trường hợp người duyệt là cấp phê duyệt trung gian, update SIGN_DT--------- UPDATE BUD_CONTRACT_MASTER SET SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103), AUTH_STATUS = 'U' WHERE CONTRACT_ID = @p_CONTRACT_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'APPROVE', @p_SIGN_USER, GETDATE(), N'Cấp trung gian xác nhận thông tin khai báo DTSD nội bộ thành công' , N'Cấp trung gian xác nhận thông tin khai báo DTSD nội bộ' ) IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, '' CONTRACT_ID, N'Hồ sơ số: ' +@p_CONTRACT_ID+ N' đã được xác nhận thành công! Vui lòng đợi trưởng đơn vị phê duyệt.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[REAL_ESTATE_R_H_Upd]' GO ALTER PROCEDURE [dbo].[REAL_ESTATE_R_H_Upd] @p_RET_R_H_ID varchar(15) = NULL, @p_BRANCH_MANAGE Nvarchar(500) = NULL, @p_BRANCH_USE Nvarchar(500) = NULL, @p_BRANCH_CREATE Nvarchar(15) = NULL, @p_RET_ADDR nvarchar(MAX) = NULL, @p_RET_R_H_TIME DECIMAL = NULL, @p_START_DT VARCHAR(20) = NULL, @p_END_DT VARCHAR(20) = NULL, @p_R_LAND_SQUARE DECIMAL = NULL, @p_SCALE nvarchar(500) = NULL, @p_CONSTRUCT_SQUARE DECIMAL = NULL, @p_PRICE_DETAIL XML = NULL, @p_DEPOSIT varchar(1) = NULL, @p_DEPOSIT_PRICE DECIMAL = NULL, @p_DEPOSIT_RETURN_DT NVARCHAR(500) = NULL, @p_PURCHASE_EACH_TERM decimal = NULL, @p_PAY_AMT decimal = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_PAY_PAY_AMT decimal = NULL, @p_PAY_MONTH_TIMES INT = NULL, @p_MONTH_TIMES INT = NULL, ----BAODNQ 7/2/2022: Thêm cột TR_CONTRACT_ID, EXTEND_DT, STRUCTURE------ @p_TR_CONTRACT_ID varchar(15) = NULL, @p_EXTEND_DT VARCHAR(20) = NULL, @p_STRUCTURE NVARCHAR(500) = NULL AS DECLARE @l_ERROR_MESSAGE VARCHAR(1000) BEGIN TRANSACTION IF(@p_RET_R_H_ID IS NULL) BEGIN SET @l_ERROR_MESSAGE = 'ID IS NULL' GOTO ABORT END Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_PRICE_DETAIL DECLARE PriceDetail CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetPriceDetail',2) WITH ( RET_PRICE_ID varchar(15), RET_R_H_ID varchar(15), PRICE decimal(18,0), PRICE_DT VARCHAR(20), PRICE_END_DT VARCHAR(20) ) OPEN PriceDetail -- UPDATE ----BAODNQ 7/2/2022: Thêm cột TR_CONTRACT_ID, EXTEND_DT,STRUCTURE------ UPDATE REAL_ESTATE_R_H SET BRANCH_MANAGE=@p_BRANCH_MANAGE, BRANCH_USE=@p_BRANCH_USE, BRANCH_CREATE=@p_BRANCH_CREATE, RET_ADDR=@p_RET_ADDR, RET_R_H_TIME=@p_RET_R_H_TIME, START_DT=CONVERT(DATETIME, @p_START_DT, 103), END_DT=CONVERT(DATETIME, @p_END_DT, 103), R_LAND_SQUARE=@p_R_LAND_SQUARE, SCALE=@p_SCALE, CONSTRUCT_SQUARE=@p_CONSTRUCT_SQUARE, DEPOSIT=@p_DEPOSIT, DEPOSIT_PRICE=@p_DEPOSIT_PRICE, DEPOSIT_RETURN_DT=@p_DEPOSIT_RETURN_DT, PURCHASE_EACH_TERM=@p_PURCHASE_EACH_TERM, NOTES=@p_NOTES, RECORD_STATUS=@p_RECORD_STATUS, AUTH_STATUS=@p_AUTH_STATUS, MAKER_ID=@p_MAKER_ID, CREATE_DT=CONVERT(DATETIME, @p_CREATE_DT, 103), CHECKER_ID=@p_CHECKER_ID, APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), MONTH_TIMES = @p_MONTH_TIMES, PAY_AMT = @p_PAY_AMT, PAY_MONTH_TIMES= @p_PAY_MONTH_TIMES, PAY_PAY_AMT = @p_PAY_PAY_AMT, TR_CONTRACT_ID = @p_TR_CONTRACT_ID, EXTEND_DT = CONVERT(DATETIME, @p_EXTEND_DT, 103), STRUCTURE = @p_STRUCTURE WHERE RET_R_H_ID = @p_RET_R_H_ID IF @@Error <> 0 GOTO ABORT DECLARE @RET_PRICE_ID varchar(15), @RET_R_H_ID varchar(15), @PRICE decimal(18,0), @PRICE_DT VARCHAR(20), @PRICE_END_DT VARCHAR(20) FETCH NEXT FROM PriceDetail INTO @RET_PRICE_ID, @RET_R_H_ID, @PRICE, @PRICE_DT,@PRICE_END_DT DELETE FROM RET_PRICE WHERE RET_R_H_ID = @p_RET_R_H_ID WHILE @@FETCH_STATUS = 0 BEGIN IF @RET_PRICE_ID ='' OR @RET_PRICE_ID IS NULL -- INSERT PRICE DETAIL BEGIN EXEC SYS_CodeMasters_Gen 'RET_PRICE', @RET_PRICE_ID out IF @RET_PRICE_ID ='' OR @RET_PRICE_ID IS NULL GOTO ABORT END INSERT INTO RET_PRICE(RET_PRICE_ID, RET_R_H_ID, PRICE, PRICE_DT, PRICE_END_DT) VALUES(@RET_PRICE_ID, @p_RET_R_H_ID, @PRICE, CONVERT(DATETIME, @PRICE_DT, 103), CONVERT(DATETIME, @PRICE_END_DT, 103)) IF @@ERROR <> 0 GOTO ABORT FETCH NEXT FROM PriceDetail INTO @RET_PRICE_ID, @p_RET_R_H_ID, @PRICE, @PRICE_DT, @PRICE_END_DT END CLOSE PriceDetail DEALLOCATE PriceDetail COMMIT TRANSACTION SELECT '0' as Result, @p_RET_R_H_ID RET_R_H_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN SELECT '-1' as Result, '' RET_R_H_ID, @l_ERROR_MESSAGE ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_Confirm]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_Confirm] ------STORE duyệt cấp phê duyệt trung gian----------- @p_CONTRACT_ID varchar(15), @p_SIGN_USER VARCHAR(12), @p_SIGN_DT VARCHAR(20) AS BEGIN TRANSACTION -------Trường hợp người duyệt là cấp phê duyệt trung gian, update SIGN_DT--------- DECLARE @p_CONTRACT_NO VARCHAR(15) SET @p_CONTRACT_NO = (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID) UPDATE BUD_CONTRACT_CUST_MASTER SET SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103), AUTH_STATUS = 'U' WHERE CONTRACT_ID = @p_CONTRACT_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'APPROVE', @p_SIGN_USER, GETDATE(), N'Cấp trung gian xác nhận hợp đồng khách thuê thành công' , N'Cấp trung gian xác nhận hợp đồng khách thuê' ) IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, '' CONTRACT_ID, N'Hợp đồng khách thuê số: ' +@p_CONTRACT_NO+ N' đã được xác nhận thành công! Vui lòng đợi trưởng đơn vị phê duyệt.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_SendEmail]' GO CREATE PROC [dbo].[BUD_CONTRACT_CUST_MASTER_SendEmail] AS BEGIN -----Gửi mail thông báo khi còn 10 ngày nữa là đến ngày thanh toán định kỳ------ DECLARE @p_TITLE_MAIL NVARCHAR(MAX) SET @p_TITLE_MAIL = ISNULL((SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID ='TIL'),N'[PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS]') DECLARE @footer NVARCHAR(4000) = N'

P/s: Vui lòng không phản hồi email này. Đây là email được tạo ra bởi hệ thống tự động.

Thanks and Best Regards' DECLARE @p_URL VARCHAR(MAX) SET @p_URL ='http://localhost:4200/app/admin/' DECLARE @p_CURRENT_DATE DATETIME SET @p_CURRENT_DATE = GETDATE() SELECT A.TLFullName AS HO_TEN, A.EMAIL AS EMAIL, @p_TITLE_MAIL + N'Thông báo ngày định kỳ thanh toán hợp đồng khách thuê' AS TITLE, N'Kính gửi: '+A.TLFullName +N',

Còn '+ CONVERT(VARCHAR,DATEDIFF(DAY, DAY(@p_CURRENT_DATE), DAY(B.PAYMENT_DT))) + N' ngày nữa là đến hạn thanh toán định kỳ của hợp đồng khách thuê trụ sở số: ' + B.CONTRACT_NO + N'. Ngày thanh toán định kỳ :' +CONVERT(VARCHAR,B.PAYMENT_DT, 103)+ --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGE_CONTENT FROM TL_USER A INNER JOIN BUD_CONTRACT_CUST_MASTER B ON A.TLNANME = B.MAKER_ID WHERE (DATEDIFF(DAY, DAY(@p_CURRENT_DATE), DAY(B.PAYMENT_DT)) > 0) AND (DATEDIFF(DAY, DAY(@p_CURRENT_DATE), DAY(B.PAYMENT_DT)) <= 10) AND B.AUTH_STATUS ='A' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_CONTRACT_Excel]' GO CREATE PROC [dbo].[rpt_BUD_CONTRACT_Excel] @p_BUILDING_ID VARCHAR(15) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DT VARCHAR(20) = NULL, @p_LEVEL VARCHAR(15) = 'ALL' AS BEGIN DECLARE @BRANCH_TABLE TABLE(BRANCH_ID VARCHAR(15)) IF(@p_LEVEL = 'ALL') BEGIN INSERT INTO @BRANCH_TABLE SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) END IF(@p_LEVEL = 'UNIT') BEGIN INSERT INTO @BRANCH_TABLE SELECT @p_BRANCH_ID END SELECT ROW_NUMBER() OVER(ORDER BY A.CONTRACT_ID) AS STT, C.BRANCH_NAME AS CUSTOMER_NAME, --( -- CASE -- WHEN C.BRANCH_TYPE = 'HS' OR C.BRANCH_TYPE = 'CN' THEN C.BRANCH_NAME -- ELSE (SELECT BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = C.FATHER_ID) -- END --) AS CUSTOMER_NAME, C.ADDR AS ADDRESS, A.CONTRACT_ID AS CONTRACT_NO, CONVERT(VARCHAR(20),A.INPUT_DT,103) AS START_DT, CONVERT(VARCHAR(20),A.AMEND_DT,103) AS END_DT, --------GIA THUE BAN DAU---------- ISNULL(( SELECT TOTAL_AMT_INIT FROM BUD_UTIL_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND BUILDING_AREA_ID = F.BUILDING_AREA_ID AND IS_FIRST_TIME = 'Y' AND CUSTOMER_ID = B.BRANCH_ID ),0) AS PRICE_VAT_INIT, ISNULL(( SELECT VAT_INIT FROM BUD_UTIL_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND BUILDING_AREA_ID = F.BUILDING_AREA_ID AND IS_FIRST_TIME = 'Y' AND CUSTOMER_ID = B.BRANCH_ID ),0) AS VAT_INIT, --------GIA THUE HIEN TAI--------- ISNULL(B.TOTAL_AMT,0) AS PRICE_VAT_CURRENT, 0 AS VAT_CURRENT, '' AS PAYMENT_DT, '' AS TOTAL_AMT_PAYMENT, '' AS TOTAL_AMT_NEXT_PAYMENT, --------TONG DT TOA NHA--------- ISNULL(B.DIEN_TICH_CAN_SD,0) AS DT_CHO_THUE, ISNULL(B.DIEN_TICH_TANG - B.DIEN_TICH_CAN_SD,0) AS DT_CON_LAI, CASE WHEN D.OWNER_OR_RENT = 'O' THEN 'Mua' WHEN D.OWNER_OR_RENT = 'U' THEN 'Thuê' ELSE '' END AS OWNER_OR_RENT, H.CURRENT_STATE, F.FLOOR_NO FROM BUD_CONTRACT_MASTER A LEFT JOIN BUD_CONTRACT_DT B ON A.CONTRACT_ID = B.CONTRACT_ID LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID LEFT JOIN BUD_MASTER D ON A.BUILDING_ID = D.BUILDING_ID LEFT JOIN BUD_AREA_DT F ON B.BUILDING_AREA_ID = F.BUILDING_AREA_ID LEFT JOIN CM_DEPARTMENT G ON B.DEP_ID = G.DEP_ID LEFT JOIN RET_MASTER H ON D.ASSET_ID = H.ASSET_ID WHERE 1=1 AND (A.BUILDING_ID = @p_BUILDING_ID OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') --AND (CONVERT(DATE,A.CREATE_DT,103) >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') --AND (CONVERT(DATE,A.CREATE_DT,103) <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND (A.INPUT_DT >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (A.AMEND_DT <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND A.AUTH_STATUS = 'A' AND (A.BRANCH_ID IN(SELECT BRANCH_ID FROM @BRANCH_TABLE)) END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_CONTRACT_CUST_Excel]' GO CREATE PROC [dbo].[rpt_BUD_CONTRACT_CUST_Excel] @p_BUILDING_ID VARCHAR(15) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DT VARCHAR(20) = NULL, @p_LEVEL VARCHAR(15) = 'ALL' AS BEGIN DECLARE @BRANCH_TABLE TABLE(BRANCH_ID VARCHAR(15)) IF(@p_LEVEL = 'ALL') BEGIN INSERT INTO @BRANCH_TABLE SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) END IF(@p_LEVEL = 'UNIT') BEGIN INSERT INTO @BRANCH_TABLE SELECT @p_BRANCH_ID END SELECT ROW_NUMBER() OVER(ORDER BY A.CONTRACT_ID) AS STT, B.CUSTOMER_NAME AS CUSTOMER_NAME, B.ADDR AS ADDRESS, D.CONTRACT_CODE AS CONTRACT_NO, CONVERT(VARCHAR(20),D.START_DT,103) AS START_DT, CONVERT(VARCHAR(20),D.END_DT,103) AS END_DT, --------GIA THUE BAN DAU---------- ISNULL(( SELECT A1.TOTAL_AMT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = G.BUILDING_AREA_ID AND A1.CUSTOMER_ID = A.CUST_ID AND IS_FIRST_TIME = 'Y' ),0) AS PRICE_VAT_INIT, ISNULL(( SELECT A1.VAT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = G.BUILDING_AREA_ID AND A1.CUSTOMER_ID = A.CUST_ID AND A1.IS_FIRST_TIME = 'Y' ),0) AS VAT_INIT, --------GIA THUE HIEN TAI--------- --ISNULL(( -- SELECT TOTAL_AMT FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID = A.CONTRACT_ID --),0) AS PRICE_VAT_CURRENT, ISNULL(F.TOTAL_AMT, 0) AS PRICE_VAT_CURRENT, ISNULL(A.VAT,0) AS VAT_CURRENT, CONVERT(VARCHAR(20),A.PAYMENT_DT,103) AS PAYMENT_DT, '' AS TOTAL_AMT_PAYMENT, '' AS TOTAL_AMT_NEXT_PAYMENT, E.BRANCH_NAME AS BRANCH_OR_DEPT, --------TONG DT TOA NHA--------- --ISNULL(( -- SELECT SUM(DIEN_TICH_CAN_CHOTHUE) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID = A.CONTRACT_ID --),0) AS DT_CHO_THUE, ISNULL(F.DIEN_TICH_CAN_CHOTHUE, 0) AS DT_CHO_THUE, --ISNULL(( -- C.TOTAL_AREA - (SELECT SUM(DIEN_TICH_CAN_CHOTHUE) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID = A.CONTRACT_ID) --),0) AS DT_CON_LAI, ISNULL( C.TOTAL_AREA - F.DIEN_TICH_CAN_CHOTHUE , 0), CASE WHEN C.OWNER_OR_RENT = 'O' THEN 'Mua' WHEN C.OWNER_OR_RENT = 'U' THEN 'Thuê' ELSE '' END AS OWNER_OR_RENT, H.CURRENT_STATE, G.FLOOR_NO FROM BUD_CONTRACT_CUST_MASTER A LEFT JOIN LS_CUSTOMER B ON A.CUST_ID = B.CUSTOMER_ID LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN TR_CONTRACT D ON A.TR_CONTRACT_ID = D.CONTRACT_ID LEFT JOIN CM_BRANCH E ON C.BRANCH_ID = E.BRANCH_ID LEFT JOIN BUD_CONTRACT_CUST_DT F ON A.CONTRACT_ID = F.CONTRACT_ID LEFT JOIN BUD_AREA_DT G ON F.BUILDING_AREA_ID = G.BUILDING_AREA_ID LEFT JOIN RET_MASTER H ON C.ASSET_ID = H.ASSET_ID WHERE 1= 1 AND (A.BUILDING_ID = @p_BUILDING_ID OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND A.AUTH_STATUS = 'A' --AND (CONVERT(DATE,A.CREATE_DT,103) >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') --AND (CONVERT(DATE,A.CREATE_DT,103) <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND (CONVERT(DATE,D.START_DT,103) >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE,D.END_DT,103) <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND (A.BRANCH_ID IN(SELECT BRANCH_ID FROM @BRANCH_TABLE)) END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_CONTRACT_TOTAL_CONTRACT_Excel]' GO CREATE PROC [dbo].[rpt_BUD_CONTRACT_TOTAL_CONTRACT_Excel] @p_BUILDING_ID VARCHAR(20) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DT VARCHAR(20) = NULL, @p_LEVEL VARCHAR(15) = 'ALL' AS BEGIN DECLARE @BRANCH_TABLE TABLE(BRANCH_ID VARCHAR(15)) IF(@p_LEVEL = 'ALL') BEGIN INSERT INTO @BRANCH_TABLE SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) END IF(@p_LEVEL = 'UNIT') BEGIN INSERT INTO @BRANCH_TABLE SELECT @p_BRANCH_ID END SELECT ROW_NUMBER() OVER(ORDER BY CONTRACT_ID) AS STT, TMP.* FROM ( ---------BUD_CONTRACT_MASTER--------------- SELECT A.CONTRACT_ID, CASE WHEN (B.DEP_ID IS NULL OR B.DEP_ID = '') THEN C.BRANCH_NAME ELSE F.DEP_NAME END AS CUSTOMER_NAME, C.ADDR AS ADDRESS, B.CONTRACT_ID AS CONTRACT_NO, CONVERT(VARCHAR(20),A.INPUT_DT,103) AS START_DT, CONVERT(VARCHAR(20),A.AMEND_DT,103) AS END_DT, --------GIA THUE BAN DAU---------- ISNULL(( --SELECT TOTAL_AMT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = B.CONTRACT_DTID AND IS_FIRST_TIME = 'Y' SELECT TOTAL_AMT_INIT FROM BUD_UTIL_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND BUILDING_AREA_ID = B.BUILDING_AREA_ID AND CUSTOMER_ID = B.BRANCH_ID AND IS_FIRST_TIME = 'Y' ),0) AS PRICE_VAT_INIT, ISNULL(( --SELECT VAT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = B.CONTRACT_DTID AND IS_FIRST_TIME = 'Y' SELECT VAT_INIT FROM BUD_UTIL_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND BUILDING_AREA_ID = B.BUILDING_AREA_ID AND CUSTOMER_ID = B.BRANCH_ID AND IS_FIRST_TIME = 'Y' ),0) AS VAT_INIT, --------GIA THUE HIEN TAI--------- ISNULL(B.TOTAL_AMT, 0) AS PRICE_VAT_CURRENT, 0 AS VAT_CURRENT, '' AS PAYMENT_DT, '' AS TOTAL_AMT_PAYMENT, '' AS TOTAL_AMT_NEXT_PAYMENT, G.BRANCH_NAME AS BRANCH_OR_DEPT, --------TONG DT TOA NHA--------- ISNULL(B.DIEN_TICH_CAN_SD,0) AS DT_CHO_THUE, ISNULL(B.DIEN_TICH_TANG - B.DIEN_TICH_CAN_SD,0) AS DT_CON_LAI, CASE WHEN D.OWNER_OR_RENT = 'O' THEN 'Mua' WHEN D.OWNER_OR_RENT = 'U' THEN 'Thuê' ELSE '' END AS OWNER_OR_RENT, H.CURRENT_STATE, E.FLOOR_NO AS RENT_FLOOR_NO FROM BUD_CONTRACT_MASTER A LEFT JOIN BUD_CONTRACT_DT B ON A.CONTRACT_ID = B.CONTRACT_ID LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID LEFT JOIN BUD_MASTER D ON A.BUILDING_ID = D.BUILDING_ID LEFT JOIN BUD_AREA_DT E ON B.BUILDING_AREA_ID = E.BUILDING_AREA_ID LEFT JOIN CM_DEPARTMENT F ON B.DEP_ID = F.DEP_ID LEFT JOIN CM_BRANCH G ON D.BRANCH_ID = G.BRANCH_ID LEFT JOIN RET_MASTER H ON D.ASSET_ID = H.ASSET_ID WHERE 1=1 AND A.AUTH_STATUS = 'A' AND (A.BUILDING_ID = @p_BUILDING_ID OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (A.INPUT_DT >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (A.AMEND_DT <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND A.BRANCH_ID IN (SELECT BRANCH_ID FROM @BRANCH_TABLE) UNION ALL ---------BUD_CONTRACT_CUST_MASTER--------------- SELECT A.CONTRACT_ID, B.CUSTOMER_NAME AS CUSTOMER_NAME, B.ADDR AS ADDRESS, D.CONTRACT_CODE AS CONTRACT_NO, CONVERT(VARCHAR(20),D.START_DT,103) AS START_DT, CONVERT(VARCHAR(20),D.END_DT,103) AS END_DT, --------GIA THUE BAN DAU---------- ISNULL(( --SELECT TOTAL_AMT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND IS_FIRST_TIME = 'Y' SELECT A1.TOTAL_AMT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = F.BUILDING_AREA_ID AND A1.CUSTOMER_ID = A.CUST_ID AND A1.IS_FIRST_TIME = 'Y' ),0) AS PRICE_VAT_INIT, ISNULL(( --SELECT VAT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND IS_FIRST_TIME = 'Y' SELECT A1.VAT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = F.BUILDING_AREA_ID AND A1.CUSTOMER_ID = A.CUST_ID AND A1.IS_FIRST_TIME = 'Y' ),0) AS VAT_INIT, --------GIA THUE HIEN TAI--------- ISNULL(F.TOTAL_AMT,0) AS PRICE_VAT_CURRENT, ISNULL(A.VAT, 0) AS VAT_CURRENT, CONVERT(VARCHAR(20),A.PAYMENT_DT,103) AS PAYMENT_DT, '' AS TOTAL_AMT_PAYMENT, '' AS TOTAL_AMT_NEXT_PAYMENT, E.BRANCH_NAME AS BRANCH_OR_DEPT, --------TONG DT TOA NHA--------- ISNULL(F.DIEN_TICH_CAN_CHOTHUE,0) AS DT_CHO_THUE, ISNULL(F.DIEN_TICH_TANG - F.DIEN_TICH_CAN_CHOTHUE,0) AS DT_CON_LAI, CASE WHEN C.OWNER_OR_RENT = 'O' THEN 'Mua' WHEN C.OWNER_OR_RENT = 'U' THEN 'Thuê' ELSE '' END AS OWNER_OR_RENT, H.CURRENT_STATE, G.FLOOR_NO AS RENT_FLOOR_NO FROM BUD_CONTRACT_CUST_MASTER A LEFT JOIN LS_CUSTOMER B ON A.CUST_ID = B.CUSTOMER_ID LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN TR_CONTRACT D ON A.TR_CONTRACT_ID = D.CONTRACT_ID LEFT JOIN CM_BRANCH E ON C.BRANCH_ID = E.BRANCH_ID LEFT JOIN BUD_CONTRACT_CUST_DT F ON A.CONTRACT_ID = F.CONTRACT_ID LEFT JOIN BUD_AREA_DT G ON F.BUILDING_AREA_ID = G.BUILDING_AREA_ID LEFT JOIN RET_MASTER H ON C.ASSET_ID = H.ASSET_ID WHERE 1=1 AND A.AUTH_STATUS = 'A' AND (A.BUILDING_ID = @p_BUILDING_ID OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (CONVERT(DATE,D.START_DT,103) >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE,D.END_DT,103) <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND A.BRANCH_ID IN (SELECT BRANCH_ID FROM @BRANCH_TABLE) ) TMP ORDER BY CONTRACT_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CON_REQUEST_DOC_InsXml]' GO ALTER PROCEDURE [dbo].[CON_REQUEST_DOC_InsXml] @p_CONSTRUCT_CODE varchar(15) = NULL, @p_CONSTRUCT_NAME nvarchar(100) = NULL, @p_PLAN_ID varchar(15) = NULL, @p_CONST_ID varchar(15) = NULL, @p_DIVI_ID varchar(15) = NULL, @p_CONSTRUCT_ADDR nvarchar(200) = NULL, @p_LENGTH decimal(18, 2) = NULL, @p_WIDTH decimal(18, 2) = NULL, @p_CONSTRUCT_AREA decimal(18) = NULL, @p_FLOORS int = NULL, @p_FLOORS_AREA decimal(18, 2) = NULL, @p_TOTAL_AREA_USE decimal(18, 2) = NULL, -- GIANT @p_TOTAL_COST decimal(18, 2) = NULL,-- GIANT @p_UNIT_PRICE decimal(18, 2) = NULL,-- GIANT @p_YEAR_EXE varchar(4) = NULL, @p_CONST_TYPE varchar(15) = NULL, @p_HQ_TYPE varchar(15) = NULL, @p_TOTAL_AMT decimal(18) = NULL, @p_COST_ESTIMATE decimal(18) = NULL, @p_COST_EXE decimal(18) = NULL, @p_COST_INCURRED decimal(18) = NULL, @p_CONST_PURPOSE varchar(15) = NULL, @p_ENGINEER nvarchar(500) = NULL, @p_BRANCH_NAME_ETX nvarchar(500) = NULL, @p_DESCRIPTION nvarchar(2000) = NULL, @p_START_DT VARCHAR(20) = NULL, @p_END_DT VARCHAR(20) = NULL, @p_DATE_EXE VARCHAR(20) = NULL, @p_COMPLETION_DT VARCHAR(20) = NULL, @p_CONSTRUCT_PROGRESS decimal(18) = NULL, @p_RECORD_STATUS varchar(1) = '1', @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(1) = 'N', @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_REQUEST_ID VARCHAR(15) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_STREET NVARCHAR(200) = NULL, @p_LOCATION VARCHAR(15) = NULL, @p_SCALE NVARCHAR(1000) = NULL, @p_UPD_DT varchar(20) = NULL, @p_APPROVE_VALUE decimal(18) = NULL, @P_ListRequestDoc XML = NULL, -- THONG TIN VE TO TRINH @P_ListBid XML = NULL, -- CHI PHI SUA CHUA @P_ListContract_DT XML = NULL, -- DANH SACH HO SO THI CONG @P_ListPayment XML = NULL, -- CAC DOT THANH TOAN @P_ListBid_DT XML = NULL, -- DANH SACH CHI TIET DON VI THAM GIA THAU @P_ListContractorArise XML = NULL, -- DANH SACH CHI TIET PHAT SINH TANG GIAM @P_ListReviewXML XML = NULL, -- ĐÁNH GIÁ NCC @P_ListConsProcessXML XML = NULL, -- TIẾN ĐỘ CÔNG TRÌNH @P_ListConsHHXML XML = NULL -- DANH SÁCH HÀNG HÓA AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM CON_REQUEST_DOC WHERE )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ DECLARE @sErrorCode VARCHAR(20) Declare @hdoc INT -- THONG TIN VE TO TRINH Exec sp_xml_preparedocument @hdoc Output,@P_ListRequestDoc DECLARE ListRequestDoc CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListRequestDoc',2) WITH ( CON_REQUEST_DOC_ID varchar(15), REQ_ID varchar(15), REQ_CODE nvarchar(100), REQ_NAME nvarchar(200), REQ_DT VARCHAR(20), REQ_CONTENT nvarchar(1000), CONSTRUCT_ID varchar(15), TOTAL_AMT decimal(18), BRANCH_ID varchar(15), PLAN_TYPE VARCHAR(1), IS_PARENT VARCHAR(1), IS_ARISE VARCHAR(1), BUDGET varchar(15), YEAR_BUDGET int, REQUEST_PARENT VARCHAR(15), APPROVE_DT VARCHAR(20) ) OPEN ListRequestDoc -- CHI PHI SUA CHUA Exec sp_xml_preparedocument @hdoc Output,@P_ListBid DECLARE ListBid CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListBid',2) WITH ( BID_ID varchar(15), BID_CODE varchar(15), BID_TYPE varchar(1), PROJECT_ID varchar(15), TERM_BID nvarchar(200), FORM varchar(4), INPUT_DT VARCHAR(20), EXP_DT VARCHAR(20), OPEN_DT VARCHAR(20), BUDGET varchar(15), TOTAL_AMT decimal(18), GUARANTEE_AMT decimal(18), GUARANTEE_PER decimal(18), GUARANTEE_EXP VARCHAR(20), REQUEST_ID varchar(15), BID_WIN nvarchar(200), SETTLE_AMT decimal(18), CONTRACT_CODE varchar(15), NOTES nvarchar(1000), TOTAL_AMT_KT VARCHAR(20), CONTRACT_VALUE decimal(18,2), [PERCENT] decimal(18,2), OUTSTANDINGVALUE decimal(18,2), ARISE_VALUE decimal(18,2), PAID_VALUE decimal(18,2), [DESC] nvarchar(1000) ) OPEN ListBid -- DANH SACH HO SO THI CONG (HOP DONG) Exec sp_xml_preparedocument @hdoc Output,@P_ListContract_DT DECLARE ListContract_DT CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListContract_DT',2) WITH ( CONTRACT_ID varchar(15), CONTRACT_CODE varchar(15), [CONTRACT_NAME] nvarchar(200), CONTRACT_TYPE varchar(15), BID_ID nvarchar(200), TOTAL_AMT DECIMAL(18), IS_PARENT varchar(1), REQUEST_ID varchar(15) ) OPEN ListContract_DT -- CAC DOT THANH TOAN Exec sp_xml_preparedocument @hdoc Output,@P_ListPayment DECLARE PaymentDetail CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/PaymentDetail',2) WITH ( [PERCENT] decimal(18,2), AMOUNT decimal(18), BID_ID varchar(15), PAY_DT varchar(20), PAY_STATUS varchar(1), NOTES nvarchar(1000), CONTRACT_CODE varchar(15) ) OPEN PaymentDetail -- CHI TIET DON VI THAM GIA THAU Exec sp_xml_preparedocument @hdoc Output,@P_ListBid_DT DECLARE ContractorDetail CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ContractorDetail',2) WITH ( ID VARCHAR(15), BID_ID varchar(15), BID_CODE varchar(15), SUPPLIER nvarchar(200), IS_BID_WIN varchar(1), OFFERING_VALUE decimal(18), CHECK_VALUE decimal(18) ) OPEN ContractorDetail -- CHI TIET PHAT SINH TANG GIAM Exec sp_xml_preparedocument @hdoc Output,@P_ListContractorArise DECLARE ListContractorArise CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListContractorArise',2) WITH ( ARISE_ID VARCHAR(15), BID_ID varchar(15), BID_CODE varchar(15), SUPPLIER nvarchar(200), IS_BID_WIN varchar(1), BEGIN_VALUE decimal(18,2), CHECKED_VALUE decimal(18,2) ) OPEN ListContractorArise -- DANH SÁCH HÀNG HÓA Exec sp_xml_preparedocument @hdoc Output,@P_ListConsHHXML DECLARE ListHH CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListHH',2) WITH ( CON_REQ_HH_ID VARCHAR(15), REQ_CODE VARCHAR(50), REQ_ID VARCHAR(15), SUP_ID VARCHAR(15), SELLTEMENT_AMT DECIMAL(18,2), [DESCRIPTION] NVARCHAR(4000), -- KHOONG SU DUNG HH_ID VARCHAR(15), ESTIMATES_AMT DECIMAL(18,2), BRANCH_DO VARCHAR(15), CONS_DOCUMENT_ID VARCHAR(15), BID_ID VARCHAR(15), BID_CODE VARCHAR(50), REQDT_ID VARCHAR(15) ) OPEN ListHH -- ĐÁNH GIÁ NCC Exec sp_xml_preparedocument @hdoc Output,@P_ListReviewXML DECLARE ListReview CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListReview',2) WITH ( CON_REQ_REVIEW_ID VARCHAR(15), SUP_ID VARCHAR(15), QCKT_REVIEW NVARCHAR(4000), CONS_PROCESS VARCHAR(15), MAINTENANCE VARCHAR(15), REPORT_PLAN_EDIT VARCHAR(15), CONS_QUALITY VARCHAR(15), BEAUTY_IMAGE VARCHAR(15), REQ_ID VARCHAR(15), REQ_CODE VARCHAR(50), SUP_NAME NVARCHAR(1000) ) OPEN ListReview -- TIẾN ĐỘ CÔNG TRÌNH Exec sp_xml_preparedocument @hdoc Output,@P_ListConsProcessXML DECLARE ListConsProcess CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListConsProcess',2) WITH ( CON_REQ_PROCESS_ID VARCHAR(15), DATE_REPORT VARCHAR(15), PERCENT_COMPLETED DECIMAL(18,2), PERCENT_REMAIN DECIMAL(18,2), DEADLINE VARCHAR(15) ) OPEN ListConsProcess BEGIN TRANSACTION -- THONG TIN VE TO TRINH -- insert zô bảng tài liệu ---TAO BANG TAM DECLARE @TEMP TABLE ( [KEY] varchar(15), [REF_ID] varchar(15), [TYPE] varchar(50) ) -- THEM THONG TIN TO TRINH --KHAI BAO TOAN BO BIEN TRUOC KHI FETCH DATA DECLARE @INDEX int = 0, @IS_PARENT VARCHAR(1), @IS_ARISE VARCHAR(1), @PLAN_TYPE VARCHAR(1), @REQ_BUDGET varchar(15), @REQ_YEAR_BUDGET int, @REQUEST_PARENT VARCHAR(15), @APPROVE_DT VARCHAR(20), @CON_REQUEST_DOC_ID varchar(15), @REQ_ID varchar(15), @REQ_CODE nvarchar(100), @REQ_NAME nvarchar(200), @REQ_DT VARCHAR(20), @REQ_CONTENT nvarchar(1000), @CONSTRUCT_ID varchar(15), @TOTAL_AMT decimal(18,2), @BRANCH_ID varchar(15) --INSERT ListBid DETAIL FETCH NEXT FROM ListRequestDoc INTO @CON_REQUEST_DOC_ID,@REQ_ID, @REQ_CODE, @REQ_NAME, @REQ_DT, @REQ_CONTENT, @CONSTRUCT_ID, @TOTAL_AMT, @BRANCH_ID, @PLAN_TYPE, @IS_PARENT,@IS_ARISE, @REQ_BUDGET, @REQ_YEAR_BUDGET, @REQUEST_PARENT, @APPROVE_DT WHILE @@FETCH_STATUS = 0 BEGIN --25/12/2014 Anh Ai yeu cau khong kiem tra trung to trinh - mot to trinh dung cho nhieu cong trinh ---- KIEM TRA SO TO TRINH CO TRUNG HAY KHONG --IF EXISTS(SELECT * FROM CON_REQUEST_DOC WHERE [REQ_CODE]= @REQ_CODE) --BEGIN -- SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'CON-0001' -- GOTO ABORT --END EXEC SYS_CodeMasters_Gen 'CON_REQUEST_DOC', @CON_REQUEST_DOC_ID out IF @CON_REQUEST_DOC_ID='' OR @CON_REQUEST_DOC_ID IS NULL GOTO ABORT SET @INDEX = @INDEX + 1 IF (@INDEX = 1) -- TRA VE SO TO TRINH DAU TIEN BEGIN --SET @P_REQUEST_ID = @REQ_ID SET @P_REQUEST_ID = @CON_REQUEST_DOC_ID END SET @REQUEST_PARENT = @P_REQUEST_ID INSERT INTO CON_REQUEST_DOC([CON_REQUEST_DOC_ID],[REQ_ID], [REQ_CODE], [REQ_NAME], [REQ_DT], [REQ_CONTENT], [CONSTRUCT_ID], [TOTAL_AMT], [NOTES], [RECORD_STATUS], [MAKER_ID], [CREATE_DT], [AUTH_STATUS], [CHECKER_ID], [APPROVE_DT], [BRANCH_ID], [PLAN_TYPE], [IS_PARENT] , [BUDGET], [YEAR_BUDGET], [REQUEST_PARENT], [IS_ARISE]) VALUES(@CON_REQUEST_DOC_ID,@REQ_ID, @REQ_CODE, @REQ_NAME, CONVERT(DATETIME, @REQ_DT, 103), @REQ_CONTENT, @CONSTRUCT_ID, @TOTAL_AMT, '', @p_RECORD_STATUS, @P_MAKER_ID, CONVERT(DATETIME, @P_CREATE_DT , 103), @P_AUTH_STATUS, @P_CHECKER_ID, CONVERT(DATETIME, @APPROVE_DT, 103), @BRANCH_ID, @PLAN_TYPE, @IS_PARENT, @REQ_BUDGET, @REQ_YEAR_BUDGET, @REQUEST_PARENT, @IS_ARISE) INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@CON_REQUEST_DOC_ID, 'CON_REQUEST_DOC') PRINT @@ERROR IF @@ERROR <> 0 GOTO ABORT FETCH NEXT FROM ListRequestDoc INTO @CON_REQUEST_DOC_ID,@REQ_ID, @REQ_CODE, @REQ_NAME, @REQ_DT, @REQ_CONTENT, @CONSTRUCT_ID, @TOTAL_AMT, @BRANCH_ID, @PLAN_TYPE, @IS_PARENT,@IS_ARISE, @REQ_BUDGET, @REQ_YEAR_BUDGET, @REQUEST_PARENT, @APPROVE_DT END CLOSE ListRequestDoc DEALLOCATE ListRequestDoc DECLARE @OLD_REQUEST_PARENT VARCHAR(15) = @REQUEST_PARENT SET @REQUEST_PARENT = (SELECT TOP(1) CON_REQUEST_DOC_ID FROM CON_REQUEST_DOC WHERE REQUEST_PARENT = @OLD_REQUEST_PARENT ORDER BY TOTAL_AMT DESC) UPDATE CON_REQUEST_DOC SET IS_PARENT = (CASE WHEN CON_REQUEST_DOC_ID = @REQUEST_PARENT THEN '1' ELSE '0' END), REQUEST_PARENT = @REQUEST_PARENT WHERE REQUEST_PARENT = @OLD_REQUEST_PARENT SET @p_REQUEST_ID = @REQUEST_PARENT -- THEM THONG TIN CONG TRINH DECLARE @l_CONSTRUCT_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CON_MASTER', @l_CONSTRUCT_ID out IF @l_CONSTRUCT_ID='' OR @l_CONSTRUCT_ID IS NULL GOTO ABORT INSERT INTO CON_MASTER([IS_FINISH],[CONSTRUCT_ID],[CONSTRUCT_CODE],[CONSTRUCT_NAME],[PLAN_ID],[DIVI_ID],[CONSTRUCT_ADDR],[LENGTH],[WIDTH], [CONSTRUCT_AREA], [FLOORS],[FLOORS_AREA],[YEAR_EXE],[HQ_TYPE],[CONST_TYPE],[TOTAL_AMT],[COST_ESTIMATE],[COST_EXE],[COST_INCURRED],[CONST_PURPOSE], [DESCRIPTION],[START_DT],[END_DT],[DATE_EXE],[COMPLETION_DT],[CONSTRUCT_PROGRESS],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[CONST_ID], [REQUEST_ID], [BRANCH_ID], [STREET], [LOCATION], [SCALE], [ENGINEER], [BRANCH_NAME_ETX],UPD_DT, APPROVE_VALUE,TOTAL_AREA_USE,TOTAL_COST,UNIT_PRICE) VALUES('N',@l_CONSTRUCT_ID ,@l_CONSTRUCT_ID ,@p_CONSTRUCT_NAME ,@p_PLAN_ID ,@p_DIVI_ID ,@p_CONSTRUCT_ADDR ,@p_LENGTH, @p_WIDTH, @p_CONSTRUCT_AREA ,@p_FLOORS, @p_FLOORS_AREA, @p_YEAR_EXE ,@p_HQ_TYPE ,@p_CONST_TYPE ,@p_TOTAL_AMT ,@p_COST_ESTIMATE ,@p_COST_EXE ,@p_COST_INCURRED , @p_CONST_PURPOSE, @p_DESCRIPTION ,CONVERT(DATETIME, @p_START_DT, 103) , CONVERT(DATETIME, @p_END_DT, 103) ,CONVERT(DATETIME, @p_DATE_EXE, 103) ,CONVERT(DATETIME, @p_COMPLETION_DT, 103),@p_CONSTRUCT_PROGRESS ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID , CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_CONST_ID, @p_REQUEST_ID, @p_BRANCH_ID, @p_STREET, @p_LOCATION, @p_SCALE, @p_ENGINEER, @p_BRANCH_NAME_ETX , CONVERT(DATETIME, @p_UPD_DT, 103), @p_APPROVE_VALUE,@p_TOTAL_AREA_USE,@p_TOTAL_COST,@p_UNIT_PRICE) IF @@Error <> 0 GOTO ABORT -- UPDATE CONSTRUCT ID CON_REQUEST_DOC UPDATE CON_REQUEST_DOC SET CONSTRUCT_ID = @l_CONSTRUCT_ID WHERE REQUEST_PARENT = @p_REQUEST_ID INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_CONSTRUCT_ID, 'CON_MASTER') -- CHI PHI SUA CHUA --KHAI BAO TOAN BO BIEN TRUOC KHI FETCH DATA DECLARE @BID_ID varchar(15), @BID_CODE varchar(15), @BID_TYPE varchar(1), @PROJECT_ID varchar(15), @TERM_BID nvarchar(200), @FORM varchar(4), @INPUT_DT VARCHAR(20), @EXP_DT VARCHAR(20), @OPEN_DT VARCHAR(20), @_TOTAL_AMT decimal(18), -- CHI PHI @GUARANTEE_AMT decimal(18), @GUARANTEE_PER decimal(18), @GUARANTEE_EXP VARCHAR(20), @REQUEST_ID varchar(15), @BUDGET DECIMAL(18), @BID_WIN nvarchar(200), @SETTLE_AMT decimal(18), @_CONTRACT_CODE varchar(15), @NOTES nvarchar(1000), @TOTAL_AMT_KT decimal(18), @CONTRACT_VALUE decimal(18,2), @PERCENT decimal(18,2), @OUTSTANDINGVALUE decimal(18,2), @ARISE_VALUE decimal(18,2), @PAID_VALUE decimal(18,2), @DESC nvarchar(1000) --INSERT ListBid DETAIL FETCH NEXT FROM ListBid INTO @BID_ID, @BID_CODE, @BID_TYPE, @PROJECT_ID, @TERM_BID, @FORM, @INPUT_DT, @EXP_DT, @OPEN_DT, @BUDGET, @_TOTAL_AMT, @GUARANTEE_AMT, @GUARANTEE_PER, @GUARANTEE_EXP, @REQUEST_ID, @BID_WIN, @SETTLE_AMT, @_CONTRACT_CODE, @NOTES,@TOTAL_AMT_KT,@CONTRACT_VALUE,@PERCENT,@OUTSTANDINGVALUE,@ARISE_VALUE,@PAID_VALUE,@DESC WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_BID_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'BID_MASTER', @l_BID_ID out IF @l_BID_ID='' OR @l_BID_ID IS NULL GOTO ABORT -- GIANT 10/12/2021 terM_BID SET @TERM_BID = (SELECT [DESCRIPTION] FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @TERM_BID) --INSERT INTO BID_MASTER([BID_ID],[BID_CODE],[BID_TYPE],[PROJECT_ID],[TERM_BID],[FORM],[INPUT_DT],[EXP_DT], --[OPEN_DT],[BUDGET],[TOTAL_AMT],[GUARANTEE_AMT],[GUARANTEE_PER],[GUARANTEE_EXP],[NOTES], --[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[REQUEST_ID], --[BID_WIN], [SETTLE_AMT],[CONTRACT_CODE],[TOTAL_AMT_KT],CONTRACT_VALUE,[PERCENT],OUTSTANDINGVALUE, ARISE_VALUE ,PAID_VALUE,[DESC]) --VALUES(@l_BID_ID ,@BID_CODE , @BID_TYPE,@PROJECT_ID ,@TERM_BID ,@FORM , --CONVERT(DATETIME, @INPUT_DT, 103) ,CONVERT(DATETIME, @EXP_DT, 103) , --CONVERT(DATETIME, @OPEN_DT, 103) ,@BUDGET ,@_TOTAL_AMT ,@GUARANTEE_AMT , --@GUARANTEE_PER ,CONVERT(DATETIME, @GUARANTEE_EXP, 103) ,@NOTES ,@p_RECORD_STATUS , --@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID , --CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_REQUEST_ID, @BID_WIN, @SETTLE_AMT, @_CONTRACT_CODE, @TOTAL_AMT_KT,@CONTRACT_VALUE,@PERCENT,@OUTSTANDINGVALUE,@ARISE_VALUE,@PAID_VALUE,@DESC) --IF @@ERROR <> 0 GOTO ABORT INSERT INTO @TEMP([KEY],[REF_ID],[TYPE]) VALUES (@BID_CODE, @l_BID_ID, 'BID_MASTER') FETCH NEXT FROM ListBid INTO @BID_ID, @BID_CODE, @BID_TYPE, @PROJECT_ID, @TERM_BID, @FORM, @INPUT_DT, @EXP_DT, @OPEN_DT, @BUDGET, @_TOTAL_AMT, @GUARANTEE_AMT, @GUARANTEE_PER, @GUARANTEE_EXP, @REQUEST_ID, @BID_WIN, @SETTLE_AMT, @_CONTRACT_CODE, @NOTES,@TOTAL_AMT_KT,@CONTRACT_VALUE,@PERCENT,@OUTSTANDINGVALUE,@ARISE_VALUE,@PAID_VALUE,@DESC END CLOSE ListBid DEALLOCATE ListBid -- THEM CHI TIET THONG TIN HO SO THI CONG -- HOP DONG & PHU LUC HOP DONG DECLARE @CDT_INDEX int = 0, @CDT_CONTRACT_ID varchar(15), @CONTRACT_CODE varchar(15), @CONTRACT_NAME nvarchar(200), @CONTRACT_TYPE varchar(1), @CDT_BID_ID nvarchar(200), @CDT_TOTAL_AMT decimal(18), @CDT_IS_PARENT varchar(1), @CDT_REQUEST_ID varchar(15), @CDT_CONTRACT_PARENT varchar(15) -- DANH SACH HO SO THI CONG (HOP DONG) --INSERT ListContract_DT DETAIL FETCH NEXT FROM ListContract_DT INTO @CDT_CONTRACT_ID, @CONTRACT_CODE, @CONTRACT_NAME, @CONTRACT_TYPE, @CDT_BID_ID, @CDT_TOTAL_AMT, @CDT_IS_PARENT, @CDT_REQUEST_ID WHILE @@FETCH_STATUS = 0 BEGIN -- KIEM TRA SO HOP DONG CO TRUNG HAY KHONG IF EXISTS(SELECT * FROM TR_CONTRACT WHERE REQUEST_ID = @P_REQUEST_ID AND [CONTRACT_CODE]= @CONTRACT_CODE AND @CONTRACT_CODE<>'' AND @CONTRACT_CODE IS NOT NULL) BEGIN SELECT ErrorCode Result, @l_CONSTRUCT_ID CONSTRUCT_ID, '' REF_ID, '' [TYPE], ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'CTRC-0001' GOTO ABORT END SELECT @BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @CDT_BID_ID DECLARE @l_CONTRACT_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'TR_CONTRACT', @l_CONTRACT_ID out IF @l_CONTRACT_ID='' OR @l_CONTRACT_ID IS NULL GOTO ABORT --SET @CDT_INDEX = @CDT_INDEX + 1 IF (@CDT_IS_PARENT = '1') -- TRA VE SO TO TRINH DAU TIEN SET @CDT_CONTRACT_PARENT = @l_CONTRACT_ID INSERT INTO TR_CONTRACT([CONTRACT_ID],[CONTRACT_CODE],[CONTRACT_NAME],[CONTRACT_TYPE],[BID_ID],[SUP_ID], [TOTAL_AMT],[DELIVERY_DT],[FORM1],[VOUCHER_ID1],[BANK1],[AMOUNT1], [EXP_DT1],[RATE1],[FORM2],[VOUCHER_ID2],[BANK2],[AMOUNT2],[EXP_DT2], [RATE2],[REQ_DOC_ID],[REQ_DOC_CONTENT],[APPROVE_VALUE],[SIGN_DT],[CONSTRUCT_PROGRESS], [NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[START_DT],[END_DT], [IS_PARENT], [REQUEST_ID], [CONTRACT_PARENT]) VALUES(@l_CONTRACT_ID ,@CONTRACT_CODE ,@CONTRACT_NAME, @CONTRACT_TYPE ,@BID_ID ,NULL, @CDT_TOTAL_AMT,NULL , NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL, NULL ,NULL ,NULL ,NULL, NULL,NULL,NULL , NULL ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS, @p_CHECKER_ID ,(CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END), CONVERT(DATETIME,@P_START_DT,103),CONVERT(DATETIME,@P_END_DT,103), @CDT_IS_PARENT, @p_REQUEST_ID, case when @CDT_IS_PARENT = '1' then null else @CDT_CONTRACT_PARENT end) IF @@Error <> 0 GOTO ABORT INSERT INTO @TEMP([KEY],[REF_ID],[TYPE]) VALUES (@CONTRACT_CODE, @l_CONTRACT_ID, 'TR_CONTRACT') FETCH NEXT FROM ListContract_DT INTO @CDT_CONTRACT_ID, @CONTRACT_CODE, @CONTRACT_NAME, @CONTRACT_TYPE, @CDT_BID_ID, @CDT_TOTAL_AMT, @CDT_IS_PARENT, @CDT_REQUEST_ID END CLOSE ListContract_DT DEALLOCATE ListContract_DT -- THEM THANH TOAN HO SO THI CONG --insert payment detail DECLARE @AMOUNT decimal(18), @PAY_DT varchar(20), @PAY_STATUS varchar(1), @CONTRACT_ID varchar(15), @P_CONTRACT_CODE varchar(15) DECLARE @l_PAY_ID VARCHAR(15), @l_PAY_BID_ID varchar(15) FETCH NEXT FROM PaymentDetail INTO @PERCENT, @AMOUNT, @BID_ID, @PAY_DT, @PAY_STATUS, @NOTES, @P_CONTRACT_CODE WHILE @@FETCH_STATUS = 0 BEGIN SELECT @l_PAY_BID_ID = BID_ID FROM TR_CONTRACT WHERE CONTRACT_CODE = @P_CONTRACT_CODE AND REQUEST_ID = @p_REQUEST_ID SELECT @BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @BID_ID SELECT @CONTRACT_ID = REF_ID FROM @TEMP where [TYPE]='TR_CONTRACT' AND [KEY] = @P_CONTRACT_CODE EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @l_PAY_ID out IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT INSERT INTO TR_CONTRACT_PAYMENT([PAY_AMOUNT],[PAY_DT], [PAY_ID],[CONTRACT_ID], [CONTRACT_CODE], [PAY_PHASE],[EXPECTED_DT], [PERCENT],[AMOUNT],[PAY_STATUS],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], [REQUEST_ID], BID_ID) VALUES(@AMOUNT,(CASE WHEN @PAY_DT IS NOT NULL AND @PAY_DT <> '' then CONVERT(DATETIME, @PAY_DT, 103) ELSE NULL END), @l_PAY_ID ,@CONTRACT_ID, @P_CONTRACT_CODE, NULL ,CONVERT(DATETIME, NULL, 103) ,@PERCENT,@AMOUNT,@PAY_STATUS ,@NOTES , @p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID , (CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END), @p_REQUEST_ID, @BID_ID) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM PaymentDetail INTO @PERCENT, @AMOUNT, @BID_ID, @PAY_DT, @PAY_STATUS, @NOTES, @P_CONTRACT_CODE END CLOSE PaymentDetail DEALLOCATE PaymentDetail -- CHI PHI SUA CHUA DECLARE @ID VARCHAR(15), @DT_BID_ID varchar(15), @DT_BID_CODE varchar(15), @SUPPLIER nvarchar(200), @IS_BIDWIN varchar(1), @OFFERING_VALUE decimal(18), @CHECK_VALUE decimal(18) FETCH NEXT FROM ContractorDetail INTO @ID, @DT_BID_ID, @DT_BID_CODE, @SUPPLIER, @IS_BIDWIN, @OFFERING_VALUE, @CHECK_VALUE WHILE @@FETCH_STATUS = 0 BEGIN -- LAY MA HO SO THAU O BANG MASTER SELECT @DT_BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @DT_BID_CODE EXEC SYS_CodeMasters_Gen 'BID_CONTRACTOR_DT', @ID out IF @ID='' OR @ID IS NULL GOTO ABORT IF @EXP_DT = '' SET @EXP_DT = NULL INSERT INTO BID_CONTRACTOR_DT([ID],[SUP_ID],[BID_ID], [BID_CODE], [SEND_DT],[OFFERING_VALUE],[FORM],[EXP_DT], [BANK],[VOUCHER],[ISVALID],[IS_BID_WIN],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS], [CHECKER_ID],[APPROVE_DT],[PROGRESS_TIME], [SUPPLIER], [CHECK_VALUE], [REQUEST_ID]) VALUES(@ID , NULL ,@DT_BID_ID ,@DT_BID_CODE, NULL ,@OFFERING_VALUE ,NULL, NULL ,NULL ,NULL ,NULL,@IS_BIDWIN , @NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID , CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, @SUPPLIER, @CHECK_VALUE, @P_REQUEST_ID) IF @@ERROR <> 0 GOTO ABORT INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@ID, 'BID_CONTRACTOR_DT') FETCH NEXT FROM ContractorDetail INTO @ID, @DT_BID_ID, @DT_BID_CODE, @SUPPLIER, @IS_BIDWIN, @OFFERING_VALUE, @CHECK_VALUE END CLOSE ContractorDetail DEALLOCATE ContractorDetail -- CHI PHI PHAT SINH TANG GIAM DECLARE @ARISE_ID VARCHAR(15), @BEGIN_VALUE decimal(18,2), @CHECKED_VALUE decimal(18,2) FETCH NEXT FROM ListContractorArise into @ARISE_ID, @DT_BID_ID, @DT_BID_CODE, @SUPPLIER, @IS_BIDWIN, @BEGIN_VALUE, @CHECKED_VALUE WHILE @@FETCH_STATUS = 0 BEGIN -- LAY MA HO SO THAU O BANG MASTER SELECT @DT_BID_ID = REF_ID FROM @TEMP where [TYPE]='BID_MASTER' AND [KEY] = @DT_BID_CODE EXEC SYS_CodeMasters_Gen 'CON_BID_CONTRACTOR_DT_ARISE', @ARISE_ID out IF @ARISE_ID='' OR @ARISE_ID IS NULL GOTO ABORT INSERT INTO CON_BID_CONTRACTOR_DT_ARISE(ARISE_ID,REQ_ID, SUPPLIER, IS_BID_WIN, BEGIN_VALUE, CHECKED_VALUE, BID_ID, BID_CODE) VALUES (@ARISE_ID, @P_REQUEST_ID, @SUPPLIER, @IS_BIDWIN, @BEGIN_VALUE, @CHECKED_VALUE, @DT_BID_ID ,@DT_BID_CODE) INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@ARISE_ID, 'CON_BID_CONTRACTOR_DT_ARISE') FETCH NEXT FROM ListContractorArise into @ARISE_ID, @DT_BID_ID, @DT_BID_CODE, @SUPPLIER, @IS_BIDWIN, @BEGIN_VALUE, @CHECKED_VALUE END CLOSE ListContractorArise DEALLOCATE ListContractorArise -- DANH SÁCH HÀNG HÓA DECLARE @CON_REQ_HH_ID VARCHAR(15), @SUP_ID VARCHAR(15), @SELLTEMENT_AMT DECIMAL(18,2), @DESCRIPTION NVARCHAR(4000), @HH_ID VARCHAR(15), @ESTIMATES_AMT DECIMAL(18,2), @BRANCH_DO VARCHAR(15), @CONS_DOCUMENT_ID VARCHAR(15), @REQDT_ID VARCHAR(15) FETCH NEXT FROM ListHH INTO @CON_REQ_HH_ID,@REQ_CODE, @REQ_ID, @SUP_ID, @SELLTEMENT_AMT, @DESCRIPTION, @HH_ID, @ESTIMATES_AMT,@BRANCH_DO,@CONS_DOCUMENT_ID,@BID_ID,@BID_CODE,@REQDT_ID WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'CON_REQUEST_HH_DT', @CON_REQ_HH_ID out IF @CON_REQ_HH_ID='' OR @CON_REQ_HH_ID IS NULL GOTO ABORT SET @DESCRIPTION = (SELECT [DESCRIPTION] FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID) print @BID_CODE print @REQDT_ID INSERT INTO [dbo].[CON_REQUEST_HH_DT] ( [CON_REQ_HH_ID], [SUP_ID], [SELLTEMENT_AMT], [DESCRIPTION], [HH_ID], [REQ_ID], [ESTIMATES_AMT], [BRANCH_DO], [CONS_DOCUMENT_ID], [BID_ID], [REQ_CODE], [CONSTRUCT_ID], [REQDT_ID], [BID_CODE] ) VALUES ( @CON_REQ_HH_ID, @SUP_ID, @SELLTEMENT_AMT, @DESCRIPTION, @HH_ID, @REQ_ID, @ESTIMATES_AMT, @BRANCH_DO, @CONS_DOCUMENT_ID, @BID_ID, @REQ_CODE, @l_CONSTRUCT_ID, @REQDT_ID, @BID_CODE ) FETCH NEXT FROM ListHH INTO @CON_REQ_HH_ID,@REQ_CODE, @REQ_ID, @SUP_ID, @SELLTEMENT_AMT, @DESCRIPTION, @HH_ID, @ESTIMATES_AMT,@BRANCH_DO,@CONS_DOCUMENT_ID,@BID_ID,@BID_CODE,@REQDT_ID END CLOSE ListHH DEALLOCATE ListHH -- ĐÁNH GIÁ NCC DECLARE @CON_REQ_REVIEW_ID VARCHAR(15), @QCKT_REVIEW NVARCHAR(4000), @CONS_PROCESS VARCHAR(15), @MAINTENANCE VARCHAR(15), @REPORT_PLAN_EDIT VARCHAR(15), @CONS_QUALITY VARCHAR(15), @BEAUTY_IMAGE VARCHAR(15), @SUP_NAME NVARCHAR(1000) FETCH NEXT FROM ListReview into @CON_REQ_REVIEW_ID,@SUP_ID, @QCKT_REVIEW, @CONS_PROCESS, @MAINTENANCE, @REPORT_PLAN_EDIT, @CONS_QUALITY, @BEAUTY_IMAGE,@REQ_ID,@REQ_CODE,@SUP_NAME WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'CON_REQUEST_REVIEW_DT', @CON_REQ_REVIEW_ID out IF @CON_REQ_REVIEW_ID='' OR @CON_REQ_REVIEW_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CON_REQUEST_REVIEW_DT] ( [CON_REQ_REVIEW_ID], [SUP_ID], [CONS_PROCESS], [MAINTENANCE], [REPORT_PLAN_EDIT], [CONS_QUALITY], [BEAUTY_IMAGE], [CONSTRUCT_ID], [QCKT_REVIEW], [SUP_NAME], [REQ_CODE], [REQ_ID] ) VALUES ( @CON_REQ_REVIEW_ID, @SUP_ID, @CONS_PROCESS, @MAINTENANCE, @REPORT_PLAN_EDIT, @CONS_QUALITY, @BEAUTY_IMAGE, @l_CONSTRUCT_ID, @QCKT_REVIEW, @SUP_NAME, @REQ_CODE, @REQ_ID ) FETCH NEXT FROM ListReview INTO @CON_REQ_REVIEW_ID,@SUP_ID, @QCKT_REVIEW, @CONS_PROCESS, @MAINTENANCE, @REPORT_PLAN_EDIT, @CONS_QUALITY, @BEAUTY_IMAGE,@REQ_ID,@REQ_CODE,@SUP_NAME END CLOSE ListReview DEALLOCATE ListReview -- TIẾN ĐỘ CÔNG TRÌNH DECLARE @CON_REQ_PROCESS_ID VARCHAR(15), @DATE_REPORT VARCHAR(50), @PERCENT_COMPLETED DECIMAL(18,2), @PERCENT_REMAIN DECIMAL(18,2), @DEADLINE VARCHAR(50) FETCH NEXT FROM ListConsProcess into @CON_REQ_PROCESS_ID,@DATE_REPORT, @PERCENT_COMPLETED, @PERCENT_REMAIN, @DEADLINE WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'CON_REQUEST_PROCESS_DT', @CON_REQ_PROCESS_ID out IF @CON_REQ_PROCESS_ID='' OR @CON_REQ_PROCESS_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CON_REQUEST_PROCESS_DT] ( [CON_REQ_PROCESS_ID], [DATE_REPORT], [PERCENT_COMPLETED], [PERCENT_REMAIN], [DEADLINE], [CONSTRUCT_ID] ) VALUES ( @CON_REQ_PROCESS_ID, @DATE_REPORT, @PERCENT_COMPLETED, @PERCENT_REMAIN, @DEADLINE, @l_CONSTRUCT_ID ) FETCH NEXT FROM ListConsProcess INTO @CON_REQ_PROCESS_ID,@DATE_REPORT, @PERCENT_COMPLETED, @PERCENT_REMAIN, @DEADLINE END CLOSE ListConsProcess DEALLOCATE ListConsProcess COMMIT TRANSACTION BEGIN SELECT '0' as Result, @l_CONSTRUCT_ID CONSTRUCT_ID, [REF_ID], [TYPE], '' ErrorDesc FROM @TEMP RETURN '0' END ABORT: BEGIN --CLOSE ListRequestDoc --DEALLOCATE ListRequestDoc --CLOSE ListBid --DEALLOCATE ListBid CLOSE ListContract_DT DEALLOCATE ListContract_DT CLOSE PaymentDetail DEALLOCATE PaymentDetail CLOSE ContractorDetail DEALLOCATE ContractorDetail ROLLBACK TRANSACTION SELECT '-1' as Result, @l_CONSTRUCT_ID CONSTRUCT_ID, '' [REF_ID], '' [TYPE], @sErrorCode ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_CONTRACT_TOTAL_CUSTOMER_Excel]' GO CREATE PROC [dbo].[rpt_BUD_CONTRACT_TOTAL_CUSTOMER_Excel] @p_BRANCH_ID VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DT VARCHAR(20) = NULL, @p_LEVEL VARCHAR(15) ='ALL' AS BEGIN DECLARE @BRANCH_TABLE TABLE(BRANCH_ID VARCHAR(15)) IF(@p_LEVEL ='ALL') BEGIN INSERT INTO @BRANCH_TABLE SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) END IF(@p_LEVEL='UNIT') BEGIN INSERT INTO @BRANCH_TABLE SELECT @p_BRANCH_ID END SELECT ROW_NUMBER() OVER (ORDER BY CONTRACT_ID) AS STT, TMP.* FROM ( ---------BUD_CONTRACT_MASTER--------------- SELECT A.CONTRACT_ID, ISNULL( CASE WHEN (B.DEP_ID IS NULL OR B.DEP_ID = '') THEN C.BRANCH_NAME ELSE F.DEP_NAME END, '') AS CUSTOMER_NAME, C.ADDR AS ADDRESS, B.CONTRACT_ID AS CONTRACT_NO, CONVERT(VARCHAR(20),A.INPUT_DT,103) AS START_DT, CONVERT(VARCHAR(20),A.AMEND_DT,103) AS END_DT, --------GIA THUE BAN DAU---------- ISNULL(( --SELECT TOTAL_AMT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = B.CONTRACT_DTID AND IS_FIRST_TIME = 'Y' SELECT A1.TOTAL_AMT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = E.BUILDING_AREA_ID AND A1.CUSTOMER_ID = B.BRANCH_ID AND A1.IS_FIRST_TIME = 'Y' ),0) AS PRICE_VAT_INIT, ISNULL(( --SELECT VAT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = B.CONTRACT_DTID AND IS_FIRST_TIME = 'Y' SELECT A1.VAT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = E.BUILDING_AREA_ID AND A1.CUSTOMER_ID = B.BRANCH_ID AND A1.IS_FIRST_TIME = 'Y' ),0) AS VAT_INIT, --------GIA THUE HIEN TAI--------- ISNULL(B.TOTAL_AMT, 0) AS PRICE_VAT_CURRENT, 0 AS VAT_CURRENT, '' AS PAYMENT_DT, '' AS TOTAL_AMT_PAYMENT, '' AS TOTAL_AMT_NEXT_PAYMENT, G.BRANCH_NAME AS BRANCH_OR_DEPT, --------TONG DT TOA NHA--------- ISNULL(B.DIEN_TICH_CAN_SD,0) AS DT_CHO_THUE, ISNULL(B.DIEN_TICH_TANG - B.DIEN_TICH_CAN_SD,0) AS DT_CON_LAI, CASE WHEN D.OWNER_OR_RENT = 'O' THEN 'Mua' WHEN D.OWNER_OR_RENT = 'U' THEN 'Thuê' ELSE '' END AS OWNER_OR_RENT, H.CURRENT_STATE, ISNULL(E.FLOOR_NO, 0) AS RENT_FLOOR_NO, ISNULL(D.ADDRESS,'') AS BUD_ADDRESS FROM BUD_CONTRACT_MASTER A LEFT JOIN BUD_CONTRACT_DT B ON A.CONTRACT_ID = B.CONTRACT_ID LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID LEFT JOIN BUD_MASTER D ON A.BUILDING_ID = D.BUILDING_ID LEFT JOIN BUD_AREA_DT E ON B.BUILDING_AREA_ID = E.BUILDING_AREA_ID LEFT JOIN CM_DEPARTMENT F ON B.DEP_ID = F.DEP_ID LEFT JOIN CM_BRANCH G ON D.BRANCH_ID = G.BRANCH_ID LEFT JOIN RET_MASTER H ON D.ASSET_ID = H.ASSET_ID WHERE 1=1 AND A.AUTH_STATUS = 'A' AND (CONVERT(DATE, A.INPUT_DT, 103) >= CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE, A.AMEND_DT, 103 ) <= CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND A.BRANCH_ID IN (SELECT BRANCH_ID FROM @BRANCH_TABLE) UNION ALL ---------BUD_CONTRACT_CUST_MASTER--------------- SELECT A.CONTRACT_ID, B.CUSTOMER_NAME AS CUSTOMER_NAME, B.ADDR AS ADDRESS, D.CONTRACT_CODE AS CONTRACT_NO, CONVERT(VARCHAR(20),D.START_DT,103) AS START_DT, CONVERT(VARCHAR(20),D.END_DT,103) AS END_DT, --------GIA THUE BAN DAU---------- ISNULL(( --SELECT TOTAL_AMT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND IS_FIRST_TIME = 'Y' SELECT A1.TOTAL_AMT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = F.BUILDING_AREA_ID AND A1.CUSTOMER_ID = A.CUST_ID AND A1.IS_FIRST_TIME = 'Y' ),0) AS PRICE_VAT_INIT, ISNULL(( --SELECT VAT_INIT FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = A.CONTRACT_ID AND IS_FIRST_TIME = 'Y' SELECT A1.VAT_INIT FROM BUD_UTIL_LOG A1 WHERE A1.CONTRACT_ID = A.CONTRACT_ID AND A1.BUILDING_AREA_ID = F.BUILDING_AREA_ID AND A1.CUSTOMER_ID = A.CUST_ID AND A1.IS_FIRST_TIME = 'Y' ),0) AS VAT_INIT, --------GIA THUE HIEN TAI--------- ISNULL(F.TOTAL_AMT,0) AS PRICE_VAT_CURRENT, ISNULL(A.VAT, 0) AS VAT_CURRENT, CONVERT(VARCHAR(20),A.PAYMENT_DT,103) AS PAYMENT_DT, '' AS TOTAL_AMT_PAYMENT, '' AS TOTAL_AMT_NEXT_PAYMENT, E.BRANCH_NAME AS BRANCH_OR_DEPT, --------TONG DT TOA NHA--------- ISNULL(F.DIEN_TICH_CAN_CHOTHUE,0) AS DT_CHO_THUE, ISNULL(F.DIEN_TICH_TANG - DIEN_TICH_CAN_CHOTHUE,0) AS DT_CON_LAI, CASE WHEN C.OWNER_OR_RENT = 'O' THEN 'Mua' WHEN C.OWNER_OR_RENT = 'U' THEN 'Thuê' ELSE '' END AS OWNER_OR_RENT, H.CURRENT_STATE, ISNULL(G.FLOOR_NO,0) AS RENT_FLOOR_NO, ISNULL(C.ADDRESS,'') AS BUD_ADDRESS FROM BUD_CONTRACT_CUST_MASTER A LEFT JOIN LS_CUSTOMER B ON A.CUST_ID = B.CUSTOMER_ID LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN TR_CONTRACT D ON A.TR_CONTRACT_ID = D.CONTRACT_ID LEFT JOIN CM_BRANCH E ON C.BRANCH_ID = E.BRANCH_ID LEFT JOIN BUD_CONTRACT_CUST_DT F ON A.CONTRACT_ID = F.CONTRACT_ID LEFT JOIN BUD_AREA_DT G ON F.BUILDING_AREA_ID = G.BUILDING_AREA_ID LEFT JOIN RET_MASTER H ON C.ASSET_ID = H.ASSET_ID WHERE 1=1 AND A.AUTH_STATUS = 'A' AND (CONVERT(DATE, D.START_DT, 103) >= CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE, D.END_DT, 103 ) <= CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') AND A.BRANCH_ID IN (SELECT BRANCH_ID FROM @BRANCH_TABLE) ) TMP ORDER BY CONTRACT_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_UTILIZED_EFFICIENT_Excel]' GO CREATE PROC [dbo].[rpt_BUD_UTILIZED_EFFICIENT_Excel] @p_BUILDING_ID VARCHAR(15) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DT VARCHAR(20) = NULL AS BEGIN DECLARE @AUTH_CONTRACT TABLE ( CONTRACT_ID VARCHAR(15)) INSERT INTO @AUTH_CONTRACT SELECT CONTRACT_ID FROM BUD_CONTRACT_MASTER WHERE AUTH_STATUS = 'A' AND (CONVERT(DATE, INPUT_DT, 103) >= CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE, AMEND_DT, 103 ) <= CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') UNION ALL SELECT A1.CONTRACT_ID FROM BUD_CONTRACT_CUST_MASTER A1 INNER JOIN TR_CONTRACT B1 ON A1.TR_CONTRACT_ID = B1.CONTRACT_ID WHERE A1.AUTH_STATUS = 'A' AND (CONVERT(DATE, B1.START_DT, 103) >= CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE, B1.END_DT, 103 ) <= CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') SELECT ROW_NUMBER() OVER(ORDER BY A.BUILDING_ID) AS STT, C.BRANCH_NAME AS BRANCH, '' AS KHAU_HAO_TRU_SO, B.FLOOR_NO AS FLOOR_NO, B.FLOOR_AREA AS FLOOR_AREA, ( ISNULL(( SELECT SUM(ISNULL(DIEN_TICH_CAN_SD,0)) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILDING_AREA_ID = B.BUILDING_AREA_ID AND BUILD_ID = A.BUILDING_ID ),0) + ISNULL(( SELECT SUM(ISNULL(DIEN_TICH_CAN_CHOTHUE,0)) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILDING_AREA_ID = B.BUILDING_AREA_ID AND BUILD_ID = A.BUILDING_ID ),0) ) AS DT_DA_CHO_THUE, --(B.INTERNAL_AREA + B.UTILZED_AREA) AS DT_DA_CHO_THUE, ( B.FLOOR_AREA - (ISNULL(( SELECT SUM(ISNULL(DIEN_TICH_CAN_SD,0)) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILDING_AREA_ID = B.BUILDING_AREA_ID AND BUILD_ID = A.BUILDING_ID ),0) + ISNULL(( SELECT SUM(ISNULL(DIEN_TICH_CAN_CHOTHUE,0)) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILDING_AREA_ID = B.BUILDING_AREA_ID AND BUILD_ID = A.BUILDING_ID ),0)) ) AS DT_CON_LAI, --B.FLOOR_AREA - (B.INTERNAL_AREA + B.UTILZED_AREA) AS DT_CON_LAI, ( ISNULL(( SELECT SUM(ISNULL(TOTAL_AMT,0)) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILDING_AREA_ID = B.BUILDING_AREA_ID ),0) + ISNULL(( SELECT SUM(ISNULL(TOTAL_AMT,0)) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILDING_AREA_ID = B.BUILDING_AREA_ID ),0) ) / 1000000 AS THU_NHAP FROM BUD_MASTER A LEFT JOIN BUD_AREA_DT B ON A.BUILDING_ID = B.BUILD_ID LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID WHERE 1=1 AND A.BUILDING_ID = @p_BUILDING_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_CONTRACT_DT_ById]' GO ALTER PROCEDURE [dbo].[BUD_CONTRACT_DT_ById] @CONTRACT_ID varchar(15), @VERSION_NO int, @CURRENT_CONTRACT_ID VARCHAR(15),-- = '' KHI VIEW, <> '' KHI TAO PHU LUC HOP DONG, KHONG TINH GIA TRI CUA HOP DONG HIEN TAI @TO_DATE VARCHAR(18)--NEU '' THI LAY THEO NGAY DUYET HOP DONG - TRUONG HOP VIEW -- NGUOC LAI NEU <> '': LAY THEO NGAY TU CLIEN - LAY DEN HIEN TAI - TAO PHU LUC HOP DONG AS DECLARE @l_TO_DATE DATETIME IF @TO_DATE = '' SET @l_TO_DATE = (select TOP 1 CONVERT(DATETIME,APPROVE_DT,103) from BUD_UTIL_LOG where CONTRACT_ID =@CONTRACT_ID AND VERSION_NO = @VERSION_NO) ELSE SET @l_TO_DATE = CONVERT(DATETIME, @TO_DATE, 103) SELECT A.*,B.FLOOR_NO, B.BUILDING_AREA_ID,B.INTERNAL_AREA,B.UTILZED_AREA,B.FLOOR_AREA, ISNULL(B.UTILZED_AREA,0) DIENTICH_DACHOTHUE, ISNULL(B.FLOOR_AREA -B.UTILZED_AREA- B.INTERNAL_AREA + A.RENT_AREA_APP,0) DIENTICH_CONLAI, ISNULL(B.FLOOR_AREA- B.INTERNAL_AREA,0) DIENTICH_CONLAI_CHOTHUE, ------------BAODNQ 27/12/20201:select thêm branch code và dep code--- C.BRANCH_NAME, D.DEP_NAME, C.BRANCH_CODE, D.DEP_CODE, ((select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @CURRENT_CONTRACT_ID OR @CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='I' AND UTIL_RELEASE ='U' AND VERSION_NO <=@VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID) - (select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @CURRENT_CONTRACT_ID OR @CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='I' AND UTIL_RELEASE ='R' AND VERSION_NO <=@VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID)) AS TONGDIENTICH_NGANHANG_SUDUNG, ((select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @CURRENT_CONTRACT_ID OR @CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='C' AND UTIL_RELEASE ='U' AND VERSION_NO <=@VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID) - (select ISNULL(sum(AREA),0) from BUD_UTIL_LOG where CONVERT(DATETIME,APPROVE_DT,103) < @l_TO_DATE AND (CONTRACT_ID <> @CURRENT_CONTRACT_ID OR @CURRENT_CONTRACT_ID = '') AND UTIL_TYPE ='C' AND UTIL_RELEASE ='R' AND VERSION_NO <=@VERSION_NO AND BUILDING_AREA_ID = A.BUILDING_AREA_ID)) AS TONGDIENTICH_KHACHHANG_SUDUNG ---BAODNQ: Kết thêm bảng CM_BRANCH và CM_DEPARTMENT--- FROM BUD_CONTRACT_DT A LEFT JOIN BUD_AREA_DT B ON A.BUILDING_AREA_ID = B.BUILDING_AREA_ID LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID WHERE A.CONTRACT_ID =@CONTRACT_ID AND A.VERSION_NO=@VERSION_NO GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAY_SERVICE_ById]' GO ALTER PROC [dbo].[TR_REQ_PAY_SERVICE_ById] @p_REQ_PAY_ID varchar(15) AS BEGIN SELECT A.*,P.REQ_CODE AS EMP_NAME, D.DEP_CODE, D.DEP_NAME, A.SERVICE_NAME AS REQ_PAY_SERVICE_NAME FROM TR_REQ_PAY_SERVICE A --LEFT JOIN TL_USER T ON A.EMP_ID = T.TLNANME LEFT JOIN PL_REQUEST_DOC P ON A.EMP_ID = P.REQ_ID LEFT JOIN CM_DEPARTMENT D ON A.DEPT_ID= D.DEP_ID WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAY_PERIOD_LOG]' GO ALTER PROC [dbo].[TR_REQ_PAY_PERIOD_LOG] @p_REQ_PAY_ID VARCHAR(15)= NULL, @p_CONTRACT_ID VARCHAR(15)= NULL, @p_TOP VARCHAR(15)= NULL AS BEGIN -- PAGING IF(@p_TOP IS NULL OR @p_TOP='' OR @p_TOP=0) BEGIN -- PAGING BEGIN SELECT A.* , CASE WHEN B.CONTRACT_CODE IS NULL OR B.CONTRACT_CODE ='' THEN B.CONTRACT_ID ELSE B.CONTRACT_CODE END CONTRACT_CODE, B.CONTRACT_NAME, C.REQ_PAY_CODE, A.AMT_PAY AS AMT_ADVANCE, A.AMT_PAY AS AMT_REMAIN, D.REQ_PAY_CODE AS SO_PHIEU_TAM_UNG,D.REQ_DT AS NGAY_TAM_UNG, C.REQ_PAY_CODE -- SELECT END FROM TR_REQ_PAY_PERIOD A INNER JOIN TR_CONTRACT B ON A.CONTRACT_ID = B.CONTRACT_ID INNER JOIN TR_REQ_PAYMENT C ON A.REQ_PAY_ID = C.REQ_PAY_ID LEFT JOIN TR_REQ_ADVANCE_PAYMENT D ON A.AD_PAY_ID = D.REQ_PAY_ID WHERE (A.REQ_PAY_ID <> @p_REQ_PAY_ID OR @p_REQ_PAY_ID ='' OR @p_REQ_PAY_ID IS NULL) AND C.AUTH_STATUS_KT='A' AND A.CONTRACT_ID =@p_CONTRACT_ID UNION SELECT A.* , CASE WHEN B.CONTRACT_CODE IS NULL OR B.CONTRACT_CODE ='' THEN B.CONTRACT_ID ELSE B.CONTRACT_CODE END CONTRACT_CODE, B.CONTRACT_NAME, C.REQ_PAY_CODE,A.AMT_PAY AS AMT_ADVANCE, A.AMT_PAY AS AMT_REMAIN, D.REQ_PAY_CODE AS SO_PHIEU_TAM_UNG,D.REQ_DT AS NGAY_TAM_UNG, C.REQ_PAY_CODE -- SELECT END FROM TR_REQ_PAY_PERIOD A INNER JOIN TR_CONTRACT B ON A.CONTRACT_ID = B.CONTRACT_ID INNER JOIN TR_REQ_ADVANCE_PAYMENT C ON A.REQ_PAY_ID = C.REQ_PAY_ID LEFT JOIN TR_REQ_ADVANCE_PAYMENT D ON A.AD_PAY_ID = D.REQ_PAY_ID WHERE (A.REQ_PAY_ID <> @p_REQ_PAY_ID OR @p_REQ_PAY_ID ='' OR @p_REQ_PAY_ID IS NULL) AND C.AUTH_STATUS_KT='A' AND A.CONTRACT_ID =@p_CONTRACT_ID -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT A.* , CASE WHEN B.CONTRACT_CODE IS NULL OR B.CONTRACT_CODE ='' THEN B.CONTRACT_ID ELSE B.CONTRACT_CODE END CONTRACT_CODE, B.CONTRACT_NAME, C.REQ_PAY_CODE, A.AMT_PAY AS AMT_ADVANCE, A.AMT_PAY AS AMT_REMAIN, D.REQ_PAY_CODE AS SO_PHIEU_TAM_UNG,D.REQ_DT AS NGAY_TAM_UNG, C.REQ_PAY_CODE -- SELECT END FROM TR_REQ_PAY_PERIOD A INNER JOIN TR_CONTRACT B ON A.CONTRACT_ID = B.CONTRACT_ID INNER JOIN TR_REQ_PAYMENT C ON A.REQ_PAY_ID = C.REQ_PAY_ID LEFT JOIN TR_REQ_ADVANCE_PAYMENT D ON A.AD_PAY_ID = D.REQ_PAY_ID WHERE (A.REQ_PAY_ID <> @p_REQ_PAY_ID OR @p_REQ_PAY_ID ='' OR @p_REQ_PAY_ID IS NULL) AND C.AUTH_STATUS_KT='A' AND A.CONTRACT_ID =@p_CONTRACT_ID UNION SELECT A.* , CASE WHEN B.CONTRACT_CODE IS NULL OR B.CONTRACT_CODE ='' THEN B.CONTRACT_ID ELSE B.CONTRACT_CODE END CONTRACT_CODE, B.CONTRACT_NAME, C.REQ_PAY_CODE,A.AMT_PAY AS AMT_ADVANCE, A.AMT_PAY AS AMT_REMAIN, D.REQ_PAY_CODE AS SO_PHIEU_TAM_UNG,D.REQ_DT AS NGAY_TAM_UNG, C.REQ_PAY_CODE -- SELECT END FROM TR_REQ_PAY_PERIOD A INNER JOIN TR_CONTRACT B ON A.CONTRACT_ID = B.CONTRACT_ID INNER JOIN TR_REQ_ADVANCE_PAYMENT C ON A.REQ_PAY_ID = C.REQ_PAY_ID LEFT JOIN TR_REQ_ADVANCE_PAYMENT D ON A.AD_PAY_ID = D.REQ_PAY_ID WHERE (A.REQ_PAY_ID <> @p_REQ_PAY_ID OR @p_REQ_PAY_ID ='' OR @p_REQ_PAY_ID IS NULL) AND C.AUTH_STATUS_KT='A' AND A.CONTRACT_ID =@p_CONTRACT_ID -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CON_LAYOUT_BLUEPRINT_SEARCH]' GO CREATE PROC [dbo].[CON_LAYOUT_BLUEPRINT_SEARCH] @p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) = NULL, @p_LAYOUT_NAME NVARCHAR(500) = NULL, @p_CONSTRUCT_ID VARCHAR(15) = NULL, @p_CONSTRUCT_NAME NVARCHAR(500) = NULL, @p_LAYOUT_TYPE VARCHAR(15) = NULL, @p_NOTES VARCHAR(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(12) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_TLNAME_USER VARCHAR(15), @p_TOP INT = 1000 AS BEGIN -- PAGING DECLARE @AUTHOR_DVDM TABLE ( ROLE_ID VARCHAR(100), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), DVDM_ID VARCHAR(20) ) -- INSERT LIST DVDM INSERT INTO @AUTHOR_DVDM ( ROLE_ID, BRANCH_ID, DEP_ID, DVDM_ID ) SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID WHERE TU.TLNANME=@p_TLNAME_USER UNION ALL SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL UNION ALL SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) UNION ALL SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,(CASE WHEN A.RECORD_STATUS = 1 THEN N'Hoạt động' END) AS RECORD_STATUS_NAME, AU.AUTH_STATUS_NAME -- SELECT END FROM CON_LAYOUT_BLUEPRINT A LEFT JOIN CM_AUTH_STATUS AU ON AU.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID = A.CON_LAYOUT_BLUEPRINT_ID AND PLRP.STATUS <>'U' WHERE 1 = 1 AND (A.CON_LAYOUT_BLUEPRINT_ID LIKE '%' + @p_CON_LAYOUT_BLUEPRINT_ID + '%' OR @p_CON_LAYOUT_BLUEPRINT_ID IS NULL OR @p_CON_LAYOUT_BLUEPRINT_ID = '') AND (A.LAYOUT_NAME LIKE '%' + @p_LAYOUT_NAME + '%' OR @p_LAYOUT_NAME IS NULL OR @p_LAYOUT_NAME = '') AND (A.CONSTRUCT_ID LIKE '%' + @p_CONSTRUCT_ID + '%' OR @p_CONSTRUCT_ID IS NULL OR @p_CONSTRUCT_ID = '') AND (A.CONSTRUCT_NAME LIKE '%' + @p_CONSTRUCT_NAME + '%' OR @p_CONSTRUCT_NAME IS NULL OR @p_CONSTRUCT_NAME = '') AND (A.LAYOUT_TYPE LIKE '%' + @p_LAYOUT_TYPE + '%' OR @p_LAYOUT_TYPE IS NULL OR @p_LAYOUT_TYPE = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (PLRP.DVDM_ID=AUTH.DVDM_ID OR PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) OR A.MAKER_ID = @p_TLNAME_USER OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_USER = @p_TLNAME_USER AND A.AUTH_STATUS NOT IN ('E','R')))) ORDER BY A.CREATE_DT DESC -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(@P_TOP) A.*,(CASE WHEN A.RECORD_STATUS = 1 THEN N'Hoạt động' END) AS RECORD_STATUS_NAME, AU.AUTH_STATUS_NAME -- SELECT END FROM CON_LAYOUT_BLUEPRINT A LEFT JOIN CM_AUTH_STATUS AU ON AU.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID = A.CON_LAYOUT_BLUEPRINT_ID AND PLRP.STATUS <>'U' WHERE 1 = 1 AND (A.CON_LAYOUT_BLUEPRINT_ID LIKE '%' + @p_CON_LAYOUT_BLUEPRINT_ID + '%' OR @p_CON_LAYOUT_BLUEPRINT_ID IS NULL OR @p_CON_LAYOUT_BLUEPRINT_ID = '') AND (A.LAYOUT_NAME LIKE '%' + @p_LAYOUT_NAME + '%' OR @p_LAYOUT_NAME IS NULL OR @p_LAYOUT_NAME = '') AND (A.CONSTRUCT_ID LIKE '%' + @p_CONSTRUCT_ID + '%' OR @p_CONSTRUCT_ID IS NULL OR @p_CONSTRUCT_ID = '') AND (A.CONSTRUCT_NAME LIKE '%' + @p_CONSTRUCT_NAME + '%' OR @p_CONSTRUCT_NAME IS NULL OR @p_CONSTRUCT_NAME = '') AND (A.LAYOUT_TYPE LIKE '%' + @p_LAYOUT_TYPE + '%' OR @p_LAYOUT_TYPE IS NULL OR @p_LAYOUT_TYPE = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (PLRP.DVDM_ID=AUTH.DVDM_ID OR PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) OR A.MAKER_ID = @p_TLNAME_USER OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_USER = @p_TLNAME_USER AND A.AUTH_STATUS NOT IN ('E','R')))) --AND (A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') ORDER BY A.CREATE_DT DESC -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAY_SCHEDULE_ByID]' GO ALTER PROC [dbo].[TR_REQ_PAY_SCHEDULE_ByID] @p_REQ_PAY_ID VARCHAR(15) = NULL AS BEGIN SELECT A.SCHEDULE_ID,A.REQ_PAY_ID, A.PAY_ID,A.PAY_PHASE,A.AMT_PAY,A.REQ_ADV_ID, A.AMT_ADVANCE,A.AMT_PAY_DO AS REQ_ADVANCE_AMT, --(A.AMT_PAY -A.AMT_ADVANCE- A.AMT_REMAIN) AS AMT_PAY_DO, A.AMT_PAY_DO, A.AMT_REMAIN, A.AMT_PAY_REAL, A.AMT_REMAIN + a.AMT_PAY_REAL AS REMAIN_AMT_HIS, A.AMT_REMAIN + a.AMT_PAY_REAL AS REQ_AMT, A.REQ_PAY_DT,A.REQ_AD_DT,A.PROCESS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS_KT, '' KY_TAM_UNG, ISNULL(P.PO_CODE, C.CONTRACT_CODE )AS REF_CODE, ISNULL(P.PO_NAME, C.CONTRACT_NAME ) AS REF_NAME, A.REF_ID, A.REQ_PAY_DESC, A.REQ_PAY_ENTRIES,A.CURRENCY, A.RATE, AP.REQ_PAY_CODE AS REQ_PAY_AD_CODE, '' RECORD_STATUS, ISNULL(X1.[PERCENT], X2.[PERCENT]) AS TY_LE, ISNULL(S1.BANK_NAME, S2.BANK_NAME) AS BANK_NAME, ISNULL(S1.ACC_NAME,S2.ACC_NAME) AS ACC_NAME, ISNULL(S1.ACC_NUM, S2.ACC_NUM) AS ACC_NUM, ISNULL(S1.BANK_NAME_OUT, S2.BANK_NAME_OUT) AS BANK_NAME_OUT, ISNULL(S1.ACC_NAME_OUT,S2.ACC_NAME_OUT) AS ACC_NAME_OUT, ISNULL(S1.ACC_NUM_OUT, S2.ACC_NUM_OUT) AS ACC_NUM_OUT, '' AS SO_PHIEU_TAM_UNG, '' AS NGAY_TAM_UNG FROM TR_REQ_PAY_SCHEDULE A LEFT JOIN TR_PO_MASTER P ON A.REF_ID = P.PO_ID LEFT JOIN TR_CONTRACT C ON A.REF_ID = C.CONTRACT_ID LEFT JOIN TR_CONTRACT_PAYMENT X1 ON A.PAY_ID = X1.PAY_ID LEFT JOIN TR_PO_PAYMENT X2 ON A.PAY_ID = X2.PAY_ID LEFT JOIN TR_REQ_ADVANCE_PAYMENT AP ON A.REQ_ADV_ID = AP.REQ_PAY_ID LEFT JOIN CM_SUPPLIER S1 ON P.SUP_ID = S1.SUP_ID LEFT JOIN CM_SUPPLIER S2 ON C.SUP_ID = S2.SUP_ID WHERE A.REQ_PAY_ID = @p_REQ_PAY_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CON_LAYOUT_BLUEPRINT_INS]' GO CREATE PROC [dbo].[CON_LAYOUT_BLUEPRINT_INS] @p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) = NULL, @p_LAYOUT_NAME NVARCHAR(500) = NULL, @p_CONSTRUCT_ID VARCHAR(15) = NULL, @p_CONSTRUCT_NAME VARCHAR(500) = NULL, @p_LAYOUT_TYPE VARCHAR(15) = NULL, @p_NOTES NVARCHAR(4000) = NULL, @p_RECORD_STATUS VARCHAR(1) = NULL, @p_AUTH_STATUS VARCHAR(1) = NULL, @p_MAKER_ID VARCHAR(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID VARCHAR(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_SIGN_USER VARCHAR(20) = NULL AS DECLARE @l_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) BEGIN TRANSACTION EXEC SYS_CodeMasters_Gen 'CON_LAYOUT_BLUEPRINT', @l_CON_LAYOUT_BLUEPRINT_ID out IF @l_CON_LAYOUT_BLUEPRINT_ID='' OR @l_CON_LAYOUT_BLUEPRINT_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CON_LAYOUT_BLUEPRINT] ( [CON_LAYOUT_BLUEPRINT_ID], [LAYOUT_NAME], [CONSTRUCT_ID], [CONSTRUCT_NAME], [LAYOUT_TYPE], [NOTES], [RECORD_STATUS], [AUTH_STATUS], [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT], [SIGN_USER] ) VALUES ( @l_CON_LAYOUT_BLUEPRINT_ID, @p_LAYOUT_NAME, @p_CONSTRUCT_ID, @p_CONSTRUCT_NAME, @p_LAYOUT_TYPE, @p_NOTES, @p_RECORD_STATUS, @p_AUTH_STATUS, @p_MAKER_ID, CONVERT(DATETIME, @p_CREATE_DT, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_SIGN_USER ) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT 0 as Result, @l_CON_LAYOUT_BLUEPRINT_ID ID, '' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' ID, '' ErrorDesc RETURN -1 End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CON_LAYOUT_BLUEPRINT_UPD]' GO CREATE PROC [dbo].[CON_LAYOUT_BLUEPRINT_UPD] @p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) = NULL, @p_LAYOUT_NAME NVARCHAR(500) = NULL, @p_CONSTRUCT_ID VARCHAR(15) = NULL, @p_CONSTRUCT_NAME VARCHAR(500) = NULL, @p_LAYOUT_TYPE VARCHAR(15) = NULL, @p_NOTES NVARCHAR(4000) = NULL, @p_RECORD_STATUS VARCHAR(1) = NULL, @p_AUTH_STATUS VARCHAR(1) = NULL, @p_MAKER_ID VARCHAR(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID VARCHAR(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL AS BEGIN TRANSACTION UPDATE [dbo].[CON_LAYOUT_BLUEPRINT] SET [LAYOUT_NAME] = @p_LAYOUT_NAME, [CONSTRUCT_ID] = @p_CONSTRUCT_ID, [CONSTRUCT_NAME] = @p_CONSTRUCT_NAME, [LAYOUT_TYPE] = @p_LAYOUT_TYPE, [NOTES] = @p_NOTES, [RECORD_STATUS] = @p_RECORD_STATUS, [AUTH_STATUS] = @p_AUTH_STATUS, [MAKER_ID] = @p_MAKER_ID, [CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103), [CHECKER_ID] = @p_CHECKER_ID, [APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT 0 as Result, @p_CON_LAYOUT_BLUEPRINT_ID ID, '' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' ID, '' ErrorDesc RETURN -1 End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CON_REQUEST_DOC_Search]' GO ALTER PROCEDURE [dbo].[CON_REQUEST_DOC_Search] @p_REQ_ID varchar(15) = NULL, @p_CON_REQUEST_DOC_ID varchar(15) = NULL, @p_REQ_CODE nvarchar(100) = NULL, @p_REQ_NAME nvarchar(200) = NULL, @p_REQ_DT VARCHAR(20) = NULL, @p_REQ_CONTENT nvarchar(1000) = NULL, @p_CONSTRUCT_ID varchar(15) = NULL, @p_TOTAL_AMT decimal = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(12) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_TOP INT = 10, @p_PLAN_TYPE VARCHAR(1) = NULL, @p_IS_PARENT VARCHAR(1) = NULL AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE [CONDITION] )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END [dbo].[CON_REQUEST_DOC_Search] '','','','','','',NULL,'','','','','','','','',100 */ BEGIN -- PAGING BEGIN TRANSACTION IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,D.AUTH_STATUS_NAME,E.CONSTRUCT_NAME,E.CONSTRUCT_CODE, dbo.FN_GET_CHINHANH(A.BRANCH_ID,'KV') KHU_VUC, dbo.FN_GET_CHINHANH(A.BRANCH_ID,'CN') CHI_NHANH, B.BRANCH_NAME PGD, B.BRANCH_CODE, C.CONTENT AS CONS_TYPE_NAME, ISNULL((SELECT SUM (T.SETTLE_PAYMENT) AS SETTLE_PAYMENT FROM (SELECT A.*, ISNULL((SELECT SUM(Z.AMOUNT) FROM TR_CONTRACT_PAYMENT Z INNER JOIN TR_CONTRACT Y ON Z.CONTRACT_CODE = Y.CONTRACT_CODE INNER JOIN BID_MASTER X ON Y.CONTRACT_CODE = X.CONTRACT_CODE AND B.CONTRACT_CODE = X.CONTRACT_CODE WHERE Z.PAY_STATUS = '1' ),0) AS SETTLE_PAYMENT FROM BID_MASTER B WHERE A.CON_REQUEST_DOC_ID = B.REQUEST_ID) AS T), 0) AS VALUE_PAYMENT -- SELECT END FROM CON_REQUEST_DOC A LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS ---DAO MOI THEM BRANCH LEFT JOIN CM_BRANCH B ON A.BRANCH_ID=B.BRANCH_ID LEFT JOIN CON_MASTER E ON E.CONSTRUCT_ID = A.CONSTRUCT_ID LEFT JOIN CM_ALLCODE C ON C.CDNAME = 'CONSTRUCT_TYPE' AND C.CDVAL = 'SC' WHERE 1 = 1 AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.REQ_DT =CONVERT(DATETIME, @p_REQ_DT, 103) OR @p_REQ_DT IS NULL OR @p_REQ_DT = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.CONSTRUCT_ID LIKE '%' + @p_CONSTRUCT_ID + '%' OR @p_CONSTRUCT_ID IS NULL OR @p_CONSTRUCT_ID = '') AND (A.TOTAL_AMT = @p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL) AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.PLAN_TYPE LIKE '%' + @p_PLAN_TYPE + '%' OR @p_PLAN_TYPE IS NULL OR @p_PLAN_TYPE = '') AND (A.IS_PARENT LIKE '%' + @p_IS_PARENT + '%' OR @p_IS_PARENT IS NULL OR @p_IS_PARENT = '') ORDER BY A.CREATE_DT DESC -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,D.AUTH_STATUS_NAME,E.CONSTRUCT_NAME,E.CONSTRUCT_CODE, dbo.FN_GET_CHINHANH(A.BRANCH_ID,'KV') KHU_VUC, dbo.FN_GET_CHINHANH(A.BRANCH_ID,'CN') CHI_NHANH, B.BRANCH_NAME PGD, B.BRANCH_CODE, C.CONTENT AS CONS_TYPE_NAME, ISNULL((SELECT SUM (T.SETTLE_PAYMENT) AS SETTLE_PAYMENT FROM (SELECT A.*, ISNULL((SELECT SUM(Z.AMOUNT) FROM TR_CONTRACT_PAYMENT Z INNER JOIN TR_CONTRACT Y ON Z.CONTRACT_CODE = Y.CONTRACT_CODE INNER JOIN BID_MASTER X ON Y.CONTRACT_CODE = X.CONTRACT_CODE AND B.CONTRACT_CODE = X.CONTRACT_CODE WHERE Z.PAY_STATUS = '1' ),0) AS SETTLE_PAYMENT FROM BID_MASTER B WHERE A.CON_REQUEST_DOC_ID = B.REQUEST_ID) AS T), 0) AS VALUE_PAYMENT -- SELECT END FROM CON_REQUEST_DOC A LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH B ON A.BRANCH_ID=B.BRANCH_ID LEFT JOIN CON_MASTER E ON E.CONSTRUCT_ID = A.CONSTRUCT_ID LEFT JOIN CM_ALLCODE C ON C.CDNAME = 'CONSTRUCT_TYPE' AND C.CDVAL = 'SC' WHERE 1 = 1 AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.REQ_DT =CONVERT(DATETIME, @p_REQ_DT, 103) OR @p_REQ_DT IS NULL OR @p_REQ_DT = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.CONSTRUCT_ID LIKE '%' + @p_CONSTRUCT_ID + '%' OR @p_CONSTRUCT_ID IS NULL OR @p_CONSTRUCT_ID = '') AND (A.TOTAL_AMT = @p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL) AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.PLAN_TYPE LIKE '%' + @p_PLAN_TYPE + '%' OR @p_PLAN_TYPE IS NULL OR @p_PLAN_TYPE = '') AND (A.IS_PARENT LIKE '%' + @p_IS_PARENT + '%' OR @p_IS_PARENT IS NULL OR @p_IS_PARENT = '') ORDER BY A.CREATE_DT DESC -- PAGING END COMMIT TRANSACTION END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQ_GOOD_Search]' GO ALTER PROCEDURE [dbo].[PL_REQ_GOOD_Search] @P_REQDT_TYPE varchar(1)= NULL, @p_GD_ID VARCHAR(15) = NULL, @p_GD_CODE varchar(20) = NULL, @p_GD_NAME nvarchar(200) = NULL, @p_BRANCH_CODE varchar(15) = NULL, @p_BRANCH_ID VARCHAR(20) = NULL, @p_DEP_ID VARCHAR(20) = NULL, @p_BRANCH_LOGIN varchar(15) = NULL, @p_USER_LOGIN VARCHAR(20) = NULL, @P_PLAN_ID NVARCHAR(15) = NULL, @P_HH_ID VARCHAR(15), @p_GD_TYPE_ID VARCHAR(20) = NULL, @p_GD_TYPE_CODE VARCHAR(20)= NULL, @p_GD_TYPE_NAME NVARCHAR(500)= NULL, @p_DVDM_ID VARCHAR(15) = NULL, @p_PLAN_TYPE_ID VARCHAR(15) = NULL, @p_TYPE_NS VARCHAR(15) = NULL, @p_YEAR VARCHAR(4), @P_TOP INT = null AS BEGIN -- PAGING DECLARE @l_QUANTITY numeric(18,0)=0, @l_QUANTITY_EXE decimal(18,0)=0, @l_QUANTITY_REMAIN decimal(18,0)=0, @l_AMT numeric(18,0)=0, @l_AMT_EXE decimal(18,0)=0, @l_AMT_REMAIN decimal(18,0)=0,@GD_CODE VARCHAR(50), @BRANCH_TYPE VARCHAR(20),@BRANCH_LOGIN VARCHAR(20),@DEP_LOGIN VARCHAR(20),@ROLE_USER VARCHAR(20),@IS_ALL BIT,@IS_CHUNG BIT DECLARE @IS_HANHCHINH BIT SET @IS_HANHCHINH=0 IF(@p_YEAR IS NULL OR @p_YEAR='' OR @p_YEAR = '0') BEGIN SET @p_YEAR=YEAR(GETDATE()) END IF(@p_YEAR < YEAR(GETDATE())) BEGIN SET @p_YEAR='1' END SET @IS_ALL=0 DECLARE @DVDM_ID TABLE( DVDM_ID VARCHAR(20)) DECLARE @TRADE_REF TABLE( TRADE_ID VARCHAR (20)) SELECT @BRANCH_LOGIN=TLSUBBRID,@DEP_LOGIN=SECUR_CODE ,@ROLE_USER=RoleName FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN IF(@p_BRANCH_CODE IS NOT NULL AND @p_BRANCH_CODE <>'') SELECT TOP 1 @p_DEP_ID=DEP_ID,@p_BRANCH_ID=BRANCH_ID FROM dbo.CM_DEPARTMENT WHERE DEP_CODE=@p_BRANCH_CODE IF(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) SET @p_BRANCH_ID=@BRANCH_LOGIN DECLARE @AUTHOR_DVDM TABLE ( ROLE_ID VARCHAR(100), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20) ) INSERT INTO @AUTHOR_DVDM ( ROLE_ID, BRANCH_ID, DEP_ID ) SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE FROM dbo.TL_USER TU WHERE TU.TLNANME=@p_USER_LOGIN UNION ALL SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE FROM dbo.TL_USER TU LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNANME=@p_USER_LOGIN UNION ALL SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TU WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) UNION ALL SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID AND BRANCH_TYPE = 'HS')) BEGIN IF(@p_DEP_ID='' OR @p_DEP_ID IS NULL) SET @p_DEP_ID=@DEP_LOGIN END SET @BRANCH_TYPE= (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_ID) INSERT @TRADE_REF SELECT TRADE_ID FROM dbo.PL_TRADE_REF WHERE REF_CODE IN (SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM)) PRINT @BRANCH_TYPE IF(EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_MASTER' AND BRANCH_ID=@BRANCH_LOGIN AND DEP_ID=@DEP_LOGIN)) SET @IS_ALL=1 SET @IS_CHUNG=0 IF(EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE BRANCH_ID=@p_BRANCH_ID AND DEP_ID=@p_DEP_ID AND ROLE_TYPE='TRADE_USER_ALL')) BEGIN IF(EXISTS( SELECT CC.DVDM_ID FROM dbo.CM_DVDM DM LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID WHERE CT.DEP_ID=@DEP_LOGIN AND CT.BRANCH_ID=@p_BRANCH_ID AND DM.IS_KHOI=1 AND CC.DVDM_ID IN (SELECT CC.DVDM_ID FROM dbo.CM_DVDM DM LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID WHERE CT.DEP_ID=@p_DEP_ID AND CT.BRANCH_ID=@p_BRANCH_ID AND DM.IS_KHOI=1 ))) SET @IS_CHUNG=1 END IF(EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE BRANCH_ID=@BRANCH_LOGIN AND DEP_ID=@DEP_LOGIN AND ROLE_TYPE='HANHCHINH')) BEGIN SET @IS_HANHCHINH=1 END ---PRINT @IS_CHUNG IF(@IS_ALL=1 OR @ROLE_USER='TGD') BEGIN INSERT INTO @DVDM_ID SELECT DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1 END ELSE BEGIN INSERT INTO @DVDM_ID SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID WHERE PT.DEP_ID=@DEP_LOGIN AND PT.BRANCH_ID=@BRANCH_LOGIN AND EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1) END DECLARE @lstGD TABLE ( GD_ID VARCHAR(20) ) DECLARE @lstGD_CODE TABLE ( GD_CODE VARCHAR(20) ) INSERT INTO @lstGD SELECT GD_ID FROM dbo.CM_HANGHOA_GOODS WHERE HH_ID=@P_HH_ID IF(@P_HH_ID IS NOT NULL AND @P_HH_ID <>'') BEGIN IF(NOT EXISTS(SELECT PM.PLAN_ID FROM dbo.PL_MASTER PM LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.PLAN_ID=PM.PLAN_ID WHERE (PT.GOODS_ID =@p_GD_ID OR EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=PT.GOODS_ID)) AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL ) AND ( ( @BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID AND( @IS_CHUNG=1 OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR ((@p_DEP_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR (NOT EXISTS (SELECT AUTH.DEP_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DEP_ID=@p_DEP_ID) AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))))) ) OR (@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID AND ((@p_BRANCH_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) )) OR (@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID AND (@p_BRANCH_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM) OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) OR (NOT EXISTS (SELECT AUTH.BRANCH_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.BRANCH_ID=@p_BRANCH_ID) AND PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))) ) OR ( EXISTS (SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='TRADE_USER_VIEW' AND BRANCH_ID=@p_USER_LOGIN AND DEP_ID=PT.GOODS_ID) ) ) ) ) BEGIN SET @P_REQDT_TYPE='O' INSERT INTO @lstGD_CODE SELECT REPLACE(GD_CODE,'.I.','.O.') FROM dbo.CM_GOODS WHERE GD_ID IN (SELECT GD_ID FROM @lstGD) END END PRINT @p_BRANCH_ID PRINT @p_DEP_ID PRINT @BRANCH_LOGIN IF(@P_REQDT_TYPE='I') BEGIN IF(@P_PLAN_ID IS NOT NULL AND @P_PLAN_ID <>'') BEGIN -- PAGING BEGIN SELECT PM.PLAN_ID,PM.PLAN_CODE,DT.TRADE_ID,DT.GOODS_ID,CG.GD_CODE,CG.GD_NAME,PM.BRANCH_ID,PM.DEPT_ID, ISNULL(DT.QUANTITY,0) AS QUANTITY, ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE, ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM, ISNULL(DT.QUANTITY,0)- ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN, ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, ISNULL( DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_APP, ISNULL( DT.AMT_EXE,0) AS AMT_EXE, ISNULL( DT.AMT_ETM,0) AS AMT_ETM, ISNULL( DT.AMT_TF,0) AS AMT_TF, ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)-ISNULL(DT.AMT_ETM,0) AS AMT_REMAIN_ETM, CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE, DT.NOTES,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME, DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,CD.DEP_CODE,CD.DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID, PM.PLAN_TYPE_ID, CG.GD_TYPE_ID AS TYPE_NS,PM.YEAR -- SELECT END FROM dbo.PL_MASTER PM LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=PM.COST_ID LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=DM.DVDM_ID LEFT JOIN dbo.CM_DVDM_KHOI DMKH ON DMKH.DVDM_ID = DM.DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=DMKH.KHOI_ID WHERE (1=1) AND (CG.GD_NAME LIKE '%' + @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='') AND (CG.GD_CODE LIKE '%' + @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='') --AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='') --AND (PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN))) AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' ) AND (DT.GOODS_ID = @p_GD_ID OR @p_GD_ID IS NULL OR @p_GD_ID ='') AND (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL) AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL ) AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='') AND(PM.DEPT_ID= @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID='') AND(DM.DVDM_ID = @p_DVDM_ID OR @p_DVDM_ID IS NULL OR @p_DVDM_ID = '') AND(PM.PLAN_TYPE_ID = @p_PLAN_TYPE_ID OR @p_PLAN_TYPE_ID IS NULL OR @p_PLAN_TYPE_ID = '') AND(CG.GD_TYPE_ID = @p_TYPE_NS OR @p_TYPE_NS IS NULL OR @p_TYPE_NS = '') AND (GT.GD_TYPE_ID LIKE '%' + @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='') AND (GT.GD_TYPE_CODE LIKE '%' + @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='') AND (GT.GD_TYPE_NAME LIKE N'%' + @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='') AND DT.RECORD_STATUS='1' -- PAGING END END ELSE BEGIN -- PAGING BEGIN SELECT DISTINCT PM.PLAN_ID,PM.PLAN_CODE,DT.TRADE_ID,DT.GOODS_ID,CG.GD_CODE,CG.GD_NAME,PM.BRANCH_ID,PM.DEPT_ID, ISNULL(DT.QUANTITY,0) AS QUANTITY, ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE, ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM, ISNULL(DT.QUANTITY,0)- ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN, ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, ISNULL( DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_APP, ISNULL( DT.AMT_EXE,0) AS AMT_EXE, ISNULL( DT.AMT_ETM,0) AS AMT_ETM, ISNULL( DT.AMT_TF,0) AS AMT_TF, ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)-ISNULL(DT.AMT_ETM,0) AS AMT_REMAIN_ETM, CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE, DT.NOTES,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME, DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,CD.DEP_CODE,CD.DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID, PM.PLAN_TYPE_ID, CG.GD_TYPE_ID AS TYPE_NS,PM.YEAR -- SELECT END FROM dbo.PL_MASTER PM LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=PM.COST_ID LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=DM.DVDM_ID LEFT JOIN dbo.CM_DVDM_KHOI DMKH ON DMKH.DVDM_ID = DM.DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=DMKH.KHOI_ID WHERE (1=1) AND (CG.GD_NAME LIKE '%' + @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='') AND (CG.GD_CODE LIKE '%' + @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='') --AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='') --AND (PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN))) --AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='') AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' ) AND (DT.GOODS_ID = @p_GD_ID OR @p_GD_ID IS NULL OR @p_GD_ID ='') AND (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL) AND ( ( @BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID AND( @IS_CHUNG=1 OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR DT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR ((@p_DEP_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR (NOT EXISTS (SELECT AUTH.DEP_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DEP_ID=@p_DEP_ID) AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))))) ) OR (@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID AND ((@p_BRANCH_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR DT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) )) OR (@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID AND (@p_BRANCH_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM) OR DT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) OR (NOT EXISTS (SELECT AUTH.BRANCH_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.BRANCH_ID=@p_BRANCH_ID) AND PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))) ) OR ( EXISTS (SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='TRADE_USER_VIEW' AND BRANCH_ID=@p_USER_LOGIN AND DEP_ID=DT.GOODS_ID) ) ) AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL ) --AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='') --AND(PM.DEPT_ID= @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID='') AND(DM.DVDM_ID = @p_DVDM_ID OR @p_DVDM_ID IS NULL OR @p_DVDM_ID = '') AND(PM.PLAN_TYPE_ID = @p_PLAN_TYPE_ID OR @p_PLAN_TYPE_ID IS NULL OR @p_PLAN_TYPE_ID = '') AND(CG.GD_TYPE_ID = @p_GD_TYPE_ID OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID = '') AND(CG.GD_TYPE_ID = @p_TYPE_NS OR @p_TYPE_NS IS NULL OR @p_TYPE_NS = '') AND (GT.GD_TYPE_ID LIKE '%' + @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='') AND (GT.GD_TYPE_CODE LIKE '%' + @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='') AND (GT.GD_TYPE_NAME LIKE N'%' + @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='') AND DT.RECORD_STATUS='1' -- PAGING END END END ELSE BEGIN DECLARE @BRANCH_CODE VARCHAR(15), @BRANCH_NAME NVARCHAR(200), @DEP_CODE VARCHAR(15), @DEP_NAME VARCHAR(200) SET @BRANCH_CODE = (SELECT BRANCH_CODE FROM dbo.CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID) SET @BRANCH_NAME = (SELECT BRANCH_NAME FROM dbo.CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID) SET @DEP_CODE = (SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID) SET @DEP_NAME = (SELECT DEP_NAME FROM dbo.CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID) -- PAGING BEGIN SELECT '' AS PLAN_ID,'' AS PLAN_CODE,'' AS TRADE_ID, CG.GD_ID AS GOODS_ID, CG.GD_CODE ,CG.GD_NAME ,'' AS BRANCH_ID,'' AS DEPT_ID, @l_QUANTITY AS QUANTITY, @l_QUANTITY_EXE AS QUANTITY_EXE, @l_QUANTITY_EXE AS QUANTITY_ETM, @l_QUANTITY_REMAIN AS QUANTITY_REMAIN, @l_QUANTITY_REMAIN AS QUANTITY_REMAIN_ETM, @l_AMT AS AMT_APP, @l_AMT_EXE AS AMT_EXE, @l_AMT_EXE AS AMT_ETM, @l_AMT_EXE AS AMT_TF, @l_AMT_EXE AS AMT_RECEIVE_TF, @l_AMT_REMAIN AS AMT_REMAIN, @l_AMT_REMAIN AS AMT_REMAIN_ETM, @BRANCH_CODE AS BRANCH_CODE, @BRANCH_NAME AS BRANCH_NAME, --N'Ngoài kế hoạch' AS BRANCH_NAME, 'O' AS REQDT_TYPE, '' AS NOTES ,'' AS PLAN_TYPE_CODE,'' AS PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME, DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME, @DEP_CODE AS DEP_CODE, @DEP_NAME AS DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID AS TYPE_NS ,@p_YEAR YEAR -- SELECT END FROM dbo.CM_GOODS CG LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID WHERE (1=1) AND (CG.GD_NAME LIKE '%' + @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='') AND (CG.GD_CODE LIKE '%' + @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='') --AND CG.GD_CODE LIKE '%.O.%' AND RIGHT (CG.GD_CODE,4)=YEAR (GETDATE()) AND (EXISTS(SELECT GD_CODE FROM @lstGD_CODE WHERE [@lstGD_CODE].GD_CODE=CG.GD_CODE ) OR @P_HH_ID ='' OR @P_HH_ID IS NULL) AND (GT.GD_TYPE_ID LIKE '%' + @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='') AND (GT.GD_TYPE_CODE LIKE '%' + @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='') AND (GT.GD_TYPE_NAME LIKE N'%' + @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='') AND NOT EXISTS(SELECT PM.PLAN_ID FROM dbo.PL_MASTER PM LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.PLAN_ID=PM.PLAN_ID LEFT JOIN dbo.CM_GOODS CMG ON CMG.GD_ID=PT.GOODS_ID LEFT JOIN CM_GOODS CI ON CI.GD_CODE= REPLACE(CMG.GD_CODE,'.I.','.O.') WHERE (PT.GOODS_ID =CG.GD_ID OR CI.GD_ID=CG.GD_ID) AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL ) AND ( ( @BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID AND( @IS_CHUNG=1 OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR ((@p_DEP_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR (NOT EXISTS (SELECT AUTH.DEP_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DEP_ID=@p_DEP_ID) AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))))) ) OR (@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID AND ((@p_BRANCH_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) )) OR (@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID AND (@p_BRANCH_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM) OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) OR (NOT EXISTS (SELECT AUTH.BRANCH_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.BRANCH_ID=@p_BRANCH_ID) AND PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))) ) OR ( EXISTS (SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='TRADE_USER_VIEW' AND BRANCH_ID=@p_USER_LOGIN AND DEP_ID=PT.GOODS_ID) )) ) -- PAGING END END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CON_LAYOUT_BLUEPRINT_DEL]' GO CREATE PROC [dbo].[CON_LAYOUT_BLUEPRINT_DEL] @p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) = NULL AS BEGIN TRANSACTION IF( (SELECT AUTH_STATUS FROM dbo.CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID) = 'A') BEGIN UPDATE CON_LAYOUT_BLUEPRINT SET RECORD_STATUS = '0' where CON_LAYOUT_BLUEPRINT_ID= @p_CON_LAYOUT_BLUEPRINT_ID IF @@Error <> 0 GOTO ABORT END ELSE BEGIN Delete FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_CONTRACT_MASTER_App_Internal]' GO ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_App_Internal] @p_CONTRACT_ID varchar(15), @p_VERSION_NO varchar(15), @P_AUTH_STATUS VARCHAR(1), @P_CHECKER_ID VARCHAR(12), @P_APPROVE_DT VARCHAR(20), @P_XML_TEMP XML AS /* DECLARE @aStatus VARCHAR(1) DECLARE @sErrorCode VARCHAR(20) SET @sErrorCode = '' SELECT @aStatus = [AUTH_STATUS] FROM BUD_CONTRACT_MASTER WHERE VERSION_NO=@p_VERSION_NO IF @aStatus = 'A' SET @sErrorCode = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ''VERSION_NO, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END*/ BEGIN TRANSACTION UPDATE BUD_CONTRACT_MASTER SET AUTH_STATUS = 'A', CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103) WHERE VERSION_NO=@p_VERSION_NO AND CONTRACT_ID =@p_CONTRACT_ID IF @@Error <> 0 GOTO ABORT Declare @hdoc1 INT ----BAODNQ : Thêm các cột vào bảng BUD_CONTRACT_DT--- DECLARE @d_CONTRACT_DTID VARCHAR(15), @d_BUILD_ID VARCHAR(15), @d_VERSION_NO INT, @d_BUILDING_AREA_ID VARCHAR(15), @d_RENT_AREA DECIMAL, @d_RENT_PRICE DECIMAL, @d_NOTES NVARCHAR(MAX), @d_DIEN_TICH_TANG DECIMAL, @d_DIEN_TICH_SD_NOI_BO DECIMAL, @d_DIEN_TICH_DA_CHO_THUE DECIMAL, @d_DIEN_TICH_CON_LAI DECIMAL, @d_DIEN_TICH_CAN_SD DECIMAL, @d_REASON NVARCHAR(MAX), @d_PRICE DECIMAL, @d_TOTAL_AMT DECIMAL, @d_DIEN_TICH_CON_LAI_FINAL DECIMAL, @d_BRANCH_ID NVARCHAR(15), @d_DEP_ID NVARCHAR(15) Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( ---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML--- CONTRACT_DTID VARCHAR(15), BUILD_ID VARCHAR(15), VERSION_NO INT, BUILDING_AREA_ID VARCHAR(15), RENT_AREA DECIMAL, RENT_PRICE DECIMAL, NOTES NVARCHAR(MAX), DIEN_TICH_TANG DECIMAL, DIEN_TICH_SD_NOI_BO DECIMAL, DIEN_TICH_DA_CHO_THUE DECIMAL, DIEN_TICH_CON_LAI DECIMAL, DIEN_TICH_CAN_SD DECIMAL, REASON NVARCHAR(MAX), PRICE DECIMAL, TOTAL_AMT DECIMAL, DIEN_TICH_CON_LAI_FINAL DECIMAL, BRANCH_ID NVARCHAR(15), DEP_ID NVARCHAR(15) ) OPEN XmlDataDoc ---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML--- FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID WHILE @@FETCH_STATUS = 0 BEGIN ---BAODNQ: sửa kq INTERNAL_AREA--- UPDATE BUD_AREA_DT SET INTERNAL_AREA = INTERNAL_AREA+ @d_DIEN_TICH_CAN_SD WHERE BUILDING_AREA_ID = @d_BUILDING_AREA_ID --UPDATE BUDING_MASTER------------------------------------------------------ ---BAODNQ: sửa kq UTILZED_AREA--- UPDATE BUD_MASTER SET UTILZED_AREA= UTILZED_AREA+@d_DIEN_TICH_CAN_SD WHERE BUILDING_ID=@d_BUILD_ID ------------------------------------------------------------------------------------ IF @@Error <> 0 GOTO ABORT ---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML--- FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_PRICE, @d_NOTES, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc COMMIT TRANSACTION SELECT '0' as Result, @p_VERSION_NO VERSION_NO, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_DOC_Search]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search] @p_REQ_ID varchar(15) = NULL, @p_REQ_CODE nvarchar(100) = NULL, @p_REQ_NAME nvarchar(200) = NULL, @p_REQ_DT varchar(20) = NULL, @p_REQ_TYPE int = NULL, @p_REQ_CONTENT NVARCHAR(1000)=NULL, @p_REQ_REASON NVARCHAR(500)=NULL, @p_TOTAL_AMT decimal = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(12) = NULL, @p_CREATE_DT varchar(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT varchar(20) = NULL, @p_PROCESS_ID varchar(15) = NULL, @p_BRANCH_ID VARCHAR(15)=NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_BRANCH_LOGIN VARCHAR(15), @p_ROLE_USER VARCHAR(20), @p_TLNAME_USER VARCHAR(15), @p_FR_DATE varchar(20) = NULL, @p_TO_DATE varchar(20) = NULL, @p_TYPE_TRANFER VARCHAR(15), @p_TYPE VARCHAR(15), @p_YEAR INT, @p_TOP INT = 10, @p_IS_TRANSFER VARCHAR(10) = NULL, @p_NGUOIXULY NVARCHAR(15) = NULL AS BEGIN -- PAGING DECLARE @TABLE_ROLE TABLE ( ROLE_ID VARCHAR(20)) INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER) INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15) DECLARE @COST_ID TABLE ( COST_ID VARCHAR(15) ) DECLARE @DVDM_ID TABLE ( DVDM_ID VARCHAR(15) ) SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER) SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN) IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%')) BEGIN SET @BRANCH_TYPE='HS' END DECLARE @AUTHOR TABLE ( ROLE_ID VARCHAR(100), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20) ) DECLARE @AUTHOR_DVDM TABLE ( ROLE_ID VARCHAR(100), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), DVDM_ID VARCHAR(20) ) INSERT INTO @AUTHOR ( ROLE_ID, BRANCH_ID, DEP_ID ) SELECT RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU WHERE TLNANME=@p_TLNAME_USER UNION ALL SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL UNION ALL SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1 WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) UNION ALL SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1 LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) INSERT INTO @AUTHOR_DVDM ( ROLE_ID, BRANCH_ID, DEP_ID, DVDM_ID ) SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID WHERE TU.TLNANME=@p_TLNAME_USER UNION ALL SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL UNION ALL SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) UNION ALL SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='') WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) INSERT INTO @COST_ID SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN INSERT INTO @DVDM_ID SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID ---- NGUOI XU lY TIEP THEO 18022021 DECLARE @lstREQUEST TABLE ( REQ_ID VARCHAR(20), PROCESS_ID VARCHAR(50), DVDM_NAME NVARCHAR(200), TLNAME VARCHAR(200), TLFullName NVARCHAR(200), NOTES NVARCHAR(200) ) INSERT INTO @lstREQUEST ( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES) SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM (SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.STATUS = 'C' AND --GIANT 23/12/2021 EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD WHERE PLRD.REQ_ID=PRC.REQ_ID ) AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN' AND (PRC.IS_HAS_CHILD = 0 OR PRC.IS_HAS_CHILD IS NULL)) PL LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID LEFT JOIN ( SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU LEFT JOIN( SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID UNION ALL SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME LEFT JOIN( SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID WHERE CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) ) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='') LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID WHERE PL.STATUS='C' UNION ALL SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM (SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.STATUS = 'C' AND --GIANT 23/12/2021 EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD WHERE PLRD.REQ_ID=PRC.REQ_ID ) AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID ='SIGN' AND (PRC.IS_HAS_CHILD = 0 OR PRC.IS_HAS_CHILD IS NULL)) PL LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID LEFT JOIN ( SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU LEFT JOIN( SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID ) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='') LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID WHERE STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER) UNION ALL SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM (SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD WHERE PLRD.REQ_ID=PRC.REQ_ID ) AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN' AND PRC.IS_HAS_CHILD = 1 ) PL LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID LEFT JOIN ( SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ' WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' ) )TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1 LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME LEFT JOIN ( SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU LEFT JOIN( SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID UNION ALL SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID FROM dbo.TL_SYS_ROLE_MAPPING TU LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME LEFT JOIN( SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID WHERE CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) ) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='') WHERE PL.STATUS='C' ----- GIANT 23/12/2021 IF(@p_FR_DATE IS NULL) BEGIN SET @p_FR_DATE = GETDATE() SET @p_FR_DATE = DATEADD(MONTH,-2,@p_FR_DATE) END ----- IF(@p_TYPE='DVKD') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, --D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' --WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME, CASE WHEN A.PROCESS_ID='APPROVE' OR A.AUTH_STATUS ='A' THEN N'Đã duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME, G.BRANCH_CODE, CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RP.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, '' AS TYPE_JOB, '' AS USER_JOB, '' AS USER_JOB_NAME, '' AS TRANSFER_MAKER, A.CREATE_DT AS TRANFER_DT , '' AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY NXL.NGUOIXULY AS NGUOIXULY, A.TK_HDQT_NOTES, A.TK_TGD_NOTES, A.OTHER_NOTES -- SELECT END FROM PL_REQUEST_DOC A --LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U' LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID) LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '') AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0) AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1) AND A.RECORD_STATUS = '1' AND( @p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL OR ( @p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) OR ( @p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) ) AND (A.MAKER_ID=@p_TLNAME_USER OR (A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS')) OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER ) OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') )) -- --OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' -- AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN -- AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) -- OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER =@p_TLNAME_USER AND A.AUTH_STATUS<>'E')) -- --AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS IN('U','R','E') AND (A.PROCESS_ID <> 'APPROVE' OR A.PROCESS_ID IS NULL)) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') --AND ((A.AUTH_STATUS='E' AND A.MAKER_ID=@p_TLNAME_USER) OR (A.AUTH_STATUS <> 'E' AND (A.MAKER_ID=@p_TLNAME_USER OR (PLRP.PROCESS_ID='DVKD' AND PLRP.ROLE_USER=@p_ROLE_USER AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))))) -- --AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL) AND( (@p_AUTH_STATUS ='A' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='APPNEW' AND STATUS ='P')) OR (@p_AUTH_STATUS ='E' AND A.AUTH_STATUS =@p_AUTH_STATUS) OR (@p_AUTH_STATUS ='R' AND A.AUTH_STATUS =@p_AUTH_STATUS) OR (@p_AUTH_STATUS ='W' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='SIGN' AND STATUS ='C')) OR (@p_AUTH_STATUS ='G' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='SIGN' AND STATUS ='P')) OR (@p_AUTH_STATUS ='U' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='APPNEW' AND STATUS ='C')) OR (@p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL) ) AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)) AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)) AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- GIANT 26/10/2021 AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)) ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='PDTT') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, G.BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RPN.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, RPC.TYPE_JOB AS TYPE_JOB, RPC.TLNAME AS USER_JOB, TU.TLFullName AS USER_JOB_NAME, TFM.TLNANME AS TRANSFER_MAKER, RPC.TRANFER_DT AS TRANFER_DT , RPC.MAKER_ID AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, --RP.ID AS REF_ID, ISNULL(RP.ID,1) AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES -- SELECT END FROM PL_REQUEST_DOC A INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U' LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC) LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '') AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0) AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1) --AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH)) AND A.RECORD_STATUS = '1' AND( @p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL OR ( @p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) OR ( @p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) ) AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND ( (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID='')) OR PLRP.DVDM_ID=AUTH.DVDM_ID OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID='')) )) --AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) --AND ( -- (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID='')) --OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) --OR --( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID='')) --) AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL) AND (( @p_AUTH_STATUS='A' AND PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)) AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)) AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') --AND( -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') -- OR -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') --) --AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') --AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- GIANT 26/10/2021 AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)) ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='TFJOB') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, G.BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RP.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, CASE WHEN RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='' THEN 'TP' ELSE RPC.TYPE_JOB END AS TYPE_JOB, RPC.TLNAME AS USER_JOB, TU.TLFullName AS USER_JOB_NAME, TFM.TLNANME AS TRANSFER_MAKER, RPC.TRANFER_DT AS TRANFER_DT , RPC.MAKER_ID AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFULLNAME AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY -- dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES,A.TK_HDQT_NOTES, A.OTHER_NOTES --PLQ.TLFullName CHECKER_NAME_DV -- SELECT END FROM PL_REQUEST_DOC A INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1 LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC) LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID -- GIANT --LEFT JOIN ( -- SELECT AB.ID,AB.REQ_ID,AB.PROCESS_ID,BC.TLFullName,AB.TLNAME FROM PL_REQUEST_PROCESS_CHILD AB LEFT JOIN TL_USER BC ON AB.TLNAME = BC.TLNANME --) PLQ ON A.REQ_ID = PLQ.REQ_ID WHERE 1 = 1 AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '') AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0) AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1) --AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH)) AND A.RECORD_STATUS = '1' AND( @p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL OR ( @p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) OR ( @p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) ) AND( EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND ( (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID='')) OR PLRP.DVDM_ID=AUTH.DVDM_ID OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID='')) )) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS' AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ) ) AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)) AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)) AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) AND (( @p_AUTH_STATUS='A' AND PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PL_REQUEST_PROCESS_CHILD.STATUS_JOB='C' AND PL_REQUEST_PROCESS_CHILD.TYPE_JOB='TP')) AND ( ((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y') OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N') OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL ) AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') ---- GIANT 26/10/2021 AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)) ---- GIANT --AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') --AND (A.DEP_CREATE = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='XLTT') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RPN.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, RPC.TYPE_JOB AS TYPE_JOB, RPC.TLNAME AS USER_JOB, TU.TLFullName AS USER_JOB_NAME, TFM.TLNANME AS TRANSFER_MAKER, RPC.TRANFER_DT AS TRANFER_DT , RPC.MAKER_ID AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES -- SELECT END FROM PL_REQUEST_DOC A INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1 LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC) LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '') AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0) AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1) --AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH)) AND A.RECORD_STATUS = '1' AND( @p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL OR ( @p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) OR ( @p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) ) AND( EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND ( (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID='')) OR PLRP.DVDM_ID=AUTH.DVDM_ID OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID='')) )) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) )) AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)) AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)) AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) AND (( @p_AUTH_STATUS='A' AND PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') --AND( -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') -- OR -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') --) -- AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM AND((EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS_CHILD C WHERE A.REQ_ID=C.REQ_ID AND C.PROCESS_ID=PLRP.ID AND C.TLNAME =@p_TLNAME_USER AND C.STATUS_JOB IN ('C','P'))) OR (@p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <> '')) -- GIANT 26/10/2021 AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)) ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='DVKD_PARENT') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME, --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' --ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, G.BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RP.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, '' AS TYPE_JOB, '' AS USER_JOB, '' AS USER_JOB_NAME, '' AS TRANSFER_MAKER, A.CREATE_DT AS TRANFER_DT , '' AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, --RP.ID AS REF_ID, 0 AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.BASED_CONTENT, A.IS_CHECKALL, -- GIANT 23/12/2021 A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES, (SELECT TOP 1 BB.YEAR FROM PL_REQUEST_DOC_DT AA LEFT JOIN PL_MASTER BB ON AA.PLAN_ID = BB.PLAN_ID WHERE AA.REQ_ID = A.REQ_ID) AS NAMNGANSACH -- SELECT END FROM PL_REQUEST_DOC A LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID) LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID -- GIANT 23/12/2021 LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1) AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) AND (ISNULL(A.PROCESS_ID,'') ='APPROVE') --AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') --AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') --AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '') --AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0) --AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') --AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') --AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') --AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') --AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) --AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) --AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) --AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1) --AND A.RECORD_STATUS = '1' --AND( -- @p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL -- OR -- ( -- @p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) -- ) -- OR -- ( -- @p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) -- ) -- ) --AND ( (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1) --AND A.PROCESS_ID='APPROVE' --AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)) --AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)) --AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) --AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='') --AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' -- OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') ----AND( ---- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') ---- OR ---- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') ----) --AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') --AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- GIANT 26/10/2021 AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)) ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='DVKD_ISALL') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, G.BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RP.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, '' AS TYPE_JOB, '' AS USER_JOB, '' AS USER_JOB_NAME, '' AS TRANSFER_MAKER, A.CREATE_DT AS TRANFER_DT , '' AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES -- SELECT END FROM PL_REQUEST_DOC A LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID) LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '') AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0) AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1) AND A.RECORD_STATUS = '1' AND( @p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL OR ( @p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) OR ( @p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) ) AND A.IS_CHECKALL=1 AND A.PROCESS_ID='APPROVE' AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)) AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)) AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='') AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') --AND( -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') -- OR -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') --) --AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') --AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- GIANT 26/10/2021 AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)) ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='TTCT_DVCM') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, G.BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RP.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, '' AS TYPE_JOB, '' AS USER_JOB, '' AS USER_JOB_NAME, '' AS TRANSFER_MAKER, A.CREATE_DT AS TRANFER_DT , '' AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES -- SELECT END FROM PL_REQUEST_DOC A LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID) LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '') AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '') AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '') AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0) AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1) AND A.RECORD_STATUS = '1' AND( @p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL OR ( @p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) OR ( @p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID) ) ) AND ( EXISTS (SELECT * FROM dbo.PL_REQUEST_COSTCENTER PC WHERE PC.REQ_ID=A.REQ_ID AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DVDM_ID=PC.COST_ID) ) ) AND A.PROCESS_ID='APPROVE' AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)) AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)) AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR) AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='') AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') --AND( -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') -- OR -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') --) --AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') --AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- GIANT 26/10/2021 AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)) ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='REQ_PARENT') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, G.BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RP.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, '' AS TYPE_JOB, '' AS USER_JOB, '' AS USER_JOB_NAME, '' AS TRANSFER_MAKER, A.CREATE_DT AS TRANFER_DT , '' AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY ,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES -- SELECT END FROM PL_REQUEST_DOC A LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID) LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND A.REQ_PARENT_ID =@p_REQ_ID ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='LINK_TTCT') BEGIN -- PAGING BEGIN -- đoạn dưới chưa làm SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, G.BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RP.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, '' AS TYPE_JOB, '' AS USER_JOB, '' AS USER_JOB_NAME, '' AS TRANSFER_MAKER, A.CREATE_DT AS TRANFER_DT , '' AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY ,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES -- SELECT END FROM PL_REQUEST_DOC A LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID) LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME LEFT JOIN ( SELECT Results.REQ_ID,STUFF((select ', ' + RE.TLFullName FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY, STUFF((select ', ' + RE.TLNAME FROM @lstREQUEST RE WHERE RE.REQ_ID=Results.REQ_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME FROM @lstREQUEST Results GROUP BY REQ_ID ) NXL ON NXL.REQ_ID=A.REQ_ID WHERE 1 = 1 AND A.REQ_PARENT_ID =@p_REQ_ID ORDER BY A.CREATE_DT DESC -- PAGING END END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CON_LAYOUT_BLUEPRINT_BYID]' GO CREATE PROC [dbo].[CON_LAYOUT_BLUEPRINT_BYID] @p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) = NULL AS SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CON_LAYOUT_BLUEPRINT_APP]' GO CREATE PROC [dbo].[CON_LAYOUT_BLUEPRINT_APP] @p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) = NULL, @p_AUTH_STATUS VARCHAR(1) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT varchar(20) AS BEGIN TRANSACTION BEGIN DECLARE @PROCESS_ID VARCHAR(15),@LAYOUT_TYPE VARCHAR(15) SET @PROCESS_ID = (SELECT PROCESS_ID FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID) SET @LAYOUT_TYPE = (SELECT LAYOUT_TYPE FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID) IF (@PROCESS_ID = 'SIGN') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = @p_APPROVE_DT WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'APPNEW' UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'APPNEW' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END ELSE IF (@PROCESS_ID = 'APPNEW') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = @p_APPROVE_DT WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'GDK_HT' UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'GDK_HT' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END ELSE IF (@PROCESS_ID = 'GDK_HT') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = @p_APPROVE_DT WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'PTGD_TC' UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'PTGD_TC' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END ELSE IF (@PROCESS_ID = 'PTGD_TC') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = @p_APPROVE_DT WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'PTGD_VH' UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'PTGD_VH' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END ELSE IF (@PROCESS_ID = 'PTGD_VH') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = @p_APPROVE_DT WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'PTGD_HT' UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'PTGD_HT' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END ELSE IF (@PROCESS_ID = 'PTGD_HT') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = @p_APPROVE_DT WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID IF (@LAYOUT_TYPE = 'CN') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'TGD' UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'TGD' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END ELSE BEGIN UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'APPROVE',AUTH_STATUS = 'A' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END END ELSE IF (@PROCESS_ID = 'TGD') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = @p_APPROVE_DT WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'APPROVE',AUTH_STATUS = 'A' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN -1 END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CON_LAYOUT_BLUEPRINT_SendApp]' GO CREATE PROC [dbo].[CON_LAYOUT_BLUEPRINT_SendApp] @p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(20), @p_PROCESS_ID VARCHAR(20), @p_TLNAME VARCHAR(20), @p_MAKER_ID VARCHAR(20) AS BEGIN TRANSACTION DECLARE @BRANCH_ID VARCHAR(15),@DEP_ID VARCHAR(15) SET @BRANCH_ID = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME = @p_TLNAME) SET @DEP_ID = (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME = @p_TLNAME) -- KIỂM TRA XEM CÓ CẤP PHÊ DUYỆT TRUNG GIAN HAY KHÔNG IF(EXISTS(SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>'')) BEGIN DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID DECLARE @BRANCH_SIGN_ID VARCHAR(20),@DEP_SIGN_ID VARCHAR(20),@BRANCH_SIGN_TYPE VARCHAR(10),@ROLE_SIGN VARCHAR(20) SELECT @BRANCH_SIGN_ID=TLSUBBRID,@DEP_SIGN_ID=SECUR_CODE,@BRANCH_SIGN_TYPE=BRANCH_TYPE,@ROLE_SIGN=RoleName FROM dbo.TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID ) INSERT INTO dbo.PL_REQUEST_PROCESS(REQ_ID,PROCESS_ID,[STATUS], ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'','C',@ROLE_SIGN,@BRANCH_SIGN_ID,CASE WHEN @BRANCH_SIGN_TYPE='HS' THEN @DEP_SIGN_ID ELSE '' END,'',NULL,'','N','','',N'Chờ cấp phê duyệt trung gian xác nhận phiếu',NULL) INSERT INTO dbo.PL_REQUEST_PROCESS(REQ_ID,PROCESS_ID,[STATUS], ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'APPNEW','U','GDDV',@BRANCH_ID,@DEP_ID,'',NULL,'SIGN','N','','',N'Chờ trưởng đơn vị phê duyệt',NULL) -- SET CHỜ DUYỆT UPDATE CON_LAYOUT_BLUEPRINT SET AUTH_STATUS = 'U',PROCESS_ID = 'SIGN' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END ELSE BEGIN DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID INSERT INTO dbo.PL_REQUEST_PROCESS(REQ_ID,PROCESS_ID,[STATUS], ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'APPNEW','C','GDDV',@BRANCH_ID,@DEP_ID,'',NULL,'','N','','',N'Chờ trưởng đơn vị phê duyệt',NULL) -- SET CHỜ DUYỆT UPDATE CON_LAYOUT_BLUEPRINT SET AUTH_STATUS = 'U',PROCESS_ID = 'APPNEW' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID END -- KIỂM TRA LOẠI LAYOUT IF ((SELECT LAYOUT_TYPE FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID) = 'PGD') BEGIN -- GĐK HỖ TRỢ INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'GDK_HT','U', 'GDK','','','',NULL,'APPNEW','N','','DM0000000000015', N'Chờ GĐK hỗ trợ phê duyệt',NULL) -- PTGD KHỐI TÀI CHÍNH INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'PTGD_TC','U', 'PTGD','','','',NULL,'GDK_HT','N','','DM0000000000017', N'Chờ PTGĐ Khối tài chính phê duyệt',NULL) -- PTGD KHỐI VẬN HÀNH INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'PTGD_VH','U', 'PTGD','','','',NULL,'PTGD_TC','N','','DM0000000000019', N'Chờ PTGĐ Khối vận hành phê duyệt',NULL) -- PTGD KHỐI HỖ TRỢ INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'PTGD_HT','U', 'PTGD','','','',NULL,'PTGD_VH','N','','DM0000000000015', N'Chờ PTGĐ Khối hỗ trợ phê duyệt',NULL) -- HOÀN THÀNH INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'APPROVE','U', '','','','',NULL,'PTGD_HT','','','', N'Hoàn tất',NULL) END ELSE BEGIN -- GĐK HỖ TRỢ INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'GDK_HT','U', 'GDK','','','',NULL,'APPNEW','N','','DM0000000000015', N'Chờ GĐK hỗ trợ phê duyệt',NULL) -- PTGD KHỐI TÀI CHÍNH INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'PTGD_TC','U', 'PTGD','','','',NULL,'GDK_HT','N','','DM0000000000017', N'Chờ PTGĐ Khối tài chính phê duyệt',NULL) -- PTGD KHỐI VẬN HÀNH INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'PTGD_VH','U', 'PTGD','','','',NULL,'PTGD_TC','N','','DM0000000000019', N'Chờ PTGĐ Khối vận hành phê duyệt',NULL) -- PTGD KHỐI HỖ TRỢ INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'PTGD_HT','U', 'PTGD','','','',NULL,'PTGD_VH','N','','DM0000000000015', N'Chờ PTGĐ Khối hỗ trợ phê duyệt',NULL) -- TỔNG GIẢM ĐÓC INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'TGD','U', 'TGD','','','',NULL,'PTGD_HT','N','','', N'Chờ Tổng giám đốc phê duyệt',NULL) -- HOÀN THÀNH INSERT INTO dbo.PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,DEP_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,COST_ID,DVDM_ID,NOTES,IS_HAS_CHILD) VALUES(@p_CON_LAYOUT_BLUEPRINT_ID,'APPROVE','U', '','','','',NULL,'TGD','','','', N'Hoàn tất',NULL) END COMMIT TRANSACTION SELECT '0' as Result, N'GỬI PHÊ DUYỆT THÀNH CÔNG' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION; SELECT '-1' AS Result, '' ROLE_NOTIFI, '' ErrorDesc; RETURN '-1'; END; GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_DVDM_Search]' GO ALTER PROCEDURE [dbo].[CM_DVDM_Search] @p_DVDM_CODE varchar(15) = NULL, @p_DVDM_NAME Nvarchar(300) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(20) = NULL, @p_CREATE_DT NVARCHAR(25) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(20) = NULL, @p_APPROVE_DT NVARCHAR(25) = NULL, @p_TYPE VARCHAR(20)= NULL, @p_TOP INT = 0 AS BEGIN IF(@p_TYPE='DVDM') BEGIN -- PAGING IF(@p_TOP IS NULL OR @p_TOP = 0) BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME -- SELECT END FROM dbo.CM_DVDM A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS WHERE 1 = 1 AND (A.DVDM_NAME like '%' + @p_DVDM_NAME + '%' OR @p_DVDM_NAME IS NULL OR @p_DVDM_NAME = '') AND (A.DVDM_CODE like + '%' + @p_DVDM_CODE + '%' OR @p_DVDM_CODE IS NULL OR @p_DVDM_CODE = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND A.RECORD_STATUS = '1' AND A.IS_DVDM=1 -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME -- SELECT END FROM dbo.CM_DVDM A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS WHERE 1 = 1 AND (A.DVDM_NAME like '%' + @p_DVDM_NAME + '%' OR @p_DVDM_NAME IS NULL OR @p_DVDM_NAME = '') AND (A.DVDM_CODE like + '%' + @p_DVDM_CODE + '%' OR @p_DVDM_CODE IS NULL OR @p_DVDM_CODE = '') --AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND A.RECORD_STATUS = '1' AND A.IS_DVDM=1 -- PAGING END END; END -- PAGING ELSE IF(@p_TYPE='DVCM') BEGIN -- PAGING IF(@p_TOP IS NULL OR @p_TOP = 0) BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME -- SELECT END FROM dbo.CM_DVDM A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS WHERE 1 = 1 AND (A.DVDM_NAME like '%' + @p_DVDM_NAME + '%' OR @p_DVDM_NAME IS NULL OR @p_DVDM_NAME = '') AND (A.DVDM_CODE like + '%' + @p_DVDM_CODE + '%' OR @p_DVDM_CODE IS NULL OR @p_DVDM_CODE = '') --AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND A.RECORD_STATUS = '1' AND A.IS_DVCM=1 -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME -- SELECT END FROM dbo.CM_DVDM A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS WHERE 1 = 1 AND (A.DVDM_NAME like '%' + @p_DVDM_NAME + '%' OR @p_DVDM_NAME IS NULL OR @p_DVDM_NAME = '') AND (A.DVDM_CODE like + '%' + @p_DVDM_CODE + '%' OR @p_DVDM_CODE IS NULL OR @p_DVDM_CODE = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND A.RECORD_STATUS = '1' AND A.IS_DVCM=1 -- PAGING END END; END -- PAGING ELSE IF(@p_TYPE='KHOI') BEGIN -- PAGING IF(@p_TOP IS NULL OR @p_TOP = 0) BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME -- SELECT END FROM dbo.CM_DVDM A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS WHERE 1 = 1 AND (A.DVDM_NAME like '%' + @p_DVDM_NAME + '%' OR @p_DVDM_NAME IS NULL OR @p_DVDM_NAME = '') AND (A.DVDM_CODE like + '%' + @p_DVDM_CODE + '%' OR @p_DVDM_CODE IS NULL OR @p_DVDM_CODE = '') --AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND A.RECORD_STATUS = '1' AND A.IS_KHOI=1 -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME -- SELECT END FROM dbo.CM_DVDM A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS WHERE 1 = 1 AND (A.DVDM_NAME like '%' + @p_DVDM_NAME + '%' OR @p_DVDM_NAME IS NULL OR @p_DVDM_NAME = '') AND (A.DVDM_CODE like + '%' + @p_DVDM_CODE + '%' OR @p_DVDM_CODE IS NULL OR @p_DVDM_CODE = '') --AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND A.RECORD_STATUS = '1' AND A.IS_KHOI=1 -- PAGING END END; END -- PAGING END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_AREA_ByID]' GO ALTER PROCEDURE [dbo].[BUD_AREA_ByID] @BUILD_ID varchar(15) = NULL, @FROMFLOOR INT, @TOFLOOR INT, @CONTRACT_ID NVARCHAR(15) AS ----BAODNQ : Thêm chức năng phân trang cho store + sửa lại tên biến @BUILD_ID--- BEGIN -- PAGING -- PAGING BEGIN SELECT A. *, ISNULL(A.INTERNAL_AREA+A.UTILZED_AREA,0) AS TONGDIENTICH_CHOTHUE, ISNULL(A.FLOOR_AREA-(A.INTERNAL_AREA+A.UTILZED_AREA),0) AS TONGDIENTICH_CONLAI -- SELECT END FROM BUD_AREA_DT A WHERE A.BUILD_ID= @BUILD_ID AND (A.FLOOR_NO >= @FROMFLOOR OR @FROMFLOOR= NULL OR @FROMFLOOR=0) AND (A.FLOOR_NO <= @TOFLOOR OR @TOFLOOR= NULL OR @TOFLOOR=0) AND(FLOOR_AREA -A.UTILZED_AREA >0) -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_REJECT_LOG_Ins]' GO ALTER PROC [dbo].[CM_REJECT_LOG_Ins] @p_LOG_ID varchar(15) = NULL, @p_STAGE varchar(5) = NULL, @p_TRN_ID varchar(15) = NULL, @p_TRN_TYPE nvarchar(100) = NULL, @p_LOG_DT VARCHAR = NULL, @p_AUTH_STAT varchar(3) = NULL, @p_REASON nvarchar(4000) = NULL, @p_IS_LATEST varchar(1) = NULL, @p_REJECTED_BY varchar(20) = NULL, @p_REJECTED_DT VARCHAR = NULL AS BEGIN TRANSACTION DECLARE @TRADED_ID VARCHAR(15), @AMT_EXE DECIMAL(18,0) DECLARE @PAY_ADVANCE_ID VARCHAR(15), @AMT_PAY DECIMAL(18,0), @AMT_REVERT DECIMAL(18,0), @AMT_ADD DECIMAL(18,0) DECLARE @p_MESSAGE NVARCHAR(100) = NULL IF(EXISTS (SELECT * FROM CM_REJECT_LOG WHERE TRN_ID = @p_TRN_ID)) BEGIN UPDATE CM_REJECT_LOG SET IS_LATEST ='N' WHERE TRN_ID =@p_TRN_ID END -- Thu hồi tài sản IF(@p_TRN_TYPE ='ASS_COLLECT_MUL') BEGIN IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID =@p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID =@p_TRN_ID AND AUTH_STATUS ='A' AND @p_STAGE='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS(SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE COL_MULTI_MASTER_ID=@p_TRN_ID SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu' ) END ELSE BEGIN SET @p_STAGE ='HC' UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS ='R' WHERE COL_MULTI_MASTER_ID=@p_TRN_ID SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về cho bộ phận hành chính thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu' ) END END ELSE BEGIN UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS ='R' WHERE COL_MULTI_MASTER_ID=@p_TRN_ID SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON ,N'Từ chối phiếu' ) END END END -- Điều chuyển tài sản ELSE IF(@p_TRN_TYPE ='ASS_TRANSFER_MUL') BEGIN ---- GiaNT 29/09/2021 Sửa IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin Điều chuyển tài sản đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN IF(EXISTS(SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID SET @p_MESSAGE =N'Thông tin Điều chuyển tài sản đã được trả về nhân viên xử lý thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Trả về nhân viên xử lý' ) END ELSE BEGIN SET @p_STAGE ='HC' UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS ='R',AUTH_STATUS_KT = NULL WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID SET @p_MESSAGE =N'Thông tin Điều chuyển tài sản đã được trả về hành chính thành công' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Trả về hành chính' ) END END END ELSE IF(@p_STAGE='KT_HC') BEGIN IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin Điều chuyển tài sản đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS ='R',AUTH_STATUS_KT = NULL, APPROVE_DT = NULL,CHECKER_ID = NULL, MAKER_ID_KT = NULL, CREATE_DT_KT = NULL , CORE_NOTE = NULL WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID -- XÓA THÔNG TIN XÁC NHẬN DELETE ASS_TRANSFER_CONFIRM_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID SET @p_MESSAGE =N'Thông tin Điều chuyển tài sản đã được trả về hành chính thành công' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Trả về hành chính' -- PROCESS_DESC - nvarchar(1000) ) END END ELSE BEGIN IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin Điều chuyển tài sản đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS ='R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID SET @p_MESSAGE =N'Thông tin Điều chuyển tài sản đã được trả về thành công' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) END END END -- Xuất sử dụng tài sản ELSE IF(@p_TRN_TYPE ='ASS_USE_MUL') BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN IF(EXISTS(SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN SET @p_STAGE ='HC' UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE USER_MASTER_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu' ) END ELSE BEGIN SET @p_STAGE ='HC' UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R' WHERE USER_MASTER_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về hành chính thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Trả về hành chính' ) END END END ELSE BEGIN IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@p_TRN_ID AND AUTH_STATUS ='A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R' WHERE USER_MASTER_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về thành công' END END END -- Thanh lý tài sản ELSE IF(@p_TRN_TYPE ='ASS_LIQ_MUL') BEGIN IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN UPDATE ASS_LIQUIDATION SET AUTH_STATUS_KT ='R' WHERE LIQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu' ) END ELSE BEGIN SET @p_STAGE ='HC' UPDATE ASS_LIQUIDATION SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả hành chính về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Trả về hành chính' ) END END ELSE BEGIN UPDATE ASS_LIQUIDATION SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu' ) END END END -- Nhập mới tài sản ELSE IF(@p_TRN_TYPE ='ASS_ADDNEW_MUL') BEGIN BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN IF(EXISTS(SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN UPDATE ASS_ADDNEW SET AUTH_STATUS_KT ='R' WHERE ADDNEW_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu' ) END ELSE BEGIN SET @p_STAGE ='HC' UPDATE ASS_ADDNEW SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE ADDNEW_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về hành chính thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Trả về hành chính' ) END END END ELSE BEGIN IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE ASS_ADDNEW SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE ADDNEW_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về thành công' -- GiaNT 29/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu' ) END END END END ELSE IF(@p_TRN_TYPE ='MW_IN') BEGIN BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN --UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công' END END END ELSE IF(@p_STAGE='KT_HC') BEGIN BEGIN IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_IN_MASTER SET AUTH_STATUS ='R',CORE_NOTE = NULL , MAKER_ID_KT = NULL, CREATE_DT_KT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL --,CHECKER_ID_KT = @p_REJECTED_BY,APPROVE_DT_KT = GETDATE() WHERE IN_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công' END END END ELSE BEGIN IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công' END END END END --- MW - TRANSFER : ĐIỀU CHUYỂN VẬT LIỆU ELSE IF(@p_TRN_TYPE ='MW_TRANSFER') BEGIN BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN --UPDATE MW_TRANSFER SET KT_AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>'')) BEGIN UPDATE MW_TRANSFER SET KT_AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_TRANSFER SET AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về hành chính thành công' END END END ELSE IF(@p_STAGE='KT_HC') BEGIN IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_TRANSFER SET AUTH_STATUS ='R', CORE_NOTE = NULL , KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL --,KT_CHECKER_ID = @p_REJECTED_BY, KT_APPROVE_DT = GETDATE() WHERE TRANSFER_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về hành chính thành công' END END ELSE BEGIN IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE MW_TRANSFER SET AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công' END END END END --- MW_OUT : XUẤT VẬT LIỆU ELSE IF(@p_TRN_TYPE ='MW_OUT') BEGIN BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN --UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>'')) BEGIN UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_OUT SET AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về hành chính thành công' END END END ELSE IF(@p_STAGE='KT_HC') BEGIN IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_OUT SET AUTH_STATUS ='R', CORE_NOTE = NULL , KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL --, KT_APPROVE_DT = GETDATE() ,KT_CHECKER_ID = @p_REJECTED_BY WHERE OUT_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về hành chính thành công' END END ELSE BEGIN IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE MW_OUT SET AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công' END END END END --- MW_OUT : THANH LÝ VẬT LIỆU ELSE IF(@p_TRN_TYPE ='MW_LIQ_MASTER') BEGIN BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN --UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>'')) BEGIN UPDATE MW_LIQ_MASTER SET KT_AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về thành công' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về hành chính thành công' END END END ELSE IF(@p_STAGE='KT_HC') BEGIN IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R', CORE_NOTE = NULL , KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL --,KT_CHECKER_ID = @p_REJECTED_BY, KT_APPROVE_DT = GETDATE() WHERE LIQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về hành chính thành công' END END ELSE BEGIN IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về thành công' END END END END -- PHIEU DE NGHI TAM UNG 05 11 2019 ELSE IF(@p_TRN_TYPE ='REQ_ADVANCE_PAY') BEGIN BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị tạm ứng đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN -- NEU DANG O VI TRI TKTGD, TKHDQT IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND ROLE_USER IN ('TKTGD','TKHDQT') AND STATUS ='C')) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='KS' AND TLNAME =@p_REJECTED_BY)) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị tạm ứng chưa được điều phối cho nhân viên xử lý' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END --UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về nhân viên xử lý thành công' ---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='XL') AND REQ_ID =@p_TRN_ID -- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID AND TYPE_JOB ='KS' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Trưởng văn phòng từ chối nhân viên xử lý' -- PROCESS_DESC - nvarchar(1000) ) EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,'HC',@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,'Y',@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103)) COMMIT TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END --UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về thành công' ---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID) AND REQ_ID =@p_TRN_ID -- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'KSV trả về cho GDV' -- PROCESS_DESC - nvarchar(1000) ) END ELSE BEGIN SET @p_STAGE ='HC' UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về đơn vị thành công' ---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID -- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON,N'Trả về' -- PROCESS_DESC - nvarchar(1000) ) END END END ELSE IF(@p_STAGE ='HC') BEGIN IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC' AND (MAKER_ID_KT IS NULL OR MAKER_ID_KT =''))) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại! Phiếu đề nghị tạm ứng đã được duyệt hoàn tất ở cấp độ Hành Chính Quản Trị' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS='R')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại! Phiếu đề nghị tạm ứng đã được trả về trước đó' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',CHECKER_ID ='',APPROVE_DT =NULL, MAKER_ID_KT =NULL, CREATE_DT_KT = NULL, APPROVE_DT_KT =NULL WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được trả về về thành công' --NEU PHIEU DANG TRONG QUA TRINH PHE DUYET THI XOA TOAN BO PL_PROCESS VA PL_REQUEST_PROCESS -- XOA CAC CAP PHE DUYET, KHI DON VI THUC HIEN CHINH SUA THI HE THONG SE INSERT LAI DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID --DELETE FROM PL_PROCESS WHERE REQ_ID =@p_TRN_ID -- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Trả về' -- PROCESS_DESC - nvarchar(1000) ) END END ELSE IF(@p_STAGE ='SUG') BEGIN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_TRN_ID AND TLNAME=@p_REJECTED_BY DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TLNAME=@p_REJECTED_BY) SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1 UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_TRN_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV) -- CAP NHAT TINH TRANG VE DANG XU LY UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='S' WHERE REQ_PAY_ID =@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'GDV đề xuất từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được đề xuất từ chối thành công' END ELSE IF(@p_STAGE ='DEL') BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='D',AUTH_STATUS ='D' WHERE REQ_PAY_ID =@p_TRN_ID UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS_KT ='D' WHERE PAY_ID =@p_TRN_ID UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='D' WHERE PAY_ID =@p_TRN_ID UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID --------------------------------------------------------------------------------------------------------------------- DECLARE CURS_TRADE CURSOR FOR SELECT A.TRADE_ID, A.AMT_EXE FROM TR_REQ_PAY_BUDGET A WHERE A.REQ_PAY_ID =@p_TRN_ID OPEN CURS_TRADE FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE WHILE @@FETCH_STATUS = 0 BEGIN UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE WHERE TRADE_ID =@TRADED_ID FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE END CLOSE CURS_TRADE DEALLOCATE CURS_TRADE DECLARE CURS CURSOR FOR SELECT A.PAY_ADV_ID,A.AMT_USE,A.AMT_ADD,A.AMT_REVERT FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_TRN_ID OPEN CURS FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PAY_AMT = ISNULL(PAY_AMT,0) - @AMT_PAY - @AMT_REVERT + @AMT_ADD WHERE REQ_PAY_ID=@PAY_ADVANCE_ID FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT END CLOSE CURS DEALLOCATE CURS INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'DEL', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'KSV hủy phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được hủy thành công. Bạn vẫn có thể xem thông tin giao dịch với tình trạng đã bị hủy' END END END -- END PHIEU DE NGHI TAM UNG 05 11 2019 -- START PHIEU DE THI THANH TOAN 19-11-2019 ELSE IF(@p_TRN_TYPE ='TR_REQ_PAY') BEGIN BEGIN IF(@p_STAGE='KT') BEGIN IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được kế toán duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN --UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về thành công' ---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID) AND REQ_ID =@p_TRN_ID UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID -- INSERT VAO BANG LICH SU INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'KSV trả về cho GDV' -- PROCESS_DESC - nvarchar(1000) ) END ELSE BEGIN SET @p_STAGE ='HC' UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về đơn vị thành công' -- XOA DI DU LIEU DA DIEU PHOI, CHO DON VI XU LY VA DUYET LAI SE DIEU PHOI LAI ---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID -- INSERT VAO BANG LICH SU INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được từ chối thành công' END END END ELSE IF(@p_STAGE ='HC') BEGIN IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'AND (MAKER_ID_KT IS NULL OR MAKER_ID_KT =''))) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được trưởng đơn vị duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS='',CHECKER_ID ='',APPROVE_DT =NULL, MAKER_ID_KT =NULL, CREATE_DT_KT = NULL, APPROVE_DT_KT =NULL WHERE REQ_PAY_ID =@p_TRN_ID DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được trả về về thành công' -- INSERT VAO BANG LICH SU INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON,N'Trả về' -- PROCESS_DESC - nvarchar(1000) ) END END ELSE IF(@p_STAGE ='SUG') BEGIN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_TRN_ID AND TLNAME=@p_REJECTED_BY DECLARE @LEVEL_JOB_PAY VARCHAR(5), @LEVEL_JOB_PREV_PAY INT SET @LEVEL_JOB_PAY =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TLNAME=@p_REJECTED_BY) SET @LEVEL_JOB_PREV_PAY = CONVERT(INT,@LEVEL_JOB_PAY) -1 UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_TRN_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV_PAY) UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='S' WHERE REQ_PAY_ID =@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'SUG', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'GDV đề xuất từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được đề xuất từ chối thành công' END ELSE IF(@p_STAGE ='DEL') BEGIN --UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_TRN_ID AND TLNAME=@p_REJECTED_BY --DECLARE @LEVEL_JOB_PAY VARCHAR(5), @LEVEL_JOB_PREV_PAY INT --SET @LEVEL_JOB_PAY =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TLNAME=@p_REJECTED_BY) --SET @LEVEL_JOB_PREV_PAY = CONVERT(INT,@LEVEL_JOB_PAY) -1 --UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_TRN_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV_PAY) UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='D',AUTH_STATUS ='D' WHERE REQ_PAY_ID =@p_TRN_ID UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS_KT ='D' WHERE PAY_ID =@p_TRN_ID UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='D' WHERE PAY_ID =@p_TRN_ID --------------------------------------------------------------------------------------------------------------------- --DECLARE @TRADED_ID VARCHAR(15), @AMT_EXE DECIMAL(18,0) DECLARE CURS_TRADE CURSOR FOR SELECT A.TRADE_ID, A.AMT_EXE FROM TR_REQ_PAY_BUDGET A WHERE A.REQ_PAY_ID =@p_TRN_ID OPEN CURS_TRADE FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE WHILE @@FETCH_STATUS = 0 BEGIN UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE WHERE TRADE_ID =@TRADED_ID FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE END CLOSE CURS_TRADE DEALLOCATE CURS_TRADE -- XOA NGAN SACH --DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID= @p_TRN_ID --- NEU LA TAM UNG NOI BO THI PHAI REVERT LAI SO TIEN DA HOAN UNG CUA PHIEU DE NGHI TAM UNG --DECLARE @PAY_ADVANCE_ID VARCHAR(15), @AMT_PAY DECIMAL(18,0), @AMT_REVERT DECIMAL(18,0), @AMT_ADD DECIMAL(18,0) DECLARE CURS CURSOR FOR SELECT A.PAY_ADV_ID,A.AMT_USE,A.AMT_ADD,A.AMT_REVERT FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_TRN_ID OPEN CURS FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PAY_AMT = ISNULL(PAY_AMT,0) - @AMT_PAY - @AMT_REVERT + @AMT_ADD WHERE REQ_PAY_ID=@PAY_ADVANCE_ID FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT END CLOSE CURS DEALLOCATE CURS ---- XOA DI SO TIEN DA HOAN UNG CUA KI THANH TOAN NEU THANH TOAN NHA CUNG CAP VUA HOAN UNG DOT CŨ VÀ VỪA THANH TOÁN ĐỢT MỚI --DECLARE @REQ_PAY_ID VARCHAR(15), @AMT_REAL DECIMAL(18,0) --DECLARE CURS_SCHE CURSOR FOR SELECT A.REQ_PAY_ID, A.AMT_PAY_REAL FROM TR_REQ_PAY_SCHEDULE A WHERE A.REQ_PAY_ID =@p_TRN_ID --OPEN CURS_SCHE -- FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE -- WHILE @@FETCH_STATUS = 0 -- BEGIN -- UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE -- WHERE TRADE_ID =@TRADED_ID -- FETCH NEXT FROM CURS_SCHE INTO @TRADED_ID,@AMT_EXE -- END --CLOSE CURS_SCHE --DEALLOCATE CURS_SCHE INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'DEL', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'KSV hủy phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được hủy thành công. Bạn vẫn có thể xem thông tin giao dịch với tình trạng đã bị hủy' END END END -- END PHIEU DE THI THANH TOAN 19-11-2019 --- Tờ trình chủ trương ELSE IF(@p_TRN_TYPE='PL_REQUEST_DOC') BEGIN IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Tờ trình chủ trương đã được duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID='REJECT',AUTH_STATUS='R' WHERE REQ_ID=@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Tờ trình chủ trương đã được trả về thành công' -- 28-10-2020 LUCTV, KHI TRA VE PHAI GO PL_REQUEST_PROCESS UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Tờ trình bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID END END ELSE IF(@p_TRN_TYPE='TR_REQUEST_DOC') BEGIN --IF(@p_STAGE='DVMS') --BEGIN --END IF(@p_STAGE='PDYC' OR @p_STAGE ='DV') BEGIN IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID='REJECT', AUTH_STATUS ='R' WHERE REQ_ID=@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm đã được trả về thành công' -- 28-10-2020 LUCTV, KHI TRA VE PHAI GO PL_REQUEST_PROCESS UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID END END END -- END IF -- NEU LA TRA VE CUA HOP DONG ELSE IF(@p_TRN_TYPE='TR_CONTRACT') BEGIN --- CAP NHAT AUTH_STATUS CUA HOP DONG VE R IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='R')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Hợp đồng đã được trả về trước đó. Vui lòng đợi nhân viên cập nhật thông tin và bấm gửi phê duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='A')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Hợp đồng đã được phê duyệt thành công trước đó!' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END UPDATE TR_CONTRACT SET AUTH_STATUS ='R' WHERE CONTRACT_ID =@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Hợp đồng đã được trả về thành công' END -- NEU LA TRA VE CUA HOP DONG ELSE IF(@p_TRN_TYPE='TR_PO') BEGIN --- CAP NHAT AUTH_STATUS CUA HOP DONG VE R IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='R')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! PO đã được trả về trước đó. Vui lòng đợi nhân viên cập nhật thông tin và bấm gửi phê duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='A')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! PO đã được phê duyệt thành công trước đó!' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END UPDATE TR_PO_MASTER SET AUTH_STATUS ='R' WHERE PO_ID =@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'PO đã được trả về thành công' END --- KET THUC TRA VE PO ELSE BEGIN SET @p_MESSAGE =N'Trả về giao dịch thành công' END ---BAODNQ 28/12/2021: Thêm xử lý trả về cho phân hệ quản lý cho thuê------ -------Khai báo DTSD nội bộ------- IF(@p_TRN_TYPE ='BUD_INTERNAL') --BEGIN ELSE IF--- BEGIN IF(EXISTS (SELECT * FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS ='A')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin khai báo DTSD nội bộ đã được duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END UPDATE BUD_CONTRACT_MASTER SET AUTH_STATUS ='R', ---BAODNQ 31/12/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------ IS_SEND_APPR = 'N' WHERE CONTRACT_ID=@p_TRN_ID SET @p_MESSAGE =N'Thông tin khai báo DTSD nội bộ đã được trả về thành công' ---END ELSE IF--- END -------Quản lý hợp đồng khách thuê------- ELSE IF(@p_TRN_TYPE ='BUD_RENTAL') --BEGIN ELSE IF--- BEGIN IF(EXISTS (SELECT * FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS ='A')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin khai báo DT cho khách thuê đã được duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END UPDATE BUD_CONTRACT_CUST_MASTER SET AUTH_STATUS ='R', ---BAODNQ 31/12/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------ IS_SEND_APPR = 'N' WHERE CONTRACT_ID=@p_TRN_ID SET @p_MESSAGE =N'Thông tin khai báo DT cho khách thuê đã được trả về thành công' ---END ELSE IF--- END ---datmq 28/12/2021: Thêm xử lý trả về cho phân hệ quản lý cho thuê------ -------Quản lý trụ sở------- ELSE IF(@p_TRN_TYPE ='BUD_MASTER') --BEGIN ELSE IF--- BEGIN IF(EXISTS (SELECT * FROM BUD_MASTER WHERE BUILDING_ID =@p_TRN_ID AND AUTH_STATUS ='A')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin quản lý cho thuê đã được duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ---BAODNQ 26/1/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------ UPDATE BUD_MASTER SET AUTH_STATUS ='R', IS_SEND_APPR = 'N' WHERE BUILDING_ID=@p_TRN_ID SET @p_MESSAGE =N'Thông tin quản lý trụ sở đã được trả về thành công' ---END ELSE IF--- END ---doanptt 10/02/2022: Thêm xử lý trả về cho phân hệ quản lý thanh toán/ tạm ứng------ ELSE IF(@p_TRN_TYPE ='TR_REQ_PAY') BEGIN IF(@p_STAGE='HC') BEGIN IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS = 'A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới phiếu đề nghị thanh toán đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN --UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID IS NOT NULL AND MAKER_ID <>'')) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R' WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới phiếu đề nghị thanh toán đã được trả về thành công' END /*ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công' END*/ END END END ---doanptt 10/02/2022: Thêm xử lý trả về cho phân hệ quản lý thanh toán/ tạm ứng------ ELSE IF(@p_TRN_TYPE ='TR_REQ_ADVACNE_PAY') BEGIN IF(@p_STAGE='HC') BEGIN IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS = 'A' AND @p_STAGE ='HC')) BEGIN SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới phiếu đề nghị tạm ứng đã được hành chính duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END ELSE BEGIN --UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID --SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công' IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID IS NOT NULL AND MAKER_ID <>'')) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R' WHERE REQ_PAY_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới phiếu đề nghị tạm ứng đã được trả về thành công' END /*ELSE BEGIN SET @p_STAGE ='HC' UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công' END*/ END END END --- INSERT VAO BANG CM_REJECT_LOG EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,@p_STAGE,@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,'Y',@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103)) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' LOG_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_MASTER_SendAppr]' GO CREATE PROCEDURE [dbo].[BUD_MASTER_SendAppr] @p_BUILDING_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL, @p_SEND_APPR_DT VARCHAR(20) = NULL AS BEGIN TRANSACTION UPDATE BUD_MASTER SET IS_SEND_APPR = 'Y', SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103) WHERE BUILDING_ID = @p_BUILDING_ID IF @@ERROR <> 0 GOTO ABORT DECLARE @l_IS_SEND_APPR VARCHAR(15) SET @l_IS_SEND_APPR = (SELECT IS_SEND_APPR FROM BUD_MASTER WHERE BUILDING_ID = @p_BUILDING_ID) INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_BUILDING_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Người tạo gửi phê duyệt thành công', N'Người tạo gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, '' BUILDING_ID, @l_IS_SEND_APPR IS_SEND_APPR, N'Thông tin trụ sở: '+(SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_BUILDING_ID)+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' BUILDING_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_TYPE_Lis]' GO /* [ASS_TYPE_Lis] */ ALTER PROCEDURE [dbo].[ASS_TYPE_Lis] AS BEGIN SELECT * FROM ASS_TYPE WHERE AUTH_STATUS = 'A' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_UTILIZED_EFFICIENT_ALL_Excel]' GO CREATE PROC [dbo].[rpt_BUD_UTILIZED_EFFICIENT_ALL_Excel] @p_BRANCH_ID VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DT VARCHAR(20) = NULL AS BEGIN DECLARE @AUTH_CONTRACT TABLE (CONTRACT_ID VARCHAR(15)) INSERT INTO @AUTH_CONTRACT SELECT CONTRACT_ID FROM BUD_CONTRACT_MASTER WHERE AUTH_STATUS = 'A' AND (CONVERT(DATE, INPUT_DT, 103) >= CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE, AMEND_DT, 103 ) <= CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') UNION ALL SELECT A1.CONTRACT_ID FROM BUD_CONTRACT_CUST_MASTER A1 INNER JOIN TR_CONTRACT B1 ON A1.TR_CONTRACT_ID = B1.CONTRACT_ID WHERE A1.AUTH_STATUS = 'A' AND (CONVERT(DATE, B1.START_DT, 103) >= CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE, B1.END_DT, 103 ) <= CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') SELECT ROW_NUMBER() OVER(ORDER BY A.BUILDING_ID) AS STT, C.BRANCH_NAME AS BRANCH, A.BUILDING_NAME, A.ADDRESS, ISNULL(A.TOTAL_AREA,0) AS TOTAL_AREA, ( --SELECT ISNULL(SUM(INTERNAL_AREA) + SUM(UTILZED_AREA),0) --FROM BUD_AREA_DT --WHERE BUILD_ID = A.BUILDING_ID (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_DT WHERE BUILD_ID = A.BUILDING_ID AND CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) + (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE BUILD_ID = A.BUILDING_ID AND CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) ) AS DT_DA_CHO_THUE, ( --A.TOTAL_AREA - --(SELECT ISNULL(SUM(INTERNAL_AREA) + SUM(UTILZED_AREA),0) --FROM BUD_AREA_DT --WHERE BUILD_ID = A.BUILDING_ID) A.TOTAL_AREA - ( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_DT WHERE BUILD_ID = A.BUILDING_ID AND CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) + (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE BUILD_ID = A.BUILDING_ID AND CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) ) ) AS DT_CON_LAI, ( (SELECT ISNULL(SUM(TOTAL_AMT),0) FROM BUD_CONTRACT_DT WHERE BUILD_ID = A.BUILDING_ID AND CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) + (SELECT ISNULL(SUM(TOTAL_AMT),0) FROM BUD_CONTRACT_CUST_DT WHERE BUILD_ID = A.BUILDING_ID AND CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) ) / 1000000 AS THU_NHAP, '' AS GIA_TRI_DA_KHAU_HAO, '' AS GIA_TRI_KHAU_HAO_CON_LAI FROM BUD_MASTER A LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID WHERE 1=1 AND A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_MASTER_Upd]' GO ALTER PROCEDURE [dbo].[BUD_MASTER_Upd] @p_BUILDING_ID varchar(15) = null , @p_ASSET_ID varchar(15) = NULL , @p_BUILDING_NAME nvarchar(1000) = NULL , @p_BRANCH_ID varchar(15) = NULL , @p_ADDRESS nvarchar(800) = NULL , @p_OWNER_OR_RENT varchar(1) = NULL , @p_NUM_FLOOR int = NULL, @p_AREA numeric(17) = NULL , @p_TOTAL_AREA numeric(17) = NULL , @p_RENT_TOTAL_AREA numeric(17) = NULL , @p_UTILZED_AREA numeric(17) = NULL , @p_NOTES nvarchar(1000) = NULL , @p_RECORD_STATUS varchar(1) = NULL , @p_AUTH_STATUS varchar(1) = NULL , @p_MAKER_ID varchar(15) = NULL , @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL , @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_RENT_AMT DECIMAL(18,0) =NULL, @p_DEPOSITS_AMT DECIMAL(18,0) =NULL, @p_RENT_TIME int, @p_IS_SEND_APPR VARCHAR(15), @p_SEND_APPR_DT VARCHAR(20), @p_SIGN_USER VARCHAR(15), @p_SIGN_DT VARCHAR(15) AS /* --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM BUD_MASTER WHERE BUILDING_ID=@p_BUILDING_ID SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ''BUILDING_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ BEGIN TRANSACTION UPDATE BUD_MASTER SET [ASSET_ID] = @p_ASSET_ID,[BUILDING_NAME] = @p_BUILDING_NAME, [BRANCH_ID] = @p_BRANCH_ID,[ADDRESS] = @p_ADDRESS, [OWNER_OR_RENT] = @p_OWNER_OR_RENT,[NUM_FLOOR] = @p_NUM_FLOOR, [AREA] = @p_AREA,[TOTAL_AREA] = @p_TOTAL_AREA, [RENT_TOTAL_AREA] = @p_RENT_TOTAL_AREA, [UTILZED_AREA] = @p_UTILZED_AREA,[NOTES] = @p_NOTES, [RECORD_STATUS] = @p_RECORD_STATUS,[AUTH_STATUS] = @p_AUTH_STATUS, [MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103), [CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), [XML_TEMP] = @p_XML_TEMP, [RENT_AMT]=@p_RENT_AMT, [DEPOSITS_AMT] =@p_DEPOSITS_AMT, [RENT_TIME] =@p_RENT_TIME, [IS_SEND_APPR] = @p_IS_SEND_APPR, [SEND_APPR_DT] = @p_SEND_APPR_DT, [SIGN_USER] = @p_SIGN_USER, [SIGN_DT]= @p_SIGN_DT WHERE BUILDING_ID= @p_BUILDING_ID IF @@Error <> 0 GOTO ABORT DELETE FROM BUD_AREA_DT WHERE BUILD_ID =@p_BUILDING_ID Declare @hdoc1 INT DECLARE @d_BUILDING_AREA_ID VARCHAR(15), @d_FLOOR_NO INT, @d_FLOOR_AREA decimal, @d_INTERNAL_AREA decimal, @d_RENT_AREA decimal, @d_UTILZED_AREA decimal, @d_NOTES NVARCHAR(1000) Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( BUILDING_AREA_ID VARCHAR(15), FLOOR_NO INT, FLOOR_AREA decimal, INTERNAL_AREA decimal, RENT_AREA decimal, UTILZED_AREA decimal, NOTES NVARCHAR(1000) ) OPEN XmlDataDoc FETCH NEXT FROM XmlDataDoc INTO @d_BUILDING_AREA_ID , @d_FLOOR_NO , @d_FLOOR_AREA , @d_INTERNAL_AREA , @d_RENT_AREA , @d_UTILZED_AREA , @d_NOTES WHILE @@FETCH_STATUS = 0 BEGIN IF(LEN( @d_BUILDING_AREA_ID)=0) EXEC SYS_CodeMasters_Gen 'BUD_AREA_DT', @d_BUILDING_AREA_ID out IF @d_BUILDING_AREA_ID='' OR @d_BUILDING_AREA_ID IS NULL GOTO ABORT INSERT INTO BUD_AREA_DT([BUILDING_AREA_ID],[BUILD_ID],[FLOOR_NO],[FLOOR_AREA],[INTERNAL_AREA], [RENT_AREA],[UTILZED_AREA],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT]) VALUES(@d_BUILDING_AREA_ID ,@p_BUILDING_ID ,@d_FLOOR_NO ,@d_FLOOR_AREA ,@d_INTERNAL_AREA ,0 , @d_UTILZED_AREA ,@d_NOTES,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlDataDoc INTO @d_BUILDING_AREA_ID , @d_FLOOR_NO , @d_FLOOR_AREA , @d_INTERNAL_AREA , @d_RENT_AREA , @d_UTILZED_AREA , @d_NOTES END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc -----**** UPDATE ---- --8/12/2021,datmq thêm UTILZED_AREA=(SELECT SUM(UTILZED_AREA))---- UPDATE BUD_MASTER SET TOTAL_AREA = (SELECT SUM(FLOOR_AREA) FROM BUD_AREA_DT WHERE BUILD_ID=@p_BUILDING_ID),UTILZED_AREA=(SELECT SUM(UTILZED_AREA) FROM BUD_AREA_DT WHERE BUILD_ID=@p_BUILDING_ID) WHERE BUILDING_ID=@p_BUILDING_ID -- 29/12/2021:datmq Insert to table PL_PROCESS INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_BUILDING_ID, 'UPDATE', @p_MAKER_ID, GETDATE(), N'Cập nhật quản lý trụ sở thành công' , N'Cập nhật quản lý trụ sở' ) COMMIT TRANSACTION SELECT '0' as Result, @p_BUILDING_ID BUILDING_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' BUILDING_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_MASTER_Excel]' GO CREATE PROC [dbo].[rpt_BUD_MASTER_Excel] @p_BRANCH_ID VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DT VARCHAR(20) = NULL, @p_LEVEL VARCHAR(15) = 'ALL' AS BEGIN DECLARE @BRANCH_TABLE TABLE(BRANCH_ID VARCHAR(15)) IF(@p_LEVEL = 'ALL') BEGIN INSERT INTO @BRANCH_TABLE SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) END IF(@p_LEVEL = 'UNIT') BEGIN INSERT INTO @BRANCH_TABLE SELECT @p_BRANCH_ID END DECLARE @AUTH_CONTRACT TABLE(CONTRACT_ID VARCHAR(15)) INSERT INTO @AUTH_CONTRACT SELECT CONTRACT_ID FROM BUD_CONTRACT_MASTER WHERE AUTH_STATUS = 'A' AND BRANCH_ID IN(SELECT BRANCH_ID FROM @BRANCH_TABLE) AND (CONVERT(DATE,CREATE_DT,103) >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE,CREATE_DT,103) <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') UNION ALL SELECT CONTRACT_ID FROM BUD_CONTRACT_CUST_MASTER WHERE AUTH_STATUS = 'A' AND BRANCH_ID IN(SELECT BRANCH_ID FROM @BRANCH_TABLE) AND (CONVERT(DATE,CREATE_DT,103) >=CONVERT(DATE, @p_FROM_DT, 103) OR @p_FROM_DT IS NULL OR @p_FROM_DT = '') AND (CONVERT(DATE,CREATE_DT,103) <=CONVERT(DATE, @p_TO_DT, 103) OR @p_TO_DT IS NULL OR @p_TO_DT = '') SELECT ROW_NUMBER() OVER(ORDER BY A.BUILDING_ID) AS STT, A.ADDRESS, B.BRANCH_NAME AS BRANCH_OR_DEP, ( --SELECT SUM(INTERNAL_AREA) + SUM(UTILZED_AREA) --FROM BUD_AREA_DT --WHERE BUILD_ID = A.BUILDING_ID (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILD_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN(SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILD_ID = A.BUILDING_ID) ) AS DT_CHO_THUE, ( A.TOTAL_AREA - ( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILD_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN(SELECT CONTRACT_ID FROM @AUTH_CONTRACT) AND BUILD_ID = A.BUILDING_ID) ) ) AS DT_CON_LAI, CASE WHEN A.OWNER_OR_RENT = 'O' THEN 'Mua' WHEN A.OWNER_OR_RENT = 'U' THEN 'Thuê' END AS OWNER_OR_RENT, C.CURRENT_STATE, C.HOUSEDES AS HOUSE_STRUCTURE, A.RENT_AMT, '' AS GIA_TRI_KHAU_HAO, '' AS GIA_TRI_CON_LAI, '' AS GIA_THI_TRUONG, CASE WHEN C.CONST_STATUS = 'XD' THEN 'X' ELSE '' END AS GIA_TRI_XAY_DUNG, CASE WHEN C.CONST_STATUS = 'SC' THEN 'X' ELSE '' END AS SUA_CHUA, CASE WHEN C.CONST_STATUS = 'XD/SC' THEN 'X' ELSE '' END AS DANG_XD_SC, '' AS TG_GHI_NHAN_TS, '' AS TG_TRICH_KHAU_HAO, A.RENT_TIME FROM BUD_MASTER A LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID LEFT JOIN RET_MASTER C ON A.ASSET_ID = C.ASSET_ID WHERE A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_UTILIZED_QUARTER_Excel]' GO CREATE PROC [dbo].[rpt_BUD_UTILIZED_QUARTER_Excel] @p_YEAR VARCHAR(5) AS BEGIN SELECT ROW_NUMBER() OVER (ORDER BY A.BUILDING_ID) AS STT, B.BRANCH_NAME AS BRANCH, A.BUILDING_NAME, ( (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_MASTER A1 LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID WHERE A1.INPUT_DT >= CONVERT(DATE,'01/01/' + @p_YEAR,103) AND A1.AMEND_DT <= CONVERT(DATE,'31/03/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_MASTER A1 LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID WHERE C1.START_DT >= CONVERT(DATE,'01/01/' + @p_YEAR,103) AND C1.END_DT <= CONVERT(DATE,'31/03/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) ) / A.TOTAL_AREA AS QUARTER_1, ( (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_MASTER A1 LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID WHERE A1.INPUT_DT >= CONVERT(DATE,'01/04/' + @p_YEAR,103) AND A1.AMEND_DT <= CONVERT(DATE,'30/06/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_MASTER A1 LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID WHERE C1.START_DT >= CONVERT(DATE,'01/04/' + @p_YEAR,103) AND C1.END_DT <= CONVERT(DATE,'30/06/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) ) / A.TOTAL_AREA AS QUARTER_2, ( (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_MASTER A1 LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID WHERE A1.INPUT_DT >= CONVERT(DATE,'01/07/' + @p_YEAR,103) AND A1.AMEND_DT <= CONVERT(DATE,'30/09/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_MASTER A1 LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID WHERE C1.START_DT >= CONVERT(DATE,'01/07/' + @p_YEAR,103) AND C1.END_DT <= CONVERT(DATE,'30/09/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) ) / A.TOTAL_AREA AS QUARTER_3, ( (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_MASTER A1 LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID WHERE A1.INPUT_DT >= CONVERT(DATE,'01/10/' + @p_YEAR,103) AND A1.AMEND_DT <= CONVERT(DATE,'30/12/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_MASTER A1 LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID WHERE C1.START_DT >= CONVERT(DATE,'01/10/' + @p_YEAR,103) AND C1.END_DT <= CONVERT(DATE,'30/12/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) ) / A.TOTAL_AREA AS QUARTER_4, ( (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_MASTER A1 LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID WHERE A1.INPUT_DT >= CONVERT(DATE,'01/01/' + @p_YEAR,103) AND A1.AMEND_DT <= CONVERT(DATE,'30/12/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_MASTER A1 LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID WHERE C1.START_DT >= CONVERT(DATE,'01/01/' + @p_YEAR,103) AND C1.END_DT <= CONVERT(DATE,'30/12/' + @p_YEAR,103) AND A1.AUTH_STATUS = 'A' AND A1.BUILDING_ID = A.BUILDING_ID) ) / A.TOTAL_AREA AS ALL_YEAR FROM BUD_MASTER A LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID WHERE A.AUTH_STATUS = 'A' AND A.RECORD_STATUS ='1' DECLARE @tmp TABLE(BUILDING_ID VARCHAR(15)) INSERT INTO @tmp SELECT BUILDING_ID FROM BUD_CONTRACT_MASTER WHERE AUTH_STATUS = 'A' AND INPUT_DT >= CONVERT(DATE, '01/01/' + @p_YEAR, 103) AND AMEND_DT <= CONVERT(DATE, '30/12/' + @p_YEAR, 103) UNION SELECT BUILDING_ID FROM BUD_CONTRACT_CUST_MASTER WHERE AUTH_STATUS = 'A' AND FROM_DT >= CONVERT(DATE, '01/01/' + @p_YEAR, 103) AND TO_DATE <= CONVERT(DATE, '30/12/' + @p_YEAR, 103) -----Các CN/PGD còn trụ sở trống------- SELECT CONVERT(VARCHAR ,COUNT(DISTINCT A.BRANCH_ID)) + N' đơn vị' AS TONG_CN_CON_TRU_SO_TRONG FROM BUD_MASTER A WHERE A.AUTH_STATUS = 'A' AND RECORD_STATUS = '1' AND A.BRANCH_ID IS NOT NULL AND A.BUILDING_ID NOT IN (SELECT BUILDING_ID FROM @tmp) -----DT trống toàn hàng đến 31/12------- SELECT --CONVERT(VARCHAR, CAST((ISNULL(SUM((RENT_TOTAL_AREA - UTILZED_AREA) / 1000),0)) AS DECIMAL(18,2))) CONVERT(VARCHAR, CAST(ISNULL(SUM(TOTAL_AREA) /1000 ,0) AS DECIMAL(18,2))) + N' ngàn m2' AS DT_TRONG_TOAN_HANG FROM BUD_MASTER WHERE AUTH_STATUS = 'A' AND RECORD_STATUS = '1' DECLARE @RENT_AREA_TABLE TABLE(RENT_AREA DECIMAL(18,2)) INSERT INTO @RENT_AREA_TABLE SELECT CASE WHEN RENT_TOTAL_AREA = 0 OR RENT_TOTAL_AREA IS NULL THEN ISNULL(UTILZED_AREA,0) ELSE ISNULL((TOTAL_AREA - RENT_TOTAL_AREA + UTILZED_AREA),0) END AS RENT_AREA FROM BUD_MASTER WHERE AUTH_STATUS = 'A' DECLARE @AUTH_CONTRACT TABLE(CONTRACT_ID VARCHAR(15)) INSERT INTO @AUTH_CONTRACT SELECT CONTRACT_ID FROM BUD_CONTRACT_MASTER WHERE AUTH_STATUS = 'A' AND INPUT_DT >= CONVERT(DATE, '01/01/' + @p_YEAR, 103) AND AMEND_DT <= CONVERT(DATE, '30/12/' + @p_YEAR, 103) UNION ALL SELECT A1.CONTRACT_ID FROM BUD_CONTRACT_CUST_MASTER A1 INNER JOIN TR_CONTRACT B1 ON A1.TR_CONTRACT_ID = B1.CONTRACT_ID WHERE A1.AUTH_STATUS = 'A' AND B1.START_DT >= CONVERT(DATE, '01/01/' + @p_YEAR, 103) AND B1.END_DT <= CONVERT(DATE, '30/12/' + @p_YEAR, 103) -----DT cho thuê dc đến 31/12------- --SELECT --CONVERT(VARCHAR, -- --CAST( -- -- (ISNULL(SUM((TOTAL_AREA - RENT_TOTAL_AREA + UTILZED_AREA) / 1000),0)) AS DECIMAL(18,2) -- --) --) -- + N' ngàn m2' AS DT_CHO_THUE --FROM BUD_MASTER --WHERE AUTH_STATUS = 'A' --SELECT -- CONVERT(VARCHAR,CAST(SUM(RENT_AREA) / 1000 AS DECIMAL(18,2))) -- + N' ngàn m2' AS DT_CHO_THUE --FROM @RENT_AREA_TABLE SELECT CONVERT(VARCHAR,CAST(SUM(TMP.RENT_AREA) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS DT_CHO_THUE FROM( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD), 0) AS RENT_AREA FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) UNION ALL (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) ) TMP -----DT còn trống đến 31/12------- SELECT CONVERT(VARCHAR, --CAST( -- --(ISNULL(SUM(RENT_TOTAL_AREA - UTILZED_AREA),0) -- (ISNULL(SUM(TOTAL_AREA) /1000 ,0) -- - ISNULL(SUM(TOTAL_AREA - RENT_TOTAL_AREA + UTILZED_AREA),0)) / 1000 -- AS DECIMAL(18,2)) CAST( ISNULL(SUM(TOTAL_AREA) / 1000 ,0) - (SELECT (SUM(TMP.RENT_AREA) / 1000 ) FROM( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD), 0) AS RENT_AREA FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) UNION ALL (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) ) TMP) AS DECIMAL(18,2)) ) + N' ngàn m2' AS DT_TRONG FROM BUD_MASTER WHERE AUTH_STATUS = 'A' AND RECORD_STATUS ='1' -----Tỷ lệ khai thác đạt------- SELECT ( --(ISNULL(SUM((TOTAL_AREA - RENT_TOTAL_AREA + UTILZED_AREA) / 1000),0)) (SELECT SUM(TMP.RENT_AREA) / 1000 FROM( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD), 0) AS RENT_AREA FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) UNION ALL (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @AUTH_CONTRACT)) ) TMP) / --(ISNULL(SUM((RENT_TOTAL_AREA - UTILZED_AREA) / 1000),0)) ISNULL(SUM(TOTAL_AREA) /1000 ,0) ) AS TY_LE_KHAI_THAC_DAT FROM BUD_MASTER WHERE AUTH_STATUS = 'A' AND RECORD_STATUS = '1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[rpt_TR_REQ_PAYMENT_ByID]' GO ALTER PROCEDURE [dbo].[rpt_TR_REQ_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_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_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 @REQ_TYPE VARCHAR(15) SET @REQ_TYPE =(SELECT REQ_TYPE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID) ------------------------------------------- DECLARE @CONTENT NVARCHAR(MAX)='', @CONTENT_CK NVARCHAR(MAX)='', @TM_TITLE NVARCHAR(100), @CK_TITLE NVARCHAR(100), @NDTM NVARCHAR(MAX) ='', @NDCK 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),@NOIDUNG NVARCHAR(MAX) ='',@AMT DECIMAL(18,2),@TYPE_TRANSFER VARCHAR(15) 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, 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, 0 TOTAL_AMT_TEMP, 0 TOTAL_AMT_PAY_HIS,TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME, CASE WHEN @REQ_TYPE <> 'I' THEN (ISNULL(X2.SO_TIEN_TAM_UNG,0) + ISNULL(X3.SO_TIEN_TAM_UNG,0)) ELSE ISNULL(X.SOTIEN_TAMUNG,0) END AS SOTIEN_TAMUNG, CASE WHEN @REQ_TYPE <> 'I' THEN (ISNULL(X4.SO_TIEN_TAM_UNG,0.00) + ISNULL(X5.SO_TIEN_TAM_UNG,0.00) +ISNULL(X6.SO_TIEN_TAM_UNG,0.00)) ELSE ISNULL(X.AMT_USE,0.00) END AS SO_TIEN_DE_NGHI, CASE WHEN (ISNULL(X.SOTIEN_TAMUNG,0.00) - ISNULL(X.AMT_USE,0.00)) >0 THEN (ISNULL(X.SOTIEN_TAMUNG,0.00) - ISNULL(X.AMT_USE,0.00)) ELSE 0 END AS SO_TIEN_CL, -- CASE WHEN @REQ_TYPE <> 'I' THEN (ISNULL(X2.SO_TIEN_TAM_UNG,0) + ISNULL(X3.SO_TIEN_TAM_UNG,0)) - (ISNULL(X4.SO_TIEN_TAM_UNG,0.00) + ISNULL(X5.SO_TIEN_TAM_UNG,0.00) +ISNULL(X6.SO_TIEN_TAM_UNG,0.00)) -- ELSE ISNULL(X.SOTIEN_TAMUNG,0) - ISNULL(X.AMT_USE,.00) END AS SO_TIEN_CL, ISNULL(X.ST_BO_SUNG,0.00) SO_TIEN_VUOT, --CASE WHEN @REQ_TYPE <> 'I' THEN (ISNULL(X4.SO_TIEN_TAM_UNG,0.00) + ISNULL(X5.SO_TIEN_TAM_UNG,0.00) +ISNULL(X6.SO_TIEN_TAM_UNG,0.00)) -(ISNULL(X2.SO_TIEN_TAM_UNG,0) + ISNULL(X3.SO_TIEN_TAM_UNG,0)) ELSE --ISNULL(X.AMT_USE,.00) -ISNULL(X.SOTIEN_TAMUNG,0) END AS SO_TIEN_VUOT, ISNULL(X.ST_BO_SUNG,0.00) + ISNULL(X.ST_HOAN_UNG,0) CHI_BO_SUNG, --CASE WHEN @REQ_TYPE <> 'I' THEN (ISNULL(X4.SO_TIEN_TAM_UNG,0.00) + ISNULL(X5.SO_TIEN_TAM_UNG,0.00) +ISNULL(X6.SO_TIEN_TAM_UNG,0.00)) -(ISNULL(X2.SO_TIEN_TAM_UNG,0) + ISNULL(X3.SO_TIEN_TAM_UNG,0)) ELSE --ISNULL(X.AMT_USE,.00) -ISNULL(X.SOTIEN_TAMUNG,0) END AS CHI_BO_SUNG,\ DAY(A.CREATE_DT) D_, MONTH(A.CREATE_DT) M_, YEAR(A.CREATE_DT) Y_, '' AS NOIDUNG, '' 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 TYPE_CUR, ISNULL(X.ST_HOAN_UNG,0.00) + ISNULL(X.ST_BO_SUNG,0.00) AS SO_TIEN_PTTT, CASE WHEN A.CONFIRM_NOTE <>'' AND A.CONFIRM_NOTE IS NOT NULL THEN N'Ghi chú: '+ A.CONFIRM_NOTE ELSE '' END AS CONFIRM_NOTE, CASE WHEN @REQ_TYPE ='I' THEN A.REQ_AMT ELSE (SELECT SUM(TOTAL_AMT) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) END AS REQ_AMT FROM TR_REQ_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='PAY_TYPE' AND AL.CDTYPE = 'REQ' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ' 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 A.PAY_ID, SUM(A.AMT_REMAIN) SOTIEN_TAMUNG, SUM(A.AMT_DO) ST_DA_HOAN, SUM(A.AMT_ADD) ST_BO_SUNG,ABS(SUM(A.AMT_USE)) AS AMT_USE, SUM(A.AMT_REVERT) AS ST_HOAN_UNG FROM TR_REQ_PAYMENT_DT A GROUP BY A.PAY_ID ) X ON A.REQ_PAY_ID = X.PAY_ID LEFT JOIN ( SELECT P.REQ_PAY_ID,SUM(P.AMT_PAY) AS SO_TIEN_TAM_UNG FROM TR_REQ_PAY_PERIOD P WHERE P.REQ_PAY_ID=@p_REQ_PAY_ID AND P.PROCESS <>'1' GROUP BY P.REQ_PAY_ID ) X2 ON A.REQ_PAY_ID = X2.REQ_PAY_ID LEFT JOIN ( SELECT P.REQ_PAY_ID,SUM(P.AMT_ADVANCE) AS SO_TIEN_TAM_UNG FROM TR_REQ_PAY_SCHEDULE P WHERE P.REQ_PAY_ID=@p_REQ_PAY_ID AND P.PROCESS <>'1' GROUP BY P.REQ_PAY_ID ) X3 ON A.REQ_PAY_ID = X3.REQ_PAY_ID LEFT JOIN ( SELECT P.REQ_PAY_ID,SUM(P.AMT_PAY) AS SO_TIEN_TAM_UNG FROM TR_REQ_PAY_PERIOD P WHERE P.REQ_PAY_ID=@p_REQ_PAY_ID GROUP BY P.REQ_PAY_ID ) X4 ON A.REQ_PAY_ID = X4.REQ_PAY_ID LEFT JOIN ( SELECT P.REQ_PAY_ID,SUM(P.AMT_PAY_REAL) AS SO_TIEN_TAM_UNG FROM TR_REQ_PAY_SCHEDULE P WHERE P.REQ_PAY_ID=@p_REQ_PAY_ID GROUP BY P.REQ_PAY_ID ) X5 ON A.REQ_PAY_ID = X5.REQ_PAY_ID LEFT JOIN ( SELECT P.REQ_PAY_ID,SUM(P.TOTAL_AMT) AS SO_TIEN_TAM_UNG FROM TR_REQ_PAY_SERVICE P WHERE P.REQ_PAY_ID=@p_REQ_PAY_ID GROUP BY P.REQ_PAY_ID ) X6 ON A.REQ_PAY_ID = X6.REQ_PAY_ID WHERE 1=1 AND(A.REQ_PAY_ID=@p_REQ_PAY_ID) ORDER BY A.CREATE_DT DESC; GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_UTILIZED_EFF_Excel]' GO CREATE PROC [dbo].[rpt_BUD_UTILIZED_EFF_Excel] @p_QUARTER INT, @p_YEAR INT AS BEGIN DECLARE @p_FROM VARCHAR(20), @p_TO VARCHAR(20) IF(@p_QUARTER = 1) BEGIN SET @p_FROM = '01/01/' SET @p_TO = '31/03/' END ELSE IF(@p_QUARTER = 2) BEGIN SET @p_FROM = '01/04/' SET @p_TO = '30/06/' END ELSE IF(@p_QUARTER = 3) BEGIN SET @p_FROM = '01/07/' SET @p_TO = '30/09/' END ELSE IF(@p_QUARTER = 4) BEGIN SET @p_FROM = '01/10/' SET @p_TO = '30/12/' END DECLARE @p_FROM_DT VARCHAR(20), @p_TO_DT VARCHAR(20) SET @p_FROM_DT = @p_FROM + CONVERT(VARCHAR, @p_YEAR) SET @p_TO_DT = @p_TO + CONVERT(VARCHAR, @p_YEAR) DECLARE @tmp TABLE(CONTRACT_ID VARCHAR(15),BUILDING_AREA_ID VARCHAR(15)) INSERT INTO @tmp SELECT A1.CONTRACT_ID, B1.BUILDING_AREA_ID FROM BUD_CONTRACT_MASTER A1 INNER JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID WHERE A1.AUTH_STATUS = 'A' AND A1.INPUT_DT >= CONVERT(DATE,@p_FROM_DT, 103) AND A1.AMEND_DT <= CONVERT(DATE, @p_TO_DT, 103) UNION SELECT A1.CONTRACT_ID, B1.BUILDING_AREA_ID FROM BUD_CONTRACT_CUST_MASTER A1 INNER JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID WHERE A1.AUTH_STATUS = 'A' AND C1.START_DT >= CONVERT(DATE,@p_FROM_DT, 103) AND C1.END_DT <= CONVERT(DATE, @p_TO_DT, 103) SELECT ROW_NUMBER() OVER (ORDER BY A.BUILDING_ID) AS STT, B.BRANCH_NAME AS BRANCH, '' AS KHAU_HAO_TRU_SO, ISNULL( STUFF(( SELECT ',' + CONVERT(VARCHAR,FLOOR_NO) FROM BUD_AREA_DT WHERE BUILD_ID = A.BUILDING_ID AND BUILDING_AREA_ID NOT IN (SELECT BUILDING_AREA_ID FROM @tmp) FOR XML PATH('') ),1,1,'') ,0) AS TANG_TRONG, A.TOTAL_AREA AS DT_TRONG, ( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) ) AS DT_DA_CHO_THUE, ( A.TOTAL_AREA - ( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) ) ) AS DT_CON_LAI, ( (SELECT ISNULL(SUM(TOTAL_AMT),0) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(TOTAL_AMT),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) ) / 1000000 AS THU_NHAP, ( (SELECT ISNULL(SUM(DIEN_TICH_CAN_SD),0) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) + (SELECT ISNULL(SUM(DIEN_TICH_CAN_CHOTHUE),0) FROM BUD_CONTRACT_CUST_DT WHERE CONTRACT_ID IN (SELECT CONTRACT_ID FROM @tmp) AND BUILD_ID = A.BUILDING_ID) ) / A.TOTAL_AREA AS TY_LE_THUC_HIEN FROM BUD_MASTER A LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID WHERE A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_CONTRACT_MASTER_BYID]' GO ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_BYID] @p_CONTRACT_ID varchar(15) = NULL, @p_VERSION_NO int =0 AS BEGIN SELECT A.*,B.AUTH_STATUS_NAME,C.BUILDING_ID,C.NUM_FLOOR, C.BUILDING_NAME,BR.BRANCH_NAME,LS.CUSTOMER_NAME, -----BAODNQ 30/12/2021: Lấy thêm cột full name---- D.TLFullName AS SIGN_USER_FULLNAME FROM BUD_CONTRACT_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = A.BRANCH_ID LEFT JOIN LS_CUSTOMER LS ON LS.CUSTOMER_ID = A.CUST_ID ----BAODNQ 30/12/2021: Kết thêm bảng TL_USER---- LEFT JOIN TL_USER D ON A.SIGN_USER = D.TLNANME WHERE 1 = 1 AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '') AND (A.VERSION_NO = @p_VERSION_NO) END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[rpt_BUD_UTILIZED_QUARTER_2_Excel]' GO CREATE PROC [dbo].[rpt_BUD_UTILIZED_QUARTER_2_Excel] @p_BUILDING_ID VARCHAR(15) = NULL, @p_YEAR VARCHAR(5) = NULL AS BEGIN DECLARE @p_BEGIN_QUARTER_1_DT DATE = CONVERT(DATE, '01/01/' + @p_YEAR, 103), @p_END_QUARTER_1_DT DATE = CONVERT(DATE, '31/03/' + @p_YEAR, 103), @p_BEGIN_QUARTER_2_DT DATE = CONVERT(DATE, '01/04/' + @p_YEAR, 103), @p_END_QUARTER_2_DT DATE = CONVERT(DATE, '30/06/' + @p_YEAR, 103), @p_BEGIN_QUARTER_3_DT DATE = CONVERT(DATE, '01/07/' + @p_YEAR, 103), @p_END_QUARTER_3_DT DATE = CONVERT(DATE, '30/09/' + @p_YEAR, 103), @p_BEGIN_QUARTER_4_DT DATE = CONVERT(DATE, '01/10/' + @p_YEAR, 103), @p_END_QUARTER_4_DT DATE = CONVERT(DATE, '30/12/' + @p_YEAR, 103), @p_BEGIN_YEAR_DT DATE = CONVERT(DATE, '01/01/' + @p_YEAR, 103), @p_END_YEAR_DT DATE = CONVERT(DATE, '30/12/' + @p_YEAR, 103) DECLARE @RENT_AREA_TABLE TABLE (CONTRACT_ID VARCHAR(15), FROM_DT DATE, TO_DT DATE, BUILDING_ID VARCHAR(15), BUILDING_AREA_ID VARCHAR(15), DT_DA_CHO_THUE DECIMAL(18,0)) INSERT INTO @RENT_AREA_TABLE SELECT A1.CONTRACT_ID, A1.INPUT_DT AS FROM_DT, A1.AMEND_DT AS TO_DT, A1.BUILDING_ID, B1.BUILDING_AREA_ID, ISNULL(B1.DIEN_TICH_CAN_SD,0) AS DT_DA_CHO_THUE FROM BUD_CONTRACT_MASTER A1 LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID WHERE A1.AUTH_STATUS = 'A' UNION ALL SELECT A1.CONTRACT_ID, C1.START_DT AS FROM_DT, C1.END_DT AS TO_DT, A1.BUILDING_ID, B1.BUILDING_AREA_ID, ISNULL(B1.DIEN_TICH_CAN_CHOTHUE,0) AS DT_DA_CHO_THUE FROM BUD_CONTRACT_CUST_MASTER A1 LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID WHERE A1.AUTH_STATUS = 'A' ---------Tổng DT trống--------- SELECT C.BRANCH_NAME, N'Tầng ' + CONVERT(VARCHAR, B.FLOOR_NO) AS FLOOR_NO, CONVERT(VARCHAR, CAST((B.FLOOR_AREA / 1000) AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_1, CONVERT(VARCHAR, CAST((B.FLOOR_AREA / 1000) AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_2, CONVERT(VARCHAR, CAST((B.FLOOR_AREA / 1000) AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_3, CONVERT(VARCHAR, CAST((B.FLOOR_AREA / 1000) AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_4, CONVERT(VARCHAR, CAST((B.FLOOR_AREA / 1000) AS DECIMAL(18,2))) + N' ngàn m2' AS ALL_YEAR FROM BUD_MASTER A LEFT JOIN BUD_AREA_DT B ON A.BUILDING_ID = B.BUILD_ID LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID WHERE A.BUILDING_ID = @p_BUILDING_ID ---------Tổng DT cho thuê được--------- SELECT C.BRANCH_NAME, N'Tầng ' + CONVERT(VARCHAR, B.FLOOR_NO) AS FLOOR_NO, CONVERT(VARCHAR, CAST(( --(SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_SD),0) --FROM BUD_CONTRACT_MASTER A1 --LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID --WHERE A1.INPUT_DT >= CONVERT(DATE,'01/01/2022',103) --AND A1.AMEND_DT <= CONVERT(DATE,'31/03/2022',103) --AND A1.AUTH_STATUS = 'A' --AND A1.BUILDING_ID = A.BUILDING_ID --AND B1.BUILDING_AREA_ID = B.BUILDING_AREA_ID) --+ --(SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_CHOTHUE),0) --FROM BUD_CONTRACT_CUST_MASTER A1 --LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID --LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID --WHERE C1.START_DT >= CONVERT(DATE,'01/01/2022',103) --AND C1.END_DT <= CONVERT(DATE,'31/03/2022',103) --AND A1.AUTH_STATUS = 'A' --AND A1.BUILDING_ID = A.BUILDING_ID --AND B1.BUILDING_AREA_ID = B.BUILDING_AREA_ID) SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_1_DT AND A1.TO_DT <= @p_END_QUARTER_1_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_1, CONVERT(VARCHAR,CAST(( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_2_DT AND A1.TO_DT <= @p_END_QUARTER_2_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_2, CONVERT(VARCHAR,CAST(( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_3_DT AND A1.TO_DT <= @p_END_QUARTER_3_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_3, CONVERT(VARCHAR,CAST(( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_4_DT AND A1.TO_DT <= @p_END_QUARTER_4_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_4, CONVERT(VARCHAR,CAST(( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_YEAR_DT AND A1.TO_DT <= @p_END_YEAR_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS ALL_YEAR FROM BUD_MASTER A LEFT JOIN BUD_AREA_DT B ON A.BUILDING_ID = B.BUILD_ID LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID WHERE A.BUILDING_ID = @p_BUILDING_ID ---------Tổng DT còn trống--------- SELECT C.BRANCH_NAME, N'Tầng ' + CONVERT(VARCHAR, B.FLOOR_NO) AS FLOOR_NO, CONVERT(VARCHAR,CAST(( B.FLOOR_AREA - --(SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_SD),0) --FROM BUD_CONTRACT_MASTER A1 --LEFT JOIN BUD_CONTRACT_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID --WHERE A1.INPUT_DT >= CONVERT(DATE,'01/01/2022',103) --AND A1.AMEND_DT <= CONVERT(DATE,'31/03/2022',103) --AND A1.AUTH_STATUS = 'A' --AND A1.BUILDING_ID = A.BUILDING_ID --AND B1.BUILDING_AREA_ID = B.BUILDING_AREA_ID) --+ --(SELECT ISNULL(SUM(B1.DIEN_TICH_CAN_CHOTHUE),0) --FROM BUD_CONTRACT_CUST_MASTER A1 --LEFT JOIN BUD_CONTRACT_CUST_DT B1 ON A1.CONTRACT_ID = B1.CONTRACT_ID --LEFT JOIN TR_CONTRACT C1 ON A1.TR_CONTRACT_ID = C1.CONTRACT_ID --WHERE C1.START_DT >= CONVERT(DATE,'01/01/2022',103) --AND C1.END_DT <= CONVERT(DATE,'31/03/2022',103) --AND A1.AUTH_STATUS = 'A' --AND A1.BUILDING_ID = A.BUILDING_ID --AND B1.BUILDING_AREA_ID = B.BUILDING_AREA_ID) ( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_1_DT AND A1.TO_DT <= @p_END_QUARTER_1_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_1, CONVERT(VARCHAR,CAST(( B.FLOOR_AREA - ( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_2_DT AND A1.TO_DT <= @p_END_QUARTER_2_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_2, CONVERT(VARCHAR,CAST(( B.FLOOR_AREA - ( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_3_DT AND A1.TO_DT <= @p_END_QUARTER_3_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_3, CONVERT(VARCHAR,CAST(( B.FLOOR_AREA - ( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_QUARTER_4_DT AND A1.TO_DT <= @p_END_QUARTER_4_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS TOTAL_QUARTER_4, CONVERT(VARCHAR,CAST(( B.FLOOR_AREA - ( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_YEAR_DT AND A1.TO_DT <= @p_END_YEAR_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) ) / 1000 AS DECIMAL(18,2))) + N' ngàn m2' AS ALL_YEAR FROM BUD_MASTER A LEFT JOIN BUD_AREA_DT B ON A.BUILDING_ID = B.BUILD_ID LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID WHERE A.BUILDING_ID = @p_BUILDING_ID ---------Tầng DT trống nhiều nhất--------- DECLARE @EMPTY_AREA_TABLE TABLE(REMAIN_AREA DECIMAL(18,0), BUILDING_ID VARCHAR(15), FLOOR_NO INT, BRANCH_NAME NVARCHAR(500)) INSERT INTO @EMPTY_AREA_TABLE SELECT ( B.FLOOR_AREA - ( SELECT ISNULL(SUM(A1.DT_DA_CHO_THUE),0) FROM @RENT_AREA_TABLE A1 WHERE A1.FROM_DT >= @p_BEGIN_YEAR_DT AND A1.TO_DT <= @p_END_YEAR_DT AND A1.BUILDING_ID = A.BUILDING_ID AND A1.BUILDING_AREA_ID = B.BUILDING_AREA_ID ) ) AS REMAIN_AREA, A.BUILDING_ID, B.FLOOR_NO, C.BRANCH_NAME FROM BUD_MASTER A LEFT JOIN BUD_AREA_DT B ON A.BUILDING_ID = B.BUILD_ID LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID WHERE A.BUILDING_ID = @p_BUILDING_ID DECLARE @p_MAX_EMPTY_AREA DECIMAL(18,0) SET @p_MAX_EMPTY_AREA = (SELECT MAX(REMAIN_AREA) FROM @EMPTY_AREA_TABLE) SELECT BRANCH_NAME, N'Tầng' + CONVERT(VARCHAR, FLOOR_NO) AS FLOOR_NO, CONVERT(VARCHAR,CAST((REMAIN_AREA / 1000) AS DECIMAL(18,2))) + N' ngàn m2' AS REMAIN_AREA FROM @EMPTY_AREA_TABLE WHERE REMAIN_AREA = @p_MAX_EMPTY_AREA END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_DEPARTMENT_Upd]' GO ALTER PROCEDURE [dbo].[CM_DEPARTMENT_Upd] @p_DEP_ID varchar(15) = null , @p_DEP_CODE varchar(15) = NULL , @p_DEP_NAME nvarchar(200) = NULL , @p_DAO_CODE varchar(40) = NULL , @p_DAO_NAME nvarchar(500) = NULL , @p_BRANCH_ID varchar(15) = NULL , @p_GROUP_ID varchar(15) = NULL , @p_TEL varchar(20) = NULL , @p_NOTES nvarchar(1000) = NULL , @p_RECORD_STATUS varchar(1) = NULL , @p_MAKER_ID varchar(12) = NULL , @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL , @p_CHECKER_ID varchar(12) = NULL , @p_APPROVE_DT VARCHAR(20) = NULL, @p_FATHER_ID VARCHAR(15) = NULL, @p_KHOI_ID VARCHAR(20)=NULL AS --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION UPDATE CM_DEPARTMENT SET [DEP_CODE] = @p_DEP_CODE,[DEP_NAME] = @p_DEP_NAME, [DAO_CODE] = @p_DAO_CODE,[DAO_NAME] = @p_DAO_NAME,[BRANCH_ID] = @p_BRANCH_ID,[GROUP_ID] = @p_GROUP_ID, [TEL] = @p_TEL,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[KHOI_ID]=@p_KHOI_ID, [MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS, [CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), [FATHER_ID] = @p_FATHER_ID WHERE DEP_ID= @p_DEP_ID IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @p_DEP_ID ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[RET_TAX_SCHEDULE_BYID]' GO create PROCEDURE [dbo].[RET_TAX_SCHEDULE_BYID] @RET_ID varchar(15) AS SELECT A.* FROM RET_TAX_SCHEDULE A WHERE A.RET_ID= @RET_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_MAPPING_CHUCDANH_ROLE_Search]' GO ALTER PROCEDURE [dbo].[CM_MAPPING_CHUCDANH_ROLE_Search] @p_MA_CHUC_DANH nvarchar(255)= NULL, @p_TEN_CHUC_DANH nvarchar(255) =NULL, @p_NHOM_CHUC_DANH nvarchar(255)= NULL, @p_ROLE_ID nvarchar(255)= NULL, @p_TOP INT = NULL AS BEGIN -- PAGING IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN --SELECT A.*, B.ROLE_DESC AS ROLE_NAME --FROM CM_MAPPING_CHUCDANH_ROLE A --LEFT JOIN TL_SYSROLE B ON A.ROLE_ID = B.ROLE_ID SELECT A.*,B.DisplayName as ROLE_NAME -- SELECT END FROM CM_MAPPING_CHUCDANH_ROLE A LEFT JOIN AbpRoles B ON A.ROLE_ID = B.Id --PHONGNT 07/01/2022 Hiển thị tên quyền WHERE 1 = 1 AND (A.MA_CHUC_DANH LIKE '%' + @p_MA_CHUC_DANH + '%' OR @p_MA_CHUC_DANH IS NULL OR @p_MA_CHUC_DANH = '') AND (A.TEN_CHUC_DANH LIKE '%' + @p_TEN_CHUC_DANH + '%' OR @p_TEN_CHUC_DANH IS NULL OR @p_TEN_CHUC_DANH = '') AND (A.NHOM_CHUC_DANH LIKE '%' + @p_NHOM_CHUC_DANH + '%' OR @p_NHOM_CHUC_DANH IS NULL OR @p_NHOM_CHUC_DANH = '') AND (A.ROLE_ID LIKE '%' + @p_ROLE_ID + '%' OR @p_ROLE_ID IS NULL OR @p_ROLE_ID = '') -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.DisplayName as ROLE_NAME -- SELECT END FROM CM_MAPPING_CHUCDANH_ROLE A LEFT JOIN AbpRoles B ON A.ROLE_ID = B.Id --PHONGNT 07/01/2022 Hiển thị tên quyền WHERE 1 = 1 AND (A.MA_CHUC_DANH LIKE '%' + @p_MA_CHUC_DANH + '%' OR @p_MA_CHUC_DANH IS NULL OR @p_MA_CHUC_DANH = '') AND (A.TEN_CHUC_DANH LIKE '%' + @p_TEN_CHUC_DANH + '%' OR @p_TEN_CHUC_DANH IS NULL OR @p_TEN_CHUC_DANH = '') AND (A.NHOM_CHUC_DANH LIKE '%' + @p_NHOM_CHUC_DANH + '%' OR @p_NHOM_CHUC_DANH IS NULL OR @p_NHOM_CHUC_DANH = '') AND (A.ROLE_ID LIKE '%' + @p_ROLE_ID + '%' OR @p_ROLE_ID IS NULL OR @p_ROLE_ID = '') -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[RET_REPAIR_SUGGEST_BYID]' GO create PROCEDURE [dbo].[RET_REPAIR_SUGGEST_BYID] @RET_ID varchar(15) AS SELECT A.* FROM RET_REPAIR_SUGGEST A WHERE A.RET_ID= @RET_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_KT_Upd]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_KT_Upd] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(20)= 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_REQ_PAY_TYPE varchar(15) = NULL, @p_REQ_TYPE_CURRENCY nvarchar(50) = NULL, @p_REQ_AMT decimal(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25)= null, @p_CONFIRM_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_PAY_PHASE VARCHAR(15) = NULL, @p_IS_SEND_APPR VARCHAR(15) = NULL, @p_XMP_TEMP_DATA_ENTRIES XML = NULL, @p_XMP_TEMP_INVOICE XML = NULL, @p_XMP_TEMP_VAT_INVOICE XML = NULL AS --Validation is here IF ((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) ='R') BEGIN SELECT '-1' Result,'' REQ_PAY_ID,N'Phiếu đề nghị thanh toán đang được trả về đơn vị. Vui lòng chờ đơn vị cập nhật thông tin và duyệt lại!' ErrorDesc RETURN '-1' END DECLARE @ENTRY_PAIR varchar(20),@DR_CR varchar(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT decimal(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0), @BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC nvarchar(255),@GL_CODE VARCHAR(100), @BRANCH_CODE VARCHAR(15), @DEP_CODE VARCHAR(15) DECLARE @VAT decimal(18, 0) =NULL, @TRANS_NO nvarchar(50)=NULL, @TRANS_DT VARCHAR(20)=NULL,@INVOICE_SIGN nvarchar(50) = NULL,@INVOICE_NO_SIGN nvarchar(50)=null, @INVOICE_NO nvarchar(50) = NULL,@INVOICE_DT VARCHAR(20) = NULL,@SELLER nvarchar(250) = NULL,@TAX_NO nvarchar(15) = NULL,@GOODS_NAME nvarchar(250) = NULL, @PRICE decimal(18, 0) = NULL,@TAX decimal(18, 0) = NULL,@NOTES NVARCHAR(MAX) = NULL,@VAT_RATE decimal(18,2), @ACC_NO VARCHAR(25),@ACC_NAME NVARCHAR(250),@ISSUED_BY NVARCHAR(250),@ISSUED_DT VARCHAR(20),@RATE DECIMAL(18,2),@PRICE_KT DECIMAL(18,2) =0,@TOTAL_AMT_KT DECIMAL(18,2) =0,@VAT_KT DECIMAL(18,2) =0, @TYPE_VAT VARCHAR(15),@TYPE_FUNC VARCHAR(15) DECLARE @hdoc INT; DECLARE @hdocInvoice INT; DECLARE @hdocVATInvoice INT; EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP_DATA_ENTRIES; EXEC sp_xml_preparedocument @hdocInvoice OUTPUT, @p_XMP_TEMP_INVOICE; EXEC sp_xml_preparedocument @hdocVATInvoice OUTPUT, @p_XMP_TEMP_VAT_INVOICE; -- hach toan DECLARE XmlDataEntries CURSOR FOR SELECT * FROM OPENXML(@hdoc, '/Root/XmlDataEntries', 2) WITH(ENTRY_PAIR varchar(20),DR_CR varchar(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT decimal(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0), BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC nvarchar(1000),GL_CODE VARCHAR(100)) OPEN XmlDataEntries; --hoa don khong co VAT DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdocInvoice, '/Root/XmlData', 2) WITH(TRANS_NO nvarchar(50),TRANS_DT VARCHAR(20),INVOICE_SIGN nvarchar(50),INVOICE_NO_SIGN nvarchar(50), INVOICE_NO nvarchar(50),INVOICE_DT VARCHAR(20) ,SELLER nvarchar(250),TAX_NO nvarchar(15),GOODS_NAME nvarchar(250) , PRICE decimal(18,2),TAX decimal(18, 2),VAT decimal(18,2),NOTE NVARCHAR(MAX),VAT_RATE decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),PRICE_KT DECIMAL(18,2),VAT_KT DECIMAL(18,2),TOTAL_AMT_KT DECIMAL(18,2),TYPE_VAT VARCHAR(15), TYPE_FUNC VARCHAR(15)) OPEN XmlData; -- hoa don co VAT DECLARE XmlVATInvoice CURSOR FOR SELECT * FROM OPENXML(@hdocVATInvoice, '/Root/XmlVATInvoice', 2) WITH(TRANS_NO nvarchar(50),TRANS_DT VARCHAR(20),INVOICE_SIGN nvarchar(50),INVOICE_NO_SIGN nvarchar(50), INVOICE_NO nvarchar(50),INVOICE_DT VARCHAR(20) ,SELLER nvarchar(250),TAX_NO nvarchar(15),GOODS_NAME nvarchar(250) , PRICE decimal(18,2),TAX decimal(18, 2),VAT decimal(18,2),NOTE NVARCHAR(MAX),VAT_RATE decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),PRICE_KT DECIMAL(18,2),VAT_KT DECIMAL(18,2),TOTAL_AMT_KT DECIMAL(18,2),TYPE_VAT VARCHAR(15), TYPE_FUNC VARCHAR(15)) OPEN XmlVATInvoice; DECLARE @INDEX INT =0, @INDEX_IV INT =0, @INDEX_VAT INT =0 BEGIN TRANSACTION -- KHAI BAO CAC BUOC DUYET- XAC NHAN DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT AND STATUS_JOB='C') SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1 ---- --IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID AND MAKER_ID_KT IS NULL)) IF(@p_XMP_TEMP_DATA_ENTRIES IS NOT NULL) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='U', CREATE_DT_KT = GETDATE(),MAKER_ID_KT =@p_MAKER_ID_KT,CHECKER_ID_KT=NULL,APPROVE_DT_KT = NULL, CONFIRM_NOTE=@p_CONFIRM_NOTE WHERE REQ_PAY_ID =@p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID IF @@Error <> 0 GOTO ABORT DECLARE @DR_CR_NAME NVARCHAR(50),@ACC_NAME_FN NVARCHAR(500) FETCH NEXT FROM XmlDataEntries INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE WHILE @@fetch_status=0 BEGIN SET @INDEX = @INDEX +1 SET @GL_CODE = RIGHT(@GL_CODE,9) SET @ACC_NAME =UPPER(dbo.fChuyenCoDauThanhKhongDau(@ACCT_NAME)) IF(@DR_CR='D') BEGIN SET @DR_CR_NAME =N'Nợ' END ELSE BEGIN SET @DR_CR_NAME =N'Có' END SET @BRANCH_CODE =(SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_ID) SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_ID) --SET @ACC_NAME_FN =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@ACCT) IF(@ACCT_NAME IS NULL OR @ACCT_NAME ='' OR @ACC_NAME ='0') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tên tài khoản hạch toán chưa đúng. Vui lòng bấm vào nút Check GL & Check CASA để đồng bộ tài khoản từ Core' ErrorDesc RETURN '-1' END IF(@GL_CODE IS NULL OR @GL_CODE ='') BEGIN IF (LEN(@ACCT) >9 AND ((SELECT ISNULL(TK_GL,'') FROM CM_ACCOUNT WHERE ACC_NO =@ACCT) ='' OR (SELECT ISNULL(TK_GL_NAME,'') FROM CM_ACCOUNT WHERE ACC_NO =@ACCT) ='')) BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản CASA chưa có thông tin GL Mapping. Vui lòng bấm vào nút Kiểm tra tài khoản để đồng bộ tài khoản từ Core' ErrorDesc RETURN '-1' END END IF(@DR_CR IS NULL OR @DR_CR ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản nợ không được phép để trống' ErrorDesc RETURN '-1' END IF(@BRANCH_ID IS NULL OR @BRANCH_ID ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Đơn vị nhận không được phép để trống' ErrorDesc RETURN '-1' END IF(@ACCT IS NULL OR @ACCT ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản có không được phép để trống' ErrorDesc RETURN '-1' END IF(@ACCT IS NOT NULL AND @ACCT <> '' AND LEFT(@ACCT,1) IN ('7','8') AND (@DEP_ID IS NULL OR @DEP_ID ='')) BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản hạch toán đầu số 7 & 8 vui lòng chọn mã phòng ban' ErrorDesc RETURN '-1' END IF(@TRN_DESC IS NULL OR @TRN_DESC ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Diễn giải hạch toán không được phép để trống' ErrorDesc RETURN '-1' END -- NEU HACH TOAN CASA THI 3 KI TU DAU PHAI KHOP VOI BRANCH CODE CUA DON VI CHIU CHI PHI IF(LEN(@ACCT) >9 AND (SUBSTRING(@ACCT,1,3) <> (SELECT ISNULL(BRANCH_CODE,'') FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID))) BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N'Nếu bạn đang hạch toán CASA trong hệ thống. Vui lòng chọn mã đơn vị khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc RETURN '-1' --- END --IF(@DEP_ID IS NOT NULL AND @DEP_ID <> '' AND NOT EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_ID AND BRANCH_ID =@BRANCH_ID)) --BEGIN --ROLLBACK TRANSACTION -- --CLOSE XmlDataEntries; -- --DEALLOCATE XmlDataEntries; -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Vui lòng chọn mã phòng ban khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc -- RETURN '-1' -- --- --END IF(@DEP_ID IS NOT NULL AND @DEP_ID <> '' AND (LEFT(@DEP_CODE,3) <> @BRANCH_CODE)) BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Vui lòng chọn mã phòng ban khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc RETURN '-1' --- END --IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ISNULL(TAX,0) >0 AND ISNULL(VAT,0) >0 AND TYPE_FUNC ='KT')) --BEGIN -- IF(@ACCT ='353200002' OR @ACCT ='353200001') -- BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N'Bạn không được phép hạch toán tài khoản 353200002,353200001 giao dịch không chứa các hóa đơn có VAT do kế toán lưu trữ ' ErrorDesc -- RETURN '-1' -- END --END select * from TR_REQ_PAY_ENTRIES DECLARE @p_ET_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @p_ET_ID OUT; IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_ENTRIES (REQ_PAY_DT_ID,REQ_PAY_ID,ENTRY_PAIR,DR_CR,DR_CR_NAME,ACCT,ACCT_NAME,AMT,CURRENCY,EXC_RATE,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT) VALUES (@p_ET_ID,@p_REQ_PAY_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(),@p_MAKER_ID_KT) -- NEU CHUA CO TAI KHOAN THI THEM VO CM_ACCOUNT IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT)) BEGIN INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID,CREATE_DT) VALUES (@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin',GETDATE()) END ELSE BEGIN IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '') BEGIN UPDATE CM_ACCOUNT SET ACC_NAME =@ACC_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE) WHERE ACC_NO=@ACCT END --UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE), CREATE_DT = GETDATE() --WHERE ACC_NO=@ACCT END IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataEntries INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE END; CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; -- UPDATE INVOICE --Insert XmlDataEntries -- CAP NHAT TAI KHOAN GL UPDATE CM_ACCOUNT SET TK_GL ='361200001', TK_GL_NAME =(SELECT ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO ='361200001') WHERE LEN (ACC_NO) >9 AND ISNULL(TK_GL,'') ='' AND SUBSTRING(ACC_NO,4,4) ='7048' UPDATE CM_ACCOUNT SET TK_GL ='519200002', TK_GL_NAME =(SELECT ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO ='519200002') WHERE LEN (ACC_NO) >9 AND ISNULL(TK_GL,'') ='' AND SUBSTRING(ACC_NO,4,4) ='7044' AND SUBSTRING(ACC_NO,12,2) ='19' UPDATE CM_ACCOUNT SET TK_GL ='421100001', TK_GL_NAME =(SELECT ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO ='421100001') WHERE LEN (ACC_NO) >9 AND ISNULL(TK_GL,'') ='' AND SUBSTRING(ACC_NO,4,4) ='7041' --UPDATE TR_REQ_PAY_ENTRIES SET ACCT_NAME = UPPER(dbo.fChuyenCoDauThanhKhongDau(ACCT_NAME)) WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM PAY_ENTRIES_POST WHERE ISNULL(REF_NO,'') ='') -- CAP NHAT TAI KHOAN GL FETCH NEXT FROM XmlData INTO @TRANS_NO , @TRANS_DT ,@INVOICE_SIGN ,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER , @TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC WHILE @@fetch_status=0 BEGIN SET @INDEX_IV = @INDEX_IV+1 IF(LEN(@INVOICE_NO) >7) BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' không được lớn hơn 7 kí tự' ErrorDesc RETURN '-1' END IF(LEN(@INVOICE_NO) <7) BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' phải đủ 7 kí tự' ErrorDesc RETURN '-1' END IF(@TYPE_FUNC ='HC') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND TYPE_FUNC ='HC' AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS NOT IN ('E','D') AND MAKER_ID NOT IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='DISABLE' OR AUTH_STATUS ='U')))) BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID,N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END END IF(@TYPE_FUNC ='KT') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND TYPE_FUNC ='KT' AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS NOT IN ('E','D') AND MAKER_ID NOT IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='DISABLE' OR AUTH_STATUS ='U')))) BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID,N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END END DECLARE @p_REQ_INV_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_INVOICE', @p_REQ_INV_ID OUT; IF @p_REQ_INV_ID='' OR @p_REQ_INV_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_INVOICE(REQ_PAYDT_ID,REQ_PAY_ID,TRANS_NO,TRANS_DT,INVOICE_SIGN,INVOICE_NO,INVOICE_DT,SELLER,TAX_NO,GOODS_NAME,PRICE,TAX,VAT,NOTE, MAKER_ID,CREATE_DT,EDITOR_ID,AUTH_STATUS,CHECKER_ID,APPROVE_DT, CREATE_DT_KT,MAKER_ID_KT,AUTH_STATUS_KT,CHECKER_ID_KT,APPROVE_DT_KT,RECORD_STATUS,INVOICE_NO_SIGN,VAT_RATE,CURRENCY,RATE,PRICE_KT ,VAT_KT,TOTAL_AMT_KT,TYPE_VAT,TYPE_FUNC) VALUES (@p_REQ_INV_ID,@p_REQ_PAY_ID , @TRANS_NO , CONVERT(DATE,@TRANS_DT,103) ,@INVOICE_SIGN ,@INVOICE_NO ,CONVERT(DATE,@INVOICE_DT,103) ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES, @p_MAKER_ID,GETDATE(),NULL,'U',NULL,NULL,GETDATE(),@p_MAKER_ID_KT,'U',NULL,NULL,'1',@INVOICE_NO_SIGN,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlData INTO @TRANS_NO , @TRANS_DT,@INVOICE_SIGN,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE , @TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC END; CLOSE XmlData; DEALLOCATE XmlData; -- CAP NHAT HOA DON CO VAT FETCH NEXT FROM XmlVATInvoice INTO @TRANS_NO , @TRANS_DT ,@INVOICE_SIGN ,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER , @TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC WHILE @@fetch_status=0 BEGIN SET @INDEX_VAT = @INDEX_VAT+1 IF(LEN(@INVOICE_NO) >7) BEGIN ROLLBACK TRANSACTION CLOSE XmlVATInvoice; DEALLOCATE XmlVATInvoice; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_VAT)+N': Số hóa đơn '+ @INVOICE_NO +N' không được lớn hơn 7 kí tự' ErrorDesc RETURN '-1' END IF(LEN(@INVOICE_NO) <7) BEGIN ROLLBACK TRANSACTION CLOSE XmlVATInvoice; DEALLOCATE XmlVATInvoice; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_VAT)+N': Số hóa đơn '+ @INVOICE_NO +N' phải đủ 7 kí tự' ErrorDesc RETURN '-1' END IF(@TYPE_FUNC ='HC') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND TYPE_FUNC ='HC' AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS NOT IN ('E','D') AND MAKER_ID NOT IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='DISABLE' OR AUTH_STATUS ='U')))) BEGIN ROLLBACK TRANSACTION CLOSE XmlVATInvoice; DEALLOCATE XmlVATInvoice; SELECT '-1' as Result, '' REQ_PAY_ID,N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_VAT)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END END IF(@TYPE_FUNC ='KT') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND TYPE_FUNC ='KT' AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS NOT IN ('E','D') AND MAKER_ID NOT IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='DISABLE' OR AUTH_STATUS ='U')))) BEGIN ROLLBACK TRANSACTION CLOSE XmlVATInvoice; DEALLOCATE XmlVATInvoice; SELECT '-1' as Result, '' REQ_PAY_ID,N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_VAT)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END END DECLARE @p_REQ_INV_VAT_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_INVOICE', @p_REQ_INV_VAT_ID OUT; IF @p_REQ_INV_VAT_ID='' OR @p_REQ_INV_VAT_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_INVOICE(REQ_PAYDT_ID,REQ_PAY_ID,TRANS_NO,TRANS_DT,INVOICE_SIGN,INVOICE_NO,INVOICE_DT,SELLER,TAX_NO,GOODS_NAME,PRICE,TAX,VAT,NOTE, MAKER_ID,CREATE_DT,EDITOR_ID,AUTH_STATUS,CHECKER_ID,APPROVE_DT, CREATE_DT_KT,MAKER_ID_KT,AUTH_STATUS_KT,CHECKER_ID_KT,APPROVE_DT_KT,RECORD_STATUS,INVOICE_NO_SIGN,VAT_RATE,CURRENCY,RATE,PRICE_KT ,VAT_KT,TOTAL_AMT_KT,TYPE_VAT,TYPE_FUNC) VALUES (@p_REQ_INV_VAT_ID,@p_REQ_PAY_ID , @TRANS_NO , CONVERT(DATE,@TRANS_DT,103) ,@INVOICE_SIGN ,@INVOICE_NO ,CONVERT(DATE,@INVOICE_DT,103) ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES, @p_MAKER_ID,GETDATE(),NULL,'U',NULL,NULL,GETDATE(),@p_MAKER_ID_KT,'U',NULL,NULL,'1',@INVOICE_NO_SIGN,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,'KT') IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlVATInvoice INTO @TRANS_NO , @TRANS_DT,@INVOICE_SIGN,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE , @TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC END; CLOSE XmlVATInvoice; DEALLOCATE XmlVATInvoice; --- Luu log chinh sua select * from TR_REQ_PAY_INVOICE INSERT INTO TR_REQ_PAY_INVOICE_LOG SELECT * FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID ----- --- BAT DAU CAP NHAT XAC DINH CAC BUOC DUYET SAU KHI KE TOAN CAP NHAT THONG TIN END COMMIT TRANSACTION IF(@p_IS_SEND_APPR = 'Y') BEGIN ---BAT DAU VALIDATE DECLARE @REQ_PAY_ID varchar(15), @ET_ID varchar(15), @AMT_ET DECIMAL(18,0), @ACC_ET varchar(25), @DRCR_ET varchar(25), @SUM_ET DECIMAL(18,0) =0 DECLARE cursorProduct CURSOR LOCAL FOR SELECT REQ_PAY_ID,ENTRY_PAIR,AMT,ACCT,DR_CR FROM TR_REQ_PAY_ENTRIES A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID Open cursorProduct FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID , @ET_ID, @AMT_ET, @ACC_ET , @DRCR_ET WHILE @@FETCH_STATUS = 0 BEGIN IF(@DRCR_ET='C' AND EXISTS(SELECT * FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ACC_NO =@ACC_ET)) BEGIN SET @SUM_ET =(SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C' AND ACCT =@ACC_ET) IF(ISNULL(@SUM_ET,0) <> (SELECT SUM(TOTAL_AMT) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ACC_NO =@ACC_ET)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N' Số tiền hạch toán có của tài khoản: '+@ACC_ET + N' phải bằng với số tiền trên phương thức thanh toán của tài khoản đó là: '+FORMAT((SELECT ISNULL(SUM(TOTAL_AMT),0) FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACC_ET AND REQ_PAY_ID =@p_REQ_PAY_ID),'#,###') ErrorDesc RETURN '-1' END END -- KIEM TRA SO TIEN NO CO IF (ISNULL((SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C' AND ENTRY_PAIR =@ET_ID),0) <> ISNULL((SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='D' AND ENTRY_PAIR =@ET_ID),0) ) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Mã bút toán: ' + @ET_ID + N' Số tiền bút toán Nợ phải bằng với số tiền bút toán Có' ErrorDesc RETURN '-1' END FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID , @ET_ID, @AMT_ET, @ACC_ET , @DRCR_ET END -- KET THUC VIEC VALIDATE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'S')) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đang được được đề xuất từ chối! Vui lòng đợi KSV xử lý phiếu' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'P')) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt thành công trước đó! Vui lòng đợi KSV xử lý phiếu' ErrorDesc RETURN '-1' END -- CHAN NEU CHI CO 1 BUT NO 1 BUT CO THI KHONG DUOC DI TIEP IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN DECLARE @SUM_CR DECIMAL(18,2), @SUM_DR DECIMAL(18,2) SET @SUM_CR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C'),0) SET @SUM_DR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='D'),0) IF(@SUM_CR <> @SUM_DR) BEGIN --ROLLBACK TRANSACTION --CLOSE XmlDataEntries; --DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng hạch toán nợ phải bằng tổng hạch toán có' ErrorDesc RETURN '-1' END END UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV) -- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT='P',CREATE_DT_KT = GETDATE() WHERE REQ_PAY_ID=@p_REQ_PAY_ID INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID_KT,GETDATE(), N'Giao dịch viên gửi phê duyệt',N'Giao dịch viên cập nhật thông tin') SELECT '4' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được gửi phê duyệt thành công! Vui lòng đợi kiểm soát viên phê duyệt phiếu' ErrorDesc RETURN '4' END SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; CLOSE XmlData; DEALLOCATE XmlData; CLOSE XmlVATInvoice; DEALLOCATE XmlVATInvoice; SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[RET_REPAIR_REAL_BYID]' GO create PROCEDURE [dbo].[RET_REPAIR_REAL_BYID] @RET_ID varchar(15) AS SELECT A.* FROM RET_REPAIR_REAL A WHERE A.RET_ID= @RET_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[ADVANCE_CODE_GenKey]' GO /* DECLARE @l_REQ_ID VARCHAR(15) --EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC', @l_REQ_ID out exec [ADVANCE_CODE_GenKey] 'TR_REQ_ADVANCE_PAYMENT', '','d', @l_REQ_ID out SELECT @l_REQ_ID */ CREATE PROCEDURE [dbo].[ADVANCE_CODE_GenKey] @p_TYPE_ID varchar(50), @p_YEAR varchar(50), @p_DEFAULT VARCHAR(100), @p_KeyGen nvarchar(100) OUT AS DECLARE @REQTYPE VARCHAR(15); SELECT @REQTYPE =( CASE WHEN @p_DEFAULT = 'I' THEN 'NBO' WHEN @p_DEFAULT = 'P'THEN 'NCC' WHEN @p_DEFAULT = 'D' THEN 'XLN' ELSE 'NO' END); DECLARE @CurValue AS Numeric DECLARE @CODE_YEAR VARCHAR(50) = @REQTYPE + '.'+ CONVERT(VARCHAR,YEAR(GETDATE())) BEGIN TRANSACTION IF NOT EXISTS(SELECT 1 FROM TR_CODE_GEN WHERE CODE_TYPE = @p_TYPE_ID AND CUR_YEAR = @CODE_YEAR) BEGIN INSERT TR_CODE_GEN ( CODE_TYPE, CUR_YEAR, CUR_VALUE )VALUES( @p_TYPE_ID, @CODE_YEAR, 1 ) IF @@ERROR <> 0 GOTO ABORT SET @CurValue = 1 END ELSE BEGIN IF EXISTS(SELECT 1 FROM TR_CODE_GEN WHERE CODE_TYPE = @p_TYPE_ID AND CUR_YEAR = @CODE_YEAR) UPDATE TR_CODE_GEN SET CUR_VALUE =CUR_VALUE + 1 WHERE CODE_TYPE = @p_TYPE_ID AND CUR_YEAR = @CODE_YEAR IF @@ERROR <> 0 GOTO ABORT SELECT @CurValue = CUR_VALUE FROM TR_CODE_GEN WHERE CODE_TYPE = @p_TYPE_ID AND CUR_YEAR = @CODE_YEAR END SET @p_KeyGen = @CODE_YEAR+'.'+right('00000000' + convert(varchar(20),@CurValue), 6) IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SET @p_KeyGen = '' RETURN -1 END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_DOC_ById_Report]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_ById_Report] @P_REQ_ID varchar(15) AS DECLARE @STEP_KT_PROCESS_ID VARCHAR(1) SET @STEP_KT_PROCESS_ID= (SELECT MAX(ID) FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='KT') DECLARE @listTRADE TABLE ( GOODS_ID VARCHAR(20), TRADE_ID VARCHAR(20), PLAN_ID VARCHAR(20), AMT_APP DECIMAL(18,2), AMT_EXE DECIMAL (18,2), AMT_ETM DECIMAL (18,2), AMT_TF DECIMAL (18,2), AMT_RECEIVE_TF DECIMAL (18,2) ) IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID='APPROVE')) BEGIN IF(EXISTS(SELECT * FROM dbo.PL_TRADEDETAIL_HIST WHERE REQ_ID=@P_REQ_ID)) BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF) SELECT GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF FROM dbo.PL_TRADEDETAIL_HIST WHERE REQ_ID=@P_REQ_ID END ELSE BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF) SELECT PT.GOODS_ID,PT.TRADE_ID,PT.PLAN_ID,PT.AMT_APP,PT.AMT_EXE,PT.AMT_ETM-PLDT.TOTAL_AMT,PT.AMT_TF-PLFT.TOTAL_AMT,PT.AMT_RECEIVE_TF-PLTT.TOTAL_AMT FROM dbo.PL_TRADEDETAIL PT LEFT JOIN ( SELECT TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID GROUP BY TRADE_ID ) PLDT ON PLDT.TRADE_ID = PT.TRADE_ID LEFT JOIN ( SELECT FR_TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID GROUP BY FR_TRADE_ID ) PLFT ON PLFT.FR_TRADE_ID = PT.TRADE_ID LEFT JOIN ( SELECT TO_TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID GROUP BY TO_TRADE_ID ) PLTT ON PLTT.TO_TRADE_ID = PT.TRADE_ID WHERE (PT.TRADE_ID IN (SELECT TRADE_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID) OR PT.TRADE_ID IN (SELECT FR_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)) END END ELSE BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF) SELECT GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF FROM dbo.PL_TRADEDETAIL WHERE (TRADE_ID IN (SELECT TRADE_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID) OR TRADE_ID IN (SELECT FR_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)) END DECLARE @DV_QLNS NVARCHAR(1000) DECLARE @TB_DV TABLE ( ID INT IDENTITY NOT NULL PRIMARY KEY,DV_QL_NS NVARCHAR(1000)) INSERT INTO @TB_DV SELECT B.TLFullName +N' chấp thuận '+ ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') AS TEN_DVCM FROM PL_REQUEST_PROCESS A INNER JOIN TL_USER B ON A.CHECKER_ID = B.TLNANME WHERE REQ_ID =@P_REQ_ID AND A.PROCESS_ID ='DVCM' SET @DV_QLNS = (SELECT DV_QL_NS FROM @TB_DV WHERE ID =1) + ISNULL(' , ' + (SELECT DV_QL_NS FROM @TB_DV WHERE ID =2) ,'')+ ISNULL( ', '+ (SELECT DV_QL_NS FROM @TB_DV WHERE ID =3),'') + ISNULL(', '+ (SELECT DV_QL_NS FROM @TB_DV WHERE ID =4),'') DECLARE @TABLE1 TABLE ( STT INT, GD_NAME NVARCHAR(200), AMT_APP DECIMAL(18, 2), AMT_EXE DECIMAL(18, 2), AMT_REMAIN DECIMAL(18, 2), TOTAL_AMT DECIMAL(18, 2), TOTAL_AMT_FN DECIMAL(18, 2), CHECKER_NAME NVARCHAR(200), XN_NAME VARCHAR(15) ) INSERT INTO @TABLE1(STT,GD_NAME,AMT_APP,AMT_EXE,AMT_REMAIN,TOTAL_AMT,TOTAL_AMT_FN,CHECKER_NAME,XN_NAME) SELECT ROW_NUMBER() OVER (ORDER BY CG.GD_NAME) AS STT ,CG.GD_NAME, ISNULL(PT.AMT_APP,0) + ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) AS AMT_APP, ISNULL(PT.AMT_ETM,0) AS AMT_EXE, ISNULL(PT.AMT_APP,0) + ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0) AS AMT_REMAIN, SUM(ISNULL(PLDT.TOTAL_AMT,0)) AS TOTAL_AMT, ISNULL(PT.AMT_APP,0) + ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) -ISNULL(PT.AMT_ETM,0) -SUM(ISNULL(PLDT.TOTAL_AMT,0)) AS TOTAL_AMT_FN, CASE WHEN PL.PROCESS_ID='APPROVE' THEN USC.TLFullName ELSE N'' END AS CHECKER_NAME, '' AS XN_NAME FROM dbo.PL_REQUEST_DOC_DT PLDT LEFT JOIN @listTRADE PT ON PT.TRADE_ID=PLDT.TRADE_ID LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PLDT.PLAN_ID LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=PLDT.GOODS_ID LEFT JOIN dbo.TL_USER USC ON USC.TLNANME=PLDT.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_DOC PL ON PL.REQ_ID=PLDT.REQ_ID WHERE PLDT.REQ_ID=@P_REQ_ID GROUP BY PT.GOODS_ID,PT.AMT_APP,PT.AMT_ETM,PT.AMT_RECEIVE_TF,PT.AMT_TF,CG.GD_NAME,PLDT.REQ_ID,USC.TLFullName,PL.PROCESS_ID DECLARE @TABLE TABLE ( FR_AMT_APP DECIMAL(18,2), FR_AMT_REMAIN DECIMAL(18,2), TO_AMT_APP DECIMAL(18,2), TO_AMT_EXE DECIMAL(18,2), TO_AMT_REMAIN DECIMAL(18,2), TOTAL_AMT DECIMAL(18,2), FR_AMT_APP_FINAL DECIMAL(18,2), FR_AMT_REMAIN_FINAL DECIMAL(18,2), TO_AMT_APP_FINAL DECIMAL(18,2), TOTAL_AMT_SIGN DECIMAL(18,2), TOTAL_AMT_SIGN_FN DECIMAL(18,2) ) INSERT INTO @TABLE(FR_AMT_APP,FR_AMT_REMAIN, TO_AMT_APP,TO_AMT_EXE, TO_AMT_REMAIN, TOTAL_AMT, FR_AMT_APP_FINAL,FR_AMT_REMAIN_FINAL,TO_AMT_APP_FINAL, TOTAL_AMT_SIGN,TOTAL_AMT_SIGN_FN) SELECT ISNULL(PTF.AMT_APP,0) + ISNULL(PTF.AMT_RECEIVE_TF,0) - ISNULL(PTF.AMT_TF,0) AS FR_AMT_APP, ISNULL(PTF.AMT_APP,0) + ISNULL(PTF.AMT_RECEIVE_TF,0) - ISNULL(PTF.AMT_TF,0)-ISNULL(PTF.AMT_ETM,0) AS FR_AMT_REMAIN, ISNULL(PTT.AMT_APP,0) + ISNULL(PTT.AMT_RECEIVE_TF,0) - ISNULL(PTT.AMT_TF,0) AS TO_AMT_APP, ISNULL(PTT.AMT_ETM,0) AS TO_AMT_EXE, ISNULL(PTT.AMT_APP,0) + ISNULL(PTT.AMT_RECEIVE_TF,0) - ISNULL(PTT.AMT_TF,0) -ISNULL(PTT.AMT_ETM,0) AS TO_AMT_REMAIN, ISNULL(PLTF.TOTAL_AMT,0) AS TOTAL_AMT, ISNULL(PTF.AMT_APP, 0) + ISNULL(PTF.AMT_RECEIVE_TF,0) - ISNULL(PTF.AMT_TF,0) - ISNULL((SELECT SUM(T.TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER T WHERE T.FR_TRADE_ID=PLTF.FR_TRADE_ID AND T.REQ_DOC_ID=PLTF.REQ_DOC_ID), 0) AS FR_AMT_APP_FINAL, ISNULL(PTF.AMT_APP,0) + ISNULL(PTF.AMT_RECEIVE_TF,0) - ISNULL(PTF.AMT_TF,0)-ISNULL(PTF.AMT_ETM,0) - ISNULL((SELECT SUM(T.TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER T WHERE T.FR_TRADE_ID=PLTF.FR_TRADE_ID AND T.REQ_DOC_ID=PLTF.REQ_DOC_ID), 0) AS FR_AMT_REMAIN_FINAL, CASE WHEN ISNULL(PLTF.TO_TRADE_ID,'') <> '' THEN ISNULL(PTT.AMT_APP,0) + ISNULL(PTT.AMT_RECEIVE_TF,0) - ISNULL(PTT.AMT_TF,0) - ISNULL(PTT.AMT_ETM,0) + ISNULL((SELECT SUM(T.TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER T WHERE T.TO_TRADE_ID=PLTF.TO_TRADE_ID AND T.REQ_DOC_ID=PLTF.REQ_DOC_ID), 0) ELSE ISNULL(PLTF.TOTAL_AMT, 0) END AS TO_AMT_APP_FINAL, CASE WHEN ISNULL(PLTF.TO_TRADE_ID,'') <> '' THEN ISNULL(PLDT.TOTAL_AMT, 0) ELSE PLDT.TOTAL_AMT END AS TOTAL_AMT_SIGN, -- Số tiền trình sử dụng -- LUCTV 23042021 BO SUNG NEU DIEU CHUYEN NGOAI KE HOACH (KHONG CO TRADE ID THI SO TIEN CON LAI SAU KHI TRINH LUON =0) CASE WHEN ISNULL(PLTF.TO_TRADE_ID,'') <> '' THEN ISNULL(PTT.AMT_APP,0) + ISNULL(PTT.AMT_RECEIVE_TF,0) - ISNULL(PTT.AMT_TF,0) -ISNULL(PTT.AMT_ETM,0) + ISNULL((SELECT SUM(T.TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER T WHERE T.TO_TRADE_ID=PLTF.TO_TRADE_ID AND T.REQ_DOC_ID=PLTF.REQ_DOC_ID), 0) - PLDT.TOTAL_AMT ELSE 0 END AS TOTAL_AMT_SIGN_FN FROM dbo.PL_REQUEST_TRANSFER PLTF LEFT JOIN @listTRADE PTF ON PTF.TRADE_ID=PLTF.FR_TRADE_ID LEFT JOIN @listTRADE PTT ON PTT.TRADE_ID=PLTF.TO_TRADE_ID LEFT JOIN dbo.CM_GOODS CGF ON CGF.GD_ID=PLTF.FR_GOOD_ID LEFT JOIN dbo.CM_GOODS CGT ON CGT.GD_ID=PLTF.TO_GOOD_ID LEFT JOIN dbo.PL_REQUEST_PROCESS PR ON PR.REQ_ID=PLTF.REQ_DOC_ID AND PR.PROCESS_ID='TC' LEFT JOIN dbo.TL_USER US ON US .TLNANME=PR.CHECKER_ID LEFT JOIN dbo.TL_USER USC ON USC.TLNANME=PLTF.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_DOC PL ON PL.REQ_ID=PLTF.REQ_DOC_ID LEFT JOIN ( SELECT GOODS_ID,REQ_ID, SUM(TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID GROUP BY GOODS_ID,REQ_ID ) PLDT ON PLDT.REQ_ID = PL.REQ_ID AND PLDT.GOODS_ID = PLTF.TO_GOOD_ID WHERE PLTF.REQ_DOC_ID=@P_REQ_ID SELECT * FROM @TABLE SELECT TOP 1 RD.REQ_ID, RD.REQ_CODE, RD.REQ_NAME, RD.REQ_DT, RD.REQ_TYPE, RD.REQ_CONTENT, RD.REQ_REASON, RD.BRANCH_ID, (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID ) AS TOTAL_AMT, RD.NOTES, RD.RECORD_STATUS, RD.MAKER_ID, RD.CREATE_DT, RD.AUTH_STATUS, RD.CHECKER_ID, CASE WHEN (SELECT ISNULL(FORMAT(RD.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')) <>'' THEN N'Đã chấp thuận '+ ISNULL(FORMAT(RD.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS RP_APPROVE_DT, CASE WHEN (SELECT ISNULL(FORMAT(PKT.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')) <> '' THEN N'Đã chấp thuận '+ ISNULL(FORMAT(PKT.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') + CHAR (10) + ISNULL((SELECT PROCESS_DESC FROM PL_PROCESS WHERE PROCESS_ID ='KT' AND REQ_ID =@P_REQ_ID AND NOTES =N'Trưởng đơn vị đã phê duyệt' AND ID =(SELECT MAX(ID) FROM PL_PROCESS WHERE REQ_ID =@P_REQ_ID AND PROCESS_ID ='KT') ),'') ELSE '' END AS APPROVE_DT_KT, RD.PROCESS_ID, RD.DVDM_APP_ID, RD.REQ_PARENT_ID, RD.BRANCH_FEE, RD.EFFEC_DT, RD.IS_BACKDAY, RD.DEP_ID, RD.BASED_CONTENT, BR.BRANCH_NAME AS BRANCH_FEE_NAME, RD.DEP_FEE, CASE WHEN RD.NOTES IS NOT NULL AND RD.NOTES <> '' THEN RD.NOTES ELSE BR.BRANCH_NAME END AS BRANCH_NAME,BR.BRANCH_CODE, (SELECT SUM(AMT_APP) FROM @TABLE1) AS TOTAL_AMT_APP, (SELECT SUM(AMT_EXE) FROM @TABLE1) AS TOTAL_AMT_EXE, (SELECT SUM(AMT_REMAIN) FROM @TABLE1) AS TOTAL_AMT_REMAIN, --(SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID) - (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID AND REQDT_TYPE='O') AS AMT_IN, (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID) AS AMT_IN, CASE WHEN ((SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID) - ISNULL((SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID ),0)) <0 THEN 0 ELSE ((SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID) - ISNULL((SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID ),0)) END AS AMT_IN_TKH, (SELECT SUM(TOTAL_AMT_FN) FROM @TABLE1) AS TOTAL_AMT_ETM, CASE WHEN NOT EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID AND TRADE_TYPE ='VCCB') THEN CAST(0 AS BIT) WHEN EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID AND TRADE_TYPE ='VCCB') THEN CAST(1 AS BIT) END AS IS_VCCB, CASE WHEN NOT EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID AND TRADE_TYPE ='VCCB') THEN CAST(1 AS BIT) WHEN EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID AND TRADE_TYPE ='VCCB') THEN CAST(0 AS BIT) END AS IS_OTHER, (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID AND REQDT_TYPE='O') AS AMT_OUT, (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID) AS AMT_TRANSFER, -- Số tiền nhận điều chuyển DAY(RD.REQ_DT) AS DATE, MONTH(RD.REQ_DT) AS MONTH, YEAR(RD.REQ_DT) AS YEAR, --CASE WHEN DP.DEP_NAME IS NULL THEN BR.BRANCH_NAME ELSE DP.DEP_NAME END AS BRANCH_DEP, --'' BRANCH_DEP, DP.DEP_NAME AS BRANCH_DEP , --BR.BRANCH_NAME AS BRANCH_NAME, CASE WHEN PRC.ID IS NULL THEN UPRD.TLFullName ELSE UPRC.TLFullName END AS TDV_NAME, UTGD.TLFullName AS TGD_NAME, UHDQT.TLFullName AS HDQT_NAME, UPKT.TLFullName AS PKT_NAME, RD.IS_CHECKALL,RD.BASED_CONTENT,RD.PL_BASED_ID, '' AS PL_BASED_CONTENT, '' AS PL_BASED_CODE, CASE WHEN DP_C.DEP_NAME IS NULL THEN BR_C.BRANCH_NAME ELSE DP_C.DEP_NAME END AS DV_CREATE, (SELECT @DV_QLNS) AS DV_QL_CONFIRM, --UPTC.TLFullName + N' Đã chấp thuận '+ ISNULL(FORMAT(PTC.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') AS TC_CONFIRM, '' AS TC_CONFIRM, UPTC.TLFullName + N' Đã chấp thuận lúc: '+ ISNULL(FORMAT(PTC.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') AS TAI_CHINH_CONFIRM, CASE WHEN EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @p_REQ_ID AND CURRENCY <>'VND') THEN (SELECT TOP 1 CURRENCY FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @p_REQ_ID AND CURRENCY <>'VND') ELSE 'VND' END AS CURR --,(SELECT FORMAT(SUM(ISNULL(FR_AMT_APP, 0)),'#,0') FROM @TABLE) AS SUM_FR_AMT_APP, --(SELECT FORMAT(SUM(ISNULL(FR_AMT_REMAIN, 0)),'#,0') FROM @TABLE) AS SUM_FR_AMT_REMAIN, --(SELECT FORMAT(SUM(ISNULL(TO_AMT_APP, 0)),'#,0') FROM @TABLE) AS SUM_TO_AMT_APP, --(SELECT FORMAT(SUM(ISNULL(TO_AMT_EXE, 0)),'#,0') FROM @TABLE) AS SUM_TO_AMT_EXE, --(SELECT FORMAT(SUM(ISNULL(TO_AMT_REMAIN, 0)),'#,0') FROM @TABLE) AS SUM_TO_AMT_REMAIN, --(SELECT FORMAT(SUM(ISNULL(TOTAL_AMT, 0)),'#,0') FROM @TABLE) AS SUM_TOTAL_AMT, --(SELECT FORMAT(SUM(ISNULL(FR_AMT_APP_FINAL, 0)),'#,0') FROM @TABLE) AS SUM_FR_AMT_APP_FINAL, --(SELECT FORMAT(SUM(ISNULL(FR_AMT_REMAIN_FINAL, 0)),'#,0') FROM @TABLE) AS SUM_FR_AMT_REMAIN_FINAL, --(SELECT FORMAT(SUM(ISNULL(TO_AMT_APP_FINAL, 0)),'#,0') FROM @TABLE) AS SUM_TO_AMT_APP_FINAL, --(SELECT FORMAT(SUM(ISNULL(TOTAL_AMT_SIGN, 0)),'#,0') FROM @TABLE) AS SUM_TOTAL_AMT_SIGN, --(SELECT FORMAT(SUM(ISNULL(TOTAL_AMT_SIGN_FN, 0)),'#,0') FROM @TABLE) AS SUM_TOTAL_AMT_SIGN_FN, ,(SELECT FORMAT(SUM(ISNULL(FR_AMT_APP, 0)),'0') FROM @TABLE) AS SUM_FR_AMT_APP, (SELECT FORMAT(SUM(ISNULL(FR_AMT_REMAIN, 0)),'0') FROM @TABLE) AS SUM_FR_AMT_REMAIN, (SELECT FORMAT(SUM(ISNULL(TO_AMT_APP, 0)),'0') FROM @TABLE) AS SUM_TO_AMT_APP, (SELECT FORMAT(SUM(ISNULL(TO_AMT_EXE, 0)),'0') FROM @TABLE) AS SUM_TO_AMT_EXE, (SELECT FORMAT(SUM(ISNULL(TO_AMT_REMAIN, 0)),'0') FROM @TABLE) AS SUM_TO_AMT_REMAIN, (SELECT FORMAT(SUM(ISNULL(TOTAL_AMT, 0)),'0') FROM @TABLE) AS SUM_TOTAL_AMT, (SELECT FORMAT(SUM(ISNULL(FR_AMT_APP_FINAL, 0)),'0') FROM @TABLE) AS SUM_FR_AMT_APP_FINAL, (SELECT FORMAT(SUM(ISNULL(FR_AMT_REMAIN_FINAL, 0)),'0') FROM @TABLE) AS SUM_FR_AMT_REMAIN_FINAL, (SELECT FORMAT(SUM(ISNULL(TO_AMT_APP_FINAL, 0)),'0') FROM @TABLE) AS SUM_TO_AMT_APP_FINAL, (SELECT FORMAT(SUM(ISNULL(TOTAL_AMT_SIGN, 0)),'0') FROM @TABLE) AS SUM_TOTAL_AMT_SIGN, (SELECT FORMAT(SUM(ISNULL(TOTAL_AMT_SIGN_FN, 0)),'0') FROM @TABLE) AS SUM_TOTAL_AMT_SIGN_FN, CASE WHEN RD.NOTES IS NOT NULL AND RD.NOTES <> '' THEN RD.NOTES ELSE ISNULL(DP.DEP_NAME,'') +' '+ ISNULL(BR.BRANCH_NAME,'') END AS DV_CP, CASE WHEN HDQT.ID IS NOT NULL AND ISNULL(RD.OTHER_NOTES,'') <> '' THEN N'Thay mặt Hội Đồng Quản Trị' WHEN HDQT.ID IS NOT NULL AND ISNULL(RD.OTHER_NOTES,'') ='' THEN N'Phê duyệt cấp HĐQT (6)' ELSE N'' END AS HDQT_TITLE, CASE WHEN PRHDQT.ID IS NOT NULL AND ISNULL(RD.OTHER_NOTES,'') <> '' THEN N'Thay mặt Hội Đồng Quản Trị' + CHAR(10)+ N'Đã chấp thuận '+ ISNULL(FORMAT(PRHDQT.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') WHEN PRHDQT.ID IS NOT NULL AND ISNULL(RD.OTHER_NOTES,'') = '' THEN N'Chủ Tịch Hội Đồng Quản Trị' + CHAR(10)+ N'Đã chấp thuận '+ ISNULL(FORMAT(PRHDQT.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS HDQT_APPROVE_DT, CASE WHEN PRTGD.ID IS NOT NULL THEN N'Phê duyệt cấp TGĐ (5)' ELSE N'' END AS TGD_TITLE, CASE WHEN TGD.ID IS NOT NULL THEN N'Tổng Giám Đốc' + CHAR(10)+ N'Đã chấp thuận '+ ISNULL(FORMAT(TGD.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS TGD_APPROVE_DT, CASE WHEN DVDC.ID IS NOT NULL THEN (SELECT TLFullName FROM TL_USER WHERE TLNANME =DVDC.CHECKER_ID) + N' đã chấp thuận '+ ISNULL(FORMAT(DVDC.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS DV_DC_NS_CONFIRM, CASE WHEN DVDM_DC.ID IS NOT NULL THEN (SELECT TLFullName FROM TL_USER WHERE TLNANME =DVDM_DC.CHECKER_ID) + N' đã chấp thuận '+ ISNULL(FORMAT(DVDM_DC.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') ELSE '' END AS DV_QL_NS_CONFIRM --CASE WHEN PRHDQT.ID IS NOT NULL THEN UHDQT.TLFullName ELSE '' END AS HDQT_TITLE, FROM dbo.PL_REQUEST_DOC RD LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID=RD.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=RD.DEP_FEE LEFT JOIN dbo.TL_USER UD ON UD.TLNANME=RD.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS PRC ON PRC.REQ_ID=RD.REQ_ID AND PRC.PROCESS_ID='DVC' LEFT JOIN dbo.PL_REQUEST_PROCESS PRD ON PRD.REQ_ID=RD.REQ_ID AND PRD.PROCESS_ID='APPNEW' LEFT JOIN dbo.TL_USER UPRC ON UPRC.TLNANME=PRC.CHECKER_ID LEFT JOIN dbo.TL_USER UPRD ON UPRD.TLNANME=PRD.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS PRTGD ON PRTGD.REQ_ID=RD.REQ_ID AND PRTGD.PROCESS_ID LIKE 'TGD%' LEFT JOIN dbo.TL_USER UTGD ON UTGD.TLNANME=PRTGD.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS PRHDQT ON PRHDQT.REQ_ID=RD.REQ_ID AND PRHDQT.PROCESS_ID='HDQT' AND PRHDQT.STATUS='P' LEFT JOIN dbo.PL_REQUEST_PROCESS TGD ON TGD.REQ_ID=RD.REQ_ID AND TGD.PROCESS_ID LIKE 'TGD%' AND TGD.STATUS ='P' LEFT JOIN dbo.PL_REQUEST_PROCESS HDQT ON HDQT.REQ_ID=RD.REQ_ID AND HDQT.PROCESS_ID='HDQT' LEFT JOIN dbo.TL_USER UHDQT ON UHDQT.TLNANME=PRHDQT.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS PKT ON PKT.REQ_ID=RD.REQ_ID AND PKT.PROCESS_ID='KT' LEFT JOIN dbo.PL_REQUEST_PROCESS PTC ON PTC.REQ_ID=RD.REQ_ID AND PTC.PROCESS_ID='TC' LEFT JOIN dbo.PL_REQUEST_PROCESS DVDM_DC ON DVDM_DC.REQ_ID=RD.REQ_ID AND DVDM_DC.PROCESS_ID='DVDM_DC' AND DVDM_DC.STATUS ='P' LEFT JOIN dbo.TL_USER UPKT ON UPKT.TLNANME=PKT.CHECKER_ID LEFT JOIN dbo.TL_USER UPTC ON UPTC.TLNANME=PTC.CHECKER_ID LEFT JOIN CM_BRANCH BR_C ON RD.BRANCH_CREATE = BR_C.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP_C ON RD.DEP_CREATE = DP_C.DEP_ID -- điều chuyển ngân sách LEFT JOIN dbo.PL_REQUEST_TRANSFER PLTF ON PLTF.REQ_DOC_ID = RD.REQ_ID LEFT JOIN @listTRADE PTF ON PTF.TRADE_ID=PLTF.FR_TRADE_ID LEFT JOIN @listTRADE PTT ON PTT.TRADE_ID=PLTF.TO_TRADE_ID LEFT JOIN dbo.CM_GOODS CGF ON CGF.GD_ID=PLTF.FR_GOOD_ID LEFT JOIN dbo.CM_GOODS CGT ON CGT.GD_ID=PLTF.TO_GOOD_ID LEFT JOIN dbo.PL_REQUEST_PROCESS PR ON PR.REQ_ID=PLTF.REQ_DOC_ID AND PR.PROCESS_ID='TC' LEFT JOIN dbo.TL_USER US ON US .TLNANME=PR.CHECKER_ID LEFT JOIN dbo.TL_USER USC ON USC.TLNANME=PLTF.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_DOC PL ON PL.REQ_ID=PLTF.REQ_DOC_ID LEFT JOIN dbo.PL_REQUEST_PROCESS DVDC ON DVDC.REQ_ID=RD.REQ_ID AND DVDC.PROCESS_ID LIKE 'DVDC%' AND DVDC.STATUS ='P' -- DON VI QUAN LY NGAN SACH WHERE RD.REQ_ID=@P_REQ_ID ORDER BY RD.REQ_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_Ins]' GO CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Ins] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(10)= 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(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25)= null, @p_CONFIRM_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_PAY_PHASE VARCHAR(15)= NULL, @p_DVDM_ID VARCHAR(15) = NULL, @p_RATE DECIMAL(18,0)= NULL, @p_RECIVER_MONEY VARCHAR(15) = NULL, @p_IS_PERIOD VARCHAR(5) = NULL, @p_TYPE_FUNCTION VARCHAR(15) = NULL, --doanptt 19/01/2022 @p_XMP_TEMP XML = NULL, @p_XMP_CUS XML = NULL, @p_XMP_PAY_ATTACH XML = NULL, @p_XMP_PAY_INVOICE XML = NULL, @p_XMP_ADVANCE_DT_2 XML = NULL, @p_XMP_PAY_SCHEDULE XML = NULL, @p_XMP_PAY_PERIOD XML = NULL, @p_XMP_PAY_METHOD XML = NULL, @p_XMP_PAY_BUDGET XML = NULL, @p_XMP_ADVANCE_DT XML = NULL AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_COLLECT WHERE )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --DECLARE @ERRORSYS NVARCHAR(15) = '' --IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE REF_ID = @p_REF_ID ) --BEGIN -- SET @ERRORSYS = 'ASSC-00005' -- SELECT ErrorCode Result, '' COLLECT_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS -- RETURN '0' --END IF(@p_REQ_TYPE ='I') BEGIN DECLARE @AMT_AD_PAY DECIMAL(18,0) =0 DECLARE @AMT_AD_PAY_BACK DECIMAL(18,0) =0 DECLARE @AMT_AD_PAY_REMAIN DECIMAL(18,0) =0 SET @AMT_AD_PAY = (SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID=@p_MAKER_ID AND AUTH_STATUS_KT='A' AND REQ_TYPE ='I') SET @AMT_AD_PAY_BACK = (SELECT SUM(D.AMT_USE) +SUM(D.AMT_REVERT) - SUM (D.AMT_ADD) FROM TR_REQ_PAYMENT_DT D LEFT JOIN TR_REQ_ADVANCE_PAYMENT X ON D.PAY_ADV_ID = X.REQ_PAY_ID AND D.AUTH_STATUS_KT ='A' WHERE X.REF_ID =@p_REF_ID) SET @AMT_AD_PAY_REMAIN =ISNULL(@AMT_AD_PAY,0) -ISNULL(@AMT_AD_PAY_BACK,0) SET @p_REQ_TEMP_AMT =ISNULL(@AMT_AD_PAY_REMAIN,0) END BEGIN TRANSACTION -- LUCTV 17H51 BO SUNG LAY SO TIEN DA TAM UNG CUA NHAN VIEN -- --SET @AMT_DO =(SELECT * FROM [dbo].TR_RE) --THIEUVQ 281119--- DECLARE @REC_DEBIT_AUTO VARCHAR(15),@ROLE_KI_NHAY VARCHAR(50) SET @REC_DEBIT_AUTO =(SELECT TOP 1 ACC_NUM FROM CM_ACCOUNT_PAY WHERE REF_ID = @p_REF_ID) --IF (@p_REQ_TYPE='I') --BEGIN -- --SET @p_REF_ID = @p_MAKER_ID -- --IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_NUM = @p_RECEIVER_DEBIT)) -- --BEGIN -- -- SET @p_RECEIVER_DEBIT = @p_RECEIVER_DEBIT+'' -- --END -- --ELSE -- --BEGIN -- -- IF(EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_NUM = @p_RECEIVER_DEBIT AND REF_ID != @p_REF_ID ) AND @p_TYPE_FUNCTION ='SEND') -- -- BEGIN -- -- SET @p_RECEIVER_DEBIT =(SELECT ACC_NUM FROM CM_ACCOUNT_PAY WHERE ACC_NUM = @p_RECEIVER_DEBIT) -- -- END -- --END -- IF(@p_RECEIVER_DEBIT IS NOT NULL AND @p_RECEIVER_DEBIT <>'') -- BEGIN -- IF(@REC_DEBIT_AUTO IS NOT NULL AND @REC_DEBIT_AUTO <>'' AND @REC_DEBIT_AUTO <> @p_RECEIVER_DEBIT) -- BEGIN -- SET @p_RECEIVER_DEBIT =@REC_DEBIT_AUTO -- END -- --IF(EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE REF_ID <> @p_REF_ID AND ACC_NUM =@p_RECEIVER_DEBIT)) -- --BEGIN -- -- ROLLBACK TRANSACTION -- -- SELECT '-1' Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Tài khoản tạm ứng này đã tồn tại và thuộc về nhân viên khác' ErrorDesc -- -- RETURN '-1' -- --END -- END -- ELSE -- BEGIN -- SET @p_RECEIVER_DEBIT =(SELECT TOP 1 ACC_NUM FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID) -- END --END -- doanptt 19/01/2022 Khai báo lưới danh sách DECLARE @hdocTemp INT, @hdocCus INT, @hdocPayAtach INT, @hdocPayInvoice INT, @hdocPayAcvanceDT2 INT, @hdocPaySchedule INT, @hdocPayPeriod INT, @hdocPayMethod INT, @hdocPayBudget INT, @hdocPayAcvanceDT INT EXEC sp_xml_preparedocument @hdocTemp OUTPUT, @p_XMP_TEMP; EXEC sp_xml_preparedocument @hdocCus OUTPUT, @p_XMP_CUS; EXEC sp_xml_preparedocument @hdocPayAtach OUTPUT, @p_XMP_PAY_ATTACH; --EXEC sp_xml_preparedocument @hdocPayInvoice OUTPUT, @p_XMP_PAY_INVOICE; EXEC sp_xml_preparedocument @hdocPayAcvanceDT2 OUTPUT, @p_XMP_ADVANCE_DT_2; EXEC sp_xml_preparedocument @hdocPaySchedule OUTPUT, @p_XMP_PAY_SCHEDULE; EXEC sp_xml_preparedocument @hdocPayAcvanceDT OUTPUT, @p_XMP_ADVANCE_DT; EXEC sp_xml_preparedocument @hdocPayPeriod OUTPUT, @p_XMP_PAY_PERIOD; EXEC sp_xml_preparedocument @hdocPayMethod OUTPUT, @p_XMP_PAY_METHOD; EXEC sp_xml_preparedocument @hdocPayBudget OUTPUT, @p_XMP_PAY_BUDGET; EXEC [dbo].[ADVANCE_CODE_GenKey] 'TR_REQ_ADVANCE_PAYMENT', '',@p_REQ_TYPE, @p_REQ_PAY_CODE out --END-- IF @p_REQ_PAY_CODE IS NULL OR @p_REQ_PAY_CODE ='' BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Mã số phiếu không được để trống' ErrorDesc RETURN '-1' END IF (@p_REQ_TYPE='I' AND (@p_RECEIVER_DEBIT IS NULL OR @p_RECEIVER_DEBIT ='') AND @p_TYPE_FUNCTION ='SEND') BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Tài khoản nhân viên tạm ứng không được để trống' ErrorDesc RETURN '-1' END IF EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_CODE = @p_REQ_PAY_CODE ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Số phiếu tạm ứng đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END IF(LEN(ISNULL(@p_RECEIVER_DEBIT,''))>15 AND @p_REQ_TYPE ='I') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Tài khoản tạm ứng này không được vượt quá 15 kí tự' ErrorDesc RETURN '-1' END -- START 19-11-2019 -- LUCTV BO SUNG VALIDATE TRONG QUA TRINH TEST SAU UAT- KIEM TRA NEU DOT THANH TOAN CHUA CO THI KHONG DUOC THEM MOI --IF(@p_REQ_TYPE='P' AND (@p_PAY_PHASE IS NULL OR @p_PAY_PHASE ='')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Đợt thanh toán không được phép để trống' ErrorDesc -- RETURN '-1' --END ---- NEU THANH TOAN XU LY NO THI NHAN VIEN NHAN TIEN TAM UNG KHONG DUOC PHEP TRONG --IF(@p_REQ_TYPE='D' AND (@p_RECEIVER_DEBIT IS NULL OR @p_RECEIVER_DEBIT ='')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Nhân viên nhận tạm ứng không được phép để trống' ErrorDesc -- RETURN '-1' --END -- SO TIEN THANH TOÁN PHAI LON HON KHONG IF(@p_REQ_AMT <=0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Số tiền tạm ứng phải lớn hơn 0' ErrorDesc RETURN '-1' END ----- ---- KIEM TRA NEU CHUA CHON KHOI PHE DUYET THI TU DONG CHUYEN VÊ KHOI TAI CHINH --IF(@p_DVDM_ID IS NULL OR @p_DVDM_ID ='') --BEGIN -- SET @p_DVDM_ID = (SELECT TOP 1 DVDM_ID FROM CM_DVDM WHERE DVDM_NAME ='KHOI TAI CHINH') --END -- --KIEM TRA NEU TAI KHOAN NHAN VIEN TAM UNG NEU CHUA TON TAI TRONG HE THONG THI BAO LOI --IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID) AND @p_REQ_TYPE='I') --BEGIN -- INSERT INTO CM_ACCOUNT_PAY (REF_ID,ACC_TYPE,ACC_NUM,ACC_NAME,FUNTION,MAKER_ID,AUTH_STATUS,CREATE_DT,TK_GL,TK_GL_NAME) VALUES (@p_REF_ID,'ADV_PAY',@p_RECEIVER_DEBIT,'TK TAM UNG CUA NHAN VIEN ' +@p_REF_ID,'I',@p_MAKER_ID,'U',GETDATE(),'361200001','TAM UNG DE HOAT DONG NGHIEP VU') --END --ELSE --BEGIN -- IF(((SELECT TOP 1 ACC_NUM FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID)<>@p_RECEIVER_DEBIT) AND @p_REQ_TYPE='I') -- BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE, N'Tài khoản tạm ứng của nhân viên đã tồn tại trong hệ thống! Bạn không được phép chỉnh sửa' ErrorDesc -- RETURN '-1' -- END --END --SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) --IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' Result, '' REQ_PAY_ID, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc -- RETURN '-1' --END --DECLARE @ROLE_KI_NHAY VARCHAR(50) IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_NUM =@p_RECEIVER_DEBIT AND REF_ID = @p_REF_ID) AND @p_REQ_TYPE='I') BEGIN ROLLBACK TRANSACTION SELECT '-11' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng số '+ @p_RECEIVER_DEBIT + N' không phải tài khoản của user: '+@p_REF_ID ErrorDesc RETURN '-11' END SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <>'' AND @ROLE_KI_NHAY IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC')) BEGIN PRINT @ROLE_KI_NHAY END ELSE BEGIN SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NULL OR @ROLE_KI_NHAY ='') BEGIN SET @ROLE_KI_NHAY =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_TRASFER_USER_RECIVE)) END END --SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC','TPGD') AND @p_REQ_TYPE <> 'I') BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc RETURN '-1' END EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_PAMENT', @p_REQ_PAY_ID out IF @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL GOTO ABORT INSERT INTO [dbo].[TR_REQ_ADVANCE_PAYMENT] ([REQ_PAY_ID] ,[REQ_PAY_CODE] ,[BRANCH_ID],[REQ_DT], [DEP_ID] ,[REQ_REASON] ,[REQ_TYPE],REQ_ENTRIES, [REQ_DESCRIPTION] ,REF_ID, RECEIVER_PO, RECEIVER_DEBIT ,[REQ_PAY_TYPE] ,[REQ_TYPE_CURRENCY] ,[REQ_AMT] ,[REQ_TEMP_AMT] ,[MAKER_ID] ,[CREATE_DT] ,[EDITOR_ID] ,[AUTH_STATUS] ,[CHECKER_ID] ,[APPROVE_DT] ,[CREATE_DT_KT] ,[MAKER_ID_KT] ,[AUTH_STATUS_KT] ,[CHECKER_ID_KT] ,[APPROVE_DT_KT] ,[CONFIRM_NOTES] ,[BRANCH_CREATE] ,[NOTES],RECORD_STATUS,TRANSFER_MAKER,TRANSFER_DT,TRASFER_USER_RECIVE,PROCESS,PAY_PHASE,DVDM_ID,RATE,RECIVER_MONEY,IS_PERIOD) VALUES (@p_REQ_PAY_ID, @p_REQ_PAY_CODE, @p_BRANCH_ID,CONVERT(DATE,GETDATE(),103), @p_DEP_ID, @p_REQ_REASON, @p_REQ_TYPE, @P_REQ_ENTRIES, @p_REQ_DESCRIPTION, @p_REF_ID, @p_RECEIVER_PO, @p_RECEIVER_DEBIT, @p_REQ_PAY_TYPE, @p_REQ_TYPE_CURRENCY, @p_REQ_AMT, @p_REQ_TEMP_AMT, @p_MAKER_ID, GETDATE(), @p_EDITOR_ID, 'E', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @p_BRANCH_CREATE, @p_NOTES,'1', @p_TRANSFER_MAKER, NULL, @p_TRASFER_USER_RECIVE, @p_PROCESS,@p_PAY_PHASE,@p_DVDM_ID,@p_RATE,@p_RECIVER_MONEY,@p_IS_PERIOD) IF @@Error <> 0 GOTO ABORT --- INSERT VÀO BẢNG DETAIL NÊU TẠM ỨNG LÀ TẠM ỨNG THANH TOÁN -- KIEM TRA NEU TAM UNG THANH TOAN IF((@p_REQ_TYPE='P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) OR @p_REQ_TYPE='D') BEGIN DECLARE @PO_ID varchar(15),@TERM_PAY varchar(15),@AMT_PAY_SCHEDULE decimal(18,0),@REQ_ADV_ID_SCHE VARCHAR(15),@AMT_ADVANCE_SCHEDULE decimal(18,0),@AMT_PAY_DO decimal(18,2), @AMT_REMAIN_SCHEDULE decimal(18,0),@REQ_AD_DT varchar(20),@PROCESS varchar(15),@PAY_ID VARCHAR(15), @REF_ID VARCHAR(15),@REQ_PAY_DESC NVARCHAR(500), @REQ_PAY_ENTRIES NVARCHAR(250),@CURRENCY VARCHAR(15),@RATE DECIMAL(18,0),@CUST_ID VARCHAR(15), @EMP_ID VARCHAR(15), @AMT_PAY_REAL DECIMAL(18,2), @IS_CLOSED VARCHAR(1)= NULL,@INDEX_NS INT =0,@REASON NVARCHAR(1000), @REF_TYPE VARCHAR(15) DECLARE @TYPE_COST VARCHAR(5) , @FR_LEVEL INT ,@TO_LEVEL INT DECLARE XmlDataPO CURSOR FOR SELECT * FROM OPENXML(@hdocPayAcvanceDT2, '/Root/XmlDataPO', 2) WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataPO; DECLARE @INDEX_PO INT =0 SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN SET @INDEX_PO = @INDEX_PO +1 -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO/ hợp đồng số '+(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc -- RETURN '-1' --END ---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO/ hợp đồng số '+(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc -- RETURN '-1' --END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END END DECLARE @REQ_PAYDTID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID OUT; IF @REQ_PAYDTID='' OR @REQ_PAYDTID IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'ADV_PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataPO; DEALLOCATE XmlDataPO; --- CUSOR DANH SACH LICH THANH TOAN PO - HD DECLARE XmlDataSchedule CURSOR FOR SELECT * FROM OPENXML(@hdocPaySchedule, '/Root/XmlDataSchedule',2) WITH(PO_ID varchar(15),TERM_PAY varchar(15),AMT_PAY_SCHEDULE decimal(18,0),REQ_ADV_ID varchar(15),AMT_ADVANCE_SCHEDULE decimal(18,0), AMT_PAY_DO decimal(18,0), AMT_REMAIN_SCHEDULE decimal(18,0),REQ_AD_DT varchar(20),PROCESS varchar(15), PAY_ID VARCHAR(15),REF_ID VARCHAR(15), REQ_PAY_DESC NVARCHAR(500), REQ_PAY_ENTRIES NVARCHAR(250),CURRENCY VARCHAR(15),RATE DECIMAL(18,0),AMT_PAY_REAL DECIMAL(18,2)) OPEN XmlDataSchedule FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO, @AMT_REMAIN_SCHEDULE,@REQ_AD_DT,@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL WHILE @@fetch_status=0 BEGIN DECLARE @p_REQ_PAY_SCHEDULE_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SCHEDULE', @p_REQ_PAY_SCHEDULE_ID OUT; IF @p_REQ_PAY_SCHEDULE_ID='' OR @p_REQ_PAY_SCHEDULE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_SCHEDULE( SCHEDULE_ID,REQ_PAY_ID,PAY_ID,AMT_PAY,PAY_PHASE,REQ_ADV_ID,AMT_ADVANCE,AMT_PAY_DO,AMT_REMAIN,REQ_PAY_DT,REQ_AD_DT,PROCESS,MAKER_ID, CREATE_DT,AUTH_STATUS_KT,PAYMENT_STATUS,TRN_TYPE,REF_ID,REQ_PAY_DESC,REQ_PAY_ENTRIES,CURRENCY,RATE,AMT_PAY_REAL) VALUES (@p_REQ_PAY_SCHEDULE_ID,@p_REQ_PAY_ID,@PAY_ID,@AMT_PAY_SCHEDULE,@TERM_PAY,@p_REQ_PAY_ID,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO,@AMT_REMAIN_SCHEDULE, GETDATE(),CONVERT(DATETIME,@REQ_AD_DT,103),NULL,@p_MAKER_ID,GETDATE(),'U','','ADV_PAY',@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL) --- END KHAI BAO CURSOR IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO, @AMT_REMAIN_SCHEDULE,@REQ_AD_DT,@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL END CLOSE XmlDataSchedule; DEALLOCATE XmlDataSchedule; END --- END TẠM ỨNG THANH TOÁN --- TẠM ỨNG HĐ ĐỊNH KỲ IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD='Y') BEGIN DECLARE XmlDataRecurring CURSOR FOR SELECT * FROM OPENXML(@hdocPayAcvanceDT, '/Root/XmlDataRecurring', 2) WITH(CONTRACT_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataRecurring; SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataRecurring INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN SET @INDEX_PO = @INDEX_PO +1 DECLARE @REQ_PAYDTID_C VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_C OUT; IF @REQ_PAYDTID_C='' OR @REQ_PAYDTID_C IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID_C,@p_REQ_PAY_ID,@REF_ID,'ADV_PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataRecurring INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataRecurring; DEALLOCATE XmlDataRecurring; --- CUSOR DANH SACH LICH THANH TOAN PO - HD ---------------------------- --INSERT FROM PERIOD DECLARE XmlDataPeriod CURSOR FOR SELECT * FROM OPENXML(@hdocPayPeriod, '/Root/XmlDataPeriod', 2) WITH(CONTRACT_ID varchar(15),PAY_DT_REAL VARCHAR(20),PAY_TYPE VARCHAR(5), OLD_INDEX DECIMAL(18,0),NEW_INDEX DECIMAL(18,0),AMT_PAY DECIMAL(18,2),CURRENCY VARCHAR(5), RATE DECIMAL(18,0), FROM_DATE VARCHAR(20), TO_DATE VARCHAR(20),PAY_PHASE NVARCHAR(250),REASON NVARCHAR(2000)) OPEN XmlDataPeriod; DECLARE @CONTRACT_ID varchar(15),@PAY_DT_REAL VARCHAR(20),@PAY_TYPE VARCHAR(5), @OLD_INDEX DECIMAL(18,0),@NEW_INDEX DECIMAL(18,0),@AMT_PAY_PERIOD DECIMAL(18,2),@FROM_DATE VARCHAR(20),@TO_DATE VARCHAR(20),@PAY_PHASE NVARCHAR(250),@REASON_TTDK NVARCHAR(2000) FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE,@TO_DATE,@PAY_PHASE,@REASON_TTDK WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(EXISTS(SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID AND IS_CLOSED='Y' )) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tạm ứng hợp đồng định kì đã đóng' ErrorDesc RETURN '-1' END IF(@NEW_INDEX <=@OLD_INDEX AND @NEW_INDEX >0 AND @OLD_INDEX >0 ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Chỉ số mới phải lớn hơn chỉ số cũ' ErrorDesc RETURN '-1' END -- NEU LÀ DINH KI THI HD PHAI KHAC NULL IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Cột Số hợp đồng không được phép để trống' ErrorDesc RETURN '-1' END -- KIEM TRA CHI TIET HOP DONG PHAI NAM TRONG DANH SACH CAC HOP DONG IF(@CONTRACT_ID IS NOT NULL AND @CONTRACT_ID <> '' ) BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REF_ID =@CONTRACT_ID)) ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì - Số hợp đồng phải nằm trong danh sách các hợp đồng được chọn trên lưới Hợp đồng định kì' ErrorDesc RETURN '-1' END END DECLARE @PERIOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT; IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID,REQ_PAY_ID,PAY_TYPE, CONTRACT_ID,PAY_DT_REAL,OLD_INDEX,NEW_INDEX,AMT_PAY,AUTH_STATUS_KT,CURRENCY,RATE,FROM_DATE, TO_DATE,AD_PAY_ID,PROCESS,PAY_PHASE,REASON) VALUES (@PERIOD_ID,@p_REQ_PAY_ID,'ADV_PAY',@CONTRACT_ID,CONVERT(DATE,@PAY_DT_REAL,103), @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,'U',@CURRENCY, @RATE,CONVERT(DATE,@FROM_DATE,103),CONVERT(DATE,@TO_DATE,103),@p_REQ_PAY_ID,'0',@PAY_PHASE,@REASON_TTDK) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE,@TO_DATE,@PAY_PHASE,@REASON_TTDK END CLOSE XmlDataPeriod; DEALLOCATE XmlDataPeriod; -- VALIDATE SO TIEN --IF(@p_REQ_AMT >= @TOTAL_SCHEDULE_AMT) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END ---- END ---- END TẠM ỨNG HỢP ĐỒNG ĐỊNH KÌ --- INSERT PHƯƠNG THỨC THANH TOÁN ----MethodCursor DECLARE @RECEIVE_ID varchar(15),@RECEIVE_NAME nvarchar(100),@REQ_PAY_REASON nvarchar(MAX),@TOTAL_AMT_METHOD decimal(18,2),@REQ_PAY_TYPE varchar(1), @ACC_NO VARCHAR(50), @ACC_NAME NVARCHAR(200), @ISSED_BY NVARCHAR(250), @ISSUED_DT VARCHAR(20),@CHECK_IN VARCHAR(15) DECLARE XmlDataMethod CURSOR FOR SELECT * FROM OPENXML(@hdocPayMethod, '/Root/XmlDataMethod',2) WITH(RECEIVE_ID varchar(15),RECEIVE_NAME nvarchar(100),REQ_PAY_REASON nvarchar(MAX),TOTAL_AMT decimal(18,2),REQ_PAY_TYPE varchar(1), REQ_PAY_DESC nvarchar(MAX),REQ_PAY_ENTRIES nvarchar(MAX),ACC_NO VARCHAR(50), ACC_NAME NVARCHAR(200), ISSUED_BY NVARCHAR(250), ISSUED_DT VARCHAR(20),CURRENCY VARCHAR(15),RATE DECIMAL(18,0),CHECK_IN VARCHAR(15)) OPEN XmlDataMethod FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO,@ACC_NAME ,@ISSED_BY , @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN WHILE @@fetch_status=0 BEGIN IF(@REQ_PAY_TYPE <>'1') BEGIN SET @ISSUED_DT = NULL END DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT; IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_METHOD(METHOD_ID,REQ_PAY_ID,EMP_ID,REQ_PAY_REASON,TOTAL_AMT,REQ_PAY_TYPE,REQ_PAY_DESC,REQ_PAY_ENTRIES, TEMP,MAKER_ID, CREATE_DT,ACC_NO,ACC_NAME,ISSUED_BY,ISSUED_DT,CURRENCY,RATE,CHECK_IN) VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_ID,@RECEIVE_ID,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'', @p_MAKER_ID,GETDATE(),@ACC_NO,@ACC_NAME,@ISSED_BY, CONVERT(DATE, @ISSUED_DT, 103),@CURRENCY,@RATE,@CHECK_IN) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO,@ACC_NAME , @ISSED_BY , @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN END CLOSE XmlDataMethod; DEALLOCATE XmlDataMethod ----END INSERT PHƯƠNG THỨC THANH TOÁN ----INSERT VAO BANG DS KHACH HANG DECLARE XmlDataCus CURSOR FOR SELECT * FROM OPENXML(@hdocCus, '/Root/XmlDataCus', 2) WITH(CUST_ID varchar(15), EMP_ID VARCHAR(15), AMT_PAY_DO DECIMAL(18,2),CURRENCY VARCHAR(15),RATE DECIMAL(18,0)) OPEN XmlDataCus; FETCH NEXT FROM XmlDataCus INTO @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE print @CUST_ID; WHILE @@fetch_status=0 BEGIN INSERT INTO TR_REQ_ADVANCE_CUS(REQ_PAY_ID,CUST_ID,EMP_ID,AMT_PAY_DO,CURRENCY,RATE,MAKER_ID,CREATE_DT) VALUES (@p_REQ_PAY_ID, @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE,@p_MAKER_ID,GETDATE()) --- END KHAI BAO CURSOR IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataCus INTO @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE END CLOSE XmlDataCus; DEALLOCATE XmlDataCus; ----END -- HANG MUC CHI PHI VA NGAN SACH DECLARE @TRADE_ID varchar(15),@GD_ID varchar(15),@AMT_APP decimal(18,2), @AMT_DO decimal(18,2), @AMT_EXE decimal(18,2),@AMT_REMAIN_GD decimal(18,2) DECLARE XmlDataGood CURSOR FOR SELECT * FROM OPENXML(@hdocPayBudget, '/Root/XmlDataGood',2) WITH(TRADE_ID varchar(15),GD_ID varchar(15),AMT_APP decimal(18,2),AMT_DO decimal(18,2),AMT_EXE decimal(18,2),AMT_REMAIN decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),REASON NVARCHAR(1000),TYPE_COST VARCHAR(5) , FR_LEVEL INT ,TO_LEVEL INT) OPEN XmlDataGood FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL WHILE @@fetch_status=0 BEGIN --- KIEM TRA NEU NGAN SACH SU DUNG THUC THE LON HON NGAN SACH CON LAI SET @INDEX_NS = @INDEX_NS +1 -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE --IF(@p_TYPE_FUNCTION ='SEND') --BEGIN --IF((@AMT_EXE > @AMT_REMAIN_GD)) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc -- RETURN '-1' --END --END IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(ISNULL(@AMT_EXE,0) =0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế phải lớn hơn không.' ErrorDesc RETURN '-1' END IF((@AMT_EXE > @AMT_REMAIN_GD) AND ((SELECT GD_TYPE_ID FROM CM_GOODS WHERE GD_ID =@GD_ID) ='NS')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc RETURN '-1' END END DECLARE @p_BUDGET_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT; IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID,GD_ID,REQ_PAY_ID,TRADE_ID,AMT_APP,AMT_DO, AMT_EXE,AMT_REMAIN,MAKER_ID,CREATE_DT,CURRENCY,RATE,REASON,TYPE_COST, FR_LEVEL,TO_LEVEL) VALUES (@p_BUDGET_ID,@GD_ID,@p_REQ_PAY_ID,@TRADE_ID,@AMT_APP,@AMT_DO, @AMT_EXE,@AMT_REMAIN_GD,@p_MAKER_ID, GETDATE(),@CURRENCY,@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL END; CLOSE XmlDataGood; DEALLOCATE XmlDataGood; --- END INSERT NGAN SACH DECLARE @ATTACH_ID varchar(15),@CON_ID varchar(100),@CONT_CODE VARCHAR(50), @CON_NOTES VARCHAR(1000),@CON_DESC NVARCHAR(1000),@CON_TYPE VARCHAR(15),@AMT_ATT DECIMAL(18,2),@REF_DT VARCHAR(20),@NOTES_ATT NVARCHAR(1000) DECLARE XmlAttach CURSOR FOR SELECT * FROM OPENXML(@hdocPayAtach, '/Root/XmlAttach',2) WITH(ATTACH_ID varchar(15),CON_ID varchar(100),CONT_CODE VARCHAR(50), CON_NOTES NVARCHAR(1000),CON_DESC NVARCHAR(1000),CON_TYPE VARCHAR(15),AMT_ATT DECIMAL(18,2),REF_DT VARCHAR(20)) OPEN XmlAttach --INSERT CHUNG TU DINH KEM FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT WHILE @@fetch_status=0 BEGIN IF (@REF_DT='') BEGIN SET @REF_DT = NULL END EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ATTACH', @ATTACH_ID OUT; IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_ATTACH(ATTACH_ID,REQ_PAY_ID,REF_ID,REF_CODE,NOTES,[DESCRIPTION],[TYPE],AMT,REF_DT) VALUES (@ATTACH_ID,@p_REQ_PAY_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT, CONVERT(DATE, @REF_DT,103)) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT END CLOSE XmlAttach; DEALLOCATE XmlAttach; ----END --- BAT DAU VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN DECLARE @SUM_PTTT DECIMAL(18,0), @SUM_NS DECIMAL(18,0),@SUM_LICH_TT DECIMAL(18,0) SET @SUM_PTTT =(SELECT SUM(TOTAL_AMT * ISNULL(RATE,1)) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(EXISTS(SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) AND @p_REQ_TYPE ='D') BEGIN SET @SUM_LICH_TT =(SELECT SUM(AMT_PAY_REAL* ISNULL(RATE,1)) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_LICH_TT,0)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền lịch thanh toán PO và hợp đồng liên quan đến khách hàng xử lý nợ phải bằng số tiền tạm ứng' ErrorDesc RETURN '-1' END END IF(EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SET @SUM_NS =(SELECT SUM(AMT_EXE * ISNULL(RATE,1)) FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_PTTT,0)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền sử dụng ngân sách và chi phí phải bằng số tiền tạm ứng' ErrorDesc RETURN '-1' END END ELSE IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_PTTT,0)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền phương thức thanh toán phải bằng số tiền tạm ứng' ErrorDesc RETURN '-1' END END ----END --- INSERT SẴN VÀO BẢNG TR_REQUEST_PROCESS IF(@p_REQ_TYPE ='I') BEGIN DECLARE @tmp table(ROLE_ID VARCHAR(25),BRANCH_ID varchar(15),AMT DECIMAL(18,0)) IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='HS') BEGIN --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE (DEP_CODE LIKE '%06908%' OR DEP_CODE ='0690605') AND DEP_ID =@p_DEP_ID) BEGIN -- KHOI TAI CHINH SE KHONG CO PTGD NUA MA CHI CO KDK - LUCTV 29032021 INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD' --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' END ELSE IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE (DEP_CODE LIKE '%06910%' OR DEP_CODE ='0690405') AND DEP_ID =@p_DEP_ID) BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' END ELSE IF (EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06900%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06901%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06902%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06903%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06904%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06920%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%799%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%899%' AND DEP_ID =@p_DEP_ID)) BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID NOT IN ('GDK','PTGD') END ELSE IF (EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06907%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06909%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06911%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06921%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06922%' AND DEP_ID =@p_DEP_ID)) BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD' END ELSE BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' END END ELSE BEGIN IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='CN') BEGIN --- BAO GOM DON VI & 3 CAP DUYET CUA HOI SO INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@p_BRANCH_CREATE AND ROLE_ID ='GDDV' --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' END ELSE IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='PGD') BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@p_BRANCH_CREATE AND ROLE_ID ='TPGD' --AND BRANCH_ID =(SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE)AND BRANCH_ID = @p_BRANCH_CREATE --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' END END DECLARE @ROLE_ID VARCHAR(20), @BRANCH_ID VARCHAR(20), @INDEX INT =0, @SL_ROLE INT =0,@LIMIT_VALUE DECIMAL(18,0) SET @SL_ROLE = (SELECT COUNT(*) FROM @tmp) DECLARE @ISLEAF VARCHAR(1) = 'Y', @PARENT_ID VARCHAR(10) = '', @STATUS VARCHAR(1) = 'C', @NOTES NVARCHAR(500) DECLARE CUR_PR CURSOR FOR SELECT A.ROLE_ID, A.BRANCH_ID,A.AMT FROM @tmp A ORDER BY A.AMT ASC OPEN CUR_PR FETCH NEXT FROM CUR_PR INTO @ROLE_ID,@BRANCH_ID,@LIMIT_VALUE WHILE @@FETCH_STATUS =0 --AND @STOP=0 BEGIN SET @INDEX= @INDEX+1 IF @INDEX = @SL_ROLE SET @ISLEAF = 'Y' ELSE SET @ISLEAF = 'N' SET @NOTES = (SELECT N'Đợi '+ ROLE_DESC + N' phê duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID) IF(@INDEX=1 ) BEGIN SET @PARENT_ID = NULL SET @STATUS = 'C' --INSERT INTO TR_REQUEST_PROCESS VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),'C',@ROLE_ID,@BRANCH_ID,NULL,NULL,NULL,@ISLEAF) END ELSE BEGIN SET @PARENT_ID = CONVERT(VARCHAR(5),@INDEX -1) SET @STATUS = 'U' END IF(@LIMIT_VALUE >= @p_REQ_AMT) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES ) VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,'Y', '',@p_DVDM_ID,@NOTES) --INSERT INTO PL_REQUEST_PROCESS VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,'Y') IF(@ROLE_ID <> 'TKTGD' AND @ROLE_ID <> 'TKHDQT') BEGIN BREAK; END END ELSE INSERT INTO PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES ) VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,@ISLEAF, '', @p_DVDM_ID, @NOTES) --END FETCH NEXT FROM CUR_PR INTO @ROLE_ID,@BRANCH_ID,@LIMIT_VALUE END CLOSE CUR_PR DEALLOCATE CUR_PR END --- CAP NHAT THANG CUOI CUNG LA Y --UPDATE TR_REQUEST_PROCESS SET IS_LEAF='Y' WHERE ID = (SELECT MAX(ID) FROM TR_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID) COMMIT TRANSACTION IF(@p_TYPE_FUNCTION ='SEND')-- BAT DAU GUI PHE DUYET BEGIN --ROLLBACK TRANSACTION -- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY --UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='U' WHERE REQ_PAY_ID =@p_REQ_PAY_ID --INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) --VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Đơn vị gửi phê duyệt',N'Đơn vị tạo phiếu tạm ứng và gửi phê duyệt') --SELECT '4' as Result, @p_REQ_PAY_ID AS REQ_PAY_ID, N'Gửi phê duyệt thành công' ErrorDesc --RETURN '4' DECLARE @SUM_TEMP_PAY DECIMAL, @SUM_PAY DECIMAL IF (@p_REQ_TYPE ='I') BEGIN SET @SUM_TEMP_PAY = (SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_TYPE=@p_REQ_TYPE AND REF_ID =@p_REF_ID AND AUTH_STATUS ='A' AND REQ_TYPE ='I') SET @SUM_PAY = (SELECT SUM (ISNULL(PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A' AND REQ_TYPE ='I') UPDATE TR_REQ_ADVANCE_PAYMENT SET REQ_TEMP_AMT =ISNULL(@SUM_TEMP_PAY,0) -ISNULL(@SUM_PAY,0), RECEIVER_DEBIT =(SELECT TOP 1 ISNULL(ACC_NUM,'') FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID AND ACC_TYPE ='ADV_PAY' ) WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REQ_TYPE ='I' END IF(@p_TYPE_FUNCTION ='SEND') -- KIEM TRA NEU 2 BIEN XML KHAC NULL TUC LA DANG TRONG QUA TRINH LUU NHAP BEGIN DECLARE @BRANCH_TYPE_CR VARCHAR(15) SET @BRANCH_TYPE_CR =(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_CREATE) IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE TRASFER_USER_RECIVE ='' OR TRASFER_USER_RECIVE IS NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='HS' AND @p_REQ_TYPE ='I') BEGIN DECLARE @USER_TP VARCHAR(15) ='' --SET @USER_TP =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID -- AND (RoleName IN ('GDDV','TPTC','TC','KTT') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW ='GDDV'))) IF(@USER_TP IS NULL OR @USER_TP ='') BEGIN SET @USER_TP = (SELECT TOP 1 TLNANME FROM TL_USER_V2 WHERE SECUR_CODE =@p_DEP_ID AND (RoleName IN ('GDDV','TPTC','TC','KTT'))) END UPDATE TR_REQ_ADVANCE_PAYMENT SET TRASFER_USER_RECIVE =@USER_TP WHERE REQ_PAY_ID =@p_REQ_PAY_ID END --ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE TRASFER_USER_RECIVE ='' OR TRASFER_USER_RECIVE IS NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='PGD' AND @p_REQ_TYPE ='I') --BEGIN -- DECLARE @USER_TPGD VARCHAR(15) ='' -- SET @USER_TPGD =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID AND RoleName IN ('TPGD')) -- --SET @USER_TPGD =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID AND (RoleName IN ('TPGD') OR -- --RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW ='TPGD'))) -- IF(@USER_TPGD IS NULL OR @USER_TPGD ='') -- BEGIN -- SET @USER_TPGD = (SELECT TOP 1 TLNANME FROM TL_USER_V2 WHERE TLSUBBRID =@p_BRANCH_CREATE -- AND RoleName ='TPGD') -- END -- UPDATE TR_REQ_ADVANCE_PAYMENT SET TRASFER_USER_RECIVE =@USER_TPGD WHERE REQ_PAY_ID =@p_REQ_PAY_ID --END IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS='U')) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='PGD' AND @p_REQ_TYPE <>'I') BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Ở cấp độ phòng giao dịch. Vui lòng không được chọn cấp phê duyệt trung gian' ErrorDesc RETURN '-1' END -- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='U', PROCESS = NULL WHERE REQ_PAY_ID =@p_REQ_PAY_ID UPDATE PL_REQUEST_PROCESS SET ROLE_USER ='GDDV' WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER ='PGD' UPDATE PL_REQUEST_PROCESS SET ROLE_USER ='TPGD' WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER ='PPGD' INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Đơn vị gửi phê duyệt',N'Đơn vị tạo phiếu tạm ứng và gửi phê duyệt') IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE (TRASFER_USER_RECIVE <> '' OR TRASFER_USER_RECIVE IS NOT NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị tạm ứng số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc RETURN '4' END ELSE BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị tạm ứng số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '4' END END END -- FIX PHONG HO LOI LIEN QUAN DEN VIEC TAI KHOAN TAM UNG BI SAI DECLARE @REQ_PAY_ID varchar(15), @l_REF_ID varchar(15) DECLARE cursorProduct CURSOR LOCAL FOR SELECT REQ_PAY_ID,REF_ID FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.REQ_TYPE ='I' Open cursorProduct FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID, @l_REF_ID WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET RECEIVER_DEBIT =(SELECT TOP 1 ISNULL(ACC_NUM,'') FROM CM_ACCOUNT_PAY WHERE REF_ID =@l_REF_ID AND ACC_TYPE ='ADV_PAY' ) WHERE REQ_PAY_ID =@REQ_PAY_ID FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID, @l_REF_ID END SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID,@p_REQ_PAY_CODE AS REQ_PAY_CODE, N'Thêm mới thành công' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_Upd]' GO CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Upd] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(20)= 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(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25)= null, @p_CONFIRM_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_PAY_PHASE VARCHAR(15)= NULL, @p_DVDM_ID VARCHAR(15)= NULL, @p_RATE DECIMAL(18,0) =0, @p_RECIVER_MONEY VARCHAR(15)= NULL, @p_TYPE_FUNCTION VARCHAR(15) = NULL, @p_IS_PERIOD VARCHAR(5) = NULL, --doanptt 19/01/2022 @p_XMP_TEMP XML = NULL, @p_XMP_CUS XML = NULL, @p_XMP_PAY_ATTACH XML = NULL, @p_XMP_PAY_INVOICE XML = NULL, @p_XMP_ADVANCE_DT_2 XML = NULL, @p_XMP_PAY_SCHEDULE XML = NULL, @p_XMP_PAY_PERIOD XML = NULL, @p_XMP_PAY_METHOD XML = NULL, @p_XMP_PAY_BUDGET XML = NULL, @p_XMP_ADVANCE_DT XML = NULL AS --Validation is here IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT where AUTH_STATUS = 'U' AND REQ_PAY_ID = @p_REQ_PAY_ID )) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc RETURN '-1' END /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_COLLECT WHERE )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --Luanlt-2019/10/15 Disable Validation --DECLARE @ERRORSYS NVARCHAR(15) = '' --IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE REF_ID = @p_REF_ID ) --BEGIN -- SET @ERRORSYS = 'ASSC-00005' -- SELECT ErrorCode Result, '' REQ_PAY_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS -- RETURN '-1' --END DECLARE @BRANCH_TYPE_CR VARCHAR(15), @ROLE_KI_NHAY VARCHAR(50) --SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) --IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC')) --BEGIN -- SELECT '-1' Result, '' REQ_PAY_ID, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc -- RETURN '-1' --END SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <>'' AND @ROLE_KI_NHAY IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC')) BEGIN PRINT @ROLE_KI_NHAY END ELSE BEGIN SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NULL OR @ROLE_KI_NHAY ='') BEGIN SET @ROLE_KI_NHAY =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_TRASFER_USER_RECIVE)) END END --SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC','TPGD') AND @p_REQ_TYPE <> 'I') BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc RETURN '-1' END SET @BRANCH_TYPE_CR =(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_CREATE) DECLARE @ACC_NUM VARCHAR(15) SET @ACC_NUM = (SELECT TOP 1 ACC_NUM FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID) IF @p_REQ_PAY_CODE IS NULL OR @p_REQ_PAY_CODE ='' BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu không được để trống' ErrorDesc RETURN '-1' END IF (@p_REQ_TYPE='I' AND (@p_RECEIVER_DEBIT IS NULL OR @p_RECEIVER_DEBIT ='')) BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Tài khoản nhân viên tạm ứng không được để trống' ErrorDesc RETURN '-1' END IF EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_CODE = @p_REQ_PAY_CODE AND REQ_PAY_ID <> @p_REQ_PAY_ID) BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END -- doanptt 19/01/2022 Khai báo lưới danh sách DECLARE @hdocTemp INT, @hdocCus INT, @hdocPayAtach INT, @hdocPayInvoice INT, @hdocPayAcvanceDT2 INT, @hdocPaySchedule INT, @hdocPayPeriod INT, @hdocPayMethod INT, @hdocPayBudget INT, @hdocPayAcvanceDT INT EXEC sp_xml_preparedocument @hdocTemp OUTPUT, @p_XMP_TEMP; EXEC sp_xml_preparedocument @hdocCus OUTPUT, @p_XMP_CUS; EXEC sp_xml_preparedocument @hdocPayAtach OUTPUT, @p_XMP_PAY_ATTACH; --EXEC sp_xml_preparedocument @hdocPayInvoice OUTPUT, @p_XMP_PAY_INVOICE; EXEC sp_xml_preparedocument @hdocPayAcvanceDT2 OUTPUT, @p_XMP_ADVANCE_DT_2; EXEC sp_xml_preparedocument @hdocPaySchedule OUTPUT, @p_XMP_PAY_SCHEDULE; EXEC sp_xml_preparedocument @hdocPayAcvanceDT OUTPUT, @p_XMP_ADVANCE_DT; EXEC sp_xml_preparedocument @hdocPayPeriod OUTPUT, @p_XMP_PAY_PERIOD; EXEC sp_xml_preparedocument @hdocPayMethod OUTPUT, @p_XMP_PAY_METHOD; EXEC sp_xml_preparedocument @hdocPayBudget OUTPUT, @p_XMP_PAY_BUDGET; --IF(((SELECT TOP 1 ACC_NUM FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID)<>@p_RECEIVER_DEBIT) AND @p_REQ_TYPE='I') --IF(@ACC_NUM <>@p_RECEIVER_DEBIT AND @p_REQ_TYPE='I' AND LEN(ISNULL(@ACC_NUM,''))>0) --BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng của nhân viên đã tồn tại trong hệ thống! Bạn không được phép chỉnh sửa' ErrorDesc -- RETURN '-1' --END --IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID) AND @p_REQ_TYPE='I') -- BEGIN -- INSERT INTO CM_ACCOUNT_PAY (REF_ID,ACC_TYPE,ACC_NUM,ACC_NAME,FUNTION,MAKER_ID,AUTH_STATUS,CREATE_DT,TK_GL,TK_GL_NAME) VALUES (@p_REF_ID,'ADV_PAY',@p_RECEIVER_DEBIT,'TK TAM UNG CUA NHAN VIEN ' +@p_REF_ID,'I',@p_MAKER_ID,'U',GETDATE(),'361200001','TAM UNG DE HOAT DONG NGHIEP VU') -- END --ELSE -- BEGIN -- IF(@ACC_NUM <>@p_RECEIVER_DEBIT AND @p_REQ_TYPE='I' AND LEN(ISNULL(@ACC_NUM,''))>0) -- BEGIN -- --ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng của nhân viên đã tồn tại trong hệ thống! Bạn không được phép chỉnh sửa' ErrorDesc -- RETURN '-1' -- END --END --IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_NUM =@p_RECEIVER_DEBIT AND REF_ID = @p_REF_ID AND @p_REQ_TYPE='I')) --BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng số '+ @p_RECEIVER_DEBIT + N' không phải tài khoản của user: '+@p_REF_ID ErrorDesc -- RETURN '-1' --END IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_NUM =@p_RECEIVER_DEBIT AND REF_ID = @p_REF_ID) AND @p_REQ_TYPE='I') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng số '+ @p_RECEIVER_DEBIT + N' không phải tài khoản của user: '+@p_REF_ID ErrorDesc RETURN '-1' END IF(LEN(ISNULL(@p_RECEIVER_DEBIT,''))>15 AND @p_REQ_TYPE ='I') BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng này không được vượt quá 15 kí tự' ErrorDesc RETURN '-1' END -- 19-11-2019 LUCTV BO SUNG VALIDATE TRONG QUA TRINH TEST SAU KHI UAT -- NEU TAM UNG CHO NHA CUNG CAP THI DOT THANH TOAN KHONG DUOC PHEP NULL -- SO TIEN THANH TOÁN PHAI LON HON KHONG IF(@p_REQ_AMT <=0) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền tạm ứng phải lớn hơn 0' ErrorDesc RETURN '-1' END -- END VALIDATE TRONG QUA TRINH TEST UAT BEGIN TRANSACTION --IF(@p_DVDM_ID IS NULL OR @p_DVDM_ID ='') --BEGIN -- SET @p_DVDM_ID = (SELECT TOP 1 DVDM_ID FROM CM_DVDM WHERE DVDM_NAME ='KHOI TAI CHINH') --END UPDATE TR_REQ_ADVANCE_PAYMENT SET REF_ID = @p_REF_ID, DEP_ID= @p_DEP_ID,REQ_REASON = @p_REQ_REASON, REQ_PAY_TYPE = @p_REQ_PAY_TYPE, REQ_AMT = @p_REQ_AMT, NOTES= @p_NOTES, REQ_TYPE= @p_REQ_TYPE,REQ_DESCRIPTION = @p_REQ_DESCRIPTION,RECEIVER_PO =@p_RECEIVER_PO, RECEIVER_DEBIT= @p_RECEIVER_DEBIT, REQ_TEMP_AMT=@p_REQ_TEMP_AMT,REQ_ENTRIES = @P_REQ_ENTRIES,BRANCH_ID = @p_BRANCH_ID,REQ_PAY_CODE = @p_REQ_PAY_CODE, PAY_PHASE =@p_PAY_PHASE, AUTH_STATUS='E', DVDM_ID=@p_DVDM_ID, RATE =@p_RATE,REQ_TYPE_CURRENCY =@p_REQ_TYPE_CURRENCY, RECIVER_MONEY= @p_RECIVER_MONEY, TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE,IS_PERIOD =@p_IS_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID IF @@Error <> 0 GOTO ABORT --- INSERT VÀO BẢNG DETAIL NÊU TẠM ỨNG LÀ TẠM ỨNG THANH TOÁN -- KIEM TRA NEU TAM UNG THANH TOAN IF((@p_REQ_TYPE='P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) OR @p_REQ_TYPE='D') BEGIN DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID=@p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID=@p_REQ_PAY_ID DECLARE @PO_ID varchar(15),@TERM_PAY varchar(15),@AMT_PAY_SCHEDULE decimal(18,0),@REQ_ADV_ID_SCHE VARCHAR(15),@AMT_ADVANCE_SCHEDULE decimal(18,0),@AMT_PAY_DO decimal(18,2), @AMT_REMAIN_SCHEDULE decimal(18,0),@REQ_AD_DT varchar(20),@PROCESS varchar(15),@PAY_ID VARCHAR(15), @REF_ID VARCHAR(15),@REQ_PAY_DESC NVARCHAR(500), @REQ_PAY_ENTRIES NVARCHAR(250),@CURRENCY VARCHAR(15),@RATE DECIMAL(18,0),@CUST_ID VARCHAR(15), @EMP_ID VARCHAR(15),@AMT_PAY_REAL DECIMAL(18,2),@CHECK_IN VARCHAR(15),@IS_CLOSED VARCHAR(1)= NULL,@INDEX_NS INT =0,@REASON NVARCHAR(1000),@REF_TYPE VARCHAR(15) DECLARE @TYPE_COST VARCHAR(25), @FR_LEVEL INT ,@TO_LEVEL INT DECLARE XmlDataPO CURSOR FOR SELECT * FROM OPENXML(@hdocPayAcvanceDT2, '/Root/XmlDataPO', 2)--Thông tin PO/ hợp đồng WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataPO; DECLARE @INDEX_PO INT =0 SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN SET @INDEX_PO = @INDEX_PO +1 -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO/ hợp đồng số '+ (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END --- KIEM TRA XEM PO NAY DUOC THANH TOAN HAY CHUA IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED ='Y' ))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán. Vui lòng hủy bản nháp!' ErrorDesc RETURN '-1' END END DECLARE @REQ_PAYDTID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID OUT; IF @REQ_PAYDTID='' OR @REQ_PAYDTID IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'ADV_PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataPO; DEALLOCATE XmlDataPO; --- CUSOR DANH SACH LICH THANH TOAN PO - HD DECLARE XmlDataSchedule CURSOR FOR SELECT * FROM OPENXML(@hdocPaySchedule, '/Root/XmlDataSchedule',2) WITH(PO_ID varchar(15),TERM_PAY varchar(15),AMT_PAY_SCHEDULE decimal(18,0),REQ_ADV_ID varchar(15),AMT_ADVANCE_SCHEDULE decimal(18,0), AMT_PAY_DO decimal(18,2), AMT_REMAIN_SCHEDULE decimal(18,0),REQ_AD_DT varchar(20),PROCESS varchar(15), PAY_ID VARCHAR(15),REF_ID VARCHAR(15), REQ_PAY_DESC NVARCHAR(500), REQ_PAY_ENTRIES NVARCHAR(250),CURRENCY VARCHAR(15),RATE DECIMAL(18,0),AMT_PAY_REAL DECIMAL(18,2)) OPEN XmlDataSchedule FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO, @AMT_REMAIN_SCHEDULE,@REQ_AD_DT,@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL WHILE @@fetch_status=0 BEGIN DECLARE @p_REQ_PAY_SCHEDULE_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SCHEDULE', @p_REQ_PAY_SCHEDULE_ID OUT; IF @p_REQ_PAY_SCHEDULE_ID='' OR @p_REQ_PAY_SCHEDULE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_SCHEDULE( SCHEDULE_ID,REQ_PAY_ID,PAY_ID,AMT_PAY,PAY_PHASE,REQ_ADV_ID,AMT_ADVANCE,AMT_PAY_DO,AMT_REMAIN,REQ_PAY_DT,REQ_AD_DT,PROCESS,MAKER_ID, CREATE_DT,AUTH_STATUS_KT,PAYMENT_STATUS,TRN_TYPE,REF_ID,REQ_PAY_DESC,REQ_PAY_ENTRIES,CURRENCY,RATE, AMT_PAY_REAL) VALUES (@p_REQ_PAY_SCHEDULE_ID,@p_REQ_PAY_ID,@PAY_ID,@AMT_PAY_SCHEDULE,@TERM_PAY,@p_REQ_PAY_ID,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO,@AMT_REMAIN_SCHEDULE, GETDATE(),CONVERT(DATETIME,@REQ_AD_DT,103),NULL,@p_MAKER_ID,GETDATE(),'U','','ADV_PAY',@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL) --- END KHAI BAO CURSOR IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO, @AMT_REMAIN_SCHEDULE,@REQ_AD_DT,@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL END CLOSE XmlDataSchedule; DEALLOCATE XmlDataSchedule; END --- END TẠM ỨNG THANH TOÁN ---- TẠM ỨNG HĐ ĐỊNH KÌ IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD='Y') BEGIN DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID DECLARE XmlDataRecurring CURSOR FOR SELECT * FROM OPENXML(@hdocPayAcvanceDT, '/Root/XmlDataRecurring', 2) WITH(CONTRACT_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataRecurring; SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataRecurring INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN SET @INDEX_PO = @INDEX_PO +1 DECLARE @REQ_PAYDTID_C VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_C OUT; IF @REQ_PAYDTID_C='' OR @REQ_PAYDTID_C IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID_C,@p_REQ_PAY_ID,@REF_ID,'ADV_PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataRecurring INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataRecurring; DEALLOCATE XmlDataRecurring; --- CUSOR DANH SACH LICH THANH TOAN PO - HD ---------------------------- --INSERT FROM PERIOD DECLARE XmlDataPeriod CURSOR FOR SELECT * FROM OPENXML(@hdocPayPeriod, '/Root/XmlDataPeriod', 2) WITH(CONTRACT_ID varchar(15),PAY_DT_REAL VARCHAR(20),PAY_TYPE VARCHAR(5), OLD_INDEX DECIMAL(18,0),NEW_INDEX DECIMAL(18,0),AMT_PAY DECIMAL(18,2),CURRENCY VARCHAR(5), RATE DECIMAL(18,0), FROM_DATE VARCHAR(20), TO_DATE VARCHAR(20),PAY_PHASE NVARCHAR(250),REASON NVARCHAR(2000) ) OPEN XmlDataPeriod; DECLARE @CONTRACT_ID varchar(15),@PAY_DT_REAL VARCHAR(20),@PAY_TYPE VARCHAR(5), @OLD_INDEX DECIMAL(18,0),@NEW_INDEX DECIMAL(18,0),@AMT_PAY_PERIOD DECIMAL(18,2),@FROM_DATE VARCHAR(20),@TO_DATE VARCHAR(20),@PAY_PHASE NVARCHAR(250), @REASON_TTDK NVARCHAR(2000) FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE,@TO_DATE,@PAY_PHASE,@REASON_TTDK WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN --IF(EXISTS(SELECT CONTRACT_ID --FROM TR_CONTRACT --WHERE CONTRACT_ID = @REF_ID AND CONVERT(DATE,END_DT,103) < CONVERT(DATE,GETDATE(),103) AND END_DT IS NOT NULL AND CONT_TYPE ='DK' AND CONT_TYPE IS NOT NULL AND CONT_TYPE <>'')) ----AND IS_CLOSED='Y' )) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tạm ứng hợp đồng định kì đã đóng' ErrorDesc -- RETURN '-1' --END IF(@NEW_INDEX <=@OLD_INDEX AND @NEW_INDEX >0 AND @OLD_INDEX >0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Chỉ số mới phải lớn hơn chỉ số cũ' ErrorDesc RETURN '-1' END -- NEU LÀ DINH KI THI HD PHAI KHAC NULL IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Cột Số hợp đồng không được phép để trống' ErrorDesc RETURN '-1' END -- KIEM TRA CHI TIET HOP DONG PHAI NAM TRONG DANH SACH CAC HOP DONG IF(@CONTRACT_ID IS NOT NULL AND @CONTRACT_ID <> '' ) BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REF_ID =@CONTRACT_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì - Số hợp đồng phải nằm trong danh sách các hợp đồng được chọn trên lưới Hợp đồng định kì' ErrorDesc RETURN '-1' END END END DECLARE @PERIOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT; IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID,REQ_PAY_ID,PAY_TYPE, CONTRACT_ID,PAY_DT_REAL,OLD_INDEX,NEW_INDEX,AMT_PAY,AUTH_STATUS_KT,CURRENCY,RATE,FROM_DATE, TO_DATE,AD_PAY_ID,PROCESS,PAY_PHASE, REASON) VALUES (@PERIOD_ID,@p_REQ_PAY_ID,'ADV_PAY',@CONTRACT_ID,CONVERT(DATE,@PAY_DT_REAL,103), @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,'U',@CURRENCY, @RATE,CONVERT(DATE,@FROM_DATE,103),CONVERT(DATE,@TO_DATE,103),@p_REQ_PAY_ID,'0',@PAY_PHASE,@REASON_TTDK) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE,@TO_DATE,@PAY_PHASE,@REASON_TTDK END CLOSE XmlDataPeriod; DEALLOCATE XmlDataPeriod; -- VALIDATE SO TIEN --IF(@p_REQ_AMT >= @TOTAL_SCHEDULE_AMT) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END ---- END ---- END TẠM ỨNG HĐ ĐỊNH KÌ --- INSERT PHƯƠNG THỨC THANH TOÁN ----MethodCursor DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID DECLARE @RECEIVE_ID varchar(15),@RECEIVE_NAME nvarchar(100),@REQ_PAY_REASON nvarchar(MAX),@TOTAL_AMT_METHOD decimal(18,2),@REQ_PAY_TYPE varchar(1), @ACC_NO VARCHAR(50), @ACC_NAME NVARCHAR(250), @ISSED_BY NVARCHAR(250), @ISSUED_DT VARCHAR(20) DECLARE XmlDataMethod CURSOR FOR SELECT * FROM OPENXML(@hdocPayMethod, '/Root/XmlDataMethod',2) WITH(RECEIVE_ID varchar(15),RECEIVE_NAME nvarchar(100),REQ_PAY_REASON nvarchar(MAX),TOTAL_AMT decimal(18,2),REQ_PAY_TYPE varchar(1), REQ_PAY_DESC nvarchar(MAX),REQ_PAY_ENTRIES nvarchar(MAX),ACC_NO VARCHAR(50), ACC_NAME NVARCHAR(250), ISSUED_BY NVARCHAR(250), ISSUED_DT VARCHAR(20),CURRENCY VARCHAR(15),RATE DECIMAL(18,0),CHECK_IN VARCHAR(15)) OPEN XmlDataMethod FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO,@ACC_NAME,@ISSED_BY,@ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN WHILE @@fetch_status=0 BEGIN IF(@REQ_PAY_TYPE<>'1') BEGIN SET @ISSUED_DT = NULL END DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT; IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_METHOD(METHOD_ID,REQ_PAY_ID,EMP_ID,REQ_PAY_REASON,TOTAL_AMT,REQ_PAY_TYPE,REQ_PAY_DESC,REQ_PAY_ENTRIES, TEMP,MAKER_ID, CREATE_DT,ACC_NO,ACC_NAME,ISSUED_BY,ISSUED_DT,CURRENCY,RATE,CHECK_IN) VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_ID,@RECEIVE_ID,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'', @p_MAKER_ID,GETDATE(),@ACC_NO,@ACC_NAME,@ISSED_BY, CONVERT(DATE, @ISSUED_DT, 103),@CURRENCY,@RATE,@CHECK_IN) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO,@ACC_NAME , @ISSED_BY , @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN END CLOSE XmlDataMethod; DEALLOCATE XmlDataMethod ----END INSERT PHƯƠNG THỨC THANH TOÁN ----INSERT VAO BANG DS KHACH HANG DELETE FROM TR_REQ_ADVANCE_CUS WHERE REQ_PAY_ID = @p_REQ_PAY_ID DECLARE XmlDataCus CURSOR FOR SELECT * FROM OPENXML(@hdocCus, '/Root/XmlDataCus', 2) WITH(CUST_ID varchar(15), EMP_ID VARCHAR(15), AMT_PAY_DO decimal(18,2),CURRENCY VARCHAR(15),RATE DECIMAL(18,0)) OPEN XmlDataCus; FETCH NEXT FROM XmlDataCus INTO @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE WHILE @@fetch_status=0 BEGIN INSERT INTO TR_REQ_ADVANCE_CUS(REQ_PAY_ID,CUST_ID,EMP_ID,AMT_PAY_DO,CURRENCY,RATE,MAKER_ID,CREATE_DT) VALUES (@p_REQ_PAY_ID, @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE,@p_MAKER_ID,GETDATE()) --- END KHAI BAO CURSOR IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataCus INTO @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE END CLOSE XmlDataCus; DEALLOCATE XmlDataCus; ----END -- HANG MUC CHI PHI VA NGAN SACH DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID DECLARE @TRADE_ID varchar(15),@GD_ID varchar(15),@AMT_APP decimal(18,2),@AMT_DO decimal(18,2),@AMT_EXE decimal(18,2),@AMT_REMAIN_GD decimal(18,2) DECLARE XmlDataGood CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocPayBudget, '/Root/XmlDataGood',2) WITH(TRADE_ID varchar(15),GD_ID varchar(15),AMT_APP decimal(18,2),AMT_DO decimal(18,2), AMT_EXE decimal(18,2),AMT_REMAIN decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),REASON NVARCHAR(1000),TYPE_COST VARCHAR(25) , FR_LEVEL INT ,TO_LEVEL INT) OPEN XmlDataGood FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST , @FR_LEVEL ,@TO_LEVEL WHILE @@fetch_status=0 BEGIN --- KIEM TRA NEU NGAN SACH SU DUNG THUC THE LON HON NGAN SACH CON LAI SET @INDEX_NS = @INDEX_NS +1 -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE --IF(@p_TYPE_FUNCTION ='SEND') --BEGIN --IF((@AMT_EXE > @AMT_REMAIN_GD)) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc -- RETURN '-1' --END --END IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(ISNULL(@AMT_EXE,0) =0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,@p_REQ_PAY_CODE AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế phải lớn hơn không.' ErrorDesc RETURN '-1' END --IF((@AMT_EXE > @AMT_REMAIN_GD) AND ((SELECT GD_TYPE_ID FROM CM_GOODS WHERE GD_ID =@GD_ID) ='NS')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc -- RETURN '-1' --END END DECLARE @p_BUDGET_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT; IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID,GD_ID,REQ_PAY_ID,TRADE_ID,AMT_APP,AMT_DO,AMT_EXE,AMT_REMAIN,MAKER_ID,CREATE_DT,CURRENCY,RATE,REASON,TYPE_COST , FR_LEVEL ,TO_LEVEL) VALUES (@p_BUDGET_ID,@GD_ID,@p_REQ_PAY_ID,@TRADE_ID,@AMT_APP,@AMT_DO,@AMT_EXE,@AMT_REMAIN_GD,@p_MAKER_ID, GETDATE(),@CURRENCY,@RATE,@REASON,@TYPE_COST , @FR_LEVEL ,@TO_LEVEL) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST , @FR_LEVEL ,@TO_LEVEL END; CLOSE XmlDataGood; DEALLOCATE XmlDataGood; --- END INSERT NGAN SACH DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID =@p_REQ_PAY_ID DECLARE @ATTACH_ID varchar(15),@CON_ID varchar(100),@CONT_CODE VARCHAR(50), @CON_NOTES VARCHAR(1000),@CON_DESC NVARCHAR(1000),@CON_TYPE VARCHAR(15),@AMT_ATT DECIMAL(18,2),@REF_DT VARCHAR(20),@NOTES_ATT NVARCHAR(1000) DECLARE XmlAttach CURSOR FOR SELECT * FROM OPENXML(@hdocPayAtach, '/Root/XmlAttach',2) WITH(ATTACH_ID varchar(15),CON_ID varchar(100),CONT_CODE VARCHAR(50), CON_NOTES NVARCHAR(1000),CON_DESC NVARCHAR(1000),CON_TYPE VARCHAR(15),AMT_ATT DECIMAL(18,2),REF_DT VARCHAR(20)) OPEN XmlAttach --INSERT CHUNG TU DINH KEM FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT WHILE @@fetch_status=0 BEGIN IF (@REF_DT='') BEGIN SET @REF_DT = NULL END EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ATTACH', @ATTACH_ID OUT; IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_ATTACH(ATTACH_ID,REQ_PAY_ID,REF_ID,REF_CODE,NOTES,[DESCRIPTION],[TYPE],AMT,REF_DT) VALUES (@ATTACH_ID,@p_REQ_PAY_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT, CONVERT(DATE, @REF_DT,103)) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT END CLOSE XmlAttach; DEALLOCATE XmlAttach; ----END --- BAT DAU VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN DECLARE @SUM_PTTT DECIMAL(18,0), @SUM_NS DECIMAL(18,0),@SUM_LICH_TT DECIMAL(18,0) SET @SUM_PTTT =(SELECT SUM(TOTAL_AMT * ISNULL(RATE,1)) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(EXISTS(SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) AND @p_REQ_TYPE ='D') BEGIN SET @SUM_LICH_TT =(SELECT SUM(AMT_PAY_REAL* ISNULL(RATE,1)) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_LICH_TT,0)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền lịch thanh toán PO và hợp đồng liên quan đến khách hàng xử lý nợ phải bằng số tiền tạm ứng' ErrorDesc RETURN '-1' END END IF(EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SET @SUM_NS =(SELECT SUM(AMT_EXE * ISNULL(RATE,1)) FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_NS,0)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền sử dụng ngân sách và chi phí phải bằng số tiền tạm ứng' ErrorDesc RETURN '-1' END END ELSE IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_PTTT,0)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền phương thức thanh toán phải bằng số tiền tạm ứng' ErrorDesc RETURN '-1' END END ----END IF(@p_REQ_TYPE ='I') BEGIN DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID DECLARE @tmp table(ROLE_ID VARCHAR(25),BRANCH_ID varchar(15),AMT decimal(18,2)) IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='HS') BEGIN --DECLARE @DEP_CODE VARCHAR(15) --SET @DEP_CODE =(SELECT * FROM CM_DEPARTMENT WHERE DEP_ID =@p_DEP_ID) IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE (DEP_CODE LIKE '%06908%' OR DEP_CODE ='0690605') AND DEP_ID =@p_DEP_ID) BEGIN -- KHOI TAI CHINH SE KHONG CO PTGD NUA MA CHI CO KDK - LUCTV 29032021 INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD' --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' ORDER BY LIMIT_VALUE ASC END IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE ='0690405' AND DEP_ID =@p_DEP_ID) BEGIN -- KHOI TAI CHINH SE KHONG CO PTGD NUA MA CHI CO KDK - LUCTV 29032021 INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' ORDER BY LIMIT_VALUE ASC END ELSE IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06910%' AND DEP_ID =@p_DEP_ID) BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' ORDER BY LIMIT_VALUE ASC END ELSE IF (EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06900%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06901%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06902%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06903%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06904%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06920%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%799%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%899%' AND DEP_ID =@p_DEP_ID)) BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID NOT IN ('GDK','PTGD') ORDER BY LIMIT_VALUE ASC END ELSE IF (EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06907%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06909%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06911%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06921%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06922%' AND DEP_ID =@p_DEP_ID)) BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD' ORDER BY LIMIT_VALUE ASC END ELSE BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' ORDER BY LIMIT_VALUE ASC END END ELSE BEGIN IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='CN') BEGIN --- BAO GOM DON VI & 3 CAP DUYET CUA HOI SO INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@p_BRANCH_CREATE AND ROLE_ID ='GDDV' --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' END ELSE IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='PGD') BEGIN INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@p_BRANCH_CREATE AND ROLE_ID ='TPGD' --BRANCH_ID =(SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) --INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' END END DECLARE @ROLE_ID VARCHAR(20), @BRANCH_ID VARCHAR(20), @INDEX INT =0, @SL_ROLE INT =0,@LIMIT_VALUE DECIMAL(18,0) SET @SL_ROLE = (SELECT COUNT(*) FROM @tmp) DECLARE @ISLEAF VARCHAR(1) = 'Y', @PARENT_ID VARCHAR(10) = '', @STATUS VARCHAR(1) = 'C', @NOTES NVARCHAR(500) DECLARE CUR_PR CURSOR FOR SELECT A.ROLE_ID, A.BRANCH_ID,A.AMT FROM @tmp A ORDER BY A.AMT ASC OPEN CUR_PR FETCH NEXT FROM CUR_PR INTO @ROLE_ID,@BRANCH_ID,@LIMIT_VALUE WHILE @@FETCH_STATUS =0 --AND @STOP=0 BEGIN SET @INDEX= @INDEX+1 IF @INDEX = @SL_ROLE SET @ISLEAF = 'Y' ELSE SET @ISLEAF = 'N' SET @NOTES = (SELECT N'Đợi '+ ROLE_DESC + N' phê duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID) IF(@INDEX=1 ) BEGIN SET @PARENT_ID = NULL SET @STATUS = 'C' --INSERT INTO TR_REQUEST_PROCESS VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),'C',@ROLE_ID,@BRANCH_ID,NULL,NULL,NULL,@ISLEAF) END ELSE BEGIN SET @PARENT_ID = CONVERT(VARCHAR(5),@INDEX -1) SET @STATUS = 'U' END IF(@LIMIT_VALUE >= @p_REQ_AMT) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES ) VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,'Y', '',@p_DVDM_ID,@NOTES) --INSERT INTO PL_REQUEST_PROCESS VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,'Y','') IF(@ROLE_ID <> 'TKTGD' AND @ROLE_ID <> 'TKHDQT') BEGIN BREAK; END END ELSE INSERT INTO PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES ) VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,@ISLEAF, '', @p_DVDM_ID, @NOTES) --END FETCH NEXT FROM CUR_PR INTO @ROLE_ID,@BRANCH_ID,@LIMIT_VALUE END CLOSE CUR_PR DEALLOCATE CUR_PR END COMMIT TRANSACTION IF(@p_TYPE_FUNCTION ='SEND')-- BAT DAU GUI PHE DUYET BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT where AUTH_STATUS = 'U' AND REQ_PAY_ID = @p_REQ_PAY_ID )) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc RETURN '-1' END --ROLLBACK TRANSACTION -- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE (TRASFER_USER_RECIVE ='' OR TRASFER_USER_RECIVE IS NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID ) AND @BRANCH_TYPE_CR ='HS' AND @p_REQ_TYPE ='I') BEGIN DECLARE @USER_TP VARCHAR(15) ='' --SET @USER_TP =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID -- AND (RoleName IN ('GDDV','TPTC','TC','KTT') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW ='GDDV'))) IF(@USER_TP IS NULL OR @USER_TP ='') BEGIN SET @USER_TP = (SELECT TOP 1 TLNANME FROM TL_USER_V2 WHERE SECUR_CODE =@p_DEP_ID AND (RoleName IN ('TBP','PP'))) END --UPDATE TR_REQ_ADVANCE_PAYMENT SET TRASFER_USER_RECIVE =@USER_TP WHERE REQ_PAY_ID =@p_REQ_PAY_ID END DECLARE @SUM_TEMP_PAY DECIMAL, @SUM_PAY DECIMAL IF (@p_REQ_TYPE ='I') BEGIN SET @SUM_TEMP_PAY = (SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_REF_ID AND AUTH_STATUS ='A' AND REQ_TYPE ='I') SET @SUM_PAY = (SELECT SUM (ISNULL(PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A' AND REQ_TYPE ='I') UPDATE TR_REQ_ADVANCE_PAYMENT SET REQ_TEMP_AMT =ISNULL(@SUM_TEMP_PAY,0) -ISNULL(@SUM_PAY,0) WHERE REQ_PAY_ID =@p_REQ_PAY_ID END DECLARE @SUM_THANH_TOAN DECIMAL(18,0) =0, @SUM_PHUONG_THUC DECIMAL(18,0) =0 SET @SUM_THANH_TOAN =(SELECT ISNULL(SUM(REQ_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_PHUONG_THUC =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(ROUND(@SUM_THANH_TOAN,0) <> ROUND(@SUM_PHUONG_THUC,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(SUM(@SUM_THANH_TOAN),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE TRASFER_USER_RECIVE <>'' AND TRASFER_USER_RECIVE IS NOT NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='PGD' AND @p_REQ_TYPE <>'I') BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Ở cấp độ phòng giao dịch. Vui lòng không được chọn cấp phê duyệt trung gian' ErrorDesc RETURN '-1' END --IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND @p_REQ_TYPE='P' AND (@p_IS_PERIOD IS NULL OR @p_IS_PERIOD ='' OR @p_IS_PERIOD ='N'))) --BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc -- RETURN '-1' --END UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='U',CREATE_DT = GETDATE() WHERE REQ_PAY_ID =@p_REQ_PAY_ID UPDATE PL_REQUEST_PROCESS SET ROLE_USER ='GDDV' WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER ='PGD' UPDATE PL_REQUEST_PROCESS SET ROLE_USER ='TPGD' WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER ='PPGD' INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Đơn vị gửi phê duyệt',N'Đơn vị tạo phiếu tạm ứng và gửi phê duyệt') IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE (TRASFER_USER_RECIVE <> '' OR TRASFER_USER_RECIVE IS NOT NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị tạm ứng số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc RETURN '4' END ELSE BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị tạm ứng số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '4' END --SELECT '4' as Result, @p_REQ_PAY_ID AS REQ_PAY_ID, N'Gửi phê duyệt thành công' ErrorDesc --RETURN '4' END -- FIX PHONG HO LOI LIEN QUAN DEN VIEC TAI KHOAN TAM UNG BI SAI ----DECLARE @REQ_PAY_ID varchar(15), @l_REF_ID varchar(15) ----DECLARE cursorProduct CURSOR LOCAL FOR ----SELECT REQ_PAY_ID,REF_ID FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.REQ_TYPE ='I' ----Open cursorProduct ----FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID, @l_REF_ID ----WHILE @@FETCH_STATUS = 0 ----BEGIN ---- UPDATE TR_REQ_ADVANCE_PAYMENT SET RECEIVER_DEBIT =(SELECT TOP 1 ISNULL(ACC_NUM,'') FROM CM_ACCOUNT_PAY WHERE REF_ID =@l_REF_ID AND ACC_TYPE ='ADV_PAY' ) WHERE REQ_PAY_ID =@REQ_PAY_ID ----FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID, @l_REF_ID ----END SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_Byid]' GO /* INSERT INTO [dbo].[SYS_PREFIX](ID,Prefix,Description) VALUES('TR_REQUEST_PAMENT','TRPY','NONE') */ CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Byid] @p_REQ_PAY_ID varchar(15)= NULL AS SELECT A.*,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS 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, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS 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 AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(H.SOTIEN_TT,0) END AS TOTAL_AMT_PAY_HIS, 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 ACC_NAME, TL7.TLNANME AS EMP_CODE, PO.PO_CODE, PO.PO_NAME AS ACC_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS ACC_NAME,PM.PAY_PHASE AS KY_TAM_UNG, DV.DVDM_CODE, DV.DVDM_NAME, PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, PC1.NOTES AS NEXT_STEP, PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,PC3.TLNAME AS EXEC_USER,TL8.TLFullName AS RECIVER_MONEY_FULLNAME, BR1.BRANCH_TYPE AS BRANCH_TYPE_CR, BR.BRANCH_TYPE 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 A.DEP_ID= DP.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.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D' LEFT JOIN ( SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I' LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D' LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P' LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID --LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID LEFT JOIN ( SELECT MAX(PR.PROCESS_ID) AS PROCESS_ID , MAX(PR.REQ_ID) AS REQ_ID, MAX(PR.PROCESS_DESC) AS PROCESS_DESC, MAX(APPROVE_DT) AS APP_DT FROM PL_PROCESS PR GROUP BY PR.PROCESS_ID, PR.REQ_ID ) AS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID --LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER = @ROLE_ID AND PC.STATUS='C' LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C' LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID WHERE 1=1 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL) GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_Appr]' GO CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Appr] --Luanlt 2019/17/10 - Sửa params @p_REQ_PAY_ID varchar(15)= NULL, @p_CHECKER_ID varchar(15) = NULL, @p_AUTH_STATUS varchar(15) = NULL, @p_COST_ID VARCHAR(15) = NULL AS BEGIN TRANSACTION -- KHAI BAO THEM ROLE NHAN UY QUYEN DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50)) INSERT INTO @TABLE_ROLE SELECT (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL) AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL) AND TLNAME =@p_CHECKER_ID -- KHAI BAO NHUNG PHONG BAN MA 1 USER KIEM NHIEM DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15)) INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@p_CHECKER_ID --AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL) AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL) DECLARE @BRANCH_CREATE VARCHAR(15), @p_DEP_ID VARCHAR(15) --PRINT @BRANCH_CREATE SET @BRANCH_CREATE =(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) DECLARE @DEP_CODE_NEXT VARCHAR(15) IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_CREATE)<>'HS') BEGIN SET @p_DEP_ID =(SELECT TOP 1 DEP_ID FROM CM_DEPARTMENT WHERE LEFT(DEP_CODE,5) IN (SELECT TOP 1 LEFT(DVDM_CODE,5) FROM CM_DVDM WHERE DVDM_ID =@p_COST_ID)) SET @DEP_CODE_NEXT = (SELECT DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@p_DEP_ID) --PRINT @DEP_CODE_NEXT END ELSE BEGIN SET @p_DEP_ID =(SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID) SET @DEP_CODE_NEXT = (SELECT DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@p_DEP_ID) END IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE MAKER_ID =@p_CHECKER_ID AND REQ_PAY_ID =@p_REQ_PAY_ID) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Người phê duyệt phiếu phải khác với người tạo phiếu! Bạn không được phép duyệt đối tượng này' ErrorDesc RETURN '-1' END -- KIEM TRA NEU DANG TRA VE THI PHAI CHO CAP NHAT LAI THONG TIN MOI DUOC PHEP DUYET IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đang được trả về bộ phận yêu cầu. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc RETURN '-1' END -- KIEM TRA NEU DANG TRA VE THI PHAI CHO CAP NHAT LAI THONG TIN MOI DUOC PHEP DUYET IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đang được trả về bộ phận yêu cầu. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc RETURN '-1' END -- KIEM TRA NEU DANG TRA VE THI PHAI CHO CAP NHAT LAI THONG TIN MOI DUOC PHEP DUYET IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được KSV phê duyệt trước đó' ErrorDesc RETURN '-1' END IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được phê duyệt trước đó' ErrorDesc RETURN '-1' END --- KHAI BAO CHUUNG DECLARE @ROLE_ID VARCHAR(200), @BRANCH_TYPE VARCHAR(15), @TOTAL_ADVANCE DECIMAL(18,0), @TOTAL_PAYBACK DECIMAL(18,0), @BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15), @COSTCENTER_ID VARCHAR(15)= NULL, @BRANCH_RQ VARCHAR(15) = NULL,@DEP_ID_RQ VARCHAR(15), @BRANCH_LOGIN VARCHAR(15),@LIMIT_ONE_OF DECIMAL(18,2) DECLARE @LIMIT_AMT DECIMAL(18,0), @REQ_AMT DECIMAL(18,2) =0, @TONG_PGD DECIMAL(18,0), @TONG_PGD_HOAN DECIMAL(18,0) SET @REQ_AMT = (SELECT REQ_AMT *ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) --SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID) SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID) --SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC')) BEGIN PRINT @ROLE_ID END ELSE BEGIN SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID) IF(@ROLE_ID IS NULL OR @ROLE_ID ='') BEGIN SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID)) END END SET @BRANCH_ID = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) SET @BRANCH_RQ =(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @DEP_ID_RQ =(SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ) DECLARE @tmp table(BRANCH_ID varchar(15)) INSERT into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_ID) DECLARE @tmp_CN table(BRANCH_ID varchar(15)) IF((SELECT 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) INSERT into @tmp_CN VALUES (@BRANCH_RQ) END ELSE IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ)='PGD') BEGIN --DECLARE @FATHER_ID VARCHAR(15) = NULL --SET @FATHER_ID =(SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ) --INSERT into @tmp_CN SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@FATHER_ID) INSERT into @tmp_CN VALUES (@BRANCH_RQ) END --DECLARE @DEP_ID_LG VARCHAR(15) = NULL --SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_CHECKER_ID) 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 = @DEP_ID_RQ GROUP BY A.DVDM_ID -- KHAI BAO BRANCH CUA USER DUYET SET @BRANCH_LOGIN = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) DECLARE @LIMIT_REMAIN DECIMAL(18,0) --CAP NHAT CODE TRONG QUA TRINH TEST UAT INSERT INTO @TABLE_ROLE SELECT @ROLE_ID IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REQ_TYPE='I')) BEGIN IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_CREATE) ='HS') BEGIN IF(EXISTS(SELECT * FROM @TABLE_ROLE WHERE ISNULL(ROLE_AUTH,'') IN ('GDDV','TP') AND (SELECT ISNULL(PROCESS,'') FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ='')) BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0' WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Trưởng đơn vị xác nhận phiếu',N'Xác nhận phiếu tạm ứng') COMMIT TRANSACTION SELECT '1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'' ErrorDesc RETURN '1' END END IF NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND STATUS = 'C') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được bạn phê duyệt xong trước đó! Vui lòng đợi cấp tiếp theo phê duyệt tạm ứng' ErrorDesc RETURN '-1' END IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND REQ_ID = @p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không có quyền phê duyệt phiếu tạm ứng nội bộ. Vui lòng chọn giao dịch khác để duyệt' ErrorDesc RETURN '-1' END --IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER=@ROLE_ID AND REQ_ID = @p_REQ_PAY_ID AND BRANCH_ID= @BRANCH_ID AND STATUS ='P')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn đã thực hiện xác nhận phiếu tạm ứng trước đó' ErrorDesc -- RETURN '-1' --END -- KIEM TRA AUTH_STATUS TRUYEN XUONG LA GI, A: DUYET, C: CONFIRM IF(@p_AUTH_STATUS='U') -- KIEM TRA HAN MUC CON LAI CUA USER VA THONG BAO CHO NGUOI DUYET BEGIN -- KIEM TRA NEU ROLE CHUA CO HAN MUC PHE DUYET THI PHAI THONG BAO IF(NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE ROLE_ID =@ROLE_ID AND LIMIT_TYPE ='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn chưa được cấu hình hạn mức phê duyệt tạm ứng nội bộ. Vui lòng thông báo Admin cấu hình hạn mức phê duyệt' ErrorDesc RETURN '-1' END -- BAT DAU DUYET THEO NGAN SACH --- LAY HAN MUC CUA USER SET @LIMIT_AMT =(SELECT LIMIT_VALUE FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN) print @LIMIT_AMT -- SET @LIMIT_ONE_OF =(SELECT LIMIT_PERCENT FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN) IF(@ROLE_ID ='GDK' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011')) BEGIN SET @LIMIT_AMT =1000000000 END IF(@ROLE_ID ='PTGD' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011')) BEGIN SET @LIMIT_AMT =3000000000 END -- NEU LA HOI SO THI LAY TONG SO TIEN TAM UNG CUA CAC PHONG BAN CHUNG VOI KHOI CUA PHIEU DANG DUOC DUYET SET @TONG_PGD =(SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE BRANCH_ID = @BRANCH_RQ AND REQ_TYPE ='I' AND AUTH_STATUS ='A') + @REQ_AMT SET @TONG_PGD_HOAN =( --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 SELECT SUM (ISNULL(A.PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.BRANCH_ID = @BRANCH_RQ AND A.AUTH_STATUS_KT ='A' AND A.REQ_TYPE='I') IF(@BRANCH_TYPE='HS') 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'),0) SET @TOTAL_PAYBACK = ISNULL( ( SELECT (SUM(ISNULL(C.PAY_AMT,0))) FROM TR_REQ_ADVANCE_PAYMENT C WHERE C.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 C.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I' ),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') SET @TOTAL_PAYBACK = ( SELECT (SUM(ISNULL(B.PAY_AMT,0))) FROM TR_REQ_ADVANCE_PAYMENT B WHERE B.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp_CN) AND B.AUTH_STATUS_KT ='A' AND B.REQ_TYPE='I' ) END SET @LIMIT_REMAIN =ISNULL(@TOTAL_ADVANCE,0) - ISNULL(@TOTAL_PAYBACK,0) -- KIEM TRA NEU LA CHU TICH HDQT THI PHE DUYET LUON, KHONG CAN XET HAN MUC GI IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME=@p_CHECKER_ID AND RoleName ='HDQT')) BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, --N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') --+ CHAR(10) + --N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') --+ CHAR(10) + CHAR(13) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END IF(@LIMIT_AMT <(SELECT REQ_AMT * ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) + @LIMIT_REMAIN) BEGIN ROLLBACK TRANSACTION SELECT '-2' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Tổng hạn mức phê duyệt là: '+ FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10)+ N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + CHAR(13)+ N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN +@REQ_AMT ,'#,#', 'vi-VN') + CHAR(10) + N'Số tiền tạm ứng đã vượt mức phê duyệt là: '+ FORMAT((@LIMIT_REMAIN +@REQ_AMT) -@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Bạn muốn chuyển giao dịch lên cấp cao hơn để duyệt hay tiếp tục chờ duyệt' ErrorDesc RETURN '-2' END --- NEU DU HAN MUC THI THONG BAO DE NGUOI DUYET CAN NHAC CO NEN DUYET PHIEU HAY KHONG IF(@LIMIT_AMT >=(SELECT REQ_AMT * ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) +@LIMIT_REMAIN) BEGIN IF(@REQ_AMT >@LIMIT_ONE_OF) BEGIN ROLLBACK TRANSACTION SELECT '-2' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Tổng hạn mức phê duyệt là: '+ FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10)+ N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + CHAR(13) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN +@REQ_AMT ,'#,#', 'vi-VN') + CHAR(10) + N'Số tiền tạm ứng đã vượt mức so với số tiền của một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + N'Bạn muốn chuyển giao dịch lên cấp cao hơn để duyệt hay tiếp tục chờ duyệt' ErrorDesc RETURN '-2' END ELSE BEGIN -- KIEM TRA NEU LA PGD THI CANH BAO IF(@BRANCH_TYPE ='HS') BEGIN IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME=@p_CHECKER_ID AND RoleName NOT IN('TGD','HQDT'))) BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10) + CHAR(13) + N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END ELSE BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, --N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') --+ CHAR(10) + CHAR(13) + --N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') --+ CHAR(10) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END END ELSE IF(@BRANCH_TYPE ='CN') BEGIN IF(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0) > 40000000) BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + CHAR(13) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Số tiền tạm ứng đang vượt quá số tổng hạn mức tạm ứng của 1 CN: '+ FORMAT(40000000,'#,#', 'vi-VN') +N'. Số tiền vượt là: '+ FORMAT(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0)-40000000,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END ELSE BEGIN IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME=@p_CHECKER_ID AND RoleName NOT IN('TGD','HQDT'))) BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + CHAR(13) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END ELSE BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, --N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') --+ CHAR(10) + --N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') --+ CHAR(10) + CHAR(13) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END END END ELSE IF(@BRANCH_TYPE ='PGD') BEGIN IF(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0) > 10000000) BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')+ CHAR(10) + N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + CHAR(13) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Số tiền tạm ứng đang vượt quá số tổng hạn mức tạm ứng của 1 PGD: '+ FORMAT(10000000,'#,#', 'vi-VN') +N'. Số tiền vượt là: '+ FORMAT(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0)-10000000,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END ELSE BEGIN ROLLBACK TRANSACTION SELECT '-4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') + CHAR(10) + CHAR(13) + N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN') + CHAR(10) + N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc RETURN '-4' END END END END -- NEU THOA MAN CAC DIEU KIEN SE TIEN HANH DUYET END -- END DU HAN MUC DUYET ELSE IF(@p_AUTH_STATUS='A') BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS='A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = GETDATE(), AUTH_STATUS_KT='U' WHERE REQ_PAY_ID = @p_REQ_PAY_ID --- CAP NHAT LAI TINH TRANG TRONG REQUEST_PROCESS DECLARE @PROCESS_CURR VARCHAR(5) SET @PROCESS_CURR =(SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND ROLE_USER =@ROLE_ID) INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,@PROCESS_CURR,@p_CHECKER_ID, GETDATE(),(SELECT ROLE_DESC + N' duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID),N'Các cấp phê duyệt theo hạn mức') --- CAP NHAT PROCESS CUA PHIEU DE NGHI TAM UNG LA DA DUYET UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS=@PROCESS_CURR WHERE REQ_PAY_ID=@p_REQ_PAY_ID -- UPDATE PL_REQUEST_PROCESS SET STATUS ='A', NOTES = (SELECT ROLE_DESC + N' duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID) WHERE ROLE_USER =@ROLE_ID AND REQ_ID = @p_REQ_PAY_ID DECLARE @l_REQ_AMT DECIMAL(18,0) = (SELECT REQ_AMT*ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID) SET @LIMIT_AMT =(SELECT LIMIT_VALUE FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN) -- SET @LIMIT_ONE_OF =(SELECT LIMIT_PERCENT FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN) IF(@ROLE_ID ='GDK' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011')) BEGIN SET @LIMIT_AMT =1000000000 END IF(@ROLE_ID ='PTGD' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011')) BEGIN SET @LIMIT_AMT =3000000000 END -- NEU LA HOI SO THI LAY TONG SO TIEN TAM UNG CUA CAC PHONG BAN CHUNG VOI KHOI CUA PHIEU DANG DUOC DUYET SET @TONG_PGD =(SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE BRANCH_ID = @BRANCH_RQ AND REQ_TYPE ='I' AND AUTH_STATUS ='A') + @REQ_AMT SET @TONG_PGD_HOAN =( --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 SELECT SUM (ISNULL(A.PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.BRANCH_ID = @BRANCH_RQ AND A.AUTH_STATUS_KT ='A' AND A.REQ_TYPE='I') IF(@BRANCH_TYPE='HS') 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'),0) SET @TOTAL_PAYBACK = ISNULL( ( SELECT (SUM(ISNULL(C.PAY_AMT,0))) FROM TR_REQ_ADVANCE_PAYMENT C WHERE C.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_ID) AND C.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I' ),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') SET @TOTAL_PAYBACK = ( SELECT (SUM(ISNULL(B.PAY_AMT,0))) FROM TR_REQ_ADVANCE_PAYMENT B WHERE B.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp_CN) AND B.AUTH_STATUS_KT ='A' AND B.REQ_TYPE='I' ) END SET @LIMIT_REMAIN =ISNULL(@TOTAL_ADVANCE,0) - ISNULL(@TOTAL_PAYBACK,0) --- INSERT VAO BANG LOG INSERT INTO TR_REQ_ADVANCE_LIMIT_LOG VALUES (@p_REQ_PAY_ID,@LIMIT_REMAIN,GETDATE()) ---- END --ELSE IF (@p_AUTH_STATUS='T') --BEGIN ---- NEU AUTH_STATUS = T LA THU KI TGD / HDQT -- IF( @ROLE_ID ='TKTGD') -- BEGIN -- UPDATE PL_REQUEST_PROCESS SET STATUS ='C' WHERE ROLE_USER ='TGD' AND REQ_ID =@p_REQ_PAY_ID -- UPDATE PL_REQUEST_PROCESS SET STATUS ='P' WHERE ROLE_USER ='TKTGD' AND REQ_ID =@p_REQ_PAY_ID -- INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) -- VALUES(@p_REQ_PAY_ID,'TKTGD',@p_CHECKER_ID,GETDATE(), N'Thư kí văn phòng Tổng Giám Đốc đã phê duyệt',N'Thư kí văn phòng Tổng Giám Đốc phê duyệt') -- END -- ELSE IF( @ROLE_ID ='TKHDQT') -- BEGIN -- UPDATE PL_REQUEST_PROCESS SET STATUS ='C' WHERE ROLE_USER ='HDQT' AND REQ_ID =@p_REQ_PAY_ID -- UPDATE PL_REQUEST_PROCESS SET STATUS ='P' WHERE ROLE_USER ='TKHDQT' AND REQ_ID =@p_REQ_PAY_ID -- INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) -- VALUES(@p_REQ_PAY_ID,'TKHDQT',@p_CHECKER_ID,GETDATE(), N'Thư kí văn phòng Hội Đồng Quản Trị đã phê duyệt',N'Thư kí văn phòng Hội Đồng Quản Trị phê duyệt') -- END --ENDr ELSE -- NEW KHONG DU HAN MUC THI BAT DAU XAC NHAN VA DUYET THEO HAN MUC BEGIN DECLARE @t_REQ_AMT DECIMAL(18,0) = (SELECT REQ_AMT*ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID) --PRINT @t_REQ_AMT --- NEU GIAM DOC KHOI VAN CHUA DU HAN MUC THI GIAM DOC KHOI XAC NHAN VÀ TIEP TUC BUOC TIEP THEO LA PHO TONG GIAM DOC DECLARE @MAX_STEP INT, @NEXT_ROLE VARCHAR(20), @MESSAGE NVARCHAR(100), @PROCESS_ID_NEXT VARCHAR(5), @PROCESS_PARENT VARCHAR(5), @BRANCH_ID_PROC VARCHAR(15), @NEX_ROLE_STEP VARCHAR(25), @CURRENT_PROCESS VARCHAR(15) SET @CURRENT_PROCESS =(SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND ROLE_USER=@ROLE_ID) SET @NEX_ROLE_STEP = (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE PARENT_PROCESS_ID =@CURRENT_PROCESS AND REQ_ID = @p_REQ_PAY_ID ) --PRINT @NEX_ROLE_STEP --SET @MAX_STEP = CONVERT(INT,(SELECT MAX(PROCESS_ID) FROM TR_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID)) SET @PROCESS_ID_NEXT = CONVERT(VARCHAR(5),@CURRENT_PROCESS+1) --SET @PROCESS_PARENT = CONVERT(VARCHAR(5),@MAX_STEP) DECLARE @TMP_ROLE TABLE (ROLE_ID VARCHAR(15), BRANCH_ID VARCHAR(15), LIMIT_VALUE DECIMAL(18,0),LIMIT_TYPE VARCHAR(15)) --IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06908%' AND DEP_ID =@p_DEP_ID) IF(LEFT(@DEP_CODE_NEXT,5) ='06908' OR @DEP_CODE_NEXT ='0690605') BEGIN --LUCTV 29032021: KHOI TAI CHINH SE KHONG CO PTGD NUA, CHI CO GDK TAI CHINH INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD' --INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' END IF( @DEP_CODE_NEXT ='0690405') BEGIN --LUCTV 29032021: KHOI TAI CHINH SE KHONG CO PTGD NUA, CHI CO GDK TAI CHINH INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' --INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' END --ELSE IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06910%' AND DEP_ID =@p_DEP_ID) ELSE IF(LEFT(@DEP_CODE_NEXT,5) ='06910') BEGIN INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' END --ELSE IF (EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06900%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06901%' AND DEP_ID =@p_DEP_ID) --OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06902%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06903%' AND DEP_ID =@p_DEP_ID) --OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06904%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06920%' AND DEP_ID =@p_DEP_ID)) ELSE IF((LEFT(@DEP_CODE_NEXT,5) ='06900') OR (LEFT(@DEP_CODE_NEXT,5)) ='06901' OR (LEFT(@DEP_CODE_NEXT,5))='06904' OR (LEFT(@DEP_CODE_NEXT,5))='06902' OR (LEFT(@DEP_CODE_NEXT,5))='06903' OR (LEFT(@DEP_CODE_NEXT,5))='06920') BEGIN INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID NOT IN ('GDK','PTGD') END --ELSE IF (EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06907%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06909%' AND DEP_ID =@p_DEP_ID) --OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06911%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06921%' AND DEP_ID =@p_DEP_ID) --OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06922%' AND DEP_ID =@p_DEP_ID)) ELSE IF((LEFT(@DEP_CODE_NEXT,5) ='06907') OR (LEFT(@DEP_CODE_NEXT,5)) ='06909' OR (LEFT(@DEP_CODE_NEXT,5))='06911' OR (LEFT(@DEP_CODE_NEXT,5))='06922' OR (LEFT(@DEP_CODE_NEXT,5))='06921' OR (LEFT(@DEP_CODE_NEXT,5))='06920') BEGIN INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD' END ELSE BEGIN INSERT INTO @TMP_ROLE SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' END SET @BRANCH_ID_PROC= (SELECT BRANCH_ID FROM @TMP_ROLE WHERE ROLE_ID=@NEXT_ROLE AND LIMIT_TYPE='ADV_PAY') print @DEP_CODE_NEXT print @BRANCH_ID_PROC print @NEX_ROLE_STEP IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER=@NEX_ROLE_STEP AND REQ_ID= @p_REQ_PAY_ID)) BEGIN --SET @NEXT_ROLE =(SELECT TOP 1 ROLE_ID FROM @TMP_ROLE WHERE LIMIT_VALUE >@t_REQ_AMT SET @NEXT_ROLE =(SELECT TOP 1 ROLE_ID FROM @TMP_ROLE WHERE 1 =1 AND ROLE_ID NOT IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID) AND LIMIT_TYPE ='ADV_PAY') --print @NEXT_ROLE SET @BRANCH_ID_PROC= (SELECT BRANCH_ID FROM @TMP_ROLE WHERE ROLE_ID=@NEXT_ROLE AND LIMIT_TYPE='ADV_PAY') SET @MESSAGE = (SELECT N'Đợi '+ ROLE_DESC + N' phê duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @NEXT_ROLE) INSERT INTO PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF, COST_ID, DVDM_ID, NOTES) VALUES (@p_REQ_PAY_ID,@PROCESS_ID_NEXT,'C',@NEXT_ROLE,@BRANCH_ID_PROC,@NEXT_ROLE,GETDATE(),@PROCESS_PARENT,'Y',NULL,@p_COST_ID,@MESSAGE) INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,@CURRENT_PROCESS,@p_CHECKER_ID, GETDATE(),(SELECT ROLE_DESC + N' xác nhận' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID),N'Các cấp phê duyệt theo hạn mức') END ELSE BEGIN --print @NEX_ROLE_STEP SET @NEXT_ROLE =@NEX_ROLE_STEP UPDATE PL_REQUEST_PROCESS SET STATUS='C',DVDM_ID=@p_COST_ID WHERE ROLE_USER =@NEXT_ROLE AND REQ_ID = @p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,@CURRENT_PROCESS,@p_CHECKER_ID, GETDATE(),(SELECT ROLE_DESC + N' xác nhận' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID),N'Các cấp phê duyệt theo hạn mức') END -- IF @@Error <> 0 GOTO ABORT -- UPDATE STATUS CUA STEP HIEN TAI UPDATE PL_REQUEST_PROCESS SET STATUS='P',IS_LEAF ='N', NOTES = (SELECT TOP 1 ROLE_DESC + N' xác nhận' FROM TL_SYSROLE WHERE ROLE_ID =@ROLE_ID) WHERE ROLE_USER IN(SELECT * FROM @TABLE_ROLE) AND REQ_ID = @p_REQ_PAY_ID --INSERT VAO TR_PROCESS UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS =@CURRENT_PROCESS , AUTH_STATUS='U',DVDM_ID = @p_COST_ID WHERE REQ_PAY_ID =@p_REQ_PAY_ID --- UPDATE PL_REQUEST_PROCESS SET DVDM_ID= @p_COST_ID WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER <>@ROLE_ID END END ELSE BEGIN --- NEU LA TAM UNG NHA CUNG CAP THI CHECK XEM KI TAM UNG DO DA HOAN THANH HAY CHUA, NEU DA HOAN THANH THI KHONG CHO DUYET DECLARE @PAY_ID VARCHAR(15), @SUM_OF_PAY_ID DECIMAL(18,2), @SUM_ADVANCE DECIMAL(18,2), @AMOUNT DECIMAL(18,2),@AMT_PAY_DO DECIMAL(18,2),@SCH_ID VARCHAR(15),@AMT_ADVANCE DECIMAL(18,0) DECLARE CUR_SH CURSOR FOR SELECT A.PAY_ID,A.AMT_PAY, A.AMT_PAY_DO,A.SCHEDULE_ID,A.AMT_ADVANCE FROM TR_REQ_PAY_SCHEDULE A WHERE A.REQ_PAY_ID= @p_REQ_PAY_ID OPEN CUR_SH FETCH NEXT FROM CUR_SH INTO @PAY_ID,@AMOUNT,@AMT_PAY_DO,@SCH_ID,@AMT_ADVANCE WHILE @@FETCH_STATUS =0 BEGIN SET @SUM_OF_PAY_ID =(SELECT SUM(AMT_PAY_DO) FROM TR_REQ_PAY_SCHEDULE WHERE PAY_ID =@PAY_ID AND AUTH_STATUS_KT='A') SET @SUM_ADVANCE =(SELECT SUM(AMT_ADVANCE) FROM TR_REQ_PAY_SCHEDULE WHERE PAY_ID =@PAY_ID AND AUTH_STATUS_KT='A') IF(@SUM_OF_PAY_ID +@AMT_PAY_DO >@AMOUNT) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Số tiền tạm ứng đã vượt mức số tiền còn lại cần phải thanh toán' RETURN '-1' END IF(@SUM_OF_PAY_ID+@AMT_PAY_DO+@SUM_ADVANCE < @AMOUNT) BEGIN UPDATE TR_REQ_PAY_SCHEDULE SET PAYMENT_STATUS ='DTU' WHERE SCHEDULE_ID=@SCH_ID END ELSE IF(@SUM_OF_PAY_ID+@AMT_PAY_DO+@SUM_ADVANCE = @AMOUNT) BEGIN UPDATE TR_REQ_PAY_SCHEDULE SET PAYMENT_STATUS ='DTT' WHERE SCHEDULE_ID=@SCH_ID END ELSE IF(@SUM_OF_PAY_ID=0 AND @SUM_ADVANCE =0 ) BEGIN UPDATE TR_REQ_PAY_SCHEDULE SET PAYMENT_STATUS ='CTT' WHERE SCHEDULE_ID=@SCH_ID END FETCH NEXT FROM CUR_SH INTO @PAY_ID,@AMOUNT,@AMT_PAY_DO,@SCH_ID,@AMT_ADVANCE END CLOSE CUR_SH DEALLOCATE CUR_SH UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS='A', CHECKER_ID=@p_CHECKER_ID, APPROVE_DT = GETDATE(),AUTH_STATUS_KT='U' WHERE REQ_PAY_ID =@p_REQ_PAY_ID UPDATE PL_REQUEST_PROCESS SET [STATUS] ='A' WHERE [STATUS] ='C' AND REQ_ID =@p_REQ_PAY_ID SET @p_AUTH_STATUS ='A' --- INSERT 1 DONG VAO PL_PROCESS -- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'APP',@p_CHECKER_ID,GETDATE(), N'Trưởng đơn vị đã phê duyệt',N'Trưởng đơn vị phê duyệt') END IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION IF(@p_AUTH_STATUS='A') BEGIN SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'12345' +@DEP_CODE_NEXT ErrorDesc RETURN '0' END --ELSE IF(@p_AUTH_STATUS='T' AND @ROLE_ID ='TKTGD') --BEGIN -- SELECT '5' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Thư kí văn phòng Tổng Giám Đốc phê duyệt phiếu đề nghị tạm ứng số: ' +(SELECT TOP 1 REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' thành công' +@DEP_CODE_NEXT ErrorDesc -- RETURN '5' --END --ELSE IF(@p_AUTH_STATUS='T' AND @ROLE_ID ='TKHDQT') --BEGIN -- SELECT '5' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Thư kí văn phòng Hội Đồng Quản Trị phê duyệt phiếu đề nghị tạm ứng số: ' +(SELECT TOP 1 REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' thành công' +@DEP_CODE_NEXT ErrorDesc -- RETURN '5' --END ELSE BEGIN SELECT '1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,'' ErrorDesc RETURN '1' END ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CM_ACCOUNT_PAY_BYID]' GO CREATE PROC [dbo].[CM_ACCOUNT_PAY_BYID] @p_REF_ID VARCHAR(15) = NULL, @p_ACC_TYPE VARCHAR(50) = NULL AS BEGIN SELECT TOP 1 A.*,'' AS REF_CODE, '' AS REF_NAME FROM CM_ACCOUNT_PAY A WHERE A.REF_ID = @p_REF_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_CUS_BYID]' GO CREATE PROC [dbo].[TR_REQ_ADVANCE_CUS_BYID] @p_REQ_PAY_ID VARCHAR(15)= NULL AS BEGIN SELECT A.*, B.TLNANME, C.CUSTOMER_CODE, C.CUSTOMER_NAME,C.EMAIL,C.PHONE, C.ADDR,C.CONTACT_PERSON,C.DESCRIPTION,C.BUSINESS_TYPE, '' BUSINESS_TYPE_NAME, C.CONTACT_PERSON FROM TR_REQ_ADVANCE_CUS A LEFT JOIN TL_USER B ON A.EMP_ID= B.TLNANME LEFT JOIN LS_CUSTOMER C ON A.CUST_ID = C.CUSTOMER_ID WHERE A.REQ_PAY_ID=@p_REQ_PAY_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CM_ACCOUNT_PAY_Search]' GO CREATE PROCEDURE [dbo].[CM_ACCOUNT_PAY_Search] @p_USER_ID VARCHAR(15) = NULL, @p_ACC_TYPE VARCHAR(15)= NULL, @p_ACCNO varchar(100) = NULL, @p_ACCNAME NVARCHAR(500) = NULL, @p_AUTH_STATUS VARCHAR(1) = NULL, @p_MAKER_ID VARCHAR(15)= NULL, @p_CHECKER_ID VARCHAR(15) = NULL, @p_TOP INT = 100 AS BEGIN -- PAGING IF(@p_TOP IS NULL OR @p_TOP = '' OR @P_TOP = 0) IF(@p_ACC_TYPE <> 'ET') BEGIN -- PAGING BEGIN SELECT A.ID, A.ACC_NUM AS ACC_NO,A.ACC_NAME,A.ACC_TYPE,A.REF_ID,'' AS BRANCH_ID, '' AS BRANCH_CODE, '' AS BRANCH_NAME,A.MAKER_ID,A.CREATE_DT,A.EDITOR_ID,A.EDITOR_DT,A.CHECKER_ID,A.APPROVE_DT,A.AUTH_STATUS,A.TK_GL,A.TK_GL_NAME -- SELECT END FROM CM_ACCOUNT_PAY A WHERE (A.ACC_NUM LIKE N'%'+@p_ACCNO+'%' OR @p_ACCNO IS NULL OR @p_ACCNO = '') AND (A.ACC_NAME LIKE N'%'+@p_ACCNAME+'%' OR @p_ACCNAME IS NULL OR @p_ACCNAME = '') AND (A.REF_ID = @p_USER_ID OR @p_USER_ID IS NULL OR @p_USER_ID ='') AND (A.AUTH_STATUS =@p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL) AND (A.CHECKER_ID =@p_CHECKER_ID OR @p_CHECKER_ID ='' OR @p_CHECKER_ID IS NULL) -- PAGING END END; ELSE IF(@p_ACC_TYPE = 'ET') BEGIN -- PAGING BEGIN SELECT A.ID, A.ACC_NO ,A.ACC_NAME, 'ET' AS ACC_TYPE,'' AS REF_ID , '' AS BRANCH_ID, '' AS BRANCH_CODE, '' AS BRANCH_NAME,a.MAKER_ID MAKER_ID,a.CREATE_DT AS CREATE_DT, A.EDITOR_ID AS EDITOR_ID,A.EDITOR_DT AS EDITOR_DT,A.CHECKER_ID AS CHECKER_ID,A.APPROVE_DT AS APPROVE_DT,A.AUTH_STATUS AS AUTH_STATUS,A.TK_GL,A.TK_GL_NAME -- SELECT END FROM CM_ACCOUNT A WHERE (A.ACC_NO LIKE N'%'+@p_ACCNO+'%' OR @p_ACCNO IS NULL OR @p_ACCNO = '') AND (A.ACC_NAME LIKE N'%'+@p_ACCNAME+'%' OR @p_ACCNAME IS NULL OR @p_ACCNAME = '') AND (A.AUTH_STATUS =@p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL) AND (A.CHECKER_ID =@p_CHECKER_ID OR @p_CHECKER_ID ='' OR @p_CHECKER_ID IS NULL) -- PAGING END END; ELSE IF(@p_ACC_TYPE <> 'ET') BEGIN -- PAGING BEGIN SELECT TOP (isnull((CONVERT(INT,@p_TOP)), 10 )) A.ID, A.ACC_NUM AS ACC_NO,A.ACC_NAME,A.ACC_TYPE,A.REF_ID,'' AS BRANCH_ID, '' AS BRANCH_CODE, '' AS BRANCH_NAME,A.MAKER_ID,A.CREATE_DT,A.EDITOR_ID,A.EDITOR_DT,A.CHECKER_ID,A.APPROVE_DT,A.AUTH_STATUS,A.TK_GL,A.TK_GL_NAME -- SELECT END FROM CM_ACCOUNT_PAY A WHERE (A.ACC_NUM LIKE N'%'+@p_ACCNO+'%' OR @p_ACCNO IS NULL OR @p_ACCNO = '') AND (A.ACC_NAME LIKE N'%'+@p_ACCNAME+'%' OR @p_ACCNAME IS NULL OR @p_ACCNAME = '') AND (A.REF_ID = @p_USER_ID OR @p_USER_ID IS NULL OR @p_USER_ID ='') AND (A.AUTH_STATUS =@p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL) AND (A.CHECKER_ID =@p_CHECKER_ID OR @p_CHECKER_ID ='' OR @p_CHECKER_ID IS NULL) -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT TOP (isnull((CONVERT(INT,@p_TOP)), 100)) A.ID, A.ACC_NO ,A.ACC_NAME, 'ET' AS ACC_TYPE,'' AS REF_ID , '' AS BRANCH_ID, '' AS BRANCH_CODE, '' AS BRANCH_NAME,a.MAKER_ID MAKER_ID,a.CREATE_DT AS CREATE_DT, A.EDITOR_ID AS EDITOR_ID,A.EDITOR_DT AS EDITOR_DT,A.CHECKER_ID AS CHECKER_ID,A.APPROVE_DT AS APPROVE_DT,A.AUTH_STATUS AS AUTH_STATUS,A.TK_GL,A.TK_GL_NAME -- SELECT END FROM CM_ACCOUNT A WHERE (A.ACC_NO LIKE N'%'+@p_ACCNO+'%' OR @p_ACCNO IS NULL OR @p_ACCNO = '') AND (A.ACC_NAME LIKE N'%'+@p_ACCNAME+'%' OR @p_ACCNAME IS NULL OR @p_ACCNAME = '') AND (A.AUTH_STATUS =@p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL) AND (A.CHECKER_ID =@p_CHECKER_ID OR @p_CHECKER_ID ='' OR @p_CHECKER_ID IS NULL) -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_GetCost]' GO CREATE PROC [dbo].[TR_REQ_ADVANCE_PAYMENT_GetCost] @p_REF_ID VARCHAR(15) = NULL, -- CO THE LA MA NHAN VIEN, MA PO, MA CUSTOMER @p_REQ_TYPE VARCHAR(15) = NULL, @p_CREATE_DT VARCHAR(25)= NULL AS BEGIN DECLARE @SUM_TEMP_PAY DECIMAL, @SUM_PAY DECIMAL IF (@p_REQ_TYPE ='I') BEGIN SET @SUM_TEMP_PAY = (SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_TYPE=@p_REQ_TYPE AND REF_ID =@p_REF_ID AND AUTH_STATUS ='A' AND REQ_TYPE ='I') --SET @SUM_PAY = (SELECT SUM(D.AMT_USE) +SUM(D.AMT_REVERT) - SUM (D.AMT_ADD) --FROM TR_REQ_PAYMENT_DT D --LEFT JOIN TR_REQ_ADVANCE_PAYMENT X ON D.PAY_ADV_ID = X.REQ_PAY_ID AND D.AUTH_STATUS_KT ='A' --WHERE X.REF_ID =@p_REF_ID) SET @SUM_PAY = (SELECT SUM (ISNULL(PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A' AND REQ_TYPE ='I') END ELSE IF (@p_REQ_TYPE ='P') BEGIN SET @SUM_TEMP_PAY = (SELECT SUM(REQ_AMT) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_TYPE=@p_REQ_TYPE AND REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A') SET @SUM_PAY = (SELECT SUM(REQ_AMT) FROM TR_REQ_PAYMENT WHERE REQ_TYPE=@p_REQ_TYPE AND REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A') END ELSE IF (@p_REQ_TYPE ='D') BEGIN SET @SUM_TEMP_PAY = (SELECT SUM(REQ_AMT) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_TYPE=@p_REQ_TYPE AND REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A') SET @SUM_PAY = (SELECT SUM(REQ_AMT) FROM TR_REQ_PAYMENT WHERE REQ_TYPE=@p_REQ_TYPE AND REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A') END SELECT ISNULL(@SUM_TEMP_PAY,0) - ISNULL(@SUM_PAY,0) AS REQ_TEMP_AMT, ISNULL(@SUM_PAY,0) AS REQ_AMT_FINISH END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_Log]' GO /* INSERT INTO [dbo].[SYS_PREFIX](ID,Prefix,Description) VALUES('TR_REQUEST_PAMENT','TRPY','NONE') */ CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Log] @p_REQ_PAY_ID varchar(15)= NULL, @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(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @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 = 10, @p_LEVEL varchar(10) = NULL, @p_FRMDATE VARCHAR(20)= NULL, @p_TO_DATE VARCHAR(20) = NULL, @p_BRANCH_LOGIN VARCHAR(15) = NULL, @p_IS_UPDATE_KT VARCHAR(15) = NULL, @p_IS_TRANSFER VARCHAR(15)= NULL, @p_PAY_PHASE VARCHAR(15)= NULL AS BEGIN -- PAGING 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=0) BEGIN -- PAGING BEGIN 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, --CASE WHEN H.SO_TIEN_THANH_TOAN IS NOT NULL THEN (ISNULL(H.SO_TIEN_THANH_TOAN,0)) ELSE A.PAY_AMT END TOTAL_AMT_PAY, --0.00 AS TOTAL_AMT_PAY, ISNULL(A.PAY_AMT,0) 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,H1.REQ_PAY_CODE AS SO_PHIEU_HOAN_UNG, H1.APPROVE_DT_KT AS NGAY_HOAN_UNG -- SELECT END --H.APPROVE_DT_KT NGAY_HOAN_UNG 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_PAY_ADVANCE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_PAY_METHOD' 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,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN FROM TR_REQ_PAYMENT_DT X WHERE AUTH_STATUS_KT ='A' --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 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID -- LAY SO PHIEU THANH TOAN VA NGAY THANH TOAN LEFT JOIN ( SELECT TOP 1 X.PAY_ADV_ID, B.REQ_PAY_CODE , B.APPROVE_DT_KT 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' --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, B.REQ_PAY_CODE,B.APPROVE_DT_KT ) H1 ON A.REQ_PAY_ID = H1.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 IN ('D','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.REF_ID =@p_REF_ID AND A.REQ_TYPE='I') OR (DT.REF_ID = @p_REF_ID AND A.REQ_TYPE IN('D','P')) OR (CS.CUST_ID = @p_REF_ID AND A.REQ_TYPE='D') OR @p_REF_ID IS NULL OR @p_REF_ID ='' ) --AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' ) --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') -- AND (DT.REF_ID = @p_REF_ID OR @p_REF_ID IS NULL OR @p_REF_ID ='') ORDER BY A.CREATE_DT DESC -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT TOP(CONVERT(INT, @p_TOP)) 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, --CASE WHEN H.SO_TIEN_THANH_TOAN IS NOT NULL THEN (ISNULL(H.SO_TIEN_THANH_TOAN,0)) ELSE A.PAY_AMT END TOTAL_AMT_PAY, --0.00 AS TOTAL_AMT_PAY, ISNULL(A.PAY_AMT,0) 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,H1.REQ_PAY_CODE AS SO_PHIEU_HOAN_UNG, H1.APPROVE_DT_KT AS NGAY_HOAN_UNG -- SELECT END --H.APPROVE_DT_KT NGAY_HOAN_UNG 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_PAY_ADVANCE' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_PAY_METHOD' 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,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN FROM TR_REQ_PAYMENT_DT X WHERE AUTH_STATUS_KT ='A' --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 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID -- LAY SO PHIEU THANH TOAN VA NGAY THANH TOAN LEFT JOIN ( SELECT TOP 1 X.PAY_ADV_ID, B.REQ_PAY_CODE , B.APPROVE_DT_KT 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' --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, B.REQ_PAY_CODE,B.APPROVE_DT_KT ) H1 ON A.REQ_PAY_ID = H1.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 IN ('D','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.REF_ID =@p_REF_ID AND A.REQ_TYPE='I') OR (DT.REF_ID = @p_REF_ID AND A.REQ_TYPE IN('D','P')) OR (CS.CUST_ID = @p_REF_ID AND A.REQ_TYPE='D') OR @p_REF_ID IS NULL OR @p_REF_ID ='' ) --AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' ) --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') -- AND (DT.REF_ID = @p_REF_ID OR @p_REF_ID IS NULL OR @p_REF_ID ='') ORDER BY A.CREATE_DT DESC -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[REAL_ESTATE_R_H_Ins]' GO ALTER PROCEDURE [dbo].[REAL_ESTATE_R_H_Ins] @p_BRANCH_MANAGE nvarchar(500) = NULL, @p_BRANCH_USE nvarchar(500) = NULL, @p_RET_ADDR nvarchar(MAX) = NULL, @p_RET_R_H_TIME decimal = NULL, @p_START_DT VARCHAR(20) = NULL, @p_END_DT VARCHAR(20) = NULL, @p_R_LAND_SQUARE decimal = NULL, @p_SCALE NVARCHAR(500) = NULL, @p_CONSTRUCT_SQUARE decimal = NULL, @p_PRICE_DETAIL XML = NULL, @p_DEPOSIT varchar(1) = NULL, @p_DEPOSIT_PRICE decimal = NULL, @p_DEPOSIT_RETURN_DT NVARCHAR(500) = NULL, @p_PURCHASE_EACH_TERM decimal = NULL, @p_PAY_AMT decimal = NULL, @p_PAY_PAY_AMT decimal = NULL, @p_PAY_MONTH_TIMES INT = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_MONTH_TIMES INT = NULL, @p_BRANCH_CREATE varchar(15) = NULL, ----BAODNQ 7/2/2022: Thêm cột TR_CONTRACT_ID, EXTEND_DT, STRUCTURE------ @p_TR_CONTRACT_ID varchar(15) = NULL, @p_EXTEND_DT varchar(20) = NULL, @p_STRUCTURE nvarchar(500) = NULL AS DECLARE @l_ERROR_MESSAGE VARCHAR(1000) BEGIN TRANSACTION -- GEN ID DECLARE @p_RET_R_H_ID VARCHAR(30) DECLARE @p_KeyGen VARCHAR(15); EXEC dbo.SYS_CodeMasters_Gen 'REAL_ESTATE_R_H', @p_RET_R_H_ID out Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_PRICE_DETAIL DECLARE PriceDetail CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetPriceDetail',2) WITH ( RET_PRICE_ID varchar(15), RET_R_H_ID varchar(15), PRICE decimal(18,0), PRICE_DT VARCHAR(20), PRICE_END_DT VARCHAR(20) ) OPEN PriceDetail -- INSERT ----BAODNQ 7/2/2022: Thêm cột TR_CONTRACT_ID, EXTEND_DT, STRUCTURE------ INSERT INTO REAL_ESTATE_R_H (RET_R_H_ID, BRANCH_MANAGE, BRANCH_USE, RET_ADDR, RET_R_H_TIME, START_DT, END_DT, R_LAND_SQUARE, SCALE, CONSTRUCT_SQUARE, DEPOSIT, DEPOSIT_PRICE, DEPOSIT_RETURN_DT, PURCHASE_EACH_TERM, NOTES, RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT,BRANCH_CREATE, MONTH_TIMES, PAY_AMT, PAY_MONTH_TIMES, PAY_PAY_AMT, TR_CONTRACT_ID, EXTEND_DT, STRUCTURE) VALUES (@p_RET_R_H_ID, @p_BRANCH_MANAGE, @p_BRANCH_USE, @p_RET_ADDR, @p_RET_R_H_TIME, CONVERT(DATETIME, @p_START_DT, 103), CONVERT(DATETIME, @p_END_DT, 103), @p_R_LAND_SQUARE, @p_SCALE, @p_CONSTRUCT_SQUARE, @p_DEPOSIT, @p_DEPOSIT_PRICE, @p_DEPOSIT_RETURN_DT, @p_PURCHASE_EACH_TERM, @p_NOTES, @p_RECORD_STATUS, @p_AUTH_STATUS, @p_MAKER_ID, CONVERT(DATETIME, @p_CREATE_DT, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_BRANCH_CREATE,@p_MONTH_TIMES,@p_PAY_AMT, @p_PAY_MONTH_TIMES, @p_PAY_PAY_AMT, @p_TR_CONTRACT_ID, CONVERT(DATETIME, @p_EXTEND_DT, 103), @p_STRUCTURE) IF @@Error <> 0 GOTO ABORT DECLARE @RET_PRICE_ID varchar(15), @RET_R_H_ID varchar(15), @PRICE decimal(18,0), @PRICE_DT VARCHAR(20), @PRICE_END_DT VARCHAR(20) FETCH NEXT FROM PriceDetail INTO @RET_PRICE_ID, @RET_R_H_ID, @PRICE, @PRICE_DT, @PRICE_END_DT WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'RET_PRICE', @RET_PRICE_ID out IF @RET_PRICE_ID ='' OR @RET_PRICE_ID IS NULL GOTO ABORT INSERT INTO RET_PRICE(RET_PRICE_ID, RET_R_H_ID, PRICE, PRICE_DT, PRICE_END_DT) VALUES(@RET_PRICE_ID, @p_RET_R_H_ID, @PRICE, CONVERT(DATETIME, @PRICE_DT, 103), CONVERT(DATETIME, @PRICE_END_DT, 103)) IF @@ERROR <> 0 GOTO ABORT FETCH NEXT FROM PriceDetail INTO @RET_PRICE_ID, @RET_R_H_ID, @PRICE, @PRICE_DT, @PRICE_END_DT END CLOSE PriceDetail DEALLOCATE PriceDetail COMMIT TRANSACTION SELECT '0' as Result, @p_RET_R_H_ID RET_R_H_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN SELECT '-1' as Result, '' RET_R_H_ID, @l_ERROR_MESSAGE ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[CM_BRANCH_ByCode]' GO CREATE PROCEDURE [dbo].[CM_BRANCH_ByCode] @BRANCH_CODE VARCHAR(15) AS BEGIN SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_CODE = @BRANCH_CODE END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_MASTER_App]' GO ALTER PROCEDURE [dbo].[BUD_MASTER_App] @p_BUILDING_ID varchar(15), @P_AUTH_STATUS VARCHAR(1), @P_CHECKER_ID VARCHAR(12), @P_APPROVE_DT VARCHAR(20) AS /* DECLARE @aStatus VARCHAR(1) DECLARE @sErrorCode VARCHAR(20) SET @sErrorCode = '' SELECT @aStatus = [AUTH_STATUS] FROM BUD_MASTER WHERE BUILDING_ID=@p_BUILDING_ID IF @aStatus = 'A' SET @sErrorCode = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ''BUILDING_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END*/ BEGIN TRANSACTION UPDATE BUD_MASTER SET AUTH_STATUS = 'A', CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103) WHERE BUILDING_ID=@p_BUILDING_ID IF @@Error <> 0 GOTO ABORT -- 29/12/2021:datmq Insert to table PL_PROCESS INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_BUILDING_ID, 'APPROVE', @p_CHECKER_ID, GETDATE(), N'Trưởng đơn vị phê duyệt thành công' , N'Trưởng đơn vị phê duyệt' ) COMMIT TRANSACTION SELECT '0' as Result, @p_BUILDING_ID BUILDING_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' BUILDING_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_DOC_Ins]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Ins] @p_REQ_CODE nvarchar(100) = NULL, @p_REQ_NAME nvarchar(200) = NULL, @p_REQ_DT nvarchar(20) = NULL, @p_REQ_TYPE int = NULL, @p_REQ_CONTENT NVARCHAR(4000)=NULL, @p_REQ_REASON NVARCHAR(4000)=NULL, @p_TOTAL_AMT decimal = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(20) = NULL, @p_CREATE_DT varchar(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(20) = NULL, @p_APPROVE_DT nvarchar(20) = NULL, @p_BRANCH_ID VARCHAR(15)=NULL, @p_DVDM_ID VARCHAR(20) = NULL, @p_REQ_PARENT_ID VARCHAR(20) = NULL, @p_BRANCH_FEE NVARCHAR(500) = NULL, @p_DEP_ID VARCHAR(20)=NULL, @p_DEP_FEE_ID VARCHAR(20)= NULL, @p_IS_BACKDAY BIT = NULL, @p_REQ_LINE VARCHAR(20), @p_SIGN_USER VARCHAR(20) = NULL, @p_IS_CHECKALL BIT = NULL, @p_BASED_CONTENT NVARCHAR(3000) = NULL, @p_PL_BASED_ID VARCHAR(15) = NULL, @p_ListGood XML, @p_ListCostCenter XML, @p_ListTransfer XML, @p_ListAttachFile XML AS BEGIN TRANSACTION DECLARE @DEP_ID VARCHAR(15) = (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME = @p_MAKER_ID) -- TABLE INSERT FILE DECLARE @TEMP TABLE ( [KEY] varchar(15), [REF_ID] varchar(15), [TYPE] varchar(50) ) IF(@p_REQ_DT IS NULL) BEGIN SELECT 'REQ-00001' Result, '' REQ_ID, N'Ngày yêu cầu tờ trình không được phép để trống' ErrorDesc ROLLBACK TRANSACTION RETURN '-1' END --IF(CAST(@p_REQ_DT AS DATE) > CAST(GETDATE() AS DATE)) IF(CONVERT(DATETIME,@p_REQ_DT,103) > CONVERT(DATETIME,GETDATE(),103)) BEGIN SELECT 'REQ-00001' Result, '' REQ_ID, N'Ngày yêu cầu không lớn hơn ngày hiện tại' ErrorDesc ROLLBACK TRANSACTION RETURN '-1' END exec [dbo].[PL_REQUEST_DOC_CODE_GenKey] @p_BRANCH_ID,@DEP_ID, @p_REQ_CODE out IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='') BEGIN SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã tờ trình chủ trương bắc buộc nhập' ErrorDesc ROLLBACK TRANSACTION RETURN '-1' END IF EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE) BEGIN SELECT '-1' Result, '' REQ_ID, N'Tờ trình số:' + @p_REQ_CODE + N' đã tồn tại trong hệ thống!"' ErrorDesc ROLLBACK TRANSACTION RETURN '-1' END DECLARE @sErrorCode VARCHAR(20) --insert master DECLARE @l_REQ_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC', @l_REQ_ID out IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT DECLARE @BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20) SET @BRANCH_CREATE= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID) SET @DEP_CREATE=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID) IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS') OR EXISTS(SELECT DEP_ID FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_CREATE AND DEP_CODE LIKE '069%')) SET @DEP_CREATE=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID) ELSE SET @DEP_CREATE='' SET @DEP_ID=@DEP_CREATE SET @p_BRANCH_ID=@BRANCH_CREATE --IF(CAST(@p_REQ_DT AS DATE) < CAST(GETDATE() AS DATE)) IF(CONVERT(DATETIME,@p_REQ_DT,103) < CONVERT(DATETIME,GETDATE(),103)) SET @p_IS_BACKDAY=1; ELSE SET @p_IS_BACKDAY=0 INSERT INTO dbo.PL_REQUEST_DOC ( REQ_ID, REQ_CODE, REQ_NAME, REQ_DT, REQ_TYPE, REQ_CONTENT, REQ_REASON, BRANCH_ID, TOTAL_AMT, NOTES, RECORD_STATUS, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, DVDM_APP_ID, REQ_PARENT_ID, BRANCH_FEE, IS_BACKDAY, PROCESS_ID, DEP_ID, DEP_FEE, BRANCH_CREATE, DEP_CREATE, REQ_LINE,SIGN_USER, IS_CHECKALL, BASED_CONTENT,PL_BASED_ID ) VALUES ( @l_REQ_ID, -- REQ_ID - varchar(15) @p_REQ_CODE, -- REQ_CODE - varchar(100) @p_REQ_NAME, -- REQ_NAME - nvarchar(200) -- CAST(@p_REQ_DT AS DATE), -- REQ_DT - datetime CONVERT(DATETIME,@p_REQ_DT,103), @p_REQ_TYPE, -- REQ_TYPE - int @p_REQ_CONTENT, -- REQ_CONTENT - nvarchar(1000) @p_REQ_REASON, -- REQ_REASON - nvarchar(500) @p_BRANCH_ID, -- BRANCH_ID - varchar(15) @p_TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0) @p_NOTES, -- NOTES - nvarchar(1000) @p_RECORD_STATUS, -- RECORD_STATUS - varchar(1) @p_MAKER_ID, -- MAKER_ID - varchar(12) CONVERT(DATETIME,@p_CREATE_DT,103), --CAST(@p_CREATE_DT AS DATE), -- CREATE_DT - datetime 'E', -- AUTH_STATUS - varchar(50) @p_CHECKER_ID, -- CHECKER_ID - varchar(12) --CAST(@P_APPROVE_DT AS DATE), -- APPROVE_DT - datetime CONVERT(DATETIME,@P_APPROVE_DT,103), @p_DVDM_ID, @p_REQ_PARENT_ID, @p_BRANCH_FEE, @p_IS_BACKDAY, '', @p_DEP_ID, @p_DEP_FEE_ID, @BRANCH_CREATE, @DEP_CREATE, @p_REQ_LINE, @p_SIGN_USER, @p_IS_CHECKALL, @p_BASED_CONTENT,@p_PL_BASED_ID ) IF @@Error <> 0 GOTO ABORT DECLARE @TABLE TABLE( PLAN_ID varchar(15) , TRADE_ID varchar(15) , GOODS_ID varchar(15) , [DESCRIPTION] nvarchar(2000), UNIT_ID varchar(15) , QUANTITY decimal(18,0) , PRICE decimal(18,2) , TOTAL_AMT decimal(18,2), NOTES nvarchar(1000), REQDT_TYPE VARCHAR(1), NAME NVARCHAR(500), DVDM_ID VARCHAR(20), HH_ID VARCHAR(20), CURRENCY nvarchar(50), EXCHANGE_RATE decimal(18,2), TAXES decimal(18, 2), SUP_ID VARCHAR(20), TRADE_TYPE VARCHAR(20), KHOI_ID VARCHAR(20), UNIT_NAME nvarchar(200), SUP_NAME NVARCHAR(250) ) --Insert into TABLE PL_REQUEST_DOC_DT Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_ListGood INSERT INTO @TABLE SELECT PLAN_ID, TRADE_ID, GOODS_ID, DESCRIPTION, UNIT_ID, QUANTITY, PRICE, TOTAL_AMT, NOTES, REQDT_TYPE, NAME, DVDM_ID, HH_ID, CURRENCY, EXCHANGE_RATE, TAXES, SUP_ID, TRADE_TYPE, KHOI_ID,UNIT_NAME,SUP_NAME FROM OPENXML(@hDoc,'/Root/ListGood',2) WITH ( PLAN_ID varchar(15) , TRADE_ID varchar(15) , GOODS_ID varchar(15) , [DESCRIPTION] nvarchar(2000), UNIT_ID varchar(15) , QUANTITY decimal(18,0) , PRICE decimal(18,2) , TOTAL_AMT decimal(18,2), NOTES nvarchar(1000), REQDT_TYPE VARCHAR(1), NAME NVARCHAR(500), DVDM_ID VARCHAR(20), HH_ID VARCHAR(20), CURRENCY nvarchar(50), EXCHANGE_RATE decimal(18,2), TAXES decimal(18, 2), SUP_ID VARCHAR(20), TRADE_TYPE VARCHAR(20), KHOI_ID VARCHAR(20), UNIT_NAME nvarchar(200), SUP_NAME NVARCHAR(250) ) DECLARE @TABLE_TRANSFER TABLE ( FR_PLAN_ID varchar(15), FR_TRADE_ID varchar(15), FR_GOOD_ID varchar(15), FR_BRN_ID varchar(15), TO_BRN_ID varchar(15), TO_PLAN_ID varchar(15), TO_TRADE_ID varchar(15), TO_GOOD_ID varchar(15), QTY DECIMAL(18,0), TOTAL_AMT decimal(18), NOTES nvarchar(1000), FR_DEP_ID VARCHAR(20), TO_DEP_ID VARCHAR(20), FR_DVDM_ID VARCHAR(20), TO_DVDM_ID VARCHAR(20), FR_KHOI_ID VARCHAR(20), TO_KHOI_ID VARCHAR(20), FR_GD_TYPE VARCHAR(20), TO_GD_TYPE VARCHAR(20), FR_AMT_REMAIN decimal(18), FR_AMT_REMAIN_ETM_TF decimal(18) ) Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer INSERT INTO @TABLE_TRANSFER SELECT FR_PLAN_ID, FR_TRADE_ID, FR_GOOD_ID, FR_BRN_ID, TO_BRN_ID, TO_PLAN_ID, TO_TRADE_ID, TO_GOOD_ID, QTY, TOTAL_AMT, NOTES, FR_DEP_ID, TO_DEP_ID, FR_DVDM_ID, TO_DVDM_ID, FR_KHOI_ID, TO_KHOI_ID, FR_GD_TYPE, TO_GD_TYPE, FR_AMT_REMAIN, FR_AMT_REMAIN_ETM_TF FROM OPENXML(@hdoc,'/Root/ListTransfer',2) WITH ( FR_PLAN_ID varchar(15), FR_TRADE_ID varchar(15), FR_GOOD_ID varchar(15), FR_BRN_ID varchar(15), TO_BRN_ID varchar(15), TO_PLAN_ID varchar(15), TO_TRADE_ID varchar(15), TO_GOOD_ID varchar(15), QTY DECIMAL(18,0), TOTAL_AMT decimal(18), NOTES nvarchar(1000), FR_DEP_ID VARCHAR(20), TO_DEP_ID VARCHAR(20), FR_DVDM_ID VARCHAR(20), TO_DVDM_ID VARCHAR(20), FR_KHOI_ID VARCHAR(20), TO_KHOI_ID VARCHAR(20), FR_GD_TYPE VARCHAR(20), TO_GD_TYPE VARCHAR(20), FR_AMT_REMAIN DECIMAL(18), FR_AMT_REMAIN_ETM_TF DECIMAL(18) ) --WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL DECLARE ListGoods CURSOR FOR SELECT PLAN_ID, TRADE_ID, GOODS_ID, DESCRIPTION, UNIT_ID, QUANTITY, PRICE, TOTAL_AMT, NOTES, REQDT_TYPE, NAME, DVDM_ID, HH_ID, CURRENCY, EXCHANGE_RATE, TAXES, SUP_ID, TRADE_TYPE,KHOI_ID,UNIT_NAME,SUP_NAME FROM @TABLE OPEN ListGoods Declare @PLAN_ID varchar(15), @TRADE_ID varchar(15), @GOODS_ID varchar(15), @DESCRIPTION nvarchar(2000), @UNIT_ID varchar(15), @QUANTITY decimal(18), @PRICE decimal(18,2), @TOTAL_AMT decimal(18,2), @NOTES nvarchar(1000), @REQDT_TYPE VARCHAR(1), @NAME NVARCHAR(500), @DVDM_ID VARCHAR(20), @HH_ID VARCHAR(20), @CURRENCY nvarchar(50), @EXCHANGE_RATE decimal(18, 2), @TAXES decimal(18, 2), @SUP_ID VARCHAR(20), @TRADE_TYPE VARCHAR(20), @KHOI_ID VARCHAR(20), @UNIT_NAME nvarchar(200), @SUP_NAME NVARCHAR(250), @l_SUP_ID VARCHAR(15) FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY, @PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME,@SUP_NAME WHILE @@FETCH_STATUS = 0 BEGIN -- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP --IF(@TRADE_TYPE IS NOT NULL AND @TRADE_TYPE <>'' AND @TRADE_TYPE ='VCCB' AND (@SUP_ID IS NOT NULL AND @SUP_ID <>'')) --BEGIN -- SELECT 'REQ-00001' Result, '' REQ_ID, N'Lưới hàng hóa: Nếu chọn hình thức mua sắm theo quy định VCCB thì bạn không được phép chọn nhà cung cấp. Vui lòng để trống nhà cung cấp' ErrorDesc -- ROLLBACK TRANSACTION -- RETURN '-1' --END IF(@SUP_NAME IS NOT NULL AND @SUP_NAME <>'') BEGIN IF(NOT EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME)) BEGIN EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT INSERT INTO CM_SUPPLIER([DISCIPLINES],[SUP_ID],[SUP_CODE],[SUP_NAME],[SUP_TYPE_ID],[REGION_ID],[ADDR],[EMAIL],[TAX_NO],[TEL],[CONTACT_PERSON],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],ACC_NUM) VALUES('', @l_SUP_ID ,@l_SUP_ID ,@SUP_NAME ,NULL ,NULL ,'' ,'' ,'' ,'' ,'' ,'' ,'1' ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,'U' ,NULL,NULL,NULL) SET @SUP_ID =@l_SUP_ID END ELSE BEGIN SET @l_SUP_ID =(SELECT TOP 1 SUP_ID FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME) IF(@l_SUP_ID <> '' AND @SUP_ID IS NOT NULL) BEGIN SET @SUP_ID =@l_SUP_ID END --END END END DECLARE @l_REQDT_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_DT', @l_REQDT_ID out IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT --SET @TOTAL_AMT=(@PRICE * @QUANTITY * @EXCHANGE_RATE) + (@TAXES * @EXCHANGE_RATE) INSERT INTO dbo.PL_REQUEST_DOC_DT ( REQDT_ID, REQ_ID, PLAN_ID, TRADE_ID, GOODS_ID, NAME, DESCRIPTION, REQDT_TYPE, UNIT_ID, QUANTITY, PRICE, TOTAL_AMT, RECORD_STATUS, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, DVDM_ID, HANGHOA_ID, CURRENCY, EXCHANGE_RATE, TAXES,SUP_ID,TRADE_TYPE,KHOI_ID,UNIT_NAME ) VALUES ( @l_REQDT_ID, -- REQDT_ID - varchar(15) @l_REQ_ID, -- REQ_ID - varchar(15) @PLAN_ID, -- PLAN_ID - varchar(15) @TRADE_ID, -- TRADE_ID - varchar(15) @GOODS_ID, -- GOODS_ID - varchar(15) @NAME, -- NAME - nvarchar(200) @DESCRIPTION, -- DESCRIPTION - nvarchar(500) @REQDT_TYPE, -- REQDT_TYPE - varchar(1) @UNIT_ID, -- UNIT_ID - varchar(15) @QUANTITY, -- QUANTITY - decimal(18, 0) @PRICE, -- PRICE - decimal(18, 0) @TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0) @p_RECORD_STATUS, -- RECORD_STATUS - varchar(1) @p_MAKER_ID, -- MAKER_ID - varchar(15) CONVERT(DATETIME, @p_CREATE_DT, 103), --CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime @p_AUTH_STATUS, -- AUTH_STATUS - varchar(50) @p_CHECKER_ID, -- CHECKER_ID - varchar(15) CONVERT(DATETIME, @P_APPROVE_DT, 103), --CAST(@P_APPROVE_DT AS DATE), -- APPROVE_DT - datetime @DVDM_ID, @HH_ID, @CURRENCY, @EXCHANGE_RATE, @TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME ) IF @@ERROR <> 0 GOTO ABORT1 -- next Group_Id FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY, @PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME,@SUP_NAME END CLOSE ListGoods DEALLOCATE ListGoods IF @@Error <> 0 GOTO ABORT --Insert into TABLE PL_REQUEST_DOC_DT UPDATE dbo.PL_REQUEST_DOC SET TOTAL_AMT = (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID =@l_REQ_ID) WHERE PL_REQUEST_DOC.REQ_ID=@l_REQ_ID Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer DECLARE ListTransfers CURSOR FOR SELECT * FROM @TABLE_TRANSFER OPEN ListTransfers Declare @FR_PLAN_ID varchar(15), @FR_TRADE_ID varchar(15), @FR_GOOD_ID varchar(15), @FR_BRN_ID varchar(15), @TO_BRN_ID varchar(15), @TO_PLAN_ID varchar(15), @TO_TRADE_ID varchar(15), @TO_GOOD_ID varchar(15), @QTY DECIMAL(18,0), @FR_DEP_ID VARCHAR(20), @TO_DEP_ID VARCHAR(20), @FR_DVDM_ID VARCHAR(20), @TO_DVDM_ID VARCHAR(20), @FR_KHOI_ID VARCHAR(20), @TO_KHOI_ID VARCHAR(20), @FR_GD_TYPE VARCHAR(20), @TO_GD_TYPE VARCHAR(20), @FR_AMT_REMAIN decimal(18), @FR_AMT_REMAIN_ETM_TF decimal(18) FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID, @TO_TRADE_ID,@TO_GOOD_ID,@QTY,@TOTAL_AMT, @NOTES,@FR_DEP_ID,@TO_DEP_ID,@FR_DVDM_ID,@TO_DVDM_ID,@FR_KHOI_ID,@TO_KHOI_ID,@FR_GD_TYPE,@TO_GD_TYPE,@FR_AMT_REMAIN,@FR_AMT_REMAIN_ETM_TF WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_REQ_TRANSFER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_TRANSFER', @l_REQ_TRANSFER_ID out IF @l_REQ_TRANSFER_ID='' OR @l_REQ_TRANSFER_ID IS NULL GOTO ABORT INSERT INTO dbo.PL_REQUEST_TRANSFER ( REQ_TRANSFER_ID, REQ_DOC_ID, FR_PLAN_ID, FR_TRADE_ID, FR_GOOD_ID, FR_BRN_ID, TO_BRN_ID, TO_PLAN_ID, TO_TRADE_ID, TO_GOOD_ID, QTY, TOTAL_AMT, NOTES, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, FR_DEP_ID, TO_DEP_ID, FR_DVDM_ID, TO_DVDM_ID, FR_KHOI_ID, TO_KHOI_ID, FR_AMT_EXE, FR_AMT_ETM ) VALUES ( @l_REQ_TRANSFER_ID, -- REQ_TRANSFER_ID - varchar(15) @l_REQ_ID, -- REQ_DOC_ID - varchar(15) @FR_PLAN_ID, -- FR_PLAN_ID - varchar(15) @FR_TRADE_ID, -- FR_TRADE_ID - varchar(15) @FR_GOOD_ID, -- FR_GOOD_ID - varchar(15) @FR_BRN_ID, -- FR_BRN_ID - varchar(15) @TO_BRN_ID, -- TO_BRN_ID - varchar(15) @TO_PLAN_ID, -- TO_PLAN_ID - varchar(15) @TO_TRADE_ID, -- TO_TRADE_ID - varchar(15) @TO_GOOD_ID, -- TO_GOOD_ID - varchar(15) @QTY, -- QTY - decimal(18, 0) @TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0) @NOTES, -- NOTES - nvarchar(500) @p_AUTH_STATUS, -- AUTH_STATUS - varchar(1) @p_MAKER_ID, -- MAKER_ID - varchar(15) CONVERT(DATETIME, @p_CREATE_DT, 103), --CAST(@p_CREATE_DT AS DATE), -- CREATE_DT - datetime @p_CHECKER_ID, -- CHECKER_ID - varchar(15) CONVERT(DATETIME, @p_APPROVE_DT, 103), --CAST(@p_APPROVE_DT AS DATE), @FR_DEP_ID, @TO_DEP_ID, @FR_DVDM_ID, @TO_DVDM_ID, @FR_KHOI_ID, @TO_KHOI_ID, -- APPROVE_DT - datetime @FR_AMT_REMAIN, @FR_AMT_REMAIN_ETM_TF ) IF @@ERROR <> 0 GOTO ABORT1 -- next Group_Id FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID, @TO_TRADE_ID,@TO_GOOD_ID,@QTY,@TOTAL_AMT, @NOTES,@FR_DEP_ID,@TO_DEP_ID,@FR_DVDM_ID,@TO_DVDM_ID,@FR_KHOI_ID,@TO_KHOI_ID,@FR_GD_TYPE,@TO_GD_TYPE,@FR_AMT_REMAIN,@FR_AMT_REMAIN_ETM_TF END CLOSE ListTransfers DEALLOCATE ListTransfers IF @@Error <> 0 GOTO ABORT --Insert into TABLE PL_REQUEST_DOC_DT Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter DECLARE ListCostCenters CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListCostCenter',2) WITH ( COST_ID varchar(15), NOTES nvarchar(1000) ) WHERE COST_ID <>'DVDM-CHUNG' OPEN ListCostCenters Declare @COST_ID varchar(15) FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_REQ_COST_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_COSTCENTER', @l_REQ_COST_ID out IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT INSERT INTO dbo.PL_REQUEST_COSTCENTER ( REQ_COST_ID, COST_ID, REQ_ID, NOTES, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT ) VALUES ( @l_REQ_COST_ID, -- REQ_COST_ID - varchar(15) @COST_ID, -- COST_ID - varchar(15) @l_REQ_ID, -- REQ_ID - varchar(15) @NOTES, -- NOTES - nvarchar(500) @p_AUTH_STATUS, -- AUTH_STATUS - varchar(1) @p_MAKER_ID, -- MAKER_ID - varchar(15) CONVERT(DATETIME, @p_CREATE_DT, 103), --CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime @p_CHECKER_ID, -- CHECKER_ID - varchar(15) CONVERT(DATETIME, @p_APPROVE_DT, 103) --CAST(@p_APPROVE_DT AS DATE) -- APPROVE_DT - datetime ) IF @@ERROR <> 0 GOTO ABORT1 -- next Group_Id FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES END CLOSE ListCostCenters DEALLOCATE ListCostCenters -- Insert into TABLE PL_REQUEST_DOC_FILE DECLARE @tableAttachFile TABLE( TR_REQUEST_DOC_FILE_ID varchar(20) , IS_VIEW bit, REQ_ID varchar(20), NOTES nvarchar(200) ) Declare @fdoc INT Exec sp_xml_preparedocument @fdoc Output,@p_ListAttachFile INSERT INTO @tableAttachFile SELECT * FROM OPENXML(@fDoc,'/Root/ListAttachFile',2) WITH ( PL_REQUEST_DOC_FILE_ID varchar(20) , IS_VIEW bit, REQ_ID varchar(20), NOTES nvarchar(200) ) DECLARE ListAttachFile CURSOR FOR SELECT * FROM @tableAttachFile OPEN ListAttachFile Declare @PL_REQUEST_DOC_FILE_ID varchar(20) , @IS_VIEW bit, @REQ_ID varchar(20), @_NOTES nvarchar(200) FETCH NEXT FROM ListAttachFile INTO @PL_REQUEST_DOC_FILE_ID,@IS_VIEW,@REQ_ID,@_NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_File_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_FILE', @l_File_ID out IF @l_File_ID='' OR @l_File_ID IS NULL GOTO ABORT INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_File_ID, 'PL_REQUEST_DOC_FILE') INSERT INTO dbo.PL_REQUEST_DOC_FILE ( [PL_REQUEST_DOC_FILE_ID] ,[IS_VIEW] ,[REQ_ID] ,[NOTES] ) VALUES ( @l_File_ID ,isnull(@IS_VIEW,0) ,@l_REQ_ID ,@_NOTES ) IF @@ERROR <> 0 GOTO ABORT1 FETCH NEXT FROM ListAttachFile INTO @PL_REQUEST_DOC_FILE_ID,@IS_VIEW,@REQ_ID,@_NOTES END CLOSE ListAttachFile DEALLOCATE ListAttachFile IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION IF (SELECT COUNT(*) FROM @TEMP) = 0 BEGIN SELECT '0' as Result, @l_REQ_ID REQ_ID,'', '' , @p_REQ_CODE AS ErrorDesc RETURN '0' END ELSE BEGIN SELECT '0' as Result, @l_REQ_ID REQ_ID,REF_ID, [TYPE] , @p_REQ_CODE AS ErrorDesc FROM @TEMP RETURN '0' END ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_ID, '' ErrorDesc RETURN '-1' End ABORT1: BEGIN CLOSE ListGoods DEALLOCATE ListGoods CLOSE ListCostCenters DEALLOCATE ListCostCenters CLOSE ListCostCenters DEALLOCATE ListCostCenters ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[BUD_MASTER_Ins] @p_ASSET_ID varchar(15) = NULL, @p_BUILDING_NAME nvarchar(1000) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_ADDRESS nvarchar(800) = NULL, @p_OWNER_OR_RENT varchar(1) = NULL, @p_NUM_FLOOR int = NULL, @p_AREA numeric(18) = NULL, @p_TOTAL_AREA numeric(18) = NULL, @p_RENT_TOTAL_AREA numeric(18) = NULL, @p_UTILZED_AREA numeric(18) = NULL, @p_NOTES ntext = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_RENT_AMT DECIMAL(18,0) =NULL, @p_DEPOSITS_AMT DECIMAL(18,0) =NULL, @p_RENT_TIME int, @p_IS_SEND_APPR VARCHAR(15), @p_SEND_APPR_DT VARCHAR(20), @p_SIGN_USER VARCHAR(15), @p_SIGN_DT VARCHAR(15) AS /* --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM BUD_MASTER WHERE BUILDING_ID=@p_BUILDING_ID SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' BUILDING_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ BEGIN TRANSACTION DECLARE @l_BUILDING_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'BUD_MASTER', @l_BUILDING_ID out IF @l_BUILDING_ID='' OR @l_BUILDING_ID IS NULL GOTO ABORT INSERT INTO BUD_MASTER([BUILDING_ID],[ASSET_ID],[BUILDING_NAME],[BRANCH_ID],[ADDRESS],[OWNER_OR_RENT], [NUM_FLOOR],[AREA],[TOTAL_AREA],[RENT_TOTAL_AREA],[UTILZED_AREA],[NOTES],[RECORD_STATUS], [AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[XML_TEMP],[RENT_AMT],[DEPOSITS_AMT],[RENT_TIME],[IS_SEND_APPR],[SEND_APPR_DT], [SIGN_USER], [SIGN_DT] ) VALUES(@l_BUILDING_ID ,@p_ASSET_ID ,@p_BUILDING_NAME ,@p_BRANCH_ID ,@p_ADDRESS , @p_OWNER_OR_RENT ,@p_NUM_FLOOR ,@p_AREA ,@p_TOTAL_AREA ,@p_RENT_TOTAL_AREA ,0 , @p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) , @p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_XML_TEMP,@p_RENT_AMT,@p_DEPOSITS_AMT,@p_RENT_TIME,@p_IS_SEND_APPR , @p_SEND_APPR_DT ,@p_SIGN_USER,@p_SIGN_DT) IF @@Error <> 0 GOTO ABORT Declare @hdoc1 INT DECLARE @d_BUILDING_AREA_ID VARCHAR(15), @d_FLOOR_NO INT, @d_FLOOR_AREA decimal, @d_INTERNAL_AREA decimal, @d_RENT_AREA decimal, @d_UTILZED_AREA decimal, @d_NOTES NVARCHAR(1000) Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( BUILDING_AREA_ID VARCHAR(15), FLOOR_NO INT, FLOOR_AREA decimal, INTERNAL_AREA decimal, RENT_AREA decimal, UTILZED_AREA decimal, NOTES NVARCHAR(1000) ) OPEN XmlDataDoc FETCH NEXT FROM XmlDataDoc INTO @d_BUILDING_AREA_ID , @d_FLOOR_NO , @d_FLOOR_AREA , @d_INTERNAL_AREA , @d_RENT_AREA , @d_UTILZED_AREA , @d_NOTES WHILE @@FETCH_STATUS = 0 BEGIN IF(LEN( @d_BUILDING_AREA_ID)=0) EXEC SYS_CodeMasters_Gen 'BUD_AREA_DT', @d_BUILDING_AREA_ID out IF @d_BUILDING_AREA_ID='' OR @d_BUILDING_AREA_ID IS NULL GOTO ABORT INSERT INTO BUD_AREA_DT([BUILDING_AREA_ID],[BUILD_ID],[FLOOR_NO],[FLOOR_AREA],[INTERNAL_AREA], [RENT_AREA],[UTILZED_AREA],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT]) VALUES(@d_BUILDING_AREA_ID ,@l_BUILDING_ID ,@d_FLOOR_NO ,@d_FLOOR_AREA ,@d_INTERNAL_AREA ,@d_RENT_AREA , @d_UTILZED_AREA ,@d_NOTES,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlDataDoc INTO @d_BUILDING_AREA_ID , @d_FLOOR_NO , @d_FLOOR_AREA , @d_INTERNAL_AREA , @d_RENT_AREA , @d_UTILZED_AREA , @d_NOTES END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc -----**** UPDATE ------ --8/12/2021,datmq thêm UTILZED_AREA=(SELECT SUM(UTILZED_AREA))---- UPDATE BUD_MASTER SET TOTAL_AREA = (SELECT SUM(FLOOR_AREA) FROM BUD_AREA_DT WHERE BUILD_ID=@l_BUILDING_ID) WHERE BUILDING_ID=@l_BUILDING_ID -- 29/12/2021:datmq Insert to table PL_PROCESS INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @l_BUILDING_ID, 'INSERT', @p_MAKER_ID, GETDATE(), N'Thêm mới quản lý trụ sở thành công' , N'Thêm mới quản lý trụ sở' ) COMMIT TRANSACTION SELECT '0' as Result, @l_BUILDING_ID BUILDING_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlDataDoc DEALLOCATE XmlDataDoc ROLLBACK TRANSACTION SELECT '-1' as Result, '' BUILDING_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_DOC_Upd]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Upd] @p_REQ_ID VARCHAR(15)=NULL, @p_REQ_CODE nvarchar(100) = NULL, @p_REQ_NAME nvarchar(200) = NULL, @p_REQ_DT NVARCHAR(20) = NULL, @p_REQ_TYPE int = NULL, @p_REQ_CONTENT NVARCHAR(1000)=NULL, @p_REQ_REASON NVARCHAR(500)=NULL, @p_TOTAL_AMT decimal = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(20) = NULL, @p_CREATE_DT NVARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(20) = NULL, @p_APPROVE_DT NVARCHAR(20) = NULL, @p_BRANCH_ID VARCHAR(15)=NULL, @p_DVDM_ID VARCHAR(20) = NULL, @p_REQ_PARENT_ID VARCHAR(20) = NULL, @p_BRANCH_FEE NVARCHAR(500) = NULL, @p_DEP_ID VARCHAR(20)=NULL, @p_DEP_FEE_ID VARCHAR(20)= NULL, @p_IS_BACKDAY BIT= NULL, @p_REQ_LINE VARCHAR(20), @p_SIGN_USER VARCHAR(20) = NULL, @p_IS_CHECKALL BIT = NULL, @p_BASED_CONTENT NVARCHAR(3000) = NULL, @p_PL_BASED_ID VARCHAR(15)= NULL, @p_ListGood XML, @p_ListCostCenter XML, @p_ListTransfer XML, @p_ListAttachFile XML AS DECLARE @TEMP TABLE ( [KEY] varchar(15), [REF_ID] varchar(15), [TYPE] varchar(50) ) SET @p_CREATE_DT =convert(datetime,@p_CREATE_DT,103) SET @p_APPROVE_DT=convert(datetime,@p_APPROVE_DT,103) SET @p_REQ_DT = convert(datetime,@p_REQ_DT,103) IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='') BEGIN SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã tờ trình chủ trương bắt buộc nhập' ErrorDesc RETURN '-1' END IF EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID) BEGIN SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001' RETURN '-1' END DECLARE @sErrorCode VARCHAR(20) BEGIN TRANSACTION DECLARE @BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20) SET @BRANCH_CREATE= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID) SET @DEP_CREATE=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID) IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS') OR EXISTS(SELECT DEP_ID FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_CREATE AND DEP_CODE LIKE '069%')) SET @DEP_CREATE=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID) ELSE SET @DEP_CREATE='' SET @p_DEP_ID=@DEP_CREATE SET @p_BRANCH_ID=@BRANCH_CREATE IF(convert(datetime,@p_REQ_DT,103) < CAST(GETDATE() AS DATE)) SET @p_IS_BACKDAY=1; ELSE SET @p_IS_BACKDAY=0 UPDATE dbo.PL_REQUEST_DOC SET REQ_CODE=@p_REQ_CODE,REQ_NAME=@p_REQ_NAME,REQ_TYPE=@p_REQ_TYPE,REQ_CONTENT=@p_REQ_CONTENT,REQ_REASON=@p_REQ_REASON,RECORD_STATUS=@p_RECORD_STATUS ,BRANCH_ID=@p_BRANCH_ID,TOTAL_AMT=@p_TOTAL_AMT,NOTES=@p_NOTES,MAKER_ID=@p_MAKER_ID,CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=@p_APPROVE_DT,AUTH_STATUS=@p_AUTH_STATUS,DVDM_APP_ID=@p_DVDM_ID ,REQ_PARENT_ID=@p_REQ_PARENT_ID,BRANCH_FEE=@p_BRANCH_FEE,IS_BACKDAY=@p_IS_BACKDAY,DEP_ID=@p_DEP_ID,DEP_FEE=@p_DEP_FEE_ID,REQ_LINE=@p_REQ_LINE,SIGN_USER = @p_SIGN_USER,IS_CHECKALL=@p_IS_CHECKALL,BASED_CONTENT=@p_BASED_CONTENT, PL_BASED_ID =@p_PL_BASED_ID WHERE REQ_ID=@p_REQ_ID DELETE FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID DELETE FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID DELETE FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID IF @@Error <> 0 GOTO ABORT --Insert into TABLE PL_REQUEST_DOC_DT DECLARE @TABLE TABLE( PLAN_ID varchar(15) , TRADE_ID varchar(15) , GOODS_ID varchar(15) , [DESCRIPTION] nvarchar(4000), UNIT_ID varchar(15) , QUANTITY decimal(18,0) , PRICE decimal(18,2) , TOTAL_AMT decimal(18,2), NOTES nvarchar(4000), REQDT_TYPE VARCHAR(1), NAME NVARCHAR(500), DVDM_ID VARCHAR(20), HH_ID VARCHAR(20), CURRENCY nvarchar(50), EXCHANGE_RATE decimal(18,2), TAXES decimal(18, 2), SUP_ID VARCHAR(20), TRADE_TYPE VARCHAR(20), KHOI_ID VARCHAR(20), UNIT_NAME NVARCHAR(200), SUP_NAME NVARCHAR(250) ) --Insert into TABLE PL_REQUEST_DOC_DT Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_ListGood INSERT INTO @TABLE SELECT PLAN_ID, TRADE_ID, GOODS_ID, DESCRIPTION, UNIT_ID, QUANTITY, PRICE, TOTAL_AMT, NOTES, REQDT_TYPE, NAME, DVDM_ID, HH_ID, CURRENCY, EXCHANGE_RATE, TAXES, SUP_ID, TRADE_TYPE, KHOI_ID,UNIT_NAME, SUP_NAME FROM OPENXML(@hDoc,'/Root/ListGood',2) WITH ( PLAN_ID varchar(15) , TRADE_ID varchar(15) , GOODS_ID varchar(15) , [DESCRIPTION] nvarchar(4000), UNIT_ID varchar(15) , QUANTITY decimal(18,0) , PRICE decimal(18,2) , TOTAL_AMT decimal(18,2), NOTES nvarchar(4000), REQDT_TYPE VARCHAR(1), NAME NVARCHAR(4000), DVDM_ID VARCHAR(20), HH_ID VARCHAR(20), CURRENCY nvarchar(50), EXCHANGE_RATE decimal(18,2), TAXES decimal(18, 2), SUP_ID VARCHAR(20), TRADE_TYPE VARCHAR(20), KHOI_ID VARCHAR(20), UNIT_NAME NVARCHAR(200), SUP_NAME NVARCHAR(200) ) DECLARE @TABLE_TRANSFER TABLE ( FR_PLAN_ID varchar(15), FR_TRADE_ID varchar(15), FR_GOOD_ID varchar(15), FR_BRN_ID varchar(15), TO_BRN_ID varchar(15), TO_PLAN_ID varchar(15), TO_TRADE_ID varchar(15), TO_GOOD_ID varchar(15), QTY DECIMAL(18,0), TOTAL_AMT decimal(18), NOTES nvarchar(1000), FR_DEP_ID VARCHAR(20), TO_DEP_ID VARCHAR(20), FR_DVDM_ID VARCHAR(20), TO_DVDM_ID VARCHAR(20), FR_KHOI_ID VARCHAR(20), TO_KHOI_ID VARCHAR(20), FR_GD_TYPE VARCHAR(20), TO_GD_TYPE VARCHAR(20), FR_AMT_REMAIN decimal(18), FR_AMT_REMAIN_ETM_TF decimal(18) ) Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer INSERT INTO @TABLE_TRANSFER SELECT FR_PLAN_ID, FR_TRADE_ID, FR_GOOD_ID, FR_BRN_ID, TO_BRN_ID, TO_PLAN_ID, TO_TRADE_ID, TO_GOOD_ID, QTY, TOTAL_AMT, NOTES, FR_DEP_ID, TO_DEP_ID, FR_DVDM_ID, TO_DVDM_ID, FR_KHOI_ID, TO_KHOI_ID, FR_GD_TYPE, TO_GD_TYPE, FR_AMT_REMAIN, FR_AMT_REMAIN_ETM_TF FROM OPENXML(@hdoc,'/Root/ListTransfer',2) WITH ( FR_PLAN_ID varchar(15), FR_TRADE_ID varchar(15), FR_GOOD_ID varchar(15), FR_BRN_ID varchar(15), TO_BRN_ID varchar(15), TO_PLAN_ID varchar(15), TO_TRADE_ID varchar(15), TO_GOOD_ID varchar(15), QTY DECIMAL(18,0), TOTAL_AMT decimal(18), NOTES nvarchar(1000), FR_DEP_ID VARCHAR(20), TO_DEP_ID VARCHAR(20), FR_DVDM_ID VARCHAR(20), TO_DVDM_ID VARCHAR(20), FR_KHOI_ID VARCHAR(20), TO_KHOI_ID VARCHAR(20), FR_GD_TYPE VARCHAR(20), TO_GD_TYPE VARCHAR(20), FR_AMT_REMAIN DECIMAL(18), FR_AMT_REMAIN_ETM_TF DECIMAL(18) ) --WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL DECLARE ListGoods CURSOR FOR SELECT PLAN_ID, TRADE_ID, GOODS_ID, DESCRIPTION, UNIT_ID, QUANTITY, PRICE, TOTAL_AMT, NOTES, REQDT_TYPE, NAME, DVDM_ID, HH_ID, CURRENCY, EXCHANGE_RATE, TAXES, SUP_ID, TRADE_TYPE,KHOI_ID,UNIT_NAME,SUP_NAME FROM @TABLE OPEN ListGoods Declare @PLAN_ID varchar(15), @TRADE_ID varchar(15), @GOODS_ID varchar(15), @DESCRIPTION nvarchar(4000), @UNIT_ID varchar(15), @QUANTITY decimal(18), @PRICE decimal(18,2), @TOTAL_AMT decimal(18,2), @NOTES nvarchar(4000), @REQDT_TYPE VARCHAR(1), @NAME NVARCHAR(4000), @DVDM_ID VARCHAR(20), @HH_ID VARCHAR(20), @CURRENCY nvarchar(50), @EXCHANGE_RATE decimal(18, 2), @TAXES decimal(18, 2), @SUP_ID VARCHAR(20), @TRADE_TYPE VARCHAR(20), @KHOI_ID VARCHAR(20), @UNIT_NAME NVARCHAR(200), @SUP_NAME NVARCHAR(200), @l_SUP_ID VARCHAR(15) FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY, @PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME,@SUP_NAME WHILE @@FETCH_STATUS = 0 BEGIN -- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP --IF(@TRADE_TYPE IS NOT NULL AND @TRADE_TYPE <>'' AND @TRADE_TYPE ='VCCB' AND (@SUP_ID IS NOT NULL AND @SUP_ID <>'')) --BEGIN -- SELECT 'REQ-00001' Result, '' REQ_ID, N'Nếu hình thức mua sắm theo quy định VCCB thì bạn không được phép chọn nhà cung cấp. Vui lòng để trống nhà cung cấp' ErrorDesc -- ROLLBACK TRANSACTION -- RETURN '-1' --END --- THEM NHA CUNG CAP --IF(@SUP_NAME IS NOT NULL AND @SUP_NAME <>'') --BEGIN --IF(NOT EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME)) --BEGIN -- EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out -- IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT -- INSERT INTO CM_SUPPLIER([DISCIPLINES],[SUP_ID],[SUP_CODE],[SUP_NAME],[SUP_TYPE_ID],[REGION_ID],[ADDR],[EMAIL],[TAX_NO],[TEL],[CONTACT_PERSON],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],ACC_NUM) -- VALUES('', @l_SUP_ID ,@l_SUP_ID ,@SUP_NAME ,NULL ,NULL ,'' ,'' ,'' ,'' ,'' ,'' ,'1' ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,'U' ,NULL,NULL,NULL) -- SET @SUP_ID =@l_SUP_ID --END --ELSE --BEGIN --SET @l_SUP_ID =(SELECT TOP 1 SUP_ID FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME) --IF(@l_SUP_ID <> '' AND @SUP_ID IS NOT NULL) --BEGIN -- SET @SUP_ID =@l_SUP_ID --END --END --END --END ------- DECLARE @l_REQDT_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_DT', @l_REQDT_ID out IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT --SET @TOTAL_AMT=(@PRICE * @QUANTITY * @EXCHANGE_RATE) + (@TAXES * @EXCHANGE_RATE) INSERT INTO dbo.PL_REQUEST_DOC_DT ( REQDT_ID, REQ_ID, PLAN_ID, TRADE_ID, GOODS_ID, NAME, DESCRIPTION, REQDT_TYPE, UNIT_ID, QUANTITY, PRICE, TOTAL_AMT, RECORD_STATUS, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, DVDM_ID, HANGHOA_ID, CURRENCY, EXCHANGE_RATE, TAXES,SUP_ID,TRADE_TYPE,KHOI_ID,UNIT_NAME ) VALUES ( @l_REQDT_ID, -- REQDT_ID - varchar(15) @p_REQ_ID, -- REQ_ID - varchar(15) @PLAN_ID, -- PLAN_ID - varchar(15) @TRADE_ID, -- TRADE_ID - varchar(15) @GOODS_ID, -- GOODS_ID - varchar(15) @NOTES, -- NAME - nvarchar(200) @DESCRIPTION, -- DESCRIPTION - nvarchar(500) @REQDT_TYPE, -- REQDT_TYPE - varchar(1) @UNIT_ID, -- UNIT_ID - varchar(15) @QUANTITY, -- QUANTITY - decimal(18, 0) @PRICE, -- PRICE - decimal(18, 0) @TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0) @p_RECORD_STATUS, -- RECORD_STATUS - varchar(1) @p_MAKER_ID, -- MAKER_ID - varchar(15) convert(datetime,@p_CREATE_DT,103) , -- CREATE_DT - datetime @p_AUTH_STATUS, -- AUTH_STATUS - varchar(50) @p_CHECKER_ID, -- CHECKER_ID - varchar(15) convert(datetime,@p_APPROVE_DT,103), -- APPROVE_DT - datetime @DVDM_ID, @HH_ID, @CURRENCY, @EXCHANGE_RATE, @TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME ) IF @@ERROR <> 0 GOTO ABORT1 -- next Group_Id FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY, @PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME,@SUP_NAME END CLOSE ListGoods DEALLOCATE ListGoods IF @@Error <> 0 GOTO ABORT --Insert into TABLE PL_REQUEST_DOC_DT UPDATE dbo.PL_REQUEST_DOC SET TOTAL_AMT = (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID =@p_REQ_ID) WHERE PL_REQUEST_DOC.REQ_ID=@p_REQ_ID DECLARE ListTransfers CURSOR FOR SELECT * FROM @TABLE_TRANSFER OPEN ListTransfers Declare @FR_PLAN_ID varchar(15), @FR_TRADE_ID varchar(15), @FR_GOOD_ID varchar(15), @FR_BRN_ID varchar(15), @TO_BRN_ID varchar(15), @TO_PLAN_ID varchar(15), @TO_TRADE_ID varchar(15), @TO_GOOD_ID varchar(15), @QTY DECIMAL(18,0), @FR_DEP_ID VARCHAR(20), @TO_DEP_ID VARCHAR(20), @FR_DVDM_ID VARCHAR(20), @TO_DVDM_ID VARCHAR(20), @FR_KHOI_ID VARCHAR(20), @TO_KHOI_ID VARCHAR(20), @FR_GD_TYPE VARCHAR(20), @TO_GD_TYPE VARCHAR(20), @FR_AMT_REMAIN decimal(18), @FR_AMT_REMAIN_ETM_TF decimal(18) FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID, @TO_TRADE_ID,@TO_GOOD_ID,@QTY,@TOTAL_AMT, @NOTES,@FR_DEP_ID,@TO_DEP_ID,@FR_DVDM_ID,@TO_DVDM_ID,@FR_KHOI_ID,@TO_KHOI_ID,@FR_GD_TYPE,@TO_GD_TYPE,@FR_AMT_REMAIN,@FR_AMT_REMAIN_ETM_TF WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_REQ_TRANSFER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_TRANSFER', @l_REQ_TRANSFER_ID out IF @l_REQ_TRANSFER_ID='' OR @l_REQ_TRANSFER_ID IS NULL GOTO ABORT INSERT INTO dbo.PL_REQUEST_TRANSFER ( REQ_TRANSFER_ID, REQ_DOC_ID, FR_PLAN_ID, FR_TRADE_ID, FR_GOOD_ID, FR_BRN_ID, TO_BRN_ID, TO_PLAN_ID, TO_TRADE_ID, TO_GOOD_ID, QTY, TOTAL_AMT, NOTES, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, FR_DEP_ID, TO_DEP_ID, FR_DVDM_ID, TO_DVDM_ID, FR_KHOI_ID, TO_KHOI_ID, FR_AMT_EXE, FR_AMT_ETM ) VALUES ( @l_REQ_TRANSFER_ID, -- REQ_TRANSFER_ID - varchar(15) @p_REQ_ID, -- REQ_DOC_ID - varchar(15) @FR_PLAN_ID, -- FR_PLAN_ID - varchar(15) @FR_TRADE_ID, -- FR_TRADE_ID - varchar(15) @FR_GOOD_ID, -- FR_GOOD_ID - varchar(15) @FR_BRN_ID, -- FR_BRN_ID - varchar(15) @TO_BRN_ID, -- TO_BRN_ID - varchar(15) @TO_PLAN_ID, -- TO_PLAN_ID - varchar(15) @TO_TRADE_ID, -- TO_TRADE_ID - varchar(15) @TO_GOOD_ID, -- TO_GOOD_ID - varchar(15) @QTY, -- QTY - decimal(18, 0) @TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0) @NOTES, -- NOTES - nvarchar(500) @p_AUTH_STATUS, -- AUTH_STATUS - varchar(1) @p_MAKER_ID, -- MAKER_ID - varchar(15) convert(datetime,@p_CREATE_DT,103), -- CREATE_DT - datetime @p_CHECKER_ID, -- CHECKER_ID - varchar(15) convert(datetime,@p_APPROVE_DT,103), @FR_DEP_ID, @TO_DEP_ID, @FR_DVDM_ID, @TO_DVDM_ID, @FR_KHOI_ID, @TO_KHOI_ID, -- APPROVE_DT - datetime @FR_AMT_REMAIN , @FR_AMT_REMAIN_ETM_TF ) IF @@ERROR <> 0 GOTO ABORT1 -- next Group_Id FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID, @TO_TRADE_ID,@TO_GOOD_ID,@QTY,@TOTAL_AMT, @NOTES,@FR_DEP_ID,@TO_DEP_ID,@FR_DVDM_ID,@TO_DVDM_ID,@FR_KHOI_ID,@TO_KHOI_ID,@FR_GD_TYPE,@TO_GD_TYPE,@FR_AMT_REMAIN,@FR_AMT_REMAIN_ETM_TF END CLOSE ListTransfers DEALLOCATE ListTransfers IF @@Error <> 0 GOTO ABORT --Insert into TABLE PL_REQUEST_DOC_DT Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter DECLARE ListCostCenters CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/ListCostCenter',2) WITH ( COST_ID varchar(15), NOTES nvarchar(1000) ) WHERE COST_ID <>'DVDM-CHUNG' OPEN ListCostCenters Declare @COST_ID varchar(15) FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_REQ_COST_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_COSTCENTER', @l_REQ_COST_ID out IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT INSERT INTO dbo.PL_REQUEST_COSTCENTER ( REQ_COST_ID, COST_ID, REQ_ID, NOTES, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT ) VALUES ( @l_REQ_COST_ID, -- REQ_COST_ID - varchar(15) @COST_ID, -- COST_ID - varchar(15) @p_REQ_ID, -- REQ_ID - varchar(15) @NOTES, -- NOTES - nvarchar(500) @p_AUTH_STATUS, -- AUTH_STATUS - varchar(1) @p_MAKER_ID, -- MAKER_ID - varchar(15) convert(datetime,@p_CREATE_DT,103) , -- CREATE_DT - datetime @p_CHECKER_ID, -- CHECKER_ID - varchar(15) convert(datetime,@p_APPROVE_DT,103) -- APPROVE_DT - datetime ) IF @@ERROR <> 0 GOTO ABORT1 -- next Group_Id FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES END CLOSE ListCostCenters DEALLOCATE ListCostCenters -- Insert into TABLE PL_REQUEST_DOC_FILE DECLARE @tableAttachFile TABLE( PL_REQUEST_DOC_FILE_ID varchar(20) , IS_VIEW bit, REQ_ID varchar(20), NOTES nvarchar(200) ) Declare @fdoc INT Exec sp_xml_preparedocument @fdoc Output,@p_ListAttachFile INSERT INTO @tableAttachFile SELECT * FROM OPENXML(@fDoc,'/Root/ListAttachFile',2) WITH ( PL_REQUEST_DOC_FILE_ID varchar(20) , IS_VIEW bit, REQ_ID varchar(20), NOTES nvarchar(200) ) DELETE PL_REQUEST_DOC_FILE WHERE PL_REQUEST_DOC_FILE_ID NOT IN (SELECT PL_REQUEST_DOC_FILE_ID from @tableAttachFile) and REQ_ID = @p_REQ_ID DECLARE ListAttachFile CURSOR FOR SELECT * FROM @tableAttachFile OPEN ListAttachFile Declare @PL_REQUEST_DOC_FILE_ID varchar(20) , @IS_VIEW bit, @REQ_ID varchar(20), @_NOTES nvarchar(200) FETCH NEXT FROM ListAttachFile INTO @PL_REQUEST_DOC_FILE_ID,@IS_VIEW,@REQ_ID,@_NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_File_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_FILE', @l_File_ID out IF @l_File_ID='' OR @l_File_ID IS NULL GOTO ABORT IF(SELECT COUNT(*) from PL_REQUEST_DOC_FILE where PL_REQUEST_DOC_FILE_ID = @PL_REQUEST_DOC_FILE_ID ) > 0 BEGIN UPDATE PL_REQUEST_DOC_FILE set IS_VIEW = isnull(@IS_VIEW,0),REQ_ID = @p_REQ_ID,NOTES=@_NOTES WHERE PL_REQUEST_DOC_FILE_ID = @PL_REQUEST_DOC_FILE_ID END ELSE BEGIN INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_File_ID, 'PL_REQUEST_DOC_FILE') INSERT INTO dbo.PL_REQUEST_DOC_FILE ( [PL_REQUEST_DOC_FILE_ID] ,[IS_VIEW] ,[REQ_ID] ,[NOTES] ) VALUES ( @l_File_ID ,isnull(@IS_VIEW,0) ,@p_REQ_ID ,@_NOTES ) END IF @@ERROR <> 0 GOTO ABORT1 FETCH NEXT FROM ListAttachFile INTO @PL_REQUEST_DOC_FILE_ID,@IS_VIEW,@REQ_ID,@_NOTES END CLOSE ListAttachFile DEALLOCATE ListAttachFile IF @@Error <> 0 GOTO ABORT --IF (SELECT COUNT(*) FROM @TEMP) = 0 -- INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_File_ID, 'PL_REQUEST_DOC_FILE') COMMIT TRANSACTION IF (SELECT COUNT(*) FROM @TEMP) = 0 BEGIN SELECT '0' as Result, @p_REQ_ID REQ_ID,'', '' , @p_REQ_CODE AS ErrorDesc RETURN '0' END ELSE BEGIN SELECT '0' as Result, @p_REQ_ID REQ_ID,REF_ID, [TYPE] , @p_REQ_CODE AS ErrorDesc FROM @TEMP RETURN '0' END ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' REQ_ID, '' ErrorDesc RETURN '-1' End ABORT1: BEGIN CLOSE ListGoods DEALLOCATE ListGoods CLOSE ListCostCenters DEALLOCATE ListCostCenters CLOSE ListCostCenters DEALLOCATE ListCostCenters ROLLBACK TRANSACTION SELECT '-1' AS Result, '' REQ_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[REAL_ESTATE_R_H_Search]' GO ALTER PROCEDURE [dbo].[REAL_ESTATE_R_H_Search] @p_RET_R_H_ID varchar(15)=NULL, @p_BRANCH_MANAGE varchar(15)=NULL, @p_BRANCH_USE varchar(15)=NULL, @p_BRANCH_LOGIN varchar(15)=NULL, @p_BRANCH_CREATE varchar(15)=NULL, @p_RET_ADDR nvarchar(MAX)=NULL, @p_RET_R_H_TIME decimal=NULL, @p_START_DT VARCHAR(20)=NULL, @p_R_LAND_SQUARE decimal=NULL, @p_SCALE NVARCHAR(500)=NULL, @p_CONSTRUCT_SQUARE decimal=NULL, @p_DEPOSIT varchar(1)=NULL, @p_DEPOSIT_PRICE decimal=NULL, @p_DEPOSIT_RETURN_DT VARCHAR(500)=NULL, @p_PURCHASE_EACH_TERM NVARCHAR(500)=NULL, @p_NOTES nvarchar(1000)=NULL, @p_RECORD_STATUS varchar(1)=NULL, @p_AUTH_STATUS varchar(1)=NULL, @p_MAKER_ID varchar(15)=NULL, @p_CREATE_DT VARCHAR(20)=NULL, @p_CHECKER_ID varchar(15)=NULL, @p_APPROVE_DT VARCHAR(20)=NULL, @p_LEVEL VARCHAR(50) = 'UNIT' AS BEGIN -- PAGING declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) DECLARE @TODATE DATETIME = GETDATE() -- PAGING BEGIN SELECT A.*, BRMN.BRANCH_NAME BRANCH_MANAGE_NAME, BR_USE.BRANCH_NAME BRANCH_USE_NAME, BRNC.BRANCH_NAME BRANCH_CREATE_NAME, PR.PRICE RET_PRICE, AUTH.AUTH_STATUS_NAME -- SELECT END FROM REAL_ESTATE_R_H AS A LEFT JOIN dbo.CM_BRANCH BRNC ON BRNC.BRANCH_ID = A.BRANCH_CREATE LEFT JOIN CM_BRANCH BRMN ON BRMN.BRANCH_ID = A.BRANCH_MANAGE --------BAODNQ: 7/2/2022: Kết thêm giá trị----------- LEFT JOIN CM_BRANCH BR_USE ON BR_USE.BRANCH_ID = A.BRANCH_USE LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN ( SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY RET_R_H_ID ORDER BY A.PRICE_END_DT DESC) AS rn FROM RET_PRICE A WHERE PRICE_END_DT IS NOT NULL AND PRICE_DT < @TODATE ) PRICE WHERE RN = 1 ) PR ON PR.RET_R_H_ID = A.RET_R_H_ID WHERE (@p_RET_R_H_ID IS NULL OR @p_RET_R_H_ID='' OR A.RET_R_H_ID = @p_RET_R_H_ID) AND (@p_BRANCH_MANAGE IS NULL OR @p_BRANCH_MANAGE='' OR A.BRANCH_MANAGE LIKE '%' + @p_BRANCH_MANAGE + '%') AND (@p_BRANCH_USE IS NULL OR @p_BRANCH_USE='' OR A.BRANCH_USE LIKE '%' + @p_BRANCH_USE + '%') AND (@p_RET_ADDR IS NULL OR @p_RET_ADDR='' OR A.RET_ADDR LIKE N'%' + @p_RET_ADDR + '%') AND (@p_RET_R_H_TIME IS NULL OR A.RET_R_H_TIME = @p_RET_R_H_TIME) AND (@p_START_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.START_DT,CONVERT(datetime, @p_START_DT,103)) = 0) AND (@p_R_LAND_SQUARE IS NULL OR A.R_LAND_SQUARE = @p_R_LAND_SQUARE) AND (@p_SCALE IS NULL OR A.SCALE = @p_SCALE) AND (@p_CONSTRUCT_SQUARE IS NULL OR A.CONSTRUCT_SQUARE = @p_CONSTRUCT_SQUARE) AND (@p_DEPOSIT IS NULL OR @p_DEPOSIT='' OR A.DEPOSIT = @p_DEPOSIT) AND (@p_DEPOSIT_PRICE IS NULL OR A.DEPOSIT_PRICE = @p_DEPOSIT_PRICE) AND (@p_DEPOSIT_RETURN_DT IS NULL OR A.DEPOSIT_RETURN_DT LIKE '%' + @p_DEPOSIT_RETURN_DT + '%') AND (@p_PURCHASE_EACH_TERM IS NULL OR @p_PURCHASE_EACH_TERM = '' OR A.PURCHASE_EACH_TERM = @p_PURCHASE_EACH_TERM) AND (@p_NOTES IS NULL OR @p_NOTES='' OR A.NOTES LIKE N'%' + @p_NOTES + '%') AND (@p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS='' OR A.RECORD_STATUS = @p_RECORD_STATUS) AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS='' OR A.AUTH_STATUS = @p_AUTH_STATUS) AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID='' OR A.MAKER_ID = @p_MAKER_ID) AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID='' OR A.CHECKER_ID = @p_CHECKER_ID) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.APPROVE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND ( (@p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL) OR (@P_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp)) OR ((@P_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_LOGIN) )) ORDER BY A.CREATE_DT DESC -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_ROLE_NOTIFI_ID]' GO ALTER PROCEDURE [dbo].[TR_ROLE_NOTIFI_ID] @PO_ID varchar(500), @TYPE VARCHAR(100) AS PRINT @TYPE DECLARE @BRANCH_CREATE VARCHAR(15), @DEP_CREATE VARCHAR(15), @BRANCH_TYPE VARCHAR(15), @FATHER_ID VARCHAR(15), @FLAG VARCHAR(1), -- FLAG = 1: THANH TOÁN / TẠM ỨNG @AUTH_STATUS VARCHAR(10), @PROCESS VARCHAR(10), @MAKER_ID VARCHAR(15), @DEP_CODE VARCHAR(15), @NV_XL_MS VARCHAR(15) DECLARE @ROLE_CURRENT VARCHAR(15), @USER_RECIVE_MAIL VARCHAR(15), @REQ_TYPE VARCHAR(15) DECLARE @l_LST_REQ_ID TABLE ( [ID] [int] IDENTITY(1,1) NOT NULL, [REQ_PAY_ID] [VARCHAR](50) NULL) INSERT INTO @l_LST_REQ_ID SELECT VALUE FROM WSISPLIT(@PO_ID,',') DECLARE @LST_POID TABLE(ID VARCHAR(15)) DECLARE @LST_USER_RECIVE TABLE (TLNAME VARCHAR(10)) --- DECLARE TABLE NHAN DU LIEU LA USER NAME DANG O BUOC PHE DUYET HIEN TAI DECLARE @PL_PROCESS_CURRENT_SEARCH_TEMP TABLE ( REQ_ID varchar(15), PROCESS_ID varchar(10), DVDM_NAME nvarchar(500), TLNAME nvarchar(255), TLFullName nvarchar(255), NOTES nvarchar(500) ) -----BAODNQ 5/1/2021 : Thêm gửi mail cho GDDV, TP, PP---------- DECLARE @p_MAKER_ID VARCHAR(15), @p_ROLE_ID VARCHAR(15), @p_ROLE_NAME VARCHAR(15) DECLARE @LST_ROLE TABLE(ROLE_ID VARCHAR(15), ROLE_NAME VARCHAR(15)) -------------------------- IF @TYPE = 'PO' BEGIN INSERT INTO @LST_POID VALUES(@PO_ID) SET @FLAG = 0 END ELSE IF @TYPE = 'USE' BEGIN INSERT INTO @LST_POID SELECT B.PO_ID FROM ASS_MASTER_PO B WHERE B.ASSET_ID = (SELECT A.ASSET_ID FROM ASS_USE A WHERE A.USE_ID = @PO_ID) SET @FLAG = 0 END ELSE IF @TYPE = 'USE_MUILT' BEGIN INSERT INTO @LST_POID SELECT B.PO_ID FROM ASS_MASTER_PO B WHERE B.ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @PO_ID) GROUP BY B.PO_ID SET @FLAG = 0 END ELSE IF @TYPE = 'USE_ADDNEW' BEGIN INSERT INTO @LST_POID SELECT B.PO_ID FROM ASS_ADDNEW_PO B WHERE B.ADDNEW_ID = @PO_ID SET @FLAG = 0 END -- Tạm ứng ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_SEND_APR') BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (TRASFER_USER_RECIVE IS NOT NULL AND TRASFER_USER_RECIVE <>''))) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TRASFER_USER_RECIVE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) END ELSE BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) IF(@BRANCH_TYPE = 'PGD' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP'))) END ELSE IF(@BRANCH_TYPE = 'CN' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD'))) END ELSE IF(@BRANCH_TYPE = 'HS' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND SECUR_CODE = @DEP_CREATE AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP'))) END END SET @FLAG = 1 END ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_CONFIRM') BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @REQ_TYPE =(SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@PO_ID) SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_CREATE) IF(@BRANCH_TYPE = 'PGD' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @FATHER_ID AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP'))) END ELSE IF(@BRANCH_TYPE = 'CN' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD'))) END ELSE IF(@BRANCH_TYPE = 'HS' ) BEGIN IF(EXISTS(SELECT PROCESS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (PROCESS ='' OR PROCESS IS NULL))) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND SECUR_CODE = @DEP_CREATE AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP'))) END ELSE BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='GDK' AND @REQ_TYPE ='I')) BEGIN IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='tunt') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF((@DEP_CODE LIKE'%06909%')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='haipv') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF((@DEP_CODE LIKE'%06921%')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='cuongpv2') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF((@DEP_CODE LIKE'%06907%')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='linhvtk') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF((@DEP_CODE LIKE'%06908%')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='nhalc') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END END -- NEU CAP TIEP THEO LA PTGD ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='PTGD' AND @REQ_TYPE ='I')) BEGIN IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='hantt') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF(@DEP_CODE ='0690405') BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='tupa') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END END END END SET @FLAG = 1 END ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_APR') BEGIN SET @REQ_TYPE =(SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@PO_ID) --SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_CREATE = (SELECT TOP 1 BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @DEP_CREATE = (SELECT TOP 1 DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_CREATE) IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TKTGD' AND @REQ_TYPE ='I')) BEGIN INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TKHDQT' AND @REQ_TYPE ='I')) BEGIN INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TGD' AND @REQ_TYPE ='I')) BEGIN --SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='TGD') --INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TGD' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='HDQT' AND @REQ_TYPE ='I')) BEGIN --SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='TGD') --INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='HDQT' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='GDK' AND @REQ_TYPE ='I')) BEGIN IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='tunt') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF((@DEP_CODE LIKE'%06909%')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='haipv') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF((@DEP_CODE LIKE'%06921%')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='cuongpv2') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF((@DEP_CODE LIKE'%06907%')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='linhvtk') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF(@DEP_CODE LIKE'%06908%') BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='nhalc') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='PTGD' AND @REQ_TYPE ='I')) BEGIN IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605')) BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='hantt') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END ELSE IF( @DEP_CODE ='0690405') BEGIN SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='tupa') INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL) END END IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND AUTH_STATUS ='A')) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TOP 1 MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID --INSERT INTO @LST_USER_RECIVE (TLNAME) --SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID END SET @FLAG = 1 END -- Điều phối tạm ứng/ thanh toán PL_REQUEST_PROCESS_CHILD ELSE IF (@TYPE = 'TR_REQ_PAYMENT_TRANSFER') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) AND TYPE_JOB = 'XL' AND STATUS_JOB ='C' SET @FLAG = 1 END -- ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_SEND_APR') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @PO_ID AND TYPE_JOB = 'KS' END ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_APPR') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TOP 1 MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID SET @FLAG = 1 END -- Thanh toán ELSE IF (@TYPE = 'TR_REQ_PAYMENT_SEND_APR') BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (TRASFER_USER_RECIVE IS NOT NULL AND TRASFER_USER_RECIVE <>''))) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TRASFER_USER_RECIVE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) END ELSE BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) IF(@BRANCH_TYPE = 'PGD' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP'))) END ELSE IF(@BRANCH_TYPE = 'CN' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD'))) END ELSE IF(@BRANCH_TYPE = 'HS' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND SECUR_CODE = @DEP_CREATE AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP'))) END END SET @FLAG = 1 END ELSE IF(@TYPE = 'TR_REQ_PAYMENT_APR') BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) IF(@AUTH_STATUS = 'A') BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 --AND TLSUBBRID = @BRANCH_CREATE AND (RoleName = 'KSV' OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW = 'KSV')) AND TLSUBBRID = 'DV0001' AND SECUR_CODE ='DEP000000000022' SET @FLAG = 1 END END ELSE IF(@TYPE = 'TR_REQ_PAYMENT_CONFIRM') BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @PROCESS = ( SELECT TOP 1 PROCESS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) IF(@AUTH_STATUS = 'U' AND @PROCESS = '0') BEGIN SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) IF(@BRANCH_TYPE = 'PGD' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @FATHER_ID AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP'))) END ELSE IF(@BRANCH_TYPE = 'CN' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD'))) END ELSE IF(@BRANCH_TYPE = 'HS' ) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND SECUR_CODE = @DEP_CREATE AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP'))) END SET @FLAG = 1 END END ELSE IF(@TYPE = 'TR_REQ_PAYMENT_KT_SEND_APR') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @PO_ID AND TYPE_JOB = 'KS' SET @FLAG = 1 END ELSE IF(@TYPE = 'TR_REQ_PAYMENT_KT_APR') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID SET @FLAG = 1 END -- Tờ trình chủ trương ELSE IF(@TYPE = 'PL_SEND_APP' OR @TYPE ='PL_REQUEST_DOC_App' OR @TYPE ='REQ_PROCESS_CHILD_Upd' OR @TYPE='REQ_PROCESS_CHILD_App') BEGIN SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD' SET @FLAG = 2 END ELSE IF(@TYPE='PL_REQ_PROCESS_CHILD_Ins') BEGIN DECLARE @PLREQ_ID VARCHAR(15) WHILE((SELECT COUNT(*) FROM @l_LST_REQ_ID) >0) BEGIN SET @PLREQ_ID =(SELECT TOP 1 REQ_PAY_ID FROM @l_LST_REQ_ID) SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PLREQ_ID,@MAKER_ID,'TTCT-DVKD' DELETE FROM @l_LST_REQ_ID WHERE REQ_PAY_ID =@PLREQ_ID END SET @FLAG = 2 END ELSE IF(@TYPE='REQUEST_DOC_PROCESS_Approve') BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='APPROVE')) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='TGD')) BEGIN SET @FLAG = 2 --SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD' END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='TGD')) BEGIN SET @FLAG = 2 --SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD' INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP (REQ_ID,TLNAME) SELECT @PO_ID, TLNANME FROM TL_USER WHERE RoleName ='TKTGD' END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='HDQT')) BEGIN SET @FLAG = 2 --SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD' --INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP (REQ_ID,TLNAME) SELECT @PO_ID, TLNANME FROM TL_USER WHERE RoleName ='TKTGD' END END ELSE BEGIN SET @FLAG = 3 SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID) --INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP --EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @REQ_ID,@MAKER_ID,'TTCT-DVKD' END END ------------------------------------------------------------------------------------------------------- ----- PHIẾU YÊU CẦU MUA SẮM -------------- ELSE IF(@TYPE = 'TR_REQUEST_DOC_SendApp' OR @TYPE ='TR_REQUEST_DOC_App' OR @TYPE ='TR_REQ_PROCESS_CHILD_App' OR @TYPE ='TR_REQ_PROCESS_CHILD_Upd' OR @TYPE='REQ_PROCESS_CHILD_App') BEGIN SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'PYCMS-DVKD' SET @FLAG = 2 END ELSE IF(@TYPE='TR_REQ_PROCESS_CHILD_Ins') BEGIN DECLARE @REQ_DOC_ID VARCHAR(15) WHILE((SELECT COUNT(*) FROM @l_LST_REQ_ID) >0) BEGIN SET @REQ_DOC_ID =(SELECT TOP 1 REQ_PAY_ID FROM @l_LST_REQ_ID) SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @REQ_DOC_ID,@MAKER_ID,'PYCMS-DVKD' DELETE FROM @l_LST_REQ_ID WHERE REQ_PAY_ID =@REQ_DOC_ID END SET @FLAG = 2 END ELSE IF(@TYPE='TR_REQUEST_DOC_PROCESS_Approve') BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='APPROVE')) BEGIN --SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID) INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'PYCMS-DVKD' SET @FLAG = 3 END ELSE BEGIN SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID) SET @NV_XL_MS =(SELECT TOP 1 USER_DVMS FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID) SET @FLAG = 4 END END ------BAODNQ 4/1/2022: -------------- -----Khai báo DTSD nội bộ - gửi YC phê duyệt------- ELSE IF @TYPE='BUD_CONTRACT_MASTER_SEND_APPROVE' BEGIN -----Có cấp phê duyệt trung gian------- IF (EXISTS (SELECT*FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID AND SIGN_USER IS NOT NULL)) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT A.SIGN_USER FROM BUD_CONTRACT_MASTER A WHERE A.CONTRACT_ID = @PO_ID) END ELSE -----Ko có cấp phê duyệt trung gian------- BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PPGD')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END END SET @FLAG = 5 END -----Khai báo DTSD nội bộ - trung gian duyệt thành công------- ELSE IF @TYPE='BUD_CONTRACT_MASTER_CONFIRM' BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PPGD')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END SET @FLAG = 5 END -----Khai báo DTSD nội bộ - trưởng đơn vị đã duyệt, trả mail về cho ng tạo------- ELSE IF @TYPE='BUD_CONTRACT_MASTER_APPROVED' BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT A.MAKER_ID FROM BUD_CONTRACT_MASTER A WHERE A.CONTRACT_ID = @PO_ID) SET @FLAG = 5 END ---Quản lý hợp đồng khách thuê - gửi YC phê duyệt----- ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_SEND_APPROVE' BEGIN -----Có cấp phê duyệt trung gian------- IF (EXISTS (SELECT*FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID AND SIGN_USER IS NOT NULL)) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT A.SIGN_USER FROM BUD_CONTRACT_CUST_MASTER A WHERE A.CONTRACT_ID = @PO_ID) END ELSE -----Ko có cấp phê duyệt trung gian------- BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PP') END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG') END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP') END END SET @FLAG = 5 END ---Quản lý hợp đồng khách thuê - trung gian duyệt thành công----- ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_CONFIRM' BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PP')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END SET @FLAG = 5 END ---Quản lý hợp đồng khách thuê - trưởng đơn vị đã duyệt, trả mail về cho ng tạo----- ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_APPROVED' BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT A.MAKER_ID FROM BUD_CONTRACT_CUST_MASTER A WHERE A.CONTRACT_ID = @PO_ID) SET @FLAG = 5 END ------datmq 7/1/2022: -------------- -----Quản lý trụ sở - gửi YC phê duyệt------- ELSE IF @TYPE='BUD_MASTER_SEND_APPROVE' BEGIN -----Có cấp phê duyệt trung gian------- IF (EXISTS (SELECT*FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID AND SIGN_USER IS NOT NULL)) BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT A.SIGN_USER FROM BUD_MASTER A WHERE A.BUILDING_ID = @PO_ID) END ELSE -----Ko có cấp phê duyệt trung gian------- BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PP') END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG') END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP') END END SET @FLAG = 6 END -----Quản lý trụ sở - trung gian duyệt thành công------- ELSE IF @TYPE='BUD_MASTER_CONFIRM' BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PPGD')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END SET @FLAG = 6 END ---Quản lý trụ sở - trưởng đơn vị đã duyệt, trả mail về cho ng tạo----- ELSE IF @TYPE='BUD_MASTER_APPROVED' BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT A.MAKER_ID FROM BUD_MASTER A WHERE A.BUILDING_ID = @PO_ID) SET @FLAG = 6 END -------Phongnt 9/2/2022 Xuất sử dụng tài sản -HCQT---------- ELSE IF @TYPE='ASS_USE_MULTI_BVB_MASTER' BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PP')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END SET @FLAG = 6 END -------Điều chuyển tài sản - HCQT---------- ELSE IF @TYPE='ASS_TRANSFER_MULTI_APP' BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PP')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END SET @FLAG = 6 END ELSE IF @TYPE='ASS_COLLECT_MULTI_HCQT_APP' BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PP')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END SET @FLAG = 6 END ELSE IF @TYPE='ASS_LIQ_BVB_HC_APP' BEGIN SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) SET @p_MAKER_ID = (SELECT MAKER_ID FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID) SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID) IF(@BRANCH_TYPE = 'PGD') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('TPGD', 'PP')) END ELSE IF(@BRANCH_TYPE = 'CN') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND RoleName IN ('GDDV', 'PDG')) END ELSE IF(@BRANCH_TYPE = 'HS') BEGIN INSERT INTO @LST_USER_RECIVE (TLNAME) (SELECT TLNANME FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE AND RoleName IN ('GDDV', 'PP')) END SET @FLAG = 6 END ----- END PYC MUA SẮM -------------------- IF(@FLAG = 0) BEGIN SELECT A.*,B.TLFullName,B.EMAIL FROM TL_ROLE_NOTIFICATION A LEFT JOIN TL_USER B ON A.TL_NAME=B.TLNANME WHERE EXISTS(SELECT * FROM @LST_POID WHERE ID = A.PO_ID) END ELSE IF(@FLAG = 1) BEGIN SELECT B.*,A.TLFullName,A.EMAIL FROM TL_USER A LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1 >2 WHERE (A.TLNANME IN (SELECT * FROM @LST_USER_RECIVE)) AND A.TLNANME NOT IN ('trungnq1','taila') END -- NEU LA TO TRINH CHU TRUONG, PYC MS THÌ TRA VE FLAG =2 ELSE IF(@FLAG = 2) BEGIN SELECT B.*,A.TLFullName,A.EMAIL FROM TL_USER A LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2 WHERE (A.TLNANME IN (SELECT TLNAME FROM @PL_PROCESS_CURRENT_SEARCH_TEMP)) AND A.TLNANME NOT IN ('trungnq1','taila') END -- SAU KHI TT CHU TRUONG DUOC PHE DUYET THI THONG BAO CHO NGUOI TAO TO TRINH ELSE IF(@FLAG = 3) BEGIN SELECT B.*,A.TLFullName,A.EMAIL FROM TL_USER A LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2 WHERE (A.TLNANME =@MAKER_ID OR A.TLNANME IN (SELECT TLNAME FROM @PL_PROCESS_CURRENT_SEARCH_TEMP)) AND A.TLNANME NOT IN ('trungnq1','taila') END -- SAU KHI PYCMS DUOC PHE DUYET THI THONG BAO CHO NGUOI TAO VA NGUOI XU LY ELSE IF(@FLAG = 4) BEGIN SELECT B.*,A.TLFullName,A.EMAIL FROM TL_USER A LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2 WHERE (A.TLNANME =@MAKER_ID OR A.TLNANME =@NV_XL_MS) AND A.TLNANME NOT IN ('trungnq1','taila') END -----------Quản lý cho thuê---------------- ELSE IF(@FLAG = 5) BEGIN SELECT TLFullName, EMAIL AS Email, ID as [USER_ID] FROM TL_USER WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE)) END ELSE IF(@FLAG = 6) BEGIN SELECT TLFullName, EMAIL AS Email, ID as [USER_ID] FROM TL_USER WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE)) END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_DOC_SendApp]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_SendApp] @p_REQ_ID VARCHAR(20), @p_PROCESS_ID VARCHAR(20), @p_TLNAME VARCHAR(20), @p_MAKER_ID VARCHAR(20) AS BEGIN TRANSACTION DECLARE @GD_TYPE_ID_NOT_VALIDATE VARCHAR(15) SET @GD_TYPE_ID_NOT_VALIDATE =(SELECT TOP 1 GD_TYPE_ID FROM CM_GOODSTYPE WHERE GD_TYPE_CODE ='OS') IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (PL_BASED_ID IS NULL OR PL_BASED_ID =''))) BEGIN -- XÁC ĐỊNH HẠN MƯC CÒN ĐỦ HAY KO --- KIEM TRA NGAN SACH LUCTV 18052020 DECLARE @ERROR BIT ,@EROOR_DES NVARCHAR(500) SELECT @ERROR=ERROR, @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'APPNEW','PL_REQUEST_DOC',@p_TLNAME,@p_PROCESS_ID) IF(@ERROR=1) BEGIN ROLLBACK TRANSACTION; SELECT '-1' Result, @EROOR_DES ErrorDesc RETURN '-1'; END END ----- DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10), @BRANCH_CREATE_TYPE VARCHAR(10) IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND EXISTS(SELECT TLNANME FROM dbo.TL_USER WHERE TLNANME=SIGN_USER AND BRANCH_CREATE=TLSUBBRID AND (RoleName='TPGD' OR RoleName='GDDV')))) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Người ký nháy không được là trường phòng, trưởng đơn vị.' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND ( CAST(REQ_DT AS DATE) > CAST(GETDATE() AS DATE))) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Ngày tạo không được lớn hơn ngày hiện tại' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (REQ_NAME IS NULL OR REQ_NAME='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Tên tờ trình bắt buộc nhập' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (REQ_CONTENT IS NULL OR REQ_CONTENT='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Nội dung tờ trình bắt buộc nhập' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND ( REQ_REASON IS NULL OR REQ_REASON='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lý do trình chủ trương bắt buộc nhập' ErrorDesc RETURN '-1' END IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID ) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Danh sách hàng hóa bắt buộc nhập' ErrorDesc RETURN '-1' END -- GIANT 10/11/2021 IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PL_BASED_ID IS NOT NULL AND PL_BASED_ID <>'')) BEGIN DECLARE @PL_BASED_ID VARCHAR(20), @PL_BASE_CODE VARCHAR(20), @PL_BASE_TOTAL_USED DECIMAL(18,2), -- CÓ THỂ SỬ DỤNG @PL_BASE_TOTAL_PRICE DECIMAL(18,2), -- TỔNG TIỀN CỦA TTCT @TOTAL_PRICE DECIMAL(18,2) -- TỔNG TIỀN CỦA TỜ TRÌNH HIỆN TẠI SỬ DỤNG SET @PL_BASED_ID=(SELECT PL_BASED_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID ) SET @PL_BASE_CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID = @PL_BASED_ID) SET @PL_BASE_TOTAL_USED = (SELECT SUM(TOTAL_AMT) FROM PL_REQUEST_DOC WHERE PL_BASED_ID = @PL_BASED_ID AND AUTH_STATUS NOT IN ('E','R')) SET @PL_BASE_TOTAL_PRICE = (SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID = @PL_BASED_ID) SET @TOTAL_PRICE = (SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID) --IF( EXISTS(SELECT DT.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT DT WHERE DT.REQ_ID=@p_REQ_ID AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT DTB WHERE DTB.REQ_ID=@PL_BASED_ID AND DTB.TRADE_ID=DT.TRADE_ID AND DTB.HANGHOA_ID=DT.HANGHOA_ID))) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Danh sách hàng hóa không có trong tờ trình căn cứ' ErrorDesc -- RETURN '-1' --END -- KIỂM TRA CÁC TỔNG CÁC TỜ TRÌNH SỬ DỤNG TTCC VƯỢT QUÁ SỐ TIỀN CỦA TTCC CHO PHÉP HAY CHƯA -- Tổng giá trị những tờ trình con đã sử dụng tờ trình số: làm tờ trình căn cứ: 30 triệu. Giá trị còn lại có thể sử dụng: 70 triệu PRINT @PL_BASE_TOTAL_PRICE - @PL_BASE_TOTAL_USED IF (@PL_BASE_TOTAL_PRICE < (@PL_BASE_TOTAL_USED + @TOTAL_PRICE)) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Tổng giá trị những tờ trình con đã sử dụng tờ trình số: ' + @PL_BASE_CODE + N' làm tờ trình căn cứ: ' + CONVERT(NVARCHAR(20),CAST(@PL_BASE_TOTAL_USED AS money),1) + N' VND. Giá trị còn lại có thể sử dụng: ' + CONVERT(NVARCHAR(20),CAST(@PL_BASE_TOTAL_PRICE - @PL_BASE_TOTAL_USED AS money),1) + ' VND' ErrorDesc RETURN '-1' END -- KIỂM TRA HẠNG MỤC ĐƯỢC CHỌN CÓ THUỘC VÀO HẠNG MỨC CHO PHÉP CỦA TTCC DECLARE LISTS CURSOR LOCAL FOR SELECT REQDT_ID,TRADE_ID,REQ_ID FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @p_REQ_ID OPEN LISTS DECLARE @REQDT_ID VARCHAR(15), @TRADE_ID VARCHAR(15), @REQ_ID VARCHAR(15), @COUNT INT = 1 FETCH NEXT FROM LISTS INTO @REQDT_ID,@TRADE_ID,@REQ_ID WHILE @@FETCH_STATUS = 0 BEGIN -- Chỉ sử dụng hàng hóa từ tờ trình căn cứ IF (NOT EXISTS (SELECT * FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID AND HANGHOA_ID IN (SELECT HANGHOA_ID FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @PL_BASED_ID))) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm - Dòng ' + CONVERT(nvarchar(10),@COUNT) + N' : Hàng hóa mua sắm đã chọn không thuộc vào Hàng hóa mua sắm cho phép của Tờ trình căn cứ' ErrorDesc RETURN '-1' END -- Chỉ sử dụng hạng mục ngân sách từ tờ trình căn cứ IF (NOT EXISTS (SELECT * FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID AND TRADE_ID IN (SELECT TRADE_ID FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @PL_BASED_ID))) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm - Dòng ' + CONVERT(nvarchar(10),@COUNT) + N' : Hạng mục ngân sách đã chọn không thuộc vào hạng mục ngân sách cho phép của Tờ trình căn cứ' ErrorDesc RETURN '-1' END -- SỐ NGÂN SÁCH CHỌN VƯỢT QUÁ NGÂN SÁCH CHO PHÉP CỦA HẠN MỤC ĐÓ IF ((SELECT TOTAL_AMT FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @PL_BASED_ID AND TRADE_ID = @TRADE_ID) < (SELECT TOTAL_AMT FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm - Dòng ' + CONVERT(nvarchar(10),@COUNT) + N' : Hạng mục ngân sách đã chọn vượt quá hạng mục cho phép của Tờ trình căn cứ' ErrorDesc RETURN '-1' END SET @COUNT += 1 FETCH NEXT FROM LISTS INTO @REQDT_ID,@TRADE_ID,@REQ_ID END CLOSE LISTS DEALLOCATE LISTS END IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (HANGHOA_ID IS NULL OR HANGHOA_ID ='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Hàng hóa bắt buộc nhập' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (GOODS_ID IS NULL OR GOODS_ID ='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Hạng mục ngân sách bắt buộc nhập' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND (TOTAL_AMT IS NULL OR TOTAL_AMT = 0)) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới điều chuyển ngân sách: Vui lòng nhập số tiền điều chuyển' ErrorDesc RETURN '-1' END SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID -- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP IF(EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE TRADE_TYPE ='VCCB' AND SUP_ID <>'' AND SUP_ID IS NOT NULL AND REQ_ID =@p_REQ_ID)) BEGIN SELECT 'REQ-00001' Result, '' REQ_ID, N'Nếu hình thức mua sắm theo quy định VCCB thì bạn không được phép chọn nhà cung cấp. Vui lòng để trống nhà cung cấp' ErrorDesc ROLLBACK TRANSACTION RETURN '-1' END -- IF(EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE TRADE_TYPE ='CDT' AND ( SUP_ID ='' OR SUP_ID IS NULL) AND REQ_ID =@p_REQ_ID)) BEGIN SELECT 'REQ-00001' Result, '' REQ_ID, N'Nếu hình thức mua sắm chỉ định thầu thì bạn không được phép bỏ trống nhà cung cấp. Vui lòng chọn nhà cung cấp' ErrorDesc ROLLBACK TRANSACTION RETURN '-1' END ---- NEU HINH THUC MUA SAM CHI DINH THAU THI KHONG DUOC PHEP DE TRONG LY DO CHI DINH IF(EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE TRADE_TYPE ='CDT' AND ( [NAME] ='' OR [NAME] IS NULL) AND REQ_ID =@p_REQ_ID)) BEGIN SELECT 'REQ-00001' Result, '' REQ_ID, N'Lưới Danh sách hàng hóa: Nếu hình thức mua sắm chỉ định thầu thì bạn không được phép bỏ trống lý do chỉ định thầu. Vui lòng nhập lý do chỉ định thầu' ErrorDesc ROLLBACK TRANSACTION RETURN '-1' END -- --LUCTV: 04052021 BO SUNG RANG BUOC NEU TIEN TE LA VND THI DON GIA BAO GOM VAT * SO LUONG MUA MUA = VOI NS SU DUNG IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND ROUND(QUANTITY * PRICE,0) <> ROUND(TOTAL_AMT,0) AND CURRENCY='VND')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Đối với tiền tệ VNĐ, Cột Ngân sách sử dụng chưa khớp với Đơn giá bao gồm VAT * Số lượng trình mua sắm ' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND FR_BRN_ID=@BRANCH_CREATE AND (FR_GOOD_ID IS NULL OR FR_GOOD_ID='') AND ((FR_DEP_ID=@DEP_CREATE) OR ((@DEP_CREATE IS NULL OR @DEP_CREATE='') AND (FR_DEP_ID IS NULL OR FR_DEP_ID=''))) )) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Bạn là đơn vị chuyển ngân sách, vui lòng chọn hạn mục ngân sách chuyển' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT Temp.TRADE_ID FROM ( SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ISNULL(PT.AMT_APP,0) + ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_DOC_DT TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID WHERE TB.REQ_ID=@p_REQ_ID AND TB.REQDT_TYPE='I' AND PT.GOODS_ID NOT IN (SELECT ISNULL(GD_ID,'') FROM CM_GOODS WHERE GD_TYPE_ID =@GD_TYPE_ID_NOT_VALIDATE) GROUP BY TB.TRADE_ID )Temp WHERE Temp.TOTAL_AMT_EXE > Temp.TOTAL_AMT_REMAIN)) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS RESULT , '' REQ_CODE,'' REQ_ID, N'Số tiền sử dụng lớn hơn số tiền dự kiến còn lại của hạng mục trong ngân sách' ErrorDesc RETURN '-1' END IF( EXISTS(SELECT GOODS_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND REQDT_TYPE='O') AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND TO_GOOD_ID IN (SELECT GOODS_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND REQDT_TYPE='O'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS RESULT ,'' REQ_CODE, '' REQ_ID, N'Hạng mục ngoài ngân sách, vui lòng thêm danh sách điều chuyển ngân sách' ErrorDesc RETURN '-1' END IF( NOT EXISTS(SELECT GOODS_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND REQDT_TYPE='O') AND EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND TO_GOOD_ID IN (SELECT GOODS_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND REQDT_TYPE='O'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS RESULT ,'' REQ_CODE, '' REQ_ID, N'Hạng mục trong ngân sách, vui lòng không thêm danh sách điều chuyển ngân sách' ErrorDesc RETURN '-1' END IF( EXISTS(SELECT PLDT.GOODS_ID FROM dbo.PL_REQUEST_DOC_DT PLDT WHERE PLDT.REQ_ID=@p_REQ_ID AND PLDT.REQDT_TYPE='O' AND NOT EXISTS(SELECT PLTF.REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER PLTF WHERE PLTF.TO_GOOD_ID=PLDT.GOODS_ID AND ISNULL(PLTF.TO_TRADE_ID,'')=ISNULL(PLDT.TRADE_ID,''))) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS RESULT ,'' REQ_CODE, '' REQ_ID, N'Hạng mục ngoài ngân sách, vui lòng nhập danh sách điều chuyển ngân sách' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (PRICE IS NULL OR PRICE=0 OR QUANTITY IS NULL OR QUANTITY=0)) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Số luợng, đơn giá của hàng hóa bắt buộc nhập' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (DESCRIPTION IS NULL OR DESCRIPTION='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Quy cách kỹ thuật bắt buộc nhập' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (UNIT_NAME IS NULL OR UNIT_NAME='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Đơn vị tính bắt buộc nhập' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (UNIT_NAME IS NULL OR UNIT_NAME='')) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Đây là thông tin bắt buộc nhập' ErrorDesc RETURN '-1' END DECLARE lstTransfer CURSOR FOR SELECT FR_GOOD_ID,TO_GOOD_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID OPEN lstTransfer DECLARE @FR_GOOD_ID VARCHAR(20),@TO_GOOD_ID VARCHAR(20) FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID WHILE @@FETCH_STATUS=0 BEGIN IF(@FR_GOOD_ID IS NOT NULL AND @FR_GOOD_ID<>'') BEGIN DECLARE @FR_GD_TYPE VARCHAR(20),@TO_GD_TYPE VARCHAR(20) SET @FR_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM ( SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@FR_GOOD_ID ) CG LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%') SET @TO_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM ( SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@TO_GOOD_ID ) CG LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%') IF(NOT EXISTS(SELECT * FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID= @FR_GD_TYPE AND @TO_GD_TYPE IN (SELECT value FROM dbo.wsiSplit(NOTES,';')) ) ) BEGIN DECLARE @FR_GD_TYPE_NAME NVARCHAR(100),@TO_GD_TYPE_NAME NVARCHAR(100) SET @FR_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@FR_GD_TYPE) SET @TO_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@TO_GD_TYPE) ROLLBACK TRANSACTION SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Không được điều chuyển từ ' + @FR_GD_TYPE_NAME +N' sang ' + @TO_GD_TYPE_NAME ErrorDesc RETURN '-1' CLOSE lstTransfer DEALLOCATE lstTransfer END END FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID END CLOSE lstTransfer DEALLOCATE lstTransfer --END UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID SELECT @BRANCH_ID =BRANCH_ID,@DEP_ID=DEP_ID,@BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID) SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE) --IF(@BRANCH_TYPE='PGD') -- SET @BRANCH_ID=(SELECT BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID) DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID ---KIEM TRA XEM CO CAP PHE DUYET TRUNG GIAN HAY KHONG 20-05-2020 LUCTV IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>'')) BEGIN DECLARE @BRANCH_SIGN_ID VARCHAR(20),@DEP_SIGN_ID VARCHAR(20),@BRANCH_SIGN_TYPE VARCHAR(10),@ROLE_SIGN VARCHAR(20) SELECT @BRANCH_SIGN_ID=TLSUBBRID,@DEP_SIGN_ID=SECUR_CODE,@BRANCH_SIGN_TYPE=BRANCH_TYPE,@ROLE_SIGN=RoleName FROM dbo.TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN', TOTAL_AMT =(SELECT ISNULL(SUM(TOTAL_AMT),0) FROM PL_REQUEST_DOC_DT WHERE REQ_ID =@p_REQ_ID) WHERE REQ_ID=@p_REQ_ID INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, DEP_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'SIGN', -- PROCESS_ID - varchar(10) 'C', -- STATUS - varchar(5) @ROLE_SIGN, -- ROLE_USER - varchar(50) @BRANCH_SIGN_ID, CASE WHEN @BRANCH_SIGN_TYPE='HS' THEN @DEP_SIGN_ID ELSE '' END, -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime '', -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', -- DVDM_ID - varchar(15) N'Chờ cấp phê duyệt trung gian xác nhận phiếu', -- NOTES - nvarchar(500) NULL -- IS_HAS_CHILD - bit ) END ELSE -- NGUOC LAI KHONG CO CAP PHE DUYET TRUNG GIAN BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, DEP_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'APPNEW', -- PROCESS_ID - varchar(10) 'C', -- STATUS - varchar(5) 'GDDV', -- ROLE_USER - varchar(50) @BRANCH_ID, @DEP_ID, -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime '', -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', -- DVDM_ID - varchar(15) -- N'Chờ trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500) N'Chờ trưởng đơn vị phê duyệt' , NULL -- IS_HAS_CHILD - bit ) END INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) --@p_PROCESS_ID, -- PROCESS_ID - varchar(10) 'SEND', @p_TLNAME, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Người tạo tờ trình gửi phê duyệt thành công' , -- PROCESS_DESC - nvarchar(1000) N'Nhân viên gửi phê duyệt ' -- NOTES - nvarchar(1000) ) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='SIGN')) BEGIN SELECT '0' as Result,'' REQ_CODE,''REQ_ID, (SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) Attr1, N'Tờ trình số: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)+N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc RETURN '0' END ELSE BEGIN SELECT '0' as Result,'' REQ_CODE,''REQ_ID, (SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) Attr1, N'Tờ trình số: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)+N' đã được gửi phê duyệt thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '0' END ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[REAL_ESTATE_R_H_ById]' GO ALTER PROCEDURE [dbo].[REAL_ESTATE_R_H_ById] @p_RET_R_H_ID varchar(15)=NULL AS BEGIN SELECT A.*, AUTH.AUTH_STATUS_NAME, B.CONTRACT_NAME AS TR_CONTRACT_NAME, CASE WHEN DATEDIFF(DAY, A.END_DT, B.END_DT) <> 0 THEN B.APPROVE_DT ELSE A.EXTEND_DT END AS NGAY_GIA_HAN_HD FROM REAL_ESTATE_R_H AS A LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS --------BAODNQ 7/2/2022: Kết thêm bảng TR_CONTRACT LEFT JOIN TR_CONTRACT B ON A.TR_CONTRACT_ID = B.CONTRACT_ID WHERE A.RET_R_H_ID = @p_RET_R_H_ID SELECT * FROM RET_PRICE WHERE RET_R_H_ID = @p_RET_R_H_ID ORDER BY PRICE_DT DESC END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_DOC_ById]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_ById] @p_REQ_ID varchar(15) = NULL, @p_USER_LOGIN VARCHAR(50) = NULL AS BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID, A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID, UDV.TLFullName AS CHECKER_NAME_DV, A.APPROVE_DT, A.PROCESS_ID, D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME, G.BRANCH_CODE, CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME, UP.TLFullName AS CHECKER_NAME_PROCESS, RP.APPROVE_DT AS APPROVE_DT_PROCESS, UC.TLFullName AS MAKER_NAME, RPN.PROCESS_ID AS PROCESS_ID_NEXT, RPN.ROLE_USER, RP.NOTES AS PROCESS_STATUS , RPN.NOTES AS PROCESS_STATUS_NEXT, A.DVDM_APP_ID, CD.DVDM_NAME AS DVDM_APP_NAME, A.REQ_PARENT_ID, PARENT.REQ_NAME AS REQ_PARENT_NAME, PARENT.REQ_CODE AS REQ_PARENT_CODE, PARENT.TOTAL_AMT AS REQ_PARENT_AMT, CC.REQ_NAME AS PL_BASED_NAME, CC.REQ_CODE AS PL_BASED_CODE, CC.TOTAL_AMT AS PL_BASED_AMT, A.BRANCH_FEE, A.DEP_ID, A.DEP_FEE, DEP.DEP_NAME, DEP.DEP_CODE, BF.BRANCH_NAME AS BRANCH_FEE_NAME, BF.BRANCH_CODE AS BRANCH_FEE_CODE, DF.DEP_NAME AS DEP_FEE_NAME, DF.DEP_CODE AS DEP_FEE_CODE, '' AS BRANCH_DEP, '' AS BRANCH_DEP_FEE, RPC.TYPE_JOB AS TYPE_JOB, RPC.TLNAME AS USER_JOB, TU.TLFullName AS USER_JOB_NAME, TFM.TLNANME AS TRANSFER_MAKER, RPC.TRANFER_DT AS TRANFER_DT , RPC.MAKER_ID AS TRANSFER_MAKER_ID, A.EFFEC_DT,A.IS_BACKDAY, '' AS TYPE_JOB_XL, '' AS USER_JOB_XL, --PLRP.ID AS REF_ID, -- GIANT 11/11/2021 ISNULL(RPC.PROCESS_ID,PLRP.ID) AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB, A.BRANCH_CREATE, A.DEP_CREATE, A.REQ_LINE, A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, A.KT_NOTES, A.IS_CHECKALL, A.BASED_CONTENT, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY, '' AS NGUOIXULY ,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES, BTC.BRANCH_TYPE AS BRANCH_TYPE_CRE, BF.BRANCH_TYPE AS BRANCH_TYPE_FEE, A.PL_BASED_ID FROM PL_REQUEST_DOC A LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND (PLRP.IS_HAS_CHILD=1 OR PLRP.PROCESS_ID IN ('TKTGD','TKHDQT')) LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') ) LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC) LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID --LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID = PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') -- GIANT LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') AND RPC.TLNAME = @p_USER_LOGIN --LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.PL_REQUEST_DOC CC ON CC.REQ_ID = A.PL_BASED_ID LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME -- GiaNT LEFT JOIN CM_BRANCH BTC ON BTC.BRANCH_ID = A.BRANCH_CREATE WHERE 1 = 1 AND (A.REQ_ID = @p_REQ_ID ) ORDER BY USER_JOB DESC END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_CONTRACT_MASTER_Search]' GO ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_Search] @p_CONTRACT_ID varchar(15) = NULL, @p_BUILDING_ID varchar(15) = NULL, @p_CONTRACT_NO nvarchar(100) = NULL, @p_VERSION_NO int =0, @p_CUST_ID varchar(15) = NULL, @p_INPUT_DT VARCHAR(20) = NULL, @p_AMEND_DT VARCHAR(20) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DATE VARCHAR(20) = NULL, @p_CLOSE_DT VARCHAR(20) = NULL, @p_MONTHS int = NULL, @p_RENT_PRICE numeric(18) = NULL, @p_NOTES NVARCHAR(MAX) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_STATUS VARCHAR(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_VAT DECIMAL(18,0)= NULL, @p_VAT_AMT DECIMAL(18,0) =NULL, @p_DEPOSITS_AMT DECIMAL(18,0) =NULL, @p_PAYMENT_SHEDULE NVARCHAR(500)= NULL, @p_TOP INT = 10, @p_FROM_MONTH int= NULL, @p_TO_MONTH int = NULL, @p_FROM_PRICE DECIMAL(18) = NULL, @p_TO_PRICE DECIMAL(18) = NULL, @p_FROMDATE VARCHAR(25) = NULL, @p_TODATE VARCHAR(25)= NULL, @p_LEVEL VARCHAR(15)='ALL', @p_USER_LOGIN VARCHAR(15) -----BAODNQ 4/1/2021: Truyền thêm USER_LOGIN---- AS -----BAODNQ: thêm các comment phân trang---- BEGIN -- PAGING declare @p_BRANCH_LOGIN VARCHAR(15) --set @p_BRANCH_LOGIN = (select TLSUBBRID from TL_USER where TLNANME=@p_MAKER_ID) set @p_BRANCH_LOGIN = (select TLSUBBRID from TL_USER where TLNANME=@p_USER_LOGIN) DECLARE @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) --------BAODNQ 5/1/2021: Khai báo role USER_LOGIN------------------- DECLARE @p_USER_LOGIN_ROLE VARCHAR(50) SET @p_USER_LOGIN_ROLE = (SELECT RoleName FROM TL_USER WHERE TLNANME = @p_USER_LOGIN) IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME,C.NUM_FLOOR, C.BUILDING_NAME,BR.BRANCH_NAME,LS.CUSTOMER_NAME,CM.CONTENT AS TINHTRANG_HOPDONG, -----BAODNQ 30/12/2021: Lấy thêm cột full name---- D.TLFullName AS SIGN_USER_FULLNAME -- SELECT END FROM BUD_CONTRACT_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = A.BRANCH_ID LEFT JOIN LS_CUSTOMER LS ON LS.CUSTOMER_ID = A.CUST_ID LEFT JOIN CM_ALLCODE CM ON A.[STATUS] = CM.CDVAL AND CDNAME='CONTRACT_STATUS' AND CDTYPE='CONTRACT' -----BAODNQ 30/12/2021: Kết thêm bảng TL_USER---- LEFT JOIN TL_USER D ON A.SIGN_USER = D.TLNANME WHERE 1 = 1 AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '') AND (A.BUILDING_ID LIKE '%' + @p_BUILDING_ID + '%' OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (A.CONTRACT_NO LIKE '%' + @p_CONTRACT_NO + '%' OR @p_CONTRACT_NO IS NULL OR @p_CONTRACT_NO = '') AND (A.CUST_ID LIKE '%' + @p_CUST_ID + '%' OR @p_CUST_ID IS NULL OR @p_CUST_ID = '') AND (A.INPUT_DT =CONVERT(DATE, @p_INPUT_DT, 103) OR @p_INPUT_DT IS NULL OR @p_INPUT_DT = '') AND (A.AMEND_DT =CONVERT(DATE, @p_AMEND_DT, 103) OR @p_AMEND_DT IS NULL OR @p_AMEND_DT = '') AND (A.TO_DATE =CONVERT(DATE, @p_TO_DATE, 103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') AND (A.CLOSE_DT =CONVERT(DATE, @p_CLOSE_DT, 103) OR @p_CLOSE_DT IS NULL OR @p_CLOSE_DT = '') AND (A.RENT_PRICE = @p_RENT_PRICE OR @p_RENT_PRICE IS NULL OR @p_RENT_PRICE =0) AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (CONVERT(DATE,A.CREATE_DT,103) >=CONVERT(DATE, @p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE = '') AND (CONVERT(DATE,A.CREATE_DT,103) <=CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE = '') AND (ISNULL(A.MONTHS,0) >= @p_FROM_MONTH OR @p_FROM_MONTH IS NULL OR @p_FROM_MONTH = 0) AND (ISNULL(A.MONTHS,0) <= @p_TO_MONTH OR @p_TO_MONTH IS NULL OR @p_TO_MONTH = 0) AND (A.RENT_PRICE >= @p_FROM_PRICE OR @p_FROM_PRICE IS NULL OR @p_FROM_PRICE = 0) AND (A.RENT_PRICE <= @p_TO_PRICE OR @p_TO_PRICE IS NULL OR @p_TO_PRICE = 0) AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (A.APPROVE_DT =CONVERT(DATE, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp)) -----BAODNQ 4/1/2021: Thêm điều kiện select---- AND (A.MAKER_ID = @p_USER_LOGIN OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') OR ((@p_USER_LOGIN_ROLE IN ('GDDV','PGD', 'TP', 'PP','TPGD','PPGD')) AND A.IS_SEND_APPR = 'Y' AND ( (ISNULL(A.SIGN_USER,'') ='' OR ((ISNULL(A.SIGN_USER,'') <>'' AND A.SIGN_DT IS NOT NULL ))) ) ) ) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.AUTH_STATUS_NAME,C.NUM_FLOOR, C.BUILDING_NAME,BR.BRANCH_NAME,LS.CUSTOMER_NAME,CM.CONTENT AS TINHTRANG_HOPDONG, -----BAODNQ 30/12/2021: Lấy thêm cột full name---- D.TLFullName AS SIGN_USER_FULLNAME -- SELECT END FROM BUD_CONTRACT_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = A.BRANCH_ID LEFT JOIN LS_CUSTOMER LS ON LS.CUSTOMER_ID = A.CUST_ID LEFT JOIN CM_ALLCODE CM ON A.[STATUS] = CM.CDVAL AND CDNAME='CONTRACT_STATUS' AND CDTYPE='CONTRACT' -----BAODNQ 30/12/2021: Kết thêm bảng TL_USER---- LEFT JOIN TL_USER D ON A.SIGN_USER = D.TLNANME WHERE 1 = 1 AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '') AND (A.BUILDING_ID LIKE '%' + @p_BUILDING_ID + '%' OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (A.CONTRACT_NO LIKE '%' + @p_CONTRACT_NO + '%' OR @p_CONTRACT_NO IS NULL OR @p_CONTRACT_NO = '') AND (A.CUST_ID LIKE '%' + @p_CUST_ID + '%' OR @p_CUST_ID IS NULL OR @p_CUST_ID = '') AND (A.INPUT_DT =CONVERT(DATE, @p_INPUT_DT, 103) OR @p_INPUT_DT IS NULL OR @p_INPUT_DT = '') AND (A.AMEND_DT =CONVERT(DATE, @p_AMEND_DT, 103) OR @p_AMEND_DT IS NULL OR @p_AMEND_DT = '') AND (A.TO_DATE =CONVERT(DATE, @p_TO_DATE, 103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') AND (A.CLOSE_DT =CONVERT(DATE, @p_CLOSE_DT, 103) OR @p_CLOSE_DT IS NULL OR @p_CLOSE_DT = '') AND (A.RENT_PRICE = @p_RENT_PRICE OR @p_RENT_PRICE IS NULL OR @p_RENT_PRICE = 0) AND (A.RECORD_STATUS =1) AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (CONVERT(DATE,A.CREATE_DT,103) >=CONVERT(DATE, @p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE = '') AND (CONVERT(DATE,A.CREATE_DT,103) <=CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE = '') AND (ISNULL(A.MONTHS,0) >= @p_FROM_MONTH OR @p_FROM_MONTH IS NULL OR @p_FROM_MONTH = 0) AND (ISNULL(A.MONTHS,0) <= @p_TO_MONTH OR @p_TO_MONTH IS NULL OR @p_TO_MONTH = 0) AND (A.RENT_PRICE >= @p_FROM_PRICE OR @p_FROM_PRICE IS NULL OR @p_FROM_PRICE = 0) AND (A.RENT_PRICE <= @p_TO_PRICE OR @p_TO_PRICE IS NULL OR @p_TO_PRICE = 0) AND (( (@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)) OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID) ) OR @P_BRANCH_ID IS NULL OR @P_BRANCH_ID = '') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp)) AND ( A.VERSION_NO =(SELECT MAX(VERSION_NO) FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = A.CONTRACT_ID)) -----BAODNQ 4/1/2021: Thêm điều kiện select---- AND (A.MAKER_ID = @p_USER_LOGIN OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') OR ((@p_USER_LOGIN_ROLE IN ('GDDV','PGD', 'TP', 'PP','TPGD','PPGD')) AND A.IS_SEND_APPR = 'Y' AND ( (ISNULL(A.SIGN_USER,'') ='' OR ((ISNULL(A.SIGN_USER,'') <>'' AND A.SIGN_DT IS NOT NULL ))) ) ) ) -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_DOC_DT_ById]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_DT_ById] @P_REQ_ID varchar(15), @P_TYPE VARCHAR(20), @P_USER_LOGIN VARCHAR(20) AS DECLARE @listTRADE TABLE ( GOODS_ID VARCHAR(20), TRADE_ID VARCHAR(20), PLAN_ID VARCHAR(20), AMT_APP DECIMAL(18,2), AMT_EXE DECIMAL (18,2), AMT_ETM DECIMAL (18,2), AMT_TF DECIMAL (18,2), AMT_RECEIVE_TF DECIMAL (18,2), NOTES NVARCHAR(1000) ) IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID='APPROVE')) BEGIN IF(EXISTS(SELECT * FROM dbo.PL_TRADEDETAIL_HIST WHERE REQ_ID=@P_REQ_ID)) BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES) SELECT GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES FROM dbo.PL_TRADEDETAIL_HIST WHERE REQ_ID=@P_REQ_ID END ELSE BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES) SELECT PT.GOODS_ID,PT.TRADE_ID,PT.PLAN_ID,PT.AMT_APP,PT.AMT_EXE,PT.AMT_ETM-PLDT.TOTAL_AMT,PT.AMT_TF-PLFT.TOTAL_AMT,PT.AMT_RECEIVE_TF-PLTT.TOTAL_AMT, PT.NOTES FROM dbo.PL_TRADEDETAIL PT LEFT JOIN ( SELECT TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID GROUP BY TRADE_ID ) PLDT ON PLDT.TRADE_ID = PT.TRADE_ID LEFT JOIN ( SELECT FR_TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID GROUP BY FR_TRADE_ID ) PLFT ON PLFT.FR_TRADE_ID = PT.TRADE_ID LEFT JOIN ( SELECT TO_TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID GROUP BY TO_TRADE_ID ) PLTT ON PLTT.TO_TRADE_ID = PT.TRADE_ID WHERE (PT.TRADE_ID IN (SELECT TRADE_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID) OR PT.TRADE_ID IN (SELECT FR_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)) END END ELSE BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES) SELECT GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES FROM dbo.PL_TRADEDETAIL WHERE (TRADE_ID IN (SELECT TRADE_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID) OR TRADE_ID IN (SELECT FR_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)) END DECLARE @DEP_ID VARCHAR(15),@BRANCH_ID VARCHAR(15),@ROLE VARCHAR(15),@IS_ALL BIT SET @IS_ALL=0 DECLARE @COST_ID TABLE ( COST_ID VARCHAR(15) ) DECLARE @DVDM_ID TABLE ( DVDM_ID VARCHAR(15) ) SET @DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN) SET @BRANCH_ID=(SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN) IF(EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_MASTER' AND BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID)) SET @IS_ALL=1 SET @ROLE=(SELECT RoleName FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN) INSERT INTO @COST_ID SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID INSERT INTO @DVDM_ID SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID IF(@P_TYPE='DVKD') BEGIN SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,A.NAME as NOTES,A.DESCRIPTION,A.HANGHOA_ID,A.HANGHOA_ID HH_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES,A.REQ_ID, ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME, ISNULL(PL.AMT_APP,0) AS AMT_APP, ISNULL(PL.AMT_EXE,0) AS AMT_EXE, ISNULL(PL.AMT_ETM,0) AS AMT_ETM, ISNULL(PL.AMT_TF,0) AS AMT_TF, ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0) AS AMT_REMAIN_ETM, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE') GROUP BY Temp.TRADE_ID),0) AS AMT_REMAIN_REQ, A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME, A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME, -- GIANT 24/12/2021 MỚI SỬA Ở TTCT CHƯA SỬA Ở MÀN HÌNH LIÊN QUAN AA.REQ_CODE,AC.BRANCH_NAME AS BRANCH_NAME_FEE,AC.BRANCH_ID AS BRANCH_ID_FEE,AD.DEP_ID AS DEP_ID_FEE,AD.DEP_NAME AS DEP_NAME_FEE,AD.DEP_NAME + ' - ' + AC.BRANCH_NAME AS BRANCH_FEE_FULL, CASE WHEN A.REQDT_TYPE = 'I' THEN 1 ELSE 0 END AS IS_NGAN_SACH FROM PL_REQUEST_DOC_DT A LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID -- GIANT 23/12/2021 LEFT JOIN PL_REQUEST_DOC AA ON AA.REQ_ID = A.REQ_ID LEFT JOIN PL_MASTER AB ON AB.PLAN_ID = A.PLAN_ID LEFT JOIN CM_BRANCH AC ON AC.BRANCH_ID = AB.BRANCH_ID LEFT JOIN CM_DEPARTMENT AD ON AD.DEP_ID = AB.DEPT_ID WHERE A.REQ_ID=@P_REQ_ID END ELSE IF(@P_TYPE='PDTT') BEGIN SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES, ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME, ISNULL(PL.AMT_APP,0) AS AMT_APP, ISNULL(PL.AMT_EXE,0) AS AMT_EXE, ISNULL(PL.AMT_ETM,0) AS AMT_ETM, ISNULL(PL.AMT_TF,0) AS AMT_TF, ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0) AS AMT_REMAIN_ETM, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE') GROUP BY Temp.TRADE_ID),0) AS AMT_REMAIN_REQ, A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME, A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME FROM PL_REQUEST_DOC_DT A LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID LEFT JOIN dbo.PL_REQUEST_TRANSFER PLT ON PLT.REQ_DOC_ID=A.REQ_ID AND PLT.TO_GOOD_ID=A.GOODS_ID WHERE A.REQ_ID=@P_REQ_ID --AND (@ROLE='TGD' OR @IS_ALL=1 OR @ROLE='HDQT' OR EXISTS(SELECT * FROM @DVDM_ID WHERE [@DVDM_ID].DVDM_ID=A.DVDM_ID OR [@DVDM_ID].DVDM_ID=A.KHOI_ID ) OR EXISTS(SELECT * FROM @DVDM_ID WHERE [@DVDM_ID].DVDM_ID=PLT.FR_DVDM_ID OR [@DVDM_ID].DVDM_ID=PLT.FR_KHOI_ID )) END ELSE IF(@P_TYPE='XLTT') BEGIN SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES, ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME, ISNULL(PL.AMT_APP,0) AS AMT_APP, ISNULL(PL.AMT_EXE,0) AS AMT_EXE, ISNULL(PL.AMT_ETM,0) AS AMT_ETM, ISNULL(PL.AMT_TF,0) AS AMT_TF, ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0) AS AMT_REMAIN_ETM, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE') GROUP BY Temp.TRADE_ID),0) AS AMT_REMAIN_REQ, A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME, A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME FROM PL_REQUEST_DOC_DT A LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID WHERE A.REQ_ID=@P_REQ_ID --AND (@ROLE='TGD' OR @IS_ALL=1 OR @ROLE='HDQT' OR @ROLE ='KSV' OR @ROLE ='GDV' OR EXISTS(SELECT * FROM @DVDM_ID WHERE [@DVDM_ID].DVDM_ID=A.DVDM_ID OR [@DVDM_ID].DVDM_ID=A.KHOI_ID ) --OR EXISTS --(SELECT * FROM dbo.CM_GOOD_DVDM CGD WHERE CGD.GD_ID=A.GOODS_ID AND CGD.DVCM_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) --OR EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER PT WHERE PT.TO_TRADE_ID=A.TRADE_ID AND PT.TO_GOOD_ID=A.GOODS_ID AND --(PT.FR_BRN_ID=@BRANCH_ID AND ( PT.FR_DEP_ID=@DEP_ID OR PT.FR_DEP_ID IS NULL OR PT.FR_DEP_ID='') )) --) END ELSE IF( @P_TYPE='PYC') BEGIN SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES, ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME, ISNULL(PL.AMT_APP,0) AS AMT_APP, ISNULL(PL.AMT_EXE,0) AS AMT_EXE, ISNULL(PL.AMT_ETM,0) AS AMT_ETM, ISNULL(PL.AMT_TF,0) AS AMT_TF, ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0) AS AMT_REMAIN_ETM, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE') GROUP BY Temp.TRADE_ID),0) AS AMT_REMAIN_REQ, A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME, A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME FROM PL_REQUEST_DOC_DT A LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GT ON B.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID WHERE A.REQ_ID=@P_REQ_ID UNION ALL SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES, ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME, ISNULL(PL.AMT_APP,0) AS AMT_APP, ISNULL(PL.AMT_EXE,0) AS AMT_EXE, ISNULL(PL.AMT_ETM,0) AS AMT_ETM, ISNULL(PL.AMT_TF,0) AS AMT_TF, ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0) AS AMT_REMAIN_ETM, ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE') GROUP BY Temp.TRADE_ID),0) AS AMT_REMAIN_REQ, A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME, A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME FROM PL_REQUEST_DOC_DT A LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%' LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID WHERE A.REQ_ID IN (SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_PARENT_ID =@P_REQ_ID) END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_CONTRACT_Search]' GO ALTER PROCEDURE [dbo].[TR_CONTRACT_Search] @p_CONSTRACT_CODE varchar(50) = NULL, @p_CONSTRACT_ID varchar(15) = NULL, @p_CONSTRACT_TYPE varchar(1) = NULL, @p_CONSTRACT_NAME NVARCHAR(200) = NULL, @p_BID_ID varchar(15) = NULL, @p_BID_CODE varchar(15) = NULL, @p_SUP_ID varchar(15) = NULL, @p_SUP_CODE varchar(15) = NULL, @P_SIGN_DT VARCHAR(20) = NULL, @P_CREATE_DT VARCHAR(50) = NULL, @p_AUTH_STATUS VARCHAR(1) = NULL, @P_CONSTRUCT_ID VARCHAR(15) = NULL, @P_CONSTRUCT_CODE VARCHAR(15) = NULL, @P_START_DT VARCHAR(20) = NULL, @P_END_DT VARCHAR(20) = NULL, @P_CONTRACT_PARENT varchar(15) = NULL, @p_REQUEST_ID varchar(15)=NULL, @P_TOP INT =10, @p_PYC_CODE VARCHAR(125) = NULL, @p_PYC_NAME NVARCHAR(250) = NULL, @p_TTCT_CODE VARCHAR(25) = NULL, @p_TTCT_NAME NVARCHAR(250) = NULL, @p_HH_TYPE_CODE VARCHAR(25) = NULL, @p_HH_TYPE_NAME NVARCHAR(250) = NULL, @p_CUST_ID VARCHAR(15) = NULL, @p_CONT_TYPE VARCHAR(150) = NULL, @p_BRANCH_ID VARCHAR(15)= NULL, @p_BRANCH_LOGIN VARCHAR(15) = NULL, @p_LEVEL VARCHAR(15) = NULL, @p_MAKER_ID VARCHAR(15) = NULL AS BEGIN -- PAGING --set @p_MAKER_ID = TRIM(@p_MAKER_ID) SET @p_LEVEL='ALL' SET @P_TOP =2000 declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) --- KHAI BAO TABLE SPLIT CHUOI DECLARE @l_LST_CONTYPE TABLE ([ID] [int] IDENTITY(1,1) NOT NULL,[VALUE] [NVARCHAR](MAX) NULL) INSERT INTO @l_LST_CONTYPE SELECT VALUE FROM WSISPLIT(@p_CONT_TYPE,',') IF(@p_CONSTRACT_TYPE = '2') IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.ADDR, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON, D.AUTH_STATUS_NAME,F.CONSTRUCT_CODE,F.CONSTRUCT_ID, ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,'' AS SO_PYC, '' AS TEN_PYC, '' AS SO_TT_CT, '' AS TEN_TT_CT, A.CREATE_DT AS NGAY_NHAN_TT, A.CREATE_DT AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR, B.TAX_NO,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME,CA.CONTENT AS CONT_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE, BR.BRANCH_CODE, BR.BRANCH_NAME, '' AS TO_TRINH_ID,B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,0.0 AS TOTAL_ADV_AMT, 0.0 AS TOTAL_PAY_AMT,'' AS IS_FLAG_END -- SELECT END FROM TR_CONTRACT A LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN BID_MASTER E ON E.BID_ID = A.BID_ID LEFT JOIN CON_MASTER F ON F.CONSTRUCT_ID = E.PROJECT_ID LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT' LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID WHERE 1=1 AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '') AND (F.CONSTRUCT_ID like '%'+@P_CONSTRUCT_ID+'%' OR @P_CONSTRUCT_ID IS NULL OR @P_CONSTRUCT_ID like '') AND (F.CONSTRUCT_CODE like '%'+@P_CONSTRUCT_CODE+'%' OR @P_CONSTRUCT_CODE IS NULL OR @P_CONSTRUCT_CODE like '') AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '') AND (A.CONTRACT_ID like '%'+@p_CONSTRACT_ID+'%' OR @p_CONSTRACT_ID IS NULL OR @p_CONSTRACT_ID like '') AND (A.[CONTRACT_NAME] like '%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '') AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '') AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '') AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '') AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '') AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '') AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='') AND (DATEDIFF(DAY,A.START_DT,CONVERT(DATETIME, @P_START_DT, 103)) = 0 OR @P_START_DT IS NULL OR @P_START_DT='') AND (DATEDIFF(DAY,A.END_DT,CONVERT(DATETIME, @P_END_DT, 103)) = 0 OR @P_END_DT IS NULL OR @P_END_DT='') AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '') AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '') AND (A.CONTRACT_PARENT like '%'+@P_CONTRACT_PARENT+'%' OR @P_CONTRACT_PARENT IS NULL OR @P_CONTRACT_PARENT like '') AND A.RECORD_STATUS = '1' AND (A.REQUEST_ID LIKE '%' + @p_REQUEST_ID + '%' OR @p_REQUEST_ID IS NULL OR @p_REQUEST_ID = '') AND(EXISTS(SELECT HH_ID FROM CM_HANGHOA HH LEFT JOIN CM_HANGHOA_TYPE HT ON HH.HH_TYPE_ID=HT.HH_TYPE_ID WHERE (HT.HH_TYPE_CODE LIKE '%' + @p_HH_TYPE_CODE + '%' OR @p_HH_TYPE_CODE = '' OR @p_HH_TYPE_CODE IS NULL) AND (HT.HH_TYPE_NAME LIKE N'%' + @p_HH_TYPE_NAME + '%' OR @p_HH_TYPE_NAME = '' OR @p_HH_TYPE_NAME IS NULL) AND HH.HH_ID=PT.GOODS_ID)) AND (A.CUST_ID =@p_CUST_ID OR @p_CUST_ID IS NULL OR @p_CUST_ID ='') AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL) AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID) ) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP)) A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.ADDR, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON, D.AUTH_STATUS_NAME,F.CONSTRUCT_CODE,F.CONSTRUCT_ID, ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,'' AS TEN_PYC, '' AS SO_TT_CT, A.CREATE_DT AS NGAY_NHAN_TT, '' AS TEN_TT_CT, A.CREATE_DT AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,B.TAX_NO, CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME,'' AS TO_TRINH_ID, B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,0.0 AS TOTAL_ADV_AMT, 0.0 AS TOTAL_PAY_AMT,'' AS IS_FLAG_END -- SELECT END FROM TR_CONTRACT A LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN BID_MASTER E ON E.BID_ID = A.BID_ID LEFT JOIN CON_MASTER F ON F.CONSTRUCT_ID = E.PROJECT_ID LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT' LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID WHERE 1=1 AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '') AND (F.CONSTRUCT_ID like '%'+@P_CONSTRUCT_ID+'%' OR @P_CONSTRUCT_ID IS NULL OR @P_CONSTRUCT_ID like '') AND (F.CONSTRUCT_CODE like '%'+@P_CONSTRUCT_CODE+'%' OR @P_CONSTRUCT_CODE IS NULL OR @P_CONSTRUCT_CODE like '') AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '') AND (A.CONTRACT_ID like '%'+@p_CONSTRACT_ID+'%' OR @p_CONSTRACT_ID IS NULL OR @p_CONSTRACT_ID like '') AND (A.[CONTRACT_NAME] like '%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '') AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '') AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '') AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '') AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '') AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '') AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='') AND (DATEDIFF(DAY,A.START_DT,CONVERT(DATETIME, @P_START_DT, 103)) = 0 OR @P_START_DT IS NULL OR @P_START_DT='') AND (DATEDIFF(DAY,A.END_DT,CONVERT(DATETIME, @P_END_DT, 103)) = 0 OR @P_END_DT IS NULL OR @P_END_DT='') AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '') AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '') AND (A.CONTRACT_PARENT like '%'+@P_CONTRACT_PARENT+'%' OR @P_CONTRACT_PARENT IS NULL OR @P_CONTRACT_PARENT like '') AND A.RECORD_STATUS = '1' AND (A.REQUEST_ID LIKE '%' + @p_REQUEST_ID + '%' OR @p_REQUEST_ID IS NULL OR @p_REQUEST_ID = '') AND(EXISTS(SELECT HH_ID FROM CM_HANGHOA HH LEFT JOIN CM_HANGHOA_TYPE HT ON HH.HH_TYPE_ID=HT.HH_TYPE_ID WHERE (HT.HH_TYPE_CODE LIKE '%' + @p_HH_TYPE_CODE + '%' OR @p_HH_TYPE_CODE = '' OR @p_HH_TYPE_CODE IS NULL) AND (HT.HH_TYPE_NAME LIKE N'%' + @p_HH_TYPE_NAME + '%' OR @p_HH_TYPE_NAME = '' OR @p_HH_TYPE_NAME IS NULL) AND HH.HH_ID=PT.GOODS_ID)) AND (A.CUST_ID =@p_CUST_ID OR @p_CUST_ID IS NULL OR @p_CUST_ID ='') --AND (A.CONT_TYPE =@p_CONT_TYPE OR (@p_CONT_TYPE IS NULL OR @p_CONT_TYPE ='')) AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL) AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL) AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID) -- PAGING END ELSE IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.ADDR, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON, D.AUTH_STATUS_NAME, ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT, dc.REQ_CODE AS SO_PYC, T.REQ_NAME AS TEN_PYC, T.REQ_CODE AS SO_TT_CT, T.REQ_NAME AS TEN_TT_CT, T.CREATE_DT AS NGAY_NHAN_TT, T.APPROVE_DT AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR, B.TAX_NO, CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME,T.REQ_ID AS TO_TRINH_ID, B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,0.0 AS TOTAL_ADV_AMT, 0.0 AS TOTAL_PAY_AMT,'' AS IS_FLAG_END -- SELECT END FROM TR_CONTRACT A LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN TR_REQUEST_DOC DC ON A.REQ_DOC_ID = DC.REQ_ID LEFT JOIN PL_REQUEST_DOC T ON DC.PL_REQ_ID = T.REQ_ID LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT' --LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID WHERE 1=1 AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '') AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '') AND (A.CONTRACT_ID =@p_CONSTRACT_ID OR @p_CONSTRACT_ID IS NULL OR @p_CONSTRACT_ID like '') AND (A.[CONTRACT_NAME] like N'%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '') AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '') AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '') AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '') AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '') AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '') AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='') AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '') AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '') AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL) AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL OR A.CONT_TYPE ='DK') AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID) AND (DC.REQ_CODE =@p_PYC_CODE OR @p_PYC_CODE IS NULL OR @p_PYC_CODE ='' OR DC.REQ_ID =@p_PYC_CODE) AND (T.REQ_CODE =@p_TTCT_CODE OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE ='' OR T.REQ_ID =@p_TTCT_CODE) AND ( (LEN(@p_CUST_ID)=1 AND ((@p_CUST_ID ='Y' AND (CONVERT(DATE, GETDATE(),103) <= CONVERT(DATE, A.END_DT,103) OR A.END_DT IS NULL)) OR (@p_CUST_ID ='N' AND (CONVERT(DATE, GETDATE(),103) > CONVERT(DATE, A.END_DT,103))) )) OR (LEN(@p_CUST_ID) >1 AND A.CUST_ID =@p_CUST_ID) OR (@p_CUST_ID IS NULL OR @p_CUST_ID ='') ) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP)) A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.ADDR, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON, D.AUTH_STATUS_NAME, ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT, dc.REQ_CODE AS SO_PYC, T.REQ_NAME AS TEN_PYC, T.REQ_CODE AS SO_TT_CT, T.REQ_NAME AS TEN_TT_CT, T.CREATE_DT AS NGAY_NHAN_TT, T.APPROVE_DT AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, N'Họp đồng số: '+ A.CONTRACT_ID +N' đã hết hiệu lực' NCC_ADDR, B.TAX_NO, CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME, T.REQ_ID AS TO_TRINH_ID, B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,0.0 AS TOTAL_ADV_AMT, 0.0 AS TOTAL_PAY_AMT, CASE WHEN CONVERT(DATE, A.END_DT, 103) < CONVERT(DATE, GETDATE(), 103) AND A.END_DT IS NOT NULL AND A.END_DT <> '' THEN N'Hợp đồng số :' + A.CONTRACT_ID + N' đã hết hiệu lực kể từ ngày ' + FORMAT(DATEADD(DAY,1,A.END_DT),'dd/MM/yyyy') ELSE '' END AS IS_FLAG_END -- SELECT END FROM TR_CONTRACT A LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN TR_REQUEST_DOC DC ON A.REQ_DOC_ID = DC.REQ_ID LEFT JOIN PL_REQUEST_DOC T ON DC.PL_REQ_ID = T.REQ_ID LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT' --LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID WHERE 1=1 AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '') AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '') AND (A.CONTRACT_ID =@p_CONSTRACT_ID OR @p_CONSTRACT_ID IS NULL OR @p_CONSTRACT_ID like '') AND (A.[CONTRACT_NAME] like N'%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '') AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '') AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '') AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '') AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '') AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '') AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='') AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '') AND( DC.REQ_CODE like '%'+@p_PYC_CODE +'%' OR @p_PYC_CODE IS NULL OR @p_PYC_CODE like '' ) AND( T.REQ_CODE like '%'+@p_TTCT_CODE +'%' OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE like '' ) AND( T.REQ_NAME like N'%'+@p_TTCT_NAME +'%' OR @p_TTCT_NAME IS NULL OR @p_TTCT_NAME like '' ) AND A.RECORD_STATUS = '1' AND ((LEN(@p_CUST_ID)=1 AND ((@p_CUST_ID ='Y' AND (CONVERT(DATE, GETDATE(),103) <= CONVERT(DATE, A.END_DT,103) OR A.END_DT IS NULL)) OR (@p_CUST_ID ='N' AND (CONVERT(DATE, GETDATE(),103) > CONVERT(DATE, A.END_DT,103))) )) OR (LEN(@p_CUST_ID) >1 AND A.CUST_ID =@p_CUST_ID) OR (@p_CUST_ID IS NULL OR @p_CUST_ID ='') ) AND (A.CONT_TYPE IN (SELECT [VALUE] FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL) AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)) OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL OR A.CONT_TYPE ='NT') AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID) AND (DC.REQ_CODE =@p_PYC_CODE OR @p_PYC_CODE IS NULL OR @p_PYC_CODE ='' OR DC.REQ_ID =@p_PYC_CODE) AND (T.REQ_CODE =@p_TTCT_CODE OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE ='' OR T.REQ_ID =@p_TTCT_CODE) ORDER BY A.CREATE_DT DESC -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[RET_MASTER_Upd]' GO ALTER PROCEDURE [dbo].[RET_MASTER_Upd] @p_RET_ID varchar(15) = null , @p_ASSET_ID VARCHAR(15) = NULL, @P_ASSET_CODE VARCHAR(15) = NULL, @P_OWNER VARCHAR(500) = NULL, @p_LENGTH DECIMAL(18,2) = NULL, @p_WIDTH DECIMAL(18,2) = NULL, @p_FLOORS int = NULL, @p_CURRENT_STATE nvarchar(100) = NULL, @p_RET_TYPE varchar(15) = NULL, @p_STATUS varchar(15) = NULL, @p_LAND_SQUARE DECIMAL(18,2) = NULL, @p_ADDR nvarchar(1000) = NULL, -- hungdv hieu chinh yeu cau anh toi 250520 @p_CONSTRUCT_SQUARE DECIMAL(18,2) = NULL, @p_TOTAL_SQUARE DECIMAL(18,2) = NULL, @p_BOUNDARY nvarchar(100) = NULL, @p_HOUSEDES nvarchar(100) = NULL, @p_PURPOSE_IN_USE nvarchar(500) = NULL, @P_W_USE_CON NVARCHAR(100) = NULL, @p_USE_STATUS varchar(15) = NULL, @p_CONST_STATUS varchar(15) = NULL, @p_OWNER_TYPE varchar(15) = NULL, @p_USE_PERIOD int = NULL, @p_PERSON_HOLDER nvarchar(1000) = NULL, @p_REASON nvarchar(1000) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @P_BUY_DT VARCHAR(20) = NULL, @p_USE_FORM VARCHAR(1), @p_USE_FORM_DETAIL nvarchar(MAX), @p_USE_SOURCE nvarchar(MAX), @p_USE_PERIOD_DT VARCHAR(20), @p_OWNER_TYPE_DETAIL NVARCHAR(MAX), @p_RET_SAVE_CODE VARCHAR(100), @p_BRANCH_USE nvarchar(500), @p_RET_TAX_SCHEDULE XML = NULL, @p_RET_REPAIR_SUGGEST XML = NULL, @p_RET_REPAIR_REAL XML = NULL, @p_FLUCTUATING_DT varchar(20) = null, @p_REASON_FLUCTUATING nvarchar(max) = null AS --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID)) SET @ERRORSYS = 'RETM-00001' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' RET_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_RET_TAX_SCHEDULE DECLARE RetTaxSchedule CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetTaxSchedule',2) WITH ( TAX_SCHEDULE_ID VARCHAR(15), REQ_PAY_ID VARCHAR(15), FRM_DATE varchar(30), TO_DATE varchar(30), TOTAL_AMT decimal ) OPEN RetTaxSchedule Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_SUGGEST DECLARE RetRepairSuggest CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetRepairSuggest',2) WITH ( RET_SUG_REPAIR_ID VARCHAR(15), REQ_ID varchar(15), REPAIR_SUG_DT varchar(30) , BRANCH_ID varchar(15) , BRANCH_SUGGEST nvarchar(4000), TOTAL_AMT decimal, USER_SUGGEST varchar(15), REPAIR_REASON nvarchar(4000), REPAIR_CONTENT nvarchar(4000) ) OPEN RetRepairSuggest Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_REAL DECLARE RetRepairReal CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetRepairReal',2) WITH ( RET_REPAIR_REAL_ID varchar(15), REQ_PAY_ID varchar(15), REPAIR_DT varchar(30) , BRANCH_REPAIR nvarchar(4000), TOTAL_AMT decimal, REPAIR_CONTENT_REAL nvarchar(4000), NOTES nvarchar(4000) ) OPEN RetRepairReal BEGIN TRANSACTION UPDATE RET_MASTER SET [BUY_DT] = CONVERT(DATETIME, @P_BUY_DT, 103), [ASSET_ID] = @p_ASSET_ID, [ASSET_CODE] = @P_ASSET_CODE, [OWNER] = @P_OWNER, [LENGTH] = @p_LENGTH, [WIDTH] = @p_WIDTH, [FLOORS] = @p_FLOORS, [CURRENT_STATE] = @p_CURRENT_STATE, [RET_TYPE] = @p_RET_TYPE, [STATUS] = @p_STATUS, [LAND_SQUARE] = @p_LAND_SQUARE, [CONSTRUCT_SQUARE] = @p_CONSTRUCT_SQUARE, [TOTAL_SQUARE] = @p_TOTAL_SQUARE, [BOUNDARY] = @p_BOUNDARY, [HOUSEDES] = @p_HOUSEDES, [PURPOSE_IN_USE] = @p_PURPOSE_IN_USE, [W_USE_CON] = @P_W_USE_CON, [USE_STATUS] = @p_USE_STATUS, [CONST_STATUS] = @p_CONST_STATUS, [OWNER_TYPE] = @p_OWNER_TYPE, [USE_PERIOD] = @p_USE_PERIOD, [PERSON_HOLDER] = @p_PERSON_HOLDER, [NOTES] = @p_NOTES, [REASON] = @p_REASON, [RECORD_STATUS] = @p_RECORD_STATUS, [AUTH_STATUS] = @p_AUTH_STATUS, [MAKER_ID] = @p_MAKER_ID, [CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103), [CHECKER_ID] = @p_CHECKER_ID, [APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), [USE_FORM] = @p_USE_FORM, [USE_FORM_DETAIL] = @p_USE_FORM_DETAIL, [USE_SOURCE] = @p_USE_SOURCE, [USE_PERIOD_DT] = CONVERT(DATETIME, @p_USE_PERIOD_DT, 103), [OWNER_TYPE_DETAIL] = @p_OWNER_TYPE_DETAIL, [RET_SAVE_CODE] = @p_RET_SAVE_CODE, [BRANCH_USE] = @p_BRANCH_USE, ADDR = @p_ADDR, -- hungdv hieu chinh yeu cau anh toi 250520 [FLUCTUATING_DT] = CONVERT(DATETIME, @p_FLUCTUATING_DT, 103), [REASON_FLUCTUATING] = @p_REASON_FLUCTUATING WHERE RET_ID = @p_RET_ID; IF @@Error <> 0 GOTO ABORT --UPDATE DETAIL DECLARE @TAX_SCHEDULE_ID VARCHAR(15), @RET_SUG_REPAIR_ID VARCHAR(15), @RET_REPAIR_REAL_ID varchar(15), @d_REQ_PAY_ID VARCHAR(15), @d_FRM_DATE varchar(30), @d_TO_DATE varchar(30), @d_TOTAL_AMT decimal, @RET_ID varchar(15), @REQ_ID varchar(15), @REPAIR_SUG_DT varchar(30), @BRANCH_ID varchar(15), @REPAIR_DT varchar(20), @BRANCH_REPAIR nvarchar(4000), @REPAIR_CONTENT_REAL nvarchar(4000), @NOTES nvarchar(4000), @BRANCH_SUGGEST nvarchar(4000), @TOTAL_AMT decimal, @USER_SUGGEST varchar(15), @REPAIR_REASON nvarchar(4000), @REPAIR_CONTENT nvarchar(4000) --UPDATE ACCESSORY DETAIL DELETE FROM RET_TAX_SCHEDULE WHERE RET_ID = @p_RET_ID FETCH NEXT FROM RetTaxSchedule INTO @TAX_SCHEDULE_ID, @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT WHILE @@FETCH_STATUS = 0 BEGIN print LEN(@TAX_SCHEDULE_ID) IF(LEN(@TAX_SCHEDULE_ID) = 0) BEGIN EXEC SYS_CodeMasters_Gen 'RET_TAX_SCHEDULE', @TAX_SCHEDULE_ID out IF @TAX_SCHEDULE_ID ='' OR @TAX_SCHEDULE_ID IS NULL GOTO ABORT END PRINT @TAX_SCHEDULE_ID INSERT INTO RET_TAX_SCHEDULE([TAX_SCHEDULE_ID],[RET_ID],[REQ_PAY_ID],[FRM_DATE],[TO_DATE],[TOTAL_AMT],[AUTH_STATUS],[RECORD_STATUS],[MAKER_ID]) VALUES(@TAX_SCHEDULE_ID,@p_RET_ID ,@d_REQ_PAY_ID , CONVERT(DATETIME, @d_FRM_DATE, 103) ,CONVERT(DATETIME, @d_TO_DATE, 103) ,@d_TOTAL_AMT ,@p_AUTH_STATUS,@p_RECORD_STATUS ,@p_MAKER_ID ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM RetTaxSchedule INTO @TAX_SCHEDULE_ID, @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT END PRINT 'RetTaxSchedule' --UPDATE RetRepairSuggest DELETE FROM RET_REPAIR_SUGGEST WHERE RET_ID = @p_RET_ID FETCH NEXT FROM RetRepairSuggest INTO @RET_SUG_REPAIR_ID, @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_RET_SUG_REPAIR_ID VARCHAR(15) IF LEN(@RET_SUG_REPAIR_ID ) = 0 BEGIN EXEC SYS_CodeMasters_Gen 'RET_REPAIR_SUGGEST', @RET_SUG_REPAIR_ID out PRINT @RET_SUG_REPAIR_ID IF @RET_SUG_REPAIR_ID ='' OR @RET_SUG_REPAIR_ID IS NULL GOTO ABORT END INSERT INTO RET_REPAIR_SUGGEST([RET_SUG_REPAIR_ID],[RET_ID],[REQ_ID],[REPAIR_SUG_DT],[BRANCH_ID],[BRANCH_SUGGEST],[TOTAL_AMT],[USER_SUGGEST],[REPAIR_REASON],[REPAIR_CONTENT],[AUTH_STATUS],[RECORD_STATUS],[MAKER_ID]) VALUES(@RET_SUG_REPAIR_ID,@p_RET_ID ,@REQ_ID ,CONVERT(DATETIME, @REPAIR_SUG_DT, 103) ,@BRANCH_ID ,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT ,@p_AUTH_STATUS ,@p_RECORD_STATUS ,@p_MAKER_ID ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM RetRepairSuggest INTO @RET_SUG_REPAIR_ID, @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT END --UPDATE RetRepairReal DELETE FROM RET_REPAIR_REAL WHERE RET_ID = @p_RET_ID FETCH NEXT FROM RetRepairReal INTO @RET_REPAIR_REAL_ID, @d_REQ_PAY_ID,@REPAIR_DT,@BRANCH_REPAIR,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_RET_REPAIR_REAL_ID VARCHAR(15) IF LEN(@RET_REPAIR_REAL_ID ) = 0 BEGIN EXEC SYS_CodeMasters_Gen 'RET_REPAIR_REAL', @RET_REPAIR_REAL_ID out PRINT @RET_REPAIR_REAL_ID IF @RET_REPAIR_REAL_ID ='' OR @RET_REPAIR_REAL_ID IS NULL GOTO ABORT END INSERT INTO RET_REPAIR_REAL([RET_REPAIR_REAL_ID],[RET_ID],[REQ_PAY_ID],[REPAIR_DT],[BRANCH_REPAIR],[TOTAL_AMT],[REPAIR_CONTENT_REAL],[NOTES] , [AUTH_STATUS],[RECORD_STATUS],[MAKER_ID]) VALUES(@RET_REPAIR_REAL_ID,@p_RET_ID,@d_REQ_PAY_ID ,CONVERT(DATETIME, @REPAIR_DT, 103) ,@BRANCH_REPAIR ,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES ,@p_AUTH_STATUS ,@p_RECORD_STATUS ,@p_MAKER_ID ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM RetRepairReal INTO @RET_REPAIR_REAL_ID, @d_REQ_PAY_ID,@REPAIR_DT,@BRANCH_REPAIR,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES END CLOSE RetTaxSchedule DEALLOCATE RetTaxSchedule CLOSE RetRepairSuggest DEALLOCATE RetRepairSuggest CLOSE RetRepairReal DEALLOCATE RetRepairReal COMMIT TRANSACTION SELECT '0' as Result, @p_RET_ID RET_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE RetTaxSchedule DEALLOCATE RetTaxSchedule CLOSE RetRepairSuggest DEALLOCATE RetRepairSuggest CLOSE RetRepairReal DEALLOCATE RetRepairReal ROLLBACK TRANSACTION SELECT '-1' as Result, '' RET_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[RET_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[RET_MASTER_Ins] @p_ASSET_ID VARCHAR(15) = NULL, @P_ASSET_CODE VARCHAR(15) = NULL, @P_OWNER VARCHAR(500) = NULL, @p_LENGTH DECIMAL(18,2) = NULL, @p_ADDR nvarchar(1000) = NULL, -- hungdv hieu chinh yeu cau anh toi 250520 @p_WIDTH DECIMAL(18,2) = NULL, @p_FLOORS int = NULL, @p_CURRENT_STATE nvarchar(100) = NULL, @p_RET_TYPE varchar(15) = NULL, @p_STATUS varchar(15) = NULL, @p_LAND_SQUARE DECIMAL(18,2) = NULL, @p_CONSTRUCT_SQUARE DECIMAL(18,2) = NULL, @p_TOTAL_SQUARE DECIMAL(18,2) = NULL, @p_BOUNDARY nvarchar(100) = NULL, @p_HOUSEDES nvarchar(100) = NULL, @p_PURPOSE_IN_USE nvarchar(500) = NULL, @P_W_USE_CON NVARCHAR(100) = NULL, @p_USE_STATUS varchar(15) = NULL, @p_CONST_STATUS varchar(15) = NULL, @p_OWNER_TYPE varchar(15) = NULL, @p_USE_PERIOD int = NULL, @p_PERSON_HOLDER nvarchar(1000) = NULL, @p_REASON nvarchar(1000) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @P_BUY_DT VARCHAR(20) = NULL, @p_USE_FORM VARCHAR(1), @p_USE_FORM_DETAIL nvarchar(MAX), @p_USE_SOURCE nvarchar(MAX), @p_USE_PERIOD_DT VARCHAR(20), @p_OWNER_TYPE_DETAIL NVARCHAR(MAX), @p_RET_SAVE_CODE VARCHAR(100), @p_XML_TEMP XML = NULL, @p_BRANCH_USE nvarchar(500), @p_RET_TAX_SCHEDULE XML = NULL, @p_RET_REPAIR_SUGGEST XML = NULL, @p_RET_REPAIR_REAL XML = NULL, @p_FLUCTUATING_DT varchar(20) = null, @p_REASON_FLUCTUATING nvarchar(max) = null AS --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( EXISTS ( SELECT * FROM RET_MASTER WHERE ASSET_ID = @P_ASSET_ID )) SET @ERRORSYS = 'RETM-00002' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' RET_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_RET_TAX_SCHEDULE DECLARE RetTaxSchedule CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetTaxSchedule',2) WITH ( REQ_PAY_ID VARCHAR(15), FRM_DATE varchar(30), TO_DATE varchar(30), TOTAL_AMT decimal ) OPEN RetTaxSchedule Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_SUGGEST DECLARE RetRepairSuggest CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetRepairSuggest',2) WITH ( REQ_ID varchar(15), REPAIR_SUG_DT varchar(30) , BRANCH_ID varchar(15) , BRANCH_SUGGEST nvarchar(4000), TOTAL_AMT decimal, USER_SUGGEST varchar(15), REPAIR_REASON nvarchar(4000), REPAIR_CONTENT nvarchar(4000) ) OPEN RetRepairSuggest Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_REAL DECLARE RetRepairReal CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/RetRepairReal',2) WITH ( REQ_PAY_ID varchar(15), REPAIR_DT varchar(30) , BRANCH_REPAIR nvarchar(4000), TOTAL_AMT decimal, REPAIR_CONTENT_REAL nvarchar(4000), NOTES nvarchar(4000) ) OPEN RetRepairReal BEGIN TRANSACTION DECLARE @l_RET_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'RET_MASTER', @l_RET_ID out IF @l_RET_ID='' OR @l_RET_ID IS NULL GOTO ABORT INSERT INTO RET_MASTER ( [BUY_DT], [RET_ID], [ASSET_ID], [ASSET_CODE], [OWNER], [LENGTH], [WIDTH], [FLOORS], [CURRENT_STATE], [RET_TYPE], [STATUS], [LAND_SQUARE], [CONSTRUCT_SQUARE], [TOTAL_SQUARE], [BOUNDARY], [HOUSEDES], [PURPOSE_IN_USE], [W_USE_CON], [USE_STATUS], [CONST_STATUS], [OWNER_TYPE], [USE_PERIOD], [PERSON_HOLDER], [REASON], [NOTES], [RECORD_STATUS], [AUTH_STATUS], [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT], [USE_FORM], [USE_FORM_DETAIL], [USE_SOURCE], [USE_PERIOD_DT], [OWNER_TYPE_DETAIL], [RET_SAVE_CODE], BRANCH_USE, [FLUCTUATING_DT], [REASON_FLUCTUATING], ADDR -- hungdv hieu chinh yeu cau anh toi 250520 ) VALUES (CONVERT(DATETIME, @P_BUY_DT, 103), @l_RET_ID, @p_ASSET_ID, @P_ASSET_CODE, @P_OWNER, @p_LENGTH, @p_WIDTH, @p_FLOORS, @p_CURRENT_STATE, @p_RET_TYPE, @p_STATUS, @p_LAND_SQUARE, @p_CONSTRUCT_SQUARE, @p_TOTAL_SQUARE, @p_BOUNDARY, @p_HOUSEDES, @p_PURPOSE_IN_USE, @P_W_USE_CON, @p_USE_STATUS, @p_CONST_STATUS, @p_OWNER_TYPE, @p_USE_PERIOD, @p_PERSON_HOLDER, @p_REASON, @p_NOTES, @p_RECORD_STATUS, @p_AUTH_STATUS, @p_MAKER_ID, CONVERT(DATETIME, @p_CREATE_DT, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_USE_FORM, @p_USE_FORM_DETAIL, @p_USE_SOURCE, CONVERT(DATETIME, @p_USE_PERIOD_DT, 103), @p_OWNER_TYPE_DETAIL, @p_RET_SAVE_CODE, @p_BRANCH_USE,CONVERT(DATETIME, @p_FLUCTUATING_DT, 103),@p_REASON_FLUCTUATING ,@p_ADDR); IF @@Error <> 0 GOTO ABORT --KHAI BAO TOAN BO BIEN TRUOC KHI FETCH DATA DECLARE @d_REQ_PAY_ID VARCHAR(15), @d_FRM_DATE varchar(30), @d_TO_DATE varchar(30), @d_TOTAL_AMT decimal, @RET_ID varchar(15), @REQ_ID varchar(15), @REPAIR_SUG_DT varchar(30), @REPAIR_DT varchar(30), @BRANCH_ID varchar(15), @BRANCH_SUGGEST nvarchar(4000), @BRANCH_REPAIR nvarchar(4000), @REPAIR_CONTENT_REAL nvarchar(4000), @NOTES nvarchar(4000), @TOTAL_AMT decimal, @USER_SUGGEST varchar(15), @REPAIR_REASON nvarchar(4000), @REPAIR_CONTENT nvarchar(4000) --INSERT RetTaxSchedule FETCH NEXT FROM RetTaxSchedule INTO @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_TAX_SCHEDULE_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'RET_TAX_SCHEDULE', @l_TAX_SCHEDULE_ID out IF @l_TAX_SCHEDULE_ID='' OR @l_TAX_SCHEDULE_ID IS NULL GOTO ABORT INSERT INTO RET_TAX_SCHEDULE([TAX_SCHEDULE_ID],[RET_ID],[REQ_PAY_ID],[FRM_DATE],[TO_DATE],[TOTAL_AMT],[AUTH_STATUS],[RECORD_STATUS],[MAKER_ID]) VALUES(@l_TAX_SCHEDULE_ID,@l_RET_ID ,@d_REQ_PAY_ID , CONVERT(DATETIME, @d_FRM_DATE, 103) ,CONVERT(DATETIME, @d_TO_DATE, 103) ,@d_TOTAL_AMT ,@p_AUTH_STATUS,@p_RECORD_STATUS ,@p_MAKER_ID ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM RetTaxSchedule INTO @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT END --INSERT RepairSuggest FETCH NEXT FROM RetRepairSuggest INTO @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_RET_SUG_REPAIR_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'RET_REPAIR_SUGGEST', @l_RET_SUG_REPAIR_ID out IF @l_RET_SUG_REPAIR_ID='' OR @l_RET_SUG_REPAIR_ID IS NULL GOTO ABORT INSERT INTO RET_REPAIR_SUGGEST([RET_SUG_REPAIR_ID],[RET_ID],[REQ_ID],[REPAIR_SUG_DT],[BRANCH_ID],[BRANCH_SUGGEST],[TOTAL_AMT],[USER_SUGGEST],[REPAIR_REASON],[REPAIR_CONTENT],[AUTH_STATUS],[RECORD_STATUS],[MAKER_ID]) VALUES(@l_RET_SUG_REPAIR_ID,@l_RET_ID ,@REQ_ID ,CONVERT(DATETIME, @REPAIR_SUG_DT, 103) ,@BRANCH_ID ,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT ,@p_AUTH_STATUS ,@p_RECORD_STATUS ,@p_MAKER_ID ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM RetRepairSuggest INTO @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT END --INSERT RepairReal FETCH NEXT FROM RetRepairReal INTO @d_REQ_PAY_ID,@REPAIR_DT,@BRANCH_REPAIR,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_RET_REPAIR_REAL_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'RET_REPAIR_REAL', @l_RET_REPAIR_REAL_ID out IF @l_RET_REPAIR_REAL_ID='' OR @l_RET_REPAIR_REAL_ID IS NULL GOTO ABORT INSERT INTO RET_REPAIR_REAL([RET_REPAIR_REAL_ID],[RET_ID],[REQ_PAY_ID],[REPAIR_DT],[BRANCH_REPAIR],[TOTAL_AMT],[REPAIR_CONTENT_REAL],[NOTES] , [AUTH_STATUS],[RECORD_STATUS],[MAKER_ID]) VALUES(@l_RET_REPAIR_REAL_ID,@l_RET_ID,@d_REQ_PAY_ID ,CONVERT(DATETIME, @REPAIR_DT, 103) ,@BRANCH_REPAIR ,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES ,@p_AUTH_STATUS ,@p_RECORD_STATUS ,@p_MAKER_ID ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM RetRepairReal INTO @d_REQ_PAY_ID,@REPAIR_DT,@BRANCH_REPAIR,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES END CLOSE RetTaxSchedule DEALLOCATE RetTaxSchedule CLOSE RetRepairSuggest DEALLOCATE RetRepairSuggest CLOSE RetRepairReal DEALLOCATE RetRepairReal COMMIT TRANSACTION SELECT '0' as Result, @l_RET_ID RET_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE RetTaxSchedule DEALLOCATE RetTaxSchedule CLOSE RetRepairSuggest DEALLOCATE RetRepairSuggest CLOSE RetRepairReal DEALLOCATE RetRepairReal ROLLBACK TRANSACTION SELECT '-1' as Result, '' RET_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAY_TRANSFER_Upd]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAY_TRANSFER_Upd] @p_TRANSFER_MAKER nvarchar(50) = NULL, @p_TRANSFER_DT varchar(25) = NULL, @p_TRASFER_USER_RECIVE varchar(15) = NULL, @p_TRANSFER_TYPE varchar(15) = NULL, @p_XMP_TEMP XML = NULL AS --Validation is here /* */ DECLARE @LIST_REQ_PAY_ID VARCHAR(500) ='' Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_XMP_TEMP DECLARE TransferData CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/XmlData',2) WITH ( REQ_PAY_ID varchar(15) , TRANSFER_MAKER nvarchar(15) , TRASFER_USER_RECIVE varchar(15), TRANSFER_ACTION VARCHAR(15) ) OPEN TransferData BEGIN TRANSACTION DECLARE @REQ_PAY_ID VARCHAR(15), @TRANSFER_MAKER VARCHAR(15),@TRASFER_USER_RECIVE VARCHAR(15),@TRANSFER_ACTION VARCHAR(15) DECLARE @INDEX INT =0 FETCH NEXT FROM TransferData INTO @REQ_PAY_ID, @TRANSFER_MAKER, @TRASFER_USER_RECIVE,@TRANSFER_ACTION WHILE @@FETCH_STATUS = 0 BEGIN SET @INDEX = @INDEX+1 -- BO SUNG NEU TO PDN TẠM ỨNG NẾU ĐÃ ĐƯỢC TRƯỞNG VĂN PHÒNG ĐIỀU PHỐI IF(EXISTS(SELECT AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@REQ_PAY_ID AND AUTH_STATUS <> 'A')) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@REQ_PAY_ID AND STATUS ='P' AND ROLE_USER IN ('TKTGD','TKHDQT'))) ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đã được trưởng văn phòng phê duyệt. Vui lòng không thực hiện điều phối' ErrorDesc RETURN '-1' END ------ DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID -- KIEM TRA NEU CHUA CHON NHAN VIEN XU LY SE BAO LOI IF(@TRASFER_USER_RECIVE ='' OR @TRASFER_USER_RECIVE IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Nhân viên được giao xử lý không được phép để trống' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='A')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đã được kế toán duyệt' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='S')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đang được đề xuất từ chối và KSV đang xem xét' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='S')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị thanh toán đang được đề xuất từ chối và KSV đang xem xét' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='A')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị thanh toán đã được kế toán duyệt' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='KSV') AND @TRANSFER_ACTION <>'KS') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối KSV với vai trò xử lý phiếu' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='GDV') AND @TRANSFER_ACTION <>'XL') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối GDV với vai trò kiểm soát phiếu' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TL_USER_V2 WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='KSV') AND @TRANSFER_ACTION <>'KS') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối KSV với vai trò xử lý phiếu' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TL_USER_V2 WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='GDV') AND @TRANSFER_ACTION <>'XL') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối GDV với vai trò kiểm soát phiếu' ErrorDesc RETURN '-1' END --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đã được kế toán cập nhật thông tin' ErrorDesc -- RETURN '-1' --END --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>'')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đã được kế toán cập nhật thông tin' ErrorDesc -- RETURN '-1' --END --IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND MAKER_ID_KT IS NOT NULL)) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị thanh toán đã được kế toán cập nhật thông tin' ErrorDesc -- RETURN '-1' --END IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID AND TLNAME =@TRANSFER_MAKER)) BEGIN INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS) VALUES (@REQ_PAY_ID,NULL,@TRANSFER_MAKER,'KS',CONVERT(VARCHAR(5),'1'),'P','1') END -- KHAI BAO MAX LEVEL DECLARE @MAX_LEVEL VARCHAR(5), @NEXT_LEVEL INT, @PREV_LEVEL INT SET @MAX_LEVEL= (SELECT MAX(LEVEL_JOB) FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID=@REQ_PAY_ID) SET @NEXT_LEVEL = (SELECT CONVERT(INT,@MAX_LEVEL)) +1 SET @PREV_LEVEL = (SELECT CONVERT(INT,@MAX_LEVEL)) -1 IF(@TRANSFER_ACTION ='XL') BEGIN --UPDATE TR_REQ_ADVANCE_PAYMENT SET --AUTH_STATUS_KT ='U', --TRANSFER_DT = CONVERT(DATE,GETDATE(),103), --TRANSFER_MAKER = @TRANSFER_MAKER, --TRASFER_USER_RECIVE = @TRASFER_USER_RECIVE --WHERE REQ_PAY_ID =@REQ_PAY_ID IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID AND TYPE_JOB =@TRANSFER_ACTION)) BEGIN INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS) VALUES (@REQ_PAY_ID,NULL,@TRASFER_USER_RECIVE,'XL',CONVERT(VARCHAR(5),@NEXT_LEVEL),'C','1') INSERT INTO PL_PROCESS VALUES (@REQ_PAY_ID,'TRANSF',@TRANSFER_MAKER, GETDATE(),N'Điều phối về nhân viên ' +@TRASFER_USER_RECIVE,N'Điều phối thanh toán/ tạm ứng') END ELSE BEGIN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C',TYPE_JOB=@TRANSFER_ACTION,TLNAME = @TRASFER_USER_RECIVE WHERE REQ_ID =@REQ_PAY_ID AND TYPE_JOB =@TRANSFER_ACTION END -- UPDATE BUOC TRUOC DO VE P --UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID AND LEVEL_JOB =@MAX_LEVEL END ELSE BEGIN IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID AND TYPE_JOB =@TRANSFER_ACTION)) BEGIN INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS) VALUES (@REQ_PAY_ID,NULL,@TRASFER_USER_RECIVE,'KS',CONVERT(VARCHAR(5),@NEXT_LEVEL),'C','1') END ELSE BEGIN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID AND TLNAME =@TRASFER_USER_RECIVE END -- UPDATE BUOC TRUOC DO VE P --UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID AND LEVEL_JOB =@MAX_LEVEL END --LUCTV - 06042021 BO SUNG KHI DIEU PHOI XONG CAP NHAT NGAY DIEU PHOI VAO BANG MASTER THANH TOAN / TAM UNG IF(@p_TRANSFER_TYPE='A') BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='U',TRANSFER_DT = GETDATE() WHERE REQ_PAY_ID =@REQ_PAY_ID END ELSE BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='U',TRANSFER_DT = GETDATE() WHERE REQ_PAY_ID =@REQ_PAY_ID END SET @LIST_REQ_PAY_ID = @LIST_REQ_PAY_ID+','+@REQ_PAY_ID IF @@ERROR <> 0 GOTO ABORT FETCH NEXT FROM TransferData INTO @REQ_PAY_ID, @TRANSFER_MAKER, @TRASFER_USER_RECIVE,@TRANSFER_ACTION END CLOSE TransferData DEALLOCATE TransferData IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @LIST_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION CLOSE TransferData DEALLOCATE TransferData SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_DEPARTMENT_Ins]' GO ALTER PROCEDURE [dbo].[CM_DEPARTMENT_Ins] @p_DEP_CODE varchar(15) = NULL, @p_DEP_NAME nvarchar(200) = NULL, @p_DAO_CODE varchar(40) = NULL, @p_DAO_NAME nvarchar(500) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_GROUP_ID varchar(15) = NULL, @p_TEL varchar(20) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(12) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_FATHER_ID VARCHAR(15) = NULL, @p_KHOI_ID VARCHAR(20)=NULL AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE = @p_DEP_CODE)) SET @ERRORSYS = 'CMCD-00001' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION DECLARE @l_DEP_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CM_DEPARTMENT', @l_DEP_ID out IF @l_DEP_ID='' OR @l_DEP_ID IS NULL GOTO ABORT INSERT INTO CM_DEPARTMENT([DEP_ID],[DEP_CODE],[DEP_NAME],[DAO_CODE],[DAO_NAME],[BRANCH_ID],[GROUP_ID],[TEL],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], FATHER_ID,[KHOI_ID]) VALUES(@l_DEP_ID ,@p_DEP_CODE ,@p_DEP_NAME ,@p_DAO_CODE ,@p_DAO_NAME ,@p_BRANCH_ID ,@p_GROUP_ID ,@p_TEL ,@p_NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_FATHER_ID,@p_KHOI_ID) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @l_DEP_ID ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_ATTACH_FILE_REQ_Search]' GO ALTER PROCEDURE [dbo].[CM_ATTACH_FILE_REQ_Search] @p_ATTACH_ID varchar(15) = NULL, @p_TYPE varchar(50) = NULL, @p_REF_ID varchar(15) = NULL, @p_FILE_NAME_OLD nvarchar(200) = NULL, @p_PATH_OLD nvarchar(1000) = NULL, @p_FILE_NAME_NEW nvarchar(200) = NULL, @p_PATH_NEW nvarchar(1000) = NULL, @p_FILE_SIZE decimal = NULL, @p_FILE_TYPE varchar(50) = NULL, @p_ATTACH_DT VARCHAR(20) = NULL, @p_EMP_ID varchar(15) = NULL, @P_EMP_NAME VARCHAR(1000) = NULL, @p_TYPE_REQ VARCHAR(20) = NULL, @p_TOP INT = NULL AS BEGIN -- PAGING BEGIN TRANSACTION DECLARE @IS_VIEW BIT=0 IF(@p_TYPE_REQ='PYC') BEGIN IF(@p_TOP is NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.TLFullName,TF.IS_VIEW -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME LEFT JOIN dbo.TR_REQUEST_DOC_FILE TF ON TF.ATTACH_ID = A.ATTACH_ID WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.TLFullName,TF.IS_VIEW -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME LEFT JOIN dbo.TR_REQUEST_DOC_FILE TF ON TF.ATTACH_ID = A.ATTACH_ID WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END END ELSE IF (@p_TYPE_REQ='PLREQ') BEGIN IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.TLFullName,@IS_VIEW IS_VIEW -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.TLFullName , @IS_VIEW IS_VIEW -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END END ELSE IF (@p_TYPE_REQ='TR_CONTRACT') BEGIN IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.TLFullName,@IS_VIEW IS_VIEW -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.TLFullName -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END END ELSE IF (@p_TYPE_REQ='REQ_ATTACH_RQ') BEGIN IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.TLFullName,@IS_VIEW IS_VIEW -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.TLFullName -- SELECT END FROM CM_ATTACH_FILE A LEFT JOIN TL_USER B ON A.EMP_ID = B.TLNANME WHERE 1=1 AND (A.ATTACH_ID LIKE '%' + @p_ATTACH_ID + '%' OR @p_ATTACH_ID IS NULL OR @p_ATTACH_ID = '') AND (A.TYPE LIKE '%' + @p_TYPE + '%' OR @p_TYPE IS NULL OR @p_TYPE = '') AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' ) AND (A.FILE_NAME_OLD LIKE '%' + @p_FILE_NAME_OLD + '%' OR @p_FILE_NAME_OLD IS NULL OR @p_FILE_NAME_OLD = '') AND (A.PATH_OLD LIKE '%' + @p_PATH_OLD + '%' OR @p_PATH_OLD IS NULL OR @p_PATH_OLD = '') AND (A.FILE_NAME_NEW LIKE '%' + @p_FILE_NAME_NEW + '%' OR @p_FILE_NAME_NEW IS NULL OR @p_FILE_NAME_NEW = '') AND (A.PATH_NEW LIKE '%' + @p_PATH_NEW + '%' OR @p_PATH_NEW IS NULL OR @p_PATH_NEW = '') AND (A.FILE_SIZE = @p_FILE_SIZE OR @p_FILE_SIZE IS NULL) AND (A.FILE_TYPE LIKE '%' + @p_FILE_TYPE + '%' OR @p_FILE_TYPE IS NULL OR @p_FILE_TYPE = '') AND (DATEDIFF(DAY,A.ATTACH_DT ,CONVERT(DATETIME, @p_ATTACH_DT, 103)) = 0 OR @p_ATTACH_DT IS NULL OR @p_ATTACH_DT = '') AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '') AND (B.TLFullName LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND(A.STATUS ='1' OR A.STATUS IS NULL) -- PAGING END END COMMIT TRANSACTION -- PAGING END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_USE_MULTI_BVB_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_MASTER_Ins] @p_BRANCH_ID varchar(15) = NULL, @p_USE_EXPORT_DT VARCHAR(20) = NULL, @p_USER_EXPORT nvarchar(200) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS_KT varchar(15) = NULL, @p_CREATE_DT_KT VARCHAR(20) = NULL, @p_APPROVE_DT_KT VARCHAR(20) = NULL, @p_MAKER_ID_KT varchar(50) = NULL, @p_CHECKER_ID_KT varchar(50) = NULL, @p_REPORT_STATUS varchar(15) = NULL, @p_BRANCH_CREATE varchar(15) = NULL, @p_XmlData XML = NUL AS /* --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID=@p_USER_MASTER_ID SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' USER_MASTER_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --LUCTV - KHAI BAO SO THANG KHAU HAO MIN, MAX CUA TAI SAN DECLARE @NHOMTS VARCHAR(15) DECLARE @MIN_AMR INT, @MAX_AMR INT, @INDEX INT SET @INDEX=0 --END DECLARE @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @DEPT_ID varchar(15), @EMP_ID varchar(15), @DIVISION_ID varchar(15), @AMORT_START_DATE VARCHAR(20), @AMORT_MONTH decimal(18), @AMORT_END_DATE VARCHAR(20), @CORE_NOTE nvarchar(500), @NOTES nvarchar(1000) Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_XmlData DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/XmlData',2) WITH ( ASSET_ID varchar(15), BRANCH_ID varchar(15), DEPT_ID varchar(15), DIVISION_ID varchar(15), EMP_ID varchar(15), AMORT_START_DATE VARCHAR(20), AMORT_MONTH decimal(18), AMORT_END_DATE VARCHAR(20), CORE_NOTE nvarchar(500), NOTES nvarchar(1000) ) OPEN XmlData BEGIN TRANSACTION DECLARE @l_USER_MASTER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_USE_MULTI_MASTER', @l_USER_MASTER_ID out IF @l_USER_MASTER_ID='' OR @l_USER_MASTER_ID IS NULL GOTO ABORT INSERT INTO ASS_USE_MULTI_MASTER([USER_MASTER_ID],[BRANCH_ID],[USE_EXPORT_DT],[USER_EXPORT],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],[REPORT_STATUS],[CORE_NOTE]) VALUES(@l_USER_MASTER_ID,@p_BRANCH_ID ,CONVERT(DATETIME, @p_USE_EXPORT_DT, 103) ,@p_USER_EXPORT ,@p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,'U' ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,@p_REPORT_STATUS,'') IF @@Error <> 0 GOTO ABORT --Insert XmlData FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES WHILE @@FETCH_STATUS = 0 BEGIN SET @INDEX= @INDEX+1 -- --LUCTV - KIEM TRA SO THANG KHAU HAO PHAI NAM TRONG MIN -MAX -- SET @NHOMTS =(SELECT GROUP_ID FROM ASS_MASTER WHERE ASSET_ID= @ASSET_ID) -- SET @MIN_AMR =(SELECT AMORT_MONTH_MIN FROM ASS_GROUP WHERE GROUP_ID =@NHOMTS) -- SET @MAX_AMR =(SELECT AMORT_MONTH_MAX FROM ASS_GROUP WHERE GROUP_ID=@NHOMTS) -- IF(@AMORT_MONTH >@MAX_AMR OR @AMORT_MONTH <@MIN_AMR) -- BEGIN --CLOSE XmlData --DEALLOCATE XmlData --ROLLBACK TRANSACTION --SELECT '-1' as Result,N'Dòng' +CONVERT(VARCHAR(15),@INDEX) +N': Số tháng khấu hao phải nằm trong khoảng ('+CONVERT(VARCHAR(15),@MIN_AMR)+' - '+CONVERT(VARCHAR(15),@MAX_AMR)+N') tháng' ErrorDesc --RETURN '-1' -- END if(@AMORT_START_DATE='') set @AMORT_START_DATE=NULL if(@AMORT_END_DATE='') set @AMORT_END_DATE=NULL DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20) -- DIEU KIEN CU --IF ( EXISTS ( SELECT * FROM ASS_USE_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND CHECKER_ID_KT<>'system') -- DIEU KIEN MOI -- LUCTV: 3072019 THAY DOI DIEU KIEN KHONG CHO PHEP XUAT SU DUNG N TAI SAN CUNG LUC (LOAI TRU TAI SAN THUOC GIAO DICH BI HUY IF ( EXISTS ( SELECT 1 FROM ASS_USE_MULTI_DT A INNER JOIN ASS_USE_MULTI_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID WHERE A.[ASSET_ID] = @ASSET_ID AND B.RECORD_STATUS = '1' AND (A.CHECKER_ID IS NULL OR A.CHECKER_ID_KT IS NULL OR (A.CHECKER_ID_KT IS NOT NULL AND A.CHECKER_ID_KT<>'system')))) BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang xuất sử dụng' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END IF ( EXISTS ( SELECT * FROM ASS_USE WHERE [ASSET_ID] = @ASSET_ID)) BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang xuất sử dụng' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END -- luctv 03/08/2021 người nhận phải cùng đơn vị nhận IF (SELECT BRANCH_ID FROM CM_DEPARTMENT WHERE DEP_ID = @DEPT_ID) <> @BRANCH_ID BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SELECT '-1' Result, '' USER_MASTER_ID, N'TS: '+ @ASSET_CODE + N' Phòng bản nhận phải thuộc về đơn vị nhận.' ErrorDesc CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION RETURN '-1' END IF (SELECT DEP_ID FROM CM_EMPLOYEE WHERE EMP_ID = @EMP_ID) <> @DEPT_ID BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Người nhận phải thuộc về phòng ban nhận.' ErrorDesc CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION RETURN '-1' END DECLARE @l_USE_MULTI_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_USE_MULTI_DT', @l_USE_MULTI_ID out IF @l_USE_MULTI_ID='' OR @l_USE_MULTI_ID IS NULL GOTO ABORT INSERT INTO ASS_USE_MULTI_DT([USE_MULTI_ID],[USER_MASTER_ID],[ASSET_ID],[AMORT_START_DATE],[BRANCH_ID],[DEPT_ID],[EMP_ID],[DIVISION_ID],[NOTES],[CORE_NOTE],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AMORT_MONTH],[AUTH_STATUS_KT],[REPORT_STATUS],[AMORT_END_DATE]) VALUES(@l_USE_MULTI_ID ,@l_USER_MASTER_ID,@ASSET_ID ,CONVERT(DATETIME, @AMORT_START_DATE, 103) ,@BRANCH_ID ,@DEPT_ID ,@EMP_ID ,@DIVISION_ID ,@NOTES ,@CORE_NOTE ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_BRANCH_CREATE ,@AMORT_MONTH , 'U' ,'N' ,CONVERT(DATETIME, @AMORT_END_DATE, 103) ) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES END CLOSE XmlData DEALLOCATE XmlData -- GIANT 21/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @l_USER_MASTER_ID, -- REQ_ID - varchar(15) 'INSERT', -- PROCESS_ID - varchar(10) @p_MAKER_ID, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Thêm mới phiếu xuất sử dụng thành công' , N'Thêm mới phiếu xuất sử dụng' -- PROCESS_DESC - nvarchar(1000) ) COMMIT TRANSACTION SELECT '0' as Result, @l_USER_MASTER_ID USER_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[ASS_USE_MUILTI_MASTER_SendAppr]' GO CREATE PROCEDURE [dbo].[ASS_USE_MUILTI_MASTER_SendAppr] @p_USER_MASTER_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL AS BEGIN TRANSACTION UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS = 'U' WHERE USER_MASTER_ID = @p_USER_MASTER_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_USER_MASTER_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Nhân viên tạo phiếu và gửi phê duyệt thành công', N'Nhân viên gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, N'Hồ sơ số: '+@p_USER_MASTER_ID+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_MASTER_Confirm]' GO CREATE PROCEDURE [dbo].[BUD_MASTER_Confirm] ------STORE duyệt cấp phê duyệt trung gian----------- @p_BUILDING_ID varchar(15), @p_SIGN_USER VARCHAR(12), @p_SIGN_DT VARCHAR(20) AS BEGIN TRANSACTION -------Trường hợp người duyệt là cấp phê duyệt trung gian, update SIGN_DT--------- DECLARE @BUILDING_NAME VARCHAR(500) = (SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_BUILDING_ID) UPDATE BUD_MASTER SET SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103), AUTH_STATUS = 'U' WHERE BUILDING_ID = @p_BUILDING_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_BUILDING_ID, 'APPROVE', @p_SIGN_USER, GETDATE(), N'Cấp trung gian xác nhận thông tin trụ sở thành công' , N'Cấp trung gian xác nhận thông tin trụ sở' ) IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, '' CONTRACT_ID, N'Trụ sở: ' +@BUILDING_NAME+ N' đã được xác nhận thành công! Vui lòng đợi trưởng đơn vị phê duyệt.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[ASS_COLLECT_MULTI_MASTER_SendAppr]' GO CREATE PROCEDURE [dbo].[ASS_COLLECT_MULTI_MASTER_SendAppr] @p_COL_MULTI_MASTER_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL AS BEGIN TRANSACTION UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS = 'U' WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_COL_MULTI_MASTER_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Nhân viên tạo phiếu và gửi phê duyệt thành công', N'Nhân viên gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, N'Hồ sơ số: '+@p_COL_MULTI_MASTER_ID+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[ASS_TRANSFER_MULTI_Master_SendAppr]' GO CREATE PROCEDURE [dbo].[ASS_TRANSFER_MULTI_Master_SendAppr] @p_TRANSFER_MULTI_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL AS BEGIN TRANSACTION UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'U' WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_TRANSFER_MULTI_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Nhân viên tạo phiếu và gửi phê duyệt thành công', N'Nhân viên gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, N'Hồ sơ số: '+@p_TRANSFER_MULTI_ID+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_TRANSFER_MULTI_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[ASS_TRANSFER_MULTI_MASTER_Ins] @p_BRANCH_ID varchar(15) = NULL, @p_TRANSFER_DT VARCHAR(20) = NULL, @p_USER_TRANSFER nvarchar(200) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS_KT varchar(15) = NULL, @p_CREATE_DT_KT VARCHAR(20) = NULL, @p_APPROVE_DT_KT VARCHAR(20) = NULL, @p_MAKER_ID_KT varchar(50) = NULL, @p_CHECKER_ID_KT varchar(50) = NULL, @p_REPORT_STATUS varchar(15) = NULL, @p_BRANCH_CREATE varchar(15) = NULL, @p_XmlData XML = NUL AS /* */ DECLARE @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @DEPT_ID varchar(15), @EMP_ID varchar(15), @LOCATION varchar(500), @DESCRIPTION nvarchar(1000), @BRANCH_ID_OLD varchar(15), @DEPT_ID_OLD varchar(15), @EMP_ID_OLD varchar(15), @REMAIN_VALUE DECIMAL(18,0) Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_XmlData DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/XmlData',2) WITH ( ASSET_ID varchar(15), BRANCH_ID varchar(15), DEPT_ID varchar(15), EMP_ID varchar(15), LOCATION varchar(500), [DESCRIPTION] nvarchar(1000), REMAIN_VALUE DECIMAL(18,0) ) OPEN XmlData BEGIN TRANSACTION DECLARE @l_TRANS_MULTI_MASTER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_TRANSFER_MULTI_MASTER', @l_TRANS_MULTI_MASTER_ID out IF @l_TRANS_MULTI_MASTER_ID='' OR @l_TRANS_MULTI_MASTER_ID IS NULL GOTO ABORT print 'error' INSERT INTO ASS_TRANSFER_MULTI_MASTER([TRANS_MULTI_MASTER_ID],[BRANCH_ID],[TRANSFER_DT],[USER_TRANSFER],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[REPORT_STATUS]) VALUES(@l_TRANS_MULTI_MASTER_ID ,@p_BRANCH_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@p_USER_TRANSFER ,@p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_REPORT_STATUS ) IF @@Error <> 0 GOTO ABORT DECLARE @COUNT INT; SET @COUNT = 1; --Insert XmlData FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20) IF (@DEPT_ID IS NULL OR @DEPT_ID = '') BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SET @ERRORSYS = N'Dòng số '+ CAST(@COUNT AS NVARCHAR) + N': phòng ban không được để trống.' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END IF ( EXISTS ( SELECT * FROM ASS_TRANSFER_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A')) BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được điều chuyển' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END IF ( EXISTS ( SELECT * FROM ASS_TRANSFER WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A')) BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được điều chuyển' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END DECLARE @l_TRANSFER_MULTI_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_TRANSFER_MULTI_DT', @l_TRANSFER_MULTI_ID out IF @l_TRANSFER_MULTI_ID='' OR @l_TRANSFER_MULTI_ID IS NULL GOTO ABORT --LAY THONG TIN DON VI CU TRUOC DIEU CHUYEN SELECT @BRANCH_ID_OLD = BRANCH_ID, @DEPT_ID_OLD = DEPT_ID, @EMP_ID_OLD = EMP_ID FROM ASS_MASTER WHERE ASSET_ID = @ASSET_ID --thieuvq 07/09/2016 -- ngay 231120 Thieuvq bo sung neu la HOI SO thi khong kiem tra trung theo yeu cau Anh Tan - dieu chuyen ts tu kho HCQT cho HCQT su dung IF @BRANCH_ID_OLD <> 'DV0001' AND @BRANCH_ID = @BRANCH_ID_OLD AND ISNULL(@DEPT_ID,'') = ISNULL(@DEPT_ID_OLD,'') AND ISNULL(@EMP_ID,'') = ISNULL(@EMP_ID_OLD,'') BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+@ASSET_CODE+ N' Đơn vị nhận hoặc người nhận phải khác với đơn vị/nhân viên đang sử dụng hiện tại.' ErrorDesc CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION RETURN '-1' END -- luctv 03/08/2021 người nhận phải cùng đơn vị nhận IF (SELECT BRANCH_ID FROM CM_DEPARTMENT WHERE DEP_ID = @DEPT_ID) <> @BRANCH_ID BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Phòng bản nhận phải thuộc về đơn vị nhận.' ErrorDesc CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION RETURN '-1' END IF (SELECT DEP_ID FROM CM_EMPLOYEE WHERE EMP_ID = @EMP_ID) <> @DEPT_ID BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Người nhận phải thuộc về phòng ban nhận.' ErrorDesc CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION RETURN '-1' END print 'error1' INSERT INTO ASS_TRANSFER_MULTI_DT([TRANSFER_MULTI_ID],[TRANS_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[DEPT_ID],[EMP_ID],[USE_START_DT],[DESCRIPTION],[LOCATION],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],[REPORT_STATUS], [BRANCH_ID_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], REMAIN_VALUE) VALUES(@l_TRANSFER_MULTI_ID ,@l_TRANS_MULTI_MASTER_ID ,@ASSET_ID ,@BRANCH_ID ,@DEPT_ID ,@EMP_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@DESCRIPTION ,@LOCATION ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_BRANCH_CREATE ,@p_AUTH_STATUS_KT ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,'N', @BRANCH_ID_OLD, @DEPT_ID_OLD , @EMP_ID_OLD, @REMAIN_VALUE) IF @@Error <> 0 GOTO ABORT SET @COUNT = @COUNT + 1; FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE END CLOSE XmlData DEALLOCATE XmlData -- GIANT 21/09/2021 print 'error2' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @l_TRANS_MULTI_MASTER_ID, -- REQ_ID - varchar(15) 'INSERT', -- PROCESS_ID - varchar(10) @p_MAKER_ID, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Thêm mới phiều điều chuyển thành công' , N'Đơn vị tạo phiếu' -- PROCESS_DESC - nvarchar(1000) ) COMMIT TRANSACTION SELECT '0' as Result, @l_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[ ASS_LIQUIDATION_BVB_SendAppr]' GO CREATE PROCEDURE [dbo].[ ASS_LIQUIDATION_BVB_SendAppr] @p_LIQ_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL AS BEGIN TRANSACTION UPDATE ASS_LIQUIDATION SET AUTH_STATUS = 'U' WHERE LIQ_ID = @p_LIQ_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_LIQ_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Nhân viên tạo phiếu và gửi phê duyệt thành công', N'Nhân viên gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, N'Hồ sơ số: '+@p_LIQ_ID+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' LIQ_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[ASS_LIQUIDATION_BVB_SendAppr]' GO CREATE PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_SendAppr] @p_LIQ_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL AS BEGIN TRANSACTION UPDATE ASS_LIQUIDATION SET AUTH_STATUS = 'U' WHERE LIQ_ID = @p_LIQ_ID IF @@ERROR <> 0 GOTO ABORT INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_LIQ_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Nhân viên tạo phiếu và gửi phê duyệt thành công', N'Nhân viên gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, N'Hồ sơ số: '+@p_LIQ_ID+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' LIQ_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_Confirm]' GO CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Confirm] @p_REQ_PAY_ID varchar(15)= NULL, @p_CHECKER_ID varchar(15) = NULL AS BEGIN TRANSACTION DECLARE @ROLE_SIGN VARCHAR(50), @REQ_TYPE VARCHAR(15), @BRANCH_CREATE_TYPE VARCHAR(15) SET @BRANCH_CREATE_TYPE = (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = (SELECT TOP 1 BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID)) --SET @ROLE_SIGN =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID) SET @ROLE_SIGN =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) -- KHAI BAO THEM ROLE NHAN UY QUYEN DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50)) INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_SIGN AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='') AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') IF(@ROLE_SIGN IS NOT NULL AND @ROLE_SIGN <>'' AND @ROLE_SIGN IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')) BEGIN PRINT @ROLE_SIGN END ELSE BEGIN --SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN) SET @ROLE_SIGN =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID) IF(@ROLE_SIGN IS NULL OR @ROLE_SIGN ='') BEGIN SET @ROLE_SIGN =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@ROLE_SIGN)) END END SET @REQ_TYPE =(SELECT REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID AND AUTH_STATUS ='R')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Bạn không được phép xác nhận hoặc phê duyệt giao dịch này. Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang được trả về. Vui lòng đợi nhân viên cập nhật thông tin và gửi phê duyệt lại' ErrorDesc RETURN '-1' END -- KIEM TRA NEU PHIEU DA XAC NHAN ROI THI KHONG CHO PHÉP XAC NHAN LAN THU 2 IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID AND PROCESS ='0')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng đã được cấp phê duyệt trung gian xác nhận trước đó' ErrorDesc RETURN '-1' END IF(@REQ_TYPE ='I') BEGIN PRINT '0' DECLARE @USER_SIGN VARCHAR(15) SET @USER_SIGN =(SELECT ISNULL(TRASFER_USER_RECIVE,'') FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(@BRANCH_CREATE_TYPE ='HS' AND EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TRASFER_USER_RECIVE IS NOT NULL AND TRASFER_USER_RECIVE <> '')) BEGIN IF(@p_CHECKER_ID <> ( @USER_SIGN)) AND NOT EXISTS (SELECT * FROM PL_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID AND CHECKER_ID =@USER_SIGN) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng đang chờ cấp phê duyệt trung gian xác nhận. User domain: '+ISNULL(@USER_SIGN,'') ErrorDesc RETURN '-1' END --IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ISNULL(NOTES,'') <> '')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng đã được bạn xác nhận trước đó. Vui lòng đợi các cấp duyệt tiếp theo' ErrorDesc -- RETURN '-1' --END END IF(@ROLE_SIGN IN ('GDDV','PP','KTT','TC','TPTC') OR (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','KTT','TC','TPTC')) AND NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TRASFER_USER_RECIVE =@p_CHECKER_ID))) BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0',NOTES =N'SIGN' WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Trưởng đơn vị xác nhận phiếu',N'Xác nhận phiếu tạm ứng') END ELSE BEGIN IF((SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ='DV0001') BEGIN INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Cấp phê duyệt trung gian xác nhận phiếu' ,N'Xác nhận phiếu tạm ứng') END ELSE BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0',NOTES =N'SIGN' WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Cấp phê duyệt trung gian xác nhận phiếu',N'Xác nhận phiếu tạm ứng') END END -- NẾU NGƯỜI DUYỆT TRÙNG VỚI CẤP PHÊ DUYỆT TRUNG GIAN THÌ KHÔNG CẦN UPDATE PROCESS_ID UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='', NOTES =N'SIGN' WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TRASFER_USER_RECIVE =@p_CHECKER_ID AND @REQ_TYPE ='I' AND @BRANCH_CREATE_TYPE ='HS' END -- NGUOC LAI CAC LOAI TAM ƯNG CON LAI ELSE BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0',NOTES =N'SIGN' WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Cấp phê duyệt trung gian xác nhận phiếu',N'Xác nhận phiếu tạm ứng') END COMMIT TRANSACTION IF(@p_CHECKER_ID =(SELECT ISNULL(TRASFER_USER_RECIVE,'') FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được cấp phê duyệt trung gian xác nhận thành công! Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '0' END ELSE BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET NOTES =N'' WHERE REQ_PAY_ID =@p_REQ_PAY_ID SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được xác nhận thành công! Vui lòng đợi các cấp phê duyệt tiếp theo' ErrorDesc RETURN '0' END ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_KT_Appr]' GO CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_KT_Appr] --Luanlt 2019/17/10 - Sửa params @p_REQ_PAY_ID varchar(15)= NULL, @p_CHECKER_ID_KT varchar(15) = NULL, @p_AUTH_STATUS_KT VARCHAR(10) = NULL AS DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND TYPE_JOB='KS') SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1 IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE MAKER_ID_KT =@p_CHECKER_ID_KT AND REQ_PAY_ID =@p_REQ_PAY_ID) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không được phép duyệt đối tượng này' ErrorDesc RETURN '-1' END IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID) BEGIN SELECT '-1' Result,'' REQ_PAY_ID,N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được kiểm soát viên phê duyệt trước đó. Vui lòng tra cứu thông tin giao dịch!' ErrorDesc RETURN '-1' END ----Luanlt 2019/10/17 Validate CORE NOTE không được rỗng --IF ((SELECT CONFIRM_NOTES FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) IS NULL OR (SELECT CONFIRM_NOTES FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) = '') --BEGIN -- SELECT '-1' Result,'' REQ_PAY_ID,N'Chưa cập nhật thông tin hạch toán' ErrorDesc -- RETURN '-1' --END -- KIEM TRA NEU DANG TRA VE THI KHONG CHO DUYET IF ((SELECT AUTH_STATUS_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) ='R') BEGIN SELECT '-1' Result,'' REQ_PAY_ID,N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đang được trả về. Vui lòng cập nhật lại thông tin trước khi duyệt!' ErrorDesc RETURN '-1' END BEGIN TRANSACTION IF(@LEVEL_JOB='1') BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT='A', CHECKER_ID_KT = @p_CHECKER_ID_KT, APPROVE_DT_KT = GETDATE() WHERE REQ_PAY_ID = @p_REQ_PAY_ID -- UPDATE LICH THANH TOAN UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='A' WHERE REQ_PAY_ID =@p_REQ_PAY_ID UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND (TLNAME=@p_CHECKER_ID_KT OR TYPE_JOB ='KS') -- INSERT VAO PL_PROCESS INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'APP',@p_CHECKER_ID_KT,GETDATE(), N'Kiểm soát viên duyệt phiếu',N'Kế toán duyệt phiếu') --thieuvq ban vao core - 171219 BEGIN DECLARE @MAKER VARCHAR(15) = (SELECT MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) DECLARE @RES VARCHAR(10) --- BAN BUT TOAN VAO CORE EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @p_REQ_PAY_ID,@MAKER,@p_CHECKER_ID_KT, @RES OUT --END --- NEU LA TAM UNG DINH KI THI BO SUNG 1 KI THANHH TOAN --- KIEM TRA NEU LA THANH TOAN CAC HOP DONG DINH KI IF(((SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) ='P') AND (SELECT IS_PERIOD FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ='Y') BEGIN DECLARE @PAY_AMOUNT DECIMAL(18,0),@PAY_DT DATETIME,@l_CONTRACT_ID VARCHAR(15),@p_PAY_PHASE NVARCHAR(100),@REASON_TTDK NVARCHAR(2000) DECLARE CURS_PERIOD CURSOR FOR SELECT A.AMT_PAY,A.PAY_DT_REAL,A.CONTRACT_ID,A.PAY_PHASE,A.REASON FROM TR_REQ_PAY_PERIOD A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID ORDER BY A.CONTRACT_ID OPEN CURS_PERIOD FETCH NEXT FROM CURS_PERIOD INTO @PAY_AMOUNT ,@PAY_DT ,@l_CONTRACT_ID,@p_PAY_PHASE,@REASON_TTDK WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_PAY_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @l_PAY_ID out IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT INSERT INTO TR_CONTRACT_PAYMENT([PAY_AMOUNT],[PAY_DT], [PAY_ID],[CONTRACT_ID],[PAY_PHASE],[EXPECTED_DT],[PERCENT],[AMOUNT],[PAY_STATUS],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT]) VALUES(@PAY_AMOUNT,GETDATE(), @l_PAY_ID ,@l_CONTRACT_ID ,@p_PAY_PHASE ,GETDATE(),100,@PAY_AMOUNT,'2' ,@REASON_TTDK ,'1' ,@p_CHECKER_ID_KT ,GETDATE() ,'A' ,@p_CHECKER_ID_KT,GETDATE()) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM CURS_PERIOD INTO @PAY_AMOUNT ,@PAY_DT ,@l_CONTRACT_ID,@p_PAY_PHASE,@REASON_TTDK END CLOSE CURS_PERIOD DEALLOCATE CURS_PERIOD -- CAP NHAT DETAIL UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='A' WHERE REQ_PAY_ID =@p_REQ_PAY_ID END END ELSE BEGIN -- CAP NHAT C CHO CAP CHA UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND TLNAME=@p_CHECKER_ID_KT UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV) SELECT '2' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Xác nhận phiếu thành công' ErrorDesc RETURN '2' END IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được phê duyệt thành công!' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_Del]' GO /* [dbo].[TR_REQUEST_PAYMENT_Del] '' */ CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Del] @p_REQ_PAY_ID varchar(15) AS DECLARE @REQ_CODE VARCHAR(50) SET @REQ_CODE =(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) DECLARE @ERRORSYS NVARCHAR(15) = '' --IF ( NOT EXISTS ( SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID)) -- SET @ERRORSYS = 'REQ-00002' --IF @ERRORSYS <> '' --BEGIN -- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS -- RETURN '0' --END BEGIN TRANSACTION --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <>'E')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được gửi phê duyệt! Bạn chỉ được phép xóa bản nháp!' ErrorDesc -- RETURN '-1' --END --IF((SELECT AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A') --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: ' +(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được trưởng đơn vị phê duyệt, bạn không được phép xóa!' ErrorDesc -- RETURN '-1' --END IF((SELECT AUTH_STATUS_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được kiểm soát viên duyệt, bạn không được phép xóa!' ErrorDesc RETURN '-1' END --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <>'E')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được gửi phê duyệt, bạn không được phép xóa!' ErrorDesc -- RETURN '-1' --END ELSE BEGIN Delete FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_ADV_ID=@p_REQ_PAY_ID DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID = @p_REQ_PAY_ID DELETE FROM TR_REQ_ADVANCE_CUS WHERE REQ_PAY_ID = @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID= @p_REQ_PAY_ID IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+@REQ_CODE+ N' đã được xóa thành công khỏi hệ thống!' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_ADVANCE_PAYMENT_KT_Upd]' GO CREATE PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_KT_Upd] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(20)= 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(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25)= null, @p_CONFIRM_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_PAY_PHASE VARCHAR(15)= NULL, @p_DVDM_ID VARCHAR(15) = NULL, @p_RATE DECIMAL(18,0)= 0, @p_XMP_TEMP XML = NULL AS --Validation is here /* END */ DECLARE @ENTRY_PAIR varchar(20),@DR_CR varchar(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT decimal(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0), @BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC nvarchar(1000),@GL_CODE VARCHAR(100),@BRANCH_CODE VARCHAR(15), @DEP_CODE VARCHAR(15) DECLARE @hdoc INT; EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP; DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdoc, '/Root/XmlData', 2) WITH(ENTRY_PAIR varchar(20),DR_CR varchar(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT decimal(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0), BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC nvarchar(1000), GL_CODE VARCHAR(100)) OPEN XmlData; DECLARE @INDEX INT =0 BEGIN TRANSACTION -- KHAI BAO CAC BUOC DUYET- XAC NHAN DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT AND TYPE_JOB ='XL') SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1 ---- --IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID AND MAKER_ID_KT IS NULL)) IF(@p_XMP_TEMP IS NOT NULL) BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='U', CREATE_DT_KT = GETDATE(),MAKER_ID_KT =@p_MAKER_ID_KT,CHECKER_ID_KT=NULL,APPROVE_DT_KT = NULL, CONFIRM_NOTES=@p_CONFIRM_NOTE WHERE REQ_PAY_ID =@p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @p_REQ_PAY_ID IF @@Error <> 0 GOTO ABORT DECLARE @DR_CR_NAME NVARCHAR(50) FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE WHILE @@fetch_status=0 BEGIN SET @INDEX = @INDEX +1 IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '') BEGIN SET @GL_CODE = RIGHT(@GL_CODE,9) END-- LUCTV BO SUNG 20211117 --SET @ACCT_NAME =UPPER(dbo.fChuyenCoDauThanhKhongDau(@ACCT_NAME)) IF(@DR_CR='D') BEGIN SET @DR_CR_NAME =N'Nợ' END ELSE BEGIN SET @DR_CR_NAME =N'Có' END SET @BRANCH_CODE =(SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_ID) SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_ID) IF(@BRANCH_ID IS NULL OR @BRANCH_ID ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Đơn vị nhận không được phép để trống' ErrorDesc RETURN '-1' END IF(@TRN_DESC IS NULL OR @TRN_DESC ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Diễn giải hạch toán không được phép để trống' ErrorDesc RETURN '-1' END IF(@ACCT IS NOT NULL AND @ACCT <> '' AND LEFT(@ACCT,1) IN ('7','8') AND (@DEP_ID IS NULL OR @DEP_ID ='') AND LEN(@ACCT) < 13) BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản hạch toán đầu số 7 & 8 vui lòng chọn mã phòng ban' ErrorDesc RETURN '-1' END IF(@TRN_DESC IS NULL OR @TRN_DESC ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Diễn giải hạch toán không được phép để trống' ErrorDesc RETURN '-1' END ---- NEU HACH TOAN CASA THI 3 KI TU DAU PHAI KHOP VOI BRANCH CODE CUA DON VI CHIU CHI PHI --IF(LEN(@ACCT) >9 AND (SUBSTRING(@ACCT,1,3) <> (SELECT ISNULL(BRANCH_CODE,'') FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID))) --BEGIN -- ROLLBACK TRANSACTION -- CLOSE XmlData; -- DEALLOCATE XmlData; -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N'Nếu bạn đang hạch toán CASA trong hệ thống. Vui lòng chọn mã đơn vị khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc -- RETURN '-1' ----- --END IF(@DEP_ID IS NOT NULL AND @DEP_ID <> '' AND NOT EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_ID AND BRANCH_ID =@BRANCH_ID)) BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Vui lòng chọn mã phòng ban khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc RETURN '-1' --- END IF(@DEP_ID IS NOT NULL AND @DEP_ID <> '' AND (LEFT(@DEP_CODE,3) <> @BRANCH_CODE)) BEGIN ROLLBACK TRANSACTION --CLOSE XmlData; --DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Vui lòng chọn mã phòng ban khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc RETURN '-1' --- END DECLARE @p_ET_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @p_ET_ID OUT; IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_ENTRIES (REQ_PAY_DT_ID,REQ_PAY_ID,ENTRY_PAIR,DR_CR, DR_CR_NAME,ACCT,ACCT_NAME,AMT,CURRENCY,EXC_RATE,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT) VALUES (@p_ET_ID,@p_REQ_PAY_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(),@p_MAKER_ID_KT) -- NEU CHUA CO TAI KHOAN THI THEM VO CM_ACCOUNT IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT)) BEGIN INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID) VALUES (@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin') END ELSE BEGIN IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '') BEGIN UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE) WHERE ACC_NO=@ACCT END END --LUCTV 19-07-2021: MỖI MÃ BÚT TOÁN PHẢI THEO NGUYÊN TẮC 1 NỢ NHIỀU CÓ HOẶC 1 CÓ NHIỀU NỢ IF((SELECT COUNT (*) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ENTRY_PAIR =@ENTRY_PAIR AND DR_CR ='D') >1 AND (SELECT COUNT (*) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ENTRY_PAIR =@ENTRY_PAIR AND DR_CR ='C') >1) BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Mã bút toán số '+ @ENTRY_PAIR+ N': Sai cấu trúc Nợ Có (1 Nợ nhiều Có hoặc 1 Có nhiều Nợ, không được phép Nhiều Có - Nhiều Nợ)' ErrorDesc RETURN '-1' --- END FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE END; CLOSE XmlData; DEALLOCATE XmlData; -- UPDATE GL THEO RULE ----UPDATE CM_ACCOUNT ----SET TK_GL ='361200001', TK_GL_NAME =(SELECT ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO ='361200001') ----WHERE LEN (ACC_NO) >9 AND ISNULL(TK_GL,'')='' ----AND SUBSTRING(ACC_NO,4,4) ='7048' ----UPDATE CM_ACCOUNT ----SET TK_GL ='519200002', TK_GL_NAME =(SELECT ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO ='519200002') ----WHERE LEN (ACC_NO) >9 AND ISNULL(TK_GL,'')='' ----AND SUBSTRING(ACC_NO,4,4) ='7044' AND SUBSTRING(ACC_NO,12,2) ='19' ----UPDATE CM_ACCOUNT ----SET TK_GL ='421100001', TK_GL_NAME =(SELECT ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO ='421100001') ----WHERE LEN (ACC_NO) >9 AND ISNULL(TK_GL,'')='' ----AND SUBSTRING(ACC_NO,4,4) ='7041' --UPDATE TR_REQ_PAY_ENTRIES SET ACCT_NAME = UPPER(dbo.fChuyenCoDauThanhKhongDau(ACCT_NAME)) WHERE REQ_PAY_ID =@p_REQ_PAY_ID IF @@error<>0 GOTO ABORT; END COMMIT TRANSACTION --- BAT DAU CAP NHAT XAC DINH CAC BUOC DUYET SAU KHI KE TOAN CAP NHAT THONG TIN IF(@p_XMP_TEMP IS NULL) BEGIN -- CHAN NEU CHI CO 1 BUT NO 1 BUT CO THI KHONG DUOC DI TIEP IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN DECLARE @SUM_CR DECIMAL(18,2), @SUM_DR DECIMAL(18,2) SET @SUM_CR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C'),0) SET @SUM_DR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='D'),0) IF(@SUM_CR<>@SUM_DR) BEGIN --ROLLBACK TRANSACTION --CLOSE XmlData; --DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng hạch toán nợ phải bằng tổng hạch toán có' ErrorDesc RETURN '-1' END END ---BAT DAU VALIDATE DECLARE @REQ_PAY_ID varchar(15), @ET_ID varchar(15), @AMT_ET DECIMAL(18,0), @ACC_ET varchar(25), @DRCR_ET varchar(25), @SUM_ET DECIMAL(18,0) =0 DECLARE cursorProduct CURSOR LOCAL FOR SELECT REQ_PAY_ID,ENTRY_PAIR,AMT,ACCT,DR_CR FROM TR_REQ_PAY_ENTRIES A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID Open cursorProduct FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID , @ET_ID, @AMT_ET, @ACC_ET , @DRCR_ET WHILE @@FETCH_STATUS = 0 BEGIN IF(@DRCR_ET='C' AND EXISTS(SELECT * FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ACC_NO =@ACC_ET)) BEGIN SET @SUM_ET =(SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C' AND ACCT =@ACC_ET) IF(ISNULL(@SUM_ET,0) <> (SELECT SUM(TOTAL_AMT) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND ACC_NO =@ACC_ET)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N' Số tiền hạch toán có của tài khoản: '+@ACC_ET + N' phải bằng với số tiền trên phương thức thanh toán của tài khoản đó là: '+FORMAT((SELECT ISNULL(SUM(TOTAL_AMT),0) FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACC_ET AND REQ_PAY_ID =@p_REQ_PAY_ID),'#,###') ErrorDesc RETURN '-1' END END -- KIEM TRA SO TIEN NO CO IF (ISNULL((SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C' AND ENTRY_PAIR =@ET_ID),0) <> ISNULL((SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='D' AND ENTRY_PAIR =@ET_ID),0) ) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Mã bút toán: ' + @ET_ID + N' Số tiền bút toán Nợ phải bằng với số tiền bút toán Có' ErrorDesc RETURN '-1' END -- KIEM TRA TAI KHOAN CO TON TAI TRONG HACH TOAN HAY KHONG --IF(LEN(@ACC_ET) =12 OR -- (NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACC_ET) -- OR (NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =(SELECT TOP 1 TK_GL FROM CM_ACCOUNT WHERE ACC_NO =@ACC_ET))))) --BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Mã bút toán: ' + @ET_ID + N'Vui lòng kiểm tra đầu tài khoản hạch toán: ' +@ACC_ET +N'. Đây là tài khoản chưa hợp lệ' ErrorDesc -- RETURN '-1' --END FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID , @ET_ID, @AMT_ET, @ACC_ET , @DRCR_ET END -- KET THUC VIEC VALIDATE UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV) -- CAP NHAT TINH TRANG VE DANG XU LY UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT='P',CREATE_DT_KT =GETDATE() WHERE REQ_PAY_ID=@p_REQ_PAY_ID INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID_KT,GETDATE(), N'Giao dịch viên gửi phê duyệt phiếu',N'Giao dịch viên cập nhật thông tin') SELECT '4' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N'đã được gửi phê duyệt thành công! Vui lòng đợi kiểm soát viên phê duyệt phiếu' ErrorDesc RETURN '4' END SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_Search]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Search] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(20)= 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_REQ_PAY_TYPE varchar(15) = NULL, @p_REQ_TYPE_CURRENCY nvarchar(50) = NULL, @p_REQ_AMT decimal(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25)= null, @p_CONFIRM_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_PAY_PHASE VARCHAR(15) = NULL, @p_TOP INT = 10, @p_LEVEL varchar(10) = NULL, @p_FRMDATE VARCHAR(20)= NULL, @p_TODATE VARCHAR(20) = NULL, @p_BRANCH_LOGIN VARCHAR(15) = NULL, @p_IS_UPDATE_KT VARCHAR(15) = NULL, @P_IS_TRANSFER VARCHAR(15) = NULL, @p_TERM_ID VARCHAR(15) = NULL, @P_USER_LOGIN VARCHAR(15)= NULL, @p_FUNCTION VARCHAR(15) = NULL, @p_TYPE_SEARCH VARCHAR(15) = NULL AS BEGIN -- PAGING SET @p_TOP = NULL declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) declare @tmp_Login table(BRANCH_ID varchar(15)) insert into @tmp_Login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15) DECLARE @BRANCH_TYPE VARCHAR(15) SET @BRANCH_TYPE =(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN) SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN) DECLARE @TMP_DEP TABLE(DEP_ID VARCHAR(15)) SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG) SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG) INSERT INTO @TMP_DEP SELECT B.DEP_ID FROM PL_COSTCENTER_DT B WHERE COST_ID =@COST_LG DECLARE @BRANCH_TYPE_LG VARCHAR(15) SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN) -- KHAI BAO NHUNG PHONG BAN MA 1 USER KIEM NHIEM DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50)) INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID) INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='') AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15)) INSERT INTO @DEP_AUTH VALUES (@DEP_ID_LG) INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) -- KHAI BAO PHẦN ỦY QUYỀN ĐƠN VỊ DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR(15)) INSERT INTO @BRANCH_AUTH VALUES (@p_BRANCH_LOGIN) INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) --- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116 DECLARE @DATE DATE IF ((@p_FRMDATE IS NULL OR @p_FRMDATE ='') AND ISNULL(@p_REQ_PAY_ID,'')='' AND @p_AUTH_STATUS ='') -- MỤC ĐÍCH NẾU NHƯ XEM CHI TIẾT 1 PĐN THANH TOÁN DẠNG POPUP THÌ BỎ QUA ĐIỀU KIỆN NÀY, TỪ NGÀY VẪN LÀ NULL BEGIN --DECLARE @MONTH INT, @YEAR INT --SET @MONTH = MONTH(GETDATE()) -1 --SET @YEAR = YEAR(GETDATE()) --BEGIN -- SET @p_FRMDATE ='01/'+CONVERT(VARCHAR,@MONTH,5) +'/'+ CONVERT(VARCHAR,@YEAR,5) --END SET @DATE = CONVERT(DATE,GETDATE(),103) SET @DATE = DATEADD(MONTH,-2,@DATE) END ELSE BEGIN SET @DATE = CONVERT(DATE,@p_FRMDATE,103) END -- HẾT KHAI BÁO SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')) BEGIN PRINT @ROLE_ID END ELSE BEGIN SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN) IF(@ROLE_ID IS NULL OR @ROLE_ID ='') BEGIN SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)) END END INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)--2021823 --SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN) IF(@p_TOP IS NULL OR @p_TOP='' OR @p_TOP=0) BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, TL1.TLFullName APPROVE_FULLNAME, CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT, TL3.TLFullName APPROVE_FULLNAME_KT, --CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X -- INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID -- WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <> @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN -- BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT -- WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'') -- ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ, BR.BRANCH_NAME AS 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, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS, TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO, PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB, --CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER, CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' AND ISNULL(A.AUTH_STATUS_KT,'') ='P' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER, @p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT, ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'') AS BRANCH_NAME_CONTRACT -- SELECT END FROM TR_REQ_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='PAY_TYPE' AND AL.CDTYPE = 'REQ' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE ='REQ' 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 PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL' LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID WHERE 1=1 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID or @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL) AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL) AND(A.MAKER_ID =@p_MAKER_ID OR @p_MAKER_ID='' OR @p_MAKER_ID IS NULL) AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL) AND((@p_LEVEL='ALL' AND (A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH))) -- LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) OR (@BRANCH_TYPE_LG <> 'HS' AND EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) AND AUTH_STATUS_KT ='A')))) AND((@p_LEVEL='ALL' AND (A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH))) -- - LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) OR (@BRANCH_TYPE_LG <> 'HS' AND EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) AND AUTH_STATUS_KT ='A')))) AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='') AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL) --Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL) AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL) AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' or @p_REQ_REASON='' OR @p_REQ_REASON IS NULL) --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'') AND ((@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID) OR @p_BRANCH_ID = @p_BRANCH_LOGIN OR @p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL) AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))) AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) --AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat --OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='') -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null AND ((@p_FUNCTION ='KT' AND (EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID AND (X.TLNAME= @p_USER_LOGIN OR X.TLNAME =@p_TRASFER_USER_RECIVE))) OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT='A' ) OR @p_FUNCTION ='' OR @p_FUNCTION IS NULL OR @p_FUNCTION ='TF' ) AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE) -- AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='') AND(( @p_IS_TRANSFER='Y' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) OR A.AUTH_STATUS_KT ='A')) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((@p_IS_TRANSFER='N' AND (NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )) AND A.AUTH_STATUS_KT <>'A'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='') AND ( /*0*/ A.MAKER_ID =@p_USER_LOGIN OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R') ) OR (/*1*/A.AUTH_STATUS <>'E' AND (/*2*/ (/*3*/@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND (/*4*/A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR (/*5*/ EXISTS ( SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','GDK','KTT','TPTC','TP','PP','TBP','TC') ) AND ( ( A.BRANCH_ID =@p_BRANCH_LOGIN OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH) ) AND ( A.DEP_ID = @DEP_ID_LG OR ( A.DEP_ID IN ('DEP000000000051','DEP000000000733') AND @p_USER_LOGIN ='cuongpv2' ) OR A.DEP_ID IN ( SELECT * FROM @DEP_AUTH ) ) ) AND ( A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='' OR ( A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' ) ) )/*5*/ )/*4*/ )/*3*/ OR(/*trong 2*/ @p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND ( @ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN AND ( ( A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' ) OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL ) OR ( ( A.BRANCH_CREATE <> @p_BRANCH_LOGIN AND A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' ) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN ) AND A.BRANCH_ID =@p_BRANCH_ID ) ) OR ( @p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'PGD' AND ( @ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN ) ) OR ( @p_TYPE_SEARCH ='HC' AND( @ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022' ) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login) ) OR( @p_TYPE_SEARCH='KT' AND @p_BRANCH_LOGIN ='DV0001' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login) ) OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='' )/*2*/ )/*1*/ OR ( ( @ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022' ) AND @p_BRANCH_LOGIN ='DV0001' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login) ) -- NEU DUOC UY QUYEN DUYỆT CHO 1 ĐƠN VỊ KHÁC HỘI SỞ THÌ CHỈ SETUP ĐƠN VỊ, KHÔNG CẦN SETUP PHÒNG BAN OR( @p_TYPE_SEARCH ='HC' AND A.BRANCH_CREATE <> 'DV0001' AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH) ) -- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO OR ( @p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG <> 'HS' AND EXISTS ( SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN ( SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN ) AND AUTH_STATUS_KT ='A' ) ) )/*0*/ ORDER BY A.CREATE_DT DESC -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, TL1.TLFullName APPROVE_FULLNAME, CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT, TL3.TLFullName APPROVE_FULLNAME_KT, --CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X -- INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID -- WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <> @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN -- BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT -- WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'') -- ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ, BR.BRANCH_NAME AS 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, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS, TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO, PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB, --CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER, CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' AND ISNULL(A.AUTH_STATUS_KT,'') ='P' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER, @p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT, ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'') AS BRANCH_NAME_CONTRACT -- SELECT END FROM TR_REQ_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='PAY_TYPE' AND AL.CDTYPE = 'REQ' LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ' 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 PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P' LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C' LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL' LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID WHERE 1=1 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID or @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL) AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL) AND(A.MAKER_ID =@p_MAKER_ID OR @p_MAKER_ID='' OR @p_MAKER_ID IS NULL) AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL) AND((@p_LEVEL='ALL' AND (A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH))) -- LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) OR (@BRANCH_TYPE_LG <> 'HS' AND EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) AND AUTH_STATUS_KT ='A')))) AND((@p_LEVEL='ALL' AND (A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH))) -- - LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) OR (@BRANCH_TYPE_LG <> 'HS' AND EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) AND AUTH_STATUS_KT ='A')))) AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='') AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL) --Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL) AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL) AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' or @p_REQ_REASON='' OR @p_REQ_REASON IS NULL) --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'') AND ((@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID) OR @p_BRANCH_ID = @p_BRANCH_LOGIN OR @p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL) AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))) AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) --AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat --OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='') -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null AND ((@p_FUNCTION ='KT' AND (EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE X.REQ_ID = A.REQ_PAY_ID AND (X.TLNAME= @p_USER_LOGIN OR X.TLNAME =@p_TRASFER_USER_RECIVE))) OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT='A' ) OR @p_FUNCTION ='' OR @p_FUNCTION IS NULL OR @p_FUNCTION ='TF' ) AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE) -- AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='') AND(( @p_IS_TRANSFER='Y' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) OR A.AUTH_STATUS_KT ='A')) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((@p_IS_TRANSFER='N' AND (NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )) AND A.AUTH_STATUS_KT <>'A'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='') AND ( /*0*/ A.MAKER_ID =@p_USER_LOGIN OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R') ) OR (/*1*/A.AUTH_STATUS <>'E' AND (/*2*/ (/*3*/@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND (/*4*/A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR (/*5*/ EXISTS ( SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','GDK','KTT','TPTC','TP','PP','TBP','TC') ) AND ( ( A.BRANCH_ID =@p_BRANCH_LOGIN OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH) ) AND ( A.DEP_ID = @DEP_ID_LG OR ( A.DEP_ID IN ('DEP000000000051','DEP000000000733') AND @p_USER_LOGIN ='cuongpv2' ) OR A.DEP_ID IN ( SELECT * FROM @DEP_AUTH ) ) ) AND ( A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='' OR ( A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' ) ) )/*5*/ )/*4*/ )/*3*/ OR(/*trong 2*/ @p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND ( @ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN AND ( ( A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' ) OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL ) OR ( ( A.BRANCH_CREATE <> @p_BRANCH_LOGIN AND A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' ) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN ) AND A.BRANCH_ID =@p_BRANCH_ID ) ) OR ( @p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'PGD' AND ( @ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN ) ) OR ( @p_TYPE_SEARCH ='HC' AND( @ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022' ) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login) ) OR( @p_TYPE_SEARCH='KT' AND @p_BRANCH_LOGIN ='DV0001' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login) ) OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='' )/*2*/ )/*1*/ OR ( ( @ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022' ) AND @p_BRANCH_LOGIN ='DV0001' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login) ) -- NEU DUOC UY QUYEN DUYỆT CHO 1 ĐƠN VỊ KHÁC HỘI SỞ THÌ CHỈ SETUP ĐƠN VỊ, KHÔNG CẦN SETUP PHÒNG BAN OR( @p_TYPE_SEARCH ='HC' AND A.BRANCH_CREATE <> 'DV0001' AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH) ) -- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO OR ( @p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG <> 'HS' AND EXISTS ( SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN ( SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN ) AND AUTH_STATUS_KT ='A' ) ) )/*0*/ ORDER BY A.CREATE_DT DESC -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[BUD_CONTRACT_MASTER_App]' GO --INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('CONTRACT_VALUES','CTVA','') --INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('CTVA','1','1') ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_App] @p_CONTRACT_ID varchar(15), @p_VERSION_NO varchar(15), @P_AUTH_STATUS VARCHAR(1), @P_CHECKER_ID VARCHAR(12), @P_APPROVE_DT VARCHAR(25), @P_TYPE_CONTRACT VARCHAR(1), @P_XML_TEMP XML AS BEGIN TRANSACTION DECLARE @_BUILDING_UTIL_LOG VARCHAR(15) DECLARE @p_VALUE_ID VARCHAR(15) DECLARE @p_MONTH DECIMAL(18,0) DECLARE @VALUE_ERROR DECIMAL(18,0) DECLARE @p_RENT_PRICE DECIMAL(18,0) DECLARE @TOATAL_INTERNAL DECIMAL(18,0) DECLARE @STT INT SET @STT =0 DECLARE @_BUILDING_ID VARCHAR(15) DECLARE @_BUILDING_AREA_ID VARCHAR(15) DECLARE @_RENT_AREA DECIMAL(18,0) DECLARE @_RENT_PRICE_OLD DECIMAL(18,0) DECLARE @tmp table(CONTRACT_DTID VARCHAR(15), BUILDING_AREA_ID varchar(15),RENT_AREA DECIMAL(18,2),RENT_PRICE DECIMAL(18,2)) insert into @tmp SELECT CONTRACT_DTID, BUILDING_AREA_ID,RENT_AREA,RENT_PRICE FROM BUD_CONTRACT_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO =@p_VERSION_NO-1 -----*** INSERT VERSION -1 VAO TRONG BANG LOG IF @@Error <> 0 GOTO ABORT Declare @hdoc1 INT DECLARE @d_CONTRACT_DTID VARCHAR(15), @d_BUILD_ID VARCHAR(15), @d_VERSION_NO INT, @d_BUILDING_AREA_ID VARCHAR(15), @d_RENT_AREA DECIMAL, @d_RENT_AREA_APP DECIMAL, @d_AREA_REMAIN DECIMAL, @d_RENT_PRICE DECIMAL, @d_DIEN_TICH_TANG DECIMAL, @d_DIEN_TICH_SD_NOI_BO DECIMAL, @d_DIEN_TICH_DA_CHO_THUE DECIMAL, @d_DIEN_TICH_CON_LAI DECIMAL, @d_DIEN_TICH_CAN_SD DECIMAL, @d_REASON NVARCHAR(MAX), @d_PRICE DECIMAL, @d_TOTAL_AMT DECIMAL, @d_DIEN_TICH_CON_LAI_FINAL DECIMAL, @d_BRANCH_ID NVARCHAR(15), @d_DEP_ID NVARCHAR(15) Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP DECLARE XmlDataDoc CURSOR FOR SELECT * FROM OPENXML(@hdoc1,'/Root/XmlData1',2) WITH ( ----BAODNQ-21/12/2021: Thêm các cột vào cursor XML----- CONTRACT_DTID VARCHAR(15), BUILD_ID VARCHAR(15), VERSION_NO INT, BUILDING_AREA_ID VARCHAR(15), RENT_AREA DECIMAL, RENT_AREA_APP DECIMAL, AREA_REMAIN DECIMAL, RENT_PRICE DECIMAL, DIEN_TICH_TANG DECIMAL, DIEN_TICH_SD_NOI_BO DECIMAL, DIEN_TICH_DA_CHO_THUE DECIMAL, DIEN_TICH_CON_LAI DECIMAL, DIEN_TICH_CAN_SD DECIMAL, REASON NVARCHAR(MAX), PRICE DECIMAL, TOTAL_AMT DECIMAL, DIEN_TICH_CON_LAI_FINAL DECIMAL, BRANCH_ID NVARCHAR(15), DEP_ID NVARCHAR(15) ) OPEN XmlDataDoc FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID WHILE @@FETCH_STATUS = 0 BEGIN SET @STT= @STT+1 SET @VALUE_ERROR = (SELECT FLOOR_AREA - (UTILZED_AREA + INTERNAL_AREA) FROM BUD_AREA_DT WHERE BUILDING_AREA_ID = @d_BUILDING_AREA_ID ) --+(SELECT SUM(RENT_AREA) FROM BUD_CONTRACT_DT --WHERE CONTRACT_ID =@p_CONTRACT_ID AND CONTRACT_ID IN(SELECT CONTRACT_ID FROM --BUD_CONTRACT_MASTER WHERE AUTH_STATUS='A')) --DIEN TICH CHO THUE PHAI LON HON DIEN TICH CON LAI+ DIEN TICH VERSION CŨ TRONG TRUONG --HOP TAO PHU LUC HOP DONG ----BAODNQ-21/12/2021: Đổi @d_RENT_AREA thành @d_DIEN_TICH_CAN_SD------- IF ( @d_DIEN_TICH_CAN_SD > (@VALUE_ERROR + @d_RENT_AREA_APP)) BEGIN DECLARE @ERRORSYS NVARCHAR(200) ='' SET @ERRORSYS = N'Dòng '+ convert(nvarchar(2),@stt) +N': Diện tích cho thuê phải nhỏ hơn hoặc bằng '+ convert(nvarchar(20),@VALUE_ERROR) END IF @ERRORSYS <> '' BEGIN CLOSE XmlDataDoc DEALLOCATE XmlDataDoc ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, @ERRORSYS ErrorDesc RETURN '-1' END ----**** INSERT VERSION CURRENT -1------------------------------------------------------------------------- --IF(@p_VERSION_NO>1) --BEGIN -- SET @_BUILDING_AREA_ID= (SELECT TOP(1) BUILDING_AREA_ID FROM @tmp) -- SET @_RENT_AREA= (SELECT TOP(1) RENT_AREA FROM @tmp) -- SET @p_RENT_PRICE= (SELECT TOP(1) RENT_PRICE FROM @tmp) -- EXEC SYS_CodeMasters_Gen 'BUD_UTIL_LOG', @_BUILDING_UTIL_LOG out -- IF @_BUILDING_UTIL_LOG='' OR @_BUILDING_UTIL_LOG IS NULL GOTO ABORT -- INSERT INTO BUD_UTIL_LOG([UTIL_ID],[BUILDING_AREA_ID],[UTIL_TYPE],[UTIL_RELEASE],[CONTRACT_ID],[VERSION_NO],[UTIL_DT],[AREA],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT]) -- VALUES(@_BUILDING_UTIL_LOG ,@_BUILDING_AREA_ID ,@P_TYPE_CONTRACT ,'R' ,@p_CONTRACT_ID ,@p_VERSION_NO-1 ,CONVERT(DATETIME, GETDATE(), 103) ,@_RENT_AREA ,'1' ,'A' ,@P_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103) ) -- ------**** INSERT INTO CONTRACT_VALUES --------------------------------------------------------------- -- EXEC SYS_CodeMasters_Gen 'CONTRACT_VALUES', @p_VALUE_ID out -- IF @p_VALUE_ID='' OR @p_VALUE_ID IS NULL GOTO ABORT -- INSERT INTO BUD_CONTRACT_VALUES VALUES (@p_VALUE_ID,@p_CONTRACT_ID,@p_VERSION_NO-1,@_BUILDING_AREA_ID,@P_TYPE_CONTRACT,'R',@p_RENT_PRICE*@_RENT_AREA,NULL,@d_REASON, -- '1','A',@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103),@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103)) -- DELETE @tmp WHERE CONTRACT_DTID = (SELECT TOP(1) CONTRACT_DTID FROM @tmp) --END -----***INSERT VERSION CURRENT------------------------------------------------------------------ DECLARE @l_UTIL_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'BUD_UTIL_LOG', @l_UTIL_ID out IF @l_UTIL_ID='' OR @l_UTIL_ID IS NULL GOTO ABORT ----BAODNQ-21/12/2021: Đổi biến insert vào cột [AREA] thành @d_DIEN_TICH_CAN_SD + thêm cột vào bảng BUD_UTIL_LOG------- -----BAODNQ 17/1/2022: Thêm cột vào bảng BUD_UTIL_LOG DECLARE @p_IS_FIRST_TIME VARCHAR(1) IF(NOT EXISTS (SELECT * FROM BUD_UTIL_LOG WHERE CONTRACT_ID = @p_CONTRACT_ID AND BUILDING_AREA_ID = @d_BUILDING_AREA_ID AND CUSTOMER_ID = @d_BRANCH_ID AND IS_FIRST_TIME = 'Y')) BEGIN SET @p_IS_FIRST_TIME = 'Y' END ELSE BEGIN SET @p_IS_FIRST_TIME = 'N' END INSERT INTO BUD_UTIL_LOG([UTIL_ID],[BUILDING_AREA_ID],[UTIL_TYPE],[UTIL_RELEASE],[CONTRACT_ID], [VERSION_NO],[UTIL_DT],[AREA],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID], [APPROVE_DT], [TOTAL_AMT_INIT], [VAT_INIT], [IS_FIRST_TIME], [CUSTOMER_ID]) VALUES(@l_UTIL_ID ,@d_BUILDING_AREA_ID ,@P_TYPE_CONTRACT ,'U' ,@p_CONTRACT_ID ,@p_VERSION_NO , CONVERT(DATETIME, GETDATE(), 103) ,@d_DIEN_TICH_CAN_SD ,'1' ,'A' ,@P_CHECKER_ID , CONVERT(DATETIME, GETDATE(), 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103), @d_TOTAL_AMT, 0, @p_IS_FIRST_TIME, @d_BRANCH_ID) ---*** UPDATE CONTRACT_VALUES------------------------------------------------------- EXEC SYS_CodeMasters_Gen 'CONTRACT_VALUES', @p_VALUE_ID out IF @p_VALUE_ID='' OR @p_VALUE_ID IS NULL GOTO ABORT ----BAODNQ-21/12/2021: Đổi biến insert vào cột [RENT_AMT] thành @d_TOTAL_AMT------- INSERT INTO BUD_CONTRACT_VALUES VALUES (@p_VALUE_ID,@p_CONTRACT_ID,@p_VERSION_NO,@d_BUILDING_AREA_ID,@P_TYPE_CONTRACT,'U',@d_TOTAL_AMT,NULL,@d_REASON, '1','A',@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103),@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103)) -----***UPDATE DIEN TICH NOI BO SU DUNG NEU TYPE = I:INTERNAL ------------------------------------------------------------------ IF(@P_TYPE_CONTRACT='I') BEGIN UPDATE BUD_AREA_DT --SET INTERNAL_AREA =( -- (SELECT ISNULL(SUM(AREA),0) FROM BUD_UTIL_LOG WHERE BUILDING_AREA_ID=@d_BUILDING_AREA_ID AND UTIL_RELEASE='U' AND UTIL_TYPE=@P_TYPE_CONTRACT) -- - -- (SELECT ISNULL(SUM(AREA),0) FROM BUD_UTIL_LOG WHERE BUILDING_AREA_ID=@d_BUILDING_AREA_ID AND UTIL_RELEASE='R' AND UTIL_TYPE =@P_TYPE_CONTRACT) -- ) SET INTERNAL_AREA = INTERNAL_AREA + @d_DIEN_TICH_CAN_SD WHERE BUILDING_AREA_ID =@d_BUILDING_AREA_ID ---****** UPDATE BUD_CONTRACT_DT ******************************************--------- ----BAODNQ-21/12/2021: Đổi biến insert vào cột [RENT_AREA_APP] thành @@d_DIEN_TICH_CAN_SD------- UPDATE BUD_CONTRACT_DT SET RENT_AREA_APP =RENT_AREA_APP + @d_DIEN_TICH_CAN_SD, DIEN_TICH_CON_LAI_FINAL = DIEN_TICH_CON_LAI - @d_DIEN_TICH_CAN_SD WHERE CONTRACT_DTID = @d_CONTRACT_DTID END ------------------------------------------------------------------------------------------ IF @@Error <> 0 GOTO ABORT -----BAODNQ 17/1/2022: Insert vào bảng BUD_CONTRACT_LOG khi trưởng dv duyệt thành công --DECLARE @p_IS_FIRST_TIME VARCHAR(1) --IF(NOT EXISTS(SELECT*FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = @d_CONTRACT_DTID AND @p_IS_FIRST_TIME = 'Y')) --BEGIN -- SET @p_IS_FIRST_TIME = 'Y' --END --ELSE --BEGIN -- SET @p_IS_FIRST_TIME = 'N' --END --INSERT INTO BUD_CONTRACT_LOG -- VALUES (@d_CONTRACT_DTID, @d_BRANCH_ID, @d_TOTAL_AMT, 0,@p_IS_FIRST_TIME, CONVERT(DATETIME,@P_APPROVE_DT,103)) --IF @@ERROR <> 0 GOTO ABORT ------------------------------------- FETCH NEXT FROM XmlDataDoc INTO @d_CONTRACT_DTID, @d_BUILD_ID, @d_VERSION_NO, @d_BUILDING_AREA_ID, @d_RENT_AREA, @d_RENT_AREA_APP, @d_AREA_REMAIN, @d_RENT_PRICE, @d_DIEN_TICH_TANG, @d_DIEN_TICH_SD_NOI_BO, @d_DIEN_TICH_DA_CHO_THUE, @d_DIEN_TICH_CON_LAI, @d_DIEN_TICH_CAN_SD, @d_REASON, @d_PRICE, @d_TOTAL_AMT, @d_DIEN_TICH_CON_LAI_FINAL, @d_BRANCH_ID, @d_DEP_ID END CLOSE XmlDataDoc DEALLOCATE XmlDataDoc --**** UPDATE BUD_CONTRACT_MASTER************* ----BAODNQ-21/12/2021: Đổi cột thực hiện SUM thành TOTAL_AMT------- SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_DT WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) SET @p_MONTH= (SELECT MONTHS FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO) UPDATE BUD_CONTRACT_MASTER --SET RENT_PRICE=@p_RENT_PRICE *@p_MONTH SET RENT_PRICE=@p_RENT_PRICE WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO ---*** UPDATE BUD_MASTER------------------------------- SET @_BUILDING_ID =(SELECT BUILDING_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO =@p_VERSION_NO) --UPDATE BUD_MASTER --SET UTILZED_AREA = (SELECT ISNULL(SUM(UTILZED_AREA),0) FROM BUD_AREA_DT WHERE BUILD_ID =@_BUILDING_ID) --WHERE BUILDING_ID=@_BUILDING_ID ---***UPDATE DIEN TICH CHO THUE TOAN BO TOA NHA SET @TOATAL_INTERNAL = (SELECT ISNULL(SUM(INTERNAL_AREA),0) FROM BUD_AREA_DT WHERE BUILD_ID =@_BUILDING_ID) UPDATE BUD_MASTER SET RENT_TOTAL_AREA = TOTAL_AREA -@TOATAL_INTERNAL WHERE BUILDING_ID = @_BUILDING_ID UPDATE BUD_CONTRACT_MASTER SET AUTH_STATUS = 'A', CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103) WHERE VERSION_NO=@p_VERSION_NO AND CONTRACT_ID =@p_CONTRACT_ID ---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_CONTRACT_ID, 'APPROVE', @P_CHECKER_ID, GETDATE(), N'Trưởng đơn vị duyệt thông tin khai báo DTSD nội bộ thành công' , N'Trưởng đơn vị duyệt thông tin khai báo DTSD nội bộ' ) COMMIT TRANSACTION SELECT '0' as Result, @p_VERSION_NO VERSION_NO, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_MASTER_ById]' GO CREATE PROCEDURE [dbo].[BUD_MASTER_ById] @BUILDING_ID varchar(15) AS SELECT A.*, B.TLFullName AS SIGN_USER_FULLNAME FROM BUD_MASTER A ----------BAODNQ 26/1/2022: Kết thêm bảng TL_USER--------- LEFT JOIN TL_USER B ON A.SIGN_USER = B.TLNANME WHERE BUILDING_ID= @BUILDING_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_Log]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Log] @p_REQ_PAY_ID varchar(15)= NULL, @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(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @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 = 10, @p_LEVEL varchar(10) = NULL, @p_FRMDATE VARCHAR(20)= NULL, @p_TODATE VARCHAR(20) = NULL, @p_BRANCH_LOGIN VARCHAR(15) = NULL, @p_IS_UPDATE_KT VARCHAR(15) = NULL, @p_IS_TRANSFER VARCHAR(15)= NULL, @p_PAY_PHASE VARCHAR(15)= NULL AS BEGIN -- PAGING 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 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 -- 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 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' --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 ) 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') ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE BEGIN -- PAGING BEGIN 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 -- 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 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' --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 ) 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') ORDER BY A.CREATE_DT DESC -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CON_MASTER_Search]' GO ALTER PROCEDURE [dbo].[CON_MASTER_Search] @p_CONSTRUCT_ID varchar(15)=NULL, @p_CONSTRUCT_CODE varchar(15)=NULL, @p_CONSTRUCT_NAME nvarchar(100)=NULL, @p_PLAN_ID varchar(15)=NULL, @p_DIVI_ID varchar(15)=NULL, @p_CONST_NAME nvarchar(50) = NULL, @p_CONSTRUCT_ADDR nvarchar(200)=NULL, @p_LENGTH decimal=NULL, @p_WIDTH decimal=NULL, @p_CONSTRUCT_AREA decimal=NULL, @p_FLOORS int=NULL, @p_FLOORS_AREA decimal=NULL, @p_YEAR_EXE varchar(4)=NULL, @p_CONSTRUCT_TYPE varchar(15)=NULL, @p_TOTAL_AMT decimal=NULL, @p_COST_ESTIMATE decimal=NULL, @p_COST_EXE decimal=NULL, @p_COST_INCURRED decimal=NULL, @p_CONST_PURPOSE varchar(15)=NULL, @p_DESCRIPTION nvarchar(2000)=NULL, @p_START_DT VARCHAR(20)=NULL, @p_END_DT VARCHAR(20)=NULL, @p_DATE_EXE VARCHAR(20)=NULL, @p_COMPLETION_DT VARCHAR(20)=NULL, @p_IS_FINISH varchar(1)=NULL, @p_CONSTRUCT_PROGRESS decimal=NULL, @p_RECORD_STATUS varchar(1)=NULL, @p_MAKER_ID varchar(15)=NULL, @p_CREATE_DT VARCHAR(20)=NULL, @p_AUTH_STATUS varchar(1)=NULL, @p_CHECKER_ID varchar(15)=NULL, @p_APPROVE_DT VARCHAR(20)=NULL, @p_CONST_ID varchar(15)=NULL, @p_REQUEST_ID varchar(15)=NULL, @p_REQ_CODE varchar(15)=NULL, @p_BRANCH_ID varchar(15)=NULL, @p_STREET nvarchar(200)=NULL, @p_LOCATION varchar(15)=NULL, @p_SCALE nvarchar(1000)=NULL, @p_ENGINEER nvarchar(500)=NULL, @p_BRANCH_NAME_ETX nvarchar(500)=NULL, @p_LEVEL varchar(10), @p_MaxResultCount int = NULL, @p_SkipCount int = NULL, @p_Sorting varchar(100) = NULL, @p_TotalCount int = NULL AS BEGIN -- PAGING declare @tmp table(BRANCH_ID varchar(15)) IF(@p_LEVEL = 'ALL') BEGIN insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) END -- PAGING BEGIN SELECT A.*, dbo.FN_GET_CHINHANH(A.BRANCH_ID,'KV') KHU_VUC, dbo.FN_GET_CHINHANH(A.BRANCH_ID,'CN') CHI_NHANH, case when A.BRANCH_NAME_ETX IS NULL OR A.BRANCH_NAME_ETX = '' THEN BBB.BRANCH_NAME ELSE A.BRANCH_NAME_ETX END AS CONST_NAME, --C.REQ_DT, CON_HQ_T.CONTENT AS CONS_HQ_TYPE_NAME, REQ_AMT.TOTAL_AMT AS CP_DUOC_DUYET, BID.CONTRACT_VALUE, BID.TOTAL_AMT_KT, BID.PAID_VALUE, BID.OUTSTANDINGVALUE, CASE WHEN TOTAL_EMPTY_AMT_KT = 0 THEN N'Quyết toán' ELSE '' END AS CONST_NOTE, BID.SUM_ARISE_VALUE, AU.AUTH_STATUS_NAME, BBB.BRANCH_CODE, AA.CONTENT CONST_TYPE_NAME, '' AS PAYMENT_STATUS -- SELECT END FROM CON_MASTER AS A -- GIANT 06/12/2021 LEFT JOIN CM_ALLCODE AA ON AA.CDVAL = A.CONST_TYPE AND CDNAME = 'REQ_CON_TYPE' AND CDTYPE = 'CON' LEFT JOIN CM_BRANCH BBB ON BBB.BRANCH_ID = A.BRANCH_ID INNER JOIN CON_REQUEST_DOC_PARENT_VIEW C ON A.REQUEST_ID = C.CON_REQUEST_DOC_ID LEFT JOIN CM_ALLCODE CON_HQ_T ON CON_HQ_T.CDNAME='REQ_HQ_TYPE' AND CON_HQ_T.CDType='CON' AND A.HQ_TYPE = CON_HQ_T.CDVAL LEFT JOIN ( SELECT REQUEST_ID, 0 AS CONTRACT_VALUE, 0 AS TOTAL_AMT_KT, 0 AS PAID_VALUE, 0 AS OUTSTANDINGVALUE, 0 AS SUM_ARISE_VALUE, 0 AS TOTAL_EMPTY_AMT_KT FROM BID_MASTER GROUP BY(REQUEST_ID) ) BID ON A.REQUEST_ID = BID.REQUEST_ID LEFT JOIN ( SELECT REQ_ID, SUM(TOTAL_AMT) AS TOTAL_AMT FROM CON_REQUEST_DOC GROUP BY REQ_ID ) REQ_AMT ON REQ_AMT.REQ_ID = A.REQUEST_ID LEFT JOIN CM_AUTH_STATUS AU ON A.AUTH_STATUS=AU.AUTH_STATUS WHERE (@p_CONSTRUCT_ID IS NULL OR @p_CONSTRUCT_ID='' OR A.CONSTRUCT_ID = @p_CONSTRUCT_ID) AND (@p_CONSTRUCT_CODE IS NULL OR @p_CONSTRUCT_CODE='' OR CONSTRUCT_CODE = @p_CONSTRUCT_CODE) AND (@p_CONSTRUCT_NAME IS NULL OR @p_CONSTRUCT_NAME='' OR CONSTRUCT_NAME = @p_CONSTRUCT_NAME) AND (@p_PLAN_ID IS NULL OR @p_PLAN_ID='' OR PLAN_ID = @p_PLAN_ID) AND (@p_DIVI_ID IS NULL OR @p_DIVI_ID='' OR DIVI_ID = @p_DIVI_ID) AND (@p_CONSTRUCT_ADDR IS NULL OR @p_CONSTRUCT_ADDR='' OR CONSTRUCT_ADDR = @p_CONSTRUCT_ADDR) AND (@p_LENGTH IS NULL OR LENGTH = @p_LENGTH) AND (@p_WIDTH IS NULL OR WIDTH = @p_WIDTH) AND (@p_CONSTRUCT_AREA IS NULL OR CONSTRUCT_AREA = @p_CONSTRUCT_AREA) AND (@p_FLOORS IS NULL OR FLOORS = @p_FLOORS) AND (@p_FLOORS_AREA IS NULL OR FLOORS_AREA = @p_FLOORS_AREA) AND (@p_YEAR_EXE IS NULL OR @p_YEAR_EXE='' OR YEAR_EXE = @p_YEAR_EXE) AND (@p_CONSTRUCT_TYPE IS NULL OR @p_CONSTRUCT_TYPE='' OR HQ_TYPE = @p_CONSTRUCT_TYPE) AND (@p_TOTAL_AMT IS NULL OR A.TOTAL_AMT = @p_TOTAL_AMT) AND (@p_COST_ESTIMATE IS NULL OR COST_ESTIMATE = @p_COST_ESTIMATE) AND (@p_COST_EXE IS NULL OR COST_EXE = @p_COST_EXE) AND (@p_COST_INCURRED IS NULL OR COST_INCURRED = @p_COST_INCURRED) AND (@p_CONST_PURPOSE IS NULL OR @p_CONST_PURPOSE='' OR CONST_PURPOSE = @p_CONST_PURPOSE) AND (@p_DESCRIPTION IS NULL OR @p_DESCRIPTION='' OR DESCRIPTION = @p_DESCRIPTION) AND (@p_START_DT IS NULL OR DATEDIFF(DAYOFYEAR,START_DT,CONVERT(datetime, @p_START_DT,103)) = 0) AND (@p_END_DT IS NULL OR DATEDIFF(DAYOFYEAR,END_DT,CONVERT(datetime, @p_END_DT,103)) = 0) AND (@p_DATE_EXE IS NULL OR DATEDIFF(DAYOFYEAR,DATE_EXE,CONVERT(datetime, @p_DATE_EXE,103)) = 0) AND (@p_COMPLETION_DT IS NULL OR DATEDIFF(DAYOFYEAR,COMPLETION_DT,CONVERT(datetime, @p_COMPLETION_DT,103)) = 0) AND (@p_IS_FINISH IS NULL OR @p_IS_FINISH='' OR IS_FINISH = @p_IS_FINISH) AND (@p_CONSTRUCT_PROGRESS IS NULL OR CONSTRUCT_PROGRESS = @p_CONSTRUCT_PROGRESS) AND (@p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS='' OR A.RECORD_STATUS = @p_RECORD_STATUS) AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID='' OR A.MAKER_ID = @p_MAKER_ID) AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS='' OR A.AUTH_STATUS = @p_AUTH_STATUS) AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID='' OR A.CHECKER_ID = @p_CHECKER_ID) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND (@p_CONST_ID IS NULL OR @p_CONST_ID='' OR CONST_ID = @p_CONST_ID) AND (@p_REQUEST_ID IS NULL OR @p_REQUEST_ID='' OR A.REQUEST_ID = @p_REQUEST_ID) AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID='' OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID) OR (@p_LEVEL = 'ALL' AND EXISTS(SELECT * FROM @tmp T WHERE T.BRANCH_ID = A.BRANCH_ID))) AND (@p_STREET IS NULL OR @p_STREET='' OR STREET = @p_STREET) AND (@p_LOCATION IS NULL OR @p_LOCATION='' OR LOCATION = @p_LOCATION) AND (@p_SCALE IS NULL OR @p_SCALE='' OR SCALE = @p_SCALE) AND (@p_ENGINEER IS NULL OR @p_ENGINEER='' OR ENGINEER = @p_ENGINEER) AND (@p_BRANCH_NAME_ETX IS NULL OR @p_BRANCH_NAME_ETX='' OR BRANCH_NAME_ETX = @p_BRANCH_NAME_ETX) AND (@p_CONST_NAME IS NULL OR @p_CONST_NAME = '' OR ISNULL(A.BRANCH_NAME_ETX, BBB.BRANCH_NAME) LIKE '%' + @p_CONST_NAME + '%') AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR (EXISTS(SELECT * FROM CON_REQUEST_DOC CC WHERE CC.REQUEST_PARENT = A.REQUEST_ID AND CC.REQ_CODE = @p_REQ_CODE))) AND A.RECORD_STATUS = '1' ORDER BY A.CREATE_DT DESC -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_PAY_METHOD_ById]' GO CREATE PROC [dbo].[TR_REQ_PAY_METHOD_ById] @p_REQ_PAY_ID varchar(15) AS BEGIN SELECT A.*,T.TLFullName AS EMP_NAME FROM TR_REQ_PAY_METHOD A LEFT JOIN TL_USER T ON A.EMP_ID = T.TLNANME WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[TR_REQ_PAY_DETAIL_PERIOD_BYID]' GO CREATE PROC [dbo].[TR_REQ_PAY_DETAIL_PERIOD_BYID] @p_REQ_PAY_ID VARCHAR(15)= NULL AS BEGIN SELECT B.SUP_ID, A.* ,ISNULL(B.CONTRACT_CODE,B.CONTRACT_ID) AS CONTRACT_CODE , B.CONTRACT_NAME, C.REQ_PAY_CODE, S.ACC_NUM,S.ACC_NAME,S.BANK_NAME,S.ACC_NUM_OUT,S.ACC_NAME_OUT,S.BANK_NAME_OUT, S.TAX_NO AS SUP_TAX_NO, B.CONTRACT_ID, S.SUP_NAME AS ACC_NAME FROM TR_REQ_ADVANCE_DT A INNER JOIN TR_CONTRACT B ON A.REF_ID = B.CONTRACT_ID LEFT JOIN CM_SUPPLIER S ON B.SUP_ID = S.SUP_ID LEFT JOIN TR_REQ_PAYMENT C ON A.REQ_PAY_ID = C.REQ_PAY_ID WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_Upd]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Upd] @p_REQ_PAY_ID varchar(15)= NULL, @p_REQ_PAY_CODE varchar(50) = NULL, @p_REQ_DT VARCHAR(20)= 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_REQ_PAY_TYPE varchar(15) = NULL, @p_REQ_TYPE_CURRENCY nvarchar(50) = NULL, @p_REQ_AMT decimal(18, 0) = NULL, @p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL, @p_CHECKER_ID_KT varchar(1) = NULL, @p_APPROVE_DT_KT varchar(25)= null, @p_CONFIRM_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_PAY_PHASE VARCHAR(15) = NULL, @p_RATE DECIMAL(18,2) = 0, @p_IS_PERIOD VARCHAR(5) = NULL, @p_AMT_PAY decimal(18, 0) = NULL, @p_XMP_TEMP XML = NULL, @p_XMP_TEMP_2 XML = NULL, @p_XMP_TEMP_METHOD XML = NULL, @p_XMP_TEMP_BUDGET XML = NULL, @p_XMP_TEMP_SERVICE XML = NULL, @p_XMP_TEMP_ATTACH XML = NULL, @p_XMP_TEMP_INVOICE XML = NULL, @p_TYPE_FUNCTION VARCHAR(15) = NULL, @p_XMP_TEMP_PO XML = NULL, @p_XMP_TEMP_SCHEDULE XML = NULL, @p_XMP_TEMP_PERIOD XML = NULL, @p_XMP_ADVANCE_DT XML = NULL AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_COLLECT WHERE )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --Luanlt-2019/10/15 Disable Validation --DECLARE @ERRORSYS NVARCHAR(15) = '' --IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE REF_ID = @p_REF_ID ) --BEGIN -- SET @ERRORSYS = 'ASSC-00005' -- SELECT ErrorCode Result, '' REQ_PAY_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS -- RETURN '-1' --END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS ='U')) BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt thành công trước đó. Bạn không được quyền chỉnh sửa' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND PROCESS IS NOT NULL AND PROCESS <>'')) BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được kí xác nhận từ các cấp. Bạn không được quyền chỉnh sửa' ErrorDesc RETURN '-1' END IF @p_REQ_PAY_CODE IS NULL OR @p_REQ_PAY_CODE ='' BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu không được phép để trống' ErrorDesc RETURN '-1' END --IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @p_REQ_PAY_CODE AND REQ_PAY_ID <> @p_REQ_PAY_ID) --BEGIN -- SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu đã tồn tại trong hệ thống' ErrorDesc -- RETURN '-1' --END DECLARE @ROLE_KI_NHAY VARCHAR(50) SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <>'' AND @ROLE_KI_NHAY IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC')) BEGIN PRINT @ROLE_KI_NHAY END ELSE BEGIN SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NULL OR @ROLE_KI_NHAY ='') BEGIN SET @ROLE_KI_NHAY =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_TRASFER_USER_RECIVE)) END END --SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE) IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC','TPGD')) BEGIN SELECT '-1' Result, '' REQ_PAY_ID, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc RETURN '-1' END BEGIN TRANSACTION DECLARE @VAT decimal(18, 0) =NULL, @TRANS_NO nvarchar(50)=NULL, @TRANS_DT VARCHAR(20)=NULL,@INVOICE_SIGN nvarchar(50) = NULL,@INVOICE_NO_SIGN nvarchar(50) = NULL,@INVOICE_NO nvarchar(50) = NULL,@INVOICE_DT VARCHAR(20) = NULL, @SELLER nvarchar(500) = NULL,@TAX_NO nvarchar(15) = NULL,@GOODS_NAME nvarchar(500) = NULL, @PRICE decimal(18, 0) = NULL,@TAX decimal(18, 0) = NULL,@NOTES NVARCHAR(MAX) = NULL,@VAT_RATE DECIMAL(18,0),@ACC_NO VARCHAR(25),@ACC_NAME NVARCHAR(250),@ISSUED_BY NVARCHAR(250), @ISSUED_DT VARCHAR(20),@CURRENCY VARCHAR(15)= NULL,@RATE DECIMAL(18,2), @TYPE_VAT VARCHAR(15),@TYPE_FUNC VARCHAR(15), @PDN_TT_LIST_INVOICE VARCHAR(1000) DECLARE @PAY_ADV_ID VARCHAR(15),@TYPE_TRANSFER VARCHAR(15),@REQ_PAY_ADV_CODE VARCHAR(15),@REASON NVARCHAR(1000),@REF_TYPE VARCHAR(15), @TRN_DATE VARCHAR(15) DECLARE @AMT_ADVANCED DECIMAL(18,0),@AMT_DO DECIMAL(18,0), @AMT_REMAIN DECIMAL(18,0),@AMT_PAY DECIMAL(18,0),@AMT_USE DECIMAL(18,2),@AMT_REVERT DECIMAL(18,2), @AMT_ADD DECIMAL(18,2) DECLARE @TOTAL_SCHEDULE_AMT DECIMAL(18,0) =0 DECLARE @INDEX_AD INT =0, @INDEX_SV INT =0,@INDEX INT =0, @INDEX_IV INT =0, @INDEX_NS INT =0, @INDEX_INVOICE INT = 0, @INDEX_METHOD INT = 0 DECLARE @hdoc INT, @hDoc2 INT, @hDocMeThod INT, @hdocBudget INT, @hdocService INT, @hdocAttach INT, @hdocInvoice INT, @hdocPO INT, @hdocSchedule INT, @hdocPeriod INT, @hdocRecurring INT EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP; EXEC sp_xml_preparedocument @hDoc2 OUTPUT, @p_XMP_TEMP_2; EXEC sp_xml_preparedocument @hDocMeThod OUTPUT, @p_XMP_TEMP_METHOD; EXEC sp_xml_preparedocument @hdocBudget OUTPUT, @p_XMP_TEMP_BUDGET; EXEC sp_xml_preparedocument @hdocService OUTPUT, @p_XMP_TEMP_SERVICE; EXEC sp_xml_preparedocument @hdocAttach OUTPUT, @p_XMP_TEMP_ATTACH; EXEC sp_xml_preparedocument @hdocInvoice OUTPUT, @p_XMP_TEMP_INVOICE; EXEC sp_xml_preparedocument @hdocPO OUTPUT, @p_XMP_TEMP_PO; EXEC sp_xml_preparedocument @hdocSchedule OUTPUT, @p_XMP_TEMP_SCHEDULE; EXEC sp_xml_preparedocument @hdocPeriod OUTPUT, @p_XMP_TEMP_PERIOD; EXEC sp_xml_preparedocument @hdocRecurring OUTPUT, @p_XMP_ADVANCE_DT; DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdocInvoice, '/Root/XmlData', 2) WITH(TRANS_NO nvarchar(50),TRANS_DT VARCHAR(20),INVOICE_SIGN nvarchar(50),INVOICE_NO_SIGN nvarchar(50), INVOICE_NO nvarchar(50),INVOICE_DT VARCHAR(20) ,SELLER nvarchar(500),TAX_NO nvarchar(15),GOODS_NAME nvarchar(500) , PRICE decimal(18,2),TAX decimal(18, 2),VAT decimal(18,2),NOTE NVARCHAR(MAX),VAT_RATE decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),TYPE_VAT VARCHAR(15),TYPE_FUNC VARCHAR(15)) OPEN XmlData; --CURSOR 2 DECLARE XmlDataPay CURSOR FOR SELECT * FROM OPENXML(@hDoc2, '/Root/XmlDataPay', 2) WITH(PAY_ADV_ID nvarchar(50),AMT_ADVANCED decimal(18, 0),AMT_DO decimal(18,2), AMT_REMAIN decimal(18,2),AMT_PAY decimal(18,2),AMT_USE decimal(18,2),AMT_REVERT DECIMAL(18,0),AMT_ADD DECIMAL(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2), TRN_DATE VARCHAR(15)) OPEN XmlDataPay; ------------------------ --Luanlt--- --MethodCursor DECLARE @RECEIVE_ID varchar(15),@RECEIVE_NAME nvarchar(100),@REQ_PAY_REASON nvarchar(MAX),@TOTAL_AMT_METHOD decimal(18,2), @REQ_PAY_TYPE varchar(1),@REQ_PAY_DESC nvarchar(MAX),@REQ_PAY_ENTRIES nvarchar(MAX),@CHECK_IN VARCHAR(15) DECLARE XmlDataMethod CURSOR FOR SELECT * FROM OPENXML(@hdocMethod, 'Root/XmlDataMethod',2) WITH(RECEIVE_ID varchar(15),RECEIVE_NAME nvarchar(100),REQ_PAY_REASON nvarchar(MAX),TOTAL_AMT decimal(18,2), REQ_PAY_TYPE varchar(1),REQ_PAY_DESC nvarchar(MAX),REQ_PAY_ENTRIES nvarchar(MAX),ACC_NO VARCHAR(250), ACC_NAME NVARCHAR(250),ISSUED_BY NVARCHAR(250), ISSUED_DT VARCHAR(20),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),CHECK_IN VARCHAR(15),TYPE_TRANSFER VARCHAR(15)) OPEN XmlDataMethod ---------- --CatCursor DECLARE @REQ_ADV_ID varchar(15),@CAT_NAME nvarchar(100),@TOTAL_AMT_CAT decimal(18,2), @DEPT_ID VARCHAR(15) DECLARE XmlDataCat CURSOR FOR SELECT * FROM OPENXML(@hdoc, 'Root/XmlDataCat',2) WITH(REQ_ADV_ID VARCHAR(15),CAT_NAME nvarchar(100),TOTAL_AMT decimal(18,2), DEPT_ID VARCHAR(15),CURRENCY VARCHAR(15), RATE DECIMAL(18,2)) OPEN XmlDataCat --------------- --ServiceCursor DECLARE @REQ_PAY_SERVICE_NAME nvarchar(100),@RECEIVE_ID_SERVICE varchar(15),@RECEIVE_NAME_SERVICE nvarchar(100),@REQ_PAY_REASON_SERVICE nvarchar(MAX), @TOTAL_AMT_SERVICE decimal(18,2), @REQ_PAY_TYPE_SERVICE varchar(1),@REQ_PAY_DESC_SERVICE nvarchar(MAX),@REQ_PAY_ENTRIES_SERVICE nvarchar(MAX),@DEPT_ID_SRV VARCHAR(15) DECLARE XmlDataService CURSOR FOR SELECT * FROM OPENXML(@hdocService, 'Root/XmlDataService',2) WITH(REQ_PAY_SERVICE_NAME nvarchar(100),RECEIVE_ID_SERVICE varchar(15),RECEIVE_NAME_SERVICE nvarchar(100),REQ_PAY_REASON_SERVICE nvarchar(MAX), TOTAL_AMT_SERVICE decimal(18,2),REQ_PAY_TYPE_SERVICE varchar(1),REQ_PAY_DESC_SERVICE nvarchar(MAX),REQ_PAY_ENTRIES_SERVICE nvarchar(MAX), DEPT_ID VARCHAR(15),CURRENCY VARCHAR(15), RATE DECIMAL(18,2)) OPEN XmlDataService --------------- --ScheduleCursor DECLARE @PO_ID varchar(15),@TERM_PAY varchar(15),@AMT_PAY_SCHEDULE decimal(18,2),@REQ_ADV_ID_SCHE VARCHAR(15),@AMT_ADVANCE_SCHEDULE decimal(18,2), @AMT_REMAIN_SCHEDULE decimal(18,2),@REQ_AD_DT varchar(20),@PROCESS varchar(15),@PAY_ID VARCHAR(15),@AMT_PAY_DO DECIMAL(18,2),@AMT_PAY_REAL DECIMAL(18,2) DECLARE XmlDataSchedule CURSOR FOR SELECT * FROM OPENXML(@hdocSchedule, 'Root/XmlDataSchedule',2) WITH(PO_ID varchar(15),TERM_PAY varchar(15),AMT_PAY_SCHEDULE decimal(18,2),REQ_ADV_ID varchar(15),AMT_ADVANCE_SCHEDULE decimal(18,2), AMT_REMAIN_SCHEDULE decimal(18,2),REQ_AD_DT varchar(20),PROCESS varchar(15), PAY_ID VARCHAR(15),REF_ID VARCHAR(15),REQ_PAY_DESC NVARCHAR(250), REQ_PAY_ENTRIES NVARCHAR(250),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),AMT_PAY_DO DECIMAL(18,2),AMT_PAY_REAL DECIMAL(18,2)) OPEN XmlDataSchedule --END luanlt--- -- DS HANG MUC NGAN SACH DECLARE @TRADE_ID varchar(15),@GD_ID varchar(15),@AMT_APP decimal(18,2),@AMT_EXE decimal(18,2), @AMT_REMAIN_GD decimal(18,2),@TYPE_COST VARCHAR(15), @FR_LEVEL INT ,@TO_LEVEL INT, @MONTH_RATE VARCHAR(4), @YEAR_RATE VARCHAR(4) DECLARE XmlDataGood CURSOR FOR SELECT * FROM OPENXML(@hdocBudget, 'Root/XmlDataGood',2) WITH(TRADE_ID varchar(15),GD_ID varchar(15),AMT_APP decimal(18,2),AMT_DO decimal(18,2), AMT_EXE decimal(18,2),AMT_REMAIN decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2), REASON NVARCHAR(1000),TYPE_COST VARCHAR(15), FR_LEVEL INT ,TO_LEVEL INT, MONTH_RATE VARCHAR(4), YEAR_RATE VARCHAR(4)) OPEN XmlDataGood ---- END CURSOR HANG MUC NGAN SACH -- DINH KEM CHUNG TU DINH KEM DECLARE @ATTACH_ID varchar(15),@CON_ID varchar(100),@CONT_CODE VARCHAR(50), @CON_NOTES VARCHAR(1000), @CON_DESC NVARCHAR(1000),@CON_TYPE VARCHAR(15),@AMT_ATT DECIMAL(18,2),@REF_DT VARCHAR(20), @LICENSE_DT VARCHAR(15) DECLARE XmlAttach CURSOR FOR SELECT * FROM OPENXML(@hdocAttach, 'Root/XmlAttach',2) WITH(ATTACH_ID varchar(15),CON_ID varchar(100),CONT_CODE VARCHAR(50), CON_NOTES NVARCHAR(1000), CON_DESC NVARCHAR(1000),CON_TYPE VARCHAR(15),AMT_ATT DECIMAL(18,2),REF_DT VARCHAR(20), LICENSE_DT VARCHAR(15)) OPEN XmlAttach -- END UPDATE TR_REQ_PAYMENT SET REF_ID = @p_REF_ID, DEP_ID= @p_DEP_ID,REQ_REASON = @p_REQ_REASON, REQ_PAY_TYPE = @p_REQ_PAY_TYPE,REQ_AMT = @p_REQ_AMT, NOTES= @p_NOTES, REQ_TYPE= @p_REQ_TYPE,REQ_DESCRIPTION = @p_REQ_DESCRIPTION,RECEIVER_PO = @p_RECEIVER_PO,TRANSFER_MAKER =@p_TRANSFER_MAKER, REQ_TEMP_AMT=@p_REQ_TEMP_AMT,REQ_ENTRIES = @P_REQ_ENTRIES,BRANCH_ID = @p_BRANCH_ID,REQ_PAY_CODE = @p_REQ_PAY_CODE, AUTH_STATUS='E', IS_PERIOD =@p_IS_PERIOD, TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE, RATE = @p_RATE, AMT_PAY = @p_AMT_PAY WHERE REQ_PAY_ID =@p_REQ_PAY_ID -- BUA DOAN NAY DE XU LY LOI KHONG TIM DUOC NHA CUNG CAP UPDATE CM_SUPPLIER SET ACC_NUM ='' WHERE ACC_NUM IS NULL UPDATE CM_SUPPLIER SET ACC_NUM_OUT ='' WHERE ACC_NUM_OUT IS NULL -- UPDATE TR_REQ_PAY_SERVICE SET REQ_PAY_ID= 'XX'+ RIGHT(REQ_PAY_ID,13) WHERE REQ_PAY_ID NOT IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE REQ_TYPE IN ('I','D')) -- UPDATE TR_REQ_PAY_SCHEDULE SET REQ_PAY_ID= 'XX'+ RIGHT(REQ_PAY_ID,13) WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE REQ_TYPE ='P' AND IS_PERIOD IS NOT NULL AND IS_PERIOD <>'' AND IS_PERIOD='Y') AND TRN_TYPE ='PAY' AND REQ_PAY_ID =@p_REQ_PAY_ID IF @@Error <> 0 GOTO ABORT --Insert XmlData DELETE FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID = @p_REQ_PAY_ID FETCH NEXT FROM XmlData INTO @TRANS_NO , @TRANS_DT ,@INVOICE_SIGN ,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER , @TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@TYPE_VAT,@TYPE_FUNC WHILE @@fetch_status=0 BEGIN SET @INDEX_IV = @INDEX_IV +1 -- KHI NAO BAM GUI PHE DUYET HE THONG MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(LEN(@INVOICE_NO) < 1) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Hóa đơn đính kèm, dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' không được để trống' ErrorDesc RETURN '-1' END IF(LEN(@INVOICE_NO) > 8) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Hóa đơn đính kèm, dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' phải bé hơn 9' ErrorDesc RETURN '-1' END IF(EXISTS( SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS NOT IN ('E','D')) )) BEGIN SET @PDN_TT_LIST_INVOICE = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS NOT IN ('E','D') AND MAKER_ID NOT IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='DISABLE' OR AUTH_STATUS ='U'))) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END IF(@GOODS_NAME IS NULL OR @GOODS_NAME ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Tên mặt hàng trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- TÊN NGƯỜI BÀN IF(@SELLER IS NULL OR @SELLER ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Người bán trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- MÃ SỐ THUẾ -- TÊN NGƯỜI BÀN IF(@TAX_NO IS NULL OR @TAX_NO ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Mã số thuế trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- NGÀY HÓA ĐƠN IF(@INVOICE_DT IS NULL OR @INVOICE_DT ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Ngày hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- SỐ HÓA ĐƠN IF(@INVOICE_NO IS NULL OR @INVOICE_NO ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- KÍ HIỆU HÓA ĐƠN IF(@INVOICE_NO_SIGN IS NULL OR @INVOICE_NO_SIGN ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Kí hiệu số hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- KÍ HIỆU HÓA ĐƠN IF(@INVOICE_SIGN IS NULL OR @INVOICE_SIGN ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Kí hiệu mẫu hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END -- KÍ HIỆU HÓA ĐƠN IF(@PRICE IS NULL OR @PRICE =0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số tiền hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc RETURN '-1' END END --SET @INDEX = @INDEX +1 DECLARE @p_REQ_INV_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_INVOICE', @p_REQ_INV_ID OUT; IF @p_REQ_INV_ID='' OR @p_REQ_INV_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_INVOICE(REQ_PAYDT_ID,REQ_PAY_ID,TRANS_NO,TRANS_DT,INVOICE_SIGN,INVOICE_NO,INVOICE_DT,SELLER,TAX_NO,GOODS_NAME,PRICE,TAX,VAT,NOTE, MAKER_ID,CREATE_DT,EDITOR_ID,AUTH_STATUS,CHECKER_ID,APPROVE_DT, CREATE_DT_KT,MAKER_ID_KT,AUTH_STATUS_KT,CHECKER_ID_KT,APPROVE_DT_KT,RECORD_STATUS,INVOICE_NO_SIGN,VAT_RATE,CURRENCY,RATE,PRICE_KT,VAT_KT,TOTAL_AMT_KT,TYPE_VAT,TYPE_FUNC) VALUES (@p_REQ_INV_ID,@p_REQ_PAY_ID , @TRANS_NO , NULL ,@INVOICE_SIGN ,@INVOICE_NO ,CONVERT(DATE,@INVOICE_DT,103) ,UPPER(([dbo].[RemoveVietNamese](@SELLER))),@TAX_NO ,UPPER(([dbo].[RemoveVietNamese](@GOODS_NAME))) ,@PRICE ,@TAX,@VAT,@NOTES, @p_MAKER_ID,GETDATE(),NULL,'U',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'1',@INVOICE_NO_SIGN,@VAT_RATE,@CURRENCY,@RATE,@PRICE,@VAT,@PRICE+@VAT,@TYPE_VAT,@TYPE_FUNC) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlData INTO @TRANS_NO , @TRANS_DT,@INVOICE_SIGN,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@TYPE_VAT,@TYPE_FUNC END; CLOSE XmlData; DEALLOCATE XmlData; --- INSERT CAC HANG MUC NGAN SACH DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID=@p_REQ_PAY_ID --- INSERT CAC HANG MUC NGAN SACH FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY, @RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE WHILE @@fetch_status=0 BEGIN --- KIEM TRA NEU NGAN SACH SU DUNG THUC THE LON HON NGAN SACH CON LAI SET @INDEX_NS = @INDEX_NS +1 -- KHI NAO BAM GUI PHE DUYET HE THONG MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(ISNULL(@AMT_EXE,0) =0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Số tiền sử dụng thực tế phải lớn hơn không.' ErrorDesc RETURN '-1' END --IF((@AMT_EXE > @AMT_REMAIN_GD) AND ((SELECT GD_TYPE_ID FROM CM_GOODS WHERE GD_ID =@GD_ID) ='NS')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc -- RETURN '-1' --END IF(NOT EXISTS(SELECT * FROM PL_IMPORT_DT WHERE TRADE_ID =@TRADE_ID AND IMP_YEAR =YEAR(GETDATE())) AND NOT EXISTS (SELECT * FROM PL_MASTER WHERE PLAN_ID =(SELECT TOP 1 PLAN_ID FROM PL_TRADEDETAIL WHERE TRADE_ID =@TRADE_ID) AND YEAR =YEAR(GETDATE())) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng phải chọn lại ngân sách của năm hiện tại. Không được phép sử dụng ngân sách năm cũ.' ErrorDesc RETURN '-1' END END DECLARE @p_BUDGET_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT; IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID,GD_ID,REQ_PAY_ID,TRADE_ID,AMT_APP,AMT_DO,AMT_EXE,AMT_REMAIN,MAKER_ID,CREATE_DT,CURRENCY,RATE,REASON,TYPE_COST , FR_LEVEL ,TO_LEVEL, MONTH_RATE, YEAR_RATE) VALUES (@p_BUDGET_ID,@GD_ID,@p_REQ_PAY_ID,@TRADE_ID,@AMT_APP,@AMT_DO,@AMT_EXE,@AMT_REMAIN_GD,@p_MAKER_ID, GETDATE(),@CURRENCY,@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY, @RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE END; CLOSE XmlDataGood; DEALLOCATE XmlDataGood; --INSERT FROM MethodCursor DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID SET @INDEX = 0 FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE, @REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN SET @INDEX_INVOICE = @INDEX_INVOICE+1 ----------------------- begin validate ------------------------ IF(@ACC_NO IS NULL OR @ACC_NO = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_INVOICE)+N': số tài khoản '+ N' không được để trống' ErrorDesc RETURN '-1' END IF(@REQ_PAY_TYPE = '1' AND (@ISSUED_DT = '' OR @ISSUED_DT IS NULL)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_INVOICE)+N': Ngày cấp CMND '+ N' không được để trống' ErrorDesc RETURN '-1' END ----------------------- end validate -------------------------- END IF(@REQ_PAY_TYPE<>'1') BEGIN SET @ISSUED_DT = NULL END IF(@TYPE_TRANSFER IS NULL OR @TYPE_TRANSFER ='') BEGIN SET @TYPE_TRANSFER = 'A' END SET @INDEX = @INDEX +1 DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT; IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_METHOD VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_ID,@RECEIVE_ID,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'',@p_MAKER_ID,GETDATE(),@ACC_NO, @ACC_NAME,@ISSUED_BY,CONVERT(DATE,@ISSUED_DT,103),@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER END CLOSE XmlDataMethod; DEALLOCATE XmlDataMethod; --- END INSERT NGAN SACH --- INSERT VAO BANG CHUNG TU DINH KEM -- INSERT CHUNG TU DINH KEM DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID =@p_REQ_PAY_ID --OPEN XmlAttach; FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT, @LICENSE_DT WHILE @@fetch_status=0 BEGIN IF (@REF_DT='') BEGIN SET @REF_DT = NULL END EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ATTACH', @ATTACH_ID OUT; IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_ATTACH(ATTACH_ID,REQ_PAY_ID,REF_ID,REF_CODE,NOTES,[DESCRIPTION],[TYPE],[AMT],REF_DT, LICENSE_DT) VALUES (@ATTACH_ID,@p_REQ_PAY_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT,CONVERT(DATE,@REF_DT,103) ,CONVERT(DATE, @LICENSE_DT,103)) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT, @LICENSE_DT END CLOSE XmlAttach; DEALLOCATE XmlAttach; ----END ------------------------ IF(@p_REQ_TYPE = 'I') BEGIN --BEGIN CURRSOR 2 -- doanptt 24/12/2021 Xóa hợp đồng định kỳ và hợp đồng PO trước khi thêm mới ở 2 IF sau DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAYMENT_DT WHERE PAY_ID = @p_REQ_PAY_ID FETCH NEXT FROM XmlDataPay INTO @PAY_ADV_ID, @AMT_ADVANCED ,@AMT_DO,@AMT_REMAIN,@AMT_PAY ,@AMT_USE ,@AMT_REVERT,@AMT_ADD,@CURRENCY,@RATE, @TRN_DATE WHILE @@fetch_status=0 BEGIN SET @INDEX_AD = @INDEX_AD +1 SET @REQ_PAY_ADV_CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PAY_ADV_ID) IF(@p_TYPE_FUNCTION ='SEND') BEGIN -- KIEM TRA XEM CO PHIEU NAO DANG DUOC THANH TOAN HOAN TAM UNG MA CHUA DUYET HAY CHUA --IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_DT WHERE (PAY_ADV_ID =@PAY_ADV_ID AND (AUTH_STATUS_KT <>'A' OR AUTH_STATUS_KT IS NULL)) AND PAY_ID <> @p_REQ_PAY_ID)) IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_DT WHERE (PAY_ADV_ID =@PAY_ADV_ID AND (AUTH_STATUS ='A' AND ISNULL(AUTH_STATUS_KT,'') <> 'A')) AND PAY_ID <> @p_REQ_PAY_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_AD)+ N': Phiếu tạm ứng số '+@REQ_PAY_ADV_CODE+ N' đang được thanh toán hoàn tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU SO TIEN DE NGHI HOAN TAM ƯNG LON HON SO TIEN CON LAI CAN PHAI TAM UNG IF(@AMT_REVERT>(@AMT_REMAIN -@AMT_USE) AND @AMT_REVERT >0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_AD)+ N': Số tiền hoàn ứng không được vượt quá '+FORMAT((@AMT_REMAIN -@AMT_USE),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END DECLARE @p_REQ_PAYDT_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT_DT', @p_REQ_PAYDT_ID OUT; IF @p_REQ_PAYDT_ID='' OR @p_REQ_PAYDT_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAYMENT_DT VALUES (@p_REQ_PAYDT_ID,@PAY_ADV_ID,@p_REQ_PAY_ID , ISNULL(@AMT_ADVANCED,0) ,ISNULL(@AMT_DO,0),ISNULL(@AMT_REMAIN,0), ISNULL(@AMT_PAY,0) ,ISNULL(@AMT_USE,0) ,ISNULL(@AMT_REVERT,0), ISNULL(@AMT_ADD,0), CONVERT(DATE,@TRN_DATE,103) ,@p_MAKER_ID ,GETDATE() ,NULL ,NULL,'U' ,NULL ,NULL ,NULL ,NULL,NULL,@CURRENCY,@RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPay INTO @PAY_ADV_ID, @AMT_ADVANCED ,@AMT_DO,@AMT_REMAIN,@AMT_PAY ,@AMT_USE ,@AMT_REVERT,@AMT_ADD,@CURRENCY,@RATE, @TRN_DATE END CLOSE XmlDataPay; DEALLOCATE XmlDataPay; --END CURSOR 2-------------------------- ------------------------- --INSERT FROM CatCursor DELETE FROM TR_REQ_PAY_CAT WHERE REQ_PAY_ID = @p_REQ_PAY_ID FETCH NEXT FROM XmlDataCat INTO @REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@CURRENCY,@RATE WHILE @@fetch_status=0 BEGIN SET @INDEX = @INDEX +1 DECLARE @p_REQ_PAY_CAT_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_CAT', @p_REQ_PAY_CAT_ID OUT; IF @p_REQ_PAY_CAT_ID='' OR @p_REQ_PAY_CAT_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_CAT VALUES (@p_REQ_PAY_CAT_ID,@p_REQ_PAY_ID,@REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@p_MAKER_ID,GETDATE(),@CURRENCY,@RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataCat INTO @REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@CURRENCY,@RATE END CLOSE XmlDataCat; DEALLOCATE XmlDataCat; END IF(@p_REQ_TYPE = 'D' OR @p_REQ_TYPE ='I') BEGIN DECLARE @SUM_TTCT_LINK DECIMAL(18,0), @SUM_TT_CT DECIMAL(18,0), @SUM_KUY_KE_TT DECIMAL(18,0),@SUM_PYCMS_LINK DECIMAL(18,0), @PYCMS_CODE_LIST VARCHAR(250), @PDNTT_CODE_LIST VARCHAR(250) SET @SUM_KUY_KE_TT=0 ---------------------------- DELETE FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID = @p_REQ_PAY_ID --INSERT FROM ServiceCursor SET @INDEX = 0 FETCH NEXT FROM XmlDataService INTO @REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@RECEIVE_NAME_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE, @REQ_PAY_TYPE_SERVICE,@REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@DEPT_ID_SRV,@CURRENCY,@RATE WHILE @@fetch_status=0 BEGIN SET @INDEX = @INDEX +1 --------------- begin validate-------------- IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(@DEPT_ID_SRV IS NULL OR @DEPT_ID_SRV ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Phòng ban chịu chi phí không được để trống' ErrorDesc RETURN '-1' END IF(@TOTAL_AMT_SERVICE IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Số tiền thanh toán không được để trống' ErrorDesc RETURN '-1' END IF(@TOTAL_AMT_SERVICE < 0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Số tiền thanh toán không thể nhỏ hơn 0' ErrorDesc RETURN '-1' END END --------------- end validate ---------------- SET @SUM_PYCMS_LINK =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@RECEIVE_ID_SERVICE),0) SET @SUM_TT_CT =(SELECT ISNULL(TOTAL_AMT,0) FROM PL_REQUEST_DOC WHERE REQ_ID =@RECEIVE_ID_SERVICE) SET @PYCMS_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE PL_REQ_ID =@RECEIVE_ID_SERVICE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) SET @PDNTT_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@RECEIVE_ID_SERVICE) AND REQ_PAY_ID <> @p_REQ_PAY_ID FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) --IF(@RECEIVE_ID_SERVICE IS NOT NULL AND @RECEIVE_ID_SERVICE <> '') --BEGIN -- SET @SUM_PYCMS_LINK = @SUM_PYCMS_LINK +@TOTAL_AMT_SERVICE --END --SET @SUM_KUY_KE_TT = @SUM_KUY_KE_TT + @TOTAL_AMT_SERVICE SET @SUM_TTCT_LINK =(SELECT SUM(TOTAL_AMT*ISNULL(RATE,1)) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT) AND REQ_PAY_ID <> @p_REQ_PAY_ID AND EMP_ID =@RECEIVE_ID_SERVICE) IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(((ISNULL(@SUM_TTCT_LINK,0) +ISNULL(@SUM_PYCMS_LINK,0) + ISNULL(@TOTAL_AMT_SERVICE,0)) > ISNULL(@SUM_TT_CT,0)) AND @RECEIVE_ID_SERVICE IS NOT NULL AND @RECEIVE_ID_SERVICE <> '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX)+N': Thông tin chi tiết về hạn mức sử dụng của tờ trình số: '+(SELECT TOP 1 ISNULL(REQ_CODE,'') FROM PL_REQUEST_DOC WHERE REQ_ID =@RECEIVE_ID_SERVICE)+N' như sau:' + CHAR(10) + N'* Số tiền các phiếu yêu cầu mua sắm số:'+ISNULL(@PYCMS_CODE_LIST,'')+N' đã sử dụng: '+FORMAT(ISNULL(@SUM_PYCMS_LINK,0),'#,#', 'vi-VN') +' VND'+ + CHAR(10) +N'* Số tiền ở các phiếu thanh toán số: '+ISNULL(@PDNTT_CODE_LIST,'')+N' đã sử dụng: '+ FORMAT(ISNULL(@SUM_TTCT_LINK,0),'#,#', 'vi-VN') +' VND'+ + CHAR(10) +N'* Số tiền còn lại được phép thanh toán là: '+FORMAT(ISNULL(@SUM_TT_CT,0) -ISNULL(@SUM_TTCT_LINK,0) -ISNULL(@SUM_PYCMS_LINK,0),'#,#', 'vi-VN') +' VND' ErrorDesc RETURN '-1' END END DECLARE @p_REQ_PAY_SERVICE_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SERVICE', @p_REQ_PAY_SERVICE_ID OUT; IF @p_REQ_PAY_SERVICE_ID='' OR @p_REQ_PAY_SERVICE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_SERVICE(SERVICE_ID,REQ_PAY_ID,[SERVICE_NAME],EMP_ID,REQ_PAY_REASON,TOTAL_AMT,REQ_PAY_TYPE,REQ_PAY_DESC,REQ_PAY_ENTRIES,MAKER_ID,CREATE_DT,DEPT_ID,CURRENCY,RATE) VALUES (@p_REQ_PAY_SERVICE_ID,@p_REQ_PAY_ID,@REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE, @REQ_PAY_TYPE_SERVICE,@REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@p_MAKER_ID,GETDATE(),@DEPT_ID_SRV,@CURRENCY,@RATE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataService INTO @REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@RECEIVE_NAME_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE,@REQ_PAY_TYPE_SERVICE, @REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@DEPT_ID_SRV,@CURRENCY,@RATE END CLOSE XmlDataService; DEALLOCATE XmlDataService; END IF((@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) OR @p_REQ_TYPE ='I') BEGIN ---------------------------- --ELSE IF((@p_REQ_TYPE = 'P' AND @p_IS_PERIOD = 'Y') OR @p_REQ_TYPE='I') IF(@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) BEGIN DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID END DECLARE @INDEX_PO INT, @REF_ID VARCHAR(15),@IS_CLOSED VARCHAR(1) DECLARE XmlDataPO CURSOR FOR SELECT * FROM OPENXML(@hdocPO, '/Root/XmlDataPO', 2) WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataPO; SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE PO_ID =@REF_ID AND AUTH_STATUS <>'A')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' chưa được phê duyệt. Vui lòng phê duyệt PO trước khi tạo phiếu thanh toán' ErrorDesc RETURN '-1' END SET @INDEX_PO = @INDEX_PO +1 -- KHI NAO BAM GUI PHE DUYET HE THONG MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C' AND REQ_PAY_ID --IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL))) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ -- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc -- RETURN '-1' --END ---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH --IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ -- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc -- RETURN '-1' --END --IF(EXISTS(SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE REF_ID =@REF_ID AND PAY_ID =@PAY_ID AND -- REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID)) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+ -- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc -- RETURN '-1' --END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N':PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED='Y'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán xong. Vui lòng chọn PO khác để tạm ứng hoặc xóa bản nháp này' ErrorDesc RETURN '-1' END END DECLARE @REQ_PAYDTID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID OUT; IF @REQ_PAYDTID='' OR @REQ_PAYDTID IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataPO; DEALLOCATE XmlDataPO; --INSERT FROM ScheduleCursor DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID = @p_REQ_PAY_ID SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_REMAIN_SCHEDULE,@REQ_AD_DT, @PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_DO,@AMT_PAY_REAL WHILE @@fetch_status=0 BEGIN --IF(@AMT_REMAIN_SCHEDULE =0) --BEGIN -- SET @PROCESS ='3' --END --IF(@PROCESS <>'2') --BEGIN -- SET @TOTAL_SCHEDULE_AMT = @TOTAL_SCHEDULE_AMT +@AMT_REMAIN_SCHEDULE --END SET @TOTAL_SCHEDULE_AMT = @TOTAL_SCHEDULE_AMT +(@AMT_PAY_SCHEDULE -@AMT_ADVANCE_SCHEDULE -@AMT_PAY_DO) ---- SET @INDEX_PO = @INDEX_PO +1 IF(@p_TYPE_FUNCTION ='SEND' AND @p_REQ_TYPE ='P') BEGIN IF(ISNULL(@AMT_PAY_REAL,0) < ISNULL(@AMT_ADVANCE_SCHEDULE,0)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Số tiền thanh toán thực tế tối thiểu phải bằng số tiền đã tạm ứng : ' +FORMAT(SUM(@AMT_ADVANCE_SCHEDULE),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END DECLARE @p_REQ_PAY_SCHEDULE_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SCHEDULE', @p_REQ_PAY_SCHEDULE_ID OUT; IF @p_REQ_PAY_SCHEDULE_ID='' OR @p_REQ_PAY_SCHEDULE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_SCHEDULE (SCHEDULE_ID,REQ_PAY_ID,PAY_ID,AMT_PAY,PAY_PHASE,REQ_ADV_ID,AMT_ADVANCE,AMT_PAY_DO,AMT_REMAIN,REQ_PAY_DT,REQ_AD_DT,PROCESS,MAKER_ID, CREATE_DT,AUTH_STATUS_KT,PAYMENT_STATUS,TRN_TYPE,REF_ID,REQ_PAY_DESC,REQ_PAY_ENTRIES,CURRENCY,RATE, AMT_PAY_REAL) VALUES (@p_REQ_PAY_SCHEDULE_ID,@p_REQ_PAY_ID,@PAY_ID,@AMT_PAY_SCHEDULE,@TERM_PAY,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE, --IIF(@PROCESS<>'2',(@AMT_PAY_SCHEDULE-@AMT_ADVANCE_SCHEDULE),0), @AMT_PAY_DO, @AMT_REMAIN_SCHEDULE,GETDATE(),CONVERT(DATETIME,@REQ_AD_DT,103),@PROCESS,@p_MAKER_ID,GETDATE(),'U','','PAY',@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_REMAIN_SCHEDULE,@REQ_AD_DT, @PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_DO,@AMT_PAY_REAL END CLOSE XmlDataSchedule; DEALLOCATE XmlDataSchedule; ---- VALIDATE SO TIEN --IF(@p_REQ_AMT > ISNULL(@TOTAL_SCHEDULE_AMT,0)) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+ FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END ------ END -- NEU LA THANH TOAN CAC HOP DONG DINH KY IF((@p_REQ_TYPE = 'P' AND @p_IS_PERIOD = 'Y') OR @p_REQ_TYPE='I') BEGIN -- INSERT DATAPERIOD IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD = 'Y') BEGIN DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID END DECLARE @INDEX_PERIOD INT, @CONTRACT_PERIOD_ID VARCHAR(15),@IS_PERIOD_CLOSED VARCHAR(1) DECLARE XmlDataRecurring CURSOR FOR SELECT * FROM OPENXML(@hdocRecurring, '/Root/XmlDataRecurring', 2) WITH(CONTRACT_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataRecurring; SET @INDEX_PERIOD = 0 FETCH NEXT FROM XmlDataRecurring INTO @CONTRACT_PERIOD_ID,@IS_PERIOD_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN /*IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE PO_ID =@REF_ID AND AUTH_STATUS <>'A')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' chưa được phê duyệt. Vui lòng phê duyệt PO trước khi tạo phiếu thanh toán' ErrorDesc RETURN '-1' END SET @INDEX_PO = @INDEX_PO +1 -- KHI NAO BAM GUI PHE DUYET HE THONG MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N':PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc RETURN '-1' END -- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED='Y'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+ (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán xong. Vui lòng chọn PO khác để tạm ứng hoặc xóa bản nháp này' ErrorDesc RETURN '-1' END END*/ DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT; IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES(@REQ_PAYDTID_PERIOD,@p_REQ_PAY_ID,@CONTRACT_PERIOD_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_PERIOD_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataRecurring INTO @CONTRACT_PERIOD_ID,@IS_PERIOD_CLOSED,@REF_TYPE END CLOSE XmlDataRecurring; DEALLOCATE XmlDataRecurring; -- INSERT DETAIL PERIOD DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID DECLARE XmlDataPeriod CURSOR FOR SELECT * FROM OPENXML(@hdocPeriod, '/Root/XmlDataPeriod', 2) WITH(CONTRACT_ID varchar(15),PAY_DT_REAL VARCHAR(20),PAY_TYPE VARCHAR(5), OLD_INDEX DECIMAL(18,0),NEW_INDEX DECIMAL(18,0),AMT_PAY DECIMAL(18,2),CURRENCY VARCHAR(5), RATE DECIMAL(18,0),FROM_DATE VARCHAR(20), TO_DATE VARCHAR(20), AD_PAY_ID VARCHAR(15), PROCESS VARCHAR(5),PARENT_ID VARCHAR(15),PAY_PHASE NVARCHAR(250),REASON NVARCHAR(2000)) OPEN XmlDataPeriod; DECLARE @CONTRACT_ID varchar(15),@PAY_DT_REAL VARCHAR(20),@PAY_TYPE VARCHAR(5), @OLD_INDEX DECIMAL(18,0),@NEW_INDEX DECIMAL(18,0),@AMT_PAY_PERIOD DECIMAL(18,2),@FROM_DATE VARCHAR(20),@TO_DATE VARCHAR(20),@AD_PAY_ID VARCHAR(15), @_PROCESS VARCHAR(15),@PARENT_ID VARCHAR(15),@PAY_PHASE NVARCHAR(250),@REASON_TTDK NVARCHAR(2000) FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY,@RATE,@FROM_DATE,@TO_DATE,@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET HE THONG MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN IF(@NEW_INDEX <=@OLD_INDEX AND (@NEW_INDEX >0 AND @OLD_INDEX >0) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Chỉ số mới phải lớn hơn chỉ số cũ' ErrorDesc RETURN '-1' END -- NEU LÀ DINH KI THI HD PHAI KHAC NULL IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Cột Số hợp đồng không được phép để trống' ErrorDesc RETURN '-1' END -- KIEM TRA CHI TIET HOP DONG PHAI NAM TRONG DANH SACH CAC HOP DONG IF(@CONTRACT_ID IS NOT NULL AND @CONTRACT_ID <> '' ) BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REF_ID =@CONTRACT_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì - Số hợp đồng phải nằm trong danh sách các hợp đồng được chọn trên lưới Hợp đồng định kì' ErrorDesc RETURN '-1' END END END --IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' ) -- BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Cột Số hợp đồng không được phép để trống' ErrorDesc -- RETURN '-1' --END DECLARE @PERIOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT; IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID,REQ_PAY_ID,PAY_TYPE, CONTRACT_ID,PAY_DT_REAL,OLD_INDEX,NEW_INDEX,AMT_PAY,AUTH_STATUS_KT,CURRENCY,RATE,FROM_DATE,TO_DATE,AD_PAY_ID,PROCESS,PARENT_ID,PAY_PHASE,REASON) VALUES (@PERIOD_ID,@p_REQ_PAY_ID,'PAY',@CONTRACT_ID,CONVERT(DATE,@PAY_DT_REAL,103), @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,'U',@CURRENCY,@RATE,CONVERT(DATE,@FROM_DATE,103),CONVERT(DATE,@TO_DATE,103),@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY,@RATE,@FROM_DATE,@TO_DATE,@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK END CLOSE XmlDataPeriod; DEALLOCATE XmlDataPeriod; -- VALIDATE SO TIEN --IF(@p_REQ_AMT >= @TOTAL_SCHEDULE_AMT) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END --INSERT DETAIL PERIOD /*print 'insert detail period else if' DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID DECLARE XmlDataPeriod CURSOR FOR SELECT * FROM OPENXML(@hdocPeriod, '/Root/XmlDataPeriod', 2) WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15)) OPEN XmlDataPeriod; SET @INDEX_PO = 0 FETCH NEXT FROM XmlDataPeriod INTO @REF_ID,@IS_CLOSED,@REF_TYPE WHILE @@fetch_status=0 BEGIN SET @INDEX_PO = @INDEX_PO +1 DECLARE @REQ_PAYDTID_C VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_C OUT; IF @REQ_PAYDTID_C='' OR @REQ_PAYDTID_C IS NULL GOTO ABORT; INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES (@REQ_PAYDTID_C,@p_REQ_PAY_ID,@REF_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,@REF_TYPE) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPeriod INTO @REF_ID,@IS_CLOSED,@REF_TYPE END CLOSE XmlDataPeriod; DEALLOCATE XmlDataPeriod;*/ --- CUSOR DANH SACH LICH THANH TOAN PO - HD ---------------------------- /*--INSERT FROM PERIOD DECLARE XmlDataPeriod CURSOR FOR SELECT * FROM OPENXML(@hdocPeriod, '/Root/XmlDataPeriod', 2) WITH(CONTRACT_ID varchar(15),PAY_DT_REAL VARCHAR(20),PAY_TYPE VARCHAR(5), OLD_INDEX DECIMAL(18,0),NEW_INDEX DECIMAL(18,0),AMT_PAY DECIMAL(18,2),CURRENCY VARCHAR(5), RATE DECIMAL(18,0),FROM_DATE VARCHAR(20), TO_DATE VARCHAR(20), AD_PAY_ID VARCHAR(15), PROCESS VARCHAR(5),PARENT_ID VARCHAR(15),PAY_PHASE NVARCHAR(250),REASON NVARCHAR(2000)) OPEN XmlDataPeriod; --DECLARE @CONTRACT_ID varchar(15),@PAY_DT_REAL VARCHAR(20),@PAY_TYPE VARCHAR(5), --@OLD_INDEX DECIMAL(18,0),@NEW_INDEX DECIMAL(18,0),@AMT_PAY_PERIOD DECIMAL(18,2),@FROM_DATE VARCHAR(20),@TO_DATE VARCHAR(20),@AD_PAY_ID VARCHAR(15), @_PROCESS VARCHAR(15),@PARENT_ID VARCHAR(15),@PAY_PHASE NVARCHAR(250) FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY,@RATE,@FROM_DATE,@TO_DATE,@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET HE THONG MOI CHECK VALIDATE IF(@p_TYPE_FUNCTION ='SEND') BEGIN --IF(EXISTS(SELECT CONTRACT_ID --FROM TR_CONTRACT --WHERE CONTRACT_ID = @REF_ID AND CONVERT(DATE,END_DT,103) < CONVERT(DATE,GETDATE(),103) AND END_DT IS NOT NULL AND CONT_TYPE ='DK' AND CONT_TYPE IS NOT NULL AND CONT_TYPE <>'')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Thanh toán hợp đồng định kì đã đóng' ErrorDesc -- RETURN '-1' --END IF(@PAY_PHASE IS NULL OR @PAY_PHASE ='') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới chi tiết thanh toán định kì: Kì thanh toán không được để trống' ErrorDesc RETURN '-1' END IF(@NEW_INDEX <=@OLD_INDEX AND (@NEW_INDEX >0 AND @OLD_INDEX >0) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới chi tiết thanh toán định kì: Chỉ số mới phải lớn hơn chỉ số cũ' ErrorDesc RETURN '-1' END IF( @PAY_ADV_ID IS NOT NULL AND @PAY_ADV_ID <> '' AND (SELECT ISNULL(REQ_AMT,0.00) - ISNULL(PAY_AMT,0.00) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PAY_ADV_ID) <=0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Bạn không được phép hoàn tạm ứng cho phiếu đã được hoàn ứng xong! Vui lòng gỡ khỏi danh sách kì thanh toán & hoàn ứng' ErrorDesc RETURN '-1' END IF(@PROCESS ='2' AND (@AD_PAY_ID IS NULL OR @AD_PAY_ID ='')) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result,'' REQ_PAY_ID,N'Lưới chi tiết thanh toán định kì: Tại hình thức thanh toán Hoàn ứng, số phiếu tạm ứng không được phép để trống' ErrorDesc RETURN '-1' END -- NEU LÀ DINH KI THI HD PHAI KHAC NULL IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Cột Số hợp đồng không được phép để trống' ErrorDesc RETURN '-1' END -- KIEM TRA CHI TIET HOP DONG PHAI NAM TRONG DANH SACH CAC HOP DONG IF(@CONTRACT_ID IS NOT NULL AND @CONTRACT_ID <> '' ) BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REF_ID =@CONTRACT_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì - Số hợp đồng phải nằm trong danh sách các hợp đồng được chọn trên lưới Hợp đồng định kì' ErrorDesc RETURN '-1' END END END --DECLARE @PERIOD_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT; IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID,REQ_PAY_ID,PAY_TYPE, CONTRACT_ID,PAY_DT_REAL,OLD_INDEX,NEW_INDEX,AMT_PAY,AUTH_STATUS_KT,CURRENCY,RATE,FROM_DATE,TO_DATE,AD_PAY_ID,PROCESS,PARENT_ID,PAY_PHASE,REASON) VALUES (@PERIOD_ID,@p_REQ_PAY_ID,'PAY',@CONTRACT_ID,CONVERT(DATE,@PAY_DT_REAL,103), @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,'U',@CURRENCY,@RATE,CONVERT(DATE,@FROM_DATE,103),CONVERT(DATE,@TO_DATE,103),@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK) -- LUCTV 16 03 2021 BO SUNG BANG LOG DE FIX LOI HOÀN TẠM ỨNG ĐỊNH KỲ NHƯNG SỐ PHIẾU BỊ TRỐNG INSERT INTO TR_REQ_PAY_PER_LOG VALUES (@p_REQ_PAY_ID, @PAY_ADV_ID) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY,@RATE,@FROM_DATE,@TO_DATE,@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK END CLOSE XmlDataPeriod; DEALLOCATE XmlDataPeriod;*/ ---- VALIDATE SO TIEN --IF(@p_REQ_AMT >= @TOTAL_SCHEDULE_AMT) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END -- END COMMIT TRANSACTION IF(@p_TYPE_FUNCTION ='SEND') -- KIEM TRA NEU 2 BIEN XML KHAC NULL TUC LA DANG TRONG QUA TRINH LUU NHAP BEGIN DECLARE @BRANCH_TYPE_CR VARCHAR(15) SET @BRANCH_TYPE_CR =(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_CREATE) DECLARE @SUM_THANH_TOAN DECIMAL(18,0) =0, @SUM_PHUONG_THUC DECIMAL(18,0) =0, @SUM_NGAN_SACH DECIMAL(18,2) =0, @SUM_USE_REAL DECIMAL(18,2), @SUM_SERVICE DECIMAL(18,0), @SUM_SCHEDULE DECIMAL(18,0), @SUM_PERIOD DECIMAL(18,0), @SUM_PAY_BACK DECIMAL(18,0) =0, @SUM_ADD DECIMAL(18,0) SET @SUM_THANH_TOAN =(SELECT ISNULL(SUM(REQ_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_PHUONG_THUC =ABS((SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND (TYPE_TRANSFER ='A' OR TYPE_TRANSFER IS NULL OR TYPE_TRANSFER ='')) - (SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='R')) SET @SUM_NGAN_SACH =(SELECT ISNULL(SUM(AMT_EXE * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_SERVICE =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_PERIOD =(SELECT ISNULL(SUM(AMT_PAY * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_SCHEDULE =(SELECT ISNULL(SUM(AMT_PAY_REAL * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(@p_REQ_TYPE ='I') BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_USE*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID) SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_REVERT*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID) SET @SUM_ADD =(SELECT ISNULL(SUM(AMT_ADD*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID) SET @SUM_PHUONG_THUC =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='A') - (SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='R') END IF(@p_REQ_TYPE ='P' AND @p_IS_PERIOD ='Y' AND @p_IS_PERIOD <>'' AND @p_IS_PERIOD IS NOT NULL) BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_PAY*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID) --SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_PAY*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND PROCESS <> '0') END IF(@p_REQ_TYPE ='P' AND (@p_IS_PERIOD ='N' OR (@p_IS_PERIOD ='' OR @p_IS_PERIOD IS NULL))) BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_PAY_REAL*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_ADVANCE*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) END IF(@p_REQ_TYPE ='D') BEGIN SET @SUM_USE_REAL =(SELECT ISNULL(SUM(TOTAL_AMT*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) END IF(@p_REQ_TYPE = 'D' AND ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_THANH_TOAN,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(SUM(@SUM_THANH_TOAN),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END IF(@p_REQ_TYPE <> 'D' AND ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_USE_REAL,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền bạn sử dụng thực tế là: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END --IF(ISNULL(@SUM_USE_REAL,0) - ISNULL(@SUM_PAY_BACK,0) <> @SUM_PHUONG_THUC) --BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán tương ứng với số tiền thanh toán trừ số tiền hoàn tạm ứng: ' + FORMAT((ISNULL(@SUM_USE_REAL,0) - ISNULL(@SUM_PAY_BACK,0)),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END --IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE TRASFER_USER_RECIVE ='' OR TRASFER_USER_RECIVE IS NULL) AND @BRANCH_TYPE_CR ='HS' AND @p_REQ_TYPE ='I') --BEGIN -- DECLARE @USER_TP VARCHAR(15) -- SET @USER_TP =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID AND RoleName IN ('GDDV','TPTC','TC','KTT')) -- UPDATE TR_REQ_PAYMENT SET TRASFER_USER_RECIVE =@USER_TP WHERE REQ_PAY_ID =@p_REQ_PAY_ID --END --ELSE --IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE TRASFER_USER_RECIVE ='' OR TRASFER_USER_RECIVE IS NULL) AND @BRANCH_TYPE_CR ='PGD') --BEGIN -- --DECLARE @USER_TPGD VARCHAR(15) -- --SET @USER_TPGD =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID AND RoleName IN ('TPGD')) -- DECLARE @USER_TPGD VARCHAR(15) -- --SET @USER_TPGD =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID AND -- --(RoleName IN ('TPGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW ='TPGD'))) -- SET @USER_TPGD =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID AND RoleName IN ('TPGD')) -- IF(@USER_TPGD IS NULL OR @USER_TPGD ='') -- BEGIN -- SET @USER_TPGD = (SELECT TOP 1 TLNANME FROM TL_USER_V2 WHERE TLSUBBRID = @p_BRANCH_CREATE -- AND RoleName ='TPGD') -- END -- UPDATE TR_REQ_PAYMENT SET TRASFER_USER_RECIVE =@USER_TPGD WHERE REQ_PAY_ID =@p_REQ_PAY_ID --END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='PGD') BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Cấp độ phòng giao dịch vui lòng không được chọn cấp phê duyệt trung gian' ErrorDesc RETURN '-1' END IF(@p_REQ_TYPE <> 'I') BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc RETURN '-1' END --IF(ISNULL(@SUM_USE_REAL,0) - ISNULL(@SUM_PAY_BACK,0) <> @SUM_PHUONG_THUC) --BEGIN -- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán tương ứng với số tiền thanh toán trừ số tiền hoàn tạm ứng: ' + FORMAT((ISNULL(@SUM_USE_REAL,0) - ISNULL(@SUM_PAY_BACK,0)),'#,#', 'vi-VN') ErrorDesc -- RETURN '-1' --END IF(ROUND(@SUM_THANH_TOAN,0) <> ROUND(@SUM_PHUONG_THUC,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(SUM(@SUM_THANH_TOAN),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END ELSE BEGIN IF(ISNULL(@SUM_USE_REAL,0) >0) BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc RETURN '-1' END IF(ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_USE_REAL,0)) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền sử dụng thực tế trên lưới hoàn tạm ứng: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END IF(ISNULL(@SUM_USE_REAL,0) <> (ISNULL(@SUM_SERVICE,0) + ISNULL(@SUM_PERIOD,0) + ISNULL(@SUM_SCHEDULE,0))) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng số tiền thanh toán dịch vụ, thanh toán nhà cung cấp, thanh toán định kì phải bằng số tiền sử dụng thực tế trên lưới hoàn tạm ứng: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') + ' ' + FORMAT(SUM(@SUM_SERVICE),'#,#', 'vi-VN') + ' ' + FORMAT(SUM(@SUM_PERIOD),'#,#', 'vi-VN') + ' ' + FORMAT(SUM(@SUM_SCHEDULE),'#,#', 'vi-VN') ErrorDesc RETURN '-1' END END --IF(ABS((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))) <> @SUM_PHUONG_THUC) IF(((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))) <> @SUM_PHUONG_THUC) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán (hiệu số thanh toán và trích từ tai khoản) tương ứng với số tiền chi bổ sung trừ số tiền hoàn tạm ứng: ' + FORMAT(ABS((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))),'#,#', 'vi-VN') + ' ' + CAST(@SUM_PHUONG_THUC as nvarchar) ErrorDesc RETURN '-1' END END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS='U')) BEGIN SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc RETURN '-1' END -- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='U', PROCESS = NULL,CREATE_DT = GETDATE() WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Đơn vị gửi phê duyệt',N'Đơn vị tạo phiếu thanh toán và gửi phê duyệt') --- Luu log chinh sua INSERT INTO TR_REQ_PAY_INVOICE_LOG SELECT * FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID ----- UPDATE TR_REQ_PAY_SCHEDULE SET AMT_REMAIN =0.00 WHERE AMT_REMAIN <0 UPDATE TR_REQ_PAY_BUDGET SET AMT_APP= ROUND(AMT_APP,0), AMT_REMAIN = ROUND(AMT_REMAIN,0) IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE (TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID)) BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị thanh toán số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc RETURN '4' END ELSE BEGIN SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị thanh toán số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '4' END END --IF(1=1) --GOTO ABORT SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION CLOSE XmlData; DEALLOCATE XmlData; CLOSE XmlDataPay; DEALLOCATE XmlDataPay; Close XmlDataMethod; Close XmlDataCat; CLOSE XmlDataService; CLOSE XmlDataSchedule; Deallocate XmlDataMethod; Deallocate XmlDataCat; DEALLOCATE XmlDataService; DEALLOCATE XmlDataSchedule; SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Creating [dbo].[BUD_CONTRACT_CUST_MASTER_Search]' GO CREATE PROCEDURE [dbo].[BUD_CONTRACT_CUST_MASTER_Search] @p_CONTRACT_ID varchar(15) = NULL, @p_BUILDING_ID varchar(15) = NULL, @p_CONTRACT_NO nvarchar(100) = NULL, @p_VERSION_NO int =0, @p_CUST_ID varchar(15) = NULL, @p_INPUT_DT VARCHAR(20) = NULL, @p_AMEND_DT VARCHAR(20) = NULL, @p_FROM_DT VARCHAR(20) = NULL, @p_TO_DATE VARCHAR(20) = NULL, @p_CLOSE_DT VARCHAR(20) = NULL, @p_MONTHS int = NULL, @p_RENT_PRICE numeric(18) = NULL, @p_NOTES NVARCHAR(MAX) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_STATUS VARCHAR(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_XML_TEMP xml = NULL, @p_VAT DECIMAL(18,0)= NULL, @p_VAT_AMT DECIMAL(18,0) =NULL, @p_DEPOSITS_AMT DECIMAL(18,0) =NULL, @p_PAYMENT_SHEDULE NVARCHAR(500)= NULL, @p_TOP INT = 10, @p_FROM_MONTH int= NULL, @p_TO_MONTH int = NULL, @p_FROMDATE VARCHAR(25) = NULL, @p_TODATE VARCHAR(25)= NULL, @p_LEVEL VARCHAR(15)='ALL', @p_USER_LOGIN VARCHAR(15) -----BAODNQ 4/1/2021: Truyền thêm USER_LOGIN---- AS BEGIN -- PAGING declare @p_BRANCH_LOGIN VARCHAR(15) --set @p_BRANCH_LOGIN = (select TLSUBBRID from TL_USER where TLNANME=@p_MAKER_ID) set @p_BRANCH_LOGIN = (select TLSUBBRID from TL_USER where TLNANME=@p_USER_LOGIN) DECLARE @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) --------BAODNQ 5/1/2021: Khai báo role USER_LOGIN------------------- DECLARE @p_USER_LOGIN_ROLE VARCHAR(50) SET @p_USER_LOGIN_ROLE = (SELECT RoleName FROM TL_USER WHERE TLNANME = @p_USER_LOGIN) ----------- IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*,B.AUTH_STATUS_NAME,C.NUM_FLOOR, C.BUILDING_NAME,BR.BRANCH_NAME,LS.CUSTOMER_NAME,CM.CONTENT AS TINHTRANG_HOPDONG, -----BAODNQ 30/12/2021: Lấy thêm cột full name---- D.TLFullName AS SIGN_USER_FULLNAME -- SELECT END FROM BUD_CONTRACT_CUST_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = A.BRANCH_ID LEFT JOIN LS_CUSTOMER LS ON LS.CUSTOMER_ID = A.CUST_ID LEFT JOIN CM_ALLCODE CM ON A.[STATUS] = CM.CDVAL AND CDNAME='CONTRACT_STATUS' AND CDTYPE='CONTRACT' ----BAODNQ 30/12/2021: Kết thêm bảng TL_USER---- LEFT JOIN TL_USER D ON A.SIGN_USER = D.TLNANME WHERE 1 = 1 AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '') AND (A.BUILDING_ID LIKE '%' + @p_BUILDING_ID + '%' OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (A.CONTRACT_NO LIKE '%' + @p_CONTRACT_NO + '%' OR @p_CONTRACT_NO IS NULL OR @p_CONTRACT_NO = '') AND (A.CUST_ID LIKE '%' + @p_CUST_ID + '%' OR @p_CUST_ID IS NULL OR @p_CUST_ID = '') AND (A.INPUT_DT =CONVERT(DATE, @p_INPUT_DT, 103) OR @p_INPUT_DT IS NULL OR @p_INPUT_DT = '') AND (A.AMEND_DT =CONVERT(DATE, @p_AMEND_DT, 103) OR @p_AMEND_DT IS NULL OR @p_AMEND_DT = '') AND (A.TO_DATE =CONVERT(DATE, @p_TO_DATE, 103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') AND (A.CLOSE_DT =CONVERT(DATE, @p_CLOSE_DT, 103) OR @p_CLOSE_DT IS NULL OR @p_CLOSE_DT = '') AND (A.RENT_PRICE = @p_RENT_PRICE OR @p_RENT_PRICE IS NULL OR @p_RENT_PRICE =0) AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (CONVERT(DATE,A.CREATE_DT,103) >=CONVERT(DATE, @p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE = '') AND (CONVERT(DATE,A.CREATE_DT,103) <=CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE = '') AND (ISNULL(A.MONTHS,0) >= @p_FROM_MONTH OR @p_FROM_MONTH IS NULL OR @p_FROM_MONTH = 0) AND (ISNULL(A.MONTHS,0) <= @p_TO_MONTH OR @p_TO_MONTH IS NULL OR @p_TO_MONTH = 0) AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (A.APPROVE_DT =CONVERT(DATE, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp)) -----BAODNQ 4/1/2021: Thêm điều kiện select---- AND (A.MAKER_ID = @p_USER_LOGIN OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') OR ((@p_USER_LOGIN_ROLE IN ('GDDV','PGD', 'TP', 'PP','TPGD','PPGD')) AND A.IS_SEND_APPR = 'Y' AND ( (ISNULL(A.SIGN_USER,'') ='' OR ((ISNULL(A.SIGN_USER,'') <>'' AND A.SIGN_DT IS NOT NULL ))) ) ) ) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*,B.AUTH_STATUS_NAME,C.NUM_FLOOR, C.BUILDING_NAME,BR.BRANCH_NAME,LS.CUSTOMER_NAME,CM.CONTENT AS TINHTRANG_HOPDONG, -----BAODNQ 30/12/2021: Lấy thêm cột full name---- D.TLFullName AS SIGN_USER_FULLNAME -- SELECT END FROM BUD_CONTRACT_CUST_MASTER A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN BUD_MASTER C ON A.BUILDING_ID = C.BUILDING_ID LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = A.BRANCH_ID LEFT JOIN LS_CUSTOMER LS ON LS.CUSTOMER_ID = A.CUST_ID LEFT JOIN CM_ALLCODE CM ON A.[STATUS] = CM.CDVAL AND CDNAME='CONTRACT_STATUS' AND CDTYPE='CONTRACT' ----BAODNQ 30/12/2021: Kết thêm bảng TL_USER---- LEFT JOIN TL_USER D ON A.SIGN_USER = D.TLNANME WHERE 1 = 1 AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '') AND (A.BUILDING_ID LIKE '%' + @p_BUILDING_ID + '%' OR @p_BUILDING_ID IS NULL OR @p_BUILDING_ID = '') AND (A.CONTRACT_NO LIKE '%' + @p_CONTRACT_NO + '%' OR @p_CONTRACT_NO IS NULL OR @p_CONTRACT_NO = '') AND (A.CUST_ID LIKE '%' + @p_CUST_ID + '%' OR @p_CUST_ID IS NULL OR @p_CUST_ID = '') AND (A.INPUT_DT =CONVERT(DATE, @p_INPUT_DT, 103) OR @p_INPUT_DT IS NULL OR @p_INPUT_DT = '') AND (A.AMEND_DT =CONVERT(DATE, @p_AMEND_DT, 103) OR @p_AMEND_DT IS NULL OR @p_AMEND_DT = '') AND (A.TO_DATE =CONVERT(DATE, @p_TO_DATE, 103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') AND (A.CLOSE_DT =CONVERT(DATE, @p_CLOSE_DT, 103) OR @p_CLOSE_DT IS NULL OR @p_CLOSE_DT = '') AND (A.RENT_PRICE = @p_RENT_PRICE OR @p_RENT_PRICE IS NULL OR @p_RENT_PRICE = 0) AND (A.RECORD_STATUS =1) AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (CONVERT(DATE,A.CREATE_DT,103) >=CONVERT(DATE, @p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE = '') AND (CONVERT(DATE,A.CREATE_DT,103) <=CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE = '') AND (ISNULL(A.MONTHS,0) >= @p_FROM_MONTH OR @p_FROM_MONTH IS NULL OR @p_FROM_MONTH = 0) AND (ISNULL(A.MONTHS,0) <= @p_TO_MONTH OR @p_TO_MONTH IS NULL OR @p_TO_MONTH = 0) AND (( (@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)) OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID) ) OR @P_BRANCH_ID IS NULL OR @P_BRANCH_ID = '') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp)) AND ( A.VERSION_NO =(SELECT MAX(VERSION_NO) FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = A.CONTRACT_ID)) -----BAODNQ 4/1/2021: Thêm điều kiện select---- AND (A.MAKER_ID = @p_USER_LOGIN OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') OR ((@p_USER_LOGIN_ROLE IN ('GDDV','PGD', 'TP', 'PP','TPGD','PPGD')) AND A.IS_SEND_APPR = 'Y' AND ( (ISNULL(A.SIGN_USER,'') ='' OR ((ISNULL(A.SIGN_USER,'') <>'' AND A.SIGN_DT IS NOT NULL ))) ) ) ) -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[NF_MESSAGE_GetContent]' GO ALTER PROCEDURE [dbo].[NF_MESSAGE_GetContent] @p_TYPE VARCHAR(100) = NULL, @p_ID varchar(500) = NULL AS DECLARE @l_LST_REQ_ID TABLE ( [ID] [int] IDENTITY(1,1) NOT NULL, [REQ_PAY_ID] [VARCHAR](50) NULL) INSERT INTO @l_LST_REQ_ID SELECT VALUE FROM WSISPLIT(@p_ID,',') DECLARE @footer NVARCHAR(4000) = N'

P/s: Vui lòng không phản hồi email này. Đây là email được tạo ra bởi hệ thống tự động.


Thanks and Best Regards' DECLARE @CODE NVARCHAR(1000), @APPROVEDT DATETIME, @DATETIME VARCHAR(100), @URL VARCHAR(1000) DECLARE @TILTER_MAIL NVARCHAR(1000) ='', @LINK_UAT NVARCHAR(250)= '' SET @TILTER_MAIL =ISNULL((SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID ='TIL'),N'[PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS]') --INSERT INTO TL_MESSAGE VALUES ('UAT',N'Đường dẫn truy cập: http://banviet.phanmemquanlytaisan.com','') --SET @URL = (SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID = 'APP') SET @URL = 'http://localhost:4200/app/admin/' SET @LINK_UAT =N'

'+(SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID = 'UAT') --DUYET PO IF @p_TYPE = 'TR_PO_MASTER_Approve' BEGIN SELECT @CODE = PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @p_ID --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT N'[gAMS_Sacombank] Thông báo PO đã được duyệt' AS TITLE, N'Dear All' + N',

Số PO: ' + @CODE + N' đã được duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END --DUYET CAP NHAT DON HANG IF @p_TYPE = 'TR_PO_UP_MASTER_App' BEGIN SELECT @CODE = PO_CODE, @APPROVEDT = APPROVE_DT FROM TR_PO_UP_MASTER WHERE PO_UP_ID = @p_ID SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT N'[gAMS_Sacombank] Thông báo đã cập nhập đơn hàng' AS TITLE, N'Dear All'+ N',

Số PO: ' + @CODE + N' đã nhận hàng vào lúc ' + @DATETIME + @footer AS MESSAGECONTENT RETURN 0 END --DUYET PO SUA CHUA IF @p_TYPE = 'TR_PO_REPAIR_Approve' BEGIN SELECT @CODE = PO_CODE FROM TR_PO_REPAIR WHERE PO_REPAIR_ID = @p_ID SELECT N'[gAMS_Sacombank] Thông báo PO sửa chữa đã được duyệt' AS TITLE, N'Dear All' + N',

Số PO: ' + @CODE + N' đã được duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END --DUYET XUAT SU DUNG DON LE IF @p_TYPE = 'ASS_USE_SearchResult' BEGIN SELECT @CODE = ASSET_CODE FROM ASS_MASTER WHERE ASSET_ID = (SELECT A.ASSET_ID FROM ASS_USE A WHERE A.USE_ID = @p_ID) SELECT N'[gAMS_Sacombank] Thông báo xuất kho được duyệt' AS TITLE, N'Dear All' + N',

Tài sản: ' + @CODE + N' đã được xuất sử dụng.' + @footer AS MESSAGECONTENT RETURN 0 END --DUYET XUAT SU DUNG HANG LOAT IF @p_TYPE = 'ASS_USE_MULTI_MASTER_SearchResult' BEGIN SET @CODE = (SELECT STUFF((SELECT '; ' + DTA.PO_CODE FROM TR_PO_MASTER DTA INNER JOIN ( SELECT A.PO_ID FROM ASS_MASTER_PO A INNER JOIN ASS_USE_MULTI_DT B ON A.ASSET_ID = B.ASSET_ID AND B.USER_MASTER_ID = @p_ID GROUP BY A.PO_ID ) PODT ON DTA.PO_ID = PODT.PO_ID FOR XML PATH('') ),1,1,'') ) SELECT N'[gAMS_Sacombank] Thông báo xuất kho được duyệt' AS TITLE, N'Dear All' + N',

Tài sản thuộc PO: ' + @CODE + N' đã được xuất sử dụng.' + @footer AS MESSAGECONTENT RETURN 0 END --DUYET NHAP MOI VA XUAT SU DUNG CUNG LUC IF @p_TYPE = 'ASS_ADDNEW_SearchResult' BEGIN SET @CODE = (SELECT STUFF((SELECT '; ' + DTA.PO_CODE FROM ASS_ADDNEW_PO DTA WHERE DTA.ADDNEW_ID = @p_ID FOR XML PATH('') ),1,1,'') ) SELECT N'[gAMS_Sacombank] Thông báo xuất kho được duyệt' AS TITLE, N'Dear All' + N',

Tài sản thuộc PO: ' + @CODE + N' đã được xuất sử dụng.' + @footer AS MESSAGECONTENT RETURN 0 END -- NOI DUNG GUI EMAIL IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_SEND_APR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ xác nhận phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ xác nhận.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_CONFIRM' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ phê duyệt phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ phê duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_APR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND REQ_PAY_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TGD','HDQT')))) BEGIN SELECT @TILTER_MAIL+N' Thông báo chờ phê duyệt phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ bạn phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đề nghị tạm ứng.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đề nghị tạm ứng.' + +@footer AS MESSAGECONTENT RETURN 0 END ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND REQ_PAY_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKTGD')))) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD'))) BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N'

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ bạn:'+ N'

A- Điều phối cho nhân viên xử lý (Sử dụng màn hình Điều phối tạm ứng / thanh toán, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).'+ N',

B- Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối (Sử dụng Màn hình Quản lý thanh toán/ tạm ứng, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).' + ISNULL(@LINK_UAT,'') + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí TGĐ' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Tổng Giám Đốc sau khi phê duyệt thành công.' + @footer AS MESSAGECONTENT RETURN 0 END END -- NEU BUOC XU LY HIEN TAI CHO THU KI HOI DONG QUAN TRI ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND REQ_PAY_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKHDQT')))) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT'))) BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ bạn:'+ N'

A- Điều phối cho nhân viên xử lý (Sử dụng màn hình Điều phối tạm ứng / thanh toán, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).'+ N',

B- Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối ( Sử dụng Màn hình Phiếu đề nghị tạm ứng, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).' + ISNULL(@LINK_UAT,'') + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí HĐQT' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Hội Đồng Quán Trị sau khi phê duyệt thành công.' + @footer AS MESSAGECONTENT RETURN 0 END END -- ELSE BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND AUTH_STATUS ='A')) BEGIN SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát viên điều phối phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ kiểm soát viên điều phối cho giao dịch viên.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT N'[PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS] Thông báo chờ phê duyệt phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ phê duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END END RETURN 0 END -- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_SEND_APR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát phê duyệt phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ kiểm soát viên phê duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END -- KSV PHÊ DUYỆT XONG THÔNG BÁO CHO NGƯỜI TẠO VÀ GIAO DỊCH VIÊN -- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_APPR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo phiếu tạm ứng đã được kiểm soát viên phê duyệt' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đã được kiểm soát viên phê duyệt .' + @footer AS MESSAGECONTENT RETURN 0 END --------- PHIẾU ĐỀ NGHỊ THANH TOÁN --------------------------------- ------------------------------------------------------------------------- IF @p_TYPE = 'TR_REQ_PAYMENT_SEND_APR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N' Thông báo chờ xác nhận phiếu đề nghị thanh toán' AS TITLE, N'Dear All' + N',

Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ xác nhận.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'TR_REQ_PAYMENT_CONFIRM' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N' Thông báo chờ phê duyệt phiếu đề nghị thanh toán' AS TITLE, N'Dear All' + N',

Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ phê duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'TR_REQ_PAYMENT_APR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát viên điều phối phiếu đề nghị thanh toán' AS TITLE, N'Dear All' + N',

Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ kiểm soát viên điều phối cho giao dịch viên.' + @footer AS MESSAGECONTENT RETURN 0 END -- KSV DIEU PHOI TAM UNG CHO GDV IF @p_TYPE = 'TR_REQ_TRANSFER' BEGIN IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID))) BEGIN SET @CODE = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên xử lý hạch toán phiếu đề nghị thanh toán' AS TITLE, N'Dear All' + N',

Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ giao dịch viên xử lý hạch toán.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) AND STATUS ='C' AND ROLE_USER IN ('TKTGD'))) BEGIN SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên cập nhật ý kiến tại văn phòng Tổng Giám Đốc' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ nhân viên tại văn phòng Tổng Giám Đốc xác nhận nội dung.' + @footer AS MESSAGECONTENT END ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) AND STATUS ='C' AND ROLE_USER IN ('TKHDQT'))) BEGIN SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên cập nhật ý kiến tại văn phòng Hội Đồng Quản Trí' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ nhân viên tại văn phòng Hội Đồng Quản Trị xác nhận nội dung.' + @footer AS MESSAGECONTENT END ELSE BEGIN SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên xử lý hạch toán phiếu đề nghị tạm ứng' AS TITLE, N'Dear All' + N',

Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ giao dịch viên xử lý hạch toán.' + @footer AS MESSAGECONTENT END RETURN 0 END END -- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN IF @p_TYPE = 'TR_REQ_PAYMENT_KT_SEND_APR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát phê duyệt phiếu đề nghị thanh toán' AS TITLE, N'Dear All' + N',

Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ kiểm soát viên phê duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END -- KSV PHÊ DUYỆT XONG THÔNG BÁO CHO NGƯỜI TẠO VÀ GIAO DỊCH VIÊN -- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN IF @p_TYPE = 'TR_REQ_PAYMENT_KT_APR' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo phiếu thanh toán đã được kiểm soát viên phê duyệt' AS TITLE, N'Dear All' + N',

Phiếu đề nghị thanh toán số : ' + @CODE + N' đã được kiểm soát viên phê duyệt .' + @footer AS MESSAGECONTENT RETURN 0 END ---------- TO TRINH CHU TRUONG IF (@p_TYPE = 'PL_SEND_APP' OR @p_TYPE ='PL_REQUEST_DOC_App' OR @p_TYPE ='REQ_PROCESS_CHILD_Upd' OR @p_TYPE ='REQ_PROCESS_CHILD_App') BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('TGD','HDQT'))) BEGIN SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần phê duyệt' AS TITLE, N'Dear All' + N',

Tờ trình chủ trương số : ' + @CODE + N' đang chờ bạn phê duyệt .' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN ---- SETUP MAIL THU KI IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKTGD')))) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD'))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình chủ trương' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' + N'

Màn hình: Quản lý kế hoạch / Điều phối công việc'+ @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí TGĐ ' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Tổng Giám Đốc sau khi phê duyệt thành công.' + N'

Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM/DVDC'+ + @footer AS MESSAGECONTENT RETURN 0 END END -- NEU BUOC XU LY HIEN TAI CHO THU KI HOI DONG QUAN TRI ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKHDQT')))) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT'))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' + CHAR(10) + N'Màn hình: Quản lý kế hoạch / Điều phối công việc'+ @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí HĐQT' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Hội Đồng Quán Trị sau khi phê duyệt thành công.' + N'

Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM/DVDC' + @footer AS MESSAGECONTENT RETURN 0 END END ---- END SETUP MAIL THU KI --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần phê duyệt' AS TITLE, N'Dear All' + N',

Tờ trình chủ trương : ' + @CODE + N' đang chờ bạn phê duyệt . ' + @footer AS MESSAGECONTENT END RETURN 0 END IF ( @p_TYPE ='PL_REQ_PROCESS_CHILD_Ins') BEGIN SET @CODE = (select STUFF( (select '; ' + DTA.REQ_CODE FROM PL_REQUEST_DOC DTA WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần xử lý' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đang chờ bạn xử lý . Vui lòng vào màn Quản lý kế hoạch / Tờ trình chủ trương DVCM - DVDC, tìm kiếm phiếu và xử lý' + @footer AS MESSAGECONTENT RETURN 0 END ELSE IF(@p_TYPE='REQUEST_DOC_PROCESS_Approve') BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('TGD','HDQT'))) BEGIN SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần phê duyệt' AS TITLE, N'Dear All' + N',

Tờ trình chủ trương số : ' + @CODE + N' đang chờ bạn phê duyệt .' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN ---- SETUP MAIL THU KI IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKTGD')))) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD'))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình chủ trương' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' + N'

Sử dụng Màn hình: Quản lý kế hoạch / Điều phối công việc'+ ISNULL(@LINK_UAT,'') + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí TGĐ' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Tổng Giám Đốc sau khi phê duyệt thành công.' +N'

Sử dụng Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM - DVDC'+ ISNULL(@LINK_UAT,'') + @footer AS MESSAGECONTENT RETURN 0 END END -- NEU BUOC XU LY HIEN TAI CHO THU KI HOI DONG QUAN TRI ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKHDQT')))) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT'))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' + CHAR(10) + N'

Sử dụng Màn hình: Quản lý kế hoạch / Điều phối công việc'+ISNULL(@LINK_UAT,'') + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí HĐQT' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Hội Đồng Quán Trị sau khi phê duyệt thành công.' +N'

Sử dụng Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM - DVDC'+ ISNULL(@LINK_UAT,'') + @footer AS MESSAGECONTENT RETURN 0 END END ---- END SETUP MAIL THU KI IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID <> 'APPROVE')) BEGIN SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần được phê duyệt' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đang chờ bạn phê duyệt .' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN ----SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT N'[ PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS] Thông báo tờ trình chủ trương đã được phê duyệt hoàn tất' AS TITLE, N'Dear All' + N',

Tờ trình số : ' + @CODE + N' đã được phê duyệt hoàn tất và phát sinh phiếu yêu cầu mua sắm .' + @footer AS MESSAGECONTENT END END RETURN 0 END ---- PHIEU YEU CAU MUA SAM IF(@p_TYPE = 'TR_REQUEST_DOC_SendApp' OR @p_TYPE ='TR_REQUEST_DOC_App' OR @p_TYPE ='TR_REQ_PROCESS_CHILD_App' OR @p_TYPE ='TR_REQ_PROCESS_CHILD_Upd' OR @p_TYPE='TR_REQ_PROCESS_CHILD_App') BEGIN -- KIỂM TRA BƯỚC XỬ LÝ HIỆN TẠI NẾU LÀ TỔNG GIÁM ĐỐC THÌ CHÈN ĐƯỜNG LINK CORE MỚI SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('TGD','HDQT'))) BEGIN SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE, N'Dear All' + N',

Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn phê duyệt .' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' + @footer AS MESSAGECONTENT END ELSE BEGIN SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE, N'Dear All' + N',

Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn phê duyệt .' + @footer AS MESSAGECONTENT END RETURN 0 END IF ( @p_TYPE ='TR_REQ_PROCESS_CHILD_Ins') BEGIN SET @CODE = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')) SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần xử lý' AS TITLE, N'Dear All' + N',

Phiếu yêu cầu mua sắm số : ' + @CODE + N' đang chờ bạn xử lý .' + @footer AS MESSAGECONTENT RETURN 0 END IF(@p_TYPE='TR_REQUEST_DOC_PROCESS_Approve') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT N'[ PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS] Thông báo phiếu yêu cầu mua sắm đã được phê duyệt hoàn tất' AS TITLE, N'Dear All' + N',

Phiếu yêu cầu mua sắm số : ' + @CODE + N' đã được phê duyệt hoàn tất và phát sinh PO .' + @footer AS MESSAGECONTENT END ------datmq 7/1/2022: Quản lý cho thuê------------------------ -----Quản lý trụ sở - gửi YC phê duyệt-------- IF(@p_TYPE = 'BUD_MASTER_SEND_APPROVE') BEGIN SET @CODE = (SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo trụ sở cần phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin trụ sở: ' + @CODE+ N' đang chờ bạn phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' + @footer AS MESSAGECONTENT END -----Quản lý trụ sở - cấp phê duyệt trung gian đã xác nhận-------- IF(@p_TYPE = 'BUD_MASTER_CONFIRM') BEGIN SET @CODE = (SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo trụ sở cần phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin trụ sở: ' +@CODE + N' đã được xác nhận và đang chờ bạn phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' + @footer AS MESSAGECONTENT END -----Quản lý trụ sở - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'BUD_MASTER_APPROVED') BEGIN SET @CODE = (SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo trụ sở đã được phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin trụ sở: ' +@CODE+ N' đã được trưởng đơn vị phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END ------BAODNQ 4/1/2022: Quản lý cho thuê------------------------ -----Khai báo DTSD nội bộ - gửi YC phê duyệt-------- IF(@p_TYPE = 'BUD_CONTRACT_MASTER_SEND_APPROVE') BEGIN SELECT @TILTER_MAIL+N' Thông báo hợp đồng sử dụng DT nội bộ cần phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin hợp đồng DTSD nội bộ đang chờ bạn phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' + @footer AS MESSAGECONTENT END -----Khai báo DTSD nội bộ - cấp phê duyệt trung gian đã xác nhận-------- IF(@p_TYPE = 'BUD_CONTRACT_MASTER_CONFIRM') BEGIN SELECT @TILTER_MAIL+N' Thông báo hợp đồng sử dụng DT nội bộ cần phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin hợp đồng DTSD nội bộ đã được xác nhận và đang chờ bạn phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' + @footer AS MESSAGECONTENT END -----Khai báo DTSD nội bộ - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'BUD_CONTRACT_MASTER_APPROVED') BEGIN SELECT @TILTER_MAIL+N' Thông báo hợp đồng sử dụng DT nội bộ đã được phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin hợp đồng DTSD nội bộ đã được trưởng đơn vị phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----Quản lý hợp đồng khách thuê - gửi YC phê duyệt-------- IF(@p_TYPE = 'BUD_CONTRACT_CUST_MASTER_SEND_APPROVE') BEGIN SET @CODE = (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo hợp đồng khách thuê trụ sở cần phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đang chờ bạn phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' + @footer AS MESSAGECONTENT END -----Quản lý hợp đồng khách thuê - cấp phê duyệt trung gian đã xác nhận-------- IF(@p_TYPE = 'BUD_CONTRACT_CUST_MASTER_CONFIRM') BEGIN SET @CODE = (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo hợp đồng khách thuê trụ sở cần phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đã được xác nhận và đang chờ bạn phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' + @footer AS MESSAGECONTENT END -----Quản lý hợp đồng khách thuê - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'BUD_CONTRACT_CUST_MASTER_APPROVED') BEGIN SET @CODE = (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo hợp đồng khách thuê trụ sở đã được phê duyệt' AS TITLE, N'Dear All' + N',

Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đã được phê duyệt.' + --+ --N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.' N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----PhongNT 9/2/2022:Xuất sử dụng tài sản -HCQT-------- IF(@p_TYPE = 'ASS_USE_MULTI_BVB_MASTER') BEGIN SELECT @TILTER_MAIL+N'Thông báo xuất sử dụng tài sản cần phê duyệt' AS TITLE, N'Dear All' + N',

Bạn có giao dịch xuất sử dụng tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----Điều chuyển tài sản - HCQT-------- IF(@p_TYPE = 'ASS_TRANSFER_MULTI_APP') BEGIN SELECT @TILTER_MAIL+N'Thông báo điều chuyển tài sản cần phê duyệt' AS TITLE, N'Dear All' + N',

Bạn có giao dịch điều chuyển tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----Thu hồi tài sản - HCQT-------- IF(@p_TYPE = 'ASS_COLLECT_MULTI_HCQT_APP') BEGIN SELECT @TILTER_MAIL+N'Thông báo thu hồi tài sản cần phê duyệt' AS TITLE, N'Dear All' + N',

Bạn có giao dịch thu hồi tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----Thu hồi tài sản - HCQT-------- IF(@p_TYPE = 'ASS_COLLECT_MULTI_HCQT_APP') BEGIN SELECT @TILTER_MAIL+N'Thông báo thu hồi tài sản cần phê duyệt' AS TITLE, N'Dear All' + N',

Bạn có giao dịch thu hồi tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----Thanh lý tài sản - HC-------- IF(@p_TYPE = 'ASS_LIQ_BVB_HC_APP') BEGIN SELECT @TILTER_MAIL+N'Thông báo thanh lý tài sản cần phê duyệt' AS TITLE, N'Dear All' + N',

Bạn có giao dịch thanh lý tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CON_REQUEST_DOC_ViewDetail]' GO ALTER PROC [dbo].[CON_REQUEST_DOC_ViewDetail] @p_CONST_ID varchar(15) AS --DECLARE @sErrorCode VARCHAR(20) = '' --IF NOT EXISTS(SELECT * FROM CAR_MASTER A WHERE A.CAR_ID = @p_CAR_ID OR N_PLATE=@p_N_PLATE) --BEGIN -- SET @sErrorCode = 'CAR-00001' --END --IF @sErrorCode <> '' --BEGIN -- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode -- RETURN '-1' --END BEGIN TRANSACTION declare @p_REQ_ID VARCHAR(15) = (SELECT TOP 1 REQUEST_ID FROM CON_MASTER WHERE CONSTRUCT_ID = @p_CONST_ID) -- THONG TIN VE CONG TRINH SELECT TOP 1 * FROM CON_MASTER WHERE CONSTRUCT_ID = @p_CONST_ID -- THONG TIN VE TO TRINH SELECT * FROM CON_REQUEST_DOC WHERE REQUEST_PARENT = @p_REQ_ID -- CHI PHI SUA CHUA SELECT * FROM BID_MASTER_VIEW WHERE REQUEST_ID = @p_REQ_ID -- THONG TIN THAU SELECT * FROM BID_CONTRACTOR_DT C WHERE REQUEST_ID = @p_REQ_ID -- DANH SACH HO SO THI CONG SELECT C.* FROM TR_CONTRACT C WHERE REQUEST_ID = @p_REQ_ID -- CAC DOT THANH TOAN SELECT CP.* FROM TR_CONTRACT_PAYMENT CP WHERE REQUEST_ID = @p_REQ_ID -- DANH SACH CHI TIET PHAT SINH TANG GIAM SELECT * FROM CON_BID_CONTRACTOR_DT_ARISE WHERE REQ_ID = @p_REQ_ID -- DANH SÁCH HÀNG HÓA SELECT *, B.SUP_NAME FROM CON_REQUEST_HH_DT A LEFT JOIN CM_SUPPLIER B ON A.SUP_ID = B.SUP_ID WHERE CONSTRUCT_ID = @p_CONST_ID -- ĐANH GIÁ NĂNG LỰC NHÀ THẦU SELECT * FROM CON_REQUEST_REVIEW_DT WHERE CONSTRUCT_ID = @p_CONST_ID -- TIẾN ĐỘ CÔNG TRÌNH SELECT * FROM CON_REQUEST_PROCESS_DT WHERE CONSTRUCT_ID = @p_CONST_ID COMMIT TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering permissions on [dbo].[sp_generate_inserts]' GO GRANT EXECUTE ON [dbo].[sp_generate_inserts] TO [public] GO IF @@ERROR <> 0 SET NOEXEC ON GO COMMIT TRANSACTION GO IF @@ERROR <> 0 SET NOEXEC ON GO -- This statement writes to the SQL Server Log so SQL Monitor can show this deployment. IF HAS_PERMS_BY_NAME(N'sys.xp_logevent', N'OBJECT', N'EXECUTE') = 1 BEGIN DECLARE @databaseName AS nvarchar(2048), @eventMessage AS nvarchar(2048) SET @databaseName = REPLACE(REPLACE(DB_NAME(), N'\', N'\\'), N'"', N'\"') SET @eventMessage = N'Redgate SQL Compare: { "deployment": { "description": "Redgate SQL Compare deployed to ' + @databaseName + N'", "database": "' + @databaseName + N'" }}' EXECUTE sys.xp_logevent 55000, @eventMessage END GO DECLARE @Success AS BIT SET @Success = 1 SET NOEXEC OFF IF (@Success = 1) PRINT 'The database update succeeded' ELSE BEGIN IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION PRINT 'The database update failed' END GO