1
|
ALTER PROCEDURE dbo.ASS_INVENTORY_MASTER_Ins
|
2
|
@p_INVENTORY_DT VARCHAR(20) = NULL,
|
3
|
@p_TERM nvarchar(20) = NULL,
|
4
|
@p_BRANCH_ID varchar(15) = NULL,
|
5
|
@p_DEPT_ID varchar(15) = NULL,
|
6
|
@p_NOTES NVARCHAR(1000) = NULL,
|
7
|
@p_RECORD_STATUS varchar(1) = NULL,
|
8
|
@p_AUTH_STATUS_DVKD varchar(1) = NULL,
|
9
|
@p_SIGN_USER varchar(50) = NULL,
|
10
|
@p_MAKER_ID varchar(15) = NULL,
|
11
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
12
|
@p_CHECKER_ID varchar(15) = NULL,
|
13
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
14
|
@P_INVENTDETAILS XML = NULL,
|
15
|
@p_BRANCH_CREATE VARCHAR(15) = NULL,
|
16
|
@p_PARTYDETAILS XML = NULL,
|
17
|
@p_UNSTOCKEDDETAILS XML = NULL
|
18
|
|
19
|
AS
|
20
|
--Validation is here
|
21
|
/*
|
22
|
DECLARE @ERRORSYS NVARCHAR(15) = ''
|
23
|
IF ( NOT EXISTS ( SELECT * FROM ASS_INVENTORY_MASTER WHERE ))
|
24
|
SET @ERRORSYS = ''
|
25
|
IF @ERRORSYS <> ''
|
26
|
BEGIN
|
27
|
SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
28
|
RETURN '0'
|
29
|
END
|
30
|
*/
|
31
|
|
32
|
/****PGD KHONG DUOC PHEP THUC HIEN KIEM KE***/
|
33
|
DECLARE @l_TYPE_CREATE VARCHAR(200)
|
34
|
SET @l_TYPE_CREATE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_CREATE)
|
35
|
IF @l_TYPE_CREATE <> 'CN' AND @l_TYPE_CREATE <> 'HS'
|
36
|
BEGIN
|
37
|
SELECT '-1' as Result, '' INVENT_ID, N'Đơn vị không được phép tạo đợt kiểm kê.' ErrorDesc
|
38
|
RETURN '-1'
|
39
|
END
|
40
|
IF (EXISTS(SELECT * FROM ASS_INVENTORY_MASTER aim WHERE aim.BRANCH_ID = @p_BRANCH_ID
|
41
|
AND aim.TERM = @p_TERM AND aim.INVENTORY_DT = CONVERT(DATETIME, @p_INVENTORY_DT, 103)))
|
42
|
BEGIN
|
43
|
SELECT '-1' as Result, '' INVENT_ID, N'Đơn vị đã tồn tại kỳ kiểm kê có cùng ngày và đợt kiểm kê.' ErrorDesc
|
44
|
RETURN '-1'
|
45
|
END
|
46
|
IF (EXISTS(SELECT * FROM ASS_INVENTORY_MASTER aim WHERE aim.BRANCH_ID = @p_BRANCH_ID
|
47
|
AND (aim.AUTH_STATUS <> 'A' OR aim.AUTH_STATUS IS NULL OR aim.AUTH_STATUS_DVKD <> 'A' OR aim.AUTH_STATUS_DVKD IS NULL)))
|
48
|
BEGIN
|
49
|
SELECT '-1' as Result, '' INVENT_ID, N'Đơn vị có kỳ kiểm kê chưa hoàn thành nên không thể tạo thêm kỳ kiểm kê mới.' ErrorDesc
|
50
|
RETURN '-1'
|
51
|
END
|
52
|
|
53
|
Declare @hdoc INT
|
54
|
Exec sp_xml_preparedocument @hdoc Output,@P_INVENTDETAILS
|
55
|
DECLARE InventDetail CURSOR FOR
|
56
|
SELECT *
|
57
|
FROM OPENXML(@hDoc,'/Root/InventDetail',2)
|
58
|
WITH
|
59
|
(
|
60
|
ASSET_ID varchar(15) ,
|
61
|
ASSET_STATUS nvarchar(20) ,
|
62
|
INVENT_DESC nvarchar(1000) ,
|
63
|
NOTES nvarchar(500) ,
|
64
|
BRANCH_USE varchar(15) ,
|
65
|
DEPT_USE varchar(15),
|
66
|
REMAIN_VALUE decimal(18,0)
|
67
|
)
|
68
|
OPEN InventDetail
|
69
|
|
70
|
-- GiaNT 23/08/2021
|
71
|
Declare @hdocParty INT
|
72
|
Exec sp_xml_preparedocument @hdocParty Output,@p_PARTYDETAILS
|
73
|
DECLARE PartyDetail CURSOR FOR
|
74
|
SELECT *
|
75
|
FROM OPENXML(@hdocParty,'/Root/PartyDetail',2)
|
76
|
WITH
|
77
|
(
|
78
|
PARTY_ID VARCHAR(15),
|
79
|
INVENT_ID VARCHAR(15),
|
80
|
PARTY_NAME NVARCHAR(100),
|
81
|
PARTY_ROLE NVARCHAR(100),
|
82
|
IS_RECIVE_MAIL VARCHAR(100),
|
83
|
IS_DONE VARCHAR(100),
|
84
|
IS_MAIN VARCHAR(100)
|
85
|
)
|
86
|
OPEN PartyDetail
|
87
|
|
88
|
Declare @hdocUnstocked INT
|
89
|
Exec sp_xml_preparedocument @hdocUnstocked Output,@p_UNSTOCKEDDETAILS
|
90
|
DECLARE UnstockedDetail CURSOR FOR
|
91
|
SELECT *
|
92
|
FROM OPENXML(@hdocUnstocked,'/Root/UnstockedDetail',2)
|
93
|
WITH
|
94
|
(
|
95
|
UNSTOCKED_ID VARCHAR(15),
|
96
|
INVENT_ID VARCHAR(15),
|
97
|
ASS_NAME NVARCHAR(1000),
|
98
|
SERIAL NVARCHAR(MAX),
|
99
|
BRANCH_ID NVARCHAR(50),
|
100
|
DEPT_ID NVARCHAR(50),
|
101
|
USE_DATE VARCHAR(20)
|
102
|
)
|
103
|
OPEN UnstockedDetail
|
104
|
|
105
|
BEGIN TRANSACTION
|
106
|
|
107
|
IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL
|
108
|
|
109
|
DECLARE @l_INVENT_ID VARCHAR(15)
|
110
|
EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_MASTER', @l_INVENT_ID out
|
111
|
IF @l_INVENT_ID='' OR @l_INVENT_ID IS NULL GOTO ABORT
|
112
|
INSERT INTO ASS_INVENTORY_MASTER([INVENT_ID],[INVENTORY_DT],[TERM],[BRANCH_ID],[NOTES],[RECORD_STATUS],[AUTH_STATUS_DVKD],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[SIGN_USER],[DEPT_ID],[AUTH_STATUS])
|
113
|
VALUES(@l_INVENT_ID ,CONVERT(DATETIME, @p_INVENTORY_DT, 103) ,@p_TERM ,@p_BRANCH_ID ,@p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS_DVKD ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_BRANCH_CREATE,@p_SIGN_USER,@p_DEPT_ID,'E')
|
114
|
IF @@Error <> 0 GOTO ABORT
|
115
|
|
116
|
Declare @INVENTDT_ID VARCHAR(15),@ASSET_ID varchar(15), @ASSET_STATUS nvarchar(20),@INVENT_DESC nvarchar(1000),
|
117
|
@NOTES nvarchar(500), @DEPT_USE VARCHAR(15), @BRANCH_USE VARCHAR(15), @REMAIN_VALUE decimal(18,0)
|
118
|
FETCH NEXT FROM InventDetail INTO @ASSET_ID, @ASSET_STATUS, @INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
|
119
|
|
120
|
--------THIEUVQ THEM PHAN DEPT_ID CHO DOT KIEM KE, TAM THOI LAY THEO TAI SAN DAU TIEN TRONG BANG INVENTORY_DT
|
121
|
--IF @p_BRANCH_ID = 'DV0001'
|
122
|
--BEGIN
|
123
|
-- UPDATE ASS_INVENTORY_MASTER SET DEPT_ID = @DEPT_USE WHERE INVENT_ID = @l_INVENT_ID
|
124
|
--END
|
125
|
--------
|
126
|
WHILE @@FETCH_STATUS = 0
|
127
|
BEGIN
|
128
|
EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_DT', @INVENTDT_ID out
|
129
|
IF @INVENTDT_ID ='' OR @INVENTDT_ID IS NULL GOTO ABORT
|
130
|
INSERT INTO ASS_INVENTORY_DT([INVENTDT_ID],[INVENT_ID],[ASSET_ID],[ASSET_STATUS],[INVENT_DESC], [NOTES], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE])
|
131
|
VALUES(@INVENTDT_ID,@l_INVENT_ID,@ASSET_ID,@ASSET_STATUS,@INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE)
|
132
|
-- PHONGNT 7/7/2022 Thêm vào ASS_INVENTORY_DT_RPT dùng cho app kiểm kê
|
133
|
INSERT INTO ASS_INVENTORY_DT_RPT([INVENTDT_ID],[INVENT_ID],[ASSET_ID],[ASSET_STATUS],[INVENT_DESC], [NOTES], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE])
|
134
|
VALUES(@INVENTDT_ID,@l_INVENT_ID,@ASSET_ID,@ASSET_STATUS,@INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE)
|
135
|
|
136
|
-- next Group_Id
|
137
|
IF @@ERROR <> 0 GOTO ABORT
|
138
|
FETCH NEXT FROM InventDetail INTO @ASSET_ID, @ASSET_STATUS, @INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
|
139
|
END
|
140
|
CLOSE InventDetail
|
141
|
DEALLOCATE InventDetail
|
142
|
|
143
|
-- GiaNT 23/08/2021
|
144
|
DECLARE
|
145
|
@PARTY_ID VARCHAR(15),
|
146
|
@INVENT_ID VARCHAR(15),
|
147
|
@PARTY_NAME NVARCHAR(200),
|
148
|
@PARTY_ROLE NVARCHAR(200),
|
149
|
@IS_RECIVE_MAIL VARCHAR(1),
|
150
|
@IS_DONE VARCHAR(1),
|
151
|
@IS_MAIN VARCHAR(1)
|
152
|
|
153
|
FETCH NEXT FROM PartyDetail INTO @PARTY_ID,@INVENT_ID,@PARTY_NAME,@PARTY_ROLE,@IS_RECIVE_MAIL,@IS_DONE,@IS_MAIN
|
154
|
WHILE @@FETCH_STATUS = 0
|
155
|
BEGIN
|
156
|
DECLARE @l_PARTY_ID VARCHAR(15)
|
157
|
EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_PARTY_DT', @l_PARTY_ID out
|
158
|
IF @l_PARTY_ID='' OR @l_PARTY_ID IS NULL
|
159
|
BEGIN
|
160
|
GOTO ABORT
|
161
|
END
|
162
|
|
163
|
INSERT INTO ASS_INVENTORY_PARTY_DT([PARTY_ID], [INVENT_ID], [PARTY_NAME], [PARTY_ROLE],[IS_RECIVE_MAIL],[IS_DONE],[IS_MAIN])
|
164
|
VALUES(@l_PARTY_ID ,@l_INVENT_ID, @PARTY_NAME, @PARTY_ROLE,@IS_RECIVE_MAIL,'0',@IS_MAIN)
|
165
|
IF @@Error <> 0 GOTO ABORT
|
166
|
|
167
|
FETCH NEXT FROM PartyDetail INTO @PARTY_ID,@INVENT_ID,@PARTY_NAME,@PARTY_ROLE,@IS_RECIVE_MAIL,@IS_DONE,@IS_MAIN
|
168
|
END
|
169
|
CLOSE PartyDetail
|
170
|
DEALLOCATE PartyDetail
|
171
|
|
172
|
DECLARE
|
173
|
@UNSTOCKED_ID VARCHAR(15),
|
174
|
@ASS_NAME NVARCHAR(1000),
|
175
|
@SERIAL NVARCHAR(MAX),
|
176
|
@BRANCH_ID NVARCHAR(50),
|
177
|
@DEPT_ID NVARCHAR(50),
|
178
|
@USE_DATE VARCHAR(20)
|
179
|
|
180
|
FETCH NEXT FROM UnstockedDetail INTO @UNSTOCKED_ID,@INVENT_ID,@ASS_NAME,@SERIAL,@BRANCH_ID,@DEPT_ID,@USE_DATE
|
181
|
WHILE @@FETCH_STATUS = 0
|
182
|
BEGIN
|
183
|
DECLARE @l_UNSTOCKED_ID VARCHAR(15)
|
184
|
EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_UNSTOCKED', @l_UNSTOCKED_ID out
|
185
|
IF @l_UNSTOCKED_ID='' OR @l_UNSTOCKED_ID IS NULL
|
186
|
BEGIN
|
187
|
GOTO ABORT
|
188
|
END
|
189
|
|
190
|
INSERT INTO ASS_INVENTORY_UNSTOCKED([UNSTOCKED_ID], [INVENT_ID], [ASS_NAME], [SERIAL],[BRANCH_ID],[DEPT_ID],[USE_DATE])
|
191
|
VALUES(@l_UNSTOCKED_ID ,@l_INVENT_ID, @ASS_NAME, @SERIAL,@BRANCH_ID,@DEPT_ID,CONVERT(DATETIME,@USE_DATE,103))
|
192
|
IF @@Error <> 0 GOTO ABORT
|
193
|
|
194
|
FETCH NEXT FROM UnstockedDetail INTO @UNSTOCKED_ID,@INVENT_ID,@ASS_NAME,@SERIAL,@BRANCH_ID,@DEPT_ID,@USE_DATE
|
195
|
END
|
196
|
CLOSE UnstockedDetail
|
197
|
DEALLOCATE UnstockedDetail
|
198
|
|
199
|
|
200
|
COMMIT TRANSACTION
|
201
|
SELECT '0' as Result, @l_INVENT_ID INVENT_ID, '' ErrorDesc
|
202
|
RETURN '0'
|
203
|
ABORT:
|
204
|
BEGIN
|
205
|
CLOSE InventDetail
|
206
|
DEALLOCATE InventDetail
|
207
|
ROLLBACK TRANSACTION
|
208
|
SELECT '-1' as Result, '' INVENT_ID, '' ErrorDesc
|
209
|
RETURN '-1'
|
210
|
END
|