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