mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-19 02:04:50 +00:00
fix: incorrect total days calculation
(cherry picked from commit fccd37d32d)
This commit is contained in:
@@ -848,11 +848,10 @@ def _get_daily_prorata_based_default_wdv_or_dd_depr_amount(
|
|||||||
total_days = date_diff(to_date, from_date) + 1
|
total_days = date_diff(to_date, from_date) + 1
|
||||||
return (per_day_depr * total_days), per_day_depr
|
return (per_day_depr * total_days), per_day_depr
|
||||||
else:
|
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)
|
fb_row.depreciation_start_date, schedule_idx, cint(fb_row.frequency_of_depreciation)
|
||||||
)
|
)
|
||||||
days_in_month = date_diff(to_date, from_date) + 1
|
return flt(depreciable_value) * (flt(fb_row.rate_of_depreciation) / 100), None
|
||||||
return (prev_per_day_depr * days_in_month), prev_per_day_depr
|
|
||||||
|
|
||||||
if has_wdv_or_dd_non_yearly_pro_rata:
|
if has_wdv_or_dd_non_yearly_pro_rata:
|
||||||
if schedule_idx == 0:
|
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
|
from_date = asset.available_for_use_date
|
||||||
to_date = add_days(fb_row.depreciation_start_date, -1)
|
to_date = add_days(fb_row.depreciation_start_date, -1)
|
||||||
total_days = date_diff(to_date, from_date) + 1
|
total_days = date_diff(to_date, from_date) + 1
|
||||||
|
|
||||||
return (per_day_depr * total_days), per_day_depr
|
return (per_day_depr * total_days), per_day_depr
|
||||||
|
|
||||||
elif schedule_idx % (12 / cint(fb_row.frequency_of_depreciation)) == 1:
|
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)
|
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)
|
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
|
return (per_day_depr * days_in_month), per_day_depr
|
||||||
|
|
||||||
else:
|
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)
|
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 (prev_per_day_depr * days_in_month), prev_per_day_depr
|
||||||
else:
|
else:
|
||||||
if schedule_idx % (12 / cint(fb_row.frequency_of_depreciation)) == 0:
|
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)
|
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)
|
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
|
return (per_day_depr * days_in_month), per_day_depr
|
||||||
else:
|
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)
|
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 (prev_per_day_depr * days_in_month), prev_per_day_depr
|
||||||
|
|
||||||
|
|
||||||
@@ -904,10 +898,13 @@ def get_per_day_depr(
|
|||||||
return 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)
|
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)
|
to_date = add_months(from_date, frequency_of_depreciation)
|
||||||
return from_date, to_date
|
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):
|
def make_draft_asset_depr_schedules_if_not_present(asset_doc):
|
||||||
|
|||||||
Reference in New Issue
Block a user