Merge pull request #29900 from nextchamp-saqib/asset-fix-#3
fix(asset): no. of depr booked cannot be equal to total no. of depr
This commit is contained in:
commit
2a69730a40
@ -417,11 +417,12 @@ class Asset(AccountsController):
|
|||||||
def validate_asset_finance_books(self, row):
|
def validate_asset_finance_books(self, row):
|
||||||
if flt(row.expected_value_after_useful_life) >= flt(self.gross_purchase_amount):
|
if flt(row.expected_value_after_useful_life) >= flt(self.gross_purchase_amount):
|
||||||
frappe.throw(_("Row {0}: Expected Value After Useful Life must be less than Gross Purchase Amount")
|
frappe.throw(_("Row {0}: Expected Value After Useful Life must be less than Gross Purchase Amount")
|
||||||
.format(row.idx))
|
.format(row.idx), title=_("Invalid Schedule"))
|
||||||
|
|
||||||
if not row.depreciation_start_date:
|
if not row.depreciation_start_date:
|
||||||
if not self.available_for_use_date:
|
if not self.available_for_use_date:
|
||||||
frappe.throw(_("Row {0}: Depreciation Start Date is required").format(row.idx))
|
frappe.throw(_("Row {0}: Depreciation Start Date is required")
|
||||||
|
.format(row.idx), title=_("Invalid Schedule"))
|
||||||
row.depreciation_start_date = get_last_day(self.available_for_use_date)
|
row.depreciation_start_date = get_last_day(self.available_for_use_date)
|
||||||
|
|
||||||
if not self.is_existing_asset:
|
if not self.is_existing_asset:
|
||||||
@ -439,8 +440,9 @@ class Asset(AccountsController):
|
|||||||
else:
|
else:
|
||||||
self.number_of_depreciations_booked = 0
|
self.number_of_depreciations_booked = 0
|
||||||
|
|
||||||
if cint(self.number_of_depreciations_booked) > cint(row.total_number_of_depreciations):
|
if flt(row.total_number_of_depreciations) <= cint(self.number_of_depreciations_booked):
|
||||||
frappe.throw(_("Number of Depreciations Booked cannot be greater than Total Number of Depreciations"))
|
frappe.throw(_("Row {0}: Total Number of Depreciations cannot be less than or equal to Number of Depreciations Booked")
|
||||||
|
.format(row.idx), title=_("Invalid Schedule"))
|
||||||
|
|
||||||
if row.depreciation_start_date and getdate(row.depreciation_start_date) < getdate(self.purchase_date):
|
if row.depreciation_start_date and getdate(row.depreciation_start_date) < getdate(self.purchase_date):
|
||||||
frappe.throw(_("Depreciation Row {0}: Next Depreciation Date cannot be before Purchase Date")
|
frappe.throw(_("Depreciation Row {0}: Next Depreciation Date cannot be before Purchase Date")
|
||||||
|
@ -873,8 +873,9 @@ class TestDepreciationBasics(AssetSetup):
|
|||||||
self.assertRaises(frappe.ValidationError, asset.save)
|
self.assertRaises(frappe.ValidationError, asset.save)
|
||||||
|
|
||||||
def test_number_of_depreciations(self):
|
def test_number_of_depreciations(self):
|
||||||
"""Tests if an error is raised when number_of_depreciations_booked > total_number_of_depreciations."""
|
"""Tests if an error is raised when number_of_depreciations_booked >= total_number_of_depreciations."""
|
||||||
|
|
||||||
|
# number_of_depreciations_booked > total_number_of_depreciations
|
||||||
asset = create_asset(
|
asset = create_asset(
|
||||||
item_code = "Macbook Pro",
|
item_code = "Macbook Pro",
|
||||||
calculate_depreciation = 1,
|
calculate_depreciation = 1,
|
||||||
@ -889,6 +890,21 @@ class TestDepreciationBasics(AssetSetup):
|
|||||||
|
|
||||||
self.assertRaises(frappe.ValidationError, asset.save)
|
self.assertRaises(frappe.ValidationError, asset.save)
|
||||||
|
|
||||||
|
# number_of_depreciations_booked = total_number_of_depreciations
|
||||||
|
asset_2 = create_asset(
|
||||||
|
item_code = "Macbook Pro",
|
||||||
|
calculate_depreciation = 1,
|
||||||
|
available_for_use_date = "2019-12-31",
|
||||||
|
total_number_of_depreciations = 5,
|
||||||
|
expected_value_after_useful_life = 10000,
|
||||||
|
depreciation_start_date = "2020-07-01",
|
||||||
|
opening_accumulated_depreciation = 10000,
|
||||||
|
number_of_depreciations_booked = 5,
|
||||||
|
do_not_save = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertRaises(frappe.ValidationError, asset_2.save)
|
||||||
|
|
||||||
def test_depreciation_start_date_is_before_purchase_date(self):
|
def test_depreciation_start_date_is_before_purchase_date(self):
|
||||||
asset = create_asset(
|
asset = create_asset(
|
||||||
item_code = "Macbook Pro",
|
item_code = "Macbook Pro",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user