Project

General

Profile

ALTER PROCEDURE AMORT.txt

Luc Tran Van, 04/20/2023 09:53 AM

 
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