1
|
|
2
|
ALTER PROCEDURE dbo.ASS_TRANSFER_MULTI_MASTER_App
|
3
|
@p_TRANS_MULTI_MASTER_ID varchar(15),
|
4
|
@p_AUTH_STATUS varchar(1) = NULL,
|
5
|
@p_CHECKER_ID varchar(15) = NULL,
|
6
|
@p_APPROVE_DT VARCHAR(20) = NULL
|
7
|
AS
|
8
|
|
9
|
|
10
|
BEGIN TRANSACTION
|
11
|
declare @l_OLD_LOCHIST_ID varchar(15)
|
12
|
declare @l_LOCHIST_ID varchar(15)
|
13
|
declare @l_ASSHIST_ID varchar(15)
|
14
|
declare @l_ASSET_ID varchar(15)
|
15
|
declare @l_BRANCH_ID varchar(15)
|
16
|
declare @l_DEPT_ID varchar(15)
|
17
|
declare @l_EMP_ID varchar(15)
|
18
|
declare @l_DESC nvarchar(1000)
|
19
|
declare @l_LOCATION nvarchar(500)
|
20
|
DECLARE @l_MAKER_ID varchar(15)
|
21
|
DECLARE @sToday varchar(10) = convert(varchar(10), @p_APPROVE_DT, 103)
|
22
|
|
23
|
DECLARE @l_CUR_BRANCH_ID VARCHAR(15), @l_ASSET_TYPE VARCHAR(15), @l_AMORT_ACCTNO VARCHAR(50),
|
24
|
@l_ASSET_GROUP VARCHAR(15), @l_ET_ID VARCHAR(15), @l_TRN_REF_NO VARCHAR(15),
|
25
|
@l_DO_BRANCH_ID VARCHAR(15), @l_CUR_AMORT_AMT DECIMAL(18), @l_AMORT_STATUS VARCHAR(15)
|
26
|
|
27
|
DECLARE @NOTE NVARCHAR(500), @CRET DATETIME
|
28
|
SELECT @NOTE = NOTES, @CRET = CREATE_DT
|
29
|
FROM [ASS_TRANSFER_MULTI_MASTER]
|
30
|
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
|
31
|
--LUCTV: 26-12-2018 KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
|
32
|
IF(EXISTS(SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE AUTH_STATUS ='R' AND TRANS_MULTI_MASTER_ID =@p_TRANS_MULTI_MASTER_ID))
|
33
|
BEGIN
|
34
|
ROLLBACK TRANSACTION
|
35
|
SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, N'Thông tin điều chuyển tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
|
36
|
RETURN '-1'
|
37
|
END
|
38
|
IF (SELECT CHARINDEX('ATGETD',@NOTE)) > 0
|
39
|
BEGIN
|
40
|
SET @sToday = convert(varchar(10), @p_APPROVE_DT, 103)
|
41
|
SET @P_APPROVE_DT = @sToday
|
42
|
END
|
43
|
--APPROVE MASTER
|
44
|
UPDATE [dbo].[ASS_TRANSFER_MULTI_MASTER]
|
45
|
SET AUTH_STATUS = 'A',AUTH_STATUS_KT='U',
|
46
|
CHECKER_ID = @p_CHECKER_ID,
|
47
|
APPROVE_DT = CONVERT(datetime, @p_APPROVE_DT, 103),MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL, CHECKER_ID_KT = NULL
|
48
|
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
|
49
|
|
50
|
DECLARE @TRANSFER_MULTI_ID varchar(15), @IS_PRIVATE int = 0, @count int =0
|
51
|
DECLARE @ASSET_ID varchar(15), @BRANCH_ID_OLD VARCHAR(15), @DEP_ID_OLD VARCHAR(15), @EMP_ID_OLD VARCHAR(15)
|
52
|
DECLARE DataCusor SCROLL CURSOR
|
53
|
FOR
|
54
|
SELECT A.TRANSFER_MULTI_ID,A.ASSET_ID
|
55
|
FROM [dbo].[ASS_TRANSFER_MULTI_DT] A
|
56
|
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
|
57
|
|
58
|
OPEN DataCusor
|
59
|
|
60
|
FETCH NEXT FROM DataCusor INTO @TRANSFER_MULTI_ID,@ASSET_ID
|
61
|
WHILE @@FETCH_STATUS = 0
|
62
|
BEGIN
|
63
|
--Lay thong tin
|
64
|
SELECT @l_ASSET_ID = ASSET_ID,
|
65
|
@l_BRANCH_ID = BRANCH_ID,
|
66
|
@l_DEPT_ID = DEPT_ID,
|
67
|
@l_EMP_ID = EMP_ID,
|
68
|
@l_DESC = [DESCRIPTION],
|
69
|
@l_LOCATION = LOCATION,
|
70
|
@l_MAKER_ID = MAKER_ID,
|
71
|
@BRANCH_ID_OLD = BRANCH_ID_OLD,
|
72
|
@DEP_ID_OLD = DEPT_ID_OLD, @EMP_ID_OLD = EMP_ID_OLD
|
73
|
FROM ASS_TRANSFER_MULTI_DT
|
74
|
WHERE TRANSFER_MULTI_ID = @TRANSFER_MULTI_ID
|
75
|
|
76
|
--Validation is here
|
77
|
DECLARE @ERRORSYS NVARCHAR(15) = ''
|
78
|
IF ( NOT EXISTS ( SELECT * FROM ASS_TRANSFER_MULTI_DT WHERE TRANSFER_MULTI_ID = @TRANSFER_MULTI_ID))
|
79
|
SET @ERRORSYS = 'ASST-00001'
|
80
|
IF @ERRORSYS <> ''
|
81
|
BEGIN
|
82
|
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
83
|
CLOSE DataCusor
|
84
|
DEALLOCATE DataCusor
|
85
|
ROLLBACK TRANSACTION
|
86
|
RETURN '-1'
|
87
|
END
|
88
|
|
89
|
/*****************NEU CHI CAP NHAT NHAN VIEN THI KHONG CHUYEN QUA KE TOAN BEGIN *****************************************/
|
90
|
SET @count = @count + 1
|
91
|
------THIEUVQ 240419
|
92
|
IF @l_BRANCH_ID IS NOT NULL AND @l_DEPT_ID IS NOT NULL AND @l_EMP_ID IS NOT NULL
|
93
|
AND @l_BRANCH_ID <> '' AND @l_DEPT_ID <> '' AND @l_EMP_ID <> ''
|
94
|
AND @BRANCH_ID_OLD IS NOT NULL AND @DEP_ID_OLD IS NOT NULL
|
95
|
AND @BRANCH_ID_OLD <> '' AND @DEP_ID_OLD <> ''
|
96
|
AND @l_BRANCH_ID = @BRANCH_ID_OLD AND @l_DEPT_ID = @DEP_ID_OLD
|
97
|
BEGIN
|
98
|
SET @IS_PRIVATE = @IS_PRIVATE + 1
|
99
|
|
100
|
EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
|
101
|
IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
|
102
|
|
103
|
INSERT INTO ASS_MASTER_HIST
|
104
|
SELECT @l_ASSHIST_ID, a.*
|
105
|
FROM ASS_MASTER a
|
106
|
where a.ASSET_ID = @l_ASSET_ID
|
107
|
IF @@Error <> 0 GOTO ABORT
|
108
|
|
109
|
UPDATE ASS_MASTER
|
110
|
SET --BRANCH_ID = @l_BRANCH_ID,
|
111
|
--DEPT_ID = @l_DEPT_ID,
|
112
|
EMP_ID = @l_EMP_ID,
|
113
|
APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
|
114
|
WHERE ASSET_ID = @l_ASSET_ID
|
115
|
IF @@Error <> 0 GOTO ABORT
|
116
|
|
117
|
SELECT @l_OLD_LOCHIST_ID = LOCHIST_ID FROM ASS_LOCATION_HIST WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
|
118
|
|
119
|
--Uptdae isleaf='N' and END_DATE = ngay hien tai cho record hien tai
|
120
|
UPDATE ASS_LOCATION_HIST
|
121
|
SET USE_END_DT = CONVERT(DATETIME,@P_APPROVE_DT,103),
|
122
|
ISLEAF='N'
|
123
|
WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
|
124
|
|
125
|
EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
|
126
|
IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
|
127
|
|
128
|
--insert location moi
|
129
|
INSERT INTO ASS_LOCATION_HIST
|
130
|
(
|
131
|
LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
|
132
|
EMP_ID, LOCATION, ISLEAF, PARENT_ID
|
133
|
)
|
134
|
VALUES
|
135
|
(
|
136
|
@l_LOCHIST_ID, @l_ASSET_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), NULL, @l_BRANCH_ID, @l_DEPT_ID,
|
137
|
@l_EMP_ID, '', 'Y', @l_OLD_LOCHIST_ID
|
138
|
)
|
139
|
IF @@Error <> 0 GOTO ABORT
|
140
|
|
141
|
--INSERT VAO BANG ASS_TRANSACTIONS
|
142
|
INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
|
143
|
[MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT]
|
144
|
)VALUES
|
145
|
(
|
146
|
@l_ASSET_ID, @TRANSFER_MULTI_ID, 'TRANSFER', CONVERT(DATETIME, @sToday, 103), '1', 'A',
|
147
|
@l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103)
|
148
|
)
|
149
|
IF @@Error <> 0 GOTO ABORT
|
150
|
END
|
151
|
ELSE
|
152
|
BEGIN
|
153
|
IF @IS_PRIVATE <> @count AND @IS_PRIVATE > 0 --DA CO 1 TAI SAN KHONG THUOC DIEU CHUYEN NOI BO
|
154
|
BEGIN
|
155
|
SELECT '-1' Result,'' COL_MULTI_MASTER_ID, N'Tài sản điều chuyển nội bộ phải tách biệt tài sản điều chuyển khác, vì giao dịch nội bộ sẽ không qua kế toán. Vui lòng kiểm tra lại danh sách.' ErrorDesc
|
156
|
CLOSE DataCusor
|
157
|
DEALLOCATE DataCusor
|
158
|
ROLLBACK TRANSACTION
|
159
|
RETURN '-1'
|
160
|
END
|
161
|
END
|
162
|
|
163
|
/*****************NEU CHI CAP NHAT NHAN VIEN THI KHONG CHUYEN QUA KE TOAN END *****************************************/
|
164
|
|
165
|
FETCH NEXT FROM DataCusor INTO @TRANSFER_MULTI_ID,@ASSET_ID
|
166
|
END
|
167
|
|
168
|
--CAP NHAT BO QUA KE TOAN
|
169
|
IF @IS_PRIVATE = @count
|
170
|
BEGIN
|
171
|
UPDATE [dbo].[ASS_TRANSFER_MULTI_MASTER]
|
172
|
SET AUTH_STATUS_KT = 'A',
|
173
|
CHECKER_ID_KT = 'admin',
|
174
|
APPROVE_DT_KT = CONVERT(datetime, @p_APPROVE_DT, 103),
|
175
|
CREATE_DT_KT = CONVERT(datetime, @p_APPROVE_DT, 103),
|
176
|
MAKER_ID_KT = 'admin'
|
177
|
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
|
178
|
|
179
|
UPDATE ASS_TRANSFER_MULTI_DT
|
180
|
SET
|
181
|
AUTH_STATUS = 'A',
|
182
|
CHECKER_ID_KT = 'admin',
|
183
|
APPROVE_DT_KT = CONVERT(DATETIME,@p_APPROVE_DT,103),
|
184
|
CREATE_DT_KT = CONVERT(DATETIME,@p_APPROVE_DT,103),
|
185
|
MAKER_ID_KT = 'admin'
|
186
|
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
|
187
|
IF @@Error <> 0 GOTO ABORT
|
188
|
END
|
189
|
CLOSE DataCusor
|
190
|
DEALLOCATE DataCusor
|
191
|
COMMIT TRANSACTION
|
192
|
SELECT '0' as Result, @p_TRANS_MULTI_MASTER_ID COL_MULTI_MASTER_ID, '' ErrorDesc
|
193
|
RETURN '0'
|
194
|
ABORT:
|
195
|
BEGIN
|
196
|
ROLLBACK TRANSACTION
|
197
|
CLOSE DataCusor
|
198
|
DEALLOCATE DataCusor
|
199
|
SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, ERROR_MESSAGE() ErrorDesc
|
200
|
RETURN '-1'
|
201
|
End
|
202
|
|