1
|
|
2
|
ALTER PROCEDURE [dbo].[MW_OUT_KT_Upd]
|
3
|
@p_OUT_ID VARCHAR(15) = NULL,
|
4
|
@p_TRN_Date VARCHAR(25) = NULL,
|
5
|
@p_TRN_TIME VARCHAR(50) = NULL,
|
6
|
@p_BRN_ID VARCHAR(15) = NULL,
|
7
|
@p_DEPT_ID VARCHAR(15) = NULL,
|
8
|
@p_QTY DECIMAL(18,2) = NULL,
|
9
|
@p_PRICE NUMERIC(18, 0) = NULL,
|
10
|
@p_TOTAL_AMT NUMERIC(18, 2) = NULL,
|
11
|
@p_NOTES NVARCHAR(1000)= NULL,
|
12
|
@p_OUT_DESC NVARCHAR(500) = NULL,
|
13
|
@p_AUTH_STATUS VARCHAR(1) = NULL,
|
14
|
@p_MAKER_ID VARCHAR(15) = NULL,
|
15
|
@p_CREATE_DT VARCHAR(25) = NULL,
|
16
|
@p_CHECKER_ID VARCHAR(15) = NULL,
|
17
|
@p_APPROVE_DT VARCHAR(25) = NULL,
|
18
|
@p_KT_AUTH_STATUS VARCHAR(1) = NULL,
|
19
|
@p_KT_MAKER_ID VARCHAR(15) = NULL,
|
20
|
@p_KT_CREATE_DT VARCHAR(25) = NULL,
|
21
|
@p_KT_CHECKER_ID VARCHAR(15) = NULL,
|
22
|
@p_KT_APPROVE_DT VARCHAR(25) = NULL,
|
23
|
@p_RECORD_STATUS VARCHAR(1) = NULL,
|
24
|
@p_XmlData XML = NULL,
|
25
|
@p_CORE_NOTE nvarchar(500) = NULL,
|
26
|
@p_WARE_HOUSE VARCHAR(15) = NULL
|
27
|
AS
|
28
|
DECLARE
|
29
|
--DVSD
|
30
|
@OUT_ID VARCHAR(15) = NULL,
|
31
|
@MAST_BAL_ID VARCHAR(15) = NULL,
|
32
|
@CUST_NAME NVARCHAR(200) = NULL,
|
33
|
@QTY DECIMAL(18,2) = NULL,
|
34
|
@QTY_OLD DECIMAL(18,2) = NULL,
|
35
|
@PRICE NUMERIC(18, 0) = NULL,
|
36
|
@TOTAL_AMT NUMERIC(18, 2) = NULL,
|
37
|
@NOTES NVARCHAR(1000),
|
38
|
@TO_BRN_ID varchar(15) = NULL,
|
39
|
@TO_DEPT_ID varchar(15) = NULL,
|
40
|
@EVENT_NAME NVARCHAR(1000) = NULL, --LUCTV BO SUNG 15-02-2019 TEN SU KIEN TREN LUOI DS XUAT VAT LIEU
|
41
|
@IS_BCT VARCHAR(1) = 'N',-- LUCTV BO SUNG 05-04-2019 TEN SU KIEN TREN LUOI DS XUAT VAT LIEU
|
42
|
@COST_ACC VARCHAR(50) = NULL
|
43
|
DECLARE @hdoc INT;
|
44
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
|
45
|
DECLARE XmlData CURSOR FOR
|
46
|
SELECT *
|
47
|
FROM
|
48
|
OPENXML(@hdoc, '/Root/XmlData', 2)
|
49
|
WITH
|
50
|
(
|
51
|
OUT_ID VARCHAR(15),
|
52
|
MAST_BAL_ID VARCHAR(15),
|
53
|
--FR_BRN_ID varchar(15) ,
|
54
|
--FR_DEPT_ID varchar(15) ,
|
55
|
--FR_PRICE_ID varchar(15) ,
|
56
|
--TO_BRN_ID varchar(15) ,
|
57
|
--TO_DEPT_ID varchar(15) ,
|
58
|
CUST_NAME NVARCHAR(200),
|
59
|
QTY DECIMAL(18,2),
|
60
|
QTY_OLD DECIMAL(18,2),
|
61
|
--QTY_OLD int ,
|
62
|
PRICE NUMERIC(18, 0),
|
63
|
TOTAL_AMT NUMERIC(18, 2),
|
64
|
NOTES NVARCHAR(1000),
|
65
|
TO_BRN_ID varchar(15),
|
66
|
TO_DEPT_ID varchar(15),EVENT_NAME NVARCHAR(1000), IS_BCT VARCHAR(1), COST_ACC VARCHAR(50)
|
67
|
);
|
68
|
OPEN XmlData;
|
69
|
BEGIN TRANSACTION;
|
70
|
--LUCTV: NGAY 07 -06 2019. BO SUNG RANG BUOC NEU DANG TRA VE CHO HANH CHINH THI KHONG DUOC PHEP CAP NHAT THONG TIN
|
71
|
IF( (SELECT AUTH_STATUS FROM MW_OUT WHERE OUT_ID = @p_OUT_ID)<>'A')
|
72
|
BEGIN
|
73
|
ROLLBACK TRANSACTION
|
74
|
SELECT '-1' as Result,'' OUT_ID, N'Thông tin xuất vật liệu đang bị trả về bộ phận hành chính. Vui lòng chờ bộ phận hành chính kiểm duyệt' ErrorDesc
|
75
|
RETURN '-1'
|
76
|
END
|
77
|
-- END LUCTV: NGAY 07 -06 2019.
|
78
|
UPDATE [dbo].[MW_OUT]
|
79
|
SET
|
80
|
--[TRN_Date] = CONVERT(VARCHAR(20), @p_TRN_Date, 103),
|
81
|
--[TRN_TIME] = @p_TRN_TIME,
|
82
|
[QTY] = @p_QTY,
|
83
|
--[QTY_OLD] = @p_QTY,
|
84
|
[PRICE] = ROUND(@p_PRICE,0),
|
85
|
[TOTAL_AMT] = @p_TOTAL_AMT,
|
86
|
[NOTES] = @p_NOTES,
|
87
|
KT_AUTH_STATUS ='U',
|
88
|
KT_CREATE_DT = CONVERT(DATETIME, @p_KT_CREATE_DT, 103),
|
89
|
KT_MAKER_ID =@p_KT_MAKER_ID,
|
90
|
CORE_NOTE = @p_CORE_NOTE,
|
91
|
DEPT_ID = @p_DEPT_ID
|
92
|
WHERE [OUT_ID] = @p_OUT_ID;
|
93
|
IF @@Error <> 0
|
94
|
GOTO ABORT;
|
95
|
--Insert XmlData
|
96
|
DELETE FROM MW_OUT_DT
|
97
|
WHERE OUT_ID = @p_OUT_ID;
|
98
|
FETCH NEXT FROM XmlData
|
99
|
INTO @OUT_ID, @MAST_BAL_ID, @CUST_NAME, @QTY, @QTY_OLD, @PRICE, @TOTAL_AMT, @NOTES, @TO_BRN_ID, @TO_DEPT_ID,@EVENT_NAME,@IS_BCT,@COST_ACC
|
100
|
DECLARE @INDEX INT =0
|
101
|
DECLARE @PRICE_CODE VARCHAR(30)
|
102
|
WHILE @@FETCH_STATUS = 0
|
103
|
BEGIN
|
104
|
DECLARE @p_OUT_DT_ID VARCHAR(15);
|
105
|
DECLARE @l_COST_ACC VARCHAR(50);
|
106
|
EXEC SYS_CodeMasters_Gen 'MW_OUT_DT', @p_OUT_DT_ID OUT;
|
107
|
IF @p_OUT_DT_ID = ''
|
108
|
OR @p_OUT_DT_ID IS NULL
|
109
|
GOTO ABORT;
|
110
|
--INSERT INTO [dbo].[OUT_DT] ([OUT_DT_ID], [OUT_ID], [MAST_BAL_ID], [FR_BRN_ID], [FR_DEPT_ID], [FR_PRICE_ID], [TO_BRN_ID], [TO_DEPT_ID], [QTY], [QTY_OLD], [PRICE], [TOTAL_AMT], [NOTES])
|
111
|
--VALUES( @p_OUT_DT_ID, @p_OUT_ID, @MAST_BAL_ID, @FR_BRN_ID, @FR_DEPT_ID, @FR_PRICE_ID, @TO_BRN_ID, @TO_DEPT_ID, @QTY, @QTY_OLD, @PRICE, @TOTAL_AMT, @NOTES)
|
112
|
-- 07 -03 -2019 KIEM TRA LAI SO LUONG (VI SE CO TRUONG HOP VUA DIEU CHUYEN, VUA XUAT SD, VƯA THU HOI, VUA THANH LY TREN 1 MAST_BAL_ID)
|
113
|
SET @INDEX = @INDEX +1
|
114
|
SET @PRICE_CODE =(SELECT PRICE_CODE FROM MW_MAST_PRICE WHERE PRICE_ID =(SELECT PRICE_ID FROM MW_MAST_BAL WHERE MAST_BAL_ID=@MAST_BAL_ID))
|
115
|
IF(@QTY > (SELECT QTY_BALANCE FROM MW_MAST_BAL WHERE MAST_BAL_ID=@MAST_BAL_ID))
|
116
|
BEGIN
|
117
|
CLOSE XmlData
|
118
|
DEALLOCATE XmlData
|
119
|
ROLLBACK TRANSACTION
|
120
|
SELECT '-1' as Result, @OUT_ID OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Số lượng xuất sử dụng vượt quá số lượng tồn' ErrorDesc
|
121
|
RETURN '-1'
|
122
|
END
|
123
|
|
124
|
SET @l_COST_ACC = (SELECT TOP 1 COST_ACC = CASE WHEN MT.GROUP_ID = 'MWG000000016073' and LEN(@COST_ACC) > 0 then @COST_ACC
|
125
|
WHEN @COST_ACC = null then MT.EXP_ACCTNO
|
126
|
WHEN @COST_ACC = '' then MT.EXP_ACCTNO
|
127
|
ELSE MT.EXP_ACCTNO
|
128
|
END
|
129
|
FROM dbo.MW_MAST_BAL A
|
130
|
LEFT JOIN MW_MATERIAL MT ON A.MATERIAL_ID = MT.MATERIAL_ID
|
131
|
WHERE A.MAST_BAL_ID = @MAST_BAL_ID)
|
132
|
|
133
|
IF(@l_COST_ACC <> @COST_ACC AND @p_OUT_ID <> 'MWOUT0000254345')
|
134
|
BEGIN
|
135
|
ROLLBACK TRANSACTION
|
136
|
CLOSE XmlData;
|
137
|
DEALLOCATE XmlData;
|
138
|
SELECT '-1' as Result, '' OUT_ID, N'Danh sách đơn vị/ khách hàng nhận, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tài khoản chi phí sai quy định. Bạn chỉ được điều chỉnh tài khoản chi phí của vật liệu thuộc nhóm Vật Liệu Thẻ Dùng Chung.' ErrorDesc
|
139
|
RETURN '-1'
|
140
|
END
|
141
|
|
142
|
IF(@COST_ACC IS NULL OR @COST_ACC = '')
|
143
|
BEGIN
|
144
|
ROLLBACK TRANSACTION
|
145
|
CLOSE XmlData;
|
146
|
DEALLOCATE XmlData;
|
147
|
SELECT '-1' as Result, '' OUT_ID, N'Danh sách đơn vị/ khách hàng nhận, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tài khoản chi phí không được để trống' ErrorDesc
|
148
|
RETURN '-1'
|
149
|
END
|
150
|
|
151
|
----LUCTV: 03-1-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC XUAT SU DUNG THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
152
|
--IF(EXISTS(SELECT * FROM MW_OUT_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND OUT_ID<>@p_OUT_ID AND OUT_ID IN (SELECT OUT_ID FROM MW_OUT WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
153
|
--BEGIN
|
154
|
-- CLOSE XmlData;
|
155
|
-- DEALLOCATE XmlData;
|
156
|
-- ROLLBACK TRANSACTION;
|
157
|
-- SELECT '-1' AS Result, '' OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được xuất sử dụng. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
158
|
-- RETURN '-1';
|
159
|
--END
|
160
|
----LUCTV: 08-03-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC DIEU CHUYEN THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
161
|
--IF(EXISTS(SELECT * FROM MW_TRANSFER_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND TRANSFER_ID IN (SELECT TRANSFER_ID FROM MW_TRANSFER WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
162
|
--BEGIN
|
163
|
-- CLOSE XmlData;
|
164
|
-- DEALLOCATE XmlData;
|
165
|
-- ROLLBACK TRANSACTION;
|
166
|
-- SELECT '-1' AS Result, '' OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được điều chuyển. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
167
|
-- RETURN '-1';
|
168
|
--END
|
169
|
----LUCTV: 08-03-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC THANH LY THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
170
|
--IF(EXISTS(SELECT * FROM MW_LIQ_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND LIQ_ID IN (SELECT LIQ_ID FROM MW_LIQ_MASTER WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
171
|
--BEGIN
|
172
|
-- CLOSE XmlData;
|
173
|
-- DEALLOCATE XmlData;
|
174
|
-- ROLLBACK TRANSACTION;
|
175
|
-- SELECT '-1' AS Result, '' OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được thanh lý. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
176
|
-- RETURN '-1';
|
177
|
--END
|
178
|
INSERT INTO [dbo].[MW_OUT_DT]
|
179
|
(
|
180
|
[OUT_DT_ID],
|
181
|
[OUT_ID],
|
182
|
[MAST_BAL_ID],
|
183
|
[CUST_NAME],
|
184
|
[QTY],
|
185
|
[QTY_OLD],
|
186
|
[PRICE],
|
187
|
[TOTAL_AMT],
|
188
|
[NOTES],
|
189
|
[TO_BRN_ID],
|
190
|
[TO_DEPT_ID],[EVENT_NAME],[IS_BCT], [COST_ACC]
|
191
|
)
|
192
|
SELECT @p_OUT_DT_ID,
|
193
|
@OUT_ID,
|
194
|
@MAST_BAL_ID,
|
195
|
@CUST_NAME,
|
196
|
@QTY,
|
197
|
@QTY_OLD,
|
198
|
@PRICE,
|
199
|
@TOTAL_AMT,
|
200
|
@NOTES,
|
201
|
@TO_BRN_ID,
|
202
|
@TO_DEPT_ID,@EVENT_NAME,@IS_BCT, @COST_ACC
|
203
|
IF @@Error <> 0
|
204
|
GOTO ABORT;
|
205
|
FETCH NEXT FROM XmlData
|
206
|
INTO @OUT_ID, @MAST_BAL_ID, @CUST_NAME, @QTY, @QTY_OLD, @PRICE, @TOTAL_AMT, @NOTES, @TO_BRN_ID, @TO_DEPT_ID,@EVENT_NAME,@IS_BCT,@COST_ACC
|
207
|
END;
|
208
|
CLOSE XmlData;
|
209
|
DEALLOCATE XmlData;
|
210
|
|
211
|
-- doanptt 07/06/2022: XÓA CÁC PROCESS UPDATE CŨ
|
212
|
DELETE dbo.PL_PROCESS WHERE REQ_ID = @OUT_ID AND PROCESS_ID = 'UPDATE_KT'
|
213
|
INSERT INTO dbo.PL_PROCESS
|
214
|
(
|
215
|
REQ_ID,
|
216
|
PROCESS_ID,
|
217
|
CHECKER_ID,
|
218
|
APPROVE_DT,
|
219
|
PROCESS_DESC,NOTES
|
220
|
)
|
221
|
VALUES
|
222
|
( @OUT_ID, -- REQ_ID - varchar(15)
|
223
|
'UPDATE_KT', -- PROCESS_ID - varchar(10)
|
224
|
@p_KT_MAKER_ID, -- CHECKER_ID - varchar(15)
|
225
|
GETDATE(), -- APPROVE_DT - datetime
|
226
|
N'Cập nhật phiếu xuất vật kế toán thành công' ,
|
227
|
N'Cập nhật phiếu xuất vật liệu kế toán' -- PROCESS_DESC - nvarchar(1000)
|
228
|
)
|
229
|
|
230
|
COMMIT TRANSACTION;
|
231
|
SELECT '0' AS Result,
|
232
|
@p_OUT_ID OUT_ID,
|
233
|
'' ErrorDesc;
|
234
|
RETURN '0';
|
235
|
ABORT:
|
236
|
BEGIN
|
237
|
CLOSE XmlData;
|
238
|
DEALLOCATE XmlData;
|
239
|
ROLLBACK TRANSACTION;
|
240
|
SELECT '-1' AS Result,
|
241
|
'' OUT_ID,
|
242
|
'' ErrorDesc;
|
243
|
RETURN '-1';
|
244
|
END;
|
245
|
|
246
|
GO
|
247
|
|
248
|
|
249
|
ALTER PROCEDURE [dbo].[MW_OUT_Upd]
|
250
|
@p_OUT_ID VARCHAR(15) = NULL,
|
251
|
@p_TRN_Date VARCHAR(25) = NULL,
|
252
|
@p_TRN_TIME VARCHAR(50) = NULL,
|
253
|
@p_BRN_ID VARCHAR(15) = NULL,
|
254
|
@p_DEPT_ID VARCHAR(15) = NULL,
|
255
|
@p_QTY DECIMAL(18,2) = NULL,
|
256
|
@p_PRICE NUMERIC(18, 0) = NULL,
|
257
|
@p_TOTAL_AMT NUMERIC(18, 2) = NULL,
|
258
|
@p_NOTES NVARCHAR(1000),
|
259
|
@p_OUT_DESC NVARCHAR(500) = NULL,
|
260
|
@p_AUTH_STATUS VARCHAR(1) = NULL,
|
261
|
@p_MAKER_ID VARCHAR(15) = NULL,
|
262
|
@p_CREATE_DT VARCHAR(25) = NULL,
|
263
|
@p_CHECKER_ID VARCHAR(15) = NULL,
|
264
|
@p_APPROVE_DT VARCHAR(25) = NULL,
|
265
|
@p_KT_AUTH_STATUS VARCHAR(1) = NULL,
|
266
|
@p_KT_MAKER_ID VARCHAR(15) = NULL,
|
267
|
@p_KT_CREATE_DT VARCHAR(25) = NULL,
|
268
|
@p_KT_CHECKER_ID VARCHAR(15) = NULL,
|
269
|
@p_KT_APPROVE_DT VARCHAR(25) = NULL,
|
270
|
@p_RECORD_STATUS VARCHAR(1) = NULL,
|
271
|
@p_XmlData XML = NULL,
|
272
|
@p_CORE_NOTE nvarchar(500) = NULL,
|
273
|
@p_WARE_HOUSE VARCHAR(15) = NULL
|
274
|
AS
|
275
|
DECLARE
|
276
|
--DVSD
|
277
|
@OUT_ID VARCHAR(15) = NULL,
|
278
|
@MAST_BAL_ID VARCHAR(15) = NULL,
|
279
|
@CUST_NAME NVARCHAR(200) = NULL,
|
280
|
@QTY DECIMAL(18,2) = NULL,
|
281
|
@QTY_OLD DECIMAL(18,2) = NULL,
|
282
|
@PRICE NUMERIC(18, 0) = NULL,
|
283
|
@TOTAL_AMT NUMERIC(18, 2) = NULL,
|
284
|
@NOTES NVARCHAR(1000) = NULL,
|
285
|
@TO_BRN_ID varchar(15) = NULL,
|
286
|
@TO_DEPT_ID varchar(15) = NULL,
|
287
|
@EVENT_NAME NVARCHAR(1000) = NULL, --LUCTV BO SUNG 15-02-2019 TEN SU KIEN TREN LUOI DS XUAT VAT LIEU
|
288
|
@IS_BCT VARCHAR(1) = 'N',-- LUCTV BO SUNG 05-04-2019 TEN SU KIEN TREN LUOI DS XUAT VAT LIEU
|
289
|
@COST_ACC VARCHAR(50) = NULL
|
290
|
DECLARE @INDEX INT =0
|
291
|
DECLARE @PRICE_CODE VARCHAR(30)
|
292
|
DECLARE @hdoc INT;
|
293
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
|
294
|
DECLARE XmlData CURSOR FOR
|
295
|
SELECT *
|
296
|
FROM
|
297
|
OPENXML(@hdoc, '/Root/XmlData', 2)
|
298
|
WITH
|
299
|
(
|
300
|
OUT_ID VARCHAR(15),
|
301
|
MAST_BAL_ID VARCHAR(15),
|
302
|
--FR_BRN_ID varchar(15) ,
|
303
|
--FR_DEPT_ID varchar(15) ,
|
304
|
--FR_PRICE_ID varchar(15) ,
|
305
|
--TO_BRN_ID varchar(15) ,
|
306
|
--TO_DEPT_ID varchar(15) ,
|
307
|
CUST_NAME NVARCHAR(200),
|
308
|
QTY DECIMAL(18,2),
|
309
|
QTY_OLD DECIMAL(18,2) ,
|
310
|
PRICE NUMERIC(18, 0),
|
311
|
TOTAL_AMT NUMERIC(18, 2),
|
312
|
NOTES NVARCHAR(1000),
|
313
|
TO_BRN_ID varchar(15),
|
314
|
TO_DEPT_ID varchar(15),
|
315
|
EVENT_NAME NVARCHAR(1000),
|
316
|
IS_BCT VARCHAR(1),-- LUCTV BO SUNG 05-04-2019 TEN SU KIEN TREN LUOI DS XUAT VAT LIEU
|
317
|
COST_ACC VARCHAR(50)
|
318
|
);
|
319
|
OPEN XmlData;
|
320
|
BEGIN TRANSACTION;
|
321
|
UPDATE [dbo].[MW_OUT]
|
322
|
SET
|
323
|
[QTY] = @p_QTY,
|
324
|
AUTH_STATUS='U',
|
325
|
[PRICE] = @p_PRICE,
|
326
|
[TOTAL_AMT] = @p_TOTAL_AMT,
|
327
|
[NOTES] = @p_NOTES,
|
328
|
MAKER_ID=@p_MAKER_ID,
|
329
|
[CORE_NOTE] = @p_CORE_NOTE,
|
330
|
WARE_HOUSE= @p_WARE_HOUSE,DEPT_ID = @p_DEPT_ID
|
331
|
WHERE [OUT_ID] = @p_OUT_ID;
|
332
|
IF @@Error <> 0
|
333
|
GOTO ABORT;
|
334
|
--Insert XmlData
|
335
|
DECLARE @l_COST_ACC VARCHAR(50);
|
336
|
DELETE FROM MW_OUT_DT
|
337
|
WHERE OUT_ID = @p_OUT_ID;
|
338
|
FETCH NEXT FROM XmlData
|
339
|
INTO @OUT_ID, @MAST_BAL_ID, @CUST_NAME, @QTY, @QTY_OLD,@PRICE,@TOTAL_AMT, @NOTES,@TO_BRN_ID, @TO_DEPT_ID, @EVENT_NAME,@IS_BCT, @COST_ACC
|
340
|
WHILE @@FETCH_STATUS = 0
|
341
|
BEGIN
|
342
|
SET @INDEX = @INDEX +1
|
343
|
SET @PRICE_CODE =(SELECT PRICE_CODE FROM MW_MAST_PRICE WHERE PRICE_ID =(SELECT PRICE_ID FROM MW_MAST_BAL WHERE MAST_BAL_ID=@MAST_BAL_ID))
|
344
|
|
345
|
SET @l_COST_ACC = (SELECT TOP 1 COST_ACC = CASE WHEN MT.GROUP_ID = 'MWG000000016073' and LEN(@COST_ACC) > 0 then @COST_ACC
|
346
|
WHEN @COST_ACC = null then MT.EXP_ACCTNO
|
347
|
WHEN @COST_ACC = '' then MT.EXP_ACCTNO
|
348
|
ELSE MT.EXP_ACCTNO
|
349
|
END
|
350
|
FROM dbo.MW_MAST_BAL A
|
351
|
LEFT JOIN MW_MATERIAL MT ON A.MATERIAL_ID = MT.MATERIAL_ID
|
352
|
WHERE A.MAST_BAL_ID = @MAST_BAL_ID)
|
353
|
|
354
|
IF(@COST_ACC IS NULL OR @COST_ACC = '')
|
355
|
BEGIN
|
356
|
ROLLBACK TRANSACTION
|
357
|
CLOSE XmlData;
|
358
|
DEALLOCATE XmlData;
|
359
|
SELECT '-1' as Result, '' OUT_ID, N'Danh sách đơn vị/ khách hàng nhận, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tài khoản chi phí không được để trống' ErrorDesc
|
360
|
RETURN '-1'
|
361
|
END
|
362
|
IF(@l_COST_ACC <> @COST_ACC AND @p_OUT_ID <> 'MWOUT0000254345')
|
363
|
BEGIN
|
364
|
ROLLBACK TRANSACTION
|
365
|
CLOSE XmlData;
|
366
|
DEALLOCATE XmlData;
|
367
|
SELECT '-1' as Result, '' OUT_ID, N'Danh sách đơn vị/ khách hàng nhận, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tài khoản chi phí sai quy định. Bạn chỉ được điều chỉnh tài khoản chi phí của vật liệu thuộc nhóm Vật Liệu Thẻ Dùng Chung.' ErrorDesc
|
368
|
RETURN '-1'
|
369
|
END
|
370
|
--LUCTV: 03-1-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC XUAT SU DUNG THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
371
|
--IF(EXISTS(SELECT * FROM MW_OUT_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND OUT_ID<>@p_OUT_ID AND OUT_ID IN (SELECT OUT_ID FROM MW_OUT WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
372
|
--BEGIN
|
373
|
-- CLOSE XmlData;
|
374
|
-- DEALLOCATE XmlData;
|
375
|
-- ROLLBACK TRANSACTION;
|
376
|
-- SELECT '-1' AS Result, '' OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được xuất sử dụng. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
377
|
-- RETURN '-1';
|
378
|
--END
|
379
|
----LUCTV: 08-03-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC DIEU CHUYEN THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
380
|
--IF(EXISTS(SELECT * FROM MW_TRANSFER_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND TRANSFER_ID IN (SELECT TRANSFER_ID FROM MW_TRANSFER WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
381
|
--BEGIN
|
382
|
-- CLOSE XmlData;
|
383
|
-- DEALLOCATE XmlData;
|
384
|
-- ROLLBACK TRANSACTION;
|
385
|
-- SELECT '-1' AS Result, '' OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được điều chuyển. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
386
|
-- RETURN '-1';
|
387
|
--END
|
388
|
----LUCTV: 08-03-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC THANH LY THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
389
|
--IF(EXISTS(SELECT * FROM MW_LIQ_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND LIQ_ID IN (SELECT LIQ_ID FROM MW_LIQ_MASTER WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
390
|
--BEGIN
|
391
|
-- CLOSE XmlData;
|
392
|
-- DEALLOCATE XmlData;
|
393
|
-- ROLLBACK TRANSACTION;
|
394
|
-- SELECT '-1' AS Result, '' OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được thanh lý. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
395
|
-- RETURN '-1';
|
396
|
--END
|
397
|
-- 07 -03 -2019 KIEM TRA LAI SO LUONG (VI SE CO TRUONG HOP VUA DIEU CHUYEN, VUA XUAT SD, VƯA THU HOI, VUA THANH LY TREN 1 MAST_BAL_ID)
|
398
|
|
399
|
-- 22/04/2022 doanptt
|
400
|
IF(@QTY > @QTY_OLD)
|
401
|
BEGIN
|
402
|
CLOSE XmlData
|
403
|
DEALLOCATE XmlData
|
404
|
ROLLBACK TRANSACTION
|
405
|
SELECT '-1' as Result, @OUT_ID OUT_ID, N'Danh sách đơn vị, khách hàng nhận, dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Số lượng xuất sử dụng vượt quá số lượng tồn' ErrorDesc
|
406
|
RETURN '-1'
|
407
|
END
|
408
|
|
409
|
DECLARE @p_OUT_DT_ID VARCHAR(15);
|
410
|
EXEC SYS_CodeMasters_Gen 'MW_OUT_DT', @p_OUT_DT_ID OUT;
|
411
|
IF @p_OUT_DT_ID = ''
|
412
|
OR @p_OUT_DT_ID IS NULL
|
413
|
GOTO ABORT;
|
414
|
INSERT INTO [dbo].[MW_OUT_DT]
|
415
|
(
|
416
|
[OUT_DT_ID],
|
417
|
[OUT_ID],
|
418
|
[MAST_BAL_ID],
|
419
|
[CUST_NAME],
|
420
|
[QTY],
|
421
|
[QTY_OLD],
|
422
|
[PRICE],
|
423
|
[TOTAL_AMT],
|
424
|
[NOTES],
|
425
|
[TO_BRN_ID],
|
426
|
[TO_DEPT_ID],[EVENT_NAME],[IS_BCT],[COST_ACC]
|
427
|
)
|
428
|
SELECT @p_OUT_DT_ID,
|
429
|
@p_OUT_ID,
|
430
|
@MAST_BAL_ID,
|
431
|
@CUST_NAME,
|
432
|
@QTY,
|
433
|
@QTY_OLD,
|
434
|
@PRICE,
|
435
|
@QTY*@PRICE,
|
436
|
@NOTES,
|
437
|
@TO_BRN_ID,
|
438
|
@TO_DEPT_ID,@EVENT_NAME,@IS_BCT,@COST_ACC
|
439
|
|
440
|
IF @@Error <> 0
|
441
|
GOTO ABORT;
|
442
|
FETCH NEXT FROM XmlData
|
443
|
INTO @OUT_ID,
|
444
|
@MAST_BAL_ID,
|
445
|
@CUST_NAME,
|
446
|
@QTY,
|
447
|
@QTY_OLD,
|
448
|
@PRICE,
|
449
|
@TOTAL_AMT,
|
450
|
@NOTES,
|
451
|
@TO_BRN_ID,
|
452
|
@TO_DEPT_ID,@EVENT_NAME,@IS_BCT,@COST_ACC
|
453
|
END;
|
454
|
CLOSE XmlData;
|
455
|
DEALLOCATE XmlData;
|
456
|
|
457
|
-- doanptt 07/06/2022: XÓA CÁC PROCESS UPDATE CŨ
|
458
|
DELETE dbo.PL_PROCESS WHERE REQ_ID = @OUT_ID AND PROCESS_ID = 'UPDATE_HC'
|
459
|
INSERT INTO dbo.PL_PROCESS
|
460
|
(
|
461
|
REQ_ID,
|
462
|
PROCESS_ID,
|
463
|
CHECKER_ID,
|
464
|
APPROVE_DT,
|
465
|
PROCESS_DESC,NOTES
|
466
|
)
|
467
|
VALUES
|
468
|
( @OUT_ID, -- REQ_ID - varchar(15)
|
469
|
'UPDATE_HC', -- PROCESS_ID - varchar(10)
|
470
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
471
|
GETDATE(), -- APPROVE_DT - datetime
|
472
|
N'Cập nhật phiếu xuất vật liệu thành công' ,
|
473
|
N'Cập nhật phiếu xuất vật liệu' -- PROCESS_DESC - nvarchar(1000)
|
474
|
)
|
475
|
|
476
|
---
|
477
|
UPDATE MW_OUT
|
478
|
SET TOTAL_AMT = (SELECT SUM(TOTAL_AMT) FROM MW_OUT_DT WHERE OUT_ID =@p_OUT_ID)
|
479
|
WHERE OUT_ID =@p_OUT_ID
|
480
|
COMMIT TRANSACTION;
|
481
|
SELECT '0' AS Result,@p_OUT_ID OUT_ID,'' ErrorDesc;
|
482
|
RETURN '0';
|
483
|
ABORT:
|
484
|
BEGIN
|
485
|
CLOSE XmlData;
|
486
|
DEALLOCATE XmlData;
|
487
|
ROLLBACK TRANSACTION;
|
488
|
SELECT '-1' AS Result,'' OUT_ID,'' ErrorDesc;
|
489
|
RETURN '-1';
|
490
|
END;
|