Project

General

Profile

TR_REQUEST_DOC_SendApp.txt

Luc Tran Van, 01/03/2023 03:27 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[TR_REQUEST_DOC_SendApp]
3
@p_REQ_ID VARCHAR(20),
4
@p_PROCESS_ID VARCHAR(20),
5
@p_TLNAME VARCHAR(20),
6
@p_MAKER_ID VARCHAR(20)
7
AS
8
BEGIN TRANSACTION
9
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_DT IS NULL OR REQ_DT='')) )
10
	BEGIN
11
			ROLLBACK TRANSACTION
12
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Ngày yêu cầu bắt buộc nhập' ErrorDesc
13
			RETURN '-1'
14
	END
15
	IF((SELECT CONVERT(DATE, REQ_DT, 103) FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID) > CONVERT(DATE, GETDATE(),103))
16
	BEGIN
17
			ROLLBACK TRANSACTION
18
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Ngày yêu cầu mua sắm không được phép lớn hơn ngày hiện tại' ErrorDesc
19
			RETURN '-1'
20
	END
21
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_REASON IS NULL OR REQ_REASON='')) )
22
	BEGIN
23
			ROLLBACK TRANSACTION
24
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Mục đích yêu cầu bắt buộc nhập' ErrorDesc
25
			RETURN '-1'
26
	END
27
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (PL_REQ_ID IS NULL OR PL_REQ_ID='')) )
28
	BEGIN
29
			ROLLBACK TRANSACTION
30
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Tờ trình chủ trương bắt buộc nhập' ErrorDesc
31
			RETURN '-1'
32
	END
33
	IF(NOT EXISTS(SELECT REQ_DOC_ID FROM dbo.TR_REQUEST_DOC_DT WHERE  REQ_DOC_ID=@p_REQ_ID ) )
34
	BEGIN
35
			ROLLBACK TRANSACTION
36
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Chi tiết hàng hóa bắt buộc nhập' ErrorDesc
37
			RETURN '-1'
38
	END	
39

    
40
	-------------------BAODNQ 24/10/2022 : XÓA DATA DVCM KHI GỬI PHÊ DUYỆT-----------------
41
	DELETE FROM dbo.TR_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
42
	-----------------------------ENDBAODNQ---------------------
43

    
44
	--- XOA DATA CU
45
	DELETE PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID
46
	-----
47
	DECLARE @NS_TO_TRINH DECIMAL(18,0), @NS_PYCMS_USE DECIMAL(18,0), @NS_LUY_KE DECIMAL(18,0),@PL_REQ_CODE VARCHAR(50)
48
	SET @PL_REQ_CODE =(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
49
	SET @NS_TO_TRINH =(SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
50
	SET @NS_PYCMS_USE =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID)
51
	SET @NS_LUY_KE =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN 
52
	(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) AND PROCESS_ID='APPROVE')),0)
53
	DECLARE @p_PL_REQ_ID VARCHAR(15),@p_REQ_DATE DATETIME
54
	SELECT @p_PL_REQ_ID=PL_REQ_ID,@p_REQ_DATE=REQ_DT  FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
55
	--IF( EXISTS(
56
	--		SELECT Temp.GD_ID FROM (SELECT GD_ID,SUM(TOTAL_AMT) AS TOTAL_AMT_ETM FROM dbo.TR_REQUEST_DOC_DT   WHERE REQ_DOC_ID=@p_REQ_ID
57
	--		GROUP BY GD_ID) Temp WHERE    TOTAL_AMT_ETM > 
58
	--		((SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT_APP FROM
59
	--		(SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
60
	--		WHERE REQ_ID=@p_PL_REQ_ID
61
	--		UNION 
62
	--		SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
63
	--		WHERE REQ_ID=(SELECT REQ_PARENT_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID) ) TEMP2 WHERE TEMP2.GOODS_ID=Temp.GD_ID
64
	--		GROUP BY TEMP2.GOODS_ID) - (SELECT ISNULL(SUM(TOTAL_AMT),0) AS TOTAL_AMT_EXE FROM dbo.TR_REQUEST_DOC_DT WHERE GD_ID=Temp.GD_ID AND REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=@p_PL_REQ_ID AND PROCESS_ID='APPROVE')
65
	--		GROUP BY GD_ID))))
66
	--	BEGIN
67
	--		ROLLBACK TRANSACTION
68
	--		SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
69
	--		N'Thông tin liên quan tới phiếu yêu cầu mua sắm có sử dụng tờ trình số: '+ @PL_REQ_CODE
70
	--		+CHAR(10)+ N'Tổng số tiền lũy kế sử dụng ngân sách tờ trình: '+FORMAT(@NS_LUY_KE ,'#,#', 'vi-VN')
71
	--		+CHAR(10)+N'Tổng số tiền ngân sách còn lại của tờ trình: '+ FORMAT(@NS_TO_TRINH -@NS_LUY_KE ,'#,#', 'vi-VN')
72
	--		+CHAR(10)+ N'Số tiền sử dụng ngân sách cho phiếu yêu cầu mua sắm hiện tại vượt '+FORMAT(@NS_LUY_KE+@NS_PYCMS_USE -@NS_TO_TRINH ,'#,#', 'vi-VN')+N' so với tổng số tiền ngân sách còn lại của tờ trình.'
73
	--		+CHAR(10) +N'Vui lòng tra cứu tổng số tiền các phiếu yêu cầu mua sắm để biết thêm thông tin chi tiêt!' ErrorDesc 
74
	--		RETURN '0'
75
	--	END
76
	-- LUCTV: 05-12-2020: KHAI BAO CURSOR DE  KIEM TRA TONG HAN MUC SU DUNG PYC LINK TỚI TỜ TRÌNH
77
	-- LẤY SUM TỜ TRÌNH CHA
78
	DECLARE @SUM_TO_TRINH_CHINH DECIMAL(18) =0, @SUM_TO_TRINH_CON DECIMAL(18,0), @SUM_PYC_LUY_KE DECIMAL(18,0), @PYCMS_CODE_LIST VARCHAR(100), @SUM_THANH_TOAN DECIMAL(18,0), @PDNTT_CODE_LIST VARCHAR(250)
79
	SET @SUM_TO_TRINH_CHINH =(SELECT ISNULL(SUM(TOTAL_AMT),0) FROM  PL_REQUEST_DOC_DT WHERE REQ_ID =@p_PL_REQ_ID)
80
	-- LẤY SUM TỜ TRÌNH CON
81
	SET @SUM_TO_TRINH_CON =(SELECT ISNULL(SUM(TOTAL_AMT),0) FROM  PL_REQUEST_DOC_DT WHERE REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_DOC WHERE REQ_PARENT_ID =@p_PL_REQ_ID))
82
	---
83
	SET @SUM_PYC_LUY_KE =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID 
84
							IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_PL_REQ_ID AND AUTH_STATUS  IN  ('U','A')) 
85
							AND REQ_DOC_ID <> @p_REQ_ID)
86
							
87
	----------------------BAODNQ 29/12/2022: CỘNG THÊM VÀO SUM_LUY_KE THÀNH TIỀN DỰ KIẾN CỦA NHỮNG PYCMS KHÁC CÓ HẠNG MỤC LÀ XUẤT KHO----------------------------
88
	SET @SUM_PYC_LUY_KE = @SUM_PYC_LUY_KE + (SELECT ISNULL(SUM(TOTAL_AMT_ETM),0) FROM TR_REQUEST_DOC_DT  WHERE REQ_DOC_ID 
89
												IN (SELECT REQ_ID FROM TR_REQUEST_DOC  WHERE PL_REQ_ID = @p_PL_REQ_ID AND AUTH_STATUS IN('U', 'A'))
90
												AND REQ_DOC_ID <> @p_REQ_ID AND TRAN_TYPE_ID = 'TRN0000000006'
91
											)
92
	-----------------------ENDBAODNQ 29/12/2022--------------------------------
93

    
94
	SET @SUM_THANH_TOAN = (SELECT SUM(TOTAL_AMT) FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@p_PL_REQ_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS IN ('U','A')))
95
	IF(ISNULL(@SUM_TO_TRINH_CHINH,0) + ISNULL(@SUM_TO_TRINH_CON,0) <@SUM_PYC_LUY_KE+@NS_PYCMS_USE + ISNULL(@SUM_THANH_TOAN,0))
96
	BEGIN
97
	ROLLBACK TRANSACTION
98
			SET @PYCMS_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE PL_REQ_ID =@p_PL_REQ_ID AND AUTH_STATUS  IN  ('U','A')
99
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
100
			SET @PDNTT_CODE_LIST = (select STUFF( (select '; ' + REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@p_PL_REQ_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS IN ('U','A')))
101
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
102
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
103
			N'Thông tin liên quan tới phiếu yêu cầu mua sắm có sử dụng tờ trình số: '+ @PL_REQ_CODE
104
			+ N'Tổng số tiền lũy kế sử dụng ngân sách tờ trình: '+FORMAT(@SUM_PYC_LUY_KE ,'#,#', 'vi-VN'),
105
			+ N'Tổng số tiền lũy kế đã thanh toán cho tờ trình: '+FORMAT(isnull(@SUM_THANH_TOAN,0) ,'#,#', 'vi-VN')
106
			+ N'\n Tổng số tiền ngân sách còn lại của tờ trình: '+ FORMAT(ISNULL(@SUM_TO_TRINH_CHINH,0)+ ISNULL(@SUM_TO_TRINH_CON,0) -@SUM_PYC_LUY_KE -ISNULL(@SUM_THANH_TOAN,0) ,'#,#', 'vi-VN')
107
			+ N'\n Số tiền sử dụng ngân sách cho phiếu yêu cầu mua sắm hiện tại vượt '+FORMAT(ISNULL(@SUM_PYC_LUY_KE,0)+@NS_PYCMS_USE +ISNULL(@SUM_THANH_TOAN,0) -(ISNULL(@SUM_TO_TRINH_CHINH,0)+ ISNULL(@SUM_TO_TRINH_CON,0)) ,'#,#', 'vi-VN')+N' so với tổng số tiền ngân sách còn lại của tờ trình.'
108
			+ N'\n Vui lòng tra cứu tổng số tiền các phiếu yêu cầu mua sắm số: '+ISNULL(@PYCMS_CODE_LIST,'')+N' để biết thêm thông tin chi tiêt!'
109
			+ N'\n Vui lòng tra cứu tổng số tiền trên các phiếu thanh toán: '+ISNULL(@PDNTT_CODE_LIST,'')+N' để biết thêm thông tin chi tiêt!' ErrorDesc 
110
			RETURN '0'
111
	END
112

    
113
	---------------BAODNQ 3/1/2022: KHAI BÁO BẢNG TẠM LƯU NHỮNG DÒNG BÁO LỖI------------
114
	DECLARE @t_ERROR_ROW TABLE(STT INT, PL_DT_ID VARCHAR(15))
115
	INSERT INTO @t_ERROR_ROW(STT, PL_DT_ID) 
116
		SELECT ROW_NUMBER() OVER (ORDER BY REQDT_ID) AS STT,
117
			PL_REQDT_ID AS PL_DT_ID
118
		FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID  =@p_REQ_ID
119
	DECLARE @p_TOTAL_ERROR_ROW VARCHAR(MAX)
120
	----------------ENDBAODNQ------------
121

    
122
	-- KHAI BÁO CURRS0R ĐỂ CHECK LŨY KẾ TỪNG HẠNG MỤC
123
	DECLARE @PL_DT_ID VARCHAR(15), @SUM_@PL_DT_ID  DECIMAL(18,0), @INDEX INT =0, @TOTAL_AMT_DETAIL DECIMAL(18,0), @REMAIN_AMT DECIMAL(18,0), @AMT_PL_DT DECIMAL(18,0), @AMT_PL_DT_EX DECIMAL(18,0)
124
	DECLARE CURS CURSOR FOR SELECT PL_REQDT_ID, TOTAL_AMT  FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID  =@p_REQ_ID
125
		OPEN CURS
126
			FETCH NEXT FROM CURS INTO @PL_DT_ID,@TOTAL_AMT_DETAIL
127
			WHILE @@FETCH_STATUS = 0
128
			BEGIN
129
				SET @INDEX = @INDEX +1
130

    
131
				----------------BAODNQ 20/12/2022: NẾU LƯỚI CHI TIẾT MUA SẮM THỰC TẾ K CÓ CHỌN DANH MỤC HÀNG HÓA THEO TỜ TRÌNH, KO CHO LƯU------------
132
				IF(@PL_DT_ID IS NULL OR @PL_DT_ID = '')
133
				BEGIN
134
					ROLLBACK TRANSACTION
135
					SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, 
136
					N'Lưới chi tiết mua sắm thực tế, dòng :' +@INDEX+ 
137
					N': Hàng hóa theo tờ trình không được bỏ trống' ErrorDesc
138
					RETURN '-1'
139
				END
140

    
141
				-- KIEM TRA NEU SO PHIEU TAM UNG NAY DA THANH TOAN XONG THI KHONG CHO PHEP DUYET
142
				--IF((SELECT A.REQ_AMT - A.PAY_AMT FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.REQ_PAY_ID = @PAY_ADVANCE_ID)=0)
143

    
144
				SET @SUM_@PL_DT_ID =(SELECT SUM (TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_PL_REQ_ID AND AUTH_STATUS  IN ('U','A')) 
145
										     AND PL_REQDT_ID =@PL_DT_ID)
146
				SET @AMT_PL_DT =(SELECT ISNULL(TOTAL_AMT,0) FROM PL_REQUEST_DOC_DT WHERE REQDT_ID =@PL_DT_ID)
147
				SET @REMAIN_AMT = ISNULL(@AMT_PL_DT,0) -ISNULL(@SUM_@PL_DT_ID,0)
148
				--SET @SUM_@PL_DT_ID = ISNULL(@SUM_@PL_DT_ID,0)+ISNULL(@TOTAL_AMT_DETAIL,0)
149
				SET @AMT_PL_DT_EX =(SELECT SUM (TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID  =@p_REQ_ID AND PL_REQDT_ID =@PL_DT_ID)
150
										     --AND PL_REQDT_ID =@PL_DT_ID)
151
				--PRINT @SUM_@PL_DT_ID
152

    
153
				-----------------BAODNQ 3/1/2022------------
154
				-----------LẤY NHỮNG DÒNG CHI TIẾT MUA SẮM THỰC TẾ CÓ DÙNG HẠNG MỤC THEO TỜ TRÌNH-----------
155
				SET @p_TOTAL_ERROR_ROW = STUFF(
156
					(SELECT ',' + CONVERT(VARCHAR(3),STT)
157
					FROM @t_ERROR_ROW WHERE PL_DT_ID = @PL_DT_ID
158
					FOR XML PATH('')), 1, 1, ''
159
				)
160
				----------------END BADNQ------------------
161

    
162
				IF(ISNULL(@SUM_@PL_DT_ID,0)+ ISNULL(@AMT_PL_DT_EX,0) >  @AMT_PL_DT)
163
				--IF(1<2)
164
				BEGIN
165
					ROLLBACK TRANSACTION
166
					SELECT '-1' Result,'' REQ_PAY_ID,
167
					N'Lưới chi tiết mua sắm thực tế:' 
168
					+ N'\nDòng '+ @p_TOTAL_ERROR_ROW+ N': Ngân sách sử dụng của hạng mục: '+
169
					(SELECT ISNULL(DESCRIPTION,'') FROM PL_REQUEST_DOC_DT WHERE REQDT_ID =@PL_DT_ID) + N' là: ' +CONVERT(VARCHAR, FORMAT(ISNULL(@AMT_PL_DT_EX, 0), '#,#', 'vi-VN')) 
170
					+ N' đã vượt quá số tiền trình chủ trương.'
171
					+ N'\n Số tiền đã gửi phê duyệt thành công trong những PUR khác: '+ FORMAT(ISNULL(@SUM_@PL_DT_ID,0) ,'#,#', 'vi-VN')
172
					+ N'\n Số tiền còn lại có thể sử dụng: '+ CASE WHEN @REMAIN_AMT >0 THEN FORMAT(ISNULL(@REMAIN_AMT,0) ,'#,#', 'vi-VN') ELSE '0.00' END
173
					--+CHAR(10)+N'Số tiền vượt hạn mức: '+ FORMAT(ISNULL(@SUM_@PL_DT_ID,0) +ISNULL(@TOTAL_AMT_DETAIL,0) -  (@AMT_PL_DT) ,'#,#', 'vi-VN') 
174
					ErrorDesc
175
					RETURN '-1'
176
				END
177
				--UPDATE TR_REQ_ADVANCE_PAYMENT SET PAY_AMT = ISNULL(PAY_AMT,0) + ISNULL(@AMT_PAY,0.00) +ISNULL(@AMT_REVERT,0.00) WHERE REQ_PAY_ID =@PAY_ADVANCE_ID
178
				-- SO SÁNH TỔNG BREAK DOWN TỪ 1 HẠNG MỤC
179
				--IF(SELECT SUM())
180
			FETCH NEXT FROM CURS INTO @PL_DT_ID,@TOTAL_AMT_DETAIL
181
		END
182
		CLOSE CURS
183
		DEALLOCATE CURS
184
	--: HẾT ĐOẠN BỔ SUNG CỦA LỰCTV
185
	--IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
186
	--IF(EXISTS(SELECT REQPL_DT_ID FROM dbo.TR_REQUEST_DOC_PL_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
187
	--	BEGIN
188
	--		ROLLBACK TRANSACTION
189
	--		SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa theo tờ trình: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc 
190
	--		RETURN '0'
191
	--END
192
	IF(EXISTS(SELECT REQPL_DT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
193
		BEGIN
194
			ROLLBACK TRANSACTION
195
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc 
196
			RETURN '0'
197
	END
198
	IF(EXISTS(SELECT REQPL_DT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (REQ_DT IS NULL OR REQ_DT ='')))
199
		BEGIN
200
			ROLLBACK TRANSACTION
201
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc 
202
			RETURN '0'
203
	END
204
	IF(EXISTS(SELECT [DESCRIPTION] FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND ([DESCRIPTION] IS NULL OR [DESCRIPTION] ='')))
205
		BEGIN
206
			ROLLBACK TRANSACTION
207
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Mô tả hàng hóa/ dịch vụ không được phép để trống' ErrorDesc 
208
			RETURN '0'
209
	END
210
	IF(EXISTS(SELECT UNIT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (UNIT_ID IS NULL OR UNIT_ID ='')))
211
		BEGIN
212
			ROLLBACK TRANSACTION
213
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Đơn vị tính không được phép để trống' ErrorDesc 
214
			RETURN '0'
215
	END
216
	IF(EXISTS(SELECT QUANTITY FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (QUANTITY IS NULL OR QUANTITY ='')))
217
		BEGIN
218
			ROLLBACK TRANSACTION
219
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Số lượng không được phép để trống' ErrorDesc 
220
			RETURN '0'
221
	END
222
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
223
	@BRANCH_CREATE_TYPE VARCHAR(10)
224

    
225
	SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
226

    
227
	-----------------BAODNQ 25/8/2022 : Nếu ĐV tạo khác HS, ko lấy theo phòng ban------------
228
	IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) <> 'HS')
229
	BEGIN
230
		SET @DEP_CREATE = NULL
231
	END
232

    
233
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
234
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
235
	-- KIEM TRA XEM CO CAP PHE DUYET HAY KHONG
236
	IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
237
	BEGIN
238
		UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID
239
		INSERT INTO dbo.PL_REQUEST_PROCESS
240
		(
241
		    REQ_ID,
242
		    PROCESS_ID,
243
		    STATUS,
244
		    ROLE_USER,
245
		    BRANCH_ID,
246
			DEP_ID,
247
		    CHECKER_ID,
248
		    APPROVE_DT,
249
		    PARENT_PROCESS_ID,
250
		    IS_LEAF,
251
		    COST_ID,
252
		    DVDM_ID,
253
		    NOTES,
254
		    IS_HAS_CHILD
255
		)
256
		VALUES
257
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
258
		    'SIGN',        -- PROCESS_ID - varchar(10)
259
		    'C',        -- STATUS - varchar(5)
260
		    (SELECT RoleName FROM TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)),  -- ROLE_USER - varchar(50)
261
		    @BRANCH_CREATE,  
262
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
263
		    '',        -- CHECKER_ID - varchar(15)
264
		    NULL,      -- APPROVE_DT - datetime
265
		    '',        -- PARENT_PROCESS_ID - varchar(10)
266
		    'N',        -- IS_LEAF - varchar(1)
267
		    '',        -- COST_ID - varchar(15)
268
		    '',        -- DVDM_ID - varchar(15)
269
		    N'Chờ cấp phê duyệt trung gian xác nhận phiếu',       -- NOTES - nvarchar(500)
270
		    NULL       -- IS_HAS_CHILD - bit
271
		 )
272
	END
273
	ELSE
274
	BEGIN
275
	--IF(@BRANCH_CREATE_TYPE='PGD')
276
	--	SET @BRANCH_CREATE=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
277
	
278
	UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
279
	INSERT INTO dbo.PL_REQUEST_PROCESS
280
		(
281
		    REQ_ID,
282
		    PROCESS_ID,
283
		    STATUS,
284
		    ROLE_USER,
285
		    BRANCH_ID,
286
			DEP_ID,
287
		    CHECKER_ID,
288
		    APPROVE_DT,
289
		    PARENT_PROCESS_ID,
290
		    IS_LEAF,
291
		    COST_ID,
292
		    DVDM_ID,
293
		    NOTES,
294
		    IS_HAS_CHILD
295
		)
296
		VALUES
297
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
298
		    'APPNEW',        -- PROCESS_ID - varchar(10)
299
		    'C',        -- STATUS - varchar(5)
300
		    'GDDV',        -- ROLE_USER - varchar(50)
301
		    @BRANCH_CREATE,  
302
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
303
		    '',        -- CHECKER_ID - varchar(15)
304
		    NULL,      -- APPROVE_DT - datetime
305
		    '',        -- PARENT_PROCESS_ID - varchar(10)
306
		    'N',        -- IS_LEAF - varchar(1)
307
		    '',        -- COST_ID - varchar(15)
308
		    '',        -- DVDM_ID - varchar(15)
309
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
310
		    NULL       -- IS_HAS_CHILD - bit
311
		 )
312
	END
313
	
314
	--------------BAODNQ 4/11/2022: NG TẠO GỬI PHÊ DUYỆT MÀ K CÓ DVCM THÌ GHI LOG--------------
315
	DECLARE @p_LOG_MESSAGE NVARCHAR(MAX)
316
	IF(NOT EXISTS (SELECT * FROM TR_REQUEST_COSTCENTER WHERE REQ_ID = @p_REQ_ID))
317
	BEGIN
318
		SET @p_LOG_MESSAGE = N'Nhân viên gửi phê duyệt và không chọn DVCM'
319
	END
320
	ELSE
321
	BEGIN
322
		SET @p_LOG_MESSAGE = N'Nhân viên gửi phê duyệt'
323
	END
324

    
325
	-------------------ENDBAODNQ---------------------------
326
	INSERT INTO dbo.PL_PROCESS
327
					(
328
					    REQ_ID,
329
					    PROCESS_ID,
330
					    CHECKER_ID,
331
					    APPROVE_DT,
332
					    PROCESS_DESC,
333
					    NOTES
334
					)
335
					VALUES
336
					(   @p_REQ_ID,        -- REQ_ID - varchar(15)
337
					    --@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
338
						'SEND',
339
					    @p_TLNAME,        -- CHECKER_ID - varchar(15)
340
					    GETDATE(), -- APPROVE_DT - datetime
341
					    N'Nhân viên tạo phiếu và gửi phê duyệt thành công' ,       -- PROCESS_DESC - nvarchar(1000)
342
					    @p_LOG_MESSAGE       -- NOTES - nvarchar(1000)
343
					 )
344
	
345
		IF @@Error <> 0 GOTO ABORT
346

    
347
		------BAODNQ 26/3/2022: Trả ra kết quả PROCESS_ID-------
348
		DECLARE @PROCESS_ID VARCHAR(50) = (
349
			SELECT PROCESS_ID FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID
350
		)
351

    
352
COMMIT TRANSACTION
353
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, @PROCESS_ID PROCESS_ID,'' ErrorDesc
354
RETURN '0'
355
ABORT:
356
BEGIN
357
		ROLLBACK TRANSACTION
358
		SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' PROCESS_ID,'' ErrorDesc
359
		RETURN '-1'
360
End