Project

General

Profile

PL_SEND_APP.txt

Truong Nguyen Vu, 11/30/2020 10:48 AM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_SendApp]
4
@p_REQ_ID VARCHAR(20),
5
@p_PROCESS_ID VARCHAR(20),
6
@p_TLNAME VARCHAR(20),
7
@p_MAKER_ID VARCHAR(20)
8
AS
9
BEGIN TRANSACTION
10

    
11
	IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (PL_BASED_ID IS  NULL OR PL_BASED_ID ='')))
12
	BEGIN
13
	--- KIEM TRA NGAN SACH LUCTV 18052020
14
	DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
15
	SELECT @ERROR=ERROR, @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'APPNEW','PL_REQUEST_DOC',@p_TLNAME,@p_PROCESS_ID)
16
	IF(@ERROR=1)
17
	BEGIN
18
	ROLLBACK TRANSACTION;
19
		SELECT '-1'  Result, @EROOR_DES ErrorDesc
20
		RETURN '-1';
21
	END
22
	-----
23
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
24
	@BRANCH_CREATE_TYPE VARCHAR(10)
25

    
26
	IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  ( CAST(REQ_DT AS DATE) > CAST(GETDATE() AS DATE))) )
27
	BEGIN
28
			ROLLBACK TRANSACTION
29
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Ngày tạo không được lớn hơn ngày hiện tại' ErrorDesc
30
			RETURN '-1'
31
	END
32

    
33
	IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_NAME IS NULL OR REQ_NAME='')) )
34
	BEGIN
35
			ROLLBACK TRANSACTION
36
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Tên tờ trình bắt buộc nhập' ErrorDesc
37
			RETURN '-1'
38
	END
39
	IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_CONTENT IS NULL OR REQ_CONTENT='')) )
40
	BEGIN
41
			ROLLBACK TRANSACTION
42
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Nội dung tờ trình bắt buộc nhập' ErrorDesc
43
			RETURN '-1'
44
	END
45
	IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND ( REQ_REASON IS NULL OR REQ_REASON='')) )
46
	BEGIN
47
			ROLLBACK TRANSACTION
48
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Lý do bắt buộc nhập' ErrorDesc
49
			RETURN '-1'
50
	END
51

    
52
	IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID ) )
53
	BEGIN
54
			ROLLBACK TRANSACTION
55
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Danh sách hàng hóa bắt buộc nhập' ErrorDesc
56
			RETURN '-1'
57
	END
58

    
59
	IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PL_BASED_ID IS NOT NULL AND PL_BASED_ID <>''))
60
	BEGIN
61
	DECLARE @PL_BASED_ID VARCHAR(20)
62
	SET @PL_BASED_ID=(SELECT PL_BASED_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID )
63
		IF( EXISTS(SELECT DT.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT DT WHERE DT.REQ_ID=@p_REQ_ID AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT DTB WHERE DTB.REQ_ID=@PL_BASED_ID AND DTB.TRADE_ID=DT.TRADE_ID AND DTB.HANGHOA_ID=DT.HANGHOA_ID)))
64
		BEGIN
65
			ROLLBACK TRANSACTION
66
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Danh sách hàng hóa không có trong tờ trình căn cứ' ErrorDesc
67
			RETURN '-1'
68
		END
69
	END
70

    
71

    
72

    
73
	IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND  (HANGHOA_ID IS NULL OR HANGHOA_ID ='')) )
74
	BEGIN
75
			ROLLBACK TRANSACTION
76
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Hàng hóa bắt buộc nhập' ErrorDesc
77
			RETURN '-1'
78
	END
79
	IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND  (GOODS_ID IS NULL OR GOODS_ID ='')) )
80
	BEGIN
81
			ROLLBACK TRANSACTION
82
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Hạng mục ngân sách bắt buộc nhập' ErrorDesc
83
			RETURN '-1'
84
	END
85

    
86
	IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND (TOTAL_AMT IS NULL OR TOTAL_AMT = 0)) )
87
	BEGIN
88
			ROLLBACK TRANSACTION
89
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Vui lòng nhập số tiền điều chuyển' ErrorDesc
90
			RETURN '-1'
91
	END
92
	SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
93
	-- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP
94
	IF(EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE TRADE_TYPE ='VCCB' AND SUP_ID <>'' AND SUP_ID IS NOT NULL AND REQ_ID =@p_REQ_ID))
95
			BEGIN
96
				SELECT 'REQ-00001' Result, '' REQ_ID, N'Nếu hình thức mua sắm theo quy định VCCB thì bạn không được phép chọn nhà cung cấp. Vui lòng để trống nhà cung cấp' ErrorDesc 
97
				ROLLBACK TRANSACTION
98
				RETURN '-1'
99
	END
100
	--
101
	IF(EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE TRADE_TYPE ='CDT' AND ( SUP_ID ='' OR SUP_ID IS NULL) AND REQ_ID =@p_REQ_ID))
102
			BEGIN
103
				SELECT 'REQ-00001' Result, '' REQ_ID, N'Nếu hình thức mua sắm chỉ định thầu thì bạn không được phép bỏ trống nhà cung cấp. Vui lòng chọn nhà cung cấp' ErrorDesc 
104
				ROLLBACK TRANSACTION
105
				RETURN '-1'
106
	END
107
	----
108
	IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND FR_BRN_ID=@BRANCH_CREATE AND (FR_GOOD_ID IS NULL OR FR_GOOD_ID='')
109
	AND ((FR_DEP_ID=@DEP_CREATE) OR ((@DEP_CREATE IS NULL OR @DEP_CREATE='') AND (FR_DEP_ID IS NULL OR FR_DEP_ID=''))) ))
110
	BEGIN
111
		ROLLBACK TRANSACTION
112
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Bạn là đơn vị chuyển ngân sách, vui lòng chọn hạn mục ngân sách chuyển' ErrorDesc
113
			RETURN '-1'
114
	END
115
	IF(EXISTS(SELECT Temp.TRADE_ID FROM (
116
		SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
117
		SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
118
		FROM dbo.PL_REQUEST_DOC_DT TB
119
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
120
		WHERE   TB.REQ_ID=@p_REQ_ID AND  TB.REQDT_TYPE='I' 
121
		GROUP BY TB.TRADE_ID
122
		)Temp
123
		WHERE Temp.TOTAL_AMT_EXE > Temp.TOTAL_AMT_REMAIN))
124
		BEGIN
125
					ROLLBACK TRANSACTION
126
					SELECT '-1' AS RESULT , '' REQ_CODE,''  REQ_ID, N'Số tiền sử dụng lớn hơn số tiền dự kiến còn lại của hạng mục trong ngân sách' ErrorDesc
127
					RETURN '-1'
128
		END
129

    
130
	IF( EXISTS(SELECT GOODS_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID AND  REQDT_TYPE='O') AND  NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE  REQ_DOC_ID=@p_REQ_ID AND  TO_GOOD_ID IN (SELECT GOODS_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID AND REQDT_TYPE='O')))
131
		BEGIN
132
					ROLLBACK TRANSACTION
133
					SELECT '-1' AS RESULT ,'' REQ_CODE, ''  REQ_ID, N'Hạng mục ngoài ngân sách, vui lòng thêm danh sách điều chuyển ngân sách' ErrorDesc
134
					RETURN '-1'
135
		END
136
		
137
	IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND  (PRICE IS NULL OR PRICE=0 OR QUANTITY IS NULL OR QUANTITY=0)) )
138
	BEGIN
139
			ROLLBACK TRANSACTION
140
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Số luợng, đơn giá của hàng hóa bắt buộc nhập' ErrorDesc
141
			RETURN '-1'
142
	END
143
	IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID AND  (DESCRIPTION IS NULL OR DESCRIPTION='')) )
144
	BEGIN
145
			ROLLBACK TRANSACTION
146
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Quy cách kỹ thuật bắt buộc nhập' ErrorDesc
147
			RETURN '-1'
148
	END
149

    
150
	IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID AND  (DESCRIPTION IS NULL OR DESCRIPTION='')) )
151
	BEGIN
152
			ROLLBACK TRANSACTION
153
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Quy cách kỹ thuật bắt buộc nhập' ErrorDesc
154
			RETURN '-1'
155
	END			
156
	--DECLARE lstTransfer CURSOR FOR 
157
	--SELECT FR_GOOD_ID,TO_GOOD_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
158
	--OPEN lstTransfer
159
	--DECLARE @FR_GOOD_ID VARCHAR(20),@TO_GOOD_ID VARCHAR(20)
160

    
161
	--FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID
162
	--WHILE @@FETCH_STATUS=0
163
	--BEGIN
164
	--	IF(@FR_GOOD_ID IS NOT NULL AND @FR_GOOD_ID<>'')
165
	--		BEGIN
166
	--			DECLARE @FR_GD_TYPE VARCHAR(20),@TO_GD_TYPE VARCHAR(20)
167

    
168
	--			SET @FR_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM 
169
	--			(
170
	--				SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@FR_GOOD_ID
171
	--			) CG
172
	--			LEFT JOIN dbo.CM_GOODSTYPE GT ON  CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
173

    
174

    
175
	--			SET @TO_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM 
176
	--			(
177
	--				SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@TO_GOOD_ID
178
	--			) CG
179
	--			LEFT JOIN dbo.CM_GOODSTYPE GT ON  CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
180

    
181
	--			IF(NOT EXISTS(SELECT * FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID= @FR_GD_TYPE AND @TO_GD_TYPE IN (SELECT value FROM dbo.wsiSplit(NOTES,';')) )  )
182
	--			BEGIN
183
	--				DECLARE @FR_GD_TYPE_NAME NVARCHAR(100),@TO_GD_TYPE_NAME NVARCHAR(100)
184
	--				SET @FR_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@FR_GD_TYPE)
185
	--				SET @TO_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@TO_GD_TYPE)
186
					
187
	--					ROLLBACK TRANSACTION
188
	--					SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Không được điều chuyển từ ' + @FR_GD_TYPE_NAME +N' sang ' + @TO_GD_TYPE_NAME ErrorDesc
189
	--					RETURN '-1'
190
	--					CLOSE lstTransfer
191
	--					DEALLOCATE lstTransfer
192
	--			END
193
	--		END
194
	--	FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID
195
	--END
196
	--CLOSE lstTransfer
197
	--DEALLOCATE lstTransfer
198
	END
199

    
200

    
201

    
202

    
203

    
204
	UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
205
	SELECT @BRANCH_ID =BRANCH_ID,@DEP_ID=DEP_ID,@BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
206

    
207
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
208
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
209

    
210
	
211
	--IF(@BRANCH_TYPE='PGD')
212
	--	SET @BRANCH_ID=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
213
	
214
	
215
	DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
216
	---KIEM TRA XEM CO CAP PHE DUYET TRUNG GIAN HAY KHONG 20-05-2020 LUCTV
217
	IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
218
	BEGIN
219
		DECLARE @BRANCH_SIGN_ID VARCHAR(20),@DEP_SIGN_ID VARCHAR(20),@BRANCH_SIGN_TYPE VARCHAR(10),@ROLE_SIGN VARCHAR(20)
220

    
221
		SELECT @BRANCH_SIGN_ID=TLSUBBRID,@DEP_SIGN_ID=SECUR_CODE,@BRANCH_SIGN_TYPE=BRANCH_TYPE,@ROLE_SIGN=RoleName FROM dbo.TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)
222

    
223

    
224

    
225
		UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID
226
		INSERT INTO dbo.PL_REQUEST_PROCESS
227
		(
228
		    REQ_ID,
229
		    PROCESS_ID,
230
		    STATUS,
231
		    ROLE_USER,
232
		    BRANCH_ID,
233
			DEP_ID,
234
		    CHECKER_ID,
235
		    APPROVE_DT,
236
		    PARENT_PROCESS_ID,
237
		    IS_LEAF,
238
		    COST_ID,
239
		    DVDM_ID,
240
		    NOTES,
241
		    IS_HAS_CHILD
242
		)
243
		VALUES
244
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
245
		    'SIGN',        -- PROCESS_ID - varchar(10)
246
		    'C',        -- STATUS - varchar(5)
247
		    @ROLE_SIGN,  -- ROLE_USER - varchar(50)
248
		    @BRANCH_SIGN_ID,  
249
			CASE WHEN @BRANCH_SIGN_TYPE='HS' THEN @DEP_SIGN_ID ELSE '' END,      -- BRANCH_ID - varchar(15)
250
		    '',        -- CHECKER_ID - varchar(15)
251
		    NULL,      -- APPROVE_DT - datetime
252
		    '',        -- PARENT_PROCESS_ID - varchar(10)
253
		    'N',        -- IS_LEAF - varchar(1)
254
		    '',        -- COST_ID - varchar(15)
255
		    '',        -- DVDM_ID - varchar(15)
256
		    N'Chờ cấp phê duyệt trung gian xác nhận phiếu',       -- NOTES - nvarchar(500)
257
		    NULL       -- IS_HAS_CHILD - bit
258
		 )
259
	END
260
	ELSE -- NGUOC LAI KHONG CO CAP PHE DUYET TRUNG GIAN
261
	BEGIN
262
	INSERT INTO dbo.PL_REQUEST_PROCESS
263
		(
264
		    REQ_ID,
265
		    PROCESS_ID,
266
		    STATUS,
267
		    ROLE_USER,
268
		    BRANCH_ID,
269
			DEP_ID,
270
		    CHECKER_ID,
271
		    APPROVE_DT,
272
		    PARENT_PROCESS_ID,
273
		    IS_LEAF,
274
		    COST_ID,
275
		    DVDM_ID,
276
		    NOTES,
277
		    IS_HAS_CHILD
278
		)
279
		VALUES
280
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
281
		    'APPNEW',        -- PROCESS_ID - varchar(10)
282
		    'C',        -- STATUS - varchar(5)
283
		    'GDDV',        -- ROLE_USER - varchar(50)
284
		    @BRANCH_ID,  
285
			@DEP_ID,      -- BRANCH_ID - varchar(15)
286
		    '',        -- CHECKER_ID - varchar(15)
287
		    NULL,      -- APPROVE_DT - datetime
288
		    '',        -- PARENT_PROCESS_ID - varchar(10)
289
		    'N',        -- IS_LEAF - varchar(1)
290
		    '',        -- COST_ID - varchar(15)
291
		    '',        -- DVDM_ID - varchar(15)
292
		   -- N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
293
		    N'Chờ trưởng đơn vị phê duyệt' ,
294
		    NULL       -- IS_HAS_CHILD - bit
295
		 )
296
		INSERT INTO dbo.PL_PROCESS
297
					(
298
					    REQ_ID,
299
					    PROCESS_ID,
300
					    CHECKER_ID,
301
					    APPROVE_DT,
302
					    PROCESS_DESC,
303
					    NOTES
304
					)
305
					VALUES
306
					(   @p_REQ_ID,        -- REQ_ID - varchar(15)
307
					    --@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
308
						'SEND',
309
					    @p_TLNAME,        -- CHECKER_ID - varchar(15)
310
					    GETDATE(), -- APPROVE_DT - datetime
311
					    N'Người tạo tờ trình gửi phê duyệt thành công' ,       -- PROCESS_DESC - nvarchar(1000)
312
					    N'Nhân viên gửi phê duyệt '        -- NOTES - nvarchar(1000)
313
					 )
314
	END
315
IF @@Error <> 0 GOTO ABORT
316
COMMIT TRANSACTION
317
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='SIGN'))
318
BEGIN
319
	SELECT '4' as Result,'' REQ_CODE,''REQ_ID, N'Tờ trình số: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID  = @p_REQ_ID)+N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc
320
	RETURN '4'
321
END
322
ELSE
323
BEGIN
324
	SELECT '0' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
325
	RETURN '0'
326
END
327
ABORT:
328
BEGIN
329
		ROLLBACK TRANSACTION
330
		SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
331
		RETURN '-1'
332
End
333

    
334

    
335

    
336

    
337

    
338