ALTER PROCEDURE [dbo].[TR_REQ_PROCESS_CHILD_Upd] @p_REQ_ID VARCHAR(20), @p_PROCESS_ID VARCHAR(20), @p_TLNAME VARCHAR(20), @p_MAKER_ID VARCHAR(20), @p_TYPE_JOB VARCHAR(20), @p_REF_ID INT AS BEGIN TRANSACTION DECLARE @LEVEL INT DECLARE @REQ_DT DATE SET @REQ_DT =(SELECT REQ_DT FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND TRAN_TYPE_ID NOT IN (SELECT TRAN_TYPE_ID FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK') AND (PRICE IS NULL OR PRICE=0) )) BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, N'Lưới thông tin chi tiết mua sắm thực tế: Vui lòng nhập đơn giá thực tế' ErrorDesc RETURN -1 END IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, N'Lưới thông tin chi tiết mua sắm thực tế không được phép để trống' ErrorDesc RETURN -1 END IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (SUP_ID IS NULL OR SUP_ID=''))) BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, N'Lưới thông tin chi tiết mua sắm thực tế: Vui lòng chọn nhà cung cấp có sẵn trong hệ thống hoặc lựa chọn nhà cung cấp thông qua hồ sơ thầu' ErrorDesc RETURN -1 END IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (TRAN_TYPE_ID IS NULL OR TRAN_TYPE_ID='') )) BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, N'Lưới thông tin chi tiết mua sắm thực tế: Vui lòng chọn hình thức mua sắm' ErrorDesc RETURN -1 END ---LUCTV 29092021 BO SUNG CHAN KHONG CHO GIA THUC TE LON HON GIA DU KIEN IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND ISNULL(PRICE,0) > ISNULL(PRICE_ETM,0))) BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, N'Lưới thông tin chi tiết mua sắm thực tế: Đơn giá thực tế phải nhỏ hơn đơn giá dự kiến theo tờ trình' ErrorDesc RETURN -1 END IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND CONVERT(DATE, REQ_DT, 103) <= CONVERT(DATE, @REQ_DT, 103))) BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, N'Lưới thông tin chi tiết mua sắm thực tế: Ngày cần phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc RETURN -1 END UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB='XL' SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB='XL' ORDER BY LEVEL_JOB DESC),0) UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1) INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) --@p_PROCESS_ID, -- PROCESS_ID - varchar(10) 'SEND', @p_TLNAME, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Nhân viên hoàn tất xử lý phiếu và gửi phê duyệt thành công' , -- PROCESS_DESC - nvarchar(1000) N'Nhân viên xử lý gửi phê duyệt ' -- NOTES - nvarchar(1000) ) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT 0 as Result, '' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' ErrorDesc RETURN -1 End