ALTER PROC [dbo].[CM_REJECT_LOG_ByType_Ins] @p_LOG_ID varchar(15) = NULL, @p_STAGE varchar(5) = NULL, @p_TRN_ID varchar(15) = NULL, @p_TRN_TYPE nvarchar(100) = NULL, @p_LOG_DT VARCHAR = NULL, @p_AUTH_STAT varchar(3) = NULL, @p_REASON nvarchar(500) = NULL, @p_IS_LATEST varchar(1) = NULL, @p_REJECTED_BY varchar(20) = NULL, @p_REJECTED_DT VARCHAR = NULL, @p_TYPE VARCHAR(20) =NULL, @p_PROCESS_ID VARCHAR(20), @p_REF_ID INT=NULL AS BEGIN TRANSACTION DECLARE @PARENT_PROCESS_ID VARCHAR(20),@ROLE_ID VARCHAR(20),@ROLE_DES NVARCHAR(200),@ROLE_PARENT_ID VARCHAR(20),@ROLE_DES_PARENT NVARCHAR(200),@COMPLETE BIT DECLARE @p_CURRENT_PROCESS_ID VARCHAR(20), @p_PARENT_PROCESS_ID VARCHAR(20), @p_PROCESS_NOTES NVARCHAR(MAX) SET @COMPLETE=0 DECLARE @p_MESSAGE NVARCHAR(1000) = NULL IF(EXISTS (SELECT * FROM CM_REJECT_LOG WHERE TRN_ID = @p_TRN_ID)) BEGIN UPDATE CM_REJECT_LOG SET IS_LATEST ='N' WHERE TRN_ID =@p_TRN_ID END -- END PHIEU DE THI THANH TOAN 19-11-2019 --- PHIEU YEU CAU MUA SAM IF(@p_TRN_TYPE='PL_REQUEST_DOC') BEGIN IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Tờ trình chủ trương đã được duyệt' ROLLBACK TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' END IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND (PROCESS_ID='REJECT' OR AUTH_STATUS ='R'))) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Tờ trình chủ trương đã được từ chối trước đó. Bạn không được phép thao tác trên tờ trình này nữa' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID IN ('TKTGD','TKHDQT'))) BEGIN IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='XL' AND TLNAME =@p_REJECTED_BY)) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Bạn là nhân viên xử lý, bạn không được phép từ chối tờ trình. Vui lòng nhập ý kiến tham vấn và gửi trưởng văn phòng xem xét' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END END --BEGIN IF(@p_TYPE='CREATE') BEGIN UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID='REJECT',AUTH_STATUS='R', TC_NOTES = '',KT_NOTES = '', TK_TGD_NOTES = '', TK_HDQT_NOTES = '', TGD_NOTES = '', CHECKER_ID = '', APPROVE_DT = NULL, IS_AUTHORITY = 0 WHERE REQ_ID=@p_TRN_ID DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID DELETE PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID UPDATE PL_REQUEST_COSTCENTER SET NOTES = '' WHERE REQ_ID = @p_TRN_ID -- UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U',NOTES=N'Tờ trình bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID -- UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID <>'APPNEW' AND REQ_ID=@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, N'Trả về người tạo' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công' SET @COMPLETE=1 PRINT @p_MESSAGE END ELSE IF(@p_TYPE='NVXL') BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID AND TYPE_JOB ='XL')) BEGIN SET @p_MESSAGE =N'Tờ trình chưa được điều phối cho nhân viên xử lý. Vui lòng trả về người tạo phiếu (nếu cần) hoặc thực hiện điều phối tờ trình' --SET @COMPLETE=0 ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='C')) BEGIN --SET @p_MESSAGE =N'Phiếu đang chờ nhân viên xử lý. Vui lòng đợi nhân viên xử lý & gửi phê duyệt' --SET @COMPLETE=0 SET @p_MESSAGE =N'Phiếu đang chờ nhân viên xử lý. Vui lòng đợi nhân viên xử lý & gửi phê duyệt' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ELSE BEGIN UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='U' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID --UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='R' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL' --LUCTV 28 09 2020 DIEU CHINH LOI TRA VE NHUNG NHAN VIEN XU LY KHONG DUOC PHEP TRA VE TIEP UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL' IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL')) BEGIN UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB ='KS' END INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, N'Trả về nhân viên xử lý' -- PROCESS_DESC - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công' SET @COMPLETE=1 END END ELSE IF(@p_TYPE='PRE_APP') -- BEGIN -- --SET @PARENT_PROCESS_ID =(SELECT TOP 1 PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID) -- --SET @ROLE_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID) -- --SET @ROLE_PARENT_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID) -- --SET @ROLE_DES=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID) -- --SET @ROLE_DES_PARENT=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_PARENT_ID) -- -- --UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=@ROLE_DES + N' đã trả về, chờ ' + @ROLE_DES_PARENT +N' xử lý' WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID -- -- --UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID -- --UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PARENT_PROCESS_ID WHERE REQ_ID=@p_TRN_ID -- --IF(@PARENT_PROCESS_ID='APPNEW') -- -- UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U' WHERE REQ_ID=@p_TRN_ID -- --IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS' AND DMMS_ID ='DMMS00000000001')) -- --BEGIN -- -- INSERT INTO dbo.PL_PROCESS -- -- ( -- -- REQ_ID, -- -- PROCESS_ID, -- -- CHECKER_ID, -- -- APPROVE_DT, -- -- PROCESS_DESC, -- -- NOTES -- -- ) -- -- VALUES -- -- ( @p_TRN_ID, -- REQ_ID - varchar(15) -- -- 'REJECT', -- PROCESS_ID - varchar(10) -- -- @p_REJECTED_BY, -- CHECKER_ID - varchar(15) -- -- GETDATE(), -- APPROVE_DT - datetime -- -- @p_REASON,N'Trả về ' + @ROLE_DES_PARENT -- -- -- PROCESS_DESC - nvarchar(1000) -- -- ) -- -- DECLARE @PROCESS_ID VARCHAR(15) -- -- SET @PROCESS_ID =(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS') -- -- DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID -- -- SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công' -- -- SET @COMPLETE=1 -- --END -- --ELSE -- --BEGIN -- -- SET @p_MESSAGE =N'Tạm thời bạn nên trả phiếu về người tạo' -- -- SET @COMPLETE=0 -- -- END -- SET @p_PARENT_PROCESS_ID = ( -- SELECT PARENT_PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C' -- ) -- SET @p_CURRENT_PROCESS_ID = ( -- SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C' -- ) -- -- -- DECLARE @p_TK_TGD_NOTES NVARCHAR(4000), @p_TK_HDQT_NOTES NVARCHAR(4000) -- SET @p_TK_TGD_NOTES = (SELECT TK_TGD_NOTES FROM PL_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID) -- SET @p_TK_HDQT_NOTES = (SELECT TK_HDQT_NOTES FROM PL_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID) -- -- IF(@p_PARENT_PROCESS_ID = 'GDK_TT') -- BEGIN -- SET @p_PROCESS_NOTES = N'giám đốc khối' -- END -- ELSE IF(@p_PARENT_PROCESS_ID = 'PTGDK_TT') -- BEGIN -- SET @p_PROCESS_NOTES = N'phó tổng giám đốc khối' -- END -- ELSE IF (@p_PARENT_PROCESS_ID = 'TKTGD') -- BEGIN -- SET @p_PROCESS_NOTES = N'Thư Ký TGĐ' -- SET @p_TK_TGD_NOTES = NULL -- END -- ELSE IF (@p_PARENT_PROCESS_ID = 'TGD') -- BEGIN -- SET @p_PROCESS_NOTES = N'tổng giám đốc' -- END -- ELSE IF (@p_PARENT_PROCESS_ID = 'TKHDQT') -- BEGIN -- SET @p_PROCESS_NOTES = N'Văn Phòng Thư Ký HĐQT' -- SET @p_TK_HDQT_NOTES = NULL -- END -- ------------------Update trạng thái hiện tại là bước xử lý trước đó------- -- UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' -- WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_CURRENT_PROCESS_ID -- -- UPDATE PL_REQUEST_PROCESS SET -- STATUS = 'C', -- CHECKER_ID = '', -- APPROVE_DT = NULL, -- NOTES = N'Chờ ' + @p_PROCESS_NOTES + N' xác nhận' -- WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_PARENT_PROCESS_ID -- -- UPDATE PL_REQUEST_DOC SET -- PROCESS_ID = @p_PARENT_PROCESS_ID, -- TK_TGD_NOTES = @p_TK_TGD_NOTES, -- TK_HDQT_NOTES = @p_TK_HDQT_NOTES -- WHERE REQ_ID = @p_TRN_ID -- -- INSERT INTO dbo.PL_PROCESS -- ( -- REQ_ID, -- PROCESS_ID, -- CHECKER_ID, -- APPROVE_DT, -- PROCESS_DESC, -- NOTES -- ) -- VALUES -- ( @p_TRN_ID, -- REQ_ID - varchar(15) -- 'REJECT', -- PROCESS_ID - varchar(10) -- @p_REJECTED_BY, -- CHECKER_ID - varchar(15) -- GETDATE(), -- APPROVE_DT - datetime -- @p_REASON, -- PROCESS_DESC - nvarchar(1000) -- N'Trả về ' + @p_PROCESS_NOTES -- NOTES - nvarchar(1000) -- -- ) -- SET @p_MESSAGE =N'Tờ trình đã được trả về thành công' -- SET @COMPLETE=1 -- END BEGIN --SET @PARENT_PROCESS_ID =(SELECT TOP 1 PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID) --SET @ROLE_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID) --SET @ROLE_PARENT_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID) --SET @ROLE_DES=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID) --SET @ROLE_DES_PARENT=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_PARENT_ID) --UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=@ROLE_DES + N' đã trả về, chờ ' + @ROLE_DES_PARENT +N' xử lý' WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID --UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID --UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PARENT_PROCESS_ID WHERE REQ_ID=@p_TRN_ID --IF(@PARENT_PROCESS_ID='APPNEW') -- UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U' WHERE REQ_ID=@p_TRN_ID IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS' AND DMMS_ID ='DMMS00000000001')) BEGIN INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, N'Trả về ' + @ROLE_DES_PARENT -- PROCESS_DESC - nvarchar(1000) ) DECLARE @PROCESS_ID VARCHAR(15) SET @PROCESS_ID =(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS') DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công' SET @COMPLETE=1 END ELSE BEGIN SET @p_MESSAGE =N'Tạm thời bạn nên trả phiếu về người tạo' SET @COMPLETE=0 END END END ELSE IF(@p_TRN_TYPE='TR_REQUEST_DOC') BEGIN --IF(@p_STAGE='DVMS') --BEGIN --END IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được duyệt' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ELSE BEGIN DECLARE @p_TR_REQ_CODE VARCHAR(50) = ( SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID ) ---------------Trả về người tạo------------- IF(@p_TYPE='CREATE') BEGIN ---------------Thông báo lỗi nếu PYCMS đã được trả về người tạo------------------- IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'REJECT' AND AUTH_STATUS = 'R')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về người tạo trước đó' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ELSE BEGIN UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID='REJECT', AUTH_STATUS='R', USER_DVMS = NULL, CHECKER_ID = NULL, APPROVE_DT = NULL WHERE REQ_ID=@p_TRN_ID UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID <>'APPNEW' AND REQ_ID=@p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON,N'Trả về người tạo' -- PROCESS_DESC - nvarchar(1000) ) SET @COMPLETE=1 SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công' END END ---------Trả về nhân viên xử lý-------------------- ELSE IF(@p_TYPE='NVXL') BEGIN ---------------Thông báo lỗi nếu PYCMS đã được trả về nhân viên xử lý------------------- IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_REF_ID AND TYPE_JOB = 'XL' AND STATUS_JOB = 'C')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về nhân viên xử lý trước đó' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ELSE BEGIN UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='U' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID --UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='R' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL' --LUCTV 28 09 2020 DIEU CHINH LOI TRA VE NHUNG NHAN VIEN XU LY KHONG DUOC PHEP TRA VE TIEP --KIEM TRA NGUOI DIEU PHOI - NEU LA TP - TRA VE CHO NHAN VIEN XU LY THI SE TRA VE CHO UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL' IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL')) BEGIN UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB ='KS' END INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON,N'Trả về nhân viên xử lý' -- PROCESS_DESC - nvarchar(1000) ) SET @COMPLETE=1 SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công' END END ELSE IF(@p_TYPE='PRE_APP') BEGIN --SET @PARENT_PROCESS_ID =(SELECT TOP 1 PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID) --SET @ROLE_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID) --SET @ROLE_PARENT_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID) --SET @ROLE_DES=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID) --SET @ROLE_DES_PARENT=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_PARENT_ID) --UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=@ROLE_DES + N' đã trả về, chờ ' + @ROLE_DES_PARENT +N' xử lý' WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID --IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID=@PARENT_PROCESS_ID AND IS_HAS_CHILD=1)) --BEGIN -- UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='R' WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID IN (SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID=@PARENT_PROCESS_ID AND IS_HAS_CHILD=1) AND LEVEL_JOB=1 --END --IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID='DVCM')) --BEGIN -- UPDATE dbo.TR_REQUEST_COSTCENTER SET AUTH_STATUS='R' WHERE REQ_ID=@p_TRN_ID --END --UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID --UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PARENT_PROCESS_ID WHERE REQ_ID=@p_TRN_ID --IF(@PARENT_PROCESS_ID='APPNEW') -- UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U' WHERE REQ_ID=@p_TRN_ID --INSERT INTO dbo.PL_PROCESS --( --REQ_ID, --PROCESS_ID, --CHECKER_ID, --APPROVE_DT, --PROCESS_DESC,NOTES --) --VALUES --( @p_TRN_ID, -- REQ_ID - varchar(15) -- 'REJECT', -- PROCESS_ID - varchar(10) -- @p_REJECTED_BY, -- CHECKER_ID - varchar(15) -- GETDATE(), -- APPROVE_DT - datetime -- @p_REASON,N'Trả về ' + @ROLE_DES_PARENT -- -- PROCESS_DESC - nvarchar(1000) --) IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS' AND DMMS_ID ='DMMS00000000001')) BEGIN INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON,N'Trả về ' + @ROLE_DES_PARENT -- PROCESS_DESC - nvarchar(1000) ) DECLARE @PROCESS_ID_DMMS INT SET @PROCESS_ID_DMMS =(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS') DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về cấp duyệt trước đó thành công' SET @COMPLETE=1 END ELSE BEGIN SET @p_MESSAGE =N'Tạm thời bạn nên trả phiếu về người tạo' SET @COMPLETE=0 END END ----------------BAODNQ 13/6/2022: THÊM XỬ LÝ TRẢ VỀ ĐMMS----------- ELSE IF (@p_TYPE = 'RE_DMMS') BEGIN --------------Thông báo lỗi nếu PYCMS đã được trả về đầu mối mua sắm------------------- IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về đầu mối mua sắm trước đó' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ELSE BEGIN ---------------CẬP NHẬT LẠI BƯỚC XỬ LÝ HIỆN TẠI LÀ ĐMMS-------- UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID <> 'APPNEW' UPDATE PL_REQUEST_PROCESS SET STATUS = 'C', NOTES = N'Chờ đầu mối mua sắm xử lý', CHECKER_ID = '', APPROVE_DT = NULL WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' UPDATE TR_REQUEST_DOC SET PROCESS_ID = 'DMMS' WHERE REQ_ID = @p_TRN_ID DECLARE @p_DMMS_ID_PROCESS INT = ( SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C' ) -------------XÓA LỊCH SỬ ĐIỀU PHỐI ĐỂ ĐMMS ĐIỀU PHỐI LẠI---------- DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_DMMS_ID_PROCESS -------------XÓA LỊCH SỬ ĐIỀU PHỐI CỦA DVCM-------------- DECLARE @t_DVCM TABLE (PROCESS_ID INT) INSERT INTO @t_DVCM SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID IN (SELECT PROCESS_ID FROM @t_DVCM) ------------XÓA LỊCH SỬ XỬ LÝ CÓ STATUS = 'U'--------- DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'U' IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND DVDM_ID = 'DM0000000000006' AND ROLE_USER = 'KSV')) BEGIN DELETE FROM TR_REQUEST_COSTCENTER WHERE REQ_ID = @p_TRN_ID AND COST_ID = 'DM0000000000006' END -----------CẬP NHẬT LẠI DVCM LÀ CHƯA XÁC NHẬN------------- UPDATE TR_REQUEST_COSTCENTER SET AUTH_STATUS = 'U', APPROVE_DT = NULL, CHECKER_ID = NULL, NOTES = NULL WHERE REQ_ID = @p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, -- PROCESS_DESC - nvarchar(1000) N'Trả về trưởng đơn vị ở đầu mối mua sắm' --NOTES ) SET @COMPLETE=1 SET @p_MESSAGE = N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ N' đã được trả về đầu mối mua sắm thành công' END END -----------------XỬ LÝ TRẢ VỀ CHO DVCM--------------- ELSE IF (@p_TYPE = 'RE_DVCM') BEGIN --------------Thông báo lỗi nếu PYCMS đã được trả về DVCM------------------- IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' AND STATUS = 'C')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về đơn vị chuyên môn trước đó' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ----------------CẬP NHẬT LẠI BƯỚC XỬ LÝ HIỆN TẠI LÀ DVCM-------- UPDATE PL_REQUEST_PROCESS SET STATUS = 'U', CHECKER_ID = '', APPROVE_DT = NULL WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID <> 'APPNEW' AND PROCESS_ID <> 'DMMS' UPDATE PL_REQUEST_PROCESS SET STATUS = 'C', NOTES = N'Chờ đơn vị chuyên môn xác nhận', CHECKER_ID = '', APPROVE_DT = NULL WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' UPDATE TR_REQUEST_DOC SET PROCESS_ID = 'DVCM' WHERE REQ_ID = @p_TRN_ID DECLARE @t_DVCM_ID_PROCESS TABLE (PROCESS_ID INT) INSERT INTO @t_DVCM_ID_PROCESS SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' AND STATUS = 'C' ----------------XÓA LỊCH SỬ ĐIỀU PHỐI ĐỂ DVCM ĐIỀU PHỐI LẠI----------- DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID IN (SELECT PROCESS_ID FROM @t_DVCM_ID_PROCESS) -----------CẬP NHẬT LẠI DVCM LÀ CHƯA XÁC NHẬN------------- -----------Nếu DVCM trùng vs DMMS thì giữ nguyên----------- DECLARE @p_DVDM_DMMS_ID VARCHAR(15) = ( SELECT CDV.DVDM_ID FROM CM_DMMS CD LEFT JOIN PL_COSTCENTER_DT PCD ON CD.BRANCH_ID = PCD.BRANCH_ID AND CD.DEP_ID = PCD.DEP_ID LEFT JOIN PL_COSTCENTER PC ON PCD.COST_ID = PC.COST_ID LEFT JOIN CM_DVDM CDV ON PC.DVDM_ID = CDV.DVDM_ID WHERE CD.DMMS_ID = (SELECT DVDM_ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID = 'DMMS' AND REQ_ID = @p_TRN_ID) AND CDV.IS_DVCM = 1 ) UPDATE TR_REQUEST_COSTCENTER SET AUTH_STATUS = 'U', APPROVE_DT = NULL, CHECKER_ID = NULL, NOTES = NULL WHERE REQ_ID = @p_TRN_ID AND COST_ID <> @p_DVDM_DMMS_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, -- PROCESS_DESC - nvarchar(1000) N'Trả về trưởng đơn vị ở đơn vị chuyên môn' --NOTES ) SET @COMPLETE=1 SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ N' đã được trả về đơn vị chuyên môn thành công' END ----------BAODNQ 21/10/2022 : Thêm xử lý KSV ĐMMS trả về cho trưởng đơn vị ĐMMS------- ELSE IF(@p_TYPE = 'RE_GDDV_DMMS') BEGIN DECLARE @p_PROCESS_CHILD_PROCESS_ID VARCHAR(20) =( SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C' ) IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C')) BEGIN SET @p_MESSAGE =N'Thao tác này chỉ được thực hiện ở đầu mối mua sắm' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_PROCESS_CHILD_PROCESS_ID)) BEGIN SET @p_MESSAGE =N'Chuyển phiếu thất bại! Phiếu đã ở trưởng đơn vị chờ điều phối' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ---------------Xóa điều phối ở ĐMMS-------------- DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_PROCESS_CHILD_PROCESS_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, -- PROCESS_DESC - nvarchar(1000) N'Chuyển phiếu cho trưởng đơn vị ở đầu mối mua sắm' --NOTES ) SET @COMPLETE=1 SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ N' đã được chuyển cho trưởng đơn vị đầu mối mua sắm thành công' END ---------------------------END BAODNQ 21/10/2022-------------------- -------------------------BAODNQ 19/8/2022 : Thêm xử lý trả về TKTGD-------- ELSE IF(@p_TYPE = 'RE_TKTGD') BEGIN --------------Thông báo lỗi nếu PYCMS đã được trả về TKTGD------------------- IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'TKTGD_CDT' AND STATUS = 'C')) BEGIN SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về thư ký tổng giám đốc trước đó' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END ------------------Update bước hiện tại thành TKTGD-------------- SET @p_CURRENT_PROCESS_ID = ( SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C' ) SET @p_PARENT_PROCESS_ID = ( SELECT PARENT_PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C' ) UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_CURRENT_PROCESS_ID UPDATE PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID = NULL, APPROVE_DT = NULL, NOTES = N'Chờ Thư ký Tổng Giám đốc phê duyệt' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_PARENT_PROCESS_ID UPDATE TR_REQUEST_DOC SET PROCESS_ID = @p_PARENT_PROCESS_ID WHERE REQ_ID = @p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, -- PROCESS_DESC - nvarchar(1000) N'Trả về Thư ký Tổng giám đốc' -- NOTES - nvarchar(1000) ) SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ N' đã được trả về thư ký Tổng giám đốc thành công' SET @COMPLETE=1 END END END ---------------BAODNQ 6/6/2022 THÊM TRẢ VỀ CHO TỜ TRÌNH CHỈ ĐỊNH THẦU-------- ELSE IF (@p_TRN_TYPE = 'PL_APPOINT_CONTRACTOR') BEGIN IF(EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_TRN_ID AND AUTH_STATUS = 'A' AND PROCESS_ID = 'APPROVE')) BEGIN SET @p_MESSAGE = N'Trả về thất bại. Tờ trình chỉ định thầu đã được duyệt' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END IF (EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_TRN_ID AND AUTH_STATUS = 'R' AND PROCESS_ID = 'REJECT')) BEGIN SET @p_MESSAGE = N'Trả về thất bại. Tờ trình chỉ định thầu đã được trả về trước đó' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END IF(@p_TYPE = 'CREATE') BEGIN UPDATE PL_APPOINT_CONTRACTOR SET AUTH_STATUS = 'R', PROCESS_ID = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL WHERE REQ_ID = @p_TRN_ID UPDATE PL_REQUEST_PROCESS SET STATUS = 'R', NOTES = N'Phiếu bị trả về' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'APPNEW' UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID <> 'APPNEW' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, -- PROCESS_DESC - nvarchar(1000) N'Trả về người tạo' --NOTES ) SET @COMPLETE = 1 SET @p_MESSAGE =N'Tờ trình chỉ định thầu đã được trả về thành công' END END ------------------END BAODNQ 6/6/2022------------------- ------------------------Đánh giá NCC-------------------- ELSE IF(@p_TRN_TYPE = 'TR_RATE_SUPPLIER') BEGIN IF(EXISTS (SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_TRN_ID AND AUTH_STATUS = 'A' AND PROCESS_STATUS = 'APPROVE')) BEGIN SET @p_MESSAGE = N'Trả về thất bại. Phiếu đánh giá NCC đã được duyệt' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END IF (EXISTS (SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_TRN_ID AND AUTH_STATUS = 'R' AND PROCESS_STATUS = 'REJECT')) BEGIN SET @p_MESSAGE = N'Trả về thất bại. Phiếu đánh giá NCC đã được trả về trước đó' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END DECLARE @p_RATE_REQ_NO VARCHAR(100) = ( SELECT RATE_REQ_NO FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_TRN_ID ) --------------------TRẢ VỀ NG TẠO-------------- IF(@p_TYPE = 'CREATE') BEGIN UPDATE TR_RATE_SUPPLIER_MASTER SET AUTH_STATUS = 'R', PROCESS_STATUS = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL, IS_SEND_APPR = 'N', DMMS_NOTES = NULL WHERE RATE_ID = @p_TRN_ID UPDATE PL_REQUEST_PROCESS SET STATUS = 'R', NOTES = N'Phiếu bị trả về' WHERE REQ_ID = @p_TRN_ID AND (PROCESS_ID = 'APPNEW' OR PROCESS_ID = 'SIGN') UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID NOT IN ('APPNEW', 'SIGN') INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, -- PROCESS_DESC - nvarchar(1000) N'Trả về người tạo' --NOTES ) SET @COMPLETE = 1 SET @p_MESSAGE =N'Phiếu đánh giá NCC số: ' +@p_RATE_REQ_NO+ N' đã được trả về người tạo thành công' END -------------TRẢ VỀ NVXL------------------- ELSE IF(@p_TYPE='NVXL') BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_REF_ID AND TYPE_JOB = 'XL')) BEGIN SET @p_MESSAGE = N'Không thể trả phiếu về nhân viên xử lý vì phiếu đánh giá NCC số: ' +@p_RATE_REQ_NO+ N' không có điều phối cho nhân viên xử lý' ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '-1' END UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='U' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL' IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL')) BEGIN UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB ='KS' END UPDATE TR_RATE_SUPPLIER_MASTER SET DMMS_NOTES = NULL WHERE RATE_ID = @p_TRN_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRN_ID, -- REQ_ID - varchar(15) 'REJECT', -- PROCESS_ID - varchar(10) @p_REJECTED_BY, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime @p_REASON, N'Trả về nhân viên xử lý' -- PROCESS_DESC - nvarchar(1000) ) SET @COMPLETE=1 SET @p_MESSAGE =N'Phiếu đánh giá NCC số: ' +@p_RATE_REQ_NO+ N' đã được trả về nhân viên xử lý thành công' END END -- END IF ELSE BEGIN SET @p_MESSAGE =N'Trả về giao dịch thành công' END --- INSERT VAO BANG CM_REJECT_LOG IF(@COMPLETE=1) BEGIN EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,@p_STAGE,@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,@p_IS_LATEST,@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103)) IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' LOG_ID, '' ErrorDesc RETURN '-1' END