Project

General

Profile

DCNB_INS_UPD.txt

Luc Tran Van, 11/17/2023 09:18 AM

 
1

    
2
ALTER PROCEDURE dbo.MW_TRANSFER_PRIVATE_Ins
3
    @p_TRANFER_PRIVATE_CODE VARCHAR(15) = NULL,
4
    @p_EMP_NAME NVARCHAR(200) = NULL,
5
    @p_FROM_DATE VARCHAR(20) = NULL,
6
    @p_BRANCH_NAME NVARCHAR(200) = NULL,
7
    @p_BRANCH_ID VARCHAR(15) = NULL,
8
    @p_DEP_ID VARCHAR(15) = NULL,
9
    @p_NOTES  NVARCHAR(1000) = NULL,
10
    @p_WARE_ID VARCHAR(15) = NULL,
11
    @p_MAKER_ID VARCHAR(100) = NULL,
12
    @p_CHECKER_ID VARCHAR(100) = NULL,
13
    @p_AUTH_STATUS VARCHAR(1) = NULL,
14
    @p_APPROVE_DT VARCHAR(20) = NULL,
15
    @p_RECORD_STATUS VARCHAR(1) = NULL,
16
    @p_CREATE_DT varchar(20) = NULL,
17
    @p_XmlData XML = NULL
18
AS
19

    
20
IF (EXISTS ( SELECT * FROM MW_TRANFER_PRIVATE cd WHERE cd.TRANFER_PRIVATE_CODE = @p_TRANFER_PRIVATE_CODE ))
21
	BEGIN
22
		SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, N'Mã điều chuyển kho nội đã tồn tại' ErrorDesc
23
		RETURN '-1'
24
	END
25

    
26

    
27

    
28
DECLARE 
29
@TRANFER_PRIVATE_ID VARchar(15),
30
@MATERIAL_ID	VARCHAR(15),
31
@MATERIAL_CODE	VARCHAR(15),
32
@MATERIAL_NAME NVARCHAR(200),
33
@STOCK_QUANTITY DECIMAL(18,2),
34
@DEFAULT_WARE_ID VARCHAR(15),
35
@DEFAULT_WARE_NAME NVARCHAR(200),
36
@DEFAULT_PROMOTION_ID VARCHAR(15),
37
@DEFAULT_PROMOTION_NAME NVARCHAR(200),
38
@TRANFER_QUANTITY DECIMAL(18,2),
39
@REMAINING_QUANTITY DECIMAL(18,2),
40
@WARE_TRANFER_ID VARCHAR(15),
41
@WARE_TRANFER_NAME NVARCHAR(200),
42
@PROMOTION_TRANFER_ID VARCHAR(15),
43
@PROMOTION_TRANFER_NAME NVARCHAR(200),
44
@MAST_BAL_ID VARCHAR(15)
45

    
46
Declare @hdoc INT
47
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
48

    
49
DECLARE XmlData CURSOR FOR
50
SELECT *
51
FROM OPENXML(@hdoc,'/Root/XmlData',2)
52
WITH 
53
(
54
TRANFER_PRIVATE_ID VARCHAR(15),
55
MATERIAL_ID	VARCHAR(15),
56
MATERIAL_CODE	VARCHAR(15),
57
MATERIAL_NAME_NHOM NVARCHAR(200),
58
STOCK_QUANTITY DECIMAL(18,2),
59
DEFAULT_WARE_ID VARCHAR(15),
60
DEFAULT_WARE_NAME NVARCHAR(200),
61
DEFAULT_PROMOTION_ID VARCHAR(15),
62
DEFAULT_PROMOTION_NAME NVARCHAR(200),
63
TRANFER_QUANTITY DECIMAL(18,2),
64
REMAINING_QUANTITY DECIMAL(18,2),
65
WARE_TRANFER_ID VARCHAR(15),
66
WARE_TRANFER_NAME NVARCHAR(200),
67
PROMOTION_TRANFER_ID VARCHAR(15),
68
PROMOTION_TRANFER_NAME NVARCHAR(200),
69
MAST_BAL_ID VARCHAR(15)
70

    
71
)
72
OPEN XmlData
73

    
74
BEGIN TRANSACTION
75
DECLARE @l_TRANFER_PRIVATE_ID VARCHAR(15),@COUNT INT;
76
 SET @COUNT = 0;
77

    
78
		EXEC SYS_CodeMasters_Gen 'MW_TRANFER_PRIVATE', @l_TRANFER_PRIVATE_ID out
79
		IF @l_TRANFER_PRIVATE_ID='' OR @l_TRANFER_PRIVATE_ID IS NULL GOTO ABORT
80
		INSERT INTO MW_TRANFER_PRIVATE(TRANFER_PRIVATE_ID,TRANFER_PRIVATE_CODE,WARE_ID,PROCESS_ID,EMP_NAME,FROM_DATE,BRANCH_NAME,BRANCH_ID,NOTES,[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],DEP_ID)
81
		VALUES(@l_TRANFER_PRIVATE_ID,@l_TRANFER_PRIVATE_ID,@p_WARE_ID,'ADDNEW',@p_EMP_NAME,CONVERT(DATETIME, @p_FROM_DATE, 103),@p_BRANCH_NAME,@p_BRANCH_ID,@p_NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,'E' ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_DEP_ID)
82
		
83
    FETCH NEXT FROM XmlData INTO 
84
                                  @TRANFER_PRIVATE_ID,
85
                                  @MATERIAL_ID	,
86
                                  @MATERIAL_CODE,
87
                                  @MATERIAL_NAME,
88
                                  @STOCK_QUANTITY ,
89
                                  @DEFAULT_WARE_ID ,
90
                                  @DEFAULT_WARE_NAME ,
91
                                  @DEFAULT_PROMOTION_ID ,
92
                                  @DEFAULT_PROMOTION_NAME ,
93
                                  @TRANFER_QUANTITY ,
94
                                  @REMAINING_QUANTITY,
95
                                  @WARE_TRANFER_ID, 
96
                                  @WARE_TRANFER_NAME ,
97
                                  @PROMOTION_TRANFER_ID ,
98
                                  @PROMOTION_TRANFER_NAME,
99
                                  @MAST_BAL_ID
100
                                  
101
    WHILE @@FETCH_STATUS = 0
102
    BEGIN
103
        
104

    
105

    
106
      DECLARE @l_TRANFER_PRIVATE_DT_ID VARCHAR(15)
107
        SET @COUNT = @COUNT + 1;
108

    
109
--        IF (SELECT TRIM(CW.ACC_ACCOUNTING) FROM CM_WARE CW WHERE CW.WARE_ID = @p_WARE_ID) <> (SELECT TRIM(CW2.ACC_ACCOUNTING) FROM CM_WARE CW2 WHERE CW2.WARE_ID = @WARE_TRANFER_ID)
110
--        BEGIN
111
--          CLOSE XmlData;
112
--          DEALLOCATE XmlData;
113
--          ROLLBACK TRANSACTION;
114
--          SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, (N'DANH SÁCH ĐƠN VỊ NHẬN ĐIỀU CHUYỂN ở dòng' + ' ' + convert(nvarchar(255), @COUNT) + ': ' + N'Không thể điều chuyển nội bộ khác kho') ErrorDesc
115
--          RETURN '-1'
116
--        END
117

    
118
          IF ((@TRANFER_QUANTITY > @STOCK_QUANTITY))
119
        	BEGIN
120
        		GOTO ABORT2
121
        	END
122
          IF(@TRANFER_QUANTITY = 0 OR @TRANFER_QUANTITY IS NULL)
123
          BEGIN
124
            GOTO ABORT3
125
          END
126
       
127
      SET @p_AUTH_STATUS = 'E'
128

    
129
  		EXEC SYS_CodeMasters_Gen 'MW_TRANFER_PRIVATE_DT', @l_TRANFER_PRIVATE_DT_ID out
130
  		IF @l_TRANFER_PRIVATE_DT_ID='' OR @l_TRANFER_PRIVATE_DT_ID IS NULL GOTO ABORT
131

    
132
      INSERT INTO MW_TRANFER_PRIVATE_DT (TRANFER_PRIVATE_DT_ID,TRANFER_PRIVATE_ID,MATERIAL_ID,MAST_BAL_ID,MATERIAL_CODE,MATERIAL_NAME,STOCK_QUANTITY,DEFAULT_WARE_ID, 
133
      DEFAULT_WARE_NAME,DEFAULT_PROMOTION_ID,DEFAULT_PROMOTION_NAME,TRANFER_QUANTITY,REMAINING_QUANTITY,WARE_TRANFER_ID,WARE_TRANFER_NAME,PROMOTION_TRANFER_NAME,PROMOTION_TRANFER_ID,
134
      [RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
135
      VALUES (@l_TRANFER_PRIVATE_DT_ID,@l_TRANFER_PRIVATE_ID,@MATERIAL_ID,@MAST_BAL_ID,@MATERIAL_CODE,@MATERIAL_NAME,@STOCK_QUANTITY
136
      ,@DEFAULT_WARE_ID,@DEFAULT_WARE_NAME,@DEFAULT_PROMOTION_ID,@DEFAULT_PROMOTION_NAME, @TRANFER_QUANTITY,@REMAINING_QUANTITY, @WARE_TRANFER_ID,@WARE_TRANFER_NAME,@PROMOTION_TRANFER_NAME,@PROMOTION_TRANFER_ID
137
      ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,'E' ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103));
138
      
139
       
140

    
141
    FETCH NEXT FROM XmlData INTO 
142
                                  @TRANFER_PRIVATE_ID,
143
                                  @MATERIAL_ID	,
144
                                  @MATERIAL_CODE,
145
                                  @MATERIAL_NAME,
146
                                  @STOCK_QUANTITY ,
147
                                  @DEFAULT_WARE_ID ,
148
                                  @DEFAULT_WARE_NAME ,
149
                                  @DEFAULT_PROMOTION_ID ,
150
                                  @DEFAULT_PROMOTION_NAME ,
151
                                  @TRANFER_QUANTITY ,
152
                                  @REMAINING_QUANTITY,
153
                                  @WARE_TRANFER_ID, 
154
                                  @WARE_TRANFER_NAME ,
155
                                  @PROMOTION_TRANFER_ID ,
156
                                  @PROMOTION_TRANFER_NAME,
157
                                  @MAST_BAL_ID 
158
    END
159
    CLOSE XmlData
160
    DEALLOCATE XmlData
161

    
162
-- Tạo lịch sử xử lý
163
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,ROLE_USER,[STATUS],BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, CHECKER_ID,RECEPTION_DT,NOTES)
164
VALUES(@l_TRANFER_PRIVATE_ID,'ADDNEW',N'NHÂN VIÊN TẠO PHIẾU','NVTT','C',@p_BRANCH_ID,'',@p_DEP_ID, @p_MAKER_ID,GETDATE(),N'Nhân viên tạo phiếu yêu cầu')
165

    
166
    IF @@Error <> 0 GOTO ABORT
167
COMMIT TRANSACTION;
168
SELECT '0' AS Result,
169
       @l_TRANFER_PRIVATE_ID TRANSFER_PRIVATE_ID,
170
	    @l_TRANFER_PRIVATE_ID TRANSFER_PRIVATE_CODE,
171
       '' ErrorDesc;
172
RETURN '0';
173
ABORT:
174
BEGIN
175
    CLOSE XmlData;
176
    DEALLOCATE XmlData;
177
    ROLLBACK TRANSACTION;
178
    SELECT '-1' AS Result,
179
           '' TRANSFER_PRIVATE_ID,
180
           '' TRANSFER_RPIVATE_CODE,
181
           '' ErrorDesc;
182
    RETURN '-1';
183
END;
184

    
185
ABORT2:
186
BEGIN
187
      CLOSE XmlData;
188
      DEALLOCATE XmlData;
189
      ROLLBACK TRANSACTION;
190
      SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, (N'Số lượng điều chuyển vượt quá số lượng tồn kho ở dòng' + ' ' + convert(nvarchar(255), @COUNT) + ' ' + N'Trong phần chi tiết lô vật liệu') ErrorDesc
191
      RETURN '-1'
192
END
193
ABORT3:
194
BEGIN
195
      CLOSE XmlData;
196
      DEALLOCATE XmlData;
197
      ROLLBACK TRANSACTION;
198
      SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, (N'Số lượng điều chuyển chưa được nhập hoặc bằng 0 ở dòng' + ' ' + convert(nvarchar(255), @COUNT) + ' ' + N'Trong phần chi tiết lô vật liệu') ErrorDesc
199
      RETURN '-1'
200
END
201
GO
202

    
203
ALTER PROCEDURE dbo.MW_TRANSFER_PRIVATE_Upd
204

    
205
  @p_TRANFER_PRIVATE_ID VARCHAR(15) = NULL,
206
    @p_TRANFER_PRIVATE_CODE VARCHAR(15) = NULL,
207
    @p_EMP_NAME NVARCHAR(200) = NULL,
208
    @p_FROM_DATE VARCHAR(20) = NULL,
209
    @p_BRANCH_NAME NVARCHAR(200) = NULL,
210
    @p_BRANCH_ID VARCHAR(15) = NULL,
211
    @p_DEP_ID VARCHAR(15) = NULL,
212
    @p_NOTES  VARCHAR(1000) = NULL,
213
    @p_WARE_ID VARCHAR(15) = NULL,
214
    @p_MAKER_ID VARCHAR(100) = NULL,
215
    @p_CHECKER_ID VARCHAR(100) = NULL,
216
    @p_AUTH_STATUS VARCHAR(1) = NULL,
217
    @p_APPROVE_DT VARCHAR(20) = NULL,
218
    @p_RECORD_STATUS VARCHAR(1) = NULL,
219
    @p_CREATE_DT varchar(20) = NULL,
220
    @p_XmlData XML = NULL
221
AS
222
/*
223
*/IF (EXISTS ( SELECT * FROM MW_TRANFER_PRIVATE cd WHERE cd.TRANFER_PRIVATE_CODE = @p_TRANFER_PRIVATE_CODE AND cd.TRANFER_PRIVATE_ID <> @p_TRANFER_PRIVATE_ID ))
224
	BEGIN
225
		SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, N'Mã điều chuyển kho không khớp, vui lòng thử lại' ErrorDesc
226
		RETURN '-1'
227
	END
228
IF(@p_FROM_DATE IS NULL)
229
  BEGIN
230
  	SELECT '-1' Result, ''  CARMANAGER_ID, N'Chưa chọn ngày điều chuyển' ErrorDesc
231
		RETURN '-1'
232
  END
233
IF(@p_TRANFER_PRIVATE_CODE IS NULL)
234
  BEGIN
235
  	SELECT '-1' Result, ''  CARMANAGER_ID, N'Chưa nhập mã điều chuyển kho nội bộ' ErrorDesc
236
		RETURN '-1'
237
  END
238

    
239
DECLARE 
240
      @TRANFER_PRIVATE_DT_ID VARCHAR(15),
241
      @TRANFER_PRIVATE_ID VARCHAR(15),
242
  		@MATERIAL_ID	VARCHAR(15),
243
      @MATERIAL_CODE	VARCHAR(15),
244
      @MATERIAL_NAME NVARCHAR(200),
245
      @STOCK_QUANTITY DECIMAL(18,2),
246
      @DEFAULT_WARE_ID VARCHAR(15),
247
      @DEFAULT_WARE_NAME NVARCHAR(200),
248
      @DEFAULT_PROMOTION_ID VARCHAR(15),
249
      @DEFAULT_PROMOTION_NAME NVARCHAR(200),
250
      @TRANFER_QUANTITY DECIMAL(18,2),
251
      @REMAINING_QUANTITY DECIMAL(18,2),
252
      @WARE_TRANFER_ID VARCHAR(15),
253
      @WARE_TRANFER_NAME NVARCHAR(200),
254
      @PROMOTION_TRANFER_ID VARCHAR(15),
255
      @PROMOTION_TRANFER_NAME NVARCHAR(200),
256
      @RECORD_STATUS VARCHAR(1),
257
      @MAST_BAL_ID VARCHAR(15)
258

    
259

    
260

    
261
  Declare @hdoc INT
262
	Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
263

    
264
	DECLARE XmlData CURSOR FOR
265
	SELECT *
266
	FROM OPENXML(@hdoc,'/Root/XmlData',2)
267
	WITH 
268
	(
269
    TRANFER_PRIVATE_DT_ID VARCHAR(15),
270
    TRANFER_PRIVATE_ID VARCHAR(15),
271
		MATERIAL_ID	VARCHAR(15),
272
    MATERIAL_CODE	VARCHAR(15),
273
    MATERIAL_NAME NVARCHAR(200),
274
    STOCK_QUANTITY DECIMAL(18,2),
275
    DEFAULT_WARE_ID VARCHAR(15),
276
    DEFAULT_WARE_NAME NVARCHAR(200),
277
    DEFAULT_PROMOTION_ID VARCHAR(15),
278
    DEFAULT_PROMOTION_NAME NVARCHAR(200),
279
    TRANFER_QUANTITY DECIMAL(18,2),
280
    REMAINING_QUANTITY DECIMAL(18,2),
281
    WARE_TRANFER_ID VARCHAR(15),
282
    WARE_TRANFER_NAME NVARCHAR(200),
283
    PROMOTION_TRANFER_ID VARCHAR(15),
284
    PROMOTION_TRANFER_NAME NVARCHAR(200),
285
    RECORD_STATUS VARCHAR(1),
286
    MAST_BAL_ID VARCHAR(15)
287
    
288
	)
289
	OPEN XmlData
290

    
291
BEGIN TRANSACTION
292
			UPDATE MW_TRANFER_PRIVATE 
293
      SET 
294
          TRANFER_PRIVATE_CODE = @p_TRANFER_PRIVATE_CODE,
295
          EMP_NAME  =@p_EMP_NAME,
296
          FROM_DATE = CONVERT(DATETIME,@p_FROM_DATE,103),
297
          BRANCH_NAME  = @p_BRANCH_NAME,
298
          BRANCH_ID  = @p_BRANCH_ID,
299
          DEP_ID = @p_DEP_ID,
300
          NOTES   = @p_NOTES,
301
          WARE_ID = @p_WARE_ID,
302
          MAKER_ID  = @p_MAKER_ID,
303
          CHECKER_ID  = @p_CHECKER_ID,
304
          AUTH_STATUS  = 'E',
305
          APPROVE_DT  = @p_APPROVE_DT,
306
          RECORD_STATUS  = @p_RECORD_STATUS,
307
          CREATE_DT  = @p_CREATE_DT
308
     WHERE TRANFER_PRIVATE_ID = @p_TRANFER_PRIVATE_ID
309
		IF @@Error <> 0 GOTO ABORT
310
		DECLARE @COUNT INT, @TEST NVARCHAR(255) = '';
311
		SET @COUNT = 1;
312

    
313
		--Insert XmlData  
314
		FETCH NEXT FROM XmlData INTO  
315
                                  @TRANFER_PRIVATE_DT_ID,
316
                                  @TRANFER_PRIVATE_ID,                                
317
                                  @MATERIAL_ID	,
318
                                  @MATERIAL_CODE,
319
                                  @MATERIAL_NAME,
320
                                  @STOCK_QUANTITY ,
321
                                  @DEFAULT_WARE_ID ,
322
                                  @DEFAULT_WARE_NAME ,
323
                                  @DEFAULT_PROMOTION_ID ,
324
                                  @DEFAULT_PROMOTION_NAME ,
325
                                  @TRANFER_QUANTITY ,
326
                                  @REMAINING_QUANTITY,
327
                                  @WARE_TRANFER_ID, 
328
                                  @WARE_TRANFER_NAME ,
329
                                  @PROMOTION_TRANFER_ID ,
330
                                  @PROMOTION_TRANFER_NAME,
331
                                  @RECORD_STATUS,
332
                                  @MAST_BAL_ID
333
		WHILE @@FETCH_STATUS = 0
334
		BEGIN
335
    DECLARE @ERRORSYS NVARCHAR(200) = ''	
336
      
337
     SET @COUNT = 0;
338

    
339
        SET @COUNT = @COUNT + 1;
340
          IF ((@TRANFER_QUANTITY > @STOCK_QUANTITY))
341
        	BEGIN
342
        		GOTO ABORT2
343
        	END
344
          IF(@TRANFER_QUANTITY = 0 OR @TRANFER_QUANTITY IS NULL)
345
          BEGIN
346
            GOTO ABORT3
347
          END
348

    
349
--        IF (SELECT TRIM(CW.ACC_ACCOUNTING) FROM CM_WARE CW WHERE CW.WARE_ID = @p_WARE_ID) <> (SELECT TRIM(CW2.ACC_ACCOUNTING) FROM CM_WARE CW2 WHERE CW2.WARE_ID = @WARE_TRANFER_ID)
350
--        BEGIN
351
--          CLOSE XmlData;
352
--          DEALLOCATE XmlData;
353
--          ROLLBACK TRANSACTION;
354
--          SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, (N'DANH SÁCH ĐƠN VỊ NHẬN ĐIỀU CHUYỂN ở dòng' + ' ' + convert(nvarchar(255), @COUNT) + ': ' + N'Không thể điều chuyển nội bộ khác kho') ErrorDesc
355
--          RETURN '-1'
356
--        END
357

    
358
        IF(@TRANFER_PRIVATE_DT_ID = '' OR @TRANFER_PRIVATE_DT_ID IS NULL)
359
          BEGIN
360
            DECLARE @l_TRANFER_PRIVATE_DT_ID VARCHAR(15)
361
    				EXEC SYS_CodeMasters_Gen 'MW_TRANFER_PRIVATE_DT', @l_TRANFER_PRIVATE_DT_ID out
362
    				IF @l_TRANFER_PRIVATE_DT_ID='' OR @l_TRANFER_PRIVATE_DT_ID IS NULL GOTO ABORT
363
    				
364
    			 INSERT INTO MW_TRANFER_PRIVATE_DT (TRANFER_PRIVATE_DT_ID,TRANFER_PRIVATE_ID,MATERIAL_ID,MAST_BAL_ID,MATERIAL_CODE,MATERIAL_NAME,STOCK_QUANTITY,DEFAULT_WARE_ID, 
365
                        DEFAULT_WARE_NAME,DEFAULT_PROMOTION_ID,DEFAULT_PROMOTION_NAME,TRANFER_QUANTITY,REMAINING_QUANTITY,WARE_TRANFER_ID,WARE_TRANFER_NAME,PROMOTION_TRANFER_NAME,PROMOTION_TRANFER_ID,
366
                        [RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
367
      VALUES (@l_TRANFER_PRIVATE_DT_ID,@p_TRANFER_PRIVATE_ID,@MATERIAL_ID,@MAST_BAL_ID,@MATERIAL_CODE,@MATERIAL_NAME,@STOCK_QUANTITY
368
              ,@DEFAULT_WARE_ID,@DEFAULT_WARE_NAME,@DEFAULT_PROMOTION_ID,@DEFAULT_PROMOTION_NAME, @TRANFER_QUANTITY,@REMAINING_QUANTITY, @WARE_TRANFER_ID,@WARE_TRANFER_NAME,@PROMOTION_TRANFER_NAME,@PROMOTION_TRANFER_ID
369
              ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103));
370
          END 
371
			   IF(@RECORD_STATUS <> '0')
372
          BEGIN   
373
    					UPDATE MW_TRANFER_PRIVATE_DT 
374
              SET 
375
                  MW_TRANFER_PRIVATE_DT.TRANFER_PRIVATE_ID = @TRANFER_PRIVATE_ID,
376
                  MW_TRANFER_PRIVATE_DT.MATERIAL_ID = @MATERIAL_ID,
377
                  MW_TRANFER_PRIVATE_DT.MATERIAL_CODE = @MATERIAL_CODE,
378
                  MW_TRANFER_PRIVATE_DT.MATERIAL_NAME = @MATERIAL_NAME,
379
                  MW_TRANFER_PRIVATE_DT.STOCK_QUANTITY = @STOCK_QUANTITY,
380
                  MW_TRANFER_PRIVATE_DT.DEFAULT_WARE_ID = @DEFAULT_WARE_ID,
381
                  MW_TRANFER_PRIVATE_DT.DEFAULT_WARE_NAME = @DEFAULT_WARE_NAME,
382
                  MW_TRANFER_PRIVATE_DT.DEFAULT_PROMOTION_ID = @DEFAULT_PROMOTION_ID,
383
                  MW_TRANFER_PRIVATE_DT.DEFAULT_PROMOTION_NAME = @DEFAULT_PROMOTION_NAME,
384
                  MW_TRANFER_PRIVATE_DT.TRANFER_QUANTITY = @TRANFER_QUANTITY,
385
                  MW_TRANFER_PRIVATE_DT.REMAINING_QUANTITY = @REMAINING_QUANTITY,
386
                  MW_TRANFER_PRIVATE_DT.WARE_TRANFER_ID = @WARE_TRANFER_ID,
387
                  MW_TRANFER_PRIVATE_DT.WARE_TRANFER_NAME = @WARE_TRANFER_NAME,
388
                  MW_TRANFER_PRIVATE_DT.PROMOTION_TRANFER_ID = @PROMOTION_TRANFER_ID,
389
                  MW_TRANFER_PRIVATE_DT.PROMOTION_TRANFER_NAME =  @PROMOTION_TRANFER_NAME,
390
                  MW_TRANFER_PRIVATE_DT.RECORD_STATUS = @RECORD_STATUS,
391
                  MW_TRANFER_PRIVATE_DT.MAST_BAL_ID = @MAST_BAL_ID
392
              WHERE TRANFER_PRIVATE_DT_ID = @TRANFER_PRIVATE_DT_ID
393
    				IF @@Error <> 0 GOTO ABORT
394
    				SET @COUNT = @COUNT + 1;
395
          END
396
        ELSE
397
         
398
          BEGIN
399
    				UPDATE MW_TRANFER_PRIVATE_DT
400
            SET  
401
                RECORD_STATUS = @RECORD_STATUS
402
    			WHERE TRANFER_PRIVATE_DT_ID = @TRANFER_PRIVATE_DT_ID
403
    				IF @@Error <> 0 GOTO ABORT
404
    				SET @COUNT = @COUNT + 1;
405
          END
406

    
407
			FETCH NEXT FROM XmlData INTO                                 
408
                                  @TRANFER_PRIVATE_DT_ID,
409
                                  @TRANFER_PRIVATE_ID,                                
410
                                  @MATERIAL_ID	,
411
                                  @MATERIAL_CODE,
412
                                  @MATERIAL_NAME,
413
                                  @STOCK_QUANTITY ,
414
                                  @DEFAULT_WARE_ID ,
415
                                  @DEFAULT_WARE_NAME ,
416
                                  @DEFAULT_PROMOTION_ID ,
417
                                  @DEFAULT_PROMOTION_NAME ,
418
                                  @TRANFER_QUANTITY ,
419
                                  @REMAINING_QUANTITY,
420
                                  @WARE_TRANFER_ID, 
421
                                  @WARE_TRANFER_NAME ,
422
                                  @PROMOTION_TRANFER_ID ,
423
                                  @PROMOTION_TRANFER_NAME,
424
                                  @RECORD_STATUS,
425
                                  @MAST_BAL_ID
426
		END
427
			CLOSE XmlData
428
		DEALLOCATE XmlData
429

    
430
COMMIT TRANSACTION
431
SELECT '0' as Result, @p_TRANFER_PRIVATE_ID  TRANFER_PRIVATE_ID,@TEST TEST, '' ErrorDesc
432
RETURN '0'
433
ABORT:
434
BEGIN
435
		CLOSE XmlData
436
		DEALLOCATE XmlData
437
		ROLLBACK TRANSACTION
438
		SELECT '-1' as Result, '' TRANFER_PRIVATE_ID, '' ErrorDesc
439
		RETURN '-1'
440
END
441
ABORT2:
442
BEGIN
443
		CLOSE XmlData
444
		DEALLOCATE XmlData
445
		ROLLBACK TRANSACTION
446
		SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, N'Số lượng điều chuyển vượt quá số lượng tồn kho ở dòng ' + ' ' + CONVERT(VARCHAR(255),@COUNT) + ' ' + N'Trong phần chi tiết lô vật liệu' ErrorDesc
447
    RETURN '-1'
448
End
449
ABORT3:
450
BEGIN
451
      CLOSE XmlData;
452
      DEALLOCATE XmlData;
453
      ROLLBACK TRANSACTION;
454
      SELECT '-1' Result, ''  MW_TRANFER_PRIVATE_CODE, (N'Số lượng điều chuyển chưa được nhập hoặc bằng 0 ở dòng' + ' ' + convert(nvarchar(255), @COUNT) + ' ' + N'Trong phần chi tiết lô vật liệu') ErrorDesc
455
      RETURN '-1'
456
END
457