fix: bug in new depr schedule
This commit is contained in:
parent
7d09440579
commit
96ede2fcf9
@ -246,16 +246,6 @@ class Asset(AccountsController):
|
|||||||
|
|
||||||
return value_after_depreciation
|
return value_after_depreciation
|
||||||
|
|
||||||
def get_from_date(self, finance_book):
|
|
||||||
asset_depr_schedule_name = get_asset_depr_schedule_name(self.name, finance_book)
|
|
||||||
|
|
||||||
if not asset_depr_schedule_name:
|
|
||||||
return self.available_for_use_date
|
|
||||||
|
|
||||||
asset_depr_schedule_doc = frappe.get_doc("Asset Depreciation Schedule", asset_depr_schedule_name)
|
|
||||||
|
|
||||||
return asset_depr_schedule_doc.get("depreciation_schedule")[-1].schedule_date
|
|
||||||
|
|
||||||
# if it returns True, depreciation_amount will not be equal for the first and last rows
|
# if it returns True, depreciation_amount will not be equal for the first and last rows
|
||||||
def check_is_pro_rata(self, row):
|
def check_is_pro_rata(self, row):
|
||||||
has_pro_rata = False
|
has_pro_rata = False
|
||||||
|
|||||||
@ -96,11 +96,7 @@ def make_new_active_asset_depr_schedules_and_cancel_current_ones(
|
|||||||
"Asset Depreciation Schedule", current_asset_depr_schedule_name
|
"Asset Depreciation Schedule", current_asset_depr_schedule_name
|
||||||
)
|
)
|
||||||
|
|
||||||
new_asset_depr_schedule_doc = frappe.copy_doc(
|
new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
|
||||||
current_asset_depr_schedule_doc, ignore_no_copy=False
|
|
||||||
)
|
|
||||||
|
|
||||||
current_asset_depr_schedule_doc.cancel()
|
|
||||||
|
|
||||||
make_depr_schedule(new_asset_depr_schedule_doc, asset_doc, row, date_of_disposal)
|
make_depr_schedule(new_asset_depr_schedule_doc, asset_doc, row, date_of_disposal)
|
||||||
set_accumulated_depreciation(
|
set_accumulated_depreciation(
|
||||||
@ -109,6 +105,8 @@ def make_new_active_asset_depr_schedules_and_cancel_current_ones(
|
|||||||
|
|
||||||
new_asset_depr_schedule_doc.notes = notes
|
new_asset_depr_schedule_doc.notes = notes
|
||||||
|
|
||||||
|
current_asset_depr_schedule_doc.cancel()
|
||||||
|
|
||||||
new_asset_depr_schedule_doc.submit()
|
new_asset_depr_schedule_doc.submit()
|
||||||
|
|
||||||
|
|
||||||
@ -170,30 +168,19 @@ def make_depr_schedule(asset_depr_schedule_doc, asset_doc, row, date_of_disposal
|
|||||||
|
|
||||||
|
|
||||||
def clear_depr_schedule(asset_depr_schedule_doc):
|
def clear_depr_schedule(asset_depr_schedule_doc):
|
||||||
start = []
|
start = 0
|
||||||
num_of_depreciations_completed = 0
|
num_of_depreciations_completed = 0
|
||||||
depr_schedule = []
|
depr_schedule = []
|
||||||
|
|
||||||
for schedule in asset_depr_schedule_doc.get("depreciation_schedule"):
|
for schedule in asset_depr_schedule_doc.get("depreciation_schedule"):
|
||||||
if len(start) != 0:
|
|
||||||
break
|
|
||||||
|
|
||||||
if schedule.journal_entry:
|
if schedule.journal_entry:
|
||||||
num_of_depreciations_completed += 1
|
num_of_depreciations_completed += 1
|
||||||
depr_schedule.append(schedule)
|
depr_schedule.append(schedule)
|
||||||
else:
|
else:
|
||||||
start.append(num_of_depreciations_completed)
|
start = num_of_depreciations_completed
|
||||||
num_of_depreciations_completed = 0
|
break
|
||||||
|
|
||||||
# to update start when all the schedule rows corresponding to the FB are linked with JEs
|
asset_depr_schedule_doc.depreciation_schedule = depr_schedule
|
||||||
if len(start) == 0:
|
|
||||||
start.append(num_of_depreciations_completed)
|
|
||||||
|
|
||||||
# when the Depreciation Schedule is being created for the first time
|
|
||||||
if start == []:
|
|
||||||
start = [0]
|
|
||||||
else:
|
|
||||||
asset_depr_schedule_doc.depreciation_schedule = depr_schedule
|
|
||||||
|
|
||||||
return start
|
return start
|
||||||
|
|
||||||
@ -215,7 +202,7 @@ def _make_depr_schedule(asset_depr_schedule_doc, asset_doc, row, start, date_of_
|
|||||||
skip_row = False
|
skip_row = False
|
||||||
should_get_last_day = is_last_day_of_the_month(row.depreciation_start_date)
|
should_get_last_day = is_last_day_of_the_month(row.depreciation_start_date)
|
||||||
|
|
||||||
for n in range(start[row.idx - 1], number_of_pending_depreciations):
|
for n in range(start, number_of_pending_depreciations):
|
||||||
# If depreciation is already completed (for double declining balance)
|
# If depreciation is already completed (for double declining balance)
|
||||||
if skip_row:
|
if skip_row:
|
||||||
continue
|
continue
|
||||||
@ -234,7 +221,10 @@ def _make_depr_schedule(asset_depr_schedule_doc, asset_doc, row, start, date_of_
|
|||||||
|
|
||||||
# if asset is being sold or scrapped
|
# if asset is being sold or scrapped
|
||||||
if date_of_disposal:
|
if date_of_disposal:
|
||||||
from_date = asset_doc.get_from_date(row.finance_book)
|
from_date = asset_doc.available_for_use_date
|
||||||
|
if asset_depr_schedule_doc.depreciation_schedule:
|
||||||
|
from_date = asset_depr_schedule_doc.depreciation_schedule[-1].schedule_date
|
||||||
|
|
||||||
depreciation_amount, days, months = asset_doc.get_pro_rata_amt(
|
depreciation_amount, days, months = asset_doc.get_pro_rata_amt(
|
||||||
row, depreciation_amount, from_date, date_of_disposal
|
row, depreciation_amount, from_date, date_of_disposal
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,318 +1,102 @@
|
|||||||
{
|
{
|
||||||
"allow_copy": 0,
|
"actions": [],
|
||||||
"allow_guest_to_view": 0,
|
"allow_rename": 1,
|
||||||
"allow_import": 0,
|
"creation": "2016-03-02 15:11:01.278862",
|
||||||
"allow_rename": 1,
|
"doctype": "DocType",
|
||||||
"autoname": "",
|
"document_type": "Document",
|
||||||
"beta": 0,
|
"editable_grid": 1,
|
||||||
"creation": "2016-03-02 15:11:01.278862",
|
"engine": "InnoDB",
|
||||||
"custom": 0,
|
"field_order": [
|
||||||
"docstatus": 0,
|
"finance_book",
|
||||||
"doctype": "DocType",
|
"schedule_date",
|
||||||
"document_type": "Document",
|
"depreciation_amount",
|
||||||
"editable_grid": 1,
|
"column_break_3",
|
||||||
"engine": "InnoDB",
|
"accumulated_depreciation_amount",
|
||||||
|
"journal_entry",
|
||||||
|
"make_depreciation_entry",
|
||||||
|
"finance_book_id",
|
||||||
|
"depreciation_method"
|
||||||
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "finance_book",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Link",
|
||||||
"bold": 0,
|
"in_list_view": 1,
|
||||||
"collapsible": 0,
|
"label": "Finance Book",
|
||||||
"columns": 0,
|
"options": "Finance Book",
|
||||||
"fieldname": "finance_book",
|
"read_only": 1
|
||||||
"fieldtype": "Link",
|
},
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Finance Book",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"options": "Finance Book",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "schedule_date",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Date",
|
||||||
"bold": 0,
|
"in_list_view": 1,
|
||||||
"collapsible": 0,
|
"label": "Schedule Date",
|
||||||
"columns": 0,
|
"reqd": 1
|
||||||
"fieldname": "schedule_date",
|
},
|
||||||
"fieldtype": "Date",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Schedule Date",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 1,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "depreciation_amount",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Currency",
|
||||||
"bold": 0,
|
"in_list_view": 1,
|
||||||
"collapsible": 0,
|
"label": "Depreciation Amount",
|
||||||
"columns": 0,
|
"options": "Company:company:default_currency",
|
||||||
"fieldname": "depreciation_amount",
|
"reqd": 1
|
||||||
"fieldtype": "Currency",
|
},
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Depreciation Amount",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"options": "Company:company:default_currency",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 1,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "column_break_3",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Column Break"
|
||||||
"bold": 0,
|
},
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "column_break_3",
|
|
||||||
"fieldtype": "Column Break",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "accumulated_depreciation_amount",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Currency",
|
||||||
"bold": 0,
|
"in_list_view": 1,
|
||||||
"collapsible": 0,
|
"label": "Accumulated Depreciation Amount",
|
||||||
"columns": 0,
|
"options": "Company:company:default_currency",
|
||||||
"fieldname": "accumulated_depreciation_amount",
|
"read_only": 1
|
||||||
"fieldtype": "Currency",
|
},
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Accumulated Depreciation Amount",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"options": "Company:company:default_currency",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"depends_on": "eval:doc.docstatus==1",
|
||||||
"allow_on_submit": 0,
|
"fieldname": "journal_entry",
|
||||||
"bold": 0,
|
"fieldtype": "Link",
|
||||||
"collapsible": 0,
|
"in_list_view": 1,
|
||||||
"columns": 0,
|
"label": "Journal Entry",
|
||||||
"depends_on": "eval:doc.docstatus==1",
|
"options": "Journal Entry",
|
||||||
"fieldname": "journal_entry",
|
"read_only": 1
|
||||||
"fieldtype": "Link",
|
},
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Journal Entry",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"options": "Journal Entry",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"allow_on_submit": 1,
|
||||||
"allow_on_submit": 1,
|
"depends_on": "eval:(doc.docstatus==1 && !doc.journal_entry && doc.schedule_date <= get_today())",
|
||||||
"bold": 0,
|
"fieldname": "make_depreciation_entry",
|
||||||
"collapsible": 0,
|
"fieldtype": "Button",
|
||||||
"columns": 0,
|
"label": "Make Depreciation Entry"
|
||||||
"depends_on": "eval:(doc.docstatus==1 && !doc.journal_entry && doc.schedule_date <= get_today())",
|
},
|
||||||
"fieldname": "make_depreciation_entry",
|
|
||||||
"fieldtype": "Button",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Make Depreciation Entry",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "finance_book_id",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Data",
|
||||||
"bold": 0,
|
"hidden": 1,
|
||||||
"collapsible": 0,
|
"label": "Finance Book Id",
|
||||||
"columns": 0,
|
"print_hide": 1,
|
||||||
"fieldname": "finance_book_id",
|
"read_only": 1
|
||||||
"fieldtype": "Data",
|
},
|
||||||
"hidden": 1,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Finance Book Id",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 1,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "depreciation_method",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Select",
|
||||||
"bold": 0,
|
"hidden": 1,
|
||||||
"collapsible": 0,
|
"label": "Depreciation Method",
|
||||||
"columns": 0,
|
"options": "\nStraight Line\nDouble Declining Balance\nWritten Down Value\nManual",
|
||||||
"fieldname": "depreciation_method",
|
"print_hide": 1,
|
||||||
"fieldtype": "Select",
|
"read_only": 1
|
||||||
"hidden": 1,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Depreciation Method",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"options": "\nStraight Line\nDouble Declining Balance\nWritten Down Value\nManual",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 1,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"has_web_view": 0,
|
"istable": 1,
|
||||||
"hide_heading": 0,
|
"links": [],
|
||||||
"hide_toolbar": 0,
|
"modified": "2022-11-29 18:27:05.748012",
|
||||||
"idx": 0,
|
"modified_by": "Administrator",
|
||||||
"image_view": 0,
|
"module": "Assets",
|
||||||
"in_create": 0,
|
"name": "Depreciation Schedule",
|
||||||
"is_submittable": 0,
|
"owner": "Administrator",
|
||||||
"issingle": 0,
|
"permissions": [],
|
||||||
"istable": 1,
|
"quick_entry": 1,
|
||||||
"max_attachments": 0,
|
"sort_field": "modified",
|
||||||
"modified": "2018-05-10 15:12:41.679436",
|
"sort_order": "DESC",
|
||||||
"modified_by": "Administrator",
|
"states": []
|
||||||
"module": "Assets",
|
|
||||||
"name": "Depreciation Schedule",
|
|
||||||
"name_case": "",
|
|
||||||
"owner": "Administrator",
|
|
||||||
"permissions": [],
|
|
||||||
"quick_entry": 1,
|
|
||||||
"read_only": 0,
|
|
||||||
"read_only_onload": 0,
|
|
||||||
"show_name_in_global_search": 0,
|
|
||||||
"sort_field": "modified",
|
|
||||||
"sort_order": "DESC",
|
|
||||||
"track_changes": 0,
|
|
||||||
"track_seen": 0
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user