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
|
DECLARE @GD_TYPE_ID_NOT_VALIDATE VARCHAR(15)
|
10
|
SET @GD_TYPE_ID_NOT_VALIDATE =(SELECT TOP 1 GD_TYPE_ID FROM CM_GOODSTYPE WHERE GD_TYPE_CODE ='OS')
|
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
|
-- XÁC ĐỊNH HẠN MƯC CÒN ĐỦ HAY KO
|
14
|
--- KIEM TRA NGAN SACH LUCTV 18052020
|
15
|
DECLARE @ERROR BIT ,@EROOR_DES NVARCHAR(500)
|
16
|
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)
|
17
|
IF(@ERROR=1)
|
18
|
BEGIN
|
19
|
ROLLBACK TRANSACTION;
|
20
|
SELECT '-1' Result, @EROOR_DES ErrorDesc
|
21
|
RETURN '-1';
|
22
|
END
|
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
|
IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND EXISTS(SELECT TLNANME FROM dbo.TL_USER WHERE TLNANME=SIGN_USER AND BRANCH_CREATE=TLSUBBRID AND (RoleName='TPGD' OR RoleName='GDDV'))))
|
28
|
BEGIN
|
29
|
ROLLBACK TRANSACTION
|
30
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Người ký nháy không được là trường phòng, trưởng đơn vị.' ErrorDesc
|
31
|
RETURN '-1'
|
32
|
END
|
33
|
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))) )
|
34
|
BEGIN
|
35
|
ROLLBACK TRANSACTION
|
36
|
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
|
37
|
RETURN '-1'
|
38
|
END
|
39
|
|
40
|
IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (REQ_NAME IS NULL OR REQ_NAME='')) )
|
41
|
BEGIN
|
42
|
ROLLBACK TRANSACTION
|
43
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Tên tờ trình bắt buộc nhập' ErrorDesc
|
44
|
RETURN '-1'
|
45
|
END
|
46
|
IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (REQ_CONTENT IS NULL OR REQ_CONTENT='')) )
|
47
|
BEGIN
|
48
|
ROLLBACK TRANSACTION
|
49
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Nội dung tờ trình bắt buộc nhập' ErrorDesc
|
50
|
RETURN '-1'
|
51
|
END
|
52
|
IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND ( REQ_REASON IS NULL OR REQ_REASON='')) )
|
53
|
BEGIN
|
54
|
ROLLBACK TRANSACTION
|
55
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lý do trình chủ trương bắt buộc nhập' ErrorDesc
|
56
|
RETURN '-1'
|
57
|
END
|
58
|
IF(NOT EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID ) )
|
59
|
BEGIN
|
60
|
ROLLBACK TRANSACTION
|
61
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Danh sách hàng hóa bắt buộc nhập' ErrorDesc
|
62
|
RETURN '-1'
|
63
|
END
|
64
|
|
65
|
-- GIANT 10/11/2021
|
66
|
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 <>''))
|
67
|
BEGIN
|
68
|
DECLARE @PL_BASED_ID VARCHAR(20),
|
69
|
@PL_BASE_CODE VARCHAR(20),
|
70
|
@PL_BASE_TOTAL_USED DECIMAL(18,2), -- CÓ THỂ SỬ DỤNG
|
71
|
@PL_BASE_TOTAL_PRICE DECIMAL(18,2), -- TỔNG TIỀN CỦA TTCT
|
72
|
@TOTAL_PRICE DECIMAL(18,2) -- TỔNG TIỀN CỦA TỜ TRÌNH HIỆN TẠI SỬ DỤNG
|
73
|
SET @PL_BASED_ID=(SELECT PL_BASED_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID )
|
74
|
SET @PL_BASE_CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID = @PL_BASED_ID)
|
75
|
SET @PL_BASE_TOTAL_USED = (SELECT SUM(TOTAL_AMT) FROM PL_REQUEST_DOC WHERE PL_BASED_ID = @PL_BASED_ID AND AUTH_STATUS NOT IN ('E','R'))
|
76
|
SET @PL_BASE_TOTAL_PRICE = (SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID = @PL_BASED_ID)
|
77
|
SET @TOTAL_PRICE = (SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)
|
78
|
--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)))
|
79
|
--BEGIN
|
80
|
-- ROLLBACK TRANSACTION
|
81
|
-- SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Danh sách hàng hóa không có trong tờ trình căn cứ' ErrorDesc
|
82
|
-- RETURN '-1'
|
83
|
--END
|
84
|
|
85
|
-- KIỂM TRA CÁC TỔNG CÁC TỜ TRÌNH SỬ DỤNG TTCC VƯỢT QUÁ SỐ TIỀN CỦA TTCC CHO PHÉP HAY CHƯA
|
86
|
-- Tổng giá trị những tờ trình con đã sử dụng tờ trình số: <Lấy số TTCC ra> làm tờ trình căn cứ: 30 triệu. Giá trị còn lại có thể sử dụng: 70 triệu
|
87
|
PRINT @PL_BASE_TOTAL_PRICE - @PL_BASE_TOTAL_USED
|
88
|
IF (@PL_BASE_TOTAL_PRICE < (@PL_BASE_TOTAL_USED + @TOTAL_PRICE))
|
89
|
BEGIN
|
90
|
ROLLBACK TRANSACTION
|
91
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Tổng giá trị những tờ trình con đã sử dụng tờ trình số: ' + @PL_BASE_CODE + N' làm tờ trình căn cứ: ' + CONVERT(NVARCHAR(20),CAST(@PL_BASE_TOTAL_USED AS money),1) + N' VND. Giá trị còn lại có thể sử dụng: ' + CONVERT(NVARCHAR(20),CAST(@PL_BASE_TOTAL_PRICE - @PL_BASE_TOTAL_USED AS money),1) + ' VND' ErrorDesc
|
92
|
RETURN '-1'
|
93
|
END
|
94
|
|
95
|
|
96
|
-- KIỂM TRA HẠNG MỤC ĐƯỢC CHỌN CÓ THUỘC VÀO HẠNG MỨC CHO PHÉP CỦA TTCC
|
97
|
DECLARE LISTS CURSOR LOCAL FOR SELECT REQDT_ID,TRADE_ID,REQ_ID FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @p_REQ_ID
|
98
|
OPEN LISTS
|
99
|
DECLARE @REQDT_ID VARCHAR(15),
|
100
|
@TRADE_ID VARCHAR(15),
|
101
|
@REQ_ID VARCHAR(15),
|
102
|
@COUNT INT = 1
|
103
|
|
104
|
FETCH NEXT FROM LISTS INTO @REQDT_ID,@TRADE_ID,@REQ_ID
|
105
|
WHILE @@FETCH_STATUS = 0
|
106
|
BEGIN
|
107
|
-- Chỉ sử dụng hàng hóa từ tờ trình căn cứ
|
108
|
IF (NOT EXISTS (SELECT * FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID AND HANGHOA_ID IN (SELECT HANGHOA_ID FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @PL_BASED_ID)))
|
109
|
BEGIN
|
110
|
ROLLBACK TRANSACTION
|
111
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm - Dòng ' + CONVERT(nvarchar(10),@COUNT) + N' : Hàng hóa mua sắm đã chọn không thuộc vào Hàng hóa mua sắm cho phép của Tờ trình căn cứ' ErrorDesc
|
112
|
RETURN '-1'
|
113
|
END
|
114
|
|
115
|
-- Chỉ sử dụng hạng mục ngân sách từ tờ trình căn cứ
|
116
|
IF (NOT EXISTS (SELECT * FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID AND TRADE_ID IN (SELECT TRADE_ID FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @PL_BASED_ID)))
|
117
|
BEGIN
|
118
|
ROLLBACK TRANSACTION
|
119
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm - Dòng ' + CONVERT(nvarchar(10),@COUNT) + N' : Hạng mục ngân sách đã chọn không thuộc vào hạng mục ngân sách cho phép của Tờ trình căn cứ' ErrorDesc
|
120
|
RETURN '-1'
|
121
|
END
|
122
|
|
123
|
-- SỐ NGÂN SÁCH CHỌN VƯỢT QUÁ NGÂN SÁCH CHO PHÉP CỦA HẠN MỤC ĐÓ
|
124
|
IF ((SELECT TOTAL_AMT FROM PL_REQUEST_DOC_DT WHERE REQ_ID = @PL_BASED_ID AND TRADE_ID = @TRADE_ID) < (SELECT TOTAL_AMT FROM PL_REQUEST_DOC_DT WHERE REQDT_ID = @REQDT_ID))
|
125
|
BEGIN
|
126
|
ROLLBACK TRANSACTION
|
127
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm - Dòng ' + CONVERT(nvarchar(10),@COUNT) + N' : Hạng mục ngân sách đã chọn vượt quá hạng mục cho phép của Tờ trình căn cứ' ErrorDesc
|
128
|
RETURN '-1'
|
129
|
END
|
130
|
|
131
|
IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC_DT prdd WHERE REQDT_ID = @REQDT_ID AND prdd.HANGHOA_ID NOT IN (SELECT HH_ID FROM SYS_HH_GROUP_LIMIT)))
|
132
|
BEGIN
|
133
|
ROLLBACK TRANSACTION
|
134
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm - Dòng ' + CONVERT(nvarchar(10),@COUNT) + N' : Hàng hóa mua sắm đã chọn không có hạn mức phê duyệt' ErrorDesc
|
135
|
RETURN '-1'
|
136
|
END
|
137
|
|
138
|
SET @COUNT += 1
|
139
|
FETCH NEXT FROM LISTS INTO @REQDT_ID,@TRADE_ID,@REQ_ID
|
140
|
END
|
141
|
CLOSE LISTS
|
142
|
DEALLOCATE LISTS
|
143
|
|
144
|
|
145
|
END
|
146
|
|
147
|
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 ='')) )
|
148
|
BEGIN
|
149
|
ROLLBACK TRANSACTION
|
150
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Hàng hóa bắt buộc nhập' ErrorDesc
|
151
|
RETURN '-1'
|
152
|
END
|
153
|
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 ='')) )
|
154
|
BEGIN
|
155
|
ROLLBACK TRANSACTION
|
156
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Hạng mục ngân sách bắt buộc nhập' ErrorDesc
|
157
|
RETURN '-1'
|
158
|
END
|
159
|
|
160
|
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)) )
|
161
|
BEGIN
|
162
|
ROLLBACK TRANSACTION
|
163
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới điều chuyển ngân sách: Vui lòng nhập số tiền điều chuyển' ErrorDesc
|
164
|
RETURN '-1'
|
165
|
END
|
166
|
|
167
|
IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
|
168
|
AND ((FR_BRN_ID = 'DV0001' AND FR_DEP_ID IN ('DEP000000000001','DEP000000000024'))
|
169
|
OR FR_BRN_ID IN ('BR000001053460','DV0002'))))
|
170
|
BEGIN
|
171
|
ROLLBACK TRANSACTION
|
172
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới điều chuyển ngân sách: Đơn vị chuyển không hợp lệ, vui lòng không chọn Hội sở - Chung, Chung - CNTT, KV Tổng, KV Khác' ErrorDesc
|
173
|
RETURN '-1'
|
174
|
END
|
175
|
|
176
|
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
|
177
|
-- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP
|
178
|
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))
|
179
|
BEGIN
|
180
|
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
|
181
|
ROLLBACK TRANSACTION
|
182
|
RETURN '-1'
|
183
|
END
|
184
|
--
|
185
|
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))
|
186
|
BEGIN
|
187
|
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
|
188
|
ROLLBACK TRANSACTION
|
189
|
RETURN '-1'
|
190
|
END
|
191
|
---- NEU HINH THUC MUA SAM CHI DINH THAU THI KHONG DUOC PHEP DE TRONG LY DO CHI DINH
|
192
|
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC_DT WHERE TRADE_TYPE ='CDT' AND ( [NAME] ='' OR [NAME] IS NULL) AND REQ_ID =@p_REQ_ID))
|
193
|
BEGIN
|
194
|
SELECT 'REQ-00001' Result, '' REQ_ID, N'Lưới Danh sách hàng hóa: Nếu hình thức mua sắm chỉ định thầu thì bạn không được phép bỏ trống lý do chỉ định thầu. Vui lòng nhập lý do chỉ định thầu' ErrorDesc
|
195
|
ROLLBACK TRANSACTION
|
196
|
RETURN '-1'
|
197
|
END
|
198
|
--
|
199
|
--LUCTV: 04052021 BO SUNG RANG BUOC NEU TIEN TE LA VND THI DON GIA BAO GOM VAT * SO LUONG MUA MUA = VOI NS SU DUNG
|
200
|
IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND ROUND(QUANTITY * PRICE,0) <> ROUND(TOTAL_AMT,0) AND CURRENCY='VND'))
|
201
|
BEGIN
|
202
|
ROLLBACK TRANSACTION
|
203
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Đối với tiền tệ VNĐ, Cột Ngân sách sử dụng chưa khớp với Đơn giá bao gồm VAT * Số lượng trình mua sắm ' ErrorDesc
|
204
|
RETURN '-1'
|
205
|
END
|
206
|
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='')
|
207
|
AND ((FR_DEP_ID=@DEP_CREATE) OR ((@DEP_CREATE IS NULL OR @DEP_CREATE='') AND (FR_DEP_ID IS NULL OR FR_DEP_ID=''))) ))
|
208
|
BEGIN
|
209
|
ROLLBACK TRANSACTION
|
210
|
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
|
211
|
RETURN '-1'
|
212
|
END
|
213
|
IF(EXISTS(SELECT Temp.TRADE_ID FROM (
|
214
|
SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
|
215
|
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
|
216
|
FROM dbo.PL_REQUEST_DOC_DT TB
|
217
|
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
|
218
|
WHERE TB.REQ_ID=@p_REQ_ID AND TB.REQDT_TYPE='I'
|
219
|
AND PT.GOODS_ID NOT IN (SELECT ISNULL(GD_ID,'') FROM CM_GOODS WHERE GD_TYPE_ID =@GD_TYPE_ID_NOT_VALIDATE)
|
220
|
GROUP BY TB.TRADE_ID
|
221
|
)Temp
|
222
|
WHERE Temp.TOTAL_AMT_EXE > Temp.TOTAL_AMT_REMAIN))
|
223
|
BEGIN
|
224
|
ROLLBACK TRANSACTION
|
225
|
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
|
226
|
RETURN '-1'
|
227
|
END
|
228
|
|
229
|
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')))
|
230
|
BEGIN
|
231
|
ROLLBACK TRANSACTION
|
232
|
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
|
233
|
RETURN '-1'
|
234
|
END
|
235
|
IF( NOT EXISTS(SELECT GOODS_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND REQDT_TYPE='O') AND 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')))
|
236
|
BEGIN
|
237
|
ROLLBACK TRANSACTION
|
238
|
SELECT '-1' AS RESULT ,'' REQ_CODE, '' REQ_ID, N'Hạng mục trong ngân sách, vui lòng không thêm danh sách điều chuyển ngân sách' ErrorDesc
|
239
|
RETURN '-1'
|
240
|
END
|
241
|
IF( EXISTS(SELECT PLDT.GOODS_ID FROM dbo.PL_REQUEST_DOC_DT PLDT WHERE PLDT.REQ_ID=@p_REQ_ID AND PLDT.REQDT_TYPE='O' AND NOT EXISTS(SELECT PLTF.REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER PLTF WHERE PLTF.TO_GOOD_ID=PLDT.GOODS_ID AND ISNULL(PLTF.TO_TRADE_ID,'')=ISNULL(PLDT.TRADE_ID,''))) )
|
242
|
BEGIN
|
243
|
ROLLBACK TRANSACTION
|
244
|
SELECT '-1' AS RESULT ,'' REQ_CODE, '' REQ_ID, N'Hạng mục ngoài ngân sách, vui lòng nhập danh sách điều chuyển ngân sách' ErrorDesc
|
245
|
RETURN '-1'
|
246
|
END
|
247
|
|
248
|
|
249
|
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)) )
|
250
|
BEGIN
|
251
|
ROLLBACK TRANSACTION
|
252
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Số luợng, đơn giá của hàng hóa bắt buộc nhập' ErrorDesc
|
253
|
RETURN '-1'
|
254
|
END
|
255
|
IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (DESCRIPTION IS NULL OR DESCRIPTION='')) )
|
256
|
BEGIN
|
257
|
ROLLBACK TRANSACTION
|
258
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Quy cách kỹ thuật bắt buộc nhập' ErrorDesc
|
259
|
RETURN '-1'
|
260
|
END
|
261
|
|
262
|
IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (UNIT_NAME IS NULL OR UNIT_NAME='')) )
|
263
|
BEGIN
|
264
|
ROLLBACK TRANSACTION
|
265
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Đơn vị tính bắt buộc nhập' ErrorDesc
|
266
|
RETURN '-1'
|
267
|
END
|
268
|
IF(EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (UNIT_NAME IS NULL OR UNIT_NAME='')) )
|
269
|
BEGIN
|
270
|
ROLLBACK TRANSACTION
|
271
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới hàng hóa mua sắm: Đây là thông tin bắt buộc nhập' ErrorDesc
|
272
|
RETURN '-1'
|
273
|
END
|
274
|
--- LUCTV 14.11.2022 CHECK NEU CO DIEU CHUYEN NGAN SACH THI DON VI NHAN, DON VI CHUYEN PHAI KHAC NULL
|
275
|
IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND (ISNULL(FR_BRN_ID,'')='' OR ISNULL(TO_BRN_ID,'')='')))
|
276
|
BEGIN
|
277
|
ROLLBACK TRANSACTION
|
278
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới điều chuyển ngân sách: Đơn vị chuyển, đơn vị nhận không được phép để trống' ErrorDesc
|
279
|
RETURN '-1'
|
280
|
END
|
281
|
IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND (ISNULL(FR_BRN_ID,'')='DV0001' AND ISNULL(FR_DEP_ID,'')='')))
|
282
|
BEGIN
|
283
|
ROLLBACK TRANSACTION
|
284
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới điều chuyển ngân sách: Đơn vị chuyển ngân sách nếu ở Hội Sở thì bạn phải chọn cụ thể phòng ban' ErrorDesc
|
285
|
RETURN '-1'
|
286
|
END
|
287
|
IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND (ISNULL(TO_BRN_ID,'')='DV0001' AND ISNULL(TO_DEP_ID,'')='')))
|
288
|
BEGIN
|
289
|
ROLLBACK TRANSACTION
|
290
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Lưới điều chuyển ngân sách: Đơn vị nhận ngân sách nếu ở Hội Sở thì bạn phải cụ thể chọn phòng ban' ErrorDesc
|
291
|
RETURN '-1'
|
292
|
END
|
293
|
---- END LUCTV
|
294
|
DECLARE lstTransfer CURSOR FOR
|
295
|
SELECT FR_GOOD_ID,TO_GOOD_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
|
296
|
OPEN lstTransfer
|
297
|
DECLARE @FR_GOOD_ID VARCHAR(20),@TO_GOOD_ID VARCHAR(20)
|
298
|
|
299
|
FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID
|
300
|
WHILE @@FETCH_STATUS=0
|
301
|
BEGIN
|
302
|
IF(@FR_GOOD_ID IS NOT NULL AND @FR_GOOD_ID<>'')
|
303
|
BEGIN
|
304
|
DECLARE @FR_GD_TYPE VARCHAR(20),@TO_GD_TYPE VARCHAR(20)
|
305
|
|
306
|
SET @FR_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM
|
307
|
(
|
308
|
SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@FR_GOOD_ID
|
309
|
) CG
|
310
|
LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
|
311
|
|
312
|
|
313
|
SET @TO_GD_TYPE =(SELECT GT.GD_TYPE_ID FROM
|
314
|
(
|
315
|
SELECT GD_CODE FROM dbo.CM_GOODS WHERE GD_ID=@TO_GOOD_ID
|
316
|
) CG
|
317
|
LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%')
|
318
|
|
319
|
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,';')) ) )
|
320
|
BEGIN
|
321
|
DECLARE @FR_GD_TYPE_NAME NVARCHAR(100),@TO_GD_TYPE_NAME NVARCHAR(100)
|
322
|
SET @FR_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@FR_GD_TYPE)
|
323
|
SET @TO_GD_TYPE_NAME=(SELECT GD_TYPE_NAME FROM dbo.CM_GOODSTYPE WHERE GD_TYPE_ID=@TO_GD_TYPE)
|
324
|
|
325
|
ROLLBACK TRANSACTION
|
326
|
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
|
327
|
CLOSE lstTransfer
|
328
|
DEALLOCATE lstTransfer
|
329
|
RETURN '-1'
|
330
|
END
|
331
|
END
|
332
|
FETCH NEXT FROM lstTransfer INTO @FR_GOOD_ID,@TO_GOOD_ID
|
333
|
END
|
334
|
CLOSE lstTransfer
|
335
|
DEALLOCATE lstTransfer
|
336
|
--END
|
337
|
UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
|
338
|
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
|
339
|
|
340
|
SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
|
341
|
SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
|
342
|
|
343
|
|
344
|
--IF(@BRANCH_TYPE='PGD')
|
345
|
-- SET @BRANCH_ID=(SELECT BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
|
346
|
|
347
|
|
348
|
DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
|
349
|
---KIEM TRA XEM CO CAP PHE DUYET TRUNG GIAN HAY KHONG 20-05-2020 LUCTV
|
350
|
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
|
351
|
BEGIN
|
352
|
DECLARE @BRANCH_SIGN_ID VARCHAR(20),@DEP_SIGN_ID VARCHAR(20),@BRANCH_SIGN_TYPE VARCHAR(10),@ROLE_SIGN VARCHAR(20)
|
353
|
|
354
|
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)
|
355
|
|
356
|
UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN', TOTAL_AMT =(SELECT ISNULL(SUM(TOTAL_AMT),0) FROM PL_REQUEST_DOC_DT WHERE REQ_ID =@p_REQ_ID) WHERE REQ_ID=@p_REQ_ID
|
357
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
358
|
(
|
359
|
REQ_ID,
|
360
|
PROCESS_ID,
|
361
|
STATUS,
|
362
|
ROLE_USER,
|
363
|
BRANCH_ID,
|
364
|
DEP_ID,
|
365
|
CHECKER_ID,
|
366
|
APPROVE_DT,
|
367
|
PARENT_PROCESS_ID,
|
368
|
IS_LEAF,
|
369
|
COST_ID,
|
370
|
DVDM_ID,
|
371
|
NOTES,
|
372
|
IS_HAS_CHILD
|
373
|
)
|
374
|
VALUES
|
375
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
376
|
'SIGN', -- PROCESS_ID - varchar(10)
|
377
|
'C', -- STATUS - varchar(5)
|
378
|
@ROLE_SIGN, -- ROLE_USER - varchar(50)
|
379
|
@BRANCH_SIGN_ID,
|
380
|
CASE WHEN @BRANCH_SIGN_TYPE='HS' THEN @DEP_SIGN_ID ELSE '' END, -- BRANCH_ID - varchar(15)
|
381
|
'', -- CHECKER_ID - varchar(15)
|
382
|
NULL, -- APPROVE_DT - datetime
|
383
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
384
|
'N', -- IS_LEAF - varchar(1)
|
385
|
'', -- COST_ID - varchar(15)
|
386
|
'', -- DVDM_ID - varchar(15)
|
387
|
N'Chờ cấp phê duyệt trung gian xác nhận phiếu', -- NOTES - nvarchar(500)
|
388
|
NULL -- IS_HAS_CHILD - bit
|
389
|
)
|
390
|
END
|
391
|
ELSE -- NGUOC LAI KHONG CO CAP PHE DUYET TRUNG GIAN
|
392
|
BEGIN
|
393
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
394
|
(
|
395
|
REQ_ID,
|
396
|
PROCESS_ID,
|
397
|
STATUS,
|
398
|
ROLE_USER,
|
399
|
BRANCH_ID,
|
400
|
DEP_ID,
|
401
|
CHECKER_ID,
|
402
|
APPROVE_DT,
|
403
|
PARENT_PROCESS_ID,
|
404
|
IS_LEAF,
|
405
|
COST_ID,
|
406
|
DVDM_ID,
|
407
|
NOTES,
|
408
|
IS_HAS_CHILD
|
409
|
)
|
410
|
VALUES
|
411
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
412
|
'APPNEW', -- PROCESS_ID - varchar(10)
|
413
|
'C', -- STATUS - varchar(5)
|
414
|
'GDDV', -- ROLE_USER - varchar(50)
|
415
|
@BRANCH_ID,
|
416
|
@DEP_ID, -- BRANCH_ID - varchar(15)
|
417
|
'', -- CHECKER_ID - varchar(15)
|
418
|
NULL, -- APPROVE_DT - datetime
|
419
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
420
|
'N', -- IS_LEAF - varchar(1)
|
421
|
'', -- COST_ID - varchar(15)
|
422
|
'', -- DVDM_ID - varchar(15)
|
423
|
-- N'Chờ trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500)
|
424
|
N'Chờ trưởng đơn vị phê duyệt' ,
|
425
|
NULL -- IS_HAS_CHILD - bit
|
426
|
)
|
427
|
|
428
|
END
|
429
|
INSERT INTO dbo.PL_PROCESS
|
430
|
(
|
431
|
REQ_ID,
|
432
|
PROCESS_ID,
|
433
|
CHECKER_ID,
|
434
|
APPROVE_DT,
|
435
|
PROCESS_DESC,
|
436
|
NOTES
|
437
|
)
|
438
|
VALUES
|
439
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
440
|
--@p_PROCESS_ID, -- PROCESS_ID - varchar(10)
|
441
|
'SEND',
|
442
|
@p_TLNAME, -- CHECKER_ID - varchar(15)
|
443
|
GETDATE(), -- APPROVE_DT - datetime
|
444
|
N'Người tạo tờ trình gửi phê duyệt thành công' , -- PROCESS_DESC - nvarchar(1000)
|
445
|
N'Nhân viên gửi phê duyệt ' -- NOTES - nvarchar(1000)
|
446
|
)
|
447
|
|
448
|
|
449
|
|
450
|
IF @@Error <> 0 GOTO ABORT
|
451
|
COMMIT TRANSACTION
|
452
|
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='SIGN'))
|
453
|
BEGIN
|
454
|
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, (SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) Attr1, 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
|
455
|
RETURN '0'
|
456
|
END
|
457
|
ELSE
|
458
|
BEGIN
|
459
|
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, (SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) Attr1, 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 trưởng đơn vị phê duyệt phiếu' ErrorDesc
|
460
|
RETURN '0'
|
461
|
END
|
462
|
ABORT:
|
463
|
BEGIN
|
464
|
ROLLBACK TRANSACTION
|
465
|
SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
|
466
|
RETURN '-1'
|
467
|
End
|