Project

General

Profile

FILE 1.txt

Luc Tran Van, 10/12/2020 09:09 AM

 
1

    
2
ALTER PROCEDURE [dbo].[PL_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

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

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

    
44
	IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID ) )
45
	BEGIN
46
			ROLLBACK TRANSACTION
47
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Danh sách hàng hóa bắt buộc nhập' ErrorDesc
48
			RETURN '-1'
49
	END
50

    
51
	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 <>''))
52
	BEGIN
53
	DECLARE @PL_BASED_ID VARCHAR(20)
54
	SET @PL_BASED_ID=(SELECT PL_BASED_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID )
55
		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)))
56
		BEGIN
57
			ROLLBACK TRANSACTION
58
			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
59
			RETURN '-1'
60
		END
61
	END
62

    
63

    
64

    
65
	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 ='')) )
66
	BEGIN
67
			ROLLBACK TRANSACTION
68
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Hàng hóa bắt buộc nhập' ErrorDesc
69
			RETURN '-1'
70
	END
71
	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 ='')) )
72
	BEGIN
73
			ROLLBACK TRANSACTION
74
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Hạng mục ngân sách bắt buộc nhập' ErrorDesc
75
			RETURN '-1'
76
	END
77

    
78
	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)) )
79
	BEGIN
80
			ROLLBACK TRANSACTION
81
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Vui lòng nhập số tiền điều chuyển' ErrorDesc
82
			RETURN '-1'
83
	END
84
	SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
85
	-- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP
86
	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))
87
			BEGIN
88
				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 
89
				ROLLBACK TRANSACTION
90
				RETURN '-1'
91
	END
92
	----
93
	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='')
94
	AND ((FR_DEP_ID=@DEP_CREATE) OR ((@DEP_CREATE IS NULL OR @DEP_CREATE='') AND (FR_DEP_ID IS NULL OR FR_DEP_ID=''))) ))
95
	BEGIN
96
		ROLLBACK TRANSACTION
97
			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
98
			RETURN '-1'
99
	END
100
	IF(EXISTS(SELECT Temp.TRADE_ID FROM (
101
		SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
102
		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 
103
		FROM dbo.PL_REQUEST_DOC_DT TB
104
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
105
		WHERE   TB.REQ_ID=@p_REQ_ID AND  TB.REQDT_TYPE='I' 
106
		GROUP BY TB.TRADE_ID
107
		)Temp
108
		WHERE Temp.TOTAL_AMT_EXE > Temp.TOTAL_AMT_REMAIN))
109
		BEGIN
110
					ROLLBACK TRANSACTION
111
					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
112
					RETURN '-1'
113
		END
114

    
115
	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')))
116
		BEGIN
117
					ROLLBACK TRANSACTION
118
					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
119
					RETURN '-1'
120
		END
121
		
122
	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)) )
123
	BEGIN
124
			ROLLBACK TRANSACTION
125
			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
126
			RETURN '-1'
127
	END
128
	IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID AND  (DESCRIPTION IS NULL OR DESCRIPTION='')) )
129
	BEGIN
130
			ROLLBACK TRANSACTION
131
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Quy cách kỹ thuật bắt buộc nhập' ErrorDesc
132
			RETURN '-1'
133
	END
134

    
135
	IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE  REQ_ID=@p_REQ_ID AND  (DESCRIPTION IS NULL OR DESCRIPTION='')) )
136
	BEGIN
137
			ROLLBACK TRANSACTION
138
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Quy cách kỹ thuật bắt buộc nhập' ErrorDesc
139
			RETURN '-1'
140
	END			
141
	DECLARE lstTransfer CURSOR FOR 
142
	SELECT FR_GOOD_ID,TO_GOOD_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
143
	OPEN lstTransfer
144
	DECLARE @FR_GOOD_ID VARCHAR(20),@TO_GOOD_ID VARCHAR(20)
145

    
146
	FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID
147
	WHILE @@FETCH_STATUS=0
148
	BEGIN
149
		IF(@FR_GOOD_ID IS NOT NULL AND @FR_GOOD_ID<>'')
150
			BEGIN
151
				DECLARE @FR_GD_TYPE VARCHAR(20),@TO_GD_TYPE VARCHAR(20)
152

    
153
				SET @FR_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM 
154
				(
155
					SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@FR_GOOD_ID
156
				) CG
157
				LEFT JOIN dbo.CM_GOODSTYPE GT ON  CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
158

    
159

    
160
				SET @TO_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM 
161
				(
162
					SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@TO_GOOD_ID
163
				) CG
164
				LEFT JOIN dbo.CM_GOODSTYPE GT ON  CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
165

    
166
				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,';')) )  )
167
				BEGIN
168
					DECLARE @FR_GD_TYPE_NAME NVARCHAR(100),@TO_GD_TYPE_NAME NVARCHAR(100)
169
					SET @FR_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@FR_GD_TYPE)
170
					SET @TO_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@TO_GD_TYPE)
171
					
172
						ROLLBACK TRANSACTION
173
						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
174
						RETURN '-1'
175
						CLOSE lstTransfer
176
						DEALLOCATE lstTransfer
177
				END
178
			END
179
		FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID
180
	END
181
	CLOSE lstTransfer
182
	DEALLOCATE lstTransfer
183
	END
184

    
185

    
186

    
187

    
188

    
189
	UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
190
	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
191

    
192
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
193
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
194

    
195
	
196
	IF(@BRANCH_TYPE='PGD')
197
		SET @BRANCH_ID=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
198
	
199
	
200
	DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
201
	---KIEM TRA XEM CO CAP PHE DUYET TRUNG GIAN HAY KHONG 20-05-2020 LUCTV
202
	IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
203
	BEGIN
204
		DECLARE @BRANCH_SIGN_ID VARCHAR(20),@DEP_SIGN_ID VARCHAR(20),@BRANCH_SIGN_TYPE VARCHAR(10),@ROLE_SIGN VARCHAR(20)
205

    
206
		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)
207

    
208

    
209

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

    
319

    
320

    
321

    
322

    
323