Project

General

Profile

SENDAPP.txt

Truong Nguyen Vu, 08/26/2020 09:49 AM

 
1
USE [gAMSPro_VietcapitalBank_v2_TEST]
2
GO
3
/****** Object:  StoredProcedure [dbo].[PL_REQUEST_DOC_SendApp]    Script Date: 26-Aug-20 09:34:04 ******/
4
SET ANSI_NULLS ON
5
GO
6
SET QUOTED_IDENTIFIER ON
7
GO
8
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_SendApp]
9
@p_REQ_ID VARCHAR(20),
10
@p_PROCESS_ID VARCHAR(20),
11
@p_TLNAME VARCHAR(20),
12
@p_MAKER_ID VARCHAR(20)
13
AS
14
BEGIN TRANSACTION
15
	--- KIEM TRA NGAN SACH LUCTV 18052020
16
	DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
17
	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)
18
	IF(@ERROR=1)
19
	BEGIN
20
	ROLLBACK TRANSACTION;
21
		SELECT '-1'  Result, @EROOR_DES ErrorDesc
22
		RETURN '-1';
23
	END
24
	-----
25
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
26
	@BRANCH_CREATE_TYPE VARCHAR(10)
27

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

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

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

    
66

    
67

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

    
81
	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)) )
82
	BEGIN
83
			ROLLBACK TRANSACTION
84
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Vui lòng nhập số tiền điều chuyển' ErrorDesc
85
			RETURN '-1'
86
	END
87
	SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
88

    
89
	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='')
90
	AND ((FR_DEP_ID=@DEP_CREATE) OR ((@DEP_CREATE IS NULL OR @DEP_CREATE='') AND (FR_DEP_ID IS NULL OR FR_DEP_ID=''))) ))
91
	BEGIN
92
		ROLLBACK TRANSACTION
93
			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
94
			RETURN '-1'
95
	END
96
	IF(EXISTS(SELECT Temp.TRADE_ID FROM (
97
		SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
98
		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 
99
		FROM dbo.PL_REQUEST_DOC_DT TB
100
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
101
		WHERE   TB.REQ_ID=@p_REQ_ID AND  TB.REQDT_TYPE='I' AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.GOODS_ID)
102
		GROUP BY TB.TRADE_ID
103
		)Temp
104
		WHERE Temp.TOTAL_AMT_EXE > Temp.TOTAL_AMT_REMAIN))
105
		BEGIN
106
					ROLLBACK TRANSACTION
107
					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
108
					RETURN '-1'
109
		END
110

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

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

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

    
149
				SET @FR_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM 
150
				(
151
					SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@FR_GOOD_ID
152
				) CG
153
				LEFT JOIN dbo.CM_GOODSTYPE GT ON  CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
154

    
155

    
156
				SET @TO_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM 
157
				(
158
					SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@TO_GOOD_ID
159
				) CG
160
				LEFT JOIN dbo.CM_GOODSTYPE GT ON  CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
161

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

    
180

    
181

    
182

    
183

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

    
187
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
188
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
189

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

    
201
		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)
202

    
203

    
204

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

    
314

    
315

    
316

    
317

    
318