1
|
CREATE PROCEDURE [dbo].[ASS_INVENTORY_UNSTOCKED_Upd]
|
2
|
@p_INVENT_ID varchar(15) = NULL,
|
3
|
@p_LIST_UNSTOCKED XML = NULL
|
4
|
AS
|
5
|
BEGIN
|
6
|
BEGIN TRANSACTION
|
7
|
Declare @hdoc INT
|
8
|
DECLARE @ERRORSYS NVARCHAR(100) = ''
|
9
|
Exec sp_xml_preparedocument @hdoc Output, @p_LIST_UNSTOCKED
|
10
|
|
11
|
DECLARE UnstockedDetail CURSOR FOR
|
12
|
SELECT *
|
13
|
FROM OPENXML(@hDoc,'/Root/UnstockedDetail',2)
|
14
|
WITH
|
15
|
(
|
16
|
UNSTOCKED_ID varchar(15),
|
17
|
INVENT_ID varchar(15) ,
|
18
|
ASS_NAME nvarchar(1000) ,
|
19
|
SERIAL nvarchar(max) ,
|
20
|
BRANCH_ID nvarchar(200) ,
|
21
|
DEPT_ID nvarchar(200) ,
|
22
|
USE_DATE varchar(25)
|
23
|
)
|
24
|
OPEN UnstockedDetail
|
25
|
|
26
|
DELETE [ASS_INVENTORY_UNSTOCKED] WHERE INVENT_ID = @p_INVENT_ID
|
27
|
|
28
|
DECLARE @UNSTOCKED_ID varchar(15),
|
29
|
@INVENT_ID varchar(15),
|
30
|
@ASS_NAME nvarchar(1000),
|
31
|
@SERIAL nvarchar(max),
|
32
|
@BRANCH_ID nvarchar(200),
|
33
|
@DEPT_ID nvarchar(200),
|
34
|
@USE_DATE varchar(25)
|
35
|
|
36
|
FETCH NEXT FROM UnstockedDetail INTO @UNSTOCKED_ID, @INVENT_ID, @ASS_NAME, @SERIAL, @BRANCH_ID, @DEPT_ID, @USE_DATE
|
37
|
WHILE @@FETCH_STATUS = 0
|
38
|
BEGIN
|
39
|
-- Kiểm tra [INVENT_ID] KHÔNG TỒn TẠi
|
40
|
IF(NOT EXISTS( SELECT 1 FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @INVENT_ID))
|
41
|
BEGIN
|
42
|
SET @ERRORSYS = N'Không tồn tại INVENT_ID: ' + @INVENT_ID
|
43
|
GOTO ABORT
|
44
|
END
|
45
|
IF(@UNSTOCKED_ID IS NULL OR @UNSTOCKED_ID = '')
|
46
|
BEGIN
|
47
|
EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_UNSTOCKED', @UNSTOCKED_ID OUT
|
48
|
IF @UNSTOCKED_ID='' OR @UNSTOCKED_ID IS NULL GOTO ABORT
|
49
|
END
|
50
|
|
51
|
INSERT INTO [dbo].[ASS_INVENTORY_UNSTOCKED] (
|
52
|
[UNSTOCKED_ID]
|
53
|
,[INVENT_ID]
|
54
|
,[ASS_NAME]
|
55
|
,[SERIAL]
|
56
|
,[BRANCH_ID]
|
57
|
,[DEPT_ID]
|
58
|
,[USE_DATE])
|
59
|
VALUES (
|
60
|
@UNSTOCKED_ID,
|
61
|
@INVENT_ID,
|
62
|
@ASS_NAME,
|
63
|
@SERIAL,
|
64
|
@BRANCH_ID,
|
65
|
@DEPT_ID,
|
66
|
CONVERT(DATETIME, @USE_DATE, 103)
|
67
|
)
|
68
|
IF @@Error <> 0 GOTO ABORT
|
69
|
|
70
|
FETCH NEXT FROM UnstockedDetail INTO @UNSTOCKED_ID, @INVENT_ID, @ASS_NAME, @SERIAL, @BRANCH_ID, @DEPT_ID, @USE_DATE
|
71
|
END
|
72
|
CLOSE UnstockedDetail
|
73
|
DEALLOCATE UnstockedDetail
|
74
|
|
75
|
COMMIT TRANSACTION
|
76
|
SELECT '0' as Result, '' id, '' ErrorDesc
|
77
|
RETURN '0'
|
78
|
ABORT:
|
79
|
BEGIN
|
80
|
CLOSE UnstockedDetail
|
81
|
DEALLOCATE UnstockedDetail
|
82
|
ROLLBACK TRANSACTION
|
83
|
SELECT '-1' as Result, '' id, @ERRORSYS ErrorDesc
|
84
|
RETURN '-1'
|
85
|
End
|
86
|
|
87
|
END
|