Fixed Asset - Depreciation Calculation

zeonzeon Member Posts: 130
Hi,

I have a question about the calcluation of depreciation ending date.
I have created a fixed asset with linear depreciation for test in the Cronus db.

The depreciation starting date is 30-01-05 (dd-mm-yy). No. of depreciation months is 36. It then calculates the depreciation ending date to 29-01-08. I agree with that, but if I change the depreciation starting date to 31-01-05, it calculates the depreciation ending date to be 29-01-08. The exact same date. I have entered the number of depreciation years again to make sure the calc is done once more.

Hmm, I can't figure out why the depreciation ending date is the same for two different dates (30-01-05 and 31-01-05). When using 31-01-05 as depreciation starting date I would suspect the ending date to be 30-01-08 and NOT 29-01-08.

Can anybody help here?

Comments

  • jannestigjannestig Member Posts: 1,000
    I had a look at this and it appears anytime you are the day before last day of the month, I tried this without ending in a leap year as well and still always the same result.

    I set up a vendor with a payment of 3Y (36M) and the date updated as you expected.

    I can only imagine there is some general reason why the date before the last day of the month is treated differently otherwise its an oversight.
  • zeonzeon Member Posts: 130
    Yes, I agree with you. It seems to happen whenever the depreciation starting day is the last day in the month e.g the 31-01-05. It does only occur for months with 31 days.

    I have not found an explanation for this, yet...
  • jannestigjannestig Member Posts: 1,000
    I remember something about this and why FA has its own calculation code units here is the code below you can see why it does it according to the code

    There is some logic in here to enforce different accounting methodologies




    IF NumberOfDays <= 0 THEN
    EXIT(StartingDate);
    Years := DATE2DMY(StartingDate,3);
    Months := DATE2DMY(StartingDate,2);
    Days := DATE2DMY(StartingDate,1);
    IF DATE2DMY(StartingDate + 1,1) = 1 THEN
    Days := 30;
    Days := Days + NumberOfDays;
    Months := Months + (Days DIV 30);
    Days := Days MOD 30;
    IF Days = 0 THEN BEGIN
    Days := 30;
    Months := Months - 1;
    END;
    Years := Years + (Months DIV 12);
    Months := Months MOD 12;
    IF Months = 0 THEN BEGIN
    Months := 12;
    Years := Years - 1;
    END;
    IF (Months = 2) AND (Days > 28) THEN BEGIN
    Days := 28;
    LocalDate := DMY2DATE(28,2,Years) + 1;
    IF DATE2DMY(LocalDate,1) = 29 THEN
    Days := 29;
    END;
    CASE Months OF
    1,3,5,7,8,10,12:
    IF Days = 30 THEN
    Days := 31;
    END;
    EXIT(DMY2DATE(Days,Months,Years));
  • rsfairbanksrsfairbanks Member Posts: 107
    It works on a 30 day month, so there is no depreciation charge for 31st of any month, and an extra charge on the last day of February.
Sign In or Register to comment.