mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-21 05:59:18 +00:00
chore: add some validation, shorten some function names
This commit is contained in:
@@ -24,7 +24,7 @@ from erpnext.accounts.utils import (
|
|||||||
get_stock_and_account_balance,
|
get_stock_and_account_balance,
|
||||||
)
|
)
|
||||||
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
||||||
get_depr_schedule_from_asset_depr_schedule_of_asset,
|
get_depr_schedule,
|
||||||
)
|
)
|
||||||
from erpnext.controllers.accounts_controller import AccountsController
|
from erpnext.controllers.accounts_controller import AccountsController
|
||||||
|
|
||||||
@@ -287,9 +287,7 @@ class JournalEntry(AccountsController):
|
|||||||
if d.reference_type == "Asset" and d.reference_name:
|
if d.reference_type == "Asset" and d.reference_name:
|
||||||
asset = frappe.get_doc("Asset", d.reference_name)
|
asset = frappe.get_doc("Asset", d.reference_name)
|
||||||
for row in asset.get("finance_books"):
|
for row in asset.get("finance_books"):
|
||||||
depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(
|
depr_schedule = get_depr_schedule(asset.name, row.finance_book)
|
||||||
asset.name, row.finance_book
|
|
||||||
)
|
|
||||||
|
|
||||||
for s in depr_schedule:
|
for s in depr_schedule:
|
||||||
if s.journal_entry == self.name:
|
if s.journal_entry == self.name:
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ frappe.ui.form.on('Asset', {
|
|||||||
|
|
||||||
if (frm.doc.finance_books.length == 1) {
|
if (frm.doc.finance_books.length == 1) {
|
||||||
depr_schedule = (await frappe.call(
|
depr_schedule = (await frappe.call(
|
||||||
"erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule.get_depr_schedule_from_asset_depr_schedule_of_asset",
|
"erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule.get_depr_schedule",
|
||||||
{
|
{
|
||||||
asset_name: frm.doc.name,
|
asset_name: frm.doc.name,
|
||||||
finance_book: frm.doc.finance_books[0].finance_book || null
|
finance_book: frm.doc.finance_books[0].finance_book || null
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ from erpnext.assets.doctype.asset_category.asset_category import get_asset_categ
|
|||||||
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
||||||
cancel_asset_depr_schedules,
|
cancel_asset_depr_schedules,
|
||||||
convert_draft_asset_depr_schedules_into_active,
|
convert_draft_asset_depr_schedules_into_active,
|
||||||
get_asset_depr_schedule_doc_of_asset,
|
get_asset_depr_schedule_doc,
|
||||||
get_depr_schedule_from_asset_depr_schedule_of_asset,
|
get_depr_schedule,
|
||||||
make_draft_asset_depr_schedules,
|
make_draft_asset_depr_schedules,
|
||||||
set_draft_asset_depr_schedule_details,
|
set_draft_asset_depr_schedule_details,
|
||||||
update_draft_asset_depr_schedules,
|
update_draft_asset_depr_schedules,
|
||||||
@@ -50,6 +50,7 @@ class Asset(AccountsController):
|
|||||||
self.set_missing_values()
|
self.set_missing_values()
|
||||||
if not self.split_from:
|
if not self.split_from:
|
||||||
self.prepare_depreciation_data()
|
self.prepare_depreciation_data()
|
||||||
|
update_draft_asset_depr_schedules(self)
|
||||||
self.validate_gross_and_purchase_amount()
|
self.validate_gross_and_purchase_amount()
|
||||||
self.validate_expected_value_after_useful_life()
|
self.validate_expected_value_after_useful_life()
|
||||||
|
|
||||||
@@ -98,7 +99,6 @@ class Asset(AccountsController):
|
|||||||
if self.calculate_depreciation:
|
if self.calculate_depreciation:
|
||||||
self.value_after_depreciation = 0
|
self.value_after_depreciation = 0
|
||||||
self.set_depreciation_rate()
|
self.set_depreciation_rate()
|
||||||
update_draft_asset_depr_schedules(self)
|
|
||||||
else:
|
else:
|
||||||
self.finance_books = []
|
self.finance_books = []
|
||||||
self.value_after_depreciation = flt(self.gross_purchase_amount) - flt(
|
self.value_after_depreciation = flt(self.gross_purchase_amount) - flt(
|
||||||
@@ -350,13 +350,11 @@ class Asset(AccountsController):
|
|||||||
return depreciation_amount_for_last_row
|
return depreciation_amount_for_last_row
|
||||||
|
|
||||||
def get_depreciation_amount_for_first_row(self, finance_book):
|
def get_depreciation_amount_for_first_row(self, finance_book):
|
||||||
return get_depr_schedule_from_asset_depr_schedule_of_asset(self.name, finance_book)[
|
return get_depr_schedule(self.name, finance_book)[0].depreciation_amount
|
||||||
0
|
|
||||||
].depreciation_amount
|
|
||||||
|
|
||||||
def validate_expected_value_after_useful_life(self):
|
def validate_expected_value_after_useful_life(self):
|
||||||
for row in self.get("finance_books"):
|
for row in self.get("finance_books"):
|
||||||
depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(self.name, row.finance_book)
|
depr_schedule = get_depr_schedule(self.name, row.finance_book)
|
||||||
|
|
||||||
if not depr_schedule:
|
if not depr_schedule:
|
||||||
continue
|
continue
|
||||||
@@ -412,7 +410,7 @@ class Asset(AccountsController):
|
|||||||
|
|
||||||
def delete_depreciation_entries(self):
|
def delete_depreciation_entries(self):
|
||||||
for row in self.get("finance_books"):
|
for row in self.get("finance_books"):
|
||||||
depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(self.name, row.finance_book)
|
depr_schedule = get_depr_schedule(self.name, row.finance_book)
|
||||||
|
|
||||||
for d in depr_schedule.get("depreciation_schedule"):
|
for d in depr_schedule.get("depreciation_schedule"):
|
||||||
if d.journal_entry:
|
if d.journal_entry:
|
||||||
@@ -900,9 +898,7 @@ def update_existing_asset(asset, remaining_qty, new_asset_name):
|
|||||||
expected_value_after_useful_life,
|
expected_value_after_useful_life,
|
||||||
)
|
)
|
||||||
|
|
||||||
current_asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(
|
current_asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, row.finance_book)
|
||||||
asset.name, row.finance_book
|
|
||||||
)
|
|
||||||
new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
|
new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
|
||||||
|
|
||||||
set_draft_asset_depr_schedule_details(new_asset_depr_schedule_doc, asset, row)
|
set_draft_asset_depr_schedule_details(new_asset_depr_schedule_doc, asset, row)
|
||||||
@@ -947,9 +943,7 @@ def create_new_asset_after_split(asset, split_qty):
|
|||||||
(row.expected_value_after_useful_life * split_qty) / asset.asset_quantity
|
(row.expected_value_after_useful_life * split_qty) / asset.asset_quantity
|
||||||
)
|
)
|
||||||
|
|
||||||
current_asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(
|
current_asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, row.finance_book)
|
||||||
asset.name, row.finance_book
|
|
||||||
)
|
|
||||||
new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
|
new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
|
||||||
|
|
||||||
set_draft_asset_depr_schedule_details(new_asset_depr_schedule_doc, new_asset, row)
|
set_draft_asset_depr_schedule_details(new_asset_depr_schedule_doc, new_asset, row)
|
||||||
@@ -973,9 +967,7 @@ def create_new_asset_after_split(asset, split_qty):
|
|||||||
new_asset.set_status()
|
new_asset.set_status()
|
||||||
|
|
||||||
for row in new_asset.get("finance_books"):
|
for row in new_asset.get("finance_books"):
|
||||||
depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(
|
depr_schedule = get_depr_schedule(new_asset.name, row.finance_book)
|
||||||
new_asset.name, row.finance_book
|
|
||||||
)
|
|
||||||
for term in depr_schedule:
|
for term in depr_schedule:
|
||||||
# Update references in JV
|
# Update references in JV
|
||||||
if term.journal_entry:
|
if term.journal_entry:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import (
|
|||||||
from erpnext.accounts.doctype.journal_entry.journal_entry import make_reverse_journal_entry
|
from erpnext.accounts.doctype.journal_entry.journal_entry import make_reverse_journal_entry
|
||||||
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
||||||
get_asset_depr_schedule_name,
|
get_asset_depr_schedule_name,
|
||||||
get_depr_schedule_from_asset_depr_schedule_of_asset,
|
get_depr_schedule,
|
||||||
get_temp_asset_depr_schedule_doc,
|
get_temp_asset_depr_schedule_doc,
|
||||||
make_new_active_asset_depr_schedules_and_cancel_current_ones,
|
make_new_active_asset_depr_schedules_and_cancel_current_ones,
|
||||||
)
|
)
|
||||||
@@ -300,7 +300,7 @@ def modify_depreciation_schedule_for_asset_repairs(asset):
|
|||||||
|
|
||||||
def reverse_depreciation_entry_made_after_disposal(asset, date):
|
def reverse_depreciation_entry_made_after_disposal(asset, date):
|
||||||
for row in asset.get("finance_books"):
|
for row in asset.get("finance_books"):
|
||||||
depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(asset, row.finance_book)
|
depr_schedule = get_depr_schedule(asset, row.finance_book)
|
||||||
|
|
||||||
for schedule_idx, schedule in enumerate(depr_schedule):
|
for schedule_idx, schedule in enumerate(depr_schedule):
|
||||||
if schedule.schedule_date == date:
|
if schedule.schedule_date == date:
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
|
from frappe import _
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.utils import (
|
from frappe.utils import (
|
||||||
add_days,
|
add_days,
|
||||||
@@ -17,7 +18,18 @@ import erpnext
|
|||||||
|
|
||||||
|
|
||||||
class AssetDepreciationSchedule(Document):
|
class AssetDepreciationSchedule(Document):
|
||||||
pass
|
def validate(self):
|
||||||
|
self.validate_another_asset_depr_schedule_does_not_exist()
|
||||||
|
|
||||||
|
def validate_another_asset_depr_schedule_does_not_exist(self):
|
||||||
|
asset_depr_schedule_name = get_asset_depr_schedule_name(self.asset, self.finance_book)
|
||||||
|
|
||||||
|
if asset_depr_schedule_name:
|
||||||
|
frappe.throw(
|
||||||
|
_("Asset Depreciation Schedule for Asset {0} and Finance Book {1} already exists.").format(
|
||||||
|
self.asset, self.finance_book
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def make_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_return=None):
|
def make_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_return=None):
|
||||||
@@ -33,7 +45,7 @@ def make_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_re
|
|||||||
|
|
||||||
def update_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_return=None):
|
def update_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_return=None):
|
||||||
for row in asset_doc.get("finance_books"):
|
for row in asset_doc.get("finance_books"):
|
||||||
asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_doc.name, row.finance_book)
|
asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
|
||||||
|
|
||||||
prepare_draft_asset_depr_schedule_data(
|
prepare_draft_asset_depr_schedule_data(
|
||||||
asset_depr_schedule_doc, asset_doc, row, date_of_disposal, date_of_return
|
asset_depr_schedule_doc, asset_doc, row, date_of_disposal, date_of_return
|
||||||
@@ -67,7 +79,7 @@ def set_draft_asset_depr_schedule_details(asset_depr_schedule_doc, asset_doc, ro
|
|||||||
|
|
||||||
def convert_draft_asset_depr_schedules_into_active(asset_doc):
|
def convert_draft_asset_depr_schedules_into_active(asset_doc):
|
||||||
for row in asset_doc.get("finance_books"):
|
for row in asset_doc.get("finance_books"):
|
||||||
asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_doc.name, row.finance_book)
|
asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
|
||||||
|
|
||||||
asset_depr_schedule_doc.status = "Active"
|
asset_depr_schedule_doc.status = "Active"
|
||||||
|
|
||||||
@@ -78,9 +90,7 @@ def make_new_active_asset_depr_schedules_and_cancel_current_ones(
|
|||||||
asset_doc, notes, date_of_disposal=None, date_of_return=None
|
asset_doc, notes, date_of_disposal=None, date_of_return=None
|
||||||
):
|
):
|
||||||
for row in asset_doc.get("finance_books"):
|
for row in asset_doc.get("finance_books"):
|
||||||
current_asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(
|
current_asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
|
||||||
asset_doc.name, row.finance_book
|
|
||||||
)
|
|
||||||
|
|
||||||
new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
|
new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
|
||||||
|
|
||||||
@@ -106,7 +116,7 @@ def get_temp_asset_depr_schedule_doc(asset_doc, row, date_of_disposal=None, date
|
|||||||
|
|
||||||
def cancel_asset_depr_schedules(asset_doc):
|
def cancel_asset_depr_schedules(asset_doc):
|
||||||
for row in asset_doc.get("finance_books"):
|
for row in asset_doc.get("finance_books"):
|
||||||
asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_doc.name, row.finance_book)
|
asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
|
||||||
|
|
||||||
asset_depr_schedule_doc.status = "Cancelled"
|
asset_depr_schedule_doc.status = "Cancelled"
|
||||||
|
|
||||||
@@ -129,13 +139,13 @@ def get_asset_depr_schedule_name(asset_name, finance_book):
|
|||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_depr_schedule_from_asset_depr_schedule_of_asset(asset_name, finance_book):
|
def get_depr_schedule(asset_name, finance_book):
|
||||||
asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_name, finance_book)
|
asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_name, finance_book)
|
||||||
|
|
||||||
return asset_depr_schedule_doc.get("depreciation_schedule")
|
return asset_depr_schedule_doc.get("depreciation_schedule")
|
||||||
|
|
||||||
|
|
||||||
def get_asset_depr_schedule_doc_of_asset(asset_name, finance_book):
|
def get_asset_depr_schedule_doc(asset_name, finance_book):
|
||||||
asset_depr_schedule_name = get_asset_depr_schedule_name(asset_name, finance_book)
|
asset_depr_schedule_name = get_asset_depr_schedule_name(asset_name, finance_book)
|
||||||
|
|
||||||
if not asset_depr_schedule_name:
|
if not asset_depr_schedule_name:
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import erpnext
|
|||||||
from erpnext.accounts.general_ledger import make_gl_entries
|
from erpnext.accounts.general_ledger import make_gl_entries
|
||||||
from erpnext.assets.doctype.asset.asset import get_asset_account
|
from erpnext.assets.doctype.asset.asset import get_asset_account
|
||||||
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
|
||||||
get_depr_schedule_from_asset_depr_schedule_of_asset,
|
get_depr_schedule,
|
||||||
make_new_active_asset_depr_schedules_and_cancel_current_ones,
|
make_new_active_asset_depr_schedules_and_cancel_current_ones,
|
||||||
)
|
)
|
||||||
from erpnext.controllers.accounts_controller import AccountsController
|
from erpnext.controllers.accounts_controller import AccountsController
|
||||||
@@ -285,7 +285,7 @@ class AssetRepair(AccountsController):
|
|||||||
asset.number_of_depreciations_booked
|
asset.number_of_depreciations_booked
|
||||||
)
|
)
|
||||||
|
|
||||||
depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(asset.name, row.finance_book)
|
depr_schedule = get_depr_schedule(asset.name, row.finance_book)
|
||||||
|
|
||||||
# the Schedule Date in the final row of the old Depreciation Schedule
|
# the Schedule Date in the final row of the old Depreciation Schedule
|
||||||
last_schedule_date = depr_schedule[len(depr_schedule) - 1].schedule_date
|
last_schedule_date = depr_schedule[len(depr_schedule) - 1].schedule_date
|
||||||
@@ -318,7 +318,7 @@ class AssetRepair(AccountsController):
|
|||||||
asset.number_of_depreciations_booked
|
asset.number_of_depreciations_booked
|
||||||
)
|
)
|
||||||
|
|
||||||
depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(asset.name, row.finance_book)
|
depr_schedule = get_depr_schedule(asset.name, row.finance_book)
|
||||||
|
|
||||||
# the Schedule Date in the final row of the modified Depreciation Schedule
|
# the Schedule Date in the final row of the modified Depreciation Schedule
|
||||||
last_schedule_date = depr_schedule[len(depr_schedule) - 1].schedule_date
|
last_schedule_date = depr_schedule[len(depr_schedule) - 1].schedule_date
|
||||||
|
|||||||
Reference in New Issue
Block a user