ALTER PROCEDURE [dbo].[TR_REQ_PROCESS_CHILD_Upd] @p_REQ_ID VARCHAR(20) = NULL, @p_PROCESS_ID VARCHAR(20) = NULL, @p_TLNAME VARCHAR(20) = NULL, @p_MAKER_ID VARCHAR(20) = NULL, @p_TYPE_JOB VARCHAR(20) = NULL, @p_REF_ID INT = NULL 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(NOT EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (PRICE IS NOT NULL))) 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á' ErrorDesc RETURN -1 END IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (CURRENCY IS NOT NULL OR CURRENCY=''))) 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 loại tiền tệ' ErrorDesc RETURN -1 END IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (EXCHANGE_RATE IS NOT NULL))) 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 tỷ giá quy đổi' ErrorDesc RETURN -1 END -----------------------BAODNQ 26/10/2022 : THÊM HÌNH THỨC KHÔNG THỰC HIỆN MUA SẮM THÌ KO BẮT BUỘC CHỌN NCC----------------- 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='') AND TRAN_TYPE_ID NOT IN ('TRN0000000006', 'TRN0000000007')))--TRN0000000006 LÀ XUẤT KHO, TRN0000000007 LÀ KO THỰC HIỆN MUA SẮM 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 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) --------------------------BAODNQ 7/3/2022 : Lấy ra STATUS_JOB sau khi update---------- DECLARE @p_STATUS_JOB VARCHAR(15) = ( SELECT STATUS_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB='XL' ) -------------------BAODNQ 15/10 HOT FIX------------------------ IF((SELECT TOP 1 PROCESS_ID FROM PL_PROCESS WHERE REQ_ID = @p_REQ_ID ORDER BY APPROVE_DT DESC) <> 'SEND' ) BEGIN --------------------------------------------- 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) ) END IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION ----------------------BAODNQ 7/3/2022 : Trả ra kq thêm STATUS_JOB------------ SELECT 0 as Result, @p_STATUS_JOB STATUS_JOB ,N'Đã gửi phê duyệt thành công' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' STATUS_JOB,'' ErrorDesc RETURN -1 End