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
|
|