1
|
|
2
|
ALTER PROCEDURE dbo.ASS_AMORT_Start @p_AMORT_ID VARCHAR(15) = NULL
|
3
|
AS
|
4
|
--declare @l_CURR_AMORT_AMT decimal(18,0)
|
5
|
DECLARE @l_CURR_AMORT_STATUS NVARCHAR(100)
|
6
|
DECLARE @l_EXP_GL VARCHAR(50)
|
7
|
DECLARE @l_AMORT_GL VARCHAR(50)
|
8
|
DECLARE @l_GROUP_ID VARCHAR(15)
|
9
|
DECLARE @l_ASSET_ID VARCHAR(15)
|
10
|
DECLARE @l_AMORT_AMT DECIMAL(18, 0)
|
11
|
DECLARE @l_AMORTIZED_AMT DECIMAL(18, 0)
|
12
|
DECLARE @l_BRANCH_ID VARCHAR(15)
|
13
|
DECLARE @l_AMORTIZED_MONTH DECIMAL(18, 2)
|
14
|
DECLARE @l_ET_ID VARCHAR(15)
|
15
|
DECLARE @l_AMORTDT_ID VARCHAR(15)
|
16
|
DECLARE @l_AMORT_END_DATE DATETIME
|
17
|
|
18
|
DECLARE @sToday VARCHAR(10) = CONVERT(VARCHAR(10), GETDATE(), 103)
|
19
|
DECLARE @sExecDT DATETIME
|
20
|
DECLARE @l_TRN_REF_NO VARCHAR(20) = NULL
|
21
|
DECLARE @l_DO_BRANCH_ID VARCHAR(15) = NULL
|
22
|
DECLARE @l_TYPE_ID VARCHAR(15) = NULL
|
23
|
|
24
|
DECLARE @l_DR_BRN_ID VARCHAR(15)
|
25
|
,@l_CR_BRN_ID VARCHAR(15)
|
26
|
DECLARE @l_HO_BRN_ID VARCHAR(15)
|
27
|
DECLARE @l_DEP_ID VARCHAR(15)
|
28
|
|
29
|
DECLARE @l_MAKER_ID VARCHAR(15)
|
30
|
,@l_CHECKER_ID VARCHAR(15)
|
31
|
,@l_BRANCH_ID_DO VARCHAR(20)
|
32
|
,@l_ASSET_TYPE_DO VARCHAR(15)
|
33
|
,@l_BRANCH_TYPE_DO VARCHAR(15)
|
34
|
DECLARE @l_ASSET_TYPE VARCHAR(15)
|
35
|
,@l_DESC_CORE NVARCHAR(200)
|
36
|
,@l_DESC_CORE_NOTE NVARCHAR(200)
|
37
|
,@l_AMORT_TERM VARCHAR(20) --thieuvq them loai tai san de dien giai hach toan
|
38
|
DECLARE @l_AM_AMORT_AMT DECIMAL(18, 0)
|
39
|
,@l_AMORT_START_DATE DATETIME
|
40
|
,@l_AMORT_MONTH DECIMAL(18, 0)
|
41
|
--Put valodation here
|
42
|
|
43
|
DELETE FROM ASS_AMORT_DT_LATEST
|
44
|
--get data
|
45
|
SELECT
|
46
|
@sExecDT = EXECUTE_DT
|
47
|
,@l_MAKER_ID = MAKER_ID
|
48
|
,@l_CHECKER_ID = CHECKER_ID
|
49
|
,@l_AMORT_TERM = AMORT_TERM
|
50
|
,
|
51
|
--
|
52
|
@l_BRANCH_ID_DO = BRANCH_ID
|
53
|
,@l_ASSET_TYPE_DO = ASSET_TYPE--thieuvq them 01/08/2014
|
54
|
--
|
55
|
FROM ASS_AMORT
|
56
|
WHERE AMORT_ID = @p_AMORT_ID
|
57
|
|
58
|
--SET @l_AMORT_TERM = REPLACE(@l_AMORT_TERM,'/',' ')
|
59
|
|
60
|
--Lay branch_id cua user duyet
|
61
|
SET
|
62
|
@l_DO_BRANCH_ID = 'DV0001'
|
63
|
|
64
|
--BRN_ID HOI SO
|
65
|
SELECT
|
66
|
@l_HO_BRN_ID = BRANCH_ID
|
67
|
FROM CM_BRANCH A
|
68
|
WHERE A.BRANCH_TYPE = 'HS'
|
69
|
|
70
|
--lay branch type cua don vi thuc hien
|
71
|
SELECT
|
72
|
@l_BRANCH_TYPE_DO = BRANCH_TYPE
|
73
|
FROM CM_BRANCH
|
74
|
WHERE BRANCH_ID = @l_BRANCH_ID_DO
|
75
|
|
76
|
--oepn cursor
|
77
|
DECLARE pCur CURSOR FOR SELECT
|
78
|
A.AMORTDT_ID
|
79
|
,A.ASSET_ID
|
80
|
,A.BRANCH_ID
|
81
|
,A.DEP_ID
|
82
|
,A.AMORT_AMT
|
83
|
,ISNULL(AM.REF_GROUP_ID, AM.GROUP_ID)
|
84
|
,AM.AMORTIZED_MONTH
|
85
|
,AM.AMORT_END_DATE
|
86
|
,AM.[TYPE_ID]
|
87
|
,AM.AMORT_AMT AM_AMORT_AMT
|
88
|
,AM.AMORT_START_DATE
|
89
|
,AM.AMORT_MONTH
|
90
|
FROM ASS_AMORT_DT A
|
91
|
LEFT JOIN ASS_MASTER AM
|
92
|
ON AM.ASSET_ID = A.ASSET_ID
|
93
|
WHERE AMORT_ID = @p_AMORT_ID
|
94
|
AND A.EXECUTED = '0'
|
95
|
|
96
|
OPEN pCur
|
97
|
|
98
|
BEGIN TRANSACTION
|
99
|
|
100
|
DECLARE @goupxe TABLE (
|
101
|
GROUP_ID VARCHAR(25)
|
102
|
)
|
103
|
|
104
|
INSERT INTO @goupxe
|
105
|
SELECT
|
106
|
ag.GROUP_ID
|
107
|
FROM ASS_GROUP ag
|
108
|
WHERE ag.PARENT_ID = 'ASG000000000151'
|
109
|
|
110
|
--chay khau hao
|
111
|
FETCH NEXT FROM pCur INTO @l_AMORTDT_ID, @l_ASSET_ID, @l_BRANCH_ID, @l_DEP_ID, @l_AMORT_AMT,
|
112
|
@l_GROUP_ID, @l_AMORTIZED_MONTH, @l_AMORT_END_DATE, @l_ASSET_TYPE, @l_AM_AMORT_AMT, @l_AMORT_START_DATE, @l_AMORT_MONTH
|
113
|
|
114
|
WHILE @@fetch_status = 0
|
115
|
BEGIN
|
116
|
--lay thong tin tai khoan
|
117
|
DECLARE @l_AMT_OVER DECIMAL(18, 0)
|
118
|
,@l_AMT_AMORT DECIMAL(18, 0)
|
119
|
SET @l_AMT_OVER = 0
|
120
|
|
121
|
SELECT
|
122
|
@l_EXP_GL = G.EXP_ACCTNO
|
123
|
,@l_AMORT_GL = G.AMORT_ACCTNO
|
124
|
,@l_TYPE_ID = G.[TYPE_ID]
|
125
|
FROM ASS_GROUP G
|
126
|
WHERE G.GROUP_ID = @l_GROUP_ID
|
127
|
IF @@error <> 0
|
128
|
GOTO ABORT
|
129
|
|
130
|
DECLARE @l_MONTHLY_AMT DECIMAL(18, 0)
|
131
|
IF (@l_AM_AMORT_AMT > 1600000000
|
132
|
AND EXISTS (SELECT
|
133
|
GROUP_ID
|
134
|
FROM @goupxe
|
135
|
WHERE GROUP_ID = @l_GROUP_ID)
|
136
|
)
|
137
|
BEGIN
|
138
|
PRINT 1
|
139
|
SET @l_MONTHLY_AMT = ROUND(1600000000 / @l_AMORT_MONTH, 0)
|
140
|
DECLARE @AMORT_ON_DAY DECIMAL(18, 0)
|
141
|
SET @AMORT_ON_DAY = ROUND(@l_MONTHLY_AMT / dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE), 0)
|
142
|
SET @l_AMT_AMORT = ROUND(@AMORT_ON_DAY * (DATEDIFF(DAY, @l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), 0)
|
143
|
--END
|
144
|
IF (DAY(@l_AMORT_START_DATE) = 1)
|
145
|
SET @l_AMT_AMORT = @l_MONTHLY_AMT
|
146
|
|
147
|
END
|
148
|
|
149
|
IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
|
150
|
BEGIN
|
151
|
SET @l_CURR_AMORT_STATUS = 'DKH'
|
152
|
IF (@l_AM_AMORT_AMT > 1600000000
|
153
|
AND EXISTS (SELECT
|
154
|
GROUP_ID
|
155
|
FROM @goupxe
|
156
|
WHERE GROUP_ID = @l_GROUP_ID)
|
157
|
)
|
158
|
BEGIN
|
159
|
SET @l_AMT_OVER = @l_AMORT_AMT - @l_AMT_AMORT
|
160
|
END
|
161
|
END
|
162
|
ELSE
|
163
|
IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
|
164
|
BEGIN
|
165
|
--SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
|
166
|
|
167
|
|
168
|
SET @l_CURR_AMORT_STATUS = 'KHX'
|
169
|
IF (@l_AM_AMORT_AMT > 1600000000
|
170
|
AND EXISTS (SELECT
|
171
|
GROUP_ID
|
172
|
FROM @goupxe
|
173
|
WHERE GROUP_ID = @l_GROUP_ID)
|
174
|
)
|
175
|
BEGIN
|
176
|
SET @l_AMT_OVER = @l_AMORT_AMT - (1600000000 - (@l_AMT_AMORT + (@l_MONTHLY_AMT * (@l_AMORT_MONTH - 2))))
|
177
|
END
|
178
|
END
|
179
|
ELSE --tai san dang khau hao binh thuong
|
180
|
BEGIN
|
181
|
SET @l_CURR_AMORT_STATUS = 'DKH'
|
182
|
IF (@l_AM_AMORT_AMT > 1600000000
|
183
|
AND EXISTS (SELECT
|
184
|
GROUP_ID
|
185
|
FROM @goupxe
|
186
|
WHERE GROUP_ID = @l_GROUP_ID)
|
187
|
)
|
188
|
BEGIN
|
189
|
SET @l_AMT_OVER = @l_AMORT_AMT - @l_MONTHLY_AMT
|
190
|
END
|
191
|
END
|
192
|
IF(@l_AM_AMORT_AMT - @l_AMORTIZED_AMT>0)
|
193
|
SET @l_CURR_AMORT_STATUS = 'DKH'
|
194
|
--Insert vao bang dbo.ASS_ENTRIES_POST
|
195
|
|
196
|
|
197
|
EXEC ASS_TRN_REF_NO_Gen @l_TYPE_ID
|
198
|
,@sToday
|
199
|
,@l_TRN_REF_NO OUT
|
200
|
|
201
|
IF @l_BRANCH_ID = @l_HO_BRN_ID
|
202
|
BEGIN
|
203
|
SET @l_DR_BRN_ID = @l_DEP_ID
|
204
|
END
|
205
|
ELSE
|
206
|
BEGIN
|
207
|
SET @l_DR_BRN_ID = @l_BRANCH_ID
|
208
|
END
|
209
|
|
210
|
--thieuvq dien giai hach toan khau hao
|
211
|
IF @l_ASSET_TYPE = 'TSCD'
|
212
|
BEGIN
|
213
|
SET @l_DESC_CORE = 'KHAU HAO TSCD KY ' + @l_AMORT_TERM
|
214
|
SET @l_DESC_CORE_NOTE= 'PHAN BO CHI PHI KHAU HAO TSCD GIUA CAC DON VI KY ' + @l_AMORT_TERM
|
215
|
SET @l_CR_BRN_ID = @l_HO_BRN_ID
|
216
|
END
|
217
|
ELSE
|
218
|
BEGIN
|
219
|
SET @l_DESC_CORE = 'PHAN BO CHI PHI CCLD KY ' + @l_AMORT_TERM
|
220
|
SET @l_DESC_CORE_NOTE= 'PHAN BO CHI PHI CCLD GIUA CAC DON VI KY ' + @l_AMORT_TERM
|
221
|
SET @l_CR_BRN_ID = @l_BRANCH_ID
|
222
|
END
|
223
|
|
224
|
DECLARE @l_BRANCH_CODE VARCHAR(25)
|
225
|
,@l_ASSET_CODE VARCHAR(25)
|
226
|
,@l_ETP_ID VARCHAR(25)
|
227
|
,@DEP_CODE VARCHAR(25)
|
228
|
|
229
|
SET @l_BRANCH_CODE = (SELECT
|
230
|
cb.BRANCH_CODE
|
231
|
FROM CM_BRANCH cb
|
232
|
WHERE cb.BRANCH_ID = @l_BRANCH_ID)
|
233
|
SET @l_ASSET_CODE = (SELECT
|
234
|
am.ASSET_CODE
|
235
|
FROM ASS_MASTER am
|
236
|
WHERE am.ASSET_ID = @l_ASSET_ID)
|
237
|
SET @l_AMORTIZED_AMT = (SELECT
|
238
|
am.AMORTIZED_AMT
|
239
|
FROM ASS_MASTER am
|
240
|
WHERE am.ASSET_ID = @l_ASSET_ID)
|
241
|
|
242
|
SET @DEP_CODE = (SELECT
|
243
|
cd.DEP_CODE
|
244
|
FROM CM_DEPARTMENT cd
|
245
|
WHERE cd.DEP_ID = @l_DEP_ID)
|
246
|
|
247
|
|
248
|
DECLARE @LST_COST_SHARE TABLE (
|
249
|
ASSET_ID VARCHAR(20),
|
250
|
BRANCH_ID VARCHAR(20),
|
251
|
DEP_ID VARCHAR(20),
|
252
|
COST_AMOUNT DECIMAL(18,0)
|
253
|
|
254
|
)
|
255
|
|
256
|
DELETE FROM @LST_COST_SHARE
|
257
|
INSERT INTO @LST_COST_SHARE (ASSET_ID, BRANCH_ID, DEP_ID, COST_AMOUNT)
|
258
|
SELECT aca.ASSET_ID,acad.BRANCH_ID,acad.DEPT_ID,acad.COST_AMOUNT FROM ASS_COST_ALLOCATION aca
|
259
|
LEFT JOIN ASS_COST_ALLOC_DT acad ON aca.COS_ID = acad.COS_ID
|
260
|
WHERE aca.RECORD_STATUS=1 AND aca.AUTH_STATUS='A' AND aca.ASSET_ID=@l_ASSET_ID
|
261
|
|
262
|
|
263
|
|
264
|
IF (@l_AMORT_AMT > 0)
|
265
|
BEGIN
|
266
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST'
|
267
|
,@l_ET_ID OUT
|
268
|
IF @l_ET_ID = ''
|
269
|
OR @l_ET_ID IS NULL
|
270
|
GOTO ABORT
|
271
|
|
272
|
|
273
|
INSERT INTO ASS_ENTRIES_POST (ET_ID, REF_NO, ASSET_ID, TRN_TYPE, REF_ID, DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT, EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID)
|
274
|
VALUES (@l_ET_ID, @l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID, @l_DO_BRANCH_ID, dbo.FN_REPLACE_ACCTNO(@l_AMORT_GL, @l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMORT_AMT - @l_AMT_OVER, 'Y', @sExecDT, @l_DESC_CORE, @l_MAKER_ID, @l_CHECKER_ID)
|
275
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
276
|
,@l_ETP_ID OUT
|
277
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
278
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_AMORT_GL, 'VND', 'C', @l_AMORT_AMT - @l_AMT_OVER, 1, @l_AMORT_AMT - @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
|
279
|
|
280
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
281
|
,@l_ETP_ID OUT
|
282
|
|
283
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
284
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @l_AMORT_AMT - @l_AMT_OVER, 1, @l_AMORT_AMT - @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
|
285
|
|
286
|
IF(EXISTS(SELECT ASSET_ID FROM @LST_COST_SHARE))
|
287
|
BEGIN
|
288
|
|
289
|
DECLARE lstDATACOST CURSOR FOR
|
290
|
SELECT
|
291
|
BRANCH_ID
|
292
|
,DEP_ID
|
293
|
,COST_AMOUNT FROM @LST_COST_SHARE
|
294
|
OPEN lstDATACOST
|
295
|
|
296
|
DECLARE @COST_BRANCH_ID VARCHAR(20) , @COST_DEP_ID VARCHAR(20), @COST_AMOUNT DECIMAL(18,0),@COST_DEP_CODE VARCHAR(20),@COST_BRANCH_CODE VARCHAR(20),@TRANFER_CP VARCHAR(25)
|
297
|
|
298
|
SET @TRANFER_CP=(SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='ASSET_CCLD_N')
|
299
|
|
300
|
FETCH NEXT FROM lstDATACOST INTO @COST_BRANCH_ID, @COST_DEP_ID , @COST_AMOUNT
|
301
|
WHILE @@fetch_status = 0
|
302
|
BEGIN
|
303
|
IF(@l_BRANCH_ID <> @COST_BRANCH_ID)
|
304
|
BEGIN
|
305
|
|
306
|
SET @COST_BRANCH_CODE =(SELECT
|
307
|
cb.BRANCH_CODE
|
308
|
FROM CM_BRANCH cb
|
309
|
WHERE cb.BRANCH_ID = @COST_BRANCH_ID)
|
310
|
|
311
|
|
312
|
SET @COST_DEP_CODE =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@COST_DEP_ID)
|
313
|
|
314
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
315
|
,@l_ETP_ID OUT
|
316
|
|
317
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
318
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE_NOTE);
|
319
|
|
320
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
321
|
,@l_ETP_ID OUT
|
322
|
|
323
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
324
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @TRANFER_CP, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE_NOTE);
|
325
|
|
326
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
327
|
,@l_ETP_ID OUT
|
328
|
|
329
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
330
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @COST_BRANCH_CODE, @TRANFER_CP, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @COST_DEP_CODE, @l_DESC_CORE_NOTE);
|
331
|
|
332
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
333
|
,@l_ETP_ID OUT
|
334
|
|
335
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
336
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @COST_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @COST_DEP_CODE, @l_DESC_CORE_NOTE);
|
337
|
|
338
|
|
339
|
END
|
340
|
ELSE
|
341
|
BEGIN
|
342
|
|
343
|
|
344
|
|
345
|
SET @COST_DEP_CODE =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@COST_DEP_ID)
|
346
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
347
|
,@l_ETP_ID OUT
|
348
|
|
349
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
350
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE_NOTE);
|
351
|
|
352
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
353
|
,@l_ETP_ID OUT
|
354
|
|
355
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
356
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @COST_DEP_CODE, @l_DESC_CORE_NOTE);
|
357
|
|
358
|
|
359
|
END
|
360
|
|
361
|
|
362
|
FETCH NEXT FROM lstDATACOST INTO @COST_BRANCH_ID, @COST_DEP_ID , @COST_AMOUNT
|
363
|
END
|
364
|
CLOSE lstDATACOST
|
365
|
DEALLOCATE lstDATACOST
|
366
|
|
367
|
END
|
368
|
|
369
|
|
370
|
|
371
|
END
|
372
|
|
373
|
IF (@l_AMT_OVER > 0)
|
374
|
BEGIN
|
375
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST'
|
376
|
,@l_ET_ID OUT
|
377
|
IF @l_ET_ID = ''
|
378
|
OR @l_ET_ID IS NULL
|
379
|
GOTO ABORT
|
380
|
INSERT INTO ASS_ENTRIES_POST (ET_ID, REF_NO, ASSET_ID, TRN_TYPE, REF_ID, DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT, EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID)
|
381
|
VALUES (@l_ET_ID, @l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID, @l_DO_BRANCH_ID, dbo.FN_REPLACE_ACCTNO(@l_AMORT_GL, @l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMT_OVER, 'Y', @sExecDT, @l_DESC_CORE, @l_MAKER_ID, @l_CHECKER_ID)
|
382
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
383
|
,@l_ETP_ID OUT
|
384
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
385
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_AMORT_GL, 'VND', 'C', @l_AMT_OVER, 1, @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
|
386
|
|
387
|
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC'
|
388
|
,@l_ETP_ID OUT
|
389
|
|
390
|
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
|
391
|
VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, '871001005', 'VND', 'D', @l_AMT_OVER, 1, @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
|
392
|
END
|
393
|
|
394
|
IF @@error <> 0
|
395
|
GOTO ABORT
|
396
|
|
397
|
--UPDATE BANG ASS_MASTER
|
398
|
UPDATE ASS_MASTER
|
399
|
SET AMORTIZED_AMT = ISNULL(AMORTIZED_AMT, 0) + @l_AMORT_AMT
|
400
|
,AMORTIZED_MONTH = ISNULL(AMORTIZED_MONTH, 0) + 1
|
401
|
,AMORT_STATUS = @l_CURR_AMORT_STATUS
|
402
|
WHERE ASSET_ID = @l_ASSET_ID
|
403
|
IF @@error <> 0
|
404
|
GOTO ABORT
|
405
|
--
|
406
|
--update da hach toan
|
407
|
UPDATE ASS_AMORT_DT
|
408
|
SET EXECUTED = '1'
|
409
|
WHERE AMORTDT_ID = @l_AMORTDT_ID
|
410
|
|
411
|
INSERT INTO ASS_AMORT_DT_LATEST (AMORTDT_ID, AMORT_ID, AMORT_DT, CRDR, BRANCH_ID, DEP_ID, ASSET_ID, AMORT_AMT, GROUP_ID, EXECUTED, TRN_TYPE, TRN_DESC, TYPE_ID)
|
412
|
SELECT aad.AMORTDT_ID
|
413
|
,aad.AMORT_ID
|
414
|
,aad.AMORT_DT
|
415
|
,aad.CRDR
|
416
|
,aad.BRANCH_ID
|
417
|
,aad.DEP_ID
|
418
|
,aad.ASSET_ID
|
419
|
,aad.AMORT_AMT
|
420
|
,aad.GROUP_ID
|
421
|
,aad.EXECUTED
|
422
|
,aad.TRN_TYPE
|
423
|
,aad.TRN_DESC,@l_ASSET_TYPE FROM ASS_AMORT_DT aad WHERE aad.AMORTDT_ID=@l_AMORTDT_ID
|
424
|
|
425
|
|
426
|
IF @@error <> 0
|
427
|
GOTO ABORT
|
428
|
|
429
|
FETCH NEXT FROM pCur INTO @l_AMORTDT_ID, @l_ASSET_ID, @l_BRANCH_ID, @l_DEP_ID, @l_AMORT_AMT,
|
430
|
@l_GROUP_ID, @l_AMORTIZED_MONTH, @l_AMORT_END_DATE, @l_ASSET_TYPE, @l_AM_AMORT_AMT, @l_AMORT_START_DATE, @l_AMORT_MONTH
|
431
|
END
|
432
|
|
433
|
-- --UPDATE STATUS CHO BANG ASS_AMORT
|
434
|
UPDATE ASS_AMORT
|
435
|
SET PROCESS_STATUS = 'S'
|
436
|
WHERE AMORT_ID = @p_AMORT_ID
|
437
|
IF @@error <> 0
|
438
|
GOTO ABORT
|
439
|
--
|
440
|
-- /****CAP NHAT CCLD TINH TRANG: DPB(Đã phân bổ chi phí khi xuất sử dụng) VE DANG KHAU HAO***/
|
441
|
IF @l_ASSET_TYPE_DO = 'CCLD'
|
442
|
BEGIN
|
443
|
UPDATE ASS_MASTER
|
444
|
SET AMORT_STATUS = 'DKH'
|
445
|
WHERE AMORT_STATUS IN ('DPB')
|
446
|
--AND convert(date, AMORT_START_DATE) <= convert(date, @sExecDT)
|
447
|
AND CONVERT(DATE, AMORT_START_DATE) <= CONVERT(DATE, dbo.FN_GetLastDayOfMonth(@sExecDT))
|
448
|
AND AMORTIZED_AMT < AMORT_AMT
|
449
|
AND RECORD_STATUS = '1'
|
450
|
AND AUTH_STATUS = 'A'
|
451
|
AND TYPE_ID = 'CCLD'
|
452
|
AND (BRANCH_ID = @l_BRANCH_ID_DO
|
453
|
OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO
|
454
|
--AND BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ
|
455
|
AND BRANCH_ID IN (SELECT
|
456
|
BR.BRANCH_ID
|
457
|
FROM ASS_AMORT_BRN BR
|
458
|
WHERE BR.AMORT_ID = @p_AMORT_ID)
|
459
|
)) --THIEUVQ 28092016
|
460
|
END
|
461
|
|
462
|
CLOSE pCur
|
463
|
DEALLOCATE pCur
|
464
|
|
465
|
COMMIT TRANSACTION
|
466
|
SELECT
|
467
|
'0' AS Result
|
468
|
,'' ErrorDesc
|
469
|
RETURN '0'
|
470
|
ABORT:
|
471
|
BEGIN
|
472
|
|
473
|
CLOSE pCur
|
474
|
DEALLOCATE pCur
|
475
|
|
476
|
ROLLBACK TRANSACTION
|
477
|
SELECT
|
478
|
'-1' AS Result
|
479
|
,@@error ErrorDesc
|
480
|
RETURN '-1'
|
481
|
END
|