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