Project

General

Profile

TR_REQ_PROCESS_CHILD_Upd.txt

Luc Tran Van, 10/26/2022 08:58 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQ_PROCESS_CHILD_Upd]
3
@p_REQ_ID VARCHAR(20) = NULL,
4
@p_PROCESS_ID VARCHAR(20) = NULL,
5
@p_TLNAME VARCHAR(20) = NULL,
6
@p_MAKER_ID VARCHAR(20) = NULL,
7
@p_TYPE_JOB VARCHAR(20) = NULL,
8
@p_REF_ID INT = NULL
9
AS
10
BEGIN TRANSACTION
11

    
12
DECLARE @LEVEL INT
13
		DECLARE @REQ_DT DATE
14
		SET @REQ_DT =(SELECT REQ_DT FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)
15
		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)   ))
16
		BEGIN
17
			ROLLBACK TRANSACTION
18
				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
19
				RETURN -1
20
		END
21
		IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID))
22
		BEGIN
23
			ROLLBACK TRANSACTION
24
				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
25
				RETURN -1
26
		END
27
		IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (PRICE IS NOT NULL)))
28
		BEGIN
29
			ROLLBACK TRANSACTION
30
				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
31
				RETURN -1
32
		END
33
		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='')))
34
		BEGIN
35
			ROLLBACK TRANSACTION
36
				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
37
				RETURN -1
38
		END
39
		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)))
40
		BEGIN
41
			ROLLBACK TRANSACTION
42
				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
43
				RETURN -1
44
		END
45
		-----------------------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-----------------
46
		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
47
		BEGIN
48
			ROLLBACK TRANSACTION
49
				
50
				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
51
				RETURN -1
52
		END
53
		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='')   ))
54
		BEGIN
55
			ROLLBACK TRANSACTION
56
				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
57
				RETURN -1
58
		END
59
		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)))
60
		BEGIN
61
			ROLLBACK TRANSACTION
62
				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
63
				RETURN -1
64
		END
65
		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)))
66
		BEGIN
67
			ROLLBACK TRANSACTION
68
				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
69
				RETURN -1
70
		END
71
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
72
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB='XL'
73
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
74
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
75
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB='XL'
76
		ORDER BY LEVEL_JOB DESC),0)
77

    
78
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
79
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
80

    
81
		--------------------------BAODNQ 7/3/2022 : Lấy ra STATUS_JOB sau khi update----------
82
		DECLARE @p_STATUS_JOB VARCHAR(15) = (
83
			SELECT STATUS_JOB
84
			FROM PL_REQUEST_PROCESS_CHILD 
85
			WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB='XL'
86
		)
87

    
88
		-------------------BAODNQ 15/10 HOT FIX------------------------
89
		IF((SELECT TOP 1 PROCESS_ID 
90
			FROM PL_PROCESS WHERE REQ_ID = @p_REQ_ID 
91
			ORDER BY APPROVE_DT DESC) <> 'SEND'
92
		)
93
		BEGIN
94
		---------------------------------------------
95
			INSERT INTO dbo.PL_PROCESS
96
			(
97
				REQ_ID,
98
				PROCESS_ID,
99
				CHECKER_ID,
100
				APPROVE_DT,
101
				PROCESS_DESC,
102
				NOTES
103
			)
104
			VALUES
105
			(   @p_REQ_ID,        -- REQ_ID - varchar(15)
106
				--@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
107
				'SEND',
108
				@p_TLNAME,        -- CHECKER_ID - varchar(15)
109
				GETDATE(), -- APPROVE_DT - datetime
110
				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)
111
				N'Nhân viên xử lý gửi phê duyệt '        -- NOTES - nvarchar(1000)
112
			)
113
		END
114

    
115
	
116
		IF @@Error <> 0 GOTO ABORT
117
COMMIT TRANSACTION
118
----------------------BAODNQ 7/3/2022 : Trả ra kq thêm STATUS_JOB------------
119
SELECT 0 as Result, @p_STATUS_JOB STATUS_JOB ,N'Đã gửi phê duyệt thành công' ErrorDesc
120
RETURN 0
121
ABORT:
122
BEGIN
123
		ROLLBACK TRANSACTION
124
		SELECT -1 as Result, '' STATUS_JOB,'' ErrorDesc
125
		RETURN -1
126
End
127