1
|
|
2
|
|
3
|
ALTER PROCEDURE dbo.ASS_LIQ_REQUEST_Upd
|
4
|
@P_LIQ_REQ_ID VARCHAR(15) = NULL,
|
5
|
@p_ASS_TYPE_ID varchar(15) = NULL,
|
6
|
@p_REQ_DT VARCHAR(20) = NULL,
|
7
|
@p_BRANCH_ID varchar(15) = NULL,
|
8
|
@p_NOTES nvarchar(1000) = NULL,
|
9
|
@p_RECORD_STATUS varchar(1) = NULL,
|
10
|
@p_MAKER_ID varchar(12) = NULL,
|
11
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
12
|
@p_AUTH_STATUS varchar(50) = NULL,
|
13
|
@p_CHECKER_ID varchar(12) = NULL,
|
14
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
15
|
@p_LiqDetails XML = NULL,
|
16
|
@p_ListCostCenter XML = NULL,
|
17
|
@p_BRANCH_CREATE VARCHAR(15) = NULL,
|
18
|
@p_DEP_ID VARCHAR(15) = NULL,
|
19
|
@p_TERM_ID VARCHAR(15) = NULL,
|
20
|
@p_HO_NOTES NVARCHAR(MAX) = NULL,
|
21
|
@p_USER_LOGIN VARCHAR(15)
|
22
|
|
23
|
AS
|
24
|
--Validation is here
|
25
|
DECLARE @ERRORSYS NVARCHAR(15) = ''
|
26
|
IF ( NOT EXISTS ( SELECT * FROM ASS_LIQ_REQUEST WHERE LIQ_REQ_ID= @P_LIQ_REQ_ID))
|
27
|
SET @ERRORSYS = ''
|
28
|
IF @ERRORSYS <> ''
|
29
|
BEGIN
|
30
|
SELECT ErrorCode Result, '' LIQ_REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
31
|
RETURN '0'
|
32
|
END
|
33
|
Declare @hdoc INT
|
34
|
Exec sp_xml_preparedocument @hdoc Output,@p_LiqDetails
|
35
|
|
36
|
--Them dieu kien kiem tra lý do de xuat khong duoc de trong
|
37
|
DECLARE @reason NVARCHAR(max) = ''
|
38
|
SELECT @reason = COALESCE(@reason + ', ', '') + ASSET_CODE
|
39
|
FROM OPENXML(@hDoc,'/Root/LiquiDetail',2)
|
40
|
WITH
|
41
|
(
|
42
|
ASSET_ID varchar(15),
|
43
|
LIQ_REASON nvarchar(1000),
|
44
|
NOTES nvarchar(1000) ,
|
45
|
REQ_AMT DECIMAL(18,0),
|
46
|
LIQ_RECEIVE NVARCHAR(500),
|
47
|
BRANCH_USE VARCHAR(15),
|
48
|
DEPT_USE VARCHAR(15),
|
49
|
REMAIN_VALUE DECIMAL(18,0),
|
50
|
ASSET_CODE varchar(100),
|
51
|
IS_IMP varchar(15)
|
52
|
)
|
53
|
WHERE LIQ_REASON = '' OR LIQ_REASON IS NULL
|
54
|
|
55
|
IF @reason <> ''
|
56
|
BEGIN
|
57
|
SELECT '-1' as Result, '' LIQ_REQ_ID, N'Lý do đề xuất thanh lý không được để trống! DS tài sản: '+ @reason ErrorDesc
|
58
|
RETURN '-1'
|
59
|
END
|
60
|
|
61
|
-------BO SUNG PHAN IMPORT TS TU FILE
|
62
|
----KIEM TRA TS IMPORT PHAI THUOC DON VI DA CHON
|
63
|
declare @tmp table(BRANCH_ID varchar(15))
|
64
|
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
|
65
|
|
66
|
DECLARE liqDetail CURSOR FOR
|
67
|
SELECT B.DETAIL_ID,
|
68
|
--A.ASSET_ID,
|
69
|
B.ASSET_ID,
|
70
|
B.LIQ_REASON,
|
71
|
B.NOTES,
|
72
|
B.REQ_AMT,
|
73
|
B.LIQ_RECEIVE,
|
74
|
--khanhnhd
|
75
|
--(CASE WHEN IS_IMP = 'N' THEN B.BRANCH_USE ELSE B.ASSET_ID END) BRANCH_USE,
|
76
|
--(CASE WHEN IS_IMP = 'N' THEN B.DEPT_USE ELSE B.ASSET_ID END) DEPT_USE,
|
77
|
B.BRANCH_USE,
|
78
|
B.DEPT_USE,
|
79
|
--end khanhnhd
|
80
|
B.REMAIN_VALUE
|
81
|
FROM OPENXML(@hDoc,'/Root/LiquiDetail',2)
|
82
|
WITH
|
83
|
(
|
84
|
DETAIL_ID VARCHAR(15),
|
85
|
ASSET_ID varchar(15),
|
86
|
LIQ_REASON nvarchar(1000),
|
87
|
NOTES nvarchar(1000) ,
|
88
|
REQ_AMT DECIMAL(18,0),
|
89
|
LIQ_RECEIVE NVARCHAR(500),
|
90
|
BRANCH_USE VARCHAR(15),
|
91
|
DEPT_USE VARCHAR(15),
|
92
|
REMAIN_VALUE DECIMAL(18,0),
|
93
|
ASSET_CODE varchar(100),
|
94
|
IS_IMP varchar(15)
|
95
|
) B
|
96
|
--LAY MA TAI SAN
|
97
|
--LEFT JOIN ASS_MASTER A ON A.ASSET_CODE = B.ASSET_CODE AND A.BRANCH_ID IN (SELECT C.* FROM @tmp C)
|
98
|
OPEN liqDetail
|
99
|
|
100
|
BEGIN TRANSACTION
|
101
|
|
102
|
IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL
|
103
|
SET @p_MAKER_ID = (SELECT alr.MAKER_ID FROM ASS_LIQ_REQUEST alr WHERE LIQ_REQ_ID = @P_LIQ_REQ_ID)
|
104
|
UPDATE ASS_LIQ_REQUEST SET [ASS_TYPE_ID] = @p_ASS_TYPE_ID,[REQ_DT] = CONVERT(DATETIME, @p_REQ_DT, 103),[BRANCH_ID] = @p_BRANCH_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
|
105
|
BRANCH_CREATE= @p_BRANCH_CREATE, TERM_ID = @p_TERM_ID,DEP_ID=@p_DEP_ID, HO_NOTES = @p_HO_NOTES
|
106
|
WHERE LIQ_REQ_ID= @P_LIQ_REQ_ID
|
107
|
IF @@Error <> 0 GOTO ABORT
|
108
|
PRINT 'A'
|
109
|
DELETE FROM ASS_LIQ_REQUEST_DT WHERE LIQ_REQ_ID = @P_LIQ_REQ_ID
|
110
|
PRINT 'B'
|
111
|
Declare @DETAIL_ID VARCHAR(15), @ASSET_ID VARCHAR(15), @LIQ_REASON NVARCHAR(1000),@NOTES NVARCHAR(1000),
|
112
|
@REQ_AMT DECIMAL(18,0), @LIQ_RECEIVE NVARCHAR(500), @BRANCH_USE VARCHAR(15), @DEPT_USE VARCHAR(15), @REMAIN_VALUE DECIMAL(18,0)
|
113
|
FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
|
114
|
WHILE @@FETCH_STATUS = 0
|
115
|
BEGIN
|
116
|
IF LEN (@DETAIL_ID) = 0
|
117
|
BEGIN
|
118
|
PRINT 'C'
|
119
|
EXEC SYS_CodeMasters_Gen 'ASS_LIQ_REQUEST_DT', @DETAIL_ID out
|
120
|
IF @DETAIL_ID='' OR @DETAIL_ID IS NULL GOTO ABORT
|
121
|
END
|
122
|
PRINT @DETAIL_ID
|
123
|
--print 'asset_id: ' + @ASSET_ID
|
124
|
INSERT INTO ASS_LIQ_REQUEST_DT([LIQREQDT_ID],[LIQ_REQ_ID],[ASSET_ID],[LIQ_REASON],[NOTES],[RECORD_STATUS],
|
125
|
[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], [REQ_AMT], [LIQ_RECEIVE], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE])
|
126
|
VALUES(@DETAIL_ID ,@P_LIQ_REQ_ID ,@ASSET_ID ,@LIQ_REASON ,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,
|
127
|
CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103), @REQ_AMT, @LIQ_RECEIVE,
|
128
|
@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE )
|
129
|
IF @@Error <> 0 GOTO ABORT
|
130
|
FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
|
131
|
END
|
132
|
CLOSE liqDetail
|
133
|
DEALLOCATE liqDetail
|
134
|
|
135
|
--khanhnhd cập nhật đơn vị chuyên môn
|
136
|
Declare @hdocc INT
|
137
|
Exec sp_xml_preparedocument @hdocc Output,@p_ListCostCenter
|
138
|
|
139
|
DECLARE ConcenterDetaisls CURSOR FOR
|
140
|
SELECT D.REQ_COST_ID,
|
141
|
D.COST_ID,
|
142
|
D.REQ_ID,
|
143
|
D.ASS_STATUS,
|
144
|
D.RE_CONTENT,
|
145
|
D.NOTES,
|
146
|
D.AUTH_STATUS
|
147
|
FROM OPENXML(@hdocc,'/Root/ListCostCenter',2)
|
148
|
WITH
|
149
|
(
|
150
|
REQ_COST_ID varchar(15),
|
151
|
COST_ID nvarchar(1000),
|
152
|
REQ_ID nvarchar(1000),
|
153
|
ASS_STATUS NVARCHAR(100),
|
154
|
RE_CONTENT NVARCHAR(100),
|
155
|
NOTES nvarchar(500),
|
156
|
AUTH_STATUS NVARCHAR(500)
|
157
|
)D
|
158
|
OPEN ConcenterDetaisls
|
159
|
Declare @REQ_COST_ID VARCHAR(15), @COST_ID NVARCHAR(1000), @REQ_ID NVARCHAR(1000), @ASS_STATUS NVARCHAR(100), @RE_CONTENT NVARCHAR(100), @AUTH_STATUS NVARCHAR(500)
|
160
|
|
161
|
DELETE FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID =@P_LIQ_REQ_ID
|
162
|
|
163
|
FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS
|
164
|
WHILE @@FETCH_STATUS = 0
|
165
|
BEGIN
|
166
|
DECLARE @l_REQ_COST_ID VARCHAR(15)
|
167
|
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @l_REQ_COST_ID out
|
168
|
IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
|
169
|
IF(@RE_CONTENT IS NULL)-- OR A.MAKER_ID = @p_USER_LOGIN)
|
170
|
BEGIN
|
171
|
ROLLBACK TRANSACTION
|
172
|
SELECT '-1' as Result, '' LIQ_REQ_ID, N'Nội dung đề xuất không được để trống!'
|
173
|
RETURN '-1'
|
174
|
END
|
175
|
|
176
|
INSERT INTO TR_REQUEST_SHOP_COSTCENTER([REQ_COST_ID],[COST_ID],[ASS_STATUS],[RE_CONTENT],[REQ_ID],[NOTES],[AUTH_STATUS])
|
177
|
VALUES(@l_REQ_COST_ID ,@COST_ID, @ASS_STATUS, @RE_CONTENT, @P_LIQ_REQ_ID, @NOTES, @AUTH_STATUS)
|
178
|
IF @@Error <> 0 GOTO ABORT
|
179
|
FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS
|
180
|
|
181
|
END
|
182
|
CLOSE ConcenterDetaisls
|
183
|
DEALLOCATE ConcenterDetaisls
|
184
|
--end khanhnhd
|
185
|
--INSERT DETAIL
|
186
|
COMMIT TRANSACTION
|
187
|
SELECT '0' as Result, @P_LIQ_REQ_ID LIQ_REQ_ID, @l_REQ_COST_ID REQ_COST_ID,'' ErrorDesc
|
188
|
RETURN '0'
|
189
|
ABORT:
|
190
|
BEGIN
|
191
|
ROLLBACK TRANSACTION
|
192
|
SELECT '-1' as Result, '' LIQ_REQ_ID, '' ErrorDesc
|
193
|
RETURN '-1'
|
194
|
End
|
195
|
|
196
|
|
197
|
|
198
|
|
199
|
|
200
|
|