Project

General

Profile

ASS_INVENTORY_MASTER_Ins.txt

Luc Tran Van, 01/17/2023 10:11 AM

 
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