fix: incorrect total days calculation

(cherry picked from commit fccd37d32d)
This commit is contained in:
Khushi Rawat
2024-04-29 16:27:13 +05:30
committed by Mergify
parent c335c2c85a
commit 01b25b5821

View File

@@ -848,11 +848,10 @@ def _get_daily_prorata_based_default_wdv_or_dd_depr_amount(
total_days = date_diff(to_date, from_date) + 1
return (per_day_depr * total_days), per_day_depr
else:
from_date, to_date = get_dates(
from_date, days_in_month = _get_total_days(
fb_row.depreciation_start_date, schedule_idx, cint(fb_row.frequency_of_depreciation)
)
days_in_month = date_diff(to_date, from_date) + 1
return (prev_per_day_depr * days_in_month), prev_per_day_depr
return flt(depreciable_value) * (flt(fb_row.rate_of_depreciation) / 100), None
if has_wdv_or_dd_non_yearly_pro_rata:
if schedule_idx == 0:
@@ -860,36 +859,31 @@ def _get_daily_prorata_based_default_wdv_or_dd_depr_amount(
from_date = asset.available_for_use_date
to_date = add_days(fb_row.depreciation_start_date, -1)
total_days = date_diff(to_date, from_date) + 1
return (per_day_depr * total_days), per_day_depr
elif schedule_idx % (12 / cint(fb_row.frequency_of_depreciation)) == 1:
from_date, to_date = get_dates(
from_date, days_in_month = _get_total_days(
fb_row.depreciation_start_date, schedule_idx, cint(fb_row.frequency_of_depreciation)
)
per_day_depr = get_per_day_depr(fb_row, depreciable_value, from_date)
days_in_month = date_diff(to_date, from_date) + 1
return (per_day_depr * days_in_month), per_day_depr
else:
from_date, to_date = get_dates(
from_date, days_in_month = _get_total_days(
fb_row.depreciation_start_date, schedule_idx, cint(fb_row.frequency_of_depreciation)
)
days_in_month = date_diff(to_date, from_date) + 1
return (prev_per_day_depr * days_in_month), prev_per_day_depr
else:
if schedule_idx % (12 / cint(fb_row.frequency_of_depreciation)) == 0:
from_date, to_date = get_dates(
from_date, days_in_month = _get_total_days(
fb_row.depreciation_start_date, schedule_idx, cint(fb_row.frequency_of_depreciation)
)
per_day_depr = get_per_day_depr(fb_row, depreciable_value, from_date)
days_in_month = date_diff(to_date, from_date) + 1
return (per_day_depr * days_in_month), per_day_depr
else:
from_date, to_date = get_dates(
from_date, days_in_month = _get_total_days(
fb_row.depreciation_start_date, schedule_idx, cint(fb_row.frequency_of_depreciation)
)
days_in_month = date_diff(to_date, from_date) + 1
return (prev_per_day_depr * days_in_month), prev_per_day_depr
@@ -904,10 +898,13 @@ def get_per_day_depr(
return per_day_depr
def get_dates(depreciation_start_date, schedule_idx, frequency_of_depreciation):
def _get_total_days(depreciation_start_date, schedule_idx, frequency_of_depreciation):
from_date = add_months(depreciation_start_date, (schedule_idx - 1) * frequency_of_depreciation)
to_date = add_days(add_months(from_date, frequency_of_depreciation), -1)
return from_date, to_date
to_date = add_months(from_date, frequency_of_depreciation)
if is_last_day_of_the_month(depreciation_start_date):
to_date = get_last_day(to_date)
from_date = get_last_day(from_date)
return from_date, date_diff(to_date, from_date)
def make_draft_asset_depr_schedules_if_not_present(asset_doc):