Project

General

Profile

MW_OUT_UPD.txt

Luc Tran Van, 04/24/2023 09:21 AM

 
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;