IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_AUTO_Upd]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_Upd] @p_REQ_PAY_AUTO_ID VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_CODE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_DT VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_TYPE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_STATUS VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20)= NULL, @p_BRANCH_ID VARCHAR(20)= NULL, @p_DEP_ID VARCHAR(20)= NULL, @p_BRANCH_CREATE VARCHAR(20)= NULL, @p_TRANSFER_USER_RECEIVE VARCHAR(20)= NULL, @p_CONFIRM_NOTE VARCHAR(20)= NULL, @p_CONTRACT_ID VARCHAR(20)= NULL, @p_PROCESS VARCHAR(20)= NULL, @p_TRANSFER_MAKER VARCHAR(20)= NULL, @p_TRANSFER_DT VARCHAR(20)= NULL, @p_MAKER_ID VARCHAR(20)= NULL, @p_CREATE_DT VARCHAR(20)= NULL, @p_EDITOR_ID VARCHAR(20)= NULL, @p_EDIT_DT VARCHAR(20)= NULL, @p_CHECKER_ID VARCHAR(20)= NULL, @p_APPROVE_DT VARCHAR(20)= NULL, @p_AUTH_STATUS VARCHAR(20)= NULL, @p_MAKER_ID_KT VARCHAR(20)= NULL, @p_CREATE_DT_KT VARCHAR(20)= NULL, @p_CHECKER_ID_KT VARCHAR(20)= NULL, @p_APPROVE_DT_KT VARCHAR(20)= NULL, @p_AUTH_STATUS_KT VARCHAR(20)= NULL, @p_RECORD_STATUS VARCHAR(20)= NULL, @p_FRMDATE VARCHAR(20)= NULL, @p_TODATE VARCHAR(20)= NULL, @p_LEVEL VARCHAR(20)= NULL, @p_USER_LOGIN VARCHAR(20)= NULL, @p_IS_SEND_APPR VARCHAR(20)= NULL, @p_TYPE_SEARCH VARCHAR(20)= NULL, @p_BRANCH_LOGIN VARCHAR(20)= NULL, @p_NOTIFI_EXPIRED_DT VARCHAR(20)= NULL, @p_IS_MAKER_CONFIRM_CHECKBOX VARCHAR(20)= NULL, @p_XMP_SCHEDULE XML = NULL, @p_XMP_SCHEDULE_DETAIL XML = NULL, @p_XMP_RECURRING XML = NULL, @p_XMP_BUDGET_ALLOCATION XML = NULL, @p_XMP_METHOD XML = NULL AS -- BEGIN VALIDATE MASTER IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(MAKER_ID, '') <> @p_USER_LOGIN AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Chỉnh sửa phiếu thất bại! Chỉ người tạo phiếu mới có quyền chỉnh sửa phiếu' ErrorDesc RETURN '-1' END IF(ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '' OR ISNULL(@p_MAKER_ID, '') = '' OR ISNULL(@p_BRANCH_ID, '') = '' OR ISNULL(@p_DEP_ID, '') = '' OR ISNULL(@p_REQ_PAY_AUTO_SERVICE_TYPE, '') = '') BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Các thông tin sau không được để trống: loại thanh toán tự động, người tạo yêu cầu, đơn vị tạo yêu cầu, phòng ban tạo yêu cầu, loại dịch vụ thanh toán' ErrorDesc RETURN '-1' END IF(ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '' OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '') BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Mã số phiếu không được đế trống' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID <> @p_REQ_PAY_AUTO_ID AND CONTRACT_ID = @p_CONTRACT_ID AND AUTH_STATUS NOT IN ('E', 'R', 'D') AND REQ_PAY_AUTO_TYPE = 'A')) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Số hợp đồng(ID hệ thống) ' + @p_CONTRACT_ID + N' đang được đề nghị thanh toán tự động trong hệ thống' ErrorDesc RETURN '-1' END IF(@p_IS_SEND_APPR ='SEND') BEGIN IF(ISNULL(@p_CONTRACT_ID, '') = '') BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Số hợp đồng(ID hệ thống) không được đế trống' ErrorDesc RETURN '-1' END END -- END VALIDATE MASTER -- BEGIN VALIDATE FLOW IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS = 'A' AND REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Phê duyệt thất bại! Phiếu yêu cầu thanh toán tự động đã được trưởng đơn vị phê duyệt trước đó' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS_KT = 'A' AND REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Phê duyệt thất bại! Phiếu yêu cầu thanh toán tự động đã được kiểm sát viên phê duyệt' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') <> '' AND REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động đã được gửi phê duyệt trước đó' ErrorDesc RETURN '-1' END -- END VALIDATE FLOW BEGIN TRANSACTION DECLARE @BRANCH_MANAGE_ID VARCHAR(20) SET @BRANCH_MANAGE_ID = ISNULL((SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @p_CONTRACT_ID), ''); UPDATE TR_REQ_PAYMENT_AUTO SET REQ_PAY_AUTO_SERVICE_TYPE = @p_REQ_PAY_AUTO_SERVICE_TYPE, AUTH_STATUS = 'E', CREATE_DT = GETDATE(), TRANSFER_USER_RECEIVE = @p_TRANSFER_USER_RECEIVE, CONTRACT_ID = @p_CONTRACT_ID, NOTIFI_EXPIRED_DT = CONVERT(DATE, @p_NOTIFI_EXPIRED_DT, 103), IS_MAKER_CONFIRM = @p_IS_MAKER_CONFIRM_CHECKBOX, IS_MAKER_CONFIRM_CHECKBOX = @p_IS_MAKER_CONFIRM_CHECKBOX, BRANCH_MANAGE_ID = @BRANCH_MANAGE_ID WHERE 1 = 1 AND REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID IF @@Error <> 0 GOTO ABORT --- INSERT LICH THANH TOAN DELETE FROM TR_REQ_PAY_AUTO_SCHEDULE WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID DECLARE @hDocSchedule INT EXEC sp_xml_preparedocument @hDocSchedule OUTPUT, @p_XMP_SCHEDULE; IF(@p_IS_SEND_APPR ='SEND') BEGIN IF(@p_REQ_PAY_AUTO_TYPE = 'A' AND NOT EXISTS(SELECT * FROM OPENXML(@hDocSchedule, '/Root/XmlDataSchedule', 2) WITH(REQ_PAY_AUTO_ID varchar(20)))) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách thông tin định kỳ thanh toán không được phép để trống' ErrorDesc RETURN '-1' END END DECLARE @REQ_PAY_AUTO_SCHEDULE_ID VARCHAR(20), @CONTRACT_ID VARCHAR(20), @TYPE_PERIOD VARCHAR(20), @START_DT VARCHAR(20), @END_DT VARCHAR(20), @PERIOD_AMT DECIMAL(18,2), @PERIOD_NUMBER DECIMAL(18,2), @PERIOD_PAY_DT VARCHAR(20), @PERIOD_PAY_DAY DECIMAL(18,0) DECLARE XmlDataSchedule CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDocSchedule, 'Root/XmlDataSchedule',2) WITH(REQ_PAY_AUTO_CONTRACT_ID VARCHAR(20), CONTRACT_ID VARCHAR(20), TYPE_PERIOD VARCHAR(20), START_DT VARCHAR(20), END_DT VARCHAR(20), PERIOD_AMT DECIMAL(18,2), PERIOD_NUMBER DECIMAL(18,2), PERIOD_PAY_DT VARCHAR(20), PERIOD_PAY_DAY DECIMAL(18,0)) OPEN XmlDataSchedule DECLARE @INDEX_SCHEDULE INT = 0; FETCH NEXT FROM XmlDataSchedule INTO @REQ_PAY_AUTO_SCHEDULE_ID, @CONTRACT_ID, @TYPE_PERIOD, @START_DT, @END_DT, @PERIOD_AMT, @PERIOD_NUMBER , @PERIOD_PAY_DT, @PERIOD_PAY_DAY WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_IS_SEND_APPR ='SEND') BEGIN SET @INDEX_SCHEDULE = @INDEX_SCHEDULE + 1 IF(@TYPE_PERIOD IS NULL OR @TYPE_PERIOD = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin định kỳ thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Định kỳ không được để trống' ErrorDesc RETURN '-1' END IF(@START_DT IS NULL OR @START_DT = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin định kỳ thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Ngày bắt đầu không được để trống' ErrorDesc RETURN '-1' END IF(@END_DT IS NULL OR @END_DT = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin định kỳ thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Ngày kết thúc không được để trống' ErrorDesc RETURN '-1' END IF(@PERIOD_AMT IS NULL OR @PERIOD_AMT < 0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin định kỳ thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Số tiền định kỳ thanh toán không được để trống hoặc bé hơn 0' ErrorDesc RETURN '-1' END IF(@PERIOD_PAY_DAY IS NULL OR @PERIOD_PAY_DAY < 0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin định kỳ thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Ngày thanh toán định kỳ không được để trống' ErrorDesc RETURN '-1' END IF(CONVERT(DATE, @START_DT, 103) > CONVERT(DATE, @END_DT, 103)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin định kỳ thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Ngày bắt đầu phải bé hơn ngày kết thúc' ErrorDesc RETURN '-1' END END EXEC SYS_CodeMasters_Gen 'REQ_PAY_AUTO_SCHEDULE_ID', @REQ_PAY_AUTO_SCHEDULE_ID OUT; IF @REQ_PAY_AUTO_SCHEDULE_ID='' OR @REQ_PAY_AUTO_SCHEDULE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_SCHEDULE(REQ_PAY_AUTO_SCHEDULE_ID, REQ_PAY_AUTO_ID, CONTRACT_ID, TYPE_PERIOD, START_DT, END_DT, PERIOD_AMT, PERIOD_NUMBER, PERIOD_PAY_DT, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AUTH_STATUS, RECORD_STATUS, PERIOD_PAY_DAY) VALUES (@REQ_PAY_AUTO_SCHEDULE_ID, @p_REQ_PAY_AUTO_ID, @CONTRACT_ID, @TYPE_PERIOD, CONVERT(DATE,@START_DT,103), CONVERT(DATE,@END_DT,103), @PERIOD_AMT, @PERIOD_NUMBER, CONVERT(DATE,@PERIOD_PAY_DT,103), @p_MAKER_ID, GETDATE(), NULL, NULL, 'A', '1', @PERIOD_PAY_DAY) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataSchedule INTO @REQ_PAY_AUTO_SCHEDULE_ID, @CONTRACT_ID, @TYPE_PERIOD, @START_DT, @END_DT, @PERIOD_AMT, @PERIOD_NUMBER , @PERIOD_PAY_DT, @PERIOD_PAY_DAY END CLOSE XmlDataSchedule; DEALLOCATE XmlDataSchedule; --- INSERT CHI TIET LICH THANH TOAN DELETE FROM TR_REQ_PAY_AUTO_SCHEDULE_DETAIL WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID --AND PAY_AUTO_STATUS <> 'Y' DECLARE @hDocScheduleDetail INT EXEC sp_xml_preparedocument @hDocScheduleDetail OUTPUT, @p_XMP_SCHEDULE_DETAIL; IF(@p_IS_SEND_APPR ='SEND') BEGIN IF(@p_REQ_PAY_AUTO_TYPE = 'A' AND NOT EXISTS(SELECT * FROM OPENXML(@hDocScheduleDetail, '/Root/XmlDataScheduleDetail', 2) WITH(REQ_PAY_AUTO_ID varchar(20)))) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách lịch thanh toán chi tiết không được phép để trống' ErrorDesc RETURN '-1' END END DECLARE @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID VARCHAR(20), @EXPECTED_DT VARCHAR(20), @PAY_AUTO_AMT DECIMAL(18,2), @PAY_AUTO_DESC NVARCHAR(1000), @PAY_AUTO_STATUS VARCHAR(20), @EXACT_DT VARCHAR(20), @END_PERIOD_DT VARCHAR(20), @NOTES NVARCHAR(1000) DECLARE XmlDataScheduleDetail CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDocScheduleDetail, 'Root/XmlDataScheduleDetail',2) WITH(REQ_PAY_AUTO_SCHEDULE_DETAIL_ID VARCHAR(20),REQ_PAY_AUTO_SCHEDULE_ID VARCHAR(20),EXPECTED_DT VARCHAR(20),PAY_AUTO_AMT DECIMAL(18,2),PAY_AUTO_DESC NVARCHAR(1000),PAY_AUTO_STATUS VARCHAR(20), EXACT_DT VARCHAR(20), START_DT VARCHAR(20), END_DT VARCHAR(20), TYPE_PERIOD VARCHAR(20), END_PERIOD_DT VARCHAR(20), NOTES NVARCHAR(255)) OPEN XmlDataScheduleDetail DECLARE @INDEX_SCHEDULE_DETAIL INT = 0 FETCH NEXT FROM XmlDataScheduleDetail INTO @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, @REQ_PAY_AUTO_SCHEDULE_ID, @EXPECTED_DT, @PAY_AUTO_AMT, @PAY_AUTO_DESC, @PAY_AUTO_STATUS, @EXACT_DT, @START_DT, @END_DT, @TYPE_PERIOD, @END_PERIOD_DT, @NOTES WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_IS_SEND_APPR ='SEND') BEGIN SET @INDEX_SCHEDULE_DETAIL = @INDEX_SCHEDULE_DETAIL + 1 IF(@EXPECTED_DT IS NULL OR @EXPECTED_DT = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lịch thanh toán chi tiết, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Ngày dự kiến thanh toán không được để trống' ErrorDesc RETURN '-1' END IF(@PAY_AUTO_AMT IS NULL OR @PAY_AUTO_AMT < 0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lịch thanh toán chi tiết, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Số tiền thanh toán không được để trống' ErrorDesc RETURN '-1' END /* IF(@PAY_AUTO_DESC IS NULL OR @PAY_AUTO_DESC = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin định kỳ thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Nội dung thanh toán không được để trống' ErrorDesc RETURN '-1' END */ IF(@PAY_AUTO_STATUS IS NULL OR @PAY_AUTO_STATUS = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lịch thanh toán chi tiết, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Tình trạng không được để trống' ErrorDesc RETURN '-1' END IF(ISNULL(@PAY_AUTO_STATUS, '') = 'Y') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lịch thanh toán chi tiết, dòng ' + CONVERT(VARCHAR(5),@INDEX_SCHEDULE)+N': Bạn không được chỉnh sửa kỳ đã được thanh toán' ErrorDesc RETURN '-1' END END EXEC SYS_CodeMasters_Gen 'REQ_PAY_AUTO_SCHEDULE_DETAIL_ID', @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID OUT; IF @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID='' OR @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_SCHEDULE_DETAIL(REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, REQ_PAY_AUTO_SCHEDULE_ID, REQ_PAY_AUTO_ID, EXPECTED_DT, PAY_AUTO_AMT, PAY_AUTO_DESC, PAY_AUTO_STATUS, EXACT_DT, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AUTH_STATUS, RECORD_STATUS, START_DT, END_DT, TYPE_PERIOD, END_PERIOD_DT, NOTES) VALUES (@REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, @REQ_PAY_AUTO_SCHEDULE_ID, @p_REQ_PAY_AUTO_ID, CONVERT(DATE,@EXPECTED_DT,103), @PAY_AUTO_AMT, @PAY_AUTO_DESC, @PAY_AUTO_STATUS, CONVERT(DATE,@EXACT_DT,103), @p_MAKER_ID, GETDATE(), NULL, NULL, 'A', '1', CONVERT(DATE,@START_DT,103), CONVERT(DATE,@END_DT,103), @TYPE_PERIOD, CONVERT(DATE,@END_PERIOD_DT,103), @NOTES) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataScheduleDetail INTO @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, @REQ_PAY_AUTO_SCHEDULE_ID, @EXPECTED_DT, @PAY_AUTO_AMT, @PAY_AUTO_DESC, @PAY_AUTO_STATUS, @EXACT_DT, @START_DT, @END_DT, @TYPE_PERIOD, @END_PERIOD_DT, @NOTES END CLOSE XmlDataScheduleDetail; DEALLOCATE XmlDataScheduleDetail; --- INSERT PHUONG THUC THANH TOAN DELETE FROM TR_REQ_PAY_AUTO_METHOD WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID print '121223' DECLARE @hDocMeThod INT EXEC sp_xml_preparedocument @hDocMeThod OUTPUT, @p_XMP_METHOD; IF(@p_IS_SEND_APPR ='SEND') BEGIN IF(@p_REQ_PAY_AUTO_TYPE = 'A' AND NOT EXISTS(SELECT * FROM OPENXML(@hDocMeThod, '/Root/XmlDataMethod', 2) WITH(REQ_PAY_AUTO_ID varchar(20)))) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách phương thức thanh toán không được phép để trống' ErrorDesc RETURN '-1' END END DECLARE @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), @BANKCODE_NAPAS VARCHAR(20), @BANKCODE VARCHAR(20), @BANKNAME VARCHAR(250), @SUB_ISSUED_BY NVARCHAR(250), @RECEIVER_DEBIT VARCHAR(20) 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), BANKCODE_NAPAS VARCHAR(20), BANKCODE VARCHAR(20), BANKNAME VARCHAR(250), SUB_ISSUED_BY NVARCHAR(250), RECEIVER_DEBIT VARCHAR(20)) OPEN XmlDataMethod DECLARE @INDEX_METHOD INT = 0 FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT,@REQ_PAY_TYPE, @REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT WHILE @@fetch_status=0 BEGIN -- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE IF(@p_IS_SEND_APPR ='SEND') BEGIN SET @INDEX_METHOD = @INDEX_METHOD + 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_METHOD)+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_METHOD)+N': Ngày cấp CMND '+ N' không được để trống nếu phương thức thanh toán là bằng tiền mặt' ErrorDesc RETURN '-1' END IF(@TOTAL_AMT IS NULL OR @TOTAL_AMT < 0) 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_METHOD)+N': Số tiền thanh toán không được để trống hoặc bé hơn 0' ErrorDesc RETURN '-1' END 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 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_AUTO_METHOD(METHOD_ID, REQ_PAY_AUTO_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, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT) VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_AUTO_ID,@RECEIVE_ID,@REQ_PAY_REASON, @TOTAL_AMT,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'',@p_MAKER_ID,GETDATE(),@ACC_NO, @ACC_NAME,@ISSUED_BY,CONVERT(DATE,@ISSUED_DT,103), 'VND' ,'1',@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME,@SUB_ISSUED_BY, @RECEIVER_DEBIT ) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT,@REQ_PAY_TYPE, @REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT END CLOSE XmlDataMethod; DEALLOCATE XmlDataMethod; --- INSERT THÔNG TIN DỊCH VỤ DECLARE @hDocRecurring INT EXEC sp_xml_preparedocument @hDocRecurring OUTPUT, @p_XMP_RECURRING; IF(@p_IS_SEND_APPR = 'SEND') BEGIN IF(@p_REQ_PAY_AUTO_TYPE ='B') BEGIN IF(NOT EXISTS(SELECT * FROM OPENXML(@hDocRecurring, '/Root/XmlDataManufacturer', 2) WITH(REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20)))) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, '' REQ_PAY_ID, N'Lưới Thông tin dịch vụ không được để trống' ErrorDesc RETURN '-1' END END END DECLARE @REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20), @SEVCODE VARCHAR(20), @SEVNAME NVARCHAR(255), @PRVCODE VARCHAR(20), @PRVNAME NVARCHAR(255), @ROUTETO VARCHAR(20), @TRANSACCOUNT VARCHAR(20), @TRANSACCOUNT_NAME VARCHAR(250), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME VARCHAR(250), @RECEIVE_GLCODE VARCHAR(20), @RECEIVE_GLNAME VARCHAR(250), @CUSTOMER_ID VARCHAR(20), @CUSTOMER_CODE VARCHAR(20), @CUSTOMER_NAME NVARCHAR(255), @CUSTOMER_CODE_SYSTEM VARCHAR(20), @CUSTOMER_NAME_SYSTEM NVARCHAR(255), @CUSTOMER_ADDRESS_SYSTEM NVARCHAR(255), @IS_REGISTER VARCHAR(2), @IS_VALID VARCHAR(2), @BILLCODE VARCHAR(50), @BILLALIAS NVARCHAR(255), @BILLID VARCHAR(20), @BILLTIME VARCHAR(20), @IS_CHECKED VARCHAR(1) DECLARE XmlDataRecurring CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDocRecurring, 'Root/XmlDataManufacturer',2) WITH(REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20), SEVCODE VARCHAR(20), SEVNAME NVARCHAR(255), PRVCODE VARCHAR(20), PRVNAME NVARCHAR(255), ROUTETO VARCHAR(20), TRANSACCOUNT VARCHAR(20), TRANSACCOUNT_NAME VARCHAR(250), TRANS_GLCODE VARCHAR(20), TRANS_GLNAME VARCHAR(250), RECEIVE_GLCODE VARCHAR(20), RECEIVE_GLNAME VARCHAR(250), CUSTOMER_ID VARCHAR(20), CUSTOMER_CODE VARCHAR(20), CUSTOMER_NAME NVARCHAR(255), CUSTOMER_CODE_SYSTEM VARCHAR(20), CUSTOMER_NAME_SYSTEM NVARCHAR(255), CUSTOMER_ADDRESS_SYSTEM NVARCHAR(255), IS_REGISTER VARCHAR(2), IS_VALID VARCHAR(2), BILLCODE VARCHAR(50), BILLALIAS NVARCHAR(255), BILLID VARCHAR(20), BILLTIME VARCHAR(20), IS_CHECKED VARCHAR(1)) OPEN XmlDataRecurring DELETE FROM TR_REQ_PAY_AUTO_RECURRING WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID DECLARE @INDEX_AUTO_RECURRING INT = 0 FETCH NEXT FROM XmlDataRecurring INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @SEVCODE, @SEVNAME, @PRVCODE, @PRVNAME, @ROUTETO, @TRANSACCOUNT, @TRANSACCOUNT_NAME, @TRANS_GLCODE, @TRANS_GLNAME, @RECEIVE_GLCODE, @RECEIVE_GLNAME, @CUSTOMER_ID, @CUSTOMER_CODE, @CUSTOMER_NAME, @CUSTOMER_CODE_SYSTEM, @CUSTOMER_NAME_SYSTEM, @CUSTOMER_ADDRESS_SYSTEM, @IS_REGISTER, @IS_VALID, @BILLCODE, @BILLALIAS, @BILLID, @BILLTIME, @IS_CHECKED WHILE @@fetch_status=0 BEGIN -- BEGIN VALIDATE IF(@p_IS_SEND_APPR ='SEND') BEGIN SET @INDEX_AUTO_RECURRING = @INDEX_AUTO_RECURRING + 1 IF(ISNULL(@IS_CHECKED, '') = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin dịch vụ, dòng ' + CONVERT(VARCHAR(5),@INDEX_AUTO_RECURRING)+N', cột kiểm tra thông tin: Chưa nhấn nút kiểm tra thông tin! Bạn cần kiểm tra thông tin trước khi gửi phê duyệt' ErrorDesc RETURN '-1' END IF(ISNULL(@CUSTOMER_CODE_SYSTEM, '') = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin dịch vụ, dòng ' + CONVERT(VARCHAR(5),@INDEX_AUTO_RECURRING)+N', Mã khách hàng tại NCC sai, hoặc quá trình kiểm tra thông tin gặp sự cố! Vui lòng kiểm tra lại mã khách hàng tại NCC trước khi gửi phê duyệt' ErrorDesc RETURN '-1' END IF(ISNULL(@CUSTOMER_CODE_SYSTEM, '') <> ISNULL(@BILLCODE, '')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin dịch vụ, dòng ' + CONVERT(VARCHAR(5),@INDEX_AUTO_RECURRING)+N', Mã khách hàng tại NCC không giống với Mã khách hàng tại NCC(Hệ thống)! Vui lòng kiểm tra lại thông tin trước khi gửi phê duyệt' ErrorDesc RETURN '-1' END IF(ISNULL(@IS_REGISTER, '') = '1') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin dịch vụ, dòng ' + CONVERT(VARCHAR(5),@INDEX_AUTO_RECURRING)+N', Mã khách hàng tại NCC đã được đăng ký thanh toán tự động trước đó.' ErrorDesc RETURN '-1' END END -- END VALIDATE DECLARE @REQ_PAY_AUTO_RECURRING_ID VARCHAR(20) EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_AUTO_RECURRING', @REQ_PAY_AUTO_RECURRING_ID OUT; IF @REQ_PAY_AUTO_RECURRING_ID = '' OR @REQ_PAY_AUTO_RECURRING_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_RECURRING(REQ_PAY_AUTO_RECURRING_ID, REQ_PAY_AUTO_MANUFACTURER_ID, REQ_PAY_AUTO_ID, SEVCODE, SEVNAME, PRVCODE, PRVNAME, ROUTETO, TRANSACCOUNT, TRANSACCOUNT_NAME, TRANS_GLCODE, TRANS_GLNAME, RECEIVE_GLCODE, RECEIVE_GLNAME, CUSTOMER_CODE, CUSTOMER_NAME, CUSTOMER_CODE_SYSTEM, CUSTOMER_NAME_SYSTEM, CUSTOMER_ADDRESS_SYSTEM, IS_REGISTER, IS_VALID, MAKER_ID, CREATE_DT, RECORD_STATUS, BILLCODE, BILLALIAS, BILLID, BILLTIME, IS_CHECKED) VALUES (@REQ_PAY_AUTO_RECURRING_ID, @REQ_PAY_AUTO_MANUFACTURER_ID, @p_REQ_PAY_AUTO_ID, @SEVCODE, @SEVNAME, @PRVCODE, @PRVNAME, @ROUTETO, @TRANSACCOUNT, @TRANSACCOUNT_NAME, @TRANS_GLCODE, @TRANS_GLNAME, @RECEIVE_GLCODE, @RECEIVE_GLNAME, @CUSTOMER_CODE, @CUSTOMER_NAME, @CUSTOMER_CODE_SYSTEM, @CUSTOMER_NAME_SYSTEM, @CUSTOMER_ADDRESS_SYSTEM, @IS_REGISTER, @IS_VALID, @p_MAKER_ID, GETDATE(), '1', @BILLCODE, @BILLALIAS, @BILLID, CONVERT(DATE, @BILLTIME, 103), @IS_CHECKED) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataRecurring INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @SEVCODE, @SEVNAME, @PRVCODE, @PRVNAME, @ROUTETO, @TRANSACCOUNT, @TRANSACCOUNT_NAME, @TRANS_GLCODE, @TRANS_GLNAME, @RECEIVE_GLCODE, @RECEIVE_GLNAME, @CUSTOMER_ID, @CUSTOMER_CODE, @CUSTOMER_NAME, @CUSTOMER_CODE_SYSTEM, @CUSTOMER_NAME_SYSTEM, @CUSTOMER_ADDRESS_SYSTEM, @IS_REGISTER, @IS_VALID, @BILLCODE, @BILLALIAS, @BILLID, @BILLTIME, @IS_CHECKED END CLOSE XmlDataRecurring; DEALLOCATE XmlDataRecurring; --- INSERT PHÂN CHIA DECLARE @hDocBudgetAllocation INT EXEC sp_xml_preparedocument @hDocBudgetAllocation OUTPUT, @p_XMP_BUDGET_ALLOCATION; DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID NVARCHAR(255), @TYPE_BUDGET_ALLOCAITON VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON DECIMAL(18,2) DECLARE XmlDataBudgetAllocation CURSOR FOR SELECT * FROM OPENXML(@hDocBudgetAllocation, 'Root/XmlDataBudgetAllocation',2) WITH(REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20), ACC_NO VARCHAR(20), ACC_NAME NVARCHAR(255), BRANCH_ID VARCHAR(20), DEP_ID NVARCHAR(255), TYPE_BUDGET_ALLOCAITON VARCHAR(20), PERCENT_BUDGET_ALLOCAITON DECIMAL(18,2), AMT_BUDGET_ALLOCAITON DECIMAL(18,2)) OPEN XmlDataBudgetAllocation DELETE FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID FETCH NEXT FROM XmlDataBudgetAllocation INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON WHILE @@fetch_status=0 BEGIN DECLARE @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID VARCHAR(20) EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_AUTO_ALLCOTION', @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID OUT; IF @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID = '' OR @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_BUDGET_ALLOCATION(REQ_PAY_AUTO_BUDGET_ALLOCATION_ID, REQ_PAY_AUTO_MANUFACTURER_ID, REQ_PAY_AUTO_ID, ACC_NO, ACC_NAME, BRANCH_ID, DEP_ID, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON, MAKER_ID, CREATE_DT, RECORD_STATUS) VALUES (@REQ_PAY_AUTO_BUDGET_ALLOCATION_ID, @REQ_PAY_AUTO_MANUFACTURER_ID, @p_REQ_PAY_AUTO_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON, @p_MAKER_ID, GETDATE(), '1') IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataBudgetAllocation INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON END CLOSE XmlDataBudgetAllocation; DEALLOCATE XmlDataBudgetAllocation; COMMIT TRANSACTION IF(@p_IS_SEND_APPR ='SEND') -- KIEM TRA NEU 2 BIEN XML KHAC NULL TUC LA DANG TRONG QUA TRINH LUU NHAP BEGIN UPDATE TR_REQ_PAYMENT_AUTO SET AUTH_STATUS = 'U', PROCESS = '0' WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID -- INSERT VAO PL_PROCESS INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@p_REQ_PAY_AUTO_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Người tạo gửi phê duyệt',N'Gửi phê duyệt cấp đơn vị') IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE (TRANSFER_USER_RECEIVE <> '' AND TRANSFER_USER_RECEIVE IS NOT NULL) AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) BEGIN SELECT '1' as Result, @p_REQ_PAY_AUTO_ID REQ_PAY_ID, N'Đơn vị gửi phiếu yêu cầu thanh toán tự động số: ' + ISNULL(@p_REQ_PAY_AUTO_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 '1' END ELSE BEGIN SELECT '2' as Result, @p_REQ_PAY_AUTO_ID REQ_PAY_ID, N'Đơn vị gửi phiếu yêu cầu thanh toán tự động số: ' + ISNULL(@p_REQ_PAY_AUTO_CODE,'') + N' thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '2' END END SELECT '0' as Result, @p_REQ_PAY_AUTO_ID REQ_PAY_AUTO_ID, @p_REQ_PAY_AUTO_CODE AS REQ_PAY_AUTO_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, N'Lỗi không xác định' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[FN_CHECK_VALIDATE_APP]' GO ALTER FUNCTION [dbo].[FN_CHECK_VALIDATE_APP] ( -- Add the parameters for the function here @REQ_ID VARCHAR(20), @TYPE_VALIDATE VARCHAR(20), @REF_VALIDATE VARCHAR(20), @MAKER_ID VARCHAR(20), @PROCESS_ID VARCHAR(20) ) RETURNS @Results TABLE (ERROR BIT , ERROR_DES NVARCHAR(1000)) AS BEGIN IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@REQ_ID AND PL_BASED_ID IS NOT NULL AND PL_BASED_ID <>'')) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 0, -- ERROR - bit N'' -- ERROR_DES - nvarchar(100) ) RETURN END DECLARE @BRANCH_ID VARCHAR(20),@DEP_ID VARCHAR(20),@BRANCH_TYPE VARCHAR(20),@ROLE_ID VARCHAR(20) DECLARE @LST_DVDM TABLE(DVDM_ID VARCHAR(20)) DECLARE @LST_KHOI TABLE(KHOI_ID VARCHAR(20)) SELECT @BRANCH_ID=TLSUBBRID,@BRANCH_TYPE=BRANCH_TYPE,@DEP_ID=SECUR_CODE,@ROLE_ID=RoleName FROM dbo.TL_USER WHERE TLNANME=@MAKER_ID IF(@ROLE_ID='TC' OR @ROLE_ID='TGD') BEGIN INSERT INTO @LST_DVDM SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD WHERE CD.IS_DVDM=1 INSERT INTO @LST_KHOI SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD WHERE CD.IS_KHOI=1 END ELSE BEGIN INSERT INTO @LST_DVDM SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID=PC.COST_ID WHERE CD.IS_DVDM=1 AND PCDT.DEP_ID=@DEP_ID AND PCDT.BRANCH_ID=@BRANCH_ID INSERT INTO @LST_KHOI SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID=PC.COST_ID WHERE CD.IS_KHOI=1 AND PCDT.DEP_ID=@DEP_ID AND PCDT.BRANCH_ID=@BRANCH_ID END IF(@REF_VALIDATE='PL_REQUEST_DOC') BEGIN IF(@TYPE_VALIDATE='APPNEW') BEGIN IF(@BRANCH_TYPE='HS') BEGIN IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID AND FR_DEP_ID=@DEP_ID AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID =''))) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Vui lòng chọn hạng mục ngân sách điều chuyển' -- ERROR_DES - nvarchar(100) ) RETURN END ELSE BEGIN IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM ( SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0))/COUNT(TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.FR_TRADE_ID) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_TRANSFER TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID WHERE TB.REQ_DOC_ID=@REQ_ID GROUP BY TB.FR_TRADE_ID )Temp WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN AND Temp.FR_TRADE_ID IS NOT NULL AND Temp.FR_TRADE_ID <> '')) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Lưới điều chuyển ngân sách: Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại' -- ERROR_DES - nvarchar(100) ) RETURN END --- LUCTV 10.11.2022 BO SUNG DIEU KIEN CA FRM_TRADE VA TO_TRADE DEU KHAC NULL MOI CHECK IF(EXISTS(SELECT * FROM PL_REQUEST_TRANSFER prt WHERE prt.REQ_DOC_ID = @REQ_ID AND ISNULL(prt.FR_TRADE_ID,'') <> '' AND ISNULL(prt.TO_TRADE_ID,'') <> '' AND prt.FR_TRADE_ID = prt.TO_TRADE_ID)) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Lưới điều chuyển ngân sách: Không được điều chuyển ngân sách từ hạng mục ngân sách giống với hạng mục ngân sách nhận' -- ERROR_DES - nvarchar(100) ) RETURN END END END ELSE IF(@BRANCH_TYPE<>'HS') BEGIN IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID =''))) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Vui lòng chọn hạng mục ngân sách điều chuyển' -- ERROR_DES - nvarchar(100) ) RETURN END ELSE BEGIN IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM ( SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0))/COUNT(TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.FR_TRADE_ID) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_TRANSFER TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID WHERE TB.REQ_DOC_ID=@REQ_ID GROUP BY TB.FR_TRADE_ID )Temp WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN AND Temp.FR_TRADE_ID IS NOT NULL AND Temp.FR_TRADE_ID <> '')) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Lưới điều chuyển ngân sách: Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại' -- ERROR_DES - nvarchar(100) ) RETURN END IF(EXISTS(SELECT * FROM PL_REQUEST_TRANSFER prt WHERE prt.REQ_DOC_ID = @REQ_ID AND ISNULL(prt.FR_TRADE_ID,'') <> '' AND ISNULL(prt.TO_TRADE_ID,'') <> '' AND prt.FR_TRADE_ID = prt.TO_TRADE_ID)) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Lưới điều chuyển ngân sách: Không được điều chuyển ngân sách từ hạng mục ngân sách giống với hạng mục ngân sách nhận' -- ERROR_DES - nvarchar(100) ) RETURN END END END IF(EXISTS(SELECT Temp.TRADE_ID FROM ( SELECT TB.TRADE_ID, TB.TOTAL_AMT AS TOTAL_AMT_EXE, ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.TRADE_ID) AS TOTAL_AMT_REMAIN, ISNULL(PLTF.TOTAL_AMT,0) AS TOTAL_TF FROM ( SELECT TEMP1.TRADE_ID, TEMP1.REQ_ID, SUM(TEMP1.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT TEMP1 WHERE TEMP1.REQDT_TYPE='I' AND TEMP1.REQ_ID=@REQ_ID GROUP BY TEMP1.TRADE_ID,TEMP1.REQ_ID ) TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID LEFT JOIN ( SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT, TEMP2.FR_TRADE_ID, TEMP2.REQ_DOC_ID FROM dbo.PL_REQUEST_TRANSFER TEMP2 GROUP BY TEMP2.FR_TRADE_ID, TEMP2.REQ_DOC_ID ) PLTF ON PLTF.FR_TRADE_ID=PT.TRADE_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID )Temp WHERE (Temp.TOTAL_AMT_EXE + Temp.TOTAL_TF) > Temp.TOTAL_AMT_REMAIN)) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Lưới hàng hóa: Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách' -- ERROR_DES - nvarchar(100) ) RETURN END IF(EXISTS(SELECT Temp.GOODS_ID FROM ( SELECT TB.GOODS_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN , SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF FROM dbo.PL_REQUEST_DOC_DT TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID LEFT JOIN ( SELECT SUM(TOTAL_AMT) AS TOTAL_AMT,TO_GOOD_ID,REQ_DOC_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID GROUP BY TO_GOOD_ID,REQ_DOC_ID ) PLTF ON PLTF.TO_GOOD_ID=TB.GOODS_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID WHERE TB.REQDT_TYPE='O' AND TB.REQ_ID=@REQ_ID GROUP BY TB.GOODS_ID )Temp WHERE Temp.TOTAL_AMT_EXE > (Temp.TOTAL_AMT_REMAIN + Temp.TOTAL_TF))) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit --N'Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách và số tiền điều chuyển' -- ERROR_DES - nvarchar(100) N'Lưới hàng hóa: Số tiền ngân sách sử dụng đang vượt quá số tiền chuyển của lưới điều chuyển ngân sách' ) RETURN END END ELSE IF (@TYPE_VALIDATE='PDDC') BEGIN IF(@PROCESS_ID='DVDM_DC') BEGIN IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM ( SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0))/COUNT(TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.FR_TRADE_ID) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_TRANSFER TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID WHERE TB.REQ_DOC_ID=@REQ_ID AND TB.FR_DVDM_ID IN (SELECT DVDM_ID FROM @LST_DVDM) GROUP BY TB.FR_TRADE_ID )Temp WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN)) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại' -- ERROR_DES - nvarchar(100) ) RETURN END END ELSE IF(@PROCESS_ID='TC') BEGIN IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM ( SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0))/COUNT(TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.FR_TRADE_ID) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_TRANSFER TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID WHERE TB.REQ_DOC_ID=@REQ_ID GROUP BY TB.FR_TRADE_ID )Temp WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN)) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại' -- ERROR_DES - nvarchar(100) ) RETURN END END ELSE BEGIN IF(@BRANCH_TYPE='HS') BEGIN IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID AND FR_DEP_ID=@DEP_ID AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID =''))) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Chưa chọn hạng mục ngân sách điều chuyển' -- ERROR_DES - nvarchar(100) ) RETURN END ELSE BEGIN IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM ( SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0))/COUNT(TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.FR_TRADE_ID) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_TRANSFER TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID WHERE TB.REQ_DOC_ID=@REQ_ID GROUP BY TB.FR_TRADE_ID )Temp WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN AND Temp.FR_TRADE_ID IS NOT NULL AND Temp.FR_TRADE_ID <> '')) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại' -- ERROR_DES - nvarchar(100) ) RETURN END END END ELSE IF(@BRANCH_TYPE<>'HS') BEGIN IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID =''))) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Chưa chọn hạng mục ngân sách điều chuyển' -- ERROR_DES - nvarchar(100) ) RETURN END ELSE BEGIN IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM ( SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0))/COUNT(TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.FR_TRADE_ID) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_TRANSFER TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID WHERE TB.REQ_DOC_ID=@REQ_ID GROUP BY TB.FR_TRADE_ID )Temp WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN AND Temp.FR_TRADE_ID IS NOT NULL AND Temp.FR_TRADE_ID <> '')) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại' -- ERROR_DES - nvarchar(100) ) RETURN END END END END END ELSE IF(@TYPE_VALIDATE='PDTT') BEGIN IF(EXISTS(SELECT Temp.TRADE_ID FROM ( SELECT TB.TRADE_ID, TB.TOTAL_AMT AS TOTAL_AMT_EXE, ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.TRADE_ID) AS TOTAL_AMT_REMAIN, ISNULL(PLTF.TOTAL_AMT,0) AS TOTAL_TF FROM ( SELECT TEMP1.TRADE_ID, TEMP1.REQ_ID, SUM(TEMP1.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT TEMP1 WHERE TEMP1.REQDT_TYPE='I' AND TEMP1.REQ_ID=@REQ_ID GROUP BY TEMP1.TRADE_ID,TEMP1.REQ_ID ) TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID LEFT JOIN ( SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT, TEMP2.FR_TRADE_ID, TEMP2.REQ_DOC_ID FROM dbo.PL_REQUEST_TRANSFER TEMP2 GROUP BY TEMP2.FR_TRADE_ID, TEMP2.REQ_DOC_ID ) PLTF ON PLTF.FR_TRADE_ID=PT.TRADE_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID )Temp WHERE (Temp.TOTAL_AMT_EXE + Temp.TOTAL_TF) > Temp.TOTAL_AMT_REMAIN)) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách' -- ERROR_DES - nvarchar(100) ) RETURN END IF(EXISTS(SELECT Temp.GOODS_ID FROM ( SELECT TB.GOODS_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN , SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF FROM dbo.PL_REQUEST_DOC_DT TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID LEFT JOIN ( SELECT SUM(TOTAL_AMT) AS TOTAL_AMT,TO_GOOD_ID,REQ_DOC_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID GROUP BY TO_GOOD_ID,REQ_DOC_ID ) PLTF ON PLTF.TO_GOOD_ID=TB.GOODS_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID WHERE TB.REQDT_TYPE='O' AND TB.REQ_ID=@REQ_ID AND TB.KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI) GROUP BY TB.GOODS_ID )Temp WHERE Temp.TOTAL_AMT_EXE > (Temp.TOTAL_AMT_REMAIN + Temp.TOTAL_TF))) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách và số tiền điều chuyển' -- ERROR_DES - nvarchar(100) ) RETURN END IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM ( SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE, SUM(ROUND(ISNULL(PT.AMT_APP,0),0) + ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) - ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0))/COUNT(TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.TRADE_ID = TB.FR_TRADE_ID) - (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND doc.REQ_ID <> @REQ_ID AND DDT.FR_TRADE_ID = TB.FR_TRADE_ID) AS TOTAL_AMT_REMAIN FROM dbo.PL_REQUEST_TRANSFER TB LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID WHERE TB.REQ_DOC_ID=@REQ_ID AND TB.FR_KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI) GROUP BY TB.FR_TRADE_ID )Temp WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN)) BEGIN INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 1, -- ERROR - bit N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại' -- ERROR_DES - nvarchar(100) ) RETURN END END END INSERT INTO @Results ( ERROR, ERROR_DES ) VALUES ( 0, -- ERROR - bit N'' -- ERROR_DES - nvarchar(100) ) RETURN END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_AUTO_TRANSFER_Search]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_TRANSFER_Search] @p_REQ_PAY_AUTO_ID VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_CODE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_NAME VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_DT VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_TYPE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_STATUS VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20)= NULL, @p_BRANCH_ID VARCHAR(20)= NULL, @p_BRANCH_CODE VARCHAR(20)= NULL, @p_BRANCH_NAME VARCHAR(20)= NULL, @p_DEP_ID VARCHAR(20)= NULL, @p_DEP_CODE VARCHAR(20)= NULL, @p_DEP_NAME VARCHAR(20)= NULL, @p_BRANCH_CREATE VARCHAR(20)= NULL, @p_BRANCH_CREATE_CODE VARCHAR(20)= NULL, @p_BRANCH_CREATE_NAME VARCHAR(20)= NULL, @p_TRANSFER_USER_RECEIVE VARCHAR(20)= NULL, @p_TRANSFER_USER_RECEIVE_NAME VARCHAR(20)= NULL, @p_CONFIRM_NOTE VARCHAR(20)= NULL, @p_CONTRACT_ID VARCHAR(20)= NULL, @p_CONTRACT_CODE VARCHAR(20)= NULL, @p_CONTRACT_NAME VARCHAR(20)= NULL, @p_PROCESS VARCHAR(20)= NULL, @p_TRANSFER_MAKER VARCHAR(20)= NULL, @p_TRANSFER_DT VARCHAR(20)= NULL, @p_MAKER_ID VARCHAR(20)= NULL, @p_MAKER_NAME VARCHAR(20)= NULL, @p_CREATE_DT VARCHAR(20)= NULL, @p_EDITOR_ID VARCHAR(20)= NULL, @p_EDITOR_NAME VARCHAR(20)= NULL, @p_EDIT_DT VARCHAR(20)= NULL, @p_CHECKER_ID VARCHAR(20)= NULL, @p_CHECKER_NAME VARCHAR(20)= NULL, @p_APPROVE_DT VARCHAR(20)= NULL, @p_AUTH_STATUS VARCHAR(20)= NULL, @p_MAKER_ID_KT VARCHAR(20)= NULL, @p_MAKER_KT_NAME VARCHAR(20)= NULL, @p_CREATE_DT_KT VARCHAR(20)= NULL, @p_CHECKER_ID_KT VARCHAR(20)= NULL, @p_CHECKER_KT_NAME VARCHAR(20)= NULL, @p_APPROVE_DT_KT VARCHAR(20)= NULL, @p_AUTH_STATUS_KT VARCHAR(20)= NULL, @p_AUTH_STATUS_KT_DESC VARCHAR(20)= NULL, @p_RECORD_STATUS VARCHAR(20)= NULL, @p_FRMDATE VARCHAR(20)= NULL, @p_TODATE VARCHAR(20)= NULL, @p_LEVEL VARCHAR(20)= NULL, @p_USER_LOGIN VARCHAR(20)= NULL, @p_IS_SEND_APPR VARCHAR(20)= NULL, @p_TYPE_SEARCH VARCHAR(20)= NULL, @p_BRANCH_LOGIN VARCHAR(20)= NULL, @p_IS_TRANSFER VARCHAR(20)= NULL, @p_TOP INT = NULL AS BEGIN -- PAGING -- BEGIN KHAI BÁO -- ĐƠN VỊ YÊU CẦU DECLARE @tmp_branch TABLE(BRANCH_ID VARCHAR(15)) DECLARE @tmp_dep TABLE(DEP_ID VARCHAR(15)) DECLARE @DEP_ID VARCHAR(15) = NULL INSERT INTO @tmp_branch SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) 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_AUTO_ID)) -- ĐƠN VỊ ĐĂNG NHẬP DECLARE @tmp_branch_login TABLE(BRANCH_ID VARCHAR(15)) DECLARE @tmp_dep_login TABLE(DEP_ID VARCHAR(15)) INSERT INTO @tmp_branch_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) INSERT INTO @tmp_branch_login VALUES (@p_BRANCH_LOGIN) INSERT INTO @tmp_branch_login 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) DECLARE @BRANCH_TYPE_LG VARCHAR(15) SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN) -- PHÒNG BAN ĐĂNG NHẬP DECLARE @DEP_ID_LG VARCHAR(15) = NULL SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN) INSERT INTO @tmp_dep_login VALUES (@DEP_ID_LG) INSERT INTO @tmp_dep_login SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG INSERT INTO @tmp_dep_login 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) -- ROLE DECLARE @ROLE_ID VARCHAR(20) SET @ROLE_ID = (SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME=@p_USER_LOGIN) 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 ='') -- 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_AUTO_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 SET @DATE = CONVERT(DATE,GETDATE(),103) SET @DATE = DATEADD(MONTH,-2,@DATE) END ELSE BEGIN SET @DATE = CONVERT(DATE,@p_FRMDATE,103) END -- END KHAI BÁO IF(@p_TOP IS NULL OR @p_TOP=0) BEGIN -- PAGING BEGIN SELECT A.*, B.TLNAME AS TRANSFER_USER_RECEIVE, C.BRANCH_NAME, D.DEP_NAME, E.TLFullName AS MAKER_NAME, F.CONTENT AS REQ_PAY_AUTO_TYPE_NAME, G.CONTENT AS AUTH_STATUS_NAME, H.CONTENT AS AUTH_STATUS_KT_NAME -- SELECT END FROM TR_REQ_PAYMENT_AUTO A LEFT JOIN PL_REQUEST_PROCESS_CHILD B ON A.REQ_PAY_AUTO_ID = B.REQ_ID AND B.TYPE_JOB = 'XL' LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME LEFT JOIN CM_ALLCODE F ON A.REQ_PAY_AUTO_TYPE = F.CDVAL AND F.CDNAME = 'PAY_TYPE_AUTO' AND F.CDTYPE = 'REQ_AUTO' LEFT JOIN CM_ALLCODE G ON A.AUTH_STATUS = G.CDVAL AND G.CDNAME = 'AUTH_STATUS' AND G.CDTYPE = 'TR_REQ_PAYMENT' LEFT JOIN CM_ALLCODE H ON A.AUTH_STATUS_KT = H.CDVAL AND H.CDNAME = 'AUTH_STATUS_KT' AND H.CDTYPE = 'TR_REQ_PAYMENT' WHERE 1=1 AND ( A.AUTH_STATUS = 'A' OR A.AUTH_STATUS = 'N') AND A.PROCESS IN ('2', '11', '17') -- BEGIN FILTER AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '') AND ( A.PROCESS = @p_PROCESS OR ISNULL(@p_PROCESS, '') = '') AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '') AND ( A.REQ_PAY_AUTO_SERVICE_TYPE = @p_REQ_PAY_AUTO_SERVICE_TYPE OR ISNULL(@p_REQ_PAY_AUTO_SERVICE_TYPE, '') = '') AND ( A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '') AND ( ( @p_IS_TRANSFER = 'Y' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID) ) OR ( @p_IS_TRANSFER='N' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID ) ) OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='' ) 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) 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) --AND ( A.BRANCH_ID = @p_BRANCH_ID OR ISNULL(@p_BRANCH_ID, '') = '') AND ( A.DEP_ID = @p_DEP_ID OR ISNULL(@p_DEP_ID, '') = '') AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '') AND ( B.TLNAME = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '') -- END FILTER ORDER BY A.CREATE_DT DESC -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT A.*, B.TLNAME AS TRANSFER_USER_RECEIVE, C.BRANCH_NAME, D.DEP_NAME, E.TLFullName AS MAKER_NAME, F.CONTENT AS REQ_PAY_AUTO_TYPE_NAME, G.CONTENT AS AUTH_STATUS_NAME, H.CONTENT AS AUTH_STATUS_KT_NAME -- SELECT END FROM TR_REQ_PAYMENT_AUTO A LEFT JOIN PL_REQUEST_PROCESS_CHILD B ON A.REQ_PAY_AUTO_ID = B.REQ_ID AND B.TYPE_JOB = 'XL' LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME LEFT JOIN CM_ALLCODE F ON A.REQ_PAY_AUTO_TYPE = F.CDVAL AND F.CDNAME = 'PAY_TYPE_AUTO' AND F.CDTYPE = 'REQ_AUTO' LEFT JOIN CM_ALLCODE G ON A.AUTH_STATUS = G.CDVAL AND G.CDNAME = 'AUTH_STATUS' AND G.CDTYPE = 'TR_REQ_PAYMENT' LEFT JOIN CM_ALLCODE H ON A.AUTH_STATUS_KT = H.CDVAL AND H.CDNAME = 'AUTH_STATUS_KT' AND H.CDTYPE = 'TR_REQ_PAYMENT' WHERE 1=1 AND ( A.AUTH_STATUS = 'A' OR A.AUTH_STATUS = 'N') AND A.PROCESS IN ('2', '11', '17') -- BEGIN FILTER AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '') AND ( A.PROCESS = @p_PROCESS OR ISNULL(@p_PROCESS, '') = '') AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '') AND ( A.REQ_PAY_AUTO_SERVICE_TYPE = @p_REQ_PAY_AUTO_SERVICE_TYPE OR ISNULL(@p_REQ_PAY_AUTO_SERVICE_TYPE, '') = '') AND ( A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '') AND ( ( @p_IS_TRANSFER = 'Y' AND ( EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID) ) ) OR ( @p_IS_TRANSFER='N' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID ) ) OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='' ) 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) 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) --AND ( A.BRANCH_ID = @p_BRANCH_ID OR ISNULL(@p_BRANCH_ID, '') = '') AND ( A.DEP_ID = @p_DEP_ID OR ISNULL(@p_DEP_ID, '') = '') AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '') AND ( B.TLNAME = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '') -- END FILTER ORDER BY A.CREATE_DT DESC -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAYMENT_AUTO_KT_Upd]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_KT_Upd] @p_REQ_PAY_AUTO_ID VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_CODE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_DT VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_TYPE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_STATUS VARCHAR(20)= NULL, @p_REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20)= NULL, @p_BRANCH_ID VARCHAR(20)= NULL, @p_DEP_ID VARCHAR(20)= NULL, @p_BRANCH_CREATE VARCHAR(20)= NULL, @p_TRANSFER_USER_RECEIVE VARCHAR(20)= NULL, @p_CONFIRM_NOTE NVARCHAR(500)= NULL, @p_CONTRACT_ID VARCHAR(20)= NULL, @p_PROCESS VARCHAR(20)= NULL, @p_TRANSFER_MAKER VARCHAR(20)= NULL, @p_TRANSFER_DT VARCHAR(20)= NULL, @p_MAKER_ID VARCHAR(20)= NULL, @p_CREATE_DT VARCHAR(20)= NULL, @p_EDITOR_ID VARCHAR(20)= NULL, @p_EDIT_DT VARCHAR(20)= NULL, @p_CHECKER_ID VARCHAR(20)= NULL, @p_APPROVE_DT VARCHAR(20)= NULL, @p_AUTH_STATUS VARCHAR(20)= NULL, @p_MAKER_ID_KT VARCHAR(20)= NULL, @p_CREATE_DT_KT VARCHAR(20)= NULL, @p_CHECKER_ID_KT VARCHAR(20)= NULL, @p_APPROVE_DT_KT VARCHAR(20)= NULL, @p_AUTH_STATUS_KT VARCHAR(20)= NULL, @p_RECORD_STATUS VARCHAR(20)= NULL, @p_FRMDATE VARCHAR(20)= NULL, @p_TODATE VARCHAR(20)= NULL, @p_LEVEL VARCHAR(20)= NULL, @p_USER_LOGIN VARCHAR(20)= NULL, @p_IS_SEND_APPR VARCHAR(20)= NULL, @p_TYPE_SEARCH VARCHAR(20)= NULL, @p_BRANCH_LOGIN VARCHAR(20)= NULL, @p_XMP_BUDGET_ALLOCATION XML = NULL, @p_XMP_ENTRIES XML = NULL, @p_XMP_TRANSFER_OUTSIDE_TRANS XML = NULL, @p_XMP_TRANSFER_OUTSIDE_REC XML = NULL AS -- BEGIN VALIDATE -- END VALIDATE -- BEGIN VALIDATE FLOW IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(AUTH_STATUS, '') <> 'A' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID AND ISNULL(REQUEST_STATUS, '') = '')) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động chưa được chuyển đến phòng kế toán' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS_KT = 'A' AND ISNULL(PROCESS, '') = '5' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động đã được kiếm sát viên phê duyệt' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS_KT = 'P' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động đã được gửi phê duyệt trước đó' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS_KT = 'S' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động đã được đề xuất từ chối trước đó' ErrorDesc RETURN '-1' END IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_REQ_PAY_AUTO_ID)) BEGIN SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động chưa được KSV điều phối' ErrorDesc RETURN '-1' END -- END VALIDATE FLOW BEGIN TRANSACTION IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') NOT IN ('12', '18') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) -- NEU KHONG PHAI XAC NHAN TAM DUNG HOAC HUY PHIEU BEGIN UPDATE TR_REQ_PAYMENT_AUTO SET AUTH_STATUS_KT = 'U', CONFIRM_NOTE = @p_CONFIRM_NOTE, CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CHECKER_ID_KT=NULL, APPROVE_DT_KT = NULL WHERE 1 = 1 AND REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID IF @@Error <> 0 GOTO ABORT 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),@GL_CODE_ACCNO VARCHAR(20), @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), @IS_TRANSFER_EXTERNAL VARCHAR(15) ------------------------------------------------------------------------- BEGIN LUOI HACH TOAN ----------------------------------------------------------------------- DECLARE @hdoc INT; EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_ENTRIES; 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),GL_CODE_ACCNO VARCHAR(20), IS_TRANSFER_EXTERNAL VARCHAR(15)) OPEN XmlDataEntries; DELETE FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID DECLARE @INDEX INT = 0; 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, @GL_CODE_ACCNO, @IS_TRANSFER_EXTERNAL WHILE @@fetch_status=0 BEGIN IF(@EXC_RATE IS NULL) BEGIN SET @EXC_RATE = 1 END SET @INDEX = @INDEX +1 SET @ACC_NAME =UPPER(dbo.fChuyenCoDauThanhKhongDau(@ACCT_NAME)) -- NEU TEN TAI KHOAN RONG, THI LAY TEN TU CHECK CASA IF(ISNULL(@GL_CODE, '') <> '') BEGIN SET @ACC_NAME = STUFF(@GL_CODE, LEN(@GL_CODE)-8, 9, '') SET @ACCT_NAME = STUFF(@GL_CODE, LEN(@GL_CODE)-8, 9, '') END -- NEU SO TAI KHOAN RONG, THI LAY SO TAI KHOAN TU CHECK CASA SET @GL_CODE = RIGHT(@GL_CODE,9) IF(ISNULL(@ACCT, '') = '' AND ISNULL(@GL_CODE_ACCNO, '') <> '') BEGIN SET @ACCT = @GL_CODE_ACCNO END 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(@p_IS_SEND_APPR = 'SEND') BEGIN IF(@ENTRY_PAIR IS NULL OR @ENTRY_PAIR ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Mã bút toán không được phép để trống' ErrorDesc RETURN '-1' END IF(@DR_CR IS NULL OR @DR_CR ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Nợ/có 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'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Số tài khoản không được phép để trống' ErrorDesc RETURN '-1' END IF(@ACCT_NAME IS NULL OR @ACCT_NAME ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toá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(@BRANCH_ID IS NULL OR @BRANCH_ID ='') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toá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 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 XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toá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(@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'Lưới hạch toá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(@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 XmlDataEntries; DEALLOCATE XmlDataEntries; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toá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(@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'Lưới hạch toá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 -- 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'Lưới hạch toá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 END -- END IF VALIDATE DECLARE @p_ET_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_AUTO_ENTRIES', @p_ET_ID OUT; IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_ENTRIES (REQ_PAY_AUTO_DT_ID,REQ_PAY_AUTO_ID,ENTRY_PAIR,DR_CR,DR_CR_NAME,ACCT,ACCT_NAME,AMT,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT, TRN_TYPE, CURRENCY, EXC_RATE, IS_TRANSFER_EXTERNAL) VALUES (@p_ET_ID,@p_REQ_PAY_AUTO_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(), @p_USER_LOGIN, 'PAYMENT', 'VND', 1, @IS_TRANSFER_EXTERNAL) -- 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 <> '' AND @GL_CODE <> '0') 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), EDITOR_DT = GETDATE() WHERE ACC_NO=@ACCT END 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, @GL_CODE_ACCNO, @IS_TRANSFER_EXTERNAL END;--END WHILE CLOSE XmlDataEntries; DEALLOCATE XmlDataEntries; ------------------------------------------------------------------------------------------ END LUOI HACH TOAN -------------------------------------------------------------------- -- BEGIN INSERT đơn vị chuyển DECLARE @hdocOutsideTrans INT EXEC sp_xml_preparedocument @hdocOutsideTrans OUTPUT, @p_XMP_TRANSFER_OUTSIDE_TRANS; DECLARE @MAKER_ID_KT VARCHAR(15), @TYPE_TRANSFER_ID VARCHAR(15), @PRODUCT_ID VARCHAR(15), @OBJECT_TRANSFER_ID VARCHAR(15), @ACC_NO_TRANSFER VARCHAR(255), @BRANCH_TRANSFER_ID VARCHAR(15), @BRANCH_TRANFSER_NAME NVARCHAR(255) DECLARE XmlDataOutsideTrans CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocOutsideTrans, 'Root/XmlDataTransferOutside',2) WITH(MAKER_ID VARCHAR(15), TYPE_TRANSFER_ID VARCHAR(15), PRODUCT_ID VARCHAR(15), OBJECT_TRANSFER_ID VARCHAR(15), BRANCH_ID VARCHAR(15), ACC_NO_TRANSFER VARCHAR(255), BRANCH_TRANSFER_ID VARCHAR(15), CURRENCY VARCHAR(15), BRANCH_TRANFSER_NAME NVARCHAR(255)) OPEN XmlDataOutsideTrans DELETE FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_TRANS WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID FETCH NEXT FROM XmlDataOutsideTrans INTO @MAKER_ID_KT , @TYPE_TRANSFER_ID, @PRODUCT_ID, @OBJECT_TRANSFER_ID, @BRANCH_ID, @ACC_NO_TRANSFER, @BRANCH_TRANSFER_ID, @CURRENCY, @BRANCH_TRANFSER_NAME WHILE @@fetch_status=0 BEGIN DECLARE @p_TR_REQ_TRANS_OUTSIDE_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_AUTO_OUTSIDE_TRANS', @p_TR_REQ_TRANS_OUTSIDE_ID OUT; IF @p_TR_REQ_TRANS_OUTSIDE_ID='' OR @p_TR_REQ_TRANS_OUTSIDE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_TRANS_OUTSIDE_TRANS(TR_REQ_TRANS_OUTSIDE_ID ,REQ_PAY_AUTO_ID ,MAKER_ID , CREATE_DT , AUTH_STATUS, AUTH_STATUS_KT , BRANCH_TRANFSER_NAME,TYPE_TRANSFER_ID , PRODUCT_ID , OBJECT_TRANSFER_ID , BRANCH_ID, ACC_NO_TRANSFER , BRANCH_TRANSFER_ID) VALUES (@p_TR_REQ_TRANS_OUTSIDE_ID ,@p_REQ_PAY_AUTO_ID ,@p_MAKER_ID_KT , GETDATE(), NULL , NULL, @BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataOutsideTrans INTO @MAKER_ID_KT , @TYPE_TRANSFER_ID, @PRODUCT_ID, @OBJECT_TRANSFER_ID, @BRANCH_ID, @ACC_NO_TRANSFER, @BRANCH_TRANSFER_ID, @CURRENCY, @BRANCH_TRANFSER_NAME END; CLOSE XmlDataOutsideTrans; DEALLOCATE XmlDataOutsideTrans; --- END INSERT đơn vị chuyển -- BEGIN INSERT đơn vị nhận DECLARE @hdocOutsideRec INT EXEC sp_xml_preparedocument @hdocOutsideRec OUTPUT, @p_XMP_TRANSFER_OUTSIDE_REC; DECLARE @CHANEL_PAYMENT_ID VARCHAR(15), @CITAD1_ID VARCHAR(15), @BANK_RECEIVE_ID VARCHAR(250), @OBJECT_RECEIVE_ID VARCHAR(15), @BRANCH_RECEIVE_ID VARCHAR(15), @BRANCH_RECEIVE_NAME NVARCHAR(255), @ACC_NO_RECEIVE VARCHAR(255), @TRADE_AMT DECIMAL(18, 0), @TRADE_DESC NVARCHAR(120), @SUB_BANK_RECEIVE_NAME nvarchar(MAX), @REF_NO VARCHAR(50) -- INSERT đơn vị nhận DECLARE XmlDataOutsideRec CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdocOutsideRec, 'Root/XmlDataTransferOutside',2) WITH(MAKER_ID VARCHAR(15), CHANEL_PAYMENT_ID VARCHAR(15), CITAD1_ID VARCHAR(15), BANK_RECEIVE_ID VARCHAR(250), OBJECT_RECEIVE_ID VARCHAR(15), BRANCH_RECEIVE_ID VARCHAR(15), BRANCH_RECEIVE_NAME NVARCHAR(255), ACC_NO_RECEIVE VARCHAR(255), TRADE_AMT DECIMAL(18, 0), TRADE_DESC NVARCHAR(120), SUB_BANK_RECEIVE_NAME nvarchar(MAX), ENTRY_PAIR varchar(20), REF_NO varchar(20)) OPEN XmlDataOutsideRec DECLARE @INDEX_REC INT DELETE FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_REC WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID FETCH NEXT FROM XmlDataOutsideRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO WHILE @@fetch_status=0 BEGIN IF(@p_IS_SEND_APPR = 'SEND') BEGIN SET @INDEX_REC = @INDEX_REC+1 IF(ISNULL(@ACC_NO_RECEIVE, '') = '') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataOutsideRec; DEALLOCATE XmlDataOutsideRec; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Số tài khoản không được để trống' ErrorDesc RETURN '-1' END IF(ISNULL(@BRANCH_RECEIVE_NAME, '') = '') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataOutsideRec; DEALLOCATE XmlDataOutsideRec; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Tên đơn vị nhận không được để trống' ErrorDesc RETURN '-1' END IF(ISNULL(@OBJECT_RECEIVE_ID, '') = '') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataOutsideRec; DEALLOCATE XmlDataOutsideRec; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Đối tượng nhận không được để trống' ErrorDesc RETURN '-1' END IF(ISNULL(@BANK_RECEIVE_ID, '') = '' OR ISNULL(@BRANCH_RECEIVE_NAME, '') = '') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataOutsideRec; DEALLOCATE XmlDataOutsideRec; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Tên ngân hàng hưởng trực tiếp không được để trống' ErrorDesc RETURN '-1' END IF(ISNULL(@CITAD1_ID, '') = '') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataOutsideRec; DEALLOCATE XmlDataOutsideRec; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Mã CITAD không được để trống' ErrorDesc RETURN '-1' END IF(ISNULL(@CHANEL_PAYMENT_ID, '') = '') BEGIN ROLLBACK TRANSACTION CLOSE XmlDataOutsideRec; DEALLOCATE XmlDataOutsideRec; SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Kênh thanh toán không được để trống' ErrorDesc RETURN '-1' END END DECLARE @p_REQ_TRANS_OUTSIDE_REC_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_AUTO_OUTSIDE_REC', @p_REQ_TRANS_OUTSIDE_REC_ID OUT; IF @p_REQ_TRANS_OUTSIDE_REC_ID='' OR @p_REQ_TRANS_OUTSIDE_REC_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_TRANS_OUTSIDE_REC(REQ_TRANS_OUTSIDE_REC_ID, REQ_PAY_AUTO_ID, MAKER_ID, CREATE_DT, AUTH_STATUS, AUTH_STATUS_KT, CHANEL_PAYMENT_ID, CITAD1_ID, BANK_RECEIVE_ID, OBJECT_RECEIVE_ID, BRANCH_RECEIVE_ID, BRANCH_RECEIVE_NAME, ACC_NO_RECEIVE, TRADE_AMT, TRADE_DESC, SUB_BANK_RECEIVE_NAME, ENTRY_PAIR, REF_NO) VALUES (@p_REQ_TRANS_OUTSIDE_REC_ID, @p_REQ_PAY_AUTO_ID, @p_USER_LOGIN, GETDATE(), NULL, NULL, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataOutsideRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO END; CLOSE XmlDataOutsideRec; DEALLOCATE XmlDataOutsideRec; --- END INSERT đơn vị nhận --- INSERT PHÂN CHIA DECLARE @hDocBudgetAllocation INT EXEC sp_xml_preparedocument @hDocBudgetAllocation OUTPUT, @p_XMP_BUDGET_ALLOCATION; DECLARE @TYPE_BUDGET_ALLOCAITON VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON DECIMAL(18,2), @REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20) DECLARE XmlDataBudgetAllocation CURSOR FOR SELECT * FROM OPENXML(@hDocBudgetAllocation, 'Root/XmlDataBudgetAllocation',2) WITH(REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20), ACC_NO VARCHAR(20), ACC_NAME NVARCHAR(255), BRANCH_ID VARCHAR(20), DEP_ID NVARCHAR(255), TYPE_BUDGET_ALLOCAITON VARCHAR(20), PERCENT_BUDGET_ALLOCAITON DECIMAL(18,2), AMT_BUDGET_ALLOCAITON DECIMAL(18,2)) OPEN XmlDataBudgetAllocation DELETE FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID FETCH NEXT FROM XmlDataBudgetAllocation INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON WHILE @@fetch_status=0 BEGIN DECLARE @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID VARCHAR(20) EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_AUTO_ALLCOTION', @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID OUT; IF @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID = '' OR @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_AUTO_BUDGET_ALLOCATION(REQ_PAY_AUTO_BUDGET_ALLOCATION_ID, REQ_PAY_AUTO_MANUFACTURER_ID, REQ_PAY_AUTO_ID, ACC_NO, ACC_NAME, BRANCH_ID, DEP_ID, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON, MAKER_ID, CREATE_DT, RECORD_STATUS) VALUES (@REQ_PAY_AUTO_BUDGET_ALLOCATION_ID, @REQ_PAY_AUTO_MANUFACTURER_ID, @p_REQ_PAY_AUTO_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON, @p_MAKER_ID, GETDATE(), '1') IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlDataBudgetAllocation INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON END CLOSE XmlDataBudgetAllocation; DEALLOCATE XmlDataBudgetAllocation; END -- END XAC NHAN TAM DUNG HOAC HUY PHIEU COMMIT TRANSACTION IF(@p_IS_SEND_APPR ='SEND') BEGIN IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') NOT IN ('12', '18', '14.2', '20.2') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) -- NEU KHONG PHAI XAC NHAN TAM DUNG HOAC HUY PHIEU BEGIN UPDATE TR_REQ_PAYMENT_AUTO SET AUTH_STATUS_KT = 'P', CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CONFIRM_NOTE = @p_CONFIRM_NOTE, PROCESS = '4' WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID -- UPDATE FLOW KE TOAN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TLNAME= @p_USER_LOGIN AND TYPE_JOB = 'XL' UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND 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_AUTO_ID,'SEND_GDV',@p_USER_LOGIN,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 '1' as Result, '' REQ_PAY_ID, N'Phiếu yêu cầu thanh toán tự động số: '+(SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_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 '1' END ELSE IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') IN ('12', '14.2') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) BEGIN UPDATE TR_REQ_PAYMENT_AUTO SET CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CONFIRM_NOTE = @p_CONFIRM_NOTE, PROCESS = '13' WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID -- UPDATE FLOW KE TOAN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TLNAME= @p_USER_LOGIN AND TYPE_JOB = 'XL' UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND 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_AUTO_ID,'GDV_UNSUS',@p_USER_LOGIN,GETDATE(), N'Giao dịch viên gửi phê duyệt',N'Giao dịch viên xác nhận yêu cầu khôi phục phiếu') SELECT '1' as Result, '' REQ_PAY_ID, N'Phiếu yêu cầu thanh toán tự động số: '+(SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_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 '1' END ELSE IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') IN ('18', '20.2') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) BEGIN UPDATE TR_REQ_PAYMENT_AUTO SET PROCESS = '19', CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CONFIRM_NOTE = @p_CONFIRM_NOTE WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID -- UPDATE FLOW KE TOAN UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TLNAME= @p_USER_LOGIN AND TYPE_JOB = 'XL' UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND 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_AUTO_ID,'GDV_DEL',@p_USER_LOGIN,GETDATE(), N'Giao dịch viên gửi phê duyệt',N'Giao dịch viên xác nhận yêu cầu hủy phiếu') SELECT '1' as Result, '' REQ_PAY_ID, N'Phiếu yêu cầu thanh toán tự động số: '+(SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_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 '1' END ELSE BEGIN PRINT '1' END END SELECT '0' as Result, @p_REQ_PAY_AUTO_ID REQ_PAY_ID, @p_REQ_PAY_AUTO_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, N'Lỗi không xác định' ErrorDesc RETURN '-1' End 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), @REASON NVARCHAR(4000) 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'eOffice') SET @TILTER_MAIL ='' --INSERT INTO TL_MESSAGE VALUES ('UAT',N'https://it.gsoft.com.vn:3051/app/admin/','') SET @URL = (SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID = 'UAT') --SET @URL = 'https://it.gsoft.com.vn:3051/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'Thông báo PO đã được duyệt' AS TITLE, --@p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + --N',

Số PO: ' + @CODE + N' đã được duyệt.' + @footer --AS MESSAGECONTENT --RETURN 0 --END -----------------BAODNQ 16/11/2022 : KHAI BÁO FONT-SIZE, FONT-FAMILY------------------------------------- DECLARE @p_FONT_SIZE NVARCHAR(20) = (SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID = 'FONT_SIZE') PRINT @p_FONT_SIZE IF(@p_FONT_SIZE IS NULL OR @p_FONT_SIZE = '') BEGIN SET @p_FONT_SIZE = '16px' END DECLARE @p_FONT_FAMILY VARCHAR(MAX) = 'times new roman' DECLARE @p_MESSAGE_HEAD VARCHAR(MAX) = '' --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'Thông báo đã cập nhập đơn hàng' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị'+ 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'Thông báo PO sửa chữa đã được duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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'Thông báo xuất kho được duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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'Thông báo xuất kho được duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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'Thông báo xuất kho được duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiều đề nghị tạm ứng số ' + @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ @REASON+ N' đang chờ 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.' + @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) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiều đề nghị tạm ứng số ' + @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ @REASON+ N' đang chờ 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.' + @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) SET @REASON = (SELECT REQ_REASON 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 NOT IN ('TKTGD','TKHDQT')))) BEGIN SELECT @TILTER_MAIL+N'Phiều đề nghị tạm ứng số ' + @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ @REASON+ N' đang chờ 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.' +@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) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiều đề nghị tạm ứng số ' + @CODE +N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N'

Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ Anh/Chị:'+ N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý thanh toán tạm ứng / Điều phối công việc tại đây'+ N'
Hoặc 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 BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiều đề nghị tạm ứng số ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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. Anh/Chị 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'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đề nghị tạm ứ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) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiều đề nghị tạm ứng số ' + @CODE +N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ Anh/Chị:'+ N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý thanh toán tạm ứng / Điều phối công việc tại đây'+ N'
Hoặc 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 BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiều đề nghị tạm ứng số ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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. Anh/Chị 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'
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 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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ kiểm soát viên điều phối cho giao dịch viên.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đề nghị tạm ứng.' + @footer AS MESSAGECONTENT RETURN 0 END --ELSE -- LUCTV KHONG CAN XU LY NUA - 15.10.2022 --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'eOffice Thông báo chờ phê duyệt phiếu đề nghị tạm ứng' AS TITLE, -- @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + -- 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) SET @REASON = (SELECT REQ_REASON 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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Giao dịch viên gửi phê duyệt phiếu. Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ kiểm soát viên phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt hoàn tất phiếu đề nghị tạm ứng.' + @footer AS MESSAGECONTENT RETURN 0 END -- GDV XỬ LÝ XONG ĐỀ XUẤT TỪ CHỐI ĐẾN KẾ TOÁN IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_SEND_SUG' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SET @REASON = (SELECT REQ_REASON 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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Giao dịch viên đề xuất từ chối phiếu. Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ kiểm soát viên phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và đưa ra quyết định từ chối hoặc phê duyệt hoàn tất phiếu đề nghị tạm ứng.' + + @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) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu tạm ứng số '+ @CODE +N' đã được kiểm soát viên phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị tạm ứng số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đã được kiểm soát viên phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đề nghị tạm ứng đã hoàn tấ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 @REASON = (SELECT REQ_REASON 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'Phiều đề nghị thanh toán số ' + @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị thanh toán số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ xác nhận.' + + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đề nghị thanh toá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 @REASON = (SELECT REQ_REASON 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'Phiều đề nghị thanh toán số ' + @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị thanh toán số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ 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ị thanh toán.' +@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 @REASON = (SELECT REQ_REASON 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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị thanh toán số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đang chờ kiểm soát viên điều phối cho giao dịch viên.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý thanh toán tạm ứng / Điều phối công việc tại đây' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đề nghị thanh toán.' + @footer AS MESSAGECONTENT RETURN 0 END -- KSV DIEU PHOI TAM UNG CHO GDV IF @p_TYPE = 'TR_REQ_PAYMENT_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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị thanh toán số: ' + @CODE + N' đang chờ giao dịch viên xử lý hạch toán.' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để cập nhật phiếu đề nghị thanh 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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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.' + + N'
Anh/Chị vui lòng nhấn vào đây để cập nhật phiếu đề nghị tạm ứng.' + @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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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.' + + N'
Anh/Chị vui lòng nhấn vào đây để cập nhật phiếu đề nghị tạm ứng.' + @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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị tạm ứng số: ' + @CODE + N' đang chờ giao dịch viên xử lý hạch toán.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đề nghị tạm ứng.' + @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) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Thông báo chờ kiểm soát viên phê duyệt phiếu đề nghị thanh toán' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Giao dịch viên gửi phê duyệt phiếu. Phiếu đề nghị thanh toán số: ' + @CODE + N' đang chờ kiểm soát viên phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt hoàn tất phiếu đề nghị thanh toán.' + + @footer AS MESSAGECONTENT RETURN 0 END -- GDV XỬ LÝ XONG ĐỀ XUẤT TỪ CHỐI ĐẾN KẾ TOÁN IF @p_TYPE = 'TR_REQ_PAYMENT_KT_SEND_SUG' BEGIN SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Thông báo chờ kiểm soát viên từ chối hoặc phê duyệt phiếu đề nghị thanh toán' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Giao dịch viên đề xuất từ chối phiếu. Phiếu đề nghị thanh toán số: ' + @CODE + N' đang chờ kiểm soát viên phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và đưa ra quyết định từ chối hoặc phê duyệt hoàn tất phiếu đề nghị thanh toán.' + + @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) SET @REASON = (SELECT REQ_REASON FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu thanh toán số '+ @CODE + N' đã được kiểm soát viên phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đề nghị thanh toán số: ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đã được kiểm soát viên phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đề nghị thanh toán đã hoàn tất.' + +@footer AS MESSAGECONTENT RETURN 0 END DECLARE @IS_TTMS bit, @typeURL VARCHAR(50) IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC_DT prdd WHERE prdd.REQ_ID = @p_ID)) BEGIN SET @IS_TTMS = 0 SET @typeURL='TTDC' END ELSE BEGIN SET @IS_TTMS = 1 SET @typeURL='TTMS' END DECLARE @REF_ID_TC INT, @REF_DVCM_HC INT, @REF_ID_DVCM_TC INT, @REF_ID_DVDM_DC INT SET @REF_ID_TC =(SELECT ID FROM PL_REQUEST_PROCESS WHERE STATUS='C' AND PROCESS_ID ='TC' AND REQ_ID =@p_ID) SET @REF_DVCM_HC =(SELECT ID FROM PL_REQUEST_PROCESS WHERE DVDM_ID ='DM0000000000003' AND STATUS='C' AND PROCESS_ID ='DVCM' AND REQ_ID =@p_ID) SET @REF_ID_DVCM_TC =(SELECT ID FROM PL_REQUEST_PROCESS WHERE DVDM_ID ='DM0000000000048' AND STATUS='C' AND PROCESS_ID ='DVCM' AND REQ_ID =@p_ID) SET @REF_ID_DVDM_DC =(SELECT ID FROM PL_REQUEST_PROCESS WHERE DVDM_ID ='DM0000000000003' AND STATUS='C' AND PROCESS_ID ='DVDM_DC' AND REQ_ID =@p_ID) ---------- TO TRINH CHU TRUONG IF (@p_TYPE = 'PL_SEND_APP' OR @p_TYPE ='PL_REQUEST_DOC_App' OR @p_TYPE ='REQ_PROCESS_CHILD_App') BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON =(SELECT REQ_NAME 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 ('GDK_TT','PTGDK_TT', 'TGD','HDQT','GDK_DC')) ) --- NẾU LÀ CÁC CẤP DUYỆT LÃNH ĐẠO BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số' ELSE N'tờ trình điều chuyển số' END + @CODE + N' cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị Ban Lãnh Đạo' + N',

' + CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương' ELSE N'Tờ trình điều chuyển' END + N' số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('DVCM','TC','KT'))) ---- NẾU LÀ CÁC DVCM/TC/KT/ ĐƠN VỊ ĐẦU MỐI QUẢN LÝ NGÂN SÁCH BEGIN IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID AND PROCESS_ID='TC') ) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='TP' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_ID_TC,0))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên với vai trò kiểm soát viên phê duyệt thành công' + N'
Hoặc 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 SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' cần phê duyệt ý kiến chuyên môn' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' N'
Hoặc 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 END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE DVDM_ID ='DM0000000000048' AND STATUS='C' AND PROCESS_ID ='DVCM' AND REQ_ID =@p_ID)) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='TP' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_ID_DVCM_TC,0))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON =(SELECT REQ_NAME FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương' ELSE N'Tờ trình điều chuyển' END +N' số '+ @CODE + N' cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên với vai trò kiểm soát viên phê duyệt thành công' + N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON =(SELECT REQ_NAME FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt ý kiến chuyên môn' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' N'
Hoặc 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 END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE DVDM_ID ='DM0000000000003' AND STATUS='C' AND PROCESS_ID ='DVCM' AND REQ_ID =@p_ID)) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='TP' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_DVCM_HC,0))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON =(SELECT REQ_NAME FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên với vai trò kiểm soát viên phê duyệt thành công' + N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON =(SELECT REQ_NAME FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt ý kiến chuyên môn' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' N'
Hoặc 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 END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID AND PROCESS_ID='KT') ) BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt ý kiến chuyên môn' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý'+ N'

Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt ý kiến chuyên môn' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' N'
Hoặc 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 END ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('DVDM_DC'))) ---- NẾU LÀ CÁC DVCM/TC/KT/ ĐƠN VỊ ĐẦU MỐI QUẢN LÝ NGÂN SÁCH BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='TP' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_ID_DVDM_DC,0))) BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt đầu mối quản lý ngân sách cho - ngân sách nhận' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên với vai trò kiểm soát viên phê duyệt thành công' + 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 SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt đầu mối quản lý ngân sách cho - ngân sách nhận' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý với vai trò đầu mối quản lý ngân sách cho - ngân sách nhận. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ N'
Hoặc 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 END ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('DVDC'))) ---- NẾU LÀ ĐƠN VỊ CHO NGÂN SÁCH BEGIN SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt về việc đồng ý cho ngân sách' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý.' + N'

Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây' + @footer AS MESSAGECONTENT RETURN 0 END ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('APPNEW','SIGN'))) ---- NẾU LÀ CÁC CẤP DUYỆT TRUNG GIAN HOẶC TRƯỞNG ĐƠN VỊ BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT RETURN 0 END ----- ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID ='APPROVE')) BEGIN ----SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT N'Tờ trình chủ trương số '+ @CODE +N' đã được phê duyệt hoàn tất' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được phê duyệt hoàn tất và phát sinh phiếu yêu cầu mua sắm .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiế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'Tờ trình chủ trương số '+ @CODE + N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Tờ trình chủ trương số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công. Anh/Chị 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'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' + @footer + @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'Tờ trình chủ trương số '+ @CODE +N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

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

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Tờ trình chủ trương số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số : ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công. Anh/Chị 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'
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 END ---- END SETUP MAIL THU KI END RETURN 0 END ELSE IF(@p_TYPE ='REQ_PROCESS_CHILD_Upd') BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('DVDM_DC','DVCM','TC','KT','DVDC'))) ---- NẾU LÀ CÁC DVCM/TC/KT/ ĐƠN VỊ ĐẦU MỐI QUẢN LÝ NGÂN SÁCH BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_NAME FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý và gửi phê duyệt thành công' + 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 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'Tờ trình chủ trương số '+ @CODE + N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Tờ trình chủ trương số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công. Anh/Chị 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'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' + @footer + @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'Tờ trình chủ trương số '+ @CODE + N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

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

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Tờ trình chủ trương số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số : ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công. Anh/Chị 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'
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 END END ELSE IF ( @p_TYPE ='PL_REQ_PROCESS_CHILD_Ins') BEGIN SET @CODE = (SELECT DTA.REQ_CODE FROM PL_REQUEST_DOC DTA WHERE DTA.REQ_ID =@p_ID) IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID AND PROCESS_ID='TC') ) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='KS' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_ID_TC,0))) BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được trưởng đơn vị giao cho Anh/Chị vai trò kiểm soát và đang chờ Anh/Chị điều phối cho nhân viên xử lý' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'

Lưu ý nên chọn tình trạng điều phối: Đã điều phối' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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 tờ trình và xử lý' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xử vào trực tiếp màn hình xử lý tờ trình.' + @footer AS MESSAGECONTENT RETURN 0 END END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE DVDM_ID ='DM0000000000003' AND STATUS='C' AND PROCESS_ID ='DVCM' AND REQ_ID =@p_ID)) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='KS' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_DVCM_HC,0))) BEGIN SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + N' đã được trưởng đơn vị giao cho Anh/Chị vai trò kiểm soát và đang chờ Anh/Chị điều phối cho nhân viên xử lý' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'

Lưu ý nên chọn tình trạng điều phối: Đã điều phối' --+ @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v '+ N' đang chờ Anh/Chị 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 tờ trình và xử lý' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để vào trực tiếp màn hình xử lý tờ trình.' + @footer AS MESSAGECONTENT RETURN 0 END END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE DVDM_ID ='DM0000000000048' AND STATUS='C' AND PROCESS_ID ='DVCM' AND REQ_ID =@p_ID)) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='KS' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_ID_DVCM_TC,0))) BEGIN SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ điều phối xử lý tờ trình' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được trưởng đơn vị giao cho Anh/Chị vai trò kiểm soát và đang chờ Anh/Chị điều phối cho nhân viên xử lý' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'

Lưu ý nên chọn tình trạng điều phối: Đã điều phối' -- + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END +@CODE + N' chờ xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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 tờ trình và xử lý' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xử trực tiếp vào màn hình lý tờ trình.' + @footer AS MESSAGECONTENT RETURN 0 END END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ID =@REF_ID_DVDM_DC AND STATUS='C' AND PROCESS_ID ='DVDM_DC' AND REQ_ID =@p_ID)) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID) AND TYPE_JOB ='KS' AND STATUS_JOB ='C' AND PROCESS_ID =ISNULL(@REF_ID_DVDM_DC,0))) BEGIN SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được trưởng đơn vị giao cho Anh/Chị vai trò kiểm soát và đang chờ Anh/Chị điều phối cho nhân viên xử lý' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ --N'

Lưu ý nên chọn tình trạng điều phối: Đã điều phối' --+ @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE + N' chờ điều phối xử lý ' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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 tờ trình và xử lý' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để vào trực tiếp màn hình xử lý tờ trình.' + @footer AS MESSAGECONTENT RETURN 0 END END ELSE BEGIN SELECT @TILTER_MAIL+CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'Tờ trình điều chuyển số ' END + @CODE+ N' chờ xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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 tờ trình và xử lý' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để vào trực tiếp màn hình xử lý tờ trình.' + @footer AS MESSAGECONTENT RETURN 0 END END ELSE IF(@p_TYPE='REQUEST_DOC_PROCESS_Approve') BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_NAME FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC_DT prdd WHERE prdd.REQ_ID = @p_ID)) BEGIN SET @IS_TTMS = 0 END ELSE BEGIN SET @IS_TTMS = 1 END IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('GDKTT','PTGDK_TT','TGD','HDQT','GDK_DC','GDK_TT'))) BEGIN SELECT @TILTER_MAIL+ CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương số ' ELSE N'tờ trình điều chuyển số ' END + @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị Ban Lãnh Đạo' + N',

' + CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương' ELSE N'Tờ trình điều chuyển' END + N' số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN 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'Tờ trình chủ trương số '+ @CODE + N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số : ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối cho nhân viên xử lý. Hoặc Anh/Chị có thể trực tiếp phê duyệt không cần điều phối.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Tờ trình chủ trương số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công. Anh/Chị 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'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.' + @footer + @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'Tờ trình chủ trương số '+ @CODE + N' chờ điều phối / phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

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

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý kế hoạch / Điều phối công việc tại đây'+ N'
Hoặc 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 SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Tờ trình chủ trương số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công. Anh/Chị 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'
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 END ---- END SETUP MAIL THU KI IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID NOT IN ('GDK_TT','PTGDK_TT','TGD','HDQT','TKHDQT','TKTGD','APPROVE'))) BEGIN SELECT @TILTER_MAIL+N'Tờ trình chủ trương số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID ='APPROVE')) BEGIN ----SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT N'Tờ trình chủ trương số '+ @CODE +N' đã được phê duyệt hoàn tất' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được phê duyệt hoàn tất và phát sinh phiếu yêu cầu mua sắm .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết tờ trình.' + @footer AS MESSAGECONTENT END END RETURN 0 END END ELSE IF(@p_TYPE='RESEND_REQUEST_DOC_PROCESS_Approve') --- LUCTV 28.11.2022 BO SUNG THEM NOI DUNG MAIL GỬI LẠI URL ĐỂ THƯ KÝ TGD GỬI CEO BEGIN SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_NAME FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID) IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC_DT prdd WHERE prdd.REQ_ID = @p_ID)) BEGIN SET @IS_TTMS = 0 END ELSE BEGIN SET @IS_TTMS = 1 END IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('TGD','HDQT'))) BEGIN SELECT @TILTER_MAIL +CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương' ELSE N'tờ trình điều chuyển' END + N' số '+ @CODE +N' vừa được gửi lại mail chứa URL để gửi Ban Lãnh Đạo phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị Ban Thư Ký' + N',

' + CASE WHEN @IS_TTMS = 1 THEN N'Tờ trình chủ trương' ELSE N'Tờ trình điều chuyển' END + N' số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Ban Lãnh Đạo phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để copy URL và gửi Ban Lãnh Đạo phê duyệt.' + @footer AS MESSAGECONTENT RETURN 0 END END --- END LUCTV 28.11.2022 ------------------------- ---------PHIẾU YÊU CẦU MUA SẮM ------------------------------- DECLARE @p_CURRENT_PROCESS VARCHAR(20) DECLARE @p_REQUEST_DOC_LINK VARCHAR(200) DECLARE @p_DMMS_TYPE_JOB VARCHAR(20) --------------DVKD gửi YC phê duyệt / DMMS/DVCM gửi YC phê duyệt--------------- IF(@p_TYPE = 'TR_REQUEST_DOC_SendApp' OR @p_TYPE ='TR_REQ_PROCESS_CHILD_Upd') 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) SET @REASON = (SELECT REQ_REASON 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'Phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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 SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') --------Nếu PROCESS là ĐVKD---------- IF(@p_CURRENT_PROCESS = 'APPNEW' OR @p_CURRENT_PROCESS = 'SIGN') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-view;id=' + @p_ID END --------Nếu PROCESS là ĐMMS---------- ELSE IF (@p_CURRENT_PROCESS = 'DMMS') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvms-view;id=' + @p_ID END --------Nếu PROCESS là ĐVCM---------- ELSE IF(@p_CURRENT_PROCESS = 'DVCM') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'RequestDocDVDM-view;id=' + @p_ID END SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT END RETURN 0 END --------------Trưởng ĐV phê duyệt/ cấp duyệt trung gian xác nhận--------------- IF(@p_TYPE = 'TR_REQUEST_DOC_App') BEGIN SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) ---------Khi trưởng ĐV duyệt xong thì sang ĐMMS điều phối------- IF(@p_CURRENT_PROCESS = 'DMMS') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'TransferJob' SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối xử lý .' + N'
Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.' + @footer AS MESSAGECONTENT END ELSE IF(@p_CURRENT_PROCESS = 'APPNEW') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-view;id=' + @p_ID SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT END END ------------Điều phối xử lý---------------- IF ( @p_TYPE ='TR_REQ_PROCESS_CHILD_Ins') BEGIN SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') SET @p_DMMS_TYPE_JOB = ( SELECT TOP 1 TYPE_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_ID AND PROCESS_ID = (SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') AND STATUS_JOB = 'C' ) 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, '')) SET @REASON = (select STUFF( (select '; ' + DTA.REQ_REASON 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, '')) ----------Nếu ng xử lý tiếp theo là KS------- IF(@p_DMMS_TYPE_JOB = 'KS') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'TransferJob' SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối xử lý .' + N'
Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.' + @footer AS MESSAGECONTENT END ----------Nếu ng xử lý tiếp theo là XL------- ELSE IF(@p_DMMS_TYPE_JOB = 'XL') BEGIN ----------Nếu PROCESS là DMMS--------- IF(@p_CURRENT_PROCESS = 'DMMS') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvms-edit;id=' + @p_ID END ----------Nếu PROCESS là DVCM--------- ELSE IF(@p_CURRENT_PROCESS = 'DVCM') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'RequestDocDVDM-edit;id=' + @p_ID END SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị xử lý .' + N'
Anh/Chị vui lòng nhấn vào đây để thực hiện xử lý phiếu yêu cầu.' + @footer AS MESSAGECONTENT END RETURN 0 END -------------DMMS/DCVM phê duyệt------------ IF(@p_TYPE = 'TR_REQ_PROCESS_CHILD_App') BEGIN SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) IF(@p_CURRENT_PROCESS = 'DMMS') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvms-view;id=' + @p_ID SELECT @TILTER_MAIL+N' Phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT END ----------------Nếu PYCMS hoàn tất---------------- IF(@p_CURRENT_PROCESS = 'APPROVE') BEGIN SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được phê duyệt hoàn tất và phát sinh PO .' + @footer AS MESSAGECONTENT END ----------------Nếu PYCMS đến DVCM------------------ ELSE IF (@p_CURRENT_PROCESS = 'DVCM') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'TransferJob' SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối xử lý .' + N'
Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.' + @footer AS MESSAGECONTENT END ----------------Nếu PYCMS đến GDK HT--------------- ELSE IF(@p_CURRENT_PROCESS = 'GDK_PYC') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'RequestDocProcess-view;id=' + @p_ID SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT END END --------------Phê duyệt PYCMS----------------- IF(@p_TYPE='TR_REQUEST_DOC_PROCESS_Approve') BEGIN SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON 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, --@p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + --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 ----------------TH phiếu chưa hoàn tất----------- IF(@p_CURRENT_PROCESS <> 'APPROVE') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'RequestDocProcess-view;id=' + @p_ID SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT END ----------------TH phiếu đã hoàn tất----------- ELSE IF (@p_CURRENT_PROCESS = 'APPROVE') BEGIN SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được phê duyệt hoàn tất và phát sinh PO .' + @footer AS MESSAGECONTENT END END ----------------------BAODNQ 20/10/2022 : DMMS CHUYỂN CHO DVCM----------------- IF(@p_TYPE = 'TR_REQUEST_DOC_MOVE_DVCM') BEGIN SET @p_REQUEST_DOC_LINK = @URL + 'TransferJob' SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm số '+ @CODE+ N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu mua sắm: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị điều phối xử lý .' + N'
Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.' + @footer AS MESSAGECONTENT END ----------------------ENDBAODNQ------------------------------ ------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ở '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin trụ sở số: ' + @CODE+ N' đang chờ Anh/Chị 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ở '+ @CODE+ N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin trụ sở: ' +@CODE + N' đã được xác nhận và đang chờ Anh/Chị 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ở '+ @CODE+ N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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 SET @CODE = (SELECT B.BUILDING_NAME FROM BUD_CONTRACT_MASTER A LEFT JOIN BUD_MASTER B ON A.BUILDING_ID = B.BUILDING_ID WHERE A.CONTRACT_ID = @p_ID ) SELECT @TILTER_MAIL+N' Thông báo thông tin DTSD nội bộ cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin DTSD nội bộ của trụ sở: ' +@CODE+N' đang chờ Anh/Chị 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 SET @CODE = (SELECT B.BUILDING_NAME FROM BUD_CONTRACT_MASTER A LEFT JOIN BUD_MASTER B ON A.BUILDING_ID = B.BUILDING_ID WHERE A.CONTRACT_ID = @p_ID ) SELECT @TILTER_MAIL+N' Thông báo thông tin DTSD nội bộ cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin DTSD nội bộ của trụ sở: ' +@CODE+N' đã được xác nhận và đang chờ Anh/Chị 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 SET @CODE = (SELECT B.BUILDING_NAME FROM BUD_CONTRACT_MASTER A LEFT JOIN BUD_MASTER B ON A.BUILDING_ID = B.BUILDING_ID WHERE A.CONTRACT_ID = @p_ID ) SELECT @TILTER_MAIL+N' Thông báo thông tin DTSD nội bộ đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin DTSD nội bộ của 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 -----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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đang chờ Anh/Chị 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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đã được xác nhận và đang chờ Anh/Chị 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, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + 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 15/9/2022: Quản lý TSCĐ/CCLĐ-------- DECLARE @SYS_PREFIX VARCHAR(15),@PAGE NVARCHAR(200),@URLPAGE VARCHAR(2000) ----- Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý - HCQT -------- --IF(@p_TYPE = 'ASS_ADDNEW_BVB_HCQT_APP') IF(@p_TYPE = 'ASS_SEND_TDV') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'ASA' THEN 'ass-t-add-new-bvb-view;id=' WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-view;id=' WHEN 'ASSL' THEN 'ass-liq-bvb-hc-view;id=' WHEN 'TFS' THEN 'ass-transfer-multi-view;id=' WHEN 'SMA' THEN 'ass-use-multi-bvb-master-view;id=' WHEN 'ASSD' THEN 'ass-update-view;id=' WHEN 'ACAC' THEN 'ass-collect-cost-allocation-view;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+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 IF(@p_TYPE = 'ASS_INVENTORY_MAIN') BEGIN SELECT @TILTER_MAIL+N'Thông báo kiểm kê tài sản cần phê duyệt ' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch kiểm kê 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 IF(@p_TYPE = 'ASS_SEND_GDV') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'ASA' THEN 'ass-t-add-new-bvb-kt-edit;id=' WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-view;id=' WHEN 'ASSL' THEN 'ass-liq-bvb-kt-edit;id=' WHEN 'TFS' THEN 'ass-transfer-multi-kt-edit;id=' WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-edit;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' cần xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được giao dịch viên xử lý.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'ASS_SEND_KSV') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'ASA' THEN 'ass-t-add-new-bvb-kt-view;id=' WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-view;id=' WHEN 'ASSL' THEN 'ass-liq-bvb-kt-view;id=' WHEN 'TFS' THEN 'ass-transfer-multi-kt-view;id=' WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-view;id=' WHEN 'ASSD' THEN 'ass-update-view;id=' WHEN 'ACAC' THEN 'ass-collect-cost-allocation-view;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được kiểm soát viên phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'ASS_SEND_CONFIRM') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'SMAC' THEN 'ass-collect-confirm-view;id=' WHEN 'SMA' THEN 'ass-use-confirm-master-view;id=' WHEN 'ASSIM' THEN 'ass-inventory-confirm-view;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo xác nhận '+LOWER(@PAGE)+N' cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch xác nhận '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được trưởng đơn vị xác nhận phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'ASS_INVENTORY_RECIVE_MAIL') BEGIN IF(EXISTS(SELECT 1 FROM ASS_INVENTORY_MASTER WHERE SIGN_USER IS NOT NULL AND CHECKER_ID_DVKD IS NULL AND INVENT_ID=@p_ID)) BEGIN SELECT @TILTER_MAIL+N'Thông báo kiểm kê tài sản cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch kiểm kê có ID: '+@p_ID+ N' cần được trưởng đơn vị xác nhận phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END ELSE BEGIN SELECT @TILTER_MAIL+N'Thông báo kiểm kê tài sản cần nhận xét' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch kiểm kê có ID: '+@p_ID+ N' cần được nhận xét.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END END IF(@p_TYPE = 'ASS_REJECT_NT') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'ASA' THEN 'ass-t-add-new-bvb-edit;id=' WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-edit;id=' WHEN 'ASSD' THEN 'ass-update-edit;id=' WHEN 'ASSL' THEN 'ass-liq-bvb-hc-edit;id=' WHEN 'TFS' THEN 'ass-transfer-multi-edit;id=' WHEN 'SMA' THEN 'ass-use-multi-bvb-master-edit;id=' WHEN 'ACAC' THEN 'ass-collect-cost-allocation-edit;id=' WHEN 'CON' THEN 'con-request-doc-edit;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' bị trả về' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' bị từ chối.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'ASS_REJECT_GDV') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'ASA' THEN 'ass-t-add-new-bvb-kt-edit;id=' WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-edit;id=' WHEN 'ASSL' THEN 'ass-liq-bvb-kt-edit;id=' WHEN 'TFS' THEN 'ass-transfer-multi-kt-edit;id=' WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-edit;id='END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' bị từ chối' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' bị từ chối.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'ASS_REJECT_HC') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'ASA' THEN 'ass-t-add-new-bvb-edit;id=' WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-edit;id=' WHEN 'ASSL' THEN 'ass-liq-bvb-hc-edit;id=' WHEN 'TFS' THEN 'ass-transfer-multi-edit;id=' WHEN 'SMA' THEN 'ass-use-multi-bvb-master-edit;id=' WHEN 'ASSD' THEN 'ass-update-edit;id=' WHEN 'ACAC' THEN 'ass-collect-cost-allocation-edit;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' bị từ chối' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' bị từ chối.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END --IF(@p_TYPE = 'ASS_SEND_CONFIRM') --BEGIN -- --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý -- SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( -- SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val -- )x) -- SELECT @PAGE = sp.Description, -- @URLPAGE=(CASE sp.Prefix -- WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-view;id=' -- WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-view;id='END) -- FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX --SELECT @TILTER_MAIL+N'Thông báo xác nhận '+LOWER(@PAGE)+N' cần phê duyệt' AS TITLE, -- @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + -- N',

Anh/Chị có giao dịch xác nhận'+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được kiểm soát viên phê duyệt.' + -- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' -- + -- @footer -- AS MESSAGECONTENT --END IF(@p_TYPE = 'ASS_APPROVED') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'ASA' THEN 'ass-t-add-new-bvb-view;id=' WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-view;id=' WHEN 'ASSL' THEN 'ass-liq-bvb-hc-view;id=' WHEN 'TFS' THEN 'ass-transfer-multi-view;id=' WHEN 'SMA' THEN 'ass-use-multi-bvb-master-view;id=' WHEN 'ASSD' THEN 'ass-update-view;id=' WHEN 'ACAC' THEN 'ass-collect-cost-allocation-view;id=' WHEN 'ACAC' THEN 'ass-inventory-view;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' đã được phê duyệt hoàn tất' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' đã được phê duyệt hoàn tất' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'ASS_TRANSFER_CONFIRM_HANDOVER') BEGIN SELECT @TILTER_MAIL+N'Thông báo xác nhận bàn giao tài sản điều chuyển cần được xác nhận' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch xác nhận bàn giao tài sản điều chuyển có ID: '+@p_ID+ N' cần được xác nhận.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'ASS_TRANSFER_CONFIRM_RECEIVER') BEGIN SELECT @TILTER_MAIL+N'Thông báo xác nhận bàn nhận tài sản điều chuyển cần được xác nhận' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch xác nhận nhận tài sản điều chuyển có ID: '+@p_ID+ N' cần được xác nhận.' + 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, -- @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + -- N',

Anh/Chị 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, -- @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + -- N',

Anh/Chị 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, -- @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + -- N',

Anh/Chị 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, -- @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + -- N',

Anh/Chị 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, -- @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + -- N',

Anh/Chị 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 ------------------BAODNQ 15/2/2022: Quản lý BDS--------------------- -----Quản lý BDS - gửi YC phê duyệt-------- IF(@p_TYPE = 'RET_MASTER_SEND_APPROVE') BEGIN SELECT @TILTER_MAIL+N' Thông báo thông tin bất động sản cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin bất động sản : ' + @p_ID + N' đang chờ Anh/Chị 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ý BDS - cấp phê duyệt trung gian đã xác nhận-------- IF(@p_TYPE = 'RET_MASTER_CONFIRM') BEGIN SELECT @TILTER_MAIL+N' Thông báo thông tin bất động sản cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin bất động sản : ' + @p_ID + N' đã được xác nhận và đang chờ Anh/Chị 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ý BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'RET_MASTER_APPROVED') BEGIN SELECT @TILTER_MAIL+N' Thông báo thông tin bất động sản đã được duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin bất động sản : ' + @p_ID + 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 -----Thông tin sửa chữa BDS - gửi YC phê duyệt-------- IF(@p_TYPE = 'RET_REPAIR_SEND_APPROVE') BEGIN SET @CODE = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo thông tin sửa chữa BĐS cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin sửa chữa BĐS : ' + @CODE + N' đang chờ Anh/Chị 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 -----Thông tin sửa chữa BDS - cấp phê duyệt trung gian đã xác nhận-------- IF(@p_TYPE = 'RET_REPAIR_CONFIRM') BEGIN SET @CODE = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo thông tin sửa chữa BĐS cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin sửa chữa BĐS : ' + @CODE + N' đã được xác nhận và đang chờ Anh/Chị 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 -----Thông tin sửa chữa BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'RET_REPAIR_APPROVED') BEGIN SET @CODE = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_ID) SELECT @TILTER_MAIL+N' Thông báo thông tin sửa chữa BĐS đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin sửa chữa BĐ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 -----BDS thuê làm trụ sở CN/PGD - gửi YC phê duyệt-------- IF(@p_TYPE = 'REAL_ESTATE_R_H_SEND_APPROVE') BEGIN SELECT @TILTER_MAIL+N' Thông báo BĐS đi thuê cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin BĐS đi thuê: ' + @p_ID + N' đang chờ Anh/Chị 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 -----BDS thuê làm trụ sở CN/PGD - cấp phê duyệt trung gian đã xác nhận-------- IF(@p_TYPE = 'REAL_ESTATE_R_H_CONFIRM') BEGIN SELECT @TILTER_MAIL+N' Thông báo BĐS đi thuê cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin BĐS đi thuê: ' + @p_ID + N' đã được xác nhận và đang chờ Anh/Chị 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 -----BDS thuê làm trụ sở CN/PGD - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'REAL_ESTATE_R_H_APPROVED') BEGIN SELECT @TILTER_MAIL+N' Thông báo BĐS đi thuê đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin BĐS đi thuê số: ' + @p_ID + 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 -----BDS đang hoàn thiện thủ tục pháp lý - gửi YC phê duyệt-------- IF(@p_TYPE = 'REAL_ESTATE_L_C_SEND_APPROVE') BEGIN SELECT @TILTER_MAIL+N' Thông báo BĐS đang hoàn thiện pháp lý cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin BĐS đang hoàn thiện thủ tục pháp lý số: ' + @p_ID + N' đang chờ Anh/Chị 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 -----BDS đang hoàn thiện thủ tục pháp lý - cấp phê duyệt trung gian đã xác nhận-------- IF(@p_TYPE = 'REAL_ESTATE_L_C_CONFIRM') BEGIN SELECT @TILTER_MAIL+N' Thông báo BĐS đang hoàn thiện pháp lý cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin BĐS đang hoàn thiện thủ tục pháp lý số: ' + @p_ID + N' đã được xác nhận và đang chờ Anh/Chị 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 -----BDS đang hoàn thiện thủ tục pháp lý - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'REAL_ESTATE_L_C_APPROVED') BEGIN SELECT @TILTER_MAIL+N' Thông báo BĐS đang hoàn thiện pháp lý đã được duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin BĐS đang hoàn thiện thủ tục pháp lý số: ' + @p_ID + 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 -----Phiếu yêu cầu công tác - cấp gửi cấp phê duyệt trung gian-------- IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SEND') BEGIN DECLARE @SIGN_USER VARCHAR(20) SET @SIGN_USER = (SELECT SIGN_USER FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @p_ID) SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) IF (@SIGN_USER ='TKTGD') BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu công tác số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công. Anh/Chị 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'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phiếu yêu cầu công tác.' + @footer + @footer AS MESSAGECONTENT RETURN 0 END ELSE IF (@SIGN_USER IS NOT NULL) BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu công tác số: ' + @CODE + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT RETURN 0 END END -----Phiếu yêu cầu công tác - cấp gửi Trưởng phòng-------- IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SIGN') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) IF(EXISTS(SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_ID AND STATUS='C' AND ROLE_USER IN('GDK','PTGD','TGD'))) BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị Ban Lãnh Đạo' + N',

' + N'Phiếu yêu cầu công tác số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu công tác cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT RETURN 0 END END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_TDV_APP') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) IF(EXISTS(SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_ID AND STATUS='C' AND ROLE_USER IN('GDK','PTGD','TGD'))) BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị Ban Lãnh Đạo' + N',

' + N'Phiếu yêu cầu công tác số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' người tạo thay đổi lưới giờ bay và xác nhận hoàn tất đang chờ Anh/Chị phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu công tác cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' người tạo thay đổi lưới giờ bay và xác nhận hoàn tất đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT RETURN 0 END END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SIGN_APP') BEGIN DECLARE @SIGN VARCHAR(20) SET @SIGN = (SELECT SIGN_USER FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @p_ID) SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) IF (@SIGN ='TKTGD') BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu công tác số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được người tạo thay đổi lưới giờ bay và xác nhận hoàn tất. Anh/Chị 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'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phiếu yêu cầu công tác.' + @footer AS MESSAGECONTENT RETURN 0 END ELSE IF (@SIGN_USER IS NOT NULL) BEGIN SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu công tác số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được người tạo thay đổi lưới giờ bay và xác nhận hoàn tất. Đang chờ Anh/Chị phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.' + @footer AS MESSAGECONTENT RETURN 0 END END -----Phiếu yêu cầu công tác - cấp gửi NVDV-------- IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SEND_HOAPP') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được xác nhận và đang chờ Anh/Chị xử lý. Đang chờ Anh/Chị phê duyệt' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xử lý yêu cầu.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SEND_TRAIN_UPD') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' người tạo đã thay đổi lộ trình. Đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SEND_NVDV') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được nhân viên xử lý gửi phê duyệt thành công và đang chờ Anh/Chị xử lý.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xử lý yêu cầu.' + @footer AS MESSAGECONTENT END -----Phiếu yêu cầu công tác - Người tạo chọn vé-------- IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_CHECK') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được xác nhận và đang chờ Anh/Chị chọn vé.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xử lý yêu cầu.' + @footer AS MESSAGECONTENT END -----Phiếu yêu cầu công tác - gửi NVDV đặt vé-------- IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_TICKET') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' người tạo đã chọn vé và đang chờ Anh/Chị xử lý.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xử lý yêu cầu.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_NOFI') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' đã được book vé' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được book vé và đang chờ Anh/Chị xác nhận hoàn thành.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xử lý yêu cầu.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_REJECT') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' bị từ chối' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã bị trưởng đơn vị từ chối.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SEND_APP') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' đã được người tạo xác nhận hoàn tất và có thay đổi lưới giờ bay' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' xác nhận hoàn tất, có thay đổi lưới giờ bay và đang chờ Anh/Chị phê duyệt' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SIGN_APP') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' đã được người tạo xác nhận hoàn tất và có thay đổi lưới giờ bay' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' xác nhận hoàn tất, có thay đổi lưới giờ bay và đang chờ Anh/Chị phê duyệt' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_CANCEL') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' đã bị hủy' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã bị hủy' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_APPROVED') BEGIN SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SET @REASON = (SELECT REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu công tác số '+ @CODE +N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -----Phiếu yêu cầu xe - gửi YC phê duyệt-------- IF(@p_TYPE = 'TR_REQUEST_CAR_SEND_TDV') BEGIN SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_CONFIRM') BEGIN SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'') + N' đã được xác nhận và đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT END DECLARE @N_PLATE VARCHAR(25) IF(@p_TYPE = 'TR_REQUEST_CAR_SEND_USERUPD') BEGIN SELECT @CODE=REQ_CODE,@N_PLATE=N_PLATE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' đã được chuyên viên điều động' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'') + N' đã được chuyên viên điều động xe biển số: '+@N_PLATE+N' và đang chờ Anh/Chị cập nhật thông tin chuyến đi.' + 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 -----Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------- IF(@p_TYPE = 'TR_REQUEST_CAR_APPROVED') BEGIN SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu xe số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_COST_SEND_CONFIRM') BEGIN SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ xác nhận chi phí' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đang chờ Anh/Chị xác nhận chi phí.' + 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 -----Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, gửi mail TĐV-------- IF(@p_TYPE = 'TR_REQUEST_CAR_COST_CONFIRM') BEGIN SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'') + N' đã được người tạo xác nhận và đang chờ Anh/Chị phê duyệt chi phí.' + 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 IF(@p_TYPE = 'TR_REQUEST_CAR_COST_App') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE + N'. V/v ' + ISNULL(@REASON,'')+ N' đã được trưởng phòng xác nhận và đang chờ Anh/Chị phê duyệt chi phí.' + 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 IF(@p_TYPE = 'TR_REQUEST_CAR_COST_CV_App') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã được chuyên viên điều động xe xác nhận và đang chờ Anh/Chị phê duyệt chi phí.' + 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 IF(@p_TYPE = 'TR_REQUEST_CAR_REJECT_TDV') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' bị trả về' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã bị trưởng đơn vị trả về!' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_REJECT_MAKER') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' bị trả về' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã bị người tạo trả về!' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_REJECT_CV') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' bị trả về' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã bị chuyên viên điều động xe trả về!' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_CANCEL') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' bị huỷ' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã bị chuyên viên điều động xe huỷ!' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_COST_SEND_MAKER') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ xác nhận thông tin' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã được chuyên viên điều động xe thay đổi đang chờ Anh/Chị xác nhận.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xác nhận.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_INFO_SEND_MAKER') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ xác nhận thông tin' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã được chuyên viên cập nhật chi phí đang chờ Anh/Chị xác nhận.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xác nhận.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_SEND_TDV_C_APP') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N'đã được người tạo xác nhận chi phí và đang chờ Anh/Chị phê duyệt chi phí.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_USERSEND_CV') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SET @CODE = (SELECT REQ_CODE FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID) SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' đã được lái xe cập nhật thông tin' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã được nhân viên lái xe cập nhật đang chờ Anh/Chị xác nhận.' + N'
Anh/Chị vui lòng nhấn vào đây để cập nhật chuyến đi.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REQUEST_CAR_CVSEND_NT') BEGIN SET @REASON = (SELECT TOP(1)REQ_REASON FROM TR_REQUEST_JOB_FORM WHERE REQ_CAR_ID =@p_ID) SELECT @CODE=REQ_CODE,@N_PLATE=N_PLATE,@SIGN_USER=DRIVER_ID FROM dbo.TR_REQUEST_CAR WHERE REQ_ID =@p_ID SELECT @TILTER_MAIL+N'Phiếu yêu cầu xe số '+ @CODE + N' chuyên viên đã điều động xe' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu số: ' + @CODE +N'. V/v ' + ISNULL(@REASON,'')+ N' đã được chuyên viên điều động xe với biển số: '+@N_PLATE+N' và tài xế: '+@SIGN_USER+ N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END -- kho vật lệu IF @p_TYPE = 'MW_IN_KT_APPR' BEGIN SET @CODE = (SELECT IN_CODE FROM MW_IN_MASTER WHERE IN_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N'Phiếu nhập kho vật liệu số ' + @CODE +N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu nhập kho vật liệu số : ' + @CODE + N' đã được phê duyệt thành công.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu nhập kho vật liệu.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'MW_OUT_KT_APPR' BEGIN SET @CODE = (SELECT OUT_CODE FROM MW_OUT WHERE OUT_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N'Phiếu xuất kho vật liệu số ' + @CODE +N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu xuất kho vật liệu số : ' + @CODE + N' đã được phê duyệt thành công.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu xuất kho vật liệu.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'MW_TRANSFER_KT_APPR' BEGIN SET @CODE = (SELECT TRANSFER_CODE FROM MW_TRANSFER WHERE TRANSFER_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N'Phiếu điều chuyển kho vật liệu số ' + @CODE +N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu điều chuyển vật liệu số : ' + @CODE + N' đã được phê duyệt thành công.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu điều chuyển vật liệu.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'MW_LIQUID_KT_APPR' BEGIN SET @CODE = (SELECT LIQ_CODE FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N'Phiếu thanh lý kho vật liệu số ' + @CODE +N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu thanh lý vật liệu số : ' + @CODE + N' đã được phê duyệt thành công.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu thanh lý vật liệu.' + @footer AS MESSAGECONTENT RETURN 0 END ----------------BAODNQ 26/10/2022 : GỬI MAIL QUẢN LÝ HỢP ĐỒNG MUA SẮM---------------- --------------NGƯỜI TẠO GỬI YC PHÊ DUYỆT--------------------- IF(@p_TYPE = 'TR_CONTRACT_SEND_APP') BEGIN SET @CODE = (SELECT CONTRACT_CODE FROM TR_CONTRACT WHERE CONTRACT_ID = @p_ID) SET @REASON = (SELECT [CONTRACT_NAME] FROM TR_CONTRACT WHERE CONTRACT_ID = @p_ID) IF(@CODE IS NULL OR @CODE = '') BEGIN SET @CODE = (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @p_ID) + N'(ID hệ thống)' END SELECT @TILTER_MAIL+N'Hợp đồng số '+ @CODE+N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin hợp đồng số : ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') +N' đang chờ Anh/Chị phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt thông tin hợp đồng.' + @footer AS MESSAGECONTENT RETURN 0 END ------------------------TRƯỞNG ĐV ĐÃ DUYỆT, GỬI MAIL CHO NG TẠO--------------------------- IF(@p_TYPE = 'TR_CONTRACT_APPROVE') BEGIN SET @CODE = (SELECT TOP 1 CONTRACT_CODE FROM TR_CONTRACT WHERE CONTRACT_ID = @p_ID) SET @REASON = (SELECT [CONTRACT_NAME] FROM TR_CONTRACT WHERE CONTRACT_ID = @p_ID) IF(@CODE IS NULL OR @CODE = '') BEGIN SET @CODE = (SELECT TOP 1 CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @p_ID) + N'(ID hệ thống)' END SELECT @TILTER_MAIL+N' Thông báo thông tin hợp đồng đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin hợp đồng số : ' + @CODE + N'. V/v '+ ISNULL(@REASON,'') + N' đã được trưởng đơn vị phê duyệt thành công.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết thông tin hợp đồng.' + @footer AS MESSAGECONTENT RETURN 0 END ----------------BAODNQ 26/10/2022 : GỬI MAIL QUẢN LÝ PO---------------- --------------NGƯỜI TẠO GỬI YC PHÊ DUYỆT--------------------- IF(@p_TYPE = 'TR_PO_MASTER_SEND_APP') BEGIN SET @CODE = (SELECT TOP 1 PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @p_ID) SET @REASON = (SELECT PO_NAME FROM TR_PO_MASTER WHERE PO_ID = @p_ID) SELECT @TILTER_MAIL+N'PO số '+ @CODE + N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin PO số : ' + @CODE + N'. V/v '+ @REASON + N' đang chờ Anh/Chị phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt thông tin PO.' + @footer AS MESSAGECONTENT RETURN 0 END ------------------------TRƯỞNG ĐV ĐÃ DUYỆT, GỬI MAIL CHO NG TẠO--------------------------- IF(@p_TYPE = 'TR_PO_MASTER_APPROVE') BEGIN SET @CODE = (SELECT TOP 1 PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @p_ID) SET @REASON = (SELECT PO_NAME FROM TR_PO_MASTER WHERE PO_ID = @p_ID) SELECT @TILTER_MAIL+N'PO số '+ @CODE + N'. V/v '+ @REASON + N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Thông tin PO số : ' + @CODE + N'. V/v '+ @REASON + N' đã được trưởng đơn vị phê duyệt thành công.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết thông tin PO.' + @footer AS MESSAGECONTENT RETURN 0 END -------------------------BAODNQ 30/11/2022 : GỬI MAIL ĐÁNH GIÁ NCC--------------------- DECLARE @p_RATE_SUP_LINK VARCHAR(200) DECLARE @p_RATE_TRANSFER_DT_LINK VARCHAR(200) DECLARE @p_RATE_SUP_DMMS_TYPE_JOB VARCHAR(20) ------------------Ng tạo gửi phê duyệt / NVXL DMMS gửi phê duyệt--------------------- IF(@p_TYPE = 'TR_RATE_SUPPLIER_MASTER_SendAppr' OR @p_TYPE = 'TR_RATE_SUPPLIER_PROCESS_CHILD_Upd') BEGIN SET @CODE = (SELECT TOP 1 RATE_REQ_NO FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_ID) SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') --------------phiếu đánh giá NCC đangchờ đơn vị duyệt-------------- IF(@p_CURRENT_PROCESS = 'SIGN' OR @p_CURRENT_PROCESS = 'APPNEW') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-view;id=' + @p_ID END --------------phiếu đánh giá NCC đang chờ DMMS duyệt-------------- ELSE IF(@p_CURRENT_PROCESS = 'DMMS') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-dmms-view;id=' + @p_ID END SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đánh giá.' + @footer AS MESSAGECONTENT END ---------------------Cấp trung gian duyệt / trưởng đv duyệt--------------- IF(@p_TYPE = 'TR_RATE_SUPPLIER_MASTER_Confirm' OR @p_TYPE = 'TR_RATE_SUPPLIER_MASTER_App') BEGIN SET @CODE = (SELECT TOP 1 RATE_REQ_NO FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_ID) SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') --------------------------TH cấp duyệt trung gian duyệt xong đến trưởng đơn vị duyệt----------- IF(@p_CURRENT_PROCESS = 'APPNEW') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-view;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đánh giá.' + @footer AS MESSAGECONTENT END -------------------------TH trưởng dv duyệt xong đến lãnh đạo khối duyệt------------------------ ELSE IF(@p_CURRENT_PROCESS = 'GDK_APP' OR @p_CURRENT_PROCESS = 'GDKHT_APP') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-approve-view;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đánh giá.' + @footer AS MESSAGECONTENT END -------------------------TH CN/PGD trưởng đơn vị duyệt xong là hoàn tất----------------------------- ELSE IF(@p_CURRENT_PROCESS = 'APPROVE') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-edit;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đã được phê duyệt hoàn tất.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đánh giá.' + @footer AS MESSAGECONTENT END END ---------------------lãnh đạo phụ trách khối duyệt / GDK hỗ trợ duyệt------------------ IF(@p_TYPE = 'TR_RATE_SUPPLIER_MASTER_PROCESS_App') BEGIN SET @CODE = (SELECT TOP 1 RATE_REQ_NO FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_ID) SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') -------------------------TH lãnh đạo khối duyệt xong đến DMMS xử lý------------------------ IF(@p_CURRENT_PROCESS = 'DMMS') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-transfer' SET @p_RATE_TRANSFER_DT_LINK = @URL + 'rate-supplier-transfer-view;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị điều phối xử lý .' + N'
Nếu Anh/Chị muốn điều phối xử lý: Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.' + N'
Nếu Anh/Chị không muốn điều phối xử lý: Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu.' + @footer AS MESSAGECONTENT END -------------------------TH GDK hỗ trợ duyệt xong là hoàn tất------------------------ ELSE IF(@p_CURRENT_PROCESS = 'APPROVE') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-edit;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung số '+ @CODE +N' đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đã được phê duyệt hoàn tất.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu đánh giá.' + @footer AS MESSAGECONTENT END END ---------------------DMMS điều phối phiếu--------------------- IF(@p_TYPE = 'TR_RATE_SUPPLIER_PROCESS_CHILD_Ins') BEGIN SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') SET @p_RATE_SUP_DMMS_TYPE_JOB = ( SELECT TOP 1 TYPE_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_ID AND PROCESS_ID = (SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') AND STATUS_JOB = 'C') SET @CODE = (SELECT TOP 1 RATE_REQ_NO FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_ID) ----------Nếu ng xử lý tiếp theo là KS------- IF(@p_RATE_SUP_DMMS_TYPE_JOB = 'KS') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-transfer' SET @p_RATE_TRANSFER_DT_LINK = @URL + 'rate-supplier-transfer-view;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' chờ điều phối xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị điều phối xử lý .' + N'
Nếu Anh/Chị muốn điều phối xử lý: Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.' + N'
Nếu Anh/Chị không muốn điều phối xử lý: Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu.' + @footer AS MESSAGECONTENT END ELSE IF(@p_RATE_SUP_DMMS_TYPE_JOB = 'XL') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-dmms-edit;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' chờ xử lý' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị xử lý .' + N'
Anh/Chị vui lòng nhấn vào đây để thực hiện xử lý phiếu đánh giá.' + @footer AS MESSAGECONTENT END END ---------------------DMMS phê duyệt--------------------- IF(@p_TYPE = 'TR_RATE_SUPPLIER_PROCESS_CHILD_App') BEGIN SET @p_CURRENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C') SET @CODE = (SELECT TOP 1 RATE_REQ_NO FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_ID) IF(@p_CURRENT_PROCESS = 'DMMS') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-dmms-view;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đánh giá.' + @footer AS MESSAGECONTENT END IF(@p_CURRENT_PROCESS = 'GDKHT_APP') BEGIN SET @p_RATE_SUP_LINK = @URL + 'rate-supplier-approve-view;id=' + @p_ID SELECT @TILTER_MAIL+N'Phiếu đánh giá nhà cung cấp số '+ @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu đánh giá nhà cung cấp số: ' + @CODE + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đánh giá.' + @footer AS MESSAGECONTENT END END --------------------------ENBAODNQ--------------------- IF(@p_TYPE = 'TR_REJECT_GDV') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'TRPY' THEN 'req-temp-pay-list-kt-edit;id=' WHEN 'TADY' THEN 'req-payment-kt-edit;id=' WHEN 'TRPMA' THEN 'req-payment-auto-kt-edit;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX IF (@SYS_PREFIX ='TRPY') SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) ELSE IF (@SYS_PREFIX ='TADY') SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) ELSE IF (@SYS_PREFIX ='TRPMA') SET @CODE = (SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_ID) SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' bị từ chối' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có mã phiếu: '+@CODE+ N' bị từ chối.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END IF(@p_TYPE = 'TR_REJECT_NT') BEGIN --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val )x) SELECT @PAGE = sp.Description, @URLPAGE=(CASE sp.Prefix WHEN 'TRPY' THEN 'req-temp-pay-list-edit;id=' WHEN 'TADY' THEN 'req-payment-edit;id=' WHEN 'TRPMA' THEN 'req-payment-auto-edit;id=' END) FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX IF (@SYS_PREFIX ='TRPY') SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID) ELSE IF (@SYS_PREFIX ='TADY') SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID) ELSE IF (@SYS_PREFIX ='TRPMA') SET @CODE = (SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_ID) SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' bị từ chối' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Anh/Chị có giao dịch '+LOWER(@PAGE)+N' có mã phiếu: '+@CODE+ N' bị từ chối.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT END ---START hieuhm 09/11/2022 Gửi phê duyệt công trình, gửi mail cho người duyệt----- IF(@p_TYPE = 'CON_MASTER_SendApp') BEGIN SET @CODE = (SELECT CONSTRUCT_CODE FROM CON_MASTER WHERE CONSTRUCT_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo công trình cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Công trình: ' + @CODE + N' đang chờ Anh/Chị 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.' + @footer AS MESSAGECONTENT RETURN 0 END ---END hieuhm 09/11/2022 Gửi phê duyệt công trình, gửi mail cho người duyệt----- ---START hieuhm 11/11/2022 Phê duyệt công trình, gửi mail cho người tạo----- IF(@p_TYPE = 'CON_MASTER_APP') BEGIN SET @CODE = (SELECT CONSTRUCT_CODE FROM CON_MASTER WHERE CONSTRUCT_ID =@p_ID) SELECT @TILTER_MAIL+N' Thông báo công trình đã được phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Công trình: ' + @CODE + N' của Anh/Chị đã được phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết công trình.' + @footer AS MESSAGECONTENT RETURN 0 END ---END hieuhm 11/11/2022 Phê duyệt công trình, gửi mail cho người tạo----- ---START hieuhm 16/11/2022 Gửi phê duyệt và phê duyệt layout bản vẽ, gửi mail cho người duyệt----- IF(@p_TYPE = 'CON_LAYOUT_BLUEPRINT_App' OR @p_TYPE = 'CON_LAYOUT_BLUEPRINT_SendApp') BEGIN SET @CODE = (SELECT CON_LAYOUT_BLUEPRINT_ID FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID =@p_ID) SELECT @TILTER_MAIL+N'Thông báo layout bản vẽ cần phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Layout bản vẽ: ' + @CODE + N' đang chờ Anh/Chị phê duyệt .' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt layout bản vẽ.' + @footer AS MESSAGECONTENT RETURN 0 END ---END hieuhm 16/11/2022 Gửi phê duyệt và phê duyệt layout bản vẽ, gửi mail cho người duyệt----- --START LUATNDV 16/2/23 SENT APPROVE TEMPLATE ONL DECLARE @REPORT_NO NVARCHAR(50) DECLARE @TITLE NVARCHAR(1000) SET @TITLE = ISNULL((SELECT TITLE FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID =@p_ID),'') IF(@p_TYPE = 'CM_TEMPLATE_ONL_App') BEGIN SET @REPORT_NO = (SELECT REPORT_NO FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID =@p_ID) SELECT @TILTER_MAIL + N' Tờ trình nghiệp vụ số ' + @REPORT_NO + N' cần phê duyệt' AS TITLE, '
'+ @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình nghiệp vụ số: ' + @REPORT_NO + N'. V/v: ' + @TITLE + N' chờ Anh/Chị 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.' + @footer +'
' AS MESSAGECONTENT RETURN 0 END --END LUATNDV 16/2/23 SENT APPROVE TEMPLATE ONL --START LUATNDV 16/2/23 SENT REJECT TEMPLATE ONL IF(@p_TYPE = 'CM_TEMPLATE_ONL_Reject') BEGIN SET @REPORT_NO = (SELECT REPORT_NO FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID =@p_ID) SELECT @TILTER_MAIL + N'Tờ trình nghiệp vụ số ' + @REPORT_NO + N' bị từ chối' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình nghiệp vụ số: ' + @REPORT_NO + N'. V/v: ' + @TITLE + N' đã bị từ chối.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT RETURN 0 END --END LUATNDV 16/2/23 SENT AUTHORITY TEMPLATE ONL IF(@p_TYPE = 'CM_TEMPLATE_ONL_Authority') BEGIN SET @REPORT_NO = (SELECT REPORT_NO FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID =@p_ID) SELECT @TILTER_MAIL + N'Tờ trình nghiệp vụ số ' + @REPORT_NO + N' được ủy quyền phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Tờ trình nghiệp vụ: ' + @REPORT_NO + N'. V/v: ' + @TITLE + N' đã được ủy quyền phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.' + @footer AS MESSAGECONTENT RETURN 0 END --END LUATNDV 16/2/23 SENT AUTHORITY TEMPLATE ONL --START hieuhm 23/02/2023 nội dung gửi mail thanh toán tự động IF @p_TYPE = 'TR_REQ_PAYMENT_AUTO_SEND_APR' BEGIN SET @CODE = (SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N'Phiếu yêu cầu thanh toán tự động số ' + @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu thanh toán tự động số: ' + @CODE + N' đang chờ phê duyệt.' + + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu thanh toán tự động.' + @footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'TR_REQ_PAYMENT_AUTO_CONFIRM' BEGIN SET @CODE = (SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_ID) --SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11))) SELECT @TILTER_MAIL+N'Phiếu yêu cầu thanh toán tự động số ' + @CODE +N' chờ phê duyệt' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu thanh toán tự động số: ' + @CODE + N' đang chờ phê duyệt.' + N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu thanh toán tự động.' +@footer AS MESSAGECONTENT RETURN 0 END IF @p_TYPE = 'TR_REQ_PAYMENT_AUTO_APR' BEGIN SET @CODE = (SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_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 yêu cầu thanh toán tự động' AS TITLE, @p_MESSAGE_HEAD + N'Kính gửi Anh/Chị' + N',

Phiếu yêu cầu thanh toán tự động số: ' + @CODE + N' đang chờ kiểm soát viên điều phối cho giao dịch viên.' + N'

Nếu muốn điều phối: Anh/Chị sử dụng màn hình: Quản lý thanh toán tạm ứng / Điều phối PYC thanh toán tự động tại đây' + N'
Hoặc Anh/Chị vui lòng nhấn vào đây để xem chi tiết phiếu yêu cầu thanh toán tự động.' + @footer AS MESSAGECONTENT RETURN 0 END --end hieuhm 23/02/2023 nội dung gửi mail thanh toán tự động GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PAY_AUTO_SCAN]' GO ALTER PROCEDURE [dbo].[PAY_AUTO_SCAN] @p_APP_DT VARCHAR(20) AS BEGIN TRANSACTION IF(ISNULL(@p_APP_DT, '') = '') BEGIN SET @p_APP_DT = GETDATE() END DECLARE @LIST_REQ_PAYMENT VARCHAR(MAX) = ''; DECLARE @REQ_PAY_AUTO_ID VARCHAR(20), @REQ_PAY_AUTO_CODE VARCHAR(50), @REQ_PAY_AUTO_TYPE VARCHAR(15), @REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(15), @REQ_PAY_AUTO_STATUS VARCHAR(15), @REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20), @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20), @BRANCH_CREATE VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(15), @CONFIRM_NOTE NVARCHAR(MAX), @CONTRACT_ID VARCHAR(20), @TRANSFER_MAKER VARCHAR(20), @TRANSFER_DT VARCHAR(20), @PROCESS VARCHAR(15), @AUTH_STATUS_KT VARCHAR(1), @RECORD_STATUS VARCHAR(1), @MAKER_ID VARCHAR(20), @CHECKER_ID VARCHAR(20), @MAKER_ID_KT VARCHAR(20), @CHECKER_ID_KT VARCHAR(20), @BRANCH_NAME NVARCHAR(250), @REQ_PAY_AUTO_SERVICE_TYPE_NAME NVARCHAR(250), @CONTRACT_CODE VARCHAR(20) DECLARE cursorPaymentAuto CURSOR LOCAL FOR -- LAY CAC PHIEU YEU CAU THANH TOAN TU DONG CON HIEU LUC SELECT A.REQ_PAY_AUTO_ID, A.REQ_PAY_AUTO_CODE, A.REQ_PAY_AUTO_TYPE, A.REQ_PAY_AUTO_SERVICE_TYPE, A.REQ_PAY_AUTO_STATUS, A.REQ_PAY_AUTO_EFFECTIVE_DT, A.BRANCH_ID, A.DEP_ID, A.BRANCH_CREATE, A.TRANSFER_USER_RECEIVE, A.CONFIRM_NOTE, A.CONTRACT_ID, A.TRANSFER_MAKER, A.TRANSFER_DT, A.PROCESS, A.AUTH_STATUS_KT, A.RECORD_STATUS, A.MAKER_ID, A.CHECKER_ID, A.MAKER_ID_KT, A.CHECKER_ID_KT, B.BRANCH_NAME, C.CONTENT AS REQ_PAY_AUTO_SERVICE_TYPE_NAME, D.CONTRACT_CODE FROM TR_REQ_PAYMENT_AUTO A LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID LEFT JOIN CM_ALLCODE C ON A.REQ_PAY_AUTO_SERVICE_TYPE = C.CDVAL AND CDNAME = 'PAY_SER_AUTO_TS' AND CDTYPE = 'REQ_AUTO' LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID WHERE 1=1 AND A.REQ_PAY_AUTO_TYPE = 'A' AND A.AUTH_STATUS_KT = 'A' AND REQ_PAY_AUTO_STATUS = 'EFFECTIVE' AND A.RECORD_STATUS = '1' AND A.CONTRACT_ID IS NOT NULL AND ( A.IS_MAKER_CONFIRM_CHECKBOX IS NULL OR A.IS_MAKER_CONFIRM_CHECKBOX = '0' -- THANH TOAN TU DONG KHONG CAN XAC NHAN TRUOC OR (A.IS_MAKER_CONFIRM_CHECKBOX = '1' AND A.IS_MAKER_CONFIRM = '1') -- THANH TOAN TU DONG CAN XAC NHAN VA DA DUOC XAC NHAN ) Open cursorPaymentAuto -- QUET TUNG PHIEU YEU CAU THANH TOAN TU DONG CON HIEU LUC FETCH NEXT FROM cursorPaymentAuto INTO @REQ_PAY_AUTO_ID, @REQ_PAY_AUTO_CODE, @REQ_PAY_AUTO_TYPE, @REQ_PAY_AUTO_SERVICE_TYPE, @REQ_PAY_AUTO_STATUS, @REQ_PAY_AUTO_EFFECTIVE_DT, @BRANCH_ID, @DEP_ID, @BRANCH_CREATE, @TRANSFER_USER_RECEIVE, @CONFIRM_NOTE, @CONTRACT_ID, @TRANSFER_MAKER, @TRANSFER_DT, @PROCESS, @AUTH_STATUS_KT, @RECORD_STATUS, @MAKER_ID, @CHECKER_ID, @MAKER_ID_KT, @CHECKER_ID_KT, @BRANCH_NAME, @REQ_PAY_AUTO_SERVICE_TYPE_NAME, @CONTRACT_CODE WHILE @@FETCH_STATUS = 0 BEGIN IF(@REQ_PAY_AUTO_STATUS <> 'EFFECTIVE') BEGIN PRINT N'Phiếu yêu cầu thanh toán tự động chưa có hiệu lực' END ELSE BEGIN PRINT '0' -- LAY CAC DONG THANH TOAN CHUA THANH TOAN - CHI LAY 1 LAN 1 KY THANH TOAN DECLARE @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID VARCHAR(20), @EXPECTED_DT VARCHAR(50), @PAY_AUTO_AMT DECIMAL(18,2), @PAY_AUTO_DESC NVARCHAR(1000), @PAY_AUTO_STATUS VARCHAR(15), @START_DT VARCHAR(20), @END_DT VARCHAR(20), @TYPE_PERIOD VARCHAR(20) DECLARE cursorScheduleDetail CURSOR LOCAL FOR SELECT TOP 1 REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, EXPECTED_DT, PAY_AUTO_AMT, PAY_AUTO_DESC, PAY_AUTO_STATUS, START_DT, END_DT, TYPE_PERIOD FROM TR_REQ_PAY_AUTO_SCHEDULE_DETAIL WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND PAY_AUTO_STATUS = 'N' AND EXPECTED_DT < CONVERT(DATE, @p_APP_DT, 103) Open cursorScheduleDetail -- TAO CAC PHIEU THANH TOAN TU DONG FETCH NEXT FROM cursorScheduleDetail INTO @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, @EXPECTED_DT, @PAY_AUTO_AMT, @PAY_AUTO_DESC, @PAY_AUTO_STATUS, @START_DT, @END_DT, @TYPE_PERIOD WHILE @@FETCH_STATUS = 0 BEGIN -- NEU PHIEU LA THANH TOAN BAN TU DONG THI SET LAI GIA TRI DE NGUOI TAO XAC NHAN TRUOC KHI THANH TOAN KY KE TIEP UPDATE TR_REQ_PAYMENT_AUTO SET IS_MAKER_CONFIRM = '0' WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20) DECLARE @DAY VARCHAR(20) = CONVERT(VARCHAR(20), DAY(CONVERT(DATE, @EXPECTED_DT, 103))) DECLARE @MONTH VARCHAR(20) = CONVERT(VARCHAR(20), MONTH(CONVERT(DATE, @EXPECTED_DT, 103))) DECLARE @YEAR VARCHAR(20) = CONVERT(VARCHAR(20), YEAR(CONVERT(DATE, @EXPECTED_DT, 103))) DECLARE @START_DATE VARCHAR(50) = CONVERT(VARCHAR(20), DAY(CONVERT(DATE, @START_DT, 103))) + '/' + CONVERT(VARCHAR(20), MONTH(CONVERT(DATE, @START_DT, 103))) + '/' + CONVERT(VARCHAR(20), YEAR(CONVERT(DATE, @START_DT, 103))) DECLARE @END_DATE VARCHAR(50) = CONVERT(VARCHAR(20), DAY(CONVERT(DATE, @END_DT, 103))) + '/' + CONVERT(VARCHAR(20), MONTH(CONVERT(DATE, @END_DT, 103))) + '/' + CONVERT(VARCHAR(20), YEAR(CONVERT(DATE, @END_DT, 103))) DECLARE @TYPE_PERIOD_NAME NVARCHAR(50) = (SELECT TOP 1 CONTENT FROM CM_ALLCODE WHERE CDVAL = @TYPE_PERIOD AND CDNAME = 'TYPE_PERIOD' AND CDTYPE = 'REQ_AUTO_RECUR') DECLARE @END_PERIOD_DT DATE = CONVERT(DATE, @EXPECTED_DT, 103) SET @END_PERIOD_DT = DATEADD(MONTH, CONVERT(INT, @TYPE_PERIOD), @END_PERIOD_DT) DECLARE @DAY_PERIOD_END VARCHAR(20) = CONVERT(VARCHAR(20), DAY(@END_PERIOD_DT)) DECLARE @MONTH_PERIOD_END VARCHAR(20) = CONVERT(VARCHAR(20), MONTH(@END_PERIOD_DT)) DECLARE @YEAR_PERIOD_END VARCHAR(20) = CONVERT(VARCHAR(20), YEAR(@END_PERIOD_DT)) DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = ( SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) ) IF((SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) <> 'DV0001' AND @BRANCH_ID = 'DV0001') BEGIN SET @BRANCH_MANAGE_NAME = ISNULL (( SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)), '') END /* PRINT '@START_DATE: ' + @START_DATE PRINT '@END_DATE: ' + @END_DATE PRINT '@BRANCH_NAME: ' + @BRANCH_NAME PRINT '@BRANCH_MANAGE_NAME: ' + @BRANCH_MANAGE_NAME PRINT '@REQ_PAY_AUTO_SERVICE_TYPE_NAME: ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME PRINT '@CONTRACT_CODE: ' + @CONTRACT_CODE */ -- TAO PHIEU THANH TOAN PHAN MASTER -- BEGIN KHOI TAO GIA TRI EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @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', @REQ_PAY_ID out IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT -- GET DON VI QUAN LY HOP DONG DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) = ( SELECT TOP 1 BRANCH_ID FROM CM_BRANCH WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) ) SET @BRANCH_CREATE = @BRANCH_MANAGE_ID; SET @BRANCH_ID = @BRANCH_MANAGE_ID; IF(ISNULL(@BRANCH_MANAGE_ID, '') <> 'DV0001') BEGIN SET @DEP_ID = NULL END -- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = '' DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = '' IF(ISNULL(@CONTRACT_CODE, '') = '') BEGIN PRINT '1: ' + @PAY_AUTO_DESC_DETAIL SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' từ ' + @DAY + '/' + @MONTH + '/' + @YEAR + N' đến ' + @DAY_PERIOD_END + '/' + @MONTH_PERIOD_END + '/' + @YEAR_PERIOD_END + N' theo GDNTT số ' + @REQ_PAY_CODE SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' từ ' + @DAY + '/' + @MONTH + '/' + @YEAR + N' đến ' + @DAY_PERIOD_END + '/' + @MONTH_PERIOD_END + '/' + @YEAR_PERIOD_END + N' theo GDNTT số ' + @REQ_PAY_CODE)) END ELSE BEGIN PRINT '2: ' + @PAY_AUTO_DESC_DETAIL SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' từ ' + @DAY + '/' + @MONTH + '/' + @YEAR + N' đến ' + @DAY_PERIOD_END + '/' + @MONTH_PERIOD_END + '/' + @YEAR_PERIOD_END + N' theo hợp đồng số ' + @CONTRACT_CODE + N' theo GDNTT số ' + @REQ_PAY_CODE SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' từ ' + @DAY + '/' + @MONTH + '/' + @YEAR + N' đến ' + @DAY_PERIOD_END + '/' + @MONTH_PERIOD_END + '/' + @YEAR_PERIOD_END + N' theo hợp đồng số ' + @CONTRACT_CODE + N' theo GDNTT số ' + @REQ_PAY_CODE)) END -- END KHOI TAO GIA TRI select * from [TR_REQ_PAYMENT] PRINT '3' INSERT INTO [dbo].[TR_REQ_PAYMENT] (REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY, IS_CREATE_AUTO, TYPE_AUTO, IS_CREATE_AUTO_DONE) VALUES (@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', NULL, NULL, NULL, NULL, NULL, --NULL '1', CONVERT(DATE, @EXPECTED_DT, 103), 'VND', @PAY_AUTO_AMT, NULL, 'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(), --HC GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT @BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), 'admin', '0', 1, 'Y', NULL, 'Y', 'A', 'N') IF(ISNULL(@LIST_REQ_PAYMENT, '') = '') BEGIN SET @LIST_REQ_PAYMENT = @REQ_PAY_ID; END ELSE BEGIN SET @LIST_REQ_PAYMENT = @LIST_REQ_PAYMENT + ',' + @REQ_PAY_ID; END PRINT '4' -- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS] (REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY) VALUES (@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC, 'P', NULL, NULL, NULL, NULL, NULL, --NULL '1', CONVERT(DATE, @EXPECTED_DT, 103), 'VND', @PAY_AUTO_AMT, NULL, 'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(), --HC GETDATE(), 'admin', 'A', 'admin', GETDATE(), @CONFIRM_NOTE, --KT @BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), @TRANSFER_USER_RECEIVE, '0', 1, 'Y', NULL) -- INSERT VAO PL_PROCESS INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@REQ_PAY_ID,'AUTO_APPR','admin',GETDATE(), N'Hệ thống tạo phiếu thanh toán tự động',N'Hệ thống tạo phiếu thanh toán tự động') -- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ 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, DELIVERY_DT) VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103)) PRINT '5' -- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ 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, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @PAY_AUTO_AMT, 'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, N'Từ ' + @DAY + '/' + @MONTH + '/' + @YEAR + N' đến ' + @DAY_PERIOD_END + '/' + @MONTH_PERIOD_END + '/' + @YEAR_PERIOD_END, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL ) PRINT '6' -- TẠO LƯỚI THÔNG TIN HẠNG MỤC NGÂN SÁCH VÀ CHI PHÍ/ /* 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, BUDGET_TYPE, BRANCH_ID, DEP_ID, TLNAME, ROLENAME, BRANCH_TAKE_COST_ID, DEP_TAKE_COST_ID, KHOI_TAKE_COST_ID, BRANCH_KIND) VALUES (@p_BUDGET_ID, @GD_ID, @p_REQ_PAY_AUTO_ID, @TRADE_ID, @AMT_APP, @AMT_DO, @AMT_EXE, @AMT_REMAIN_GD, @p_MAKER_ID, GETDATE(), @p_REQ_TYPE_CURRENCY, @p_RATE, @REASON, @TYPE_COST , @FR_LEVEL, @TO_LEVEL, @MONTH_RATE, @YEAR_RATE, @BUDGET_TYPE, @BRANCH_ID, @DEP_ID, @TLNAME, @RoleName, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @BRANCH_KIND) */ -- TẠO LƯỚI THÔNG TIN PHƯƠNG THỨC THANH TOÁN DECLARE @RECEIVE_ID VARCHAR(20), @RECEIVE_NAME VARCHAR(20), @REQ_PAY_REASON NVARCHAR(1000),@TOTAL_AMT DECIMAL(18, 2),@REQ_PAY_TYPE VARCHAR(20), @REQ_PAY_DESC NVARCHAR(1000),@REQ_PAY_ENTRIES VARCHAR(20), @ACC_NO VARCHAR(20), @ACC_NAME NVARCHAR(250), @ISSUED_BY NVARCHAR(250), @ISSUED_DT VARCHAR(20),@CURRENCY VARCHAR(20),@RATE DECIMAL(18,2),@CHECK_IN VARCHAR(20), @TYPE_TRANSFER VARCHAR(20), @BANKCODE_NAPAS VARCHAR(20), @BANKCODE VARCHAR(20), @BANKNAME NVARCHAR(250), @SUB_ISSUED_BY NVARCHAR(250), @RECEIVER_DEBIT VARCHAR(20), @EMP_ID VARCHAR(20), @TEMP VARCHAR(20), @CREATE_DT VARCHAR(20) DECLARE cursorMethod CURSOR LOCAL FOR SELECT 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, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT FROM TR_REQ_PAY_AUTO_METHOD WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID Open cursorMethod FETCH NEXT FROM cursorMethod INTO @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, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT WHILE @@FETCH_STATUS = 0 BEGIN 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, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT) VALUES (@p_REQ_PAY_METHOD_ID, @REQ_PAY_ID, @RECEIVE_ID, @PAY_AUTO_DESC_DETAIL, @PAY_AUTO_AMT, @REQ_PAY_TYPE, @REQ_PAY_DESC, @REQ_PAY_ENTRIES, '', 'admin', GETDATE(), @ACC_NO, @ACC_NAME, @ISSUED_BY, CONVERT(DATE,@ISSUED_DT,103), @CURRENCY , @RATE, @CHECK_IN, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT ) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM cursorMethod INTO @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, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT END CLOSE cursorMethod DEALLOCATE cursorMethod PRINT '7' -- TẠO LƯỚI THÔNG TIN HẠCH TOÁN DECLARE @FUNCTION_TYPE VARCHAR(15), @TRN_TYPE NVARCHAR(40), @REF_ID VARCHAR(15), @ENTRY_PAIR varchar(50), @DR_CR varchar(2), @DR_CR_NAME nvarchar(50), @ACCT varchar(100), @ACCT_NAME varchar(500), @AMT DECIMAL(18,2), @EXC_RATE DECIMAL(18,2), @TRN_DATE VARCHAR(20), @TRN_DESC nvarchar(1000), @AUTH_STATUS varchar(2), @APPROVE_DT varchar(20), @CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20) DECLARE cursorEntries CURSOR LOCAL FOR SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE, TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID Open cursorEntries PRINT '8' FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE, @TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT; IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT; INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE], [TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL]) VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @PAY_AUTO_AMT, @CURRENCY, @EXC_RATE, @TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE, @TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL END CLOSE cursorEntries DEALLOCATE cursorEntries PRINT '9' --- BAN BUT TOAN VAO CORE DECLARE @RES VARCHAR(10) EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT -- TẠO LƯỚI CHUYỂN TIỀN NGOÀI HỆ THỐNG -- LUOI DON VI CHUYEN DECLARE @BRANCH_TRANFSER_NAME NVARCHAR(255), @TYPE_TRANSFER_ID VARCHAR(15), @PRODUCT_ID VARCHAR(15), @OBJECT_TRANSFER_ID VARCHAR(15), @ACC_NO_TRANSFER VARCHAR(255), @BRANCH_TRANSFER_ID VARCHAR(15) DECLARE cursorTrans CURSOR LOCAL FOR SELECT MAKER_ID, BRANCH_TRANFSER_NAME, TYPE_TRANSFER_ID, PRODUCT_ID, OBJECT_TRANSFER_ID, BRANCH_ID, ACC_NO_TRANSFER, BRANCH_TRANSFER_ID FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_TRANS WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID Open cursorTrans PRINT '10' FETCH NEXT FROM cursorTrans INTO @MAKER_ID_KT, @BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @p_TR_REQ_TRANS_OUTSIDE_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'TR_REQ_OUTSIDE_TRANS', @p_TR_REQ_TRANS_OUTSIDE_ID OUT; IF @p_TR_REQ_TRANS_OUTSIDE_ID='' OR @p_TR_REQ_TRANS_OUTSIDE_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_TRANS_OUTSIDE_TRANS(TR_REQ_TRANS_OUTSIDE_ID ,REQ_PAY_ID ,MAKER_ID , CREATE_DT , AUTH_STATUS, AUTH_STATUS_KT , BRANCH_TRANFSER_NAME,TYPE_TRANSFER_ID , PRODUCT_ID , OBJECT_TRANSFER_ID , BRANCH_ID, ACC_NO_TRANSFER , BRANCH_TRANSFER_ID) VALUES (@p_TR_REQ_TRANS_OUTSIDE_ID ,@REQ_PAY_ID ,'admin' , GETDATE(), NULL , NULL, @BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM cursorTrans INTO @MAKER_ID_KT, @BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID END CLOSE cursorTrans DEALLOCATE cursorTrans PRINT '11' -- LUOI DON VI NHAN DECLARE @CHANEL_PAYMENT_ID VARCHAR(15), @CITAD1_ID VARCHAR(15), @BANK_RECEIVE_ID VARCHAR(250), @OBJECT_RECEIVE_ID VARCHAR(15), @BRANCH_RECEIVE_ID VARCHAR(15), @BRANCH_RECEIVE_NAME NVARCHAR(255), @ACC_NO_RECEIVE VARCHAR(255), @TRADE_AMT DECIMAL(18, 0), @TRADE_DESC NVARCHAR(120), @SUB_BANK_RECEIVE_NAME nvarchar(MAX), @REF_NO VARCHAR(50) DECLARE cursorRec CURSOR LOCAL FOR SELECT MAKER_ID, CHANEL_PAYMENT_ID, CITAD1_ID, BANK_RECEIVE_ID, OBJECT_RECEIVE_ID, BRANCH_RECEIVE_ID, BRANCH_RECEIVE_NAME, ACC_NO_RECEIVE, TRADE_AMT, TRADE_DESC, SUB_BANK_RECEIVE_NAME, ENTRY_PAIR, REF_NO FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_REC WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID Open cursorRec PRINT '12' FETCH NEXT FROM cursorRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @p_REQ_TRANS_OUTSIDE_REC_ID VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_OUTSIDE_REC', @p_REQ_TRANS_OUTSIDE_REC_ID OUT; IF @p_REQ_TRANS_OUTSIDE_REC_ID='' OR @p_REQ_TRANS_OUTSIDE_REC_ID IS NULL GOTO ABORT; INSERT INTO TR_REQ_PAY_TRANS_OUTSIDE_REC(REQ_TRANS_OUTSIDE_REC_ID, REQ_PAY_ID, MAKER_ID, CREATE_DT, AUTH_STATUS, AUTH_STATUS_KT, CHANEL_PAYMENT_ID, CITAD1_ID, BANK_RECEIVE_ID, OBJECT_RECEIVE_ID, BRANCH_RECEIVE_ID, BRANCH_RECEIVE_NAME, ACC_NO_RECEIVE, TRADE_AMT, TRADE_DESC, SUB_BANK_RECEIVE_NAME, ENTRY_PAIR, REF_NO) VALUES (@p_REQ_TRANS_OUTSIDE_REC_ID, @REQ_PAY_ID, 'admin', GETDATE(), NULL, NULL, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @PAY_AUTO_AMT, @PAY_AUTO_TRN_DESC_DETAIL, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM cursorRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO END CLOSE cursorRec DEALLOCATE cursorRec PRINT '13' UPDATE TR_REQ_PAY_AUTO_SCHEDULE_DETAIL SET PAY_AUTO_DESC = @PAY_AUTO_DESC_DETAIL, PAY_AUTO_STATUS = 'Y', EXACT_DT = GETDATE() WHERE REQ_PAY_AUTO_SCHEDULE_DETAIL_ID = @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID FETCH NEXT FROM cursorScheduleDetail INTO @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, @EXPECTED_DT, @PAY_AUTO_AMT, @PAY_AUTO_DESC, @PAY_AUTO_STATUS, @START_DT, @END_DT, @TYPE_PERIOD END CLOSE cursorScheduleDetail DEALLOCATE cursorScheduleDetail END FETCH NEXT FROM cursorPaymentAuto INTO @REQ_PAY_AUTO_ID, @REQ_PAY_AUTO_CODE, @REQ_PAY_AUTO_TYPE, @REQ_PAY_AUTO_SERVICE_TYPE, @REQ_PAY_AUTO_STATUS, @REQ_PAY_AUTO_EFFECTIVE_DT, @BRANCH_ID, @DEP_ID, @BRANCH_CREATE, @TRANSFER_USER_RECEIVE, @CONFIRM_NOTE, @CONTRACT_ID, @TRANSFER_MAKER, @TRANSFER_DT, @PROCESS, @AUTH_STATUS_KT, @RECORD_STATUS, @MAKER_ID, @CHECKER_ID, @MAKER_ID_KT, @CHECKER_ID_KT, @BRANCH_NAME, @REQ_PAY_AUTO_SERVICE_TYPE_NAME, @CONTRACT_CODE END CLOSE cursorPaymentAuto DEALLOCATE cursorPaymentAuto COMMIT TRANSACTION SELECT '0' as Result, @LIST_REQ_PAYMENT list_req_payment, N'Thêm mới thành công' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @LIST_REQ_PAYMENT list_req_payment, N'Lỗi không xác định' ErrorDesc RETURN '-1' End 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(50) = 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 @TABLE_ROLE2 TABLE (ROLE_AUTH VARCHAR(50)) DECLARE @TABLE_DEP TABLE (ROLE_NEW VARCHAR(50), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20)) 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) ) INSERT INTO @TABLE_ROLE2 SELECT @ROLE_ID INSERT INTO @TABLE_ROLE2 SELECT ROLE_NEW 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) OR (EFF_DATE IS NULL OR EXP_DATE IS NULL) ) INSERT INTO @TABLE_DEP SELECT ROLE_NEW, BRANCH_ID, 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) 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) --- LUCTV 22-03-2023: NEU DANG CHO DVCM PYCMS THI CO THE DUYET NGAY IF(@TYPE='PYCMS-DMMS') BEGIN IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='DVCM') AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='DVCM' AND STATUS ='C')) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, 'DONE ENABLE APPROVE PYCMS DVCM' ErrorDesc RETURN '0' END END --- END LUCTV 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 -- NEU LA TPHC O HOI SO IF( EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND DEP_ID = 'DEP000000000014' AND RoleName = 'GDDV')) --OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001' AND DEP_ID = 'DEP000000000014') BEGIN IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND PROCESS <> '' AND PROCESS IS NOT NULL)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc RETURN '-1' END END --doanptt: THU KY DA DIEU PHOI CHO NHAN VIEN XU LY THI KHONG DUOC DUYET NUA ELSE 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 ('KS'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Phiếu đang được điều phối đến nhân viên xử lý' ErrorDesc RETURN '-1' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_ID AND TRASFER_USER_RECIVE = @p_USER_LOGIN AND ISNULL(PROCESS,'') = '')) BEGIN PRINT '1' END ELSE IF ( ( EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND RoleName = 'GDDV') OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001') ) OR EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_ID AND TRASFER_USER_RECIVE = @p_USER_LOGIN AND ISNULL(PROCESS,'') = '') ) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END -- CAC TRUONG HOP CON LAI ELSE BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID) ) 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 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='TR_REQ_PAYMENT') BEGIN IF((SELECT COUNT(*) FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_ID AND TRASFER_USER_RECIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '' AND AUTH_STATUS <> 'A') > 0) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'' ErrorDesc RETURN '0' END IF((SELECT COUNT(*) FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_ID AND TRASFER_USER_RECIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '0' AND AUTH_STATUS <> 'A') > 0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM TR_REQ_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 ( ( SELECT COUNT(*) FROM @TABLE_ROLE2 A WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD') ) = 0 ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc RETURN '-1' END END ELSE IF(@TYPE='TR_REQ_PAYMENT_AUTO') BEGIN -- BEGIN CAP DUYET TRUNG GIAN IF((SELECT COUNT(*) FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '0' AND AUTH_STATUS <> 'A') > 0) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'Cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc RETURN '0' END ELSE IF((SELECT COUNT(*) FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '1' AND AUTH_STATUS <> 'A') > 0) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Cấp phê duyệt trung đã xác nhận phiếu trước đó' ErrorDesc RETURN '-1' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '6' AND ISNULL(REQUEST_STATUS, '') = 'SUSPEND')) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'Cấp phê duyệt trung gian xác nhận tạm dừng phiếu' ErrorDesc RETURN '0' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '7' AND ISNULL(REQUEST_STATUS, '') = 'SUSPEND')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Cấp phê duyệt trung gian đã xác nhận tạm dừng phiếu trước đó' ErrorDesc RETURN '-1' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '9' AND ISNULL(REQUEST_STATUS, '') = 'UNSUSPEND')) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'Cấp phê duyệt trung gian xác nhận khôi phục phiếu' ErrorDesc RETURN '0' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '10' AND ISNULL(REQUEST_STATUS, '') = 'UNSUSPEND')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Cấp phê duyệt trung gian đã xác nhận tạm khôi phục trước đó' ErrorDesc RETURN '-1' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '15' AND ISNULL(REQUEST_STATUS, '') = 'DEL')) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'Cấp phê duyệt trung gian xác nhận hủy phiếu' ErrorDesc RETURN '0' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '16' AND ISNULL(REQUEST_STATUS, '') = 'DEL')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Cấp phê duyệt trung gian đã xác nhận hủy phiếu trước đó' ErrorDesc RETURN '-1' END -- END CAP DUYET TRUNG GIAN IF ( ( SELECT COUNT(*) FROM @TABLE_ROLE2 A WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD') ) = 0 ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc RETURN '-1' END ELSE BEGIN IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS ='U' AND ISNULL(PROCESS, '') IN ('0', '1') AND REQ_PAY_AUTO_ID =@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'TĐV duyệt phiếu, luồng tạo phiếu có hiệu lực' ErrorDesc RETURN '0' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS ='A' AND ISNULL(PROCESS, '') IN ('6', '7') AND REQ_PAY_AUTO_ID =@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'TĐV duyệt phiếu, luồng tạm dừng phiếu' ErrorDesc RETURN '0' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS ='N' AND ISNULL(PROCESS, '') IN ('9', '10') AND REQ_PAY_AUTO_ID =@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'TĐV duyệt phiếu, luồng khôi phục phiếu tạm dừng' ErrorDesc RETURN '0' END ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS ='A' AND ISNULL(PROCESS, '') IN ('15', '16') AND REQ_PAY_AUTO_ID =@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, N'TĐV hủy phiếu, luồng hủy phiếu tạm dừng' ErrorDesc RETURN '0' END ELSE BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Phiếu đã hủy xong. Vui lòng chờ các giao dịch tiếp theo để thực hiện phê duyệt' ErrorDesc RETURN '-1' END END END ELSE IF(@TYPE='TR_REQ_PAYMENT_AUTO_KT') BEGIN IF ( ( SELECT COUNT(*) FROM @TABLE_ROLE2 A WHERE A.ROLE_AUTH IN ('KSV') ) = 0 ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc RETURN '-1' END IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @p_REQ_ID AND PROCESS IN ('2','4','11','13','13.1','17','19','19.1'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Chưa đến bước duyệt' 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, 'NOT DONE' 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, 'NOT DONE' 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 --- LUCTV 22.03.23 DVCM CO THE DUYET NGAY LUC DIEU PHOI IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='DVCM') AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='DVCM' AND STATUS ='C')) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, 'DONE' ErrorDesc RETURN '0' END --- END LUCTV -- 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 -- NEU CAP DUYET LA DVCM THI CO THE DUYET LUON IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVCM' AND (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV')))) BEGIN ROLLBACK TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVDC' AND (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV')))) 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) AND EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID = PR.ROLE_USER)) ))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, 'NOT DONE ENABLE APPROVE' 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, 'NOT DONE' 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, 'NOT DONE' 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, 'NOT DONE' 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'Altering [dbo].[CM_WORKFLOW_APPROVE_DATA]' GO ALTER PROCEDURE [dbo].[CM_WORKFLOW_APPROVE_DATA] @p_REQ_ID varchar(20)=null, @p_DONE BIT = NULL, @p_IsNote BIT = NULL, @p_IsFile BIT = NULL AS BEGIN DECLARE @temp_NONE TABLE ([NONE] CHAR) DECLARE @Is_Back_Day bit=0 DECLARE @Back_Day date IF(EXISTS(SELECT 1 FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID=@p_REQ_ID AND CAST(CREATE_DT AS DATE) > CAST(REPORT_DT AS DATE))) BEGIN SET @Is_Back_Day=1 SET @Back_Day=(SELECT REPORT_DT FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID=@p_REQ_ID AND CREATE_DT>REPORT_DT) END --Table 1 SELECT A.APPROVE_GROUP_ID, A.APPROVE_USERNAME, A.AUTHORITY_NAME, A.STEP_LEVEL, A.PROCESS_STATUS, A.DONE, A.NOTES, A.RECORD_STATUS, A.AUTH_STATUS, A.MAKER_ID, A.CREATE_DT, A.CHECKER_ID, CASE WHEN @Is_Back_Day=1 THEN FORMAT(@Back_Day, 'dd/MM/yyyy') ELSE FORMAT(A.APPROVE_DT, 'dd/MM/yyyy') END AS 'APPROVE_DT', A.REQ_ID, A.IS_REJECT, A.NEED_SEND_EMAIL, A.[TYPE], A.APPROVE_ROOT_ID, A.ORDER_STEP, CASE WHEN GR.APPROVE_USERNAME IS NOT NULL THEN 'TUQ.' + UPPER(ER.POS_NAME) ELSE UPPER( E.POS_NAME ) END AS 'POS_NAME', A.APPROVE_ROOT_ID, UA.TLFullName AS 'APPROVE_FULL_NAME' FROM CM_APPROVE_GROUP A LEFT JOIN TL_USER UA ON UA.TLNANME = A.APPROVE_USERNAME LEFT JOIN CM_EMPLOYEE_LOG E ON E.USER_DOMAIN = UA.TLNANME LEFT JOIN dbo.CM_APPROVE_GROUP GR ON A.APPROVE_ROOT_ID = GR.APPROVE_GROUP_ID LEFT JOIN CM_EMPLOYEE_LOG ER ON GR.APPROVE_USERNAME = ER.USER_DOMAIN WHERE 1=1 AND A.REQ_ID = @p_REQ_ID AND A.DONE = 1 ORDER BY STEP_LEVEL ASC, ORDER_STEP ASC, CREATE_DT ASC --Table 2 IF(@p_IsNote = 1) BEGIN SELECT N'- Yêu cầu đã được ' + CASE WHEN A.[ACTION] = 'AUT' THEN N'uỷ quyền ' WHEN A.[ACTION] = 'ADD' THEN N'tạo ' WHEN A.[ACTION] = 'UPD' THEN N'cập nhật ' WHEN A.[ACTION] = 'APP' THEN N'duyệt ' WHEN A.[ACTION] = 'REJ' THEN N'từ chối ' WHEN A.[ACTION] = 'HAN' THEN N'bàn giao ' WHEN A.[ACTION] = 'SEND' THEN N'gửi đi ' WHEN A.[ACTION] = 'SEND_R' THEN N'gửi lại ' WHEN A.[ACTION] = 'SHARE' THEN N'chia sẻ ' WHEN A.[ACTION] = 'APP_ADMIN' THEN N'duyệt thay ' ELSE '' END + N'bởi ' + UA.TLFullName + CASE WHEN A.[ACTION] = 'AUT' THEN N' cho ' + UG2.TLFullName WHEN A.[ACTION] = 'HAN' THEN N' cho ' + UG2.TLFullName WHEN A.[ACTION] = 'APP_ADMIN' THEN N' (Admin) cho ' + UG2.TLFullName WHEN A.[ACTION] = 'SHARE' THEN + ISNULL(N' cho ' + STUFF((SELECT ', ' + ISNULL(TU.TLFullName, '') FROM CM_TEMPLATE_LOG_SHARE LG LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = LG.SHARER_ID WHERE LG.TEMPLATE_PROCESS_ID = A.[TEMPLATE_PROCESS_ID] AND LG.IS_ADD = 1 FOR XML PATH(''), TYPE).value('.[1]', 'NVARCHAR(MAX)'), 1, 2, '') + ' và ', '') + ISNULL(N' đã hủy chia sẻ '+ STUFF((SELECT ', ' + ISNULL(TU.TLFullName, '') FROM CM_TEMPLATE_LOG_SHARE LG LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = LG.SHARER_ID WHERE LG.TEMPLATE_PROCESS_ID = A.[TEMPLATE_PROCESS_ID] AND LG.IS_ADD = 0 FOR XML PATH(''), TYPE).value('.[1]', 'NVARCHAR(MAX)'), 1, 2, ''), '') ELSE '' END + N' vào lúc: ' + FORMAT(A.APPROVE_DT, 'dd/MM/yyyy HH:mm:ss') + '.' + CASE WHEN A.[ACTION] IN ('APP', 'REJ', 'APP_ADMIN') THEN N' Lý do: ' + a.PROCESS_DESC + '.' ELSE '' END AS 'LOG' FROM CM_TEMPLATE_LOG A LEFT JOIN TL_USER UA ON UA.TLNANME = A.CHECKER_ID --LEFT JOIN CM_APPROVE_GROUP G ON G.APPROVE_GROUP_ID = A.APPROVE_GROUP_ID --LEFT JOIN TL_USER UA2 ON UA2.TLNANME = G.AUTHORITY_NAME LEFT JOIN TL_USER UG2 ON UG2.TLNANME = A.HANDOVER_MAKER_ID WHERE 1=1 AND A.REQ_ID = @p_REQ_ID ORDER BY A.APPROVE_DT DESC END ELSE BEGIN SELECT '' AS 'LOG' FROM @temp_NONE END --Table 3 SELECT N'- ' + UA.TLFullName + FORMAT(A.CREATE_DT, ' (dd/MM/yyyy HH:mm:ss): ') + A.CONTENT + '.' AS 'NOTE' FROM CM_TEMPLATE_NOTE A LEFT JOIN TL_USER UA ON A.TEMPLATE_NOTE_USERNAME = UA.TLNANME WHERE 1=1 AND A.REQ_ID = @p_REQ_ID ORDER BY A.CREATE_DT DESC --Table 4 IF(@p_IsFile = 1) BEGIN DECLARE @FILE_NAME_OLD NVARCHAR(MAX) = NULL, @FILE_NAME_NEW NVARCHAR(MAX) = NULL, @PATH_NEW NVARCHAR(MAX) = NULL, @FILE_TYPE NVARCHAR(MAX) = NULL DECLARE @temp_OLD TABLE ( [FILE_NAME] NVARCHAR(MAX), [INDEX] INT ) DECLARE @temp_NEW TABLE ( [FILE_NAME] NVARCHAR(MAX), [INDEX] INT ) DECLARE @temp_PATH TABLE ( [PATH_NAME] NVARCHAR(MAX), [INDEX] INT ) DECLARE @temp_TYPE TABLE ( [TYPE_NAME] NVARCHAR(MAX), [INDEX] INT ) SELECT TOP 1 @FILE_NAME_OLD = FILE_NAME_OLD, @FILE_NAME_NEW = FILE_NAME_NEW, @PATH_NEW = PATH_NEW, @FILE_TYPE = FILE_TYPE FROM dbo.CM_ATTACH_FILE WHERE REF_ID = @p_REQ_ID ORDER BY ATTACH_DT DESC INSERT INTO @temp_OLD ([FILE_NAME], [INDEX]) SELECT RTRIM(LTRIM(value)) AS 'FILE_NAME', ROW_NUMBER()OVER(ORDER BY (SELECT 1)) AS 'INDEX' FROM WSISPLIT(@FILE_NAME_OLD, '|') INSERT INTO @temp_NEW ([FILE_NAME], [INDEX]) SELECT RTRIM(LTRIM(value)) AS 'FILE_NAME', ROW_NUMBER()OVER(ORDER BY (SELECT 1)) AS 'INDEX' FROM WSISPLIT(@FILE_NAME_NEW, '|') INSERT INTO @temp_PATH ([PATH_NAME], [INDEX]) SELECT RTRIM(LTRIM(value)) AS 'PATH_NAME', ROW_NUMBER()OVER(ORDER BY (SELECT 1)) AS 'INDEX' FROM WSISPLIT(@PATH_NEW, '|') INSERT INTO @temp_TYPE ([TYPE_NAME], [INDEX]) SELECT RTRIM(LTRIM(value)) AS 'TYPE_NAME', ROW_NUMBER()OVER(ORDER BY (SELECT 1)) AS 'INDEX' FROM WSISPLIT(@FILE_TYPE, '|') SELECT CASE WHEN D.[TYPE_NAME] IN ('.xlsx', '.xls') THEN 'excel.png' WHEN D.[TYPE_NAME] IN ('.doc', '.docx') THEN 'word.png' WHEN D.[TYPE_NAME] IN ('.pdf') THEN 'pdf.png' WHEN D.[TYPE_NAME] IN ('.rar') THEN 'rar.png' WHEN D.[TYPE_NAME] IN ('.jpeg', '.png') THEN 'image.png' ELSE 'file.png' END AS 'ICON', A.[FILE_NAME] AS 'FILE_NAME' , CONCAT('api/', C.[PATH_NAME], '/', B.[FILE_NAME]) AS 'FILE_PATH' FROM @temp_OLD A INNER JOIN @temp_NEW B ON B.[INDEX] = A.[INDEX] INNER JOIN @temp_PATH C ON C.[INDEX] = A.[INDEX] INNER JOIN @temp_TYPE D ON D.[INDEX] = A.[INDEX] END ELSE BEGIN SELECT NULL AS 'ICON', NULL AS 'FILE_NAME' , NULL AS 'FILE_PATH' FROM @temp_NONE END END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[rpt_TR_REQUEST_CAR]' GO ALTER PROC [dbo].[rpt_TR_REQUEST_CAR] @p_REQ_ID VARCHAR(15) = NULL AS BEGIN SELECT A.REQ_CODE,B.TLFullName AS EMP_NAME,B.BRANCH_NAME,A.QUANTITY_TRIP,A.MAKER_PHONE,A.ORIGN,a.DESTINATION, CONVERT(VARCHAR,DAY(A.FROM_DATE),2) +'/'+CONVERT(VARCHAR,MONTH(A.FROM_DATE),2) +'/'+CONVERT(VARCHAR,YEAR(A.FROM_DATE),2) AS FROM_DATE, CONVERT(VARCHAR,DAY(A.TO_DATE),2) +'/'+CONVERT(VARCHAR,MONTH(A.TO_DATE),2) +'/'+CONVERT(VARCHAR,YEAR(A.TO_DATE),2) AS TO_DATE, N' Ngày '+CONVERT(VARCHAR,DAY(GETDATE()),2) +N' Tháng '+CONVERT(VARCHAR,MONTH(GETDATE()),2) +N' Năm '+CONVERT(VARCHAR,YEAR(GETDATE()),2) AS [DATE],A.NOTES FROM dbo.TR_REQUEST_CAR A LEFT JOIN dbo.TL_USER B ON B.TLNANME= A.MAKER_ID WHERE REQ_ID=@p_REQ_ID --Phần chữ kí-- DECLARE @S1 NVARCHAR(500),@S2 NVARCHAR(500),@S3 NVARCHAR(500),@S4 NVARCHAR(500),@S5 NVARCHAR(500) SET @S1=(SELECT B.TLFullName +CHAR(10) + N' Đã xác nhận vào lúc ' +CHAR(10) + ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM dbo.PL_REQUEST_PROCESS A LEFT JOIN dbo.TL_USER B ON (A.CHECKER_ID=B.TLNANME) WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='CV_APP') SET @S2=(SELECT B.TLFullName + CHAR(10) + N' Đã xác nhận vào lúc ' +CHAR(10) + ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM dbo.PL_REQUEST_PROCESS A LEFT JOIN dbo.TL_USER B ON (A.CHECKER_ID=B.TLNANME) WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPNEW') SET @S3=(SELECT B.TLFullName + CHAR(10) + N' Đã xác nhận vào lúc ' +CHAR(10) + ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM dbo.PL_REQUEST_PROCESS A LEFT JOIN dbo.TL_USER B ON (A.CHECKER_ID=B.TLNANME) WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='CV_XL') SET @S4=(SELECT B.TLFullName + CHAR(10) + N' Đã xác nhận vào lúc '+ CHAR(10) + ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM dbo.PL_REQUEST_PROCESS A LEFT JOIN dbo.TL_USER B ON (A.CHECKER_ID=B.TLNANME) WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='TDV_C_APP') SET @S5=(SELECT B.TLFullName + CHAR(10) + N' Đã xác nhận vào lúc '+ CHAR(10) + ISNULL(FORMAT(A.APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'') FROM dbo.PL_REQUEST_PROCESS A LEFT JOIN dbo.TL_USER B ON (A.CHECKER_ID=B.TLNANME) WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DONE') IF(EXISTS(SELECT * FROM TR_REQUEST_JOB_FORM trjf JOIN TL_USER tu ON trjf.MAKER_ID=tu.TLNANME WHERE tu.TLSUBBRID='')) SELECT * FROM CM_BRANCH cb SELECT @S1 AS S1,@S2 AS S2,@S3 AS S3,@S4 AS S4,@S5 AS S5 ------XĂNG DẦU------- DECLARE @SUM_XD FLOAT = 0, @TOTAL_AMOUNT_XD FLOAT = 0 SELECT @TOTAL_AMOUNT_XD = SUM(AMOUNT*QUANTITY) FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'XD' SELECT @SUM_XD = SUM(NUMBER_LITERS) FROM TR_REQ_CAR_FUEL WHERE REQ_ID = @p_REQ_ID DECLARE @REFUEL_DATE NVARCHAR(100) SELECT TOP 1 @REFUEL_DATE = FORMAT(REFUEL_DATE,'dd/MM/yyyy') FROM TR_REQ_CAR_FUEL WHERE REQ_ID = @p_REQ_ID ORDER BY REFUEL_DATE DESC --------RỬA XE-------- DECLARE @COUNT_RX INT = 0, @TOTAL_AMOUNT_RX FLOAT = 0 SELECT @COUNT_RX = SUM(QUANTITY) FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'RX' SELECT @TOTAL_AMOUNT_RX = SUM(AMOUNT*QUANTITY) FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'RX' ---------CẦU ĐƯỜNG BẾN BÃI--------- DECLARE @COUNT_CDBB INT = 0, @TOTAL_AMOUNT_CDBB FLOAT = 0 SELECT @COUNT_CDBB = SUM(QUANTITY) FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'CDBB' SELECT @TOTAL_AMOUNT_CDBB = SUM(AMOUNT*QUANTITY) FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'CDBB' ---------CÔNG TÁC PHÍ--------- DECLARE @COUNT_CTP INT = 0, @TOTAL_AMOUNT_CTP FLOAT = 0 SELECT @COUNT_CTP = SUM(QUANTITY) FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'CTP' SELECT @TOTAL_AMOUNT_CTP = SUM(AMOUNT*QUANTITY) FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'CTP' SELECT A.DRIVER_NAME AS DRIVER_NAME, C.N_PLATE AS BIENSOXE, E.CAR_TYPE_NAME AS LOAIXE,C.POWER_RATE AS DMNL, ISNULL(B.OLD_INDEX_NUMBER,0) AS KMD, ISNULL(B.NEW_INDEX_NUMBER,0) AS KMC, ISNULL(B.INDEX_NUMBER,0) AS KMSD, ISNULL(B.OLD_FUEL_NUMBER,0) AS SOTONDAU, ISNULL(B.NEW_FUEL_NUMBER,0) AS SOCONLAI, ISNULL(b.CURR_POWER_RATE,0) AS SOTIEUTHU, FORMAT(A.FROM_DATE,'dd/MM/yyyy,hh:mm:ss tt') AS FROM_DATE,FORMAT(A.TO_DATE,'dd/MM/yyyy,hh:mm:ss tt') AS TO_DATE, ---XĂNG DẦU @REFUEL_DATE AS REFUEL_DATE, ISNULL(FORMAT(@TOTAL_AMOUNT_XD,'#,#', 'vi-VN'),0) AS TOTAL_AMOUNT_XD, ISNULL(@SUM_XD,0) AS SUM_XD, --RỬA XE ISNULL(@COUNT_RX,0) AS COUNT_RX, ISNULL(FORMAT(@TOTAL_AMOUNT_RX,'#,#', 'vi-VN'),0) AS TOTAL_AMOUNT_RX, ---CẦU ĐƯỜNG BẾN BÃI ISNULL(@COUNT_CDBB,0) AS COUNT_CDBB, ISNULL(FORMAT(@TOTAL_AMOUNT_CDBB,'#,#', 'vi-VN'),0) AS TOTAL_AMOUNT_CDBB, ---CÔNG TÁC PHÍ ISNULL(@COUNT_CTP,0) AS COUNT_CTP, ISNULL(FORMAT(@TOTAL_AMOUNT_CTP,'#,#', 'vi-VN'),0) AS TOTAL_AMOUNT_CTP FROM TR_REQUEST_CAR A LEFT JOIN CAR_DRIVE B ON A.CAR_DR_ID = B.CAR_DR_ID LEFT JOIN CAR_MASTER C ON A.CAR_ID = C.CAR_ID --LEFT JOIN TL_USER D ON A.DRIVER_ID = D.TLNANME LEFT JOIN CAR_TYPE E ON C.CAR_TYPE_ID = E.CAR_TYPE_ID WHERE A.REQ_ID = @p_REQ_ID -- EPASS SELECT QUANTITY AS 'SOLUONG', UNIT AS 'DONVITINH', FORMAT(AMOUNT,'#,#', 'vi-VN') AS 'DONGIA', NOTES AS 'GHICHU', FORMAT(QUANTITY * AMOUNT,'#,#', 'vi-VN') AS 'TONGITEN' FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'EP' -- Công tác phí ngoài giờ SELECT QUANTITY AS 'SOLUONG', UNIT AS 'DONVITINH', FORMAT(AMOUNT,'#,#', 'vi-VN') AS 'DONGIA', NOTES AS 'GHICHU', FORMAT(QUANTITY * AMOUNT,'#,#', 'vi-VN') AS 'TONGITEN' FROM TR_REQUEST_CAR_DETAIL WHERE REQ_ID = @p_REQ_ID AND FEE_TYPE = 'NG' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[rpt_CON_REQUEST_DOC_BC01]' GO ALTER PROCEDURE [dbo].[rpt_CON_REQUEST_DOC_BC01] ( @p_LEVEL varchar(15) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_BRANCH_LOGIN varchar(15) = NULL, @p_REQ_CODE nvarchar(100) = NULL, -- SO HIEU TO TRINH @p_TERM_BID nvarchar(100) = NULL, -- HANG MUC @p_YEAR_BUDGET int = NULL, -- NAM NGAN SACH @p_REQ_BUDGET varchar(20) = NULL -- LOAI NGAN SACH ) AS BEGIN IF(@p_BRANCH_ID IS NULL) SET @p_BRANCH_ID = @p_BRANCH_LOGIN --IF(@p_YEAR_BUDGET IS NULL) -- SET @p_YEAR_BUDGET = YEAR(GETDATE()) --DECLARE @F_DAY_THIS_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET - 1) + '-12-01') --DECLARE @L_DAY_THIS_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET) + '-11-30') --DECLARE @F_DAY_PRE_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET - 2) + '-12-01') --DECLARE @L_DAY_PRE_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET - 1) + '-11-30') declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) --SELECT ROW_NUMBER() OVER(ORDER BY(SELECT 1)) AS STT, --dbo.FN_GET_CHINHANH(BR.BRANCH_ID,'KV') AS KV, --CASE WHEN C.BRANCH_NAME_ETX IS NULL OR C.BRANCH_NAME_ETX = '' THEN BR.BRANCH_NAME ELSE C.BRANCH_NAME_ETX END CONSTRUCT_NAME, -- CÔNG TRÌNH --CON_HQ_T.CONTENT HQ_TYPE, --P.REQ_CODE, --P.APPROVE_DT, --P.TOTAL_AMT, --PAID_PRE_YEAR, --PAID_THIS_YEAR, --'' AS NOTES --FROM CON_MASTER C --LEFT JOIN CM_BRANCH BR ON C.BRANCH_ID = BR.BRANCH_ID --INNER JOIN CON_REQUEST_DOC_PARENT_VIEW P ON C.REQUEST_ID = P.REQ_ID --LEFT JOIN ( -- SELECT REQUEST_ID, -- SUM(CASE WHEN PAY_DT >= @F_DAY_THIS_YEAR AND PAY_DT <= @L_DAY_THIS_YEAR THEN AMOUNT ELSE 0 END) AS PAID_THIS_YEAR, -- SUM(CASE WHEN PAY_DT >= @F_DAY_PRE_YEAR AND PAY_DT <= @L_DAY_PRE_YEAR THEN AMOUNT ELSE 0 END) AS PAID_PRE_YEAR -- FROM TR_CONTRACT_PAYMENT PAY -- WHERE REQUEST_ID IS NOT NULL -- GROUP BY REQUEST_ID --) PAY ON C.REQUEST_ID = PAY.REQUEST_ID --LEFT JOIN CM_ALLCODE CON_HQ_T ON CON_HQ_T.CDNAME='REQ_HQ_TYPE' AND CON_HQ_T.CDType='CON' AND C.HQ_TYPE = CON_HQ_T.CDVAL --WHERE ((@P_LEVEL = 'ALL' AND C.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) -- OR (@P_LEVEL = 'UNIT' AND C.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL --) --AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR P.REQ_CODE LIKE '%' + @p_REQ_CODE + '%') --AND (@p_TERM_BID IS NULL OR @p_TERM_BID = '' OR EXISTS (SELECT * FROM BID_MASTER B WHERE B.REQUEST_ID = P.REQ_ID AND B.TERM_BID LIKE '%' + @p_TERM_BID + '%')) --AND (@p_YEAR_BUDGET IS NULL OR @p_YEAR_BUDGET = '' OR P.YEAR_BUDGET = @p_YEAR_BUDGET) --AND (@p_REQ_BUDGET IS NULL OR @p_REQ_BUDGET = '' OR P.BUDGET = @p_REQ_BUDGET) --AND (REQ_DT >= @F_DAY_THIS_YEAR AND REQ_DT <= @L_DAY_THIS_YEAR) --AND C.RECORD_STATUS = '1' AND C.AUTH_STATUS = 'A'--THIEUVQ 18/1/2021 --SELECT N'THEO DÕI NGÂN SÁCH XDCB NĂM ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS TITLE, -- N'Năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) + N' dở dang' AS PAID_PRE_YEAR, -- N'Năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS PAID_THIS_YEAR, -- N'Khoản thanh toán của công trình thuộc ngân sách năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) + N' có ngày thanh toán từ 1/12/' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) AS NOTE_PRE_YEAR, -- N'Khoản thanh toán của công trình thuộc ngân sách năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) + N' có ngày thanh toán từ 1/12/' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) AS NOTE_THIS_YEAR SELECT ROW_NUMBER() OVER(ORDER BY(SELECT 1)) AS STT, dbo.FN_GET_CHINHANH(BR.BRANCH_ID,'KV') AS KV, --CASE WHEN C.BRANCH_NAME_ETX IS NULL OR C.BRANCH_NAME_ETX = '' THEN BR.BRANCH_NAME ELSE C.BRANCH_NAME_ETX END CONSTRUCT_NAME, -- CÔNG TRÌNH C.CONSTRUCT_NAME AS CONSTRUCT_NAME, '' AS NOTES, CONTYPE.CONTENT AS CONST_TYPE, RQ.REQ_CODE, RM.REQ_NAME, RQ.TOTAL_AMT, RM.EFFEC_DT AS APPROVE_DT,CON_HQ_T.CONTENT HQ_TYPE, ISNULL(TU.TONG_TAM_UNG,0) AS TOTAL_AD, ISNULL(TT.TONG_THANH_TOAN,0) + ISNULL(SV.TONG_THANH_TOAN_TRUC_TIEP,0) AS TOTAL_PAY, ISNULL(RQ.TOTAL_AMT,0)- ISNULL(TU.TONG_TAM_UNG,0) - ISNULL(TT.TONG_THANH_TOAN,0) -ISNULL(SV.TONG_THANH_TOAN_TRUC_TIEP,0) AS REMAIN FROM CON_MASTER C LEFT JOIN CM_BRANCH BR ON C.BRANCH_ID = BR.BRANCH_ID LEFT JOIN CON_REQUEST_DOC RQ ON C.CONSTRUCT_ID = RQ.CONSTRUCT_ID LEFT JOIN PL_REQUEST_DOC RM ON RQ.REQ_ID = RM.REQ_ID LEFT JOIN CM_ALLCODE CON_HQ_T ON CON_HQ_T.CDNAME='REQ_HQ_TYPE' AND CON_HQ_T.CDType='CON' AND C.HQ_TYPE = CON_HQ_T.CDVAL LEFT JOIN CM_ALLCODE CONTYPE ON CONTYPE.CDVAL = C.CONST_TYPE AND CONTYPE.CDNAME = 'REQ_CON_TYPE' AND CONTYPE.CDTYPE = 'CON' --LEFT JOIN PL_REQUEST_DOC_DT RDT ON RM.REQ_ID = RDT.REQ_ID --LEFT JOIN CM_GOODS GD ON RDT.GOODS_ID = GD.GD_ID LEFT JOIN ( SELECT DOC.PL_REQ_ID, SUM (AD.REQ_AMT) AS TONG_TAM_UNG FROM TR_REQ_ADVANCE_PAYMENT AD INNER JOIN TR_REQ_ADVANCE_DT DT ON AD.REQ_PAY_ID = DT.REQ_PAY_ID INNER JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID INNER JOIN TR_REQUEST_DOC DOC ON CT.REQ_DOC_ID = DOC.REQ_ID WHERE AD.AUTH_STATUS_KT ='A' GROUP BY DOC.PL_REQ_ID ) AS TU ON RQ.REQ_ID = TU.PL_REQ_ID LEFT JOIN ( SELECT DOC.PL_REQ_ID, SUM (PAY.REQ_AMT) AS TONG_THANH_TOAN FROM TR_REQ_PAYMENT PAY INNER JOIN TR_REQ_ADVANCE_DT DT ON PAY.REQ_PAY_ID = DT.REQ_PAY_ID INNER JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID INNER JOIN TR_REQUEST_DOC DOC ON CT.REQ_DOC_ID = DOC.REQ_ID WHERE PAY.AUTH_STATUS_KT ='A' GROUP BY DOC.PL_REQ_ID ) AS TT ON RQ.REQ_ID = TT.PL_REQ_ID LEFT JOIN ( SELECT DT.EMP_ID AS PL_REQ_ID, SUM (PAY.REQ_AMT) AS TONG_THANH_TOAN_TRUC_TIEP FROM TR_REQ_PAYMENT PAY INNER JOIN TR_REQ_PAY_SERVICE DT ON PAY.REQ_PAY_ID = DT.REQ_PAY_ID WHERE PAY.AUTH_STATUS_KT ='A' GROUP BY DT.EMP_ID ) AS SV ON RQ.REQ_ID = SV.PL_REQ_ID WHERE 1=1 AND (RQ.REQ_CODE LIKE '%' +@p_REQ_CODE +'%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE='') AND((@p_LEVEL = 'ALL' AND C.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) OR (@p_LEVEL = 'UNIT' AND C.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL) --AND C.AUTH_STATUS ='A' AND (YEAR(RM.EFFEC_DT) =@p_YEAR_BUDGET OR @p_YEAR_BUDGET IS NULL) --AND (GD.GD_NAME LIKE N'%' +@p_TERM_BID +'%' OR @p_TERM_BID= '' OR @p_TERM_BID IS NULL) AND (RM.REQ_ID IN (SELECT D.REQ_ID FROM CON_REQUEST_DOC D WHERE D.REQ_ID IN (SELECT DT.REQ_ID FROM PL_REQUEST_DOC_DT DT INNER JOIN CM_GOODS GD ON DT.GOODS_ID = GD.GD_ID WHERE GD.GD_NAME LIKE N'%' +@p_TERM_BID +'%' )) OR @p_TERM_BID= '' OR @p_TERM_BID IS NULL ) IF(@p_YEAR_BUDGET IS NULL) BEGIN SET @p_YEAR_BUDGET = YEAR(GETDATE()) SELECT N'THEO DÕI NGÂN SÁCH XDCB ĐẾN NĂM ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS TITLE END ELSE BEGIN SELECT N'THEO DÕI NGÂN SÁCH XDCB NĂM ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS TITLE END END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_BUDGET_CHECK_LIMIT_MONTH_HIST_Byid]' GO ALTER PROCEDURE [dbo].[TR_BUDGET_CHECK_LIMIT_MONTH_HIST_Byid] @p_GD_ID varchar(20) = NULL, @p_GD_CODE varchar(20) = NULL, @p_BRANCH_ID varchar(20) = NULL, @p_DEP_ID varchar(20) = NULL, @p_BUDGET_MONTH varchar(20) = NULL, @p_BUDGET_YEAR varchar(20) = NULL, @p_BRANCH_KIND varchar(20) = NULL, @p_TOP INT = 100 AS BEGIN -- PAGING SET @p_TOP = NULL IF(@p_TOP IS NULL OR @p_TOP=0) BEGIN -- PAGING BEGIN SELECT A.BUDGET_MONTH_LIMIT_DETAIL_ID, C.REQ_PAY_ID, C.REQ_PAY_CODE, CM.BRANCH_NAME, DP.DEP_NAME, trpb.AMT_EXE AS 'REQ_AMT', --C.REQ_AMT, trpb.REASON AS 'REQ_REASON', --C.REQ_REASON, C.CREATE_DT AS PAYMENT_CREATE_DT, TL1.TLFullName AS GDV, TL2.TLFullName AS KSV, C.APPROVE_DT_KT -- SELECT END FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL A --LEFT JOIN TR_REQ_BUDGET_YEAR_LIMIT B ON A.BRANCH_ID = B.BRANCH_ID AND A.DEP_ID = B.DEP_ID AND A.GD_ID = B.GD_ID LEFT JOIN TR_REQ_PAYMENT C ON A.REQ_PAY_ID = C.REQ_PAY_ID LEFT JOIN TR_REQ_PAY_BUDGET trpb ON trpb.REQ_PAY_ID = C.REQ_PAY_ID AND trpb.BUDG_ID = A.BUDG_ID --AND trpb.BRANCH_KIND = @p_BRANCH_KIND AND trpb.BRANCH_KIND = @p_BRANCH_KIND AND (trpb.AMT_EXE = A.M1+A.M2+A.M3+A.M4+A.M5+A.M6+A.M7+A.M8+A.M9+A.M10+A.M11+A.M12) LEFT JOIN TL_USER TL1 ON C.MAKER_ID_KT = TL1.TLNANME LEFT JOIN TL_USER TL2 ON C.CHECKER_ID_KT = TL2.TLNANME LEFT JOIN CM_BRANCH CM ON A.BRANCH_ID = CM.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON A.DEP_ID = DP.DEP_ID WHERE 1=1 AND A.GD_ID = @p_GD_ID AND A.BRANCH_ID = @p_BRANCH_ID AND (A.DEP_ID = @p_DEP_ID OR A.BRANCH_ID <> 'DV0001') AND A.RECORD_STATUS = '1' AND A.BUDGET_YEAR = @p_BUDGET_YEAR AND ( ( M1 <> 0 AND @p_BUDGET_MONTH = 'M1' ) OR ( M2 <> 0 AND @p_BUDGET_MONTH = 'M2' ) OR ( M3 <> 0 AND @p_BUDGET_MONTH = 'M3' ) OR ( M4 <> 0 AND @p_BUDGET_MONTH = 'M4' ) OR ( M5 <> 0 AND @p_BUDGET_MONTH = 'M5' ) OR ( M6 <> 0 AND @p_BUDGET_MONTH = 'M6' ) OR ( M7 <> 0 AND @p_BUDGET_MONTH = 'M7' ) OR ( M8 <> 0 AND @p_BUDGET_MONTH = 'M8' ) OR ( M9 <> 0 AND @p_BUDGET_MONTH = 'M9' ) OR ( M10 <> 0 AND @p_BUDGET_MONTH = 'M10') OR ( M11 <> 0 AND @p_BUDGET_MONTH = 'M11') OR ( M12 <> 0 AND @p_BUDGET_MONTH = 'M12') ) AND A.BRANCH_KIND = @p_BRANCH_KIND GROUP BY A.BUDGET_MONTH_LIMIT_DETAIL_ID, C.REQ_PAY_ID, C.REQ_PAY_CODE, CM.BRANCH_NAME, DP.DEP_NAME,trpb.AMT_EXE,trpb.REASON, C.CREATE_DT, TL1.TLFullName, TL2.TLFullName, C.APPROVE_DT_KT,A.CREATE_DT ORDER BY A.CREATE_DT DESC -- PAGING END END; ELSE BEGIN -- PAGING BEGIN SELECT TOP(CONVERT(INT, @p_TOP)) A.BUDGET_MONTH_LIMIT_DETAIL_ID, C.REQ_PAY_ID, C.REQ_PAY_CODE, CM.BRANCH_NAME, DP.DEP_NAME, trpb.AMT_EXE AS 'REQ_AMT', --C.REQ_AMT, trpb.REASON AS 'REQ_REASON', --C.REQ_REASON, C.CREATE_DT AS PAYMENT_CREATE_DT, TL1.TLFullName AS GDV, TL2.TLFullName AS KSV, C.APPROVE_DT_KT -- SELECT END FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL A --LEFT JOIN TR_REQ_BUDGET_YEAR_LIMIT B ON A.BRANCH_ID = B.BRANCH_ID AND A.DEP_ID = B.DEP_ID AND A.GD_ID = B.GD_ID LEFT JOIN TR_REQ_PAYMENT C ON A.REQ_PAY_ID = C.REQ_PAY_ID LEFT JOIN TR_REQ_PAY_BUDGET trpb ON trpb.REQ_PAY_ID = C.REQ_PAY_ID AND trpb.BUDG_ID = A.BUDG_ID --AND trpb.BRANCH_KIND = @p_BRANCH_KIND AND (trpb.AMT_EXE = A.M1+A.M2+A.M3+A.M4+A.M5+A.M6+A.M7+A.M8+A.M9+A.M10+A.M11+A.M12) LEFT JOIN TL_USER TL1 ON C.MAKER_ID_KT = TL1.TLNANME LEFT JOIN TL_USER TL2 ON C.CHECKER_ID_KT = TL2.TLNANME LEFT JOIN CM_BRANCH CM ON A.BRANCH_ID = CM.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON A.DEP_ID = DP.DEP_ID WHERE 1=1 AND A.GD_ID = @p_GD_ID AND A.BRANCH_ID = @p_BRANCH_ID AND (A.DEP_ID = @p_DEP_ID OR A.BRANCH_ID <> 'DV0001') AND A.RECORD_STATUS = '1' AND A.BUDGET_YEAR = @p_BUDGET_YEAR AND ( ( M1 <> 0 AND @p_BUDGET_MONTH = 'M1' ) OR ( M2 <> 0 AND @p_BUDGET_MONTH = 'M2' ) OR ( M3 <> 0 AND @p_BUDGET_MONTH = 'M3' ) OR ( M4 <> 0 AND @p_BUDGET_MONTH = 'M4' ) OR ( M5 <> 0 AND @p_BUDGET_MONTH = 'M5' ) OR ( M6 <> 0 AND @p_BUDGET_MONTH = 'M6' ) OR ( M7 <> 0 AND @p_BUDGET_MONTH = 'M7' ) OR ( M8 <> 0 AND @p_BUDGET_MONTH = 'M8' ) OR ( M9 <> 0 AND @p_BUDGET_MONTH = 'M9' ) OR ( M10 <> 0 AND @p_BUDGET_MONTH = 'M10') OR ( M11 <> 0 AND @p_BUDGET_MONTH = 'M11') OR ( M12 <> 0 AND @p_BUDGET_MONTH = 'M12') ) AND A.BRANCH_KIND = @p_BRANCH_KIND GROUP BY A.BUDGET_MONTH_LIMIT_DETAIL_ID, C.REQ_PAY_ID, C.REQ_PAY_CODE, CM.BRANCH_NAME, DP.DEP_NAME,trpb.AMT_EXE,trpb.REASON, C.CREATE_DT, TL1.TLFullName, TL2.TLFullName, C.APPROVE_DT_KT,A.CREATE_DT ORDER BY A.CREATE_DT DESC -- PAGING END END; END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[rpt_TR_REQ_PAY_Job_DT_ById]' GO ALTER PROC [dbo].[rpt_TR_REQ_PAY_Job_DT_ById] @p_REQ_PAY_ID varchar(15) = NULL, @p_BRANCH_CREATE varchar(15) = NULL, @p_DEP_ID varchar(15) = NULL, @p_CHECKR_ID varchar(15) = NULL, @p_CHECKR_ID_KT varchar(15) = NULL, @p_APPROVE_DT_KT varchar(15) = NULL AS BEGIN SELECT ROW_NUMBER() OVER (ORDER BY(SELECT 1)) AS STT, JF.REQ_CODE, A.FULLNAME, A.JOB_PLACE, FORMAT (A.FRMDATE, 'dd/MM/yyyy ') AS FRMDATE, FORMAT (A.TODATE, 'dd/MM/yyyy ') AS TODATE, CAST(DATEDIFF(day,A.FRMDATE, A.TODATE) as decimal(18, 0)) + 1 AS NUMBER_DAY, A.DAY_RATE, A.JOB_COST, A.COST_RESIDENCE, A.TYPE_TRANS, A.COST_AMT, A.COST_OTHER, A.COST_MOVE, A.DAY_RATE + A.JOB_COST + A.COST_RESIDENCE + A.COST_AMT + A.COST_OTHER AS TOTAL_AMT, CEL.POS_NAME AS POS_NAME FROM TR_REQ_PAY_Job_DT A LEFT JOIN TR_REQUEST_JOB_FORM JF ON A.REQ_ID = JF.REQ_ID LEFT JOIN CM_EMPLOYEE_LOG CEL ON CEL.USER_DOMAIN = JF.EMP_ID --LEFT JOIN TR_REQ_PAY_JOB J ON A.REQ_ID = J.REQ_ID LEFT JOIN TR_REQ_PAYMENT TR ON A.REQ_PAY_ID = TR.REQ_PAY_ID LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = @p_BRANCH_CREATE LEFT JOIN TL_USER T ON T.TLNANME = A.FULLNAME WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID SELECT TOP 1 N'Từ ngày ' + CAST(FORMAT (A.FRMDATE, 'dd/MM/yyyy ') as nvarchar) + ', ' AS FRMDATE FROM TR_REQ_PAY_Job_DT A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID ORDER BY A.FRMDATE ASC SELECT TOP 1 N'đến ngày ' + CAST(FORMAT (A.TODATE, 'dd/MM/yyyy ') as nvarchar) AS TODATE FROM TR_REQ_PAY_Job_DT A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID ORDER BY A.TODATE DESC SELECT TOP 1 B.REQ_PAY_CODE, ISNULL(A.AMT_PAY,0) AS AMT_PAY FROM TR_REQ_PAYMENT_DT A LEFT JOIN TR_REQ_PAYMENT B ON A.PAY_ID = B.REQ_PAY_ID WHERE A.PAY_ID =@p_REQ_PAY_ID DECLARE @AMT_PAY DECIMAL(18,2) SELECT TOP 1 @AMT_PAY = ISNULL(A.AMT_PAY,0) FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_REQ_PAY_ID SELECT @AMT_PAY - ISNULL(SUM(A.COST_AMT),0) AS 'TIENHOANUNGCHITHEM', ISNULL(SUM(A.JOB_COST),0) AS SUM_JOB_COST, ISNULL(SUM(A.COST_RESIDENCE),0) AS SUM_COST_RESIDENCE, ISNULL(SUM(A.COST_MOVE),0) AS SUM_COST_MOVE, ISNULL(SUM(A.COST_AMT),0) AS SUM_COST_AMT FROM TR_REQ_PAY_Job_DT A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQUEST_DOC_Search]' GO ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_Search] @p_REQ_ID varchar(15) = NULL, @p_REQ_CODE varchar(50) = NULL, @p_PL_REQ_CODE varchar(50) = NULL, @p_REQ_NAME nvarchar(200) = NULL, @p_REQ_DT varchar(30) = NULL,-- @p_REQ_CONTENT NVARCHAR(1000)=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(30) = NULL,-- @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT varchar(30) = NULL,-- @p_BRANCH_DO VARCHAR(15) = NULL, @p_BRANCH_CREATE VARCHAR(15) = NULL, @p_USER_REQUEST VARCHAR(15) = NULL, @p_BRANCH_LOGIN VARCHAR(15)=NULL, @p_TLNAME_USER VARCHAR(20)=NULL, @p_ROLE_USER VARCHAR(20), @p_TOP INT = 10, @p_PROCESS_STATUS varchar(50) = NULL, @p_FR_DATE varchar(30) = NULL,-- @p_TO_DATE varchar(30) = NULL,-- @p_TYPE VARCHAR(15), @p_TYPE_TRANFER VARCHAR(15)=NULL, @p_YEAR INT = NULL, @p_IS_TRANSFER VARCHAR(10) = NULL, @p_NGUOIXULY NVARCHAR(15) = NULL, @p_IS_KT bit = NULL, @p_PL_REQ_ID VARCHAR(20)=NULL, ------------------BAODNQ 21/10/2022 : TRUYỀN THÊM DEP_CREATE @p_DEP_CREATE VARCHAR(15) = NULL AS BEGIN -- PAGING IF(@p_ROLE_USER ='KTT') SET @p_ROLE_USER ='GDDV' DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(20) DECLARE @COST_ID TABLE ( COST_ID VARCHAR(15), DVDM_ID VARCHAR(15) ) SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER) INSERT INTO @COST_ID SELECT DT.COST_ID,PC.DVDM_ID FROM dbo.PL_COSTCENTER_DT DT LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN) IF(EXISTS(SELECT DEP_ID FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%')) SET @BRANCH_TYPE='HS' DECLARE @AUTHOR TABLE ( ROLE_ID VARCHAR(100), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), BRANCH_TYPE VARCHAR(20) ) DECLARE @AUTHOR_DVDM TABLE ( ROLE_ID VARCHAR(100), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), DVDM_ID VARCHAR(20) ) DECLARE @AUTHOR_DMMS TABLE ( ROLE_ID VARCHAR(100), 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_TLNAME_USER 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_TLNAME_USER 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_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,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_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 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 @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_TLNAME_USER 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_TLNAME_USER 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_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,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_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) ----NGUOI XU LY 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,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 TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) AND PRC.PROCESS_ID ='DMMS' AND PRC.STATUS='C' ) PL LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_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.DMMS_ID FROM ( SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM dbo.TL_USER TS UNION ALL SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) ) TU LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID LEFT JOIN( SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC UNION ALL SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID FROM ( SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID WHERE CD.IS_KHOI <>1 GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID ) DVDM ) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') 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.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL 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 EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.STATUS='C' 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 CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID LEFT JOIN ( SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM ( SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM dbo.TL_USER TS UNION ALL SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) ) 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 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 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,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 TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.STATUS='C' 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 ( SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM dbo.TL_USER TS UNION ALL SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) ) 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 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' ---- IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0 OR @P_TOP>0) BEGIN IF(@p_TYPE='DVKD') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE, A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, RP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Hoàn tất' ELSE N'Chưa hoàn tất' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME) AS TRANFER_DT , '' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, FORMAT(PLRD.TOTAL_AMT,'#,###') AS NCC_NAME, '' AS NCC_ADDR,RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME, CDC.DEP_CODE AS DEP_CREATE_CODE, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY, CASE WHEN A.PROCESS_ID ='SIGN' THEN TL.TLFullName ELSE NXL.NGUOIXULY END AS NGUOIXULY, PLRD.TOTAL_AMT AS GIATRI_TO_TRINH, ------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu------------- --------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV------- CASE WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS' THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME ELSE DVC.BRANCH_NAME END AS BRANCH_DEP_REQUEST -- NXL.NGUOIXULY AS NGUOIXULY -- SELECT END FROM TR_REQUEST_DOC A LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS WHERE LEFT(REQ_ID,4) = 'TRRD' GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND ( A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='' ) --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID))) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) --AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '' --OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' --) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') --------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE--------------------------- AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '') AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '') AND A.RECORD_STATUS = '1' AND (A.MAKER_ID=@p_TLNAME_USER OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' AND EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID AND (AUTH.DEP_ID=PLRP.DEP_ID OR AUTH.BRANCH_TYPE <>'HS')) )) OR (A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER =@p_TLNAME_USER AND A.AUTH_STATUS <>'E') OR (EXISTS(SELECT * FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE ='TR_REQUEST_DOC_ALL' AND BRANCH_ID =@p_TLNAME_USER)) ) --AND ( -- ( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') -- OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') -- or @p_AUTH_STATUS=A.AUTH_STATUS -- OR @p_AUTH_STATUS IS NULL -- OR @p_AUTH_STATUS = '' --) --CuongLX AND ( (A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') OR (@p_AUTH_STATUS = 'W' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS PL WHERE A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'SIGN' AND PL.STATUS = 'C')) OR (@p_AUTH_STATUS = 'G' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS PL WHERE A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'SIGN' AND PL.STATUS = 'P')) ) AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) 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,'PYC-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') -- OR -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') --) 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.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, RP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, CASE WHEN DVC.BRANCH_TYPE ='HS' THEN DVC.BRANCH_NAME ELSE DEP.DEP_NAME END AS BRANCH_CREATE_NAME, --DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,ISNULL(RPC.TYPE_JOB,'KS') AS TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID, '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, FORMAT(PLRD.TOTAL_AMT,'#,###') AS NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, '' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE, --CDC.DEP_NAME AS DEP_CREATE_NAME, CASE WHEN DVC.BRANCH_TYPE ='HS' THEN CDC.DEP_NAME ELSE DVC.BRANCH_NAME END AS DEP_CREATE_NAME, CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY, -------BAODNQ 21/4/2022: Lấy giá trị tờ trình------ PLRD.TOTAL_AMT AS GIATRI_TO_TRINH, -------------END BAODNQ--------------------- ------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu------------- --------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV------- CASE WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS' THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME ELSE DVC.BRANCH_NAME END AS BRANCH_DEP_REQUEST -- SELECT END FROM TR_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_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN CM_DEPARTMENT DEP ON UM.SECUR_CODE = DEP.DEP_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND ( [RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_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 TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID))) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) --AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '' --OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' --) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') --------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE--------------------------- AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '') AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '') AND A.RECORD_STATUS = '1' 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 EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DMMS AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER 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=PLRP.ROLE_USER 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=PLRP.ID AND TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS') ) --AND ( ( ( (PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ((PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @COST_ID) ) --OR ((A.DMMS_ID IN (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID =@p_BRANCH_LOGIN AND (DEP_ID=@DEP_ID OR @BRANCH_TYPE <>'HS')) --OR A.DMMS_ID IN (SELECT DVDM_ID FROM @COST_ID)) AND A.PROCESS_ID='DMMS')))) --OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS') )) AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) AND (RPC.TYPE_JOB <>'TP' OR RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='') 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 ------------BAODNQ 18/5/2022: SỬA TÌM KIẾM THEO TÌNH TRẠNG ĐIỀU PHỐI-------------- ((RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND RPC.MAKER_ID =@p_TLNAME_USER) AND @p_IS_TRANSFER = '1') --- LUCTV 22-10-22 DIEU CHINH NGUYEN TAC CHUA DIEU PHOI / DA DIEU PHOI OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '' OR (RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND RPC.MAKER_ID <> @p_TLNAME_USER)) AND @p_IS_TRANSFER = '0') OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL ---------------------------END BAODNQ--------------------------------------------- ) 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,'PYC-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') -- OR -- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '') --) --LUCTV 10-03-2021 Ơ MAN HINH DIEU PHOI PYCMS NEU PHIEU DA DUOC NHAN VIEN XU LY GUI PHE DUYET THI KHONG CAN HIEN THI AND ((NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='P' AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_ID))) OR A.PROCESS_ID ='DVCM') ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='DMMS') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, RP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, CASE WHEN DVC.BRANCH_TYPE ='HS' THEN DVC.BRANCH_NAME ELSE DEP.DEP_NAME END AS BRANCH_CREATE_NAME, --DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID, '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, FORMAT(PLRD.TOTAL_AMT,'#,###') AS NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE, CASE WHEN DVC.BRANCH_TYPE ='HS' THEN CDC.DEP_NAME ELSE DVC.BRANCH_NAME END AS DEP_CREATE_NAME, CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,PLRD.TOTAL_AMT AS GIATRI_TO_TRINH, ------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu------------- --------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV------- CASE WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS' THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME ELSE DVC.BRANCH_NAME END AS BRANCH_DEP_REQUEST -- SELECT END FROM TR_REQUEST_DOC A LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U' AND PLRP.PROCESS_ID = 'DMMS' LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN CM_DEPARTMENT DEP ON UM.SECUR_CODE = DEP.DEP_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND( [RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_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') AND A.PROCESS_ID <>'PDHT' LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (@p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='' OR (RPC.TYPE_JOB LIKE '%' + @p_PROCESS_STATUS + '%' AND (@p_PROCESS_STATUS='KS' OR @p_PROCESS_STATUS='TP') AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='XL') OR (RPC.TYPE_JOB LIKE '%' + @p_PROCESS_STATUS + '%' AND @p_PROCESS_STATUS='XL') OR A.USER_DVMS =@p_TLNAME_USER ) ) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) --AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '' --OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' --) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') --------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE--------------------------- AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '') AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '') AND A.RECORD_STATUS = '1' AND ( EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DMMS AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER 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=PLRP.ROLE_USER AND A.DMMS_ID=AUTH.DVDM_ID AND A.PROCESS_ID='DMMS') OR EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND PROCESS_ID=PLRP.ID AND PLRP.PROCESS_ID='DMMS') OR(A.USER_DVMS =@p_TLNAME_USER) ) AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') -- LUCTV: 10-03-2021 BO SUNG DIEU KIEN NEU CHUA DIEU PHOI THI KHONG TIM THAY O MAN HINH DMMS --AND ((EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_ID AND TLNAME = @p_TLNAME_USER AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_ID)) OR LEN(A.REQ_CODE) >15)) ----------BAODNQ 17/10/2022 : Chỉ tìm thấy phiếu ở màn hình ĐMMS khi đã có điều phối cho NVXL-------------- AND(EXISTS( SELECT ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND PROCESS_ID = (SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID = 'DMMS') AND TYPE_JOB = 'XL' ) ) -------------------------------------END BAODNQ----------------------------------- ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='PDYC') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, PLRP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID, '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY, ------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu------------- --------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV------- CASE WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS' THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME ELSE DVC.BRANCH_NAME END AS BRANCH_DEP_REQUEST -- SELECT END FROM TR_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_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.REQ_ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID))) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) --AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '' --OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' --) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') --------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE--------------------------- AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '') AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '') AND A.RECORD_STATUS = '1' --AND (PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND PLRP.PROCESS_ID <>'DMMS' AND PLRP.PROCESS_ID<>'APPNEW' AND ( -- (PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @COST_ID) OR PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL)) 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) AND PLRP.PROCESS_ID <>'DMMS' AND PLRP.PROCESS_ID<>'APPNEW' AND PLRP.PROCESS_ID <> 'DVCM' -----------------------BAODNQ 15/8/2022 : Chờ duyệt chỉ hiện những phiếu đến mình duyệt-------- AND ((@p_AUTH_STATUS = 'U' AND PLRP.STATUS = 'C') OR (@p_AUTH_STATUS <> 'U') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' ) ) ) AND ( ( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='DVCM') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,ISNULL(A.TOTAL_AMT,0.00) AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, PLRP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID, '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY,PLRD.TOTAL_AMT AS GIATRI_TO_TRINH, ------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu------------- --------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV------- CASE WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS' THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME ELSE DVC.BRANCH_NAME END AS BRANCH_DEP_REQUEST -- SELECT END FROM TR_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_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_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') AND A.PROCESS_ID <>'PDHT' LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID))) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) --AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '' --OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' --) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') --------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE--------------------------- AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '') AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '') AND A.RECORD_STATUS = '1' AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND(((PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ((PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @COST_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 PLRP.PROCESS_ID='DVCM') )) 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 EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PLRP.PROCESS_ID='DVCM') ) AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='PLDVCM') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,ISNULL(A.TOTAL_AMT,0.00) AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, --PLRP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Hoàn tất' ELSE N'Chưa hoàn tất' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME, --RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID, '' AS TYPE_JOB, '' AS USER_JOB, '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR, --PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, --PLRP.STATUS AS STATUS_CURR, --RPC.STATUS_JOB AS STATUS_JOB, A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY, --------------BAODNQ 27/10/2022 : BỔ SUNG THÔNG TIN---------- PLRD.TOTAL_AMT AS GIATRI_TO_TRINH, CASE WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS' THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME ELSE DVC.BRANCH_NAME END AS BRANCH_DEP_REQUEST -- SELECT END FROM TR_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_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_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') AND A.PROCESS_ID <>'PDHT' --LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID --LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID))) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) --AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '' --OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' --) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') --------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE--------------------------- AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '') AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '') AND A.RECORD_STATUS = '1' AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') --AND( EXISTS ( -- SELECT * FROM PL_REQUEST_COSTCENTER PRC -- INNER JOIN @COST_ID COST ON PRC.COST_ID = COST.DVDM_ID -- WHERE PRC.REQ_ID = A.PL_REQ_ID -- ) -- OR @DEP_ID='DEP000000000022' -- ) AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '' OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%') --AND(((PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ((PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @COST_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) )) 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.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, '' AS DMMS_NAME,A.DMMS_ID, --CMS.DMMS_NAME,A.DMMS_ID, --RP.NOTES AS PROCESS_STATUS, '' AS PROCESS_STATUS, -- RP.APPROVE_DT AS PROCESS_APP_DT, NULL AS PROCESS_APP_DT, -- UP.TLFullName AS PROCESS_CHECKER_NAME, '' AS PROCESS_CHECKER_NAME, --RP.ROLE_USER, '' AS ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, --RPN.NOTES AS PROCESS_STATUS_NEXT '' AS PROCESS_STATUS_NEXT, G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME) AS TRANFER_DT , '' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR, --RP.ID AS REF_ID, NULL AS REF_ID, -- RPN.STATUS AS STATUS_NEXT, -- RP.STATUS AS STATUS_CURR, '' AS STATUS_NEXT, '' AS STATUS_CURR, '' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, --TL.TLFullName AS SIGN_USER_NAME, '' AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY --NXL.NGUOIXULY AS NGUOIXULY '' AS NGUOIXULY -- SELECT END FROM TR_REQUEST_DOC A LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID --LEFT JOIN --( -- SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM -- dbo.PL_REQUEST_PROCESS -- GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES --) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID --LEFT JOIN --( -- SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM -- dbo.CM_DMMS -- LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID -- LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID -- UNION ALL -- SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME -- FROM dbo.CM_DVDM --)CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 = '') -------------BAODNQ 2/11/2022 Tìm theo USER_LOGIN là ng xử lý PYCMS hoặc là ng tạo----------------- AND(A.USER_DVMS = @p_TLNAME_USER OR A.MAKER_ID = @p_TLNAME_USER OR (EXISTS(SELECT * FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE ='TR_REQUEST_DOC_ALL' AND BRANCH_ID =@p_TLNAME_USER)) ) -------------------------------------ENDBAODNQ---------------------- AND (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') --AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID))) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') --AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND A.RECORD_STATUS = '1' --AND (A.BRANCH_CREATE =@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR A.DEP_CREATE ='' OR A.DEP_CREATE IS NULL)) --AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.PROCESS_ID ='APPROVE') AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) 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 + '%') ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='DMMS_PARENT') BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, RP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID, '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, PLRP.STATUS AS STATUS_CURR, RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY -- SELECT END FROM TR_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_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND( [RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_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') AND A.PROCESS_ID <>'PDHT' LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL) 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_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '') 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 (CAST(A.CREATE_DT AS DATE)=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 (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='') --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID))) AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103)) AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103)) AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '') AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '') AND A.RECORD_STATUS = '1' AND (((PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ( A.DMMS_ID IN (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID =@p_BRANCH_LOGIN AND (DEP_ID=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.DMMS_ID IN (SELECT DVDM_ID FROM @COST_ID) )OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND PROCESS_ID=PLRP.ID) )) OR A.USER_DVMS=@p_TLNAME_USER) AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0) 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 + '%') ORDER BY A.CREATE_DT DESC -- PAGING END END ELSE IF(@p_TYPE='TTCT' ) BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, RP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME) AS TRANFER_DT , '' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY -- SELECT END FROM TR_REQUEST_DOC A LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.PL_REQ_ID=@p_PL_REQ_ID ORDER BY A.CREATE_DT DESC -- PAGING END END -- NEU LA LINK PYCMS ELSE IF(@p_TYPE='LINK_TTCT' ) BEGIN -- PAGING BEGIN SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT, A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME, D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME, CMS.DMMS_NAME,A.DMMS_ID, RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME, RP.ROLE_USER, CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME, RPN.NOTES AS PROCESS_STATUS_NEXT ,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE, DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE, DVC.BRANCH_NAME AS BRANCH_CREATE_NAME, PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME) AS TRANFER_DT , '' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,RP.ID AS REF_ID, RPN.STATUS AS STATUS_NEXT, RP.STATUS AS STATUS_CURR, '' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER, --NGUOI XU LY --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY NXL.NGUOIXULY AS NGUOIXULY -- SELECT END FROM TR_REQUEST_DOC A LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID LEFT JOIN ( SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM dbo.PL_REQUEST_PROCESS GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES ) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[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 dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID LEFT JOIN ( SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM dbo.CM_DMMS LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID UNION ALL SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME FROM dbo.CM_DVDM )CMS ON CMS.DMMS_ID=A.DMMS_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.PL_REQ_ID=@p_PL_REQ_ID ORDER BY A.CREATE_DT DESC -- PAGING END END-- END LUCTV END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAY_AUTO_GET_BILL_EFFECTIVE_TYPE_B]' GO ALTER PROC [dbo].[TR_REQ_PAY_AUTO_GET_BILL_EFFECTIVE_TYPE_B] @p_REQ_PAY_AUTO_TYPE varchar(20) = NULL AS BEGIN SELECT --B.CUSTOMER_CODE AS customerNo, B.BILLCODE AS billCode, B.PRVCODE AS prvCode, B.SEVCODE AS sevCode, --'01' +'/' + '01' +'/'+ CONVERT(VARCHAR,YEAR(GETDATE()),4) AS fromDate, '20/02/2020' AS fromDate, '00025464' AS customerNo FROM TR_REQ_PAYMENT_AUTO A LEFT JOIN TR_REQ_PAY_AUTO_RECURRING B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID WHERE A.REQ_PAY_AUTO_TYPE = 'B' AND A.AUTH_STATUS_KT = 'A' AND A.RECORD_STATUS = '1' AND A.REQ_PAY_AUTO_STATUS = 'EFFECTIVE' AND A.CONTRACT_ID IS NOT NULL AND B.IS_REGISTER = '1' AND ISNULL(B.BILLID, '') <> '' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[PL_REQUEST_TRANSFER_DT_ByID]' GO ALTER PROCEDURE [dbo].[PL_REQUEST_TRANSFER_DT_ByID] @P_REQ_ID varchar(15), @p_TYPE VARCHAR(15), @p_TLNAME 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), AMT_ETM_TMP 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, 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 TO_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_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_FEE_ID VARCHAR(15), @DEP_FEE_NAME NVARCHAR(1000), @BRANCH_FEE_ID VARCHAR(15), @BRANCH_FEE_NAME NVARCHAR(1000), @DVCCP NVARCHAR(1000) SET @DEP_FEE_ID =(SELECT DEP_FEE FROM PL_REQUEST_DOC WHERE REQ_ID =@P_REQ_ID) SET @DEP_FEE_NAME =(SELECT DEP_NAME FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_FEE_ID) SET @BRANCH_FEE_ID =(SELECT BRANCH_FEE FROM PL_REQUEST_DOC WHERE REQ_ID =@P_REQ_ID) SET @BRANCH_FEE_NAME =(SELECT BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_FEE_ID) IF(@BRANCH_FEE_ID ='DV0001') BEGIN SET @DVCCP =@BRANCH_FEE_NAME + ' - '+ @DEP_FEE_NAME END ELSE BEGIN SET @DVCCP =@BRANCH_FEE_NAME; END IF (EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID IN ('','SIGN','APPNEW','REJECT'))) BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES,AMT_ETM_TMP) SELECT GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES, (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.TRADE_ID = PL.TRADE_ID AND DOC.REQ_ID <> @p_REQ_ID) + (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.FR_TRADE_ID = PL.TRADE_ID AND DOC.REQ_ID <> @p_REQ_ID) AS AMT_ETM_TMP FROM dbo.PL_TRADEDETAIL PL WHERE (TRADE_ID IN (SELECT TO_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_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 ELSE BEGIN INSERT INTO @listTRADE ( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES,AMT_ETM_TMP) SELECT * FROM ( SELECT DISTINCT GOODS_ID,TRADE_ID,PLAN_ID,ISNULL(AMT_APP,0) AS AMT_APP,ISNULL(AMT_EXE,0) AS AMT_EXE,ISNULL(AMT_ETM,0) AS AMT_ETM,ISNULL(AMT_TF,0) AS AMT_TF,ISNULL(AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,'' NOTES,ISNULL(AMT_ETM_TMP,0) AS AMT_ETM_TMP FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID UNION ALL SELECT DISTINCT FR_GOOD_ID GOODS_ID,FR_TRADE_ID TRADE_ID,FR_PLAN_ID PLAN_ID,ISNULL(FR_AMT_APP,0) AMT_APP,ISNULL(FR_AMT_EXE,0) AMT_EXE,ISNULL(FR_AMT_ETM,0) AMT_ETM,ISNULL(FR_AMT_TF,0) AMT_TF,ISNULL(FR_AMT_RECEIVE_TF,0) AMT_RECEIVE_TF,'' NOTES,ISNULL(FR_AMT_ETM_TMP,0) AMT_ETM_TMP FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID UNION ALL SELECT DISTINCT TO_GOOD_ID GOODS_ID,TO_TRADE_ID TRADE_ID,TO_PLAN_ID PLAN_ID,ISNULL(TO_AMT_APP,0) AMT_APP,ISNULL(TO_AMT_EXE,0) AMT_EXE,ISNULL(TO_AMT_ETM,0) AMT_ETM,ISNULL(TO_AMT_TF,0) AMT_TF,ISNULL(TO_AMT_RECEIVE_TF,0) AMT_RECEIVE_TF,'' NOTES,ISNULL(TO_AMT_ETM_TMP,0) AMT_ETM_TMP FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID ) T GROUP BY GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES,AMT_ETM_TMP END DECLARE @COST_ID TABLE ( COST_ID VARCHAR(15) ) DECLARE @DVDM_ID TABLE ( DVDM_ID VARCHAR(15) ) DECLARE @DEP_ID VARCHAR(15),@BRANCH_ID VARCHAR(15),@ROLE VARCHAR(15),@IS_ALL BIT SET @IS_ALL=0 SET @DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME) SET @BRANCH_ID=(SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME) 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_TLNAME) 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 DISTINCT A.*,FB.BRANCH_CODE AS FR_BRANCH_CODE, FB.BRANCH_NAME AS FR_BRANCH_NAME,TB.BRANCH_CODE AS TO_BRANCH_CODE, ISNULL(FG.GD_CODE,LF_DT.GOOD_CODE) AS FR_GD_CODE,ISNULL(FG.GD_NAME,LF_DT.GOOD_NAME) AS FR_GD_NAME, ISNULL(TG.GD_CODE,LT_DT.GOOD_CODE) AS TO_GD_CODE,ISNULL(TG.GD_NAME,LT_DT.GOOD_NAME) AS TO_GD_NAME, CASE WHEN A.AUTH_STATUS='A' THEN N'Đã xác nhận' ELSE N'Chưa xác nhận' END AS STATUS_NAME, DMF.DVDM_CODE AS FR_DVDM_CODE, DMF.DVDM_NAME AS FR_DVDM_NAME, DMT.DVDM_CODE AS TO_DVDM_CODE, DMT.DVDM_NAME AS TO_DVDM_NAME, CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME, FD.DEP_NAME AS FR_DEP_NAME,FD.DEP_CODE AS FR_DEP_CODE,TD.DEP_NAME AS TO_DEP_NAME,TD.DEP_CODE AS TO_DEP_CODE, ISNULL(PLF.AMT_APP,0) AS FR_AMT_APP, ISNULL(PLF.AMT_APP,0) + ISNULL(PLF.AMT_RECEIVE_TF,0) - ISNULL(PLF.AMT_TF,0) - ISNULL(PLF.AMT_ETM,0) - ISNULL(PLF.AMT_ETM_TMP,0) AS FR_AMT_REMAIN_ETM, ISNULL(PLT.AMT_APP,0) AS TO_AMT_APP, ISNULL(PLT.AMT_APP,0) + ISNULL(PLT.AMT_RECEIVE_TF,0) - ISNULL(PLT.AMT_TF,0) - ISNULL(PLT.AMT_ETM,0) - ISNULL(PLT.AMT_ETM_TMP,0) AS TO_AMT_REMAIN_ETM, ISNULL(PLF.AMT_EXE,0) AS AMT_EXE, ISNULL(PLF.AMT_ETM,0) AS AMT_ETM, ISNULL(PLF.AMT_TF,0) AS AMT_TF, ISNULL(PLF.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF, ISNULL(PLF.AMT_APP,0) + ISNULL(PLF.AMT_RECEIVE_TF,0) - ISNULL(PLF.AMT_TF,0) - ISNULL(PLF.AMT_EXE,0) AS AMT_REMAIN, ISNULL(PLF.AMT_APP,0) + ISNULL(PLF.AMT_RECEIVE_TF,0) - ISNULL(PLF.AMT_TF,0) - ISNULL(PLF.AMT_ETM,0) -(SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.TRADE_ID = PLF.TRADE_ID AND DOC.REQ_ID <> A.REQ_DOC_ID) AS AMT_REMAIN_ETM, ISNULL(PLF.AMT_APP,0) + ISNULL(PLF.AMT_RECEIVE_TF,0) - ISNULL(PLF.AMT_TF,0) - ISNULL(PLF.AMT_ETM,0) - ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_TRANSFER Temp WHERE Temp.REQ_DOC_ID=@P_REQ_ID AND Temp.FR_TRADE_ID= A.FR_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.FR_TRADE_ID ),0)AS AMT_REMAIN_ETM_TF, ISNULL(PLT.AMT_APP,0) + ISNULL(PLT.AMT_RECEIVE_TF,0) - ISNULL(PLT.AMT_TF,0) - ISNULL(PLT.AMT_ETM,0) AS AMT_REMAIN_ETM_TO, GTF.GD_TYPE_NAME AS FR_GD_TYPE_NAME,GTF.GD_TYPE_CODE AS FR_GD_TYPE_CODE,GTF.GD_TYPE_ID AS FR_GD_TYPE_ID, GTT.GD_TYPE_NAME AS TO_GD_TYPE_NAME,GTT.GD_TYPE_CODE AS TO_GD_TYPE_CODE,GTT.GD_TYPE_ID AS TO_GD_TYPE_ID, --GIANT 22/10/2021 CASE WHEN A.FR_DEP_ID <> '' THEN FD.DEP_NAME + N' - ' + FB.BRANCH_NAME ELSE FB.BRANCH_NAME END AS FR_BRANCH_NAME, --CASE WHEN A.FR_PLAN_ID IS NOT NULL AND A.FR_PLAN_ID <> '' --THEN ISNULL(AD1.DEP_NAME + ' - ','') + AC1.BRANCH_NAME --ELSE ISNULL(FD.DEP_NAME + N' - ','') + FB.BRANCH_NAME END AS FR_BRANCH_NAME, --- LUCTV 25.11.2022 DON VI CHUYEN LOAD DON VI DANG QUAN LY NGAN SACH CASE --WHEN A.TO_DEP_ID <> '' AND A.TO_BRN_ID ='DV0001' THEN TD.DEP_NAME + N' - ' + TB.BRANCH_NAME --- LUCTV 14.11.2022 FIX CACH SHOW DON VI NHAN NEU HOI SO MOI SHOW PHONG BAN --WHEN A.TO_BRN_ID <> '' AND (A.TO_DEP_ID ='' OR A.TO_BRN_ID <>'DV0001') THEN TB.BRANCH_NAME --- LUCTV 14.11.2022 FIX CACH SHOW DON VI NHAN WHEN ISNULL(A.TO_TRADE_ID,'') <> '' THEN ISNULL(AD2.DEP_NAME + ' - ','') + AC2.BRANCH_NAME --WHEN ISNULL(A.TO_DEP_ID,'') ='' AND ISNULL(A.TO_BRN_ID,'') ='' THEN @DVCCP WHEN ISNULL(A.TO_TRADE_ID,'')='' THEN @DVCCP END AS TO_BRANCH_NAME, --A.FR_AMT_FINAL + A.TOTAL_AMT AS FR_AMT_REMAIN, --A.TO_AMT_FINAL - A.TOTAL_AMT AS TO_AMT_REMAIN A.FR_AMT_FINAL - A.TOTAL_AMT AS FR_AMT_REMAIN, A.TO_AMT_FINAL + A.TOTAL_AMT AS TO_AMT_REMAIN, FPM.YEAR AS fR_GD_YEAR, TPM.YEAR AS tO_GD_YEAR, ISNULL(AD1.DEP_NAME + ' - ','') + AC1.BRANCH_NAME AS FR_BRANCH_FEE_FULL, ISNULL(A.TO_GOOD_ID,'') + '_' + ISNULL(A.TO_TRADE_ID,'') AS TO_GOOD_ID_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER A LEFT JOIN dbo.CM_BRANCH FB ON FB.BRANCH_ID=A.FR_BRN_ID LEFT JOIN dbo.CM_BRANCH TB ON TB.BRANCH_ID=A.TO_BRN_ID LEFT JOIN dbo.CM_DEPARTMENT FD ON FD.DEP_ID=A.FR_DEP_ID LEFT JOIN dbo.CM_DEPARTMENT TD ON TD.DEP_ID=A.TO_DEP_ID LEFT JOIN dbo.CM_GOODS FG ON FG.GD_ID=A.FR_GOOD_ID LEFT JOIN dbo.CM_GOODS TG ON TG.GD_ID=A.TO_GOOD_ID LEFT JOIN dbo.PL_IMPORT_DT LF_DT ON LF_DT.TRADE_ID=A.FR_TRADE_ID AND( LF_DT.TRADE_ID IS NOT NULL AND LF_DT.TRADE_ID<>'') LEFT JOIN dbo.PL_IMPORT_DT LT_DT ON LT_DT.TRADE_ID=A.TO_TRADE_ID AND( LT_DT.TRADE_ID IS NOT NULL AND LT_DT.TRADE_ID<>'') LEFT JOIN dbo.CM_DVDM DMF ON DMF.DVDM_ID=A.FR_DVDM_ID LEFT JOIN dbo.CM_DVDM DMT ON DMT.DVDM_ID=A.TO_DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.FR_KHOI_ID --INNER JOIN @listTRADE PLF ON PLF.TRADE_ID=A.FR_TRADE_ID --INNER JOIN @listTRADE PLT ON PLT.TRADE_ID=A.TO_TRADE_ID LEFT JOIN @listTRADE PLF ON PLF.TRADE_ID=A.FR_TRADE_ID LEFT JOIN @listTRADE PLT ON PLT.TRADE_ID=A.TO_TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GTF ON FG.GD_CODE LIKE '%.' + GTF.GD_TYPE_CODE +'.%' LEFT JOIN dbo.CM_GOODSTYPE GTT ON TG.GD_CODE LIKE '%.' + GTT.GD_TYPE_CODE +'.%' LEFT JOIN dbo.PL_MASTER FPM ON FPM.PLAN_ID = A.FR_PLAN_ID LEFT JOIN dbo.PL_MASTER TPM ON TPM.PLAN_ID = A.TO_PLAN_ID LEFT JOIN CM_BRANCH AC1 ON AC1.BRANCH_ID = FPM.BRANCH_ID LEFT JOIN CM_DEPARTMENT AD1 ON AD1.DEP_ID = FPM.DEPT_ID LEFT JOIN CM_BRANCH AC2 ON AC2.BRANCH_ID = TPM.BRANCH_ID LEFT JOIN CM_DEPARTMENT AD2 ON AD2.DEP_ID = TPM.DEPT_ID WHERE A.REQ_DOC_ID=@P_REQ_ID ORDER BY A.REQ_TRANSFER_ID END ELSE IF(@p_TYPE='PDTT') BEGIN SELECT A.*,FB.BRANCH_CODE AS FR_BRANCH_CODE, FB.BRANCH_NAME AS FR_BRANCH_NAME,TB.BRANCH_CODE AS TO_BRANCH_CODE, TB.BRANCH_NAME AS TO_BRANCH_NAME, ISNULL(FG.GD_CODE,LF_DT.GOOD_CODE) AS FR_GD_CODE,ISNULL(FG.GD_NAME,LT_DT.GOOD_NAME) AS FR_GD_NAME, ISNULL(TG.GD_CODE,LT_DT.GOOD_CODE) AS TO_GD_CODE,ISNULL(TG.GD_NAME,LT_DT.GOOD_NAME) AS TO_GD_NAME, CASE WHEN A.AUTH_STATUS='A' THEN N'Đã xác nhận' ELSE N'Chưa xác nhận' END AS STATUS_NAME ,DM.DVDM_CODE,DM.DVDM_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,FD.DEP_NAME AS FR_DEP_NAME,FD.DEP_CODE AS FR_DEP_CODE,TD.DEP_NAME AS TO_DEP_NAME,TD.DEP_CODE AS TO_DEP_CODE, (ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,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_TRANSFER Temp WHERE Temp.REQ_DOC_ID=@P_REQ_ID AND Temp.FR_TRADE_ID= A.FR_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.FR_TRADE_ID ),0)AS AMT_REMAIN_ETM_TF,GTF.GD_TYPE_NAME AS FR_GD_TYPE_NAME,GTF.GD_TYPE_CODE AS FR_GD_TYPE_CODE,GTF.GD_TYPE_ID AS FR_GD_TYPE_ID, GTT.GD_TYPE_NAME AS TO_GD_TYPE_NAME,GTT.GD_TYPE_CODE AS TO_GD_TYPE_CODE,GTT.GD_TYPE_ID AS TO_GD_TYPE_ID FROM dbo.PL_REQUEST_TRANSFER A LEFT JOIN dbo.CM_BRANCH FB ON FB.BRANCH_ID=A.FR_BRN_ID LEFT JOIN dbo.CM_BRANCH TB ON TB.BRANCH_ID=A.TO_BRN_ID LEFT JOIN dbo.CM_DEPARTMENT FD ON FD.DEP_ID=A.FR_DEP_ID LEFT JOIN dbo.CM_DEPARTMENT TD ON TD.DEP_ID=A.TO_DEP_ID LEFT JOIN dbo.CM_GOODS FG ON FG.GD_ID=A.FR_GOOD_ID LEFT JOIN dbo.CM_GOODS TG ON TG.GD_ID=A.TO_GOOD_ID LEFT JOIN dbo.PL_IMPORT_DT LF_DT ON LF_DT.TRADE_ID=A.FR_TRADE_ID AND( LF_DT.TRADE_ID IS NOT NULL AND LF_DT.TRADE_ID<>'') LEFT JOIN dbo.PL_IMPORT_DT LT_DT ON LT_DT.TRADE_ID=A.TO_TRADE_ID AND( LT_DT.TRADE_ID IS NOT NULL AND LT_DT.TRADE_ID<>'') LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.FR_DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.FR_KHOI_ID LEFT JOIN @listTRADE PL ON PL.TRADE_ID=A.FR_TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GTF ON FG.GD_CODE LIKE '%.' + GTF.GD_TYPE_CODE +'.%' LEFT JOIN dbo.CM_GOODSTYPE GTT ON TG.GD_CODE LIKE '%.' + GTT.GD_TYPE_CODE +'.%' WHERE A.REQ_DOC_ID=@P_REQ_ID ORDER BY A.REQ_TRANSFER_ID --AND (@ROLE='TGD' OR @IS_ALL=1 OR @ROLE='HDQT' OR EXISTS(SELECT * FROM @DVDM_ID WHERE DVDM_ID=A.FR_DVDM_ID OR DVDM_ID=A.FR_KHOI_ID OR --A.TO_DVDM_ID=DVDM_ID OR A.TO_KHOI_ID=DVDM_ID --)) END ELSE IF(@p_TYPE='XLTT' OR @p_TYPE='TFJOB') BEGIN SELECT A.*,FB.BRANCH_CODE AS FR_BRANCH_CODE, FB.BRANCH_NAME AS FR_BRANCH_NAME,TB.BRANCH_CODE AS TO_BRANCH_CODE, TB.BRANCH_NAME AS TO_BRANCH_NAME, ISNULL(FG.GD_CODE,LF_DT.GOOD_CODE) AS FR_GD_CODE,ISNULL(FG.GD_NAME,LT_DT.GOOD_NAME) AS FR_GD_NAME, ISNULL(TG.GD_CODE,LT_DT.GOOD_CODE) AS TO_GD_CODE,ISNULL(TG.GD_NAME,LT_DT.GOOD_NAME) AS TO_GD_NAME, CASE WHEN A.AUTH_STATUS='A' THEN N'Đã xác nhận' ELSE N'Chưa xác nhận' END AS STATUS_NAME ,DM.DVDM_CODE,DM.DVDM_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,FD.DEP_NAME AS FR_DEP_NAME,FD.DEP_CODE AS FR_DEP_CODE,TD.DEP_NAME AS TO_DEP_NAME,TD.DEP_CODE AS TO_DEP_CODE, (ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,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_TRANSFER Temp WHERE Temp.REQ_DOC_ID=@P_REQ_ID AND Temp.FR_TRADE_ID= A.FR_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.FR_TRADE_ID ),0)AS AMT_REMAIN_ETM_TF,GTF.GD_TYPE_NAME AS FR_GD_TYPE_NAME,GTF.GD_TYPE_CODE AS FR_GD_TYPE_CODE,GTF.GD_TYPE_ID AS FR_GD_TYPE_ID, GTT.GD_TYPE_NAME AS TO_GD_TYPE_NAME,GTT.GD_TYPE_CODE AS TO_GD_TYPE_CODE,GTT.GD_TYPE_ID AS TO_GD_TYPE_ID FROM dbo.PL_REQUEST_TRANSFER A LEFT JOIN dbo.CM_BRANCH FB ON FB.BRANCH_ID=A.FR_BRN_ID LEFT JOIN dbo.CM_BRANCH TB ON TB.BRANCH_ID=A.TO_BRN_ID LEFT JOIN dbo.CM_DEPARTMENT FD ON FD.DEP_ID=A.FR_DEP_ID LEFT JOIN dbo.CM_DEPARTMENT TD ON TD.DEP_ID=A.TO_DEP_ID LEFT JOIN dbo.CM_GOODS FG ON FG.GD_ID=A.FR_GOOD_ID LEFT JOIN dbo.CM_GOODS TG ON TG.GD_ID=A.TO_GOOD_ID LEFT JOIN dbo.PL_IMPORT_DT LF_DT ON LF_DT.TRADE_ID=A.FR_TRADE_ID AND( LF_DT.TRADE_ID IS NOT NULL AND LF_DT.TRADE_ID<>'') LEFT JOIN dbo.PL_IMPORT_DT LT_DT ON LT_DT.TRADE_ID=A.TO_TRADE_ID AND( LT_DT.TRADE_ID IS NOT NULL AND LT_DT.TRADE_ID<>'') LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.FR_DVDM_ID LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.FR_KHOI_ID LEFT JOIN @listTRADE PL ON PL.TRADE_ID=A.FR_TRADE_ID LEFT JOIN dbo.CM_GOODSTYPE GTF ON FG.GD_CODE LIKE '%.' + GTF.GD_TYPE_CODE +'.%' LEFT JOIN dbo.CM_GOODSTYPE GTT ON TG.GD_CODE LIKE '%.' + GTT.GD_TYPE_CODE +'.%' WHERE A.REQ_DOC_ID=@P_REQ_ID ORDER BY A.REQ_TRANSFER_ID --AND (A.FR_BRN_ID=@BRANCH_ID AND( A.FR_DEP_ID=@DEP_ID OR A.FR_DEP_ID IS NULL OR A.FR_DEP_ID='')OR @ROLE='TGD' OR @IS_ALL=1 OR @ROLE='HDQT') END --EXEC TR_PO_DETAIL_ById 'TRPM00000000001', 'DV0001' GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE]' GO ALTER PROCEDURE [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE] @p_XMP_RECURRING XML AS BEGIN TRANSACTION DECLARE @list_req_payment NVARCHAR(MAX) = '' -- DS CAC KY DA THANH TOAN DECLARE @billRef VARCHAR(20), @billCode VARCHAR(20), @customerName NVARCHAR(MAX), @amount VARCHAR(20), @accountNo VARCHAR(20), @accountType VARCHAR(20), @createdTime VARCHAR(21), @partner VARCHAR(20), @resultCode VARCHAR(20), @resultDesc NVARCHAR(MAX), @transDesc NVARCHAR(MAX), @coreXref VARCHAR(20), @partnerAccount VARCHAR(20), @billCodeAlias VARCHAR(20), @prvCode VARCHAR(20), @sevCode VARCHAR(20), @year VARCHAR(20), @customerAddress VARCHAR(20), @month VARCHAR(20), @accountName VARCHAR(20), @accountNoRec VARCHAR(20), @accountNameRec VARCHAR(20), @billDate VARCHAR(20) DECLARE @hDocRecurring INT EXEC sp_xml_preparedocument @hDocRecurring OUTPUT, @p_XMP_RECURRING; DECLARE XmlAutoRecurring CURSOR LOCAL FOR SELECT * FROM OPENXML(@hDocRecurring, 'Root/XmlAutoRecurring',2) WITH(billRef VARCHAR(20), billCode VARCHAR(20), customerName NVARCHAR(MAX), amount VARCHAR(20), accountNo VARCHAR(20), accountType VARCHAR(20), createdTime VARCHAR(30), [partner] VARCHAR(20), resultCode VARCHAR(20), resultDesc NVARCHAR(MAX), transDesc NVARCHAR(MAX), coreXref VARCHAR(20), partnerAccount VARCHAR(20), [month] VARCHAR(20)) OPEN XmlAutoRecurring --- DUYET QUA TUNG KY THANH TOAN FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime, @partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month WHILE @@fetch_status=0 BEGIN print '@billRef: ' + @billRef print '@billcode: ' + @billCode IF(@resultCode <> '00') BEGIN PRINT 'KY THANH TOAN KHONG HOP LE' + @billRef END ELSE IF(@accountType <> 'A') BEGIN PRINT 'KHONG PHAI THANH TOAN BANG THE' + @billRef END /* ELSE IF(@partner <> 'AMS') BEGIN PRINT 'KHONG PHAI KY THANH TOAN DUOC THANH TOAN BOI AMS' + @billRef END */ ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = @billRef AND @billCode = billCode AND @coreXref = coreXref)) BEGIN PRINT 'KY THANH TOAN DA TON TAI TRONG HE THONG - DA THUC HIEN THANH TOAN TREN AMS: ' + @billRef END ELSE IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING WHERE BILLCODE = @billCode)) BEGIN PRINT 'KHONG CO BILLCODE TRONG HE THONG AMS: ' + @billCode END ELSE IF(NOT EXISTS (SELECT * FROM TR_REQ_PAY_AUTO_RECURRING A LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID WHERE A.BILLCODE = @billCode ) ) BEGIN PRINT 'KHONG CO PHIEU YEU CAU THANH TOAN TU DONG TRONG HE THONG AMS: ' + @billCode END ELSE BEGIN DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20), @CONTRACT_ID VARCHAR(20), @CONTRACT_CODE VARCHAR(20), @CONTRACT_NAME NVARCHAR(500), @BRANCH_ID NVARCHAR(20), @REQ_PAY_AUTO_SERVICE_TYPE_NAME NVARCHAR(200), @DEP_ID VARCHAR(20), @BRANCH_CREATE VARCHAR(20), @REQ_PAY_AUTO_ID VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(20), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME NVARCHAR(500) PRINT 'GET DATA BILLCODE' -- LAY DATA CUA BILLCODE DANG KY TRONG AMS SELECT TOP 1 @CONTRACT_ID = B.CONTRACT_ID, @CONTRACT_CODE = E.CONTRACT_CODE, @CONTRACT_NAME = E.[CONTRACT_NAME], @BRANCH_ID = B.BRANCH_ID, @REQ_PAY_AUTO_SERVICE_TYPE_NAME = D.CONTENT, @DEP_ID = B.DEP_ID, @BRANCH_CREATE = B.BRANCH_CREATE, @REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID, @TRANSFER_USER_RECEIVE = B.TRANSFER_USER_RECEIVE, @TRANS_GLCODE = A.TRANS_GLCODE, @TRANS_GLNAME = A.TRANS_GLNAME FROM TR_REQ_PAY_AUTO_RECURRING A LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID LEFT JOIN CM_ALLCODE D ON B.REQ_PAY_AUTO_SERVICE_TYPE = D.CDVAL AND D.CDNAME = 'PAY_SER_AUTO' AND CDTYPE = 'REQ_AUTO' LEFT JOIN TR_CONTRACT E ON B.CONTRACT_ID = E.CONTRACT_ID WHERE BILLCODE = @billCode PRINT 'LUU LOG KY THANH TOAN' print @createdTime -- LUU LOG KY THANH TOAN INSERT INTO TR_REQ_PAY_AUTO_RECURRING_HISTORY(billRef, billCode, customerName, amount, accountNo, accountType, createdTime, [partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT) VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103), @partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE()) -------------------- BEGIN TAO PHIEU DE NGHI THANH TOAN TU DONG ---------------------------------- -- BEGIN KHOI TAO GIA TRI -- ID PDN THANH TOAN PRINT 'GEN ID PDN THANH TOAN' EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @REQ_PAY_CODE ) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Số phiếu đề nghị thanh toán đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END PRINT 'GEN MA CODE PDN THANH TOAN' -- MA CODE PDN THANH TOAN EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT PRINT 'GET DON VI QUAN LY HOP DONG' DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) = ( SELECT TOP 1 BRANCH_ID FROM CM_BRANCH WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) ) SET @BRANCH_CREATE = @BRANCH_MANAGE_ID; SET @BRANCH_ID = @BRANCH_MANAGE_ID; IF(ISNULL(@BRANCH_MANAGE_ID, '') <> 'DV0001') BEGIN SET @DEP_ID = NULL END DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = ( SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) ) IF((SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) <> 'DV0001' AND @BRANCH_ID = 'DV0001') BEGIN SET @BRANCH_MANAGE_NAME = (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID) + ISNULL ( ' - ' + ( SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) ), '' ) END -- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = '' DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = '' IF(ISNULL(@month, '') = '') BEGIN PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' theo GDNTT số ' + @REQ_PAY_CODE SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' theo GDNTT số ' + @REQ_PAY_CODE)) END ELSE BEGIN PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE)) END -- END KHOI TAO GIA TRI PRINT 'TAO PHIEU DE NGHI THANH TOAN' INSERT INTO [dbo].[TR_REQ_PAYMENT] (REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY, IS_CREATE_AUTO, TYPE_AUTO, SYSTEM_INVOICE_ID, IS_CREATE_AUTO_DONE) VALUES (@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', NULL, NULL, NULL, NULL, NULL, --NULL '1', GETDATE(), 'VND', @amount, NULL, 'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(), --HC GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT @BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL, 'Y', 'B', @billRef, 'N') PRINT 'TAO LUOI PDN THANH TOAN CHO PYC TTTD' -- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS] (REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY) VALUES (@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', NULL, NULL, NULL, NULL, NULL, --NULL '1', GETDATE(), 'VND', @amount, NULL, 'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(), --HC GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT @BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL) PRINT 'THEM LICH SU XU LY' INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES(@REQ_PAY_ID,'AUTO_APPR','admin',GETDATE(), N'Hệ thống tạo phiếu thanh toán tự động',N'Hệ thống tạo phiếu thanh toán tự động') -------------------- END TAO PHIEU DE NGHI THANH TOAN TU DONG ---------------------------------- -- TẠO LƯỚI THÔNG TIN HỢP ĐỒNG ĐỊNH KỲ PRINT 'TAO LUOI THONG TIN HDDK' 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, DELIVERY_DT) VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103)) -- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ PRINT 'TAO LUOI THONG TIN THANH TOAN HDDK' 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, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @amount, 'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @month, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL ) -- TẠO LƯỚI THÔNG TIN HẠCH TOÁN -- BUT TOAN CHI PHI PRINT 'BUT TOAN CHI PHI' DECLARE @FUNCTION_TYPE VARCHAR(15), @TRN_TYPE NVARCHAR(40), @REF_ID VARCHAR(15), @ENTRY_PAIR varchar(50), @DR_CR varchar(2), @DR_CR_NAME nvarchar(50), @ACCT varchar(100), @ACCT_NAME varchar(500), @AMT DECIMAL(18,2), @EXC_RATE DECIMAL(18,2), @TRN_DATE VARCHAR(20), @TRN_DESC nvarchar(1000), @AUTH_STATUS varchar(2), @APPROVE_DT varchar(20), @CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20), @CURRENCY varchar(20), @MAKER_ID varchar(20), @CREATE_DT varchar(20), @CHECKER_ID varchar(20), @MAKER_ID_KT varchar(20), @AUTH_STATUS_KT varchar(2), @CHECKER_ID_KT varchar(20), @RECORD_STATUS varchar(20) DECLARE cursorEntries CURSOR LOCAL FOR SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE, TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID Open cursorEntries FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE, @TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT; IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT; INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE], [TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL]) VALUES (@l_TR_REQ_PAY_ENTRIES, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL(18,2), @amount), 'VND', @EXC_RATE, @TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', GETDATE(), @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', GETDATE(), 'A', 'admin', @APPROVE_DT_KT, '1', @IS_TRANSFER_EXTERNAL) IF @@error<>0 GOTO ABORT; FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE, @TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL END CLOSE cursorEntries DEALLOCATE cursorEntries PRINT '9' --- BAN BUT TOAN VAO CORE DECLARE @RES VARCHAR(10) EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT -- BUT TOAN HE THONG -- NỢ DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT; INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID], [ENTRY_PAIR],[DR_CR],[DR_CR_NAME], [ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC], [MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL]) VALUES(@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID,NULL,'PAYMENT',NULL, '2', N'D', N'Nợ', @accountNo, @customerName, N'DV0001', N'', CONVERT(DECIMAL(18,2), @amount), N'VND', 1.00, GETDATE(), @PAY_AUTO_TRN_DESC_DETAIL, 'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL) DECLARE @l_PAY_ENTRIES_POST_D VARCHAR(15); EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_D OUT; INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE], [ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID], [AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID]) VALUES (@l_PAY_ENTRIES_POST_D, @coreXref, @REQ_PAY_ID, @l_TR_REQ_PAY_ENTRIES_D,'PAYMENT', '2',N'DV0001',N'D', @accountNo,N'DV0001',N'', CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(), @PAY_AUTO_TRN_DESC_DETAIL,'admin','admin') -- CÓ DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15); EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT; INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID], [ENTRY_PAIR],[DR_CR],[DR_CR_NAME], [ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC], [MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL]) VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL, '2',N'C',N'Có', @partnerAccount, @partner,N'DV0001',N'', CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@PAY_AUTO_TRN_DESC_DETAIL, 'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL) DECLARE @l_PAY_ENTRIES_POST_C VARCHAR(15); EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_C OUT; INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE], [ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID], [AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID]) VALUES (@l_PAY_ENTRIES_POST_C, @coreXref, @REQ_PAY_ID,@l_TR_REQ_PAY_ENTRIES_C,'PAYMENT', '2',N'DV0001',N'C', @partnerAccount,N'DV0001',N'', CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(), @PAY_AUTO_TRN_DESC_DETAIL, 'admin', 'admin') -- Mỗi lần chỉ quét 1 bill hợp lệ CLOSE XmlAutoRecurring; DEALLOCATE XmlAutoRecurring; COMMIT TRANSACTION SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc RETURN '0' END IF @@error<>0 GOTO ABORT; FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime, @partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month END; CLOSE XmlAutoRecurring; DEALLOCATE XmlAutoRecurring; COMMIT TRANSACTION SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Lỗi không xác định' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON