fix(Asset Repair): Increase stock quantity and decrease asset value on cancellation

This commit is contained in:
GangaManoj 2021-06-21 15:22:02 +05:30
parent ad78888c86
commit 6c2f4ce6a5

View File

@ -24,9 +24,9 @@ class AssetRepair(AccountsController):
def calculate_total_repair_cost(self):
self.total_repair_cost = self.repair_cost
if self.get('stock_items'):
for item in self.get('stock_items'):
self.total_repair_cost += item.total_value
total_value_of_stock_consumed = self.get_total_value_of_stock_consumed()
self.total_repair_cost += total_value_of_stock_consumed
def on_submit(self):
self.check_repair_status()
@ -44,6 +44,14 @@ class AssetRepair(AccountsController):
self.asset_doc.flags.ignore_validate_update_after_submit = True
self.asset_doc.save()
def on_cancel(self):
if self.get('stock_consumption') or self.get('capitalize_repair_cost'):
self.decrease_asset_value()
if self.get('stock_consumption'):
self.increase_stock_quantity()
if self.get('capitalize_repair_cost'):
self.make_gl_entries(cancel=True)
def check_repair_status(self):
if self.repair_status == "Pending":
frappe.throw(_("Please update Repair Status."))
@ -55,10 +63,7 @@ class AssetRepair(AccountsController):
frappe.throw(_("Please enter Warehouse from which Stock Items consumed during the Repair were taken."), title=_("Missing Warehouse"))
def increase_asset_value(self):
total_value_of_stock_consumed = 0
if self.get('stock_consumption'):
for item in self.get('stock_items'):
total_value_of_stock_consumed += item.total_value
total_value_of_stock_consumed = self.get_total_value_of_stock_consumed()
if self.asset_doc.calculate_depreciation:
for row in self.asset_doc.finance_books:
@ -67,6 +72,24 @@ class AssetRepair(AccountsController):
if self.capitalize_repair_cost:
row.value_after_depreciation += self.repair_cost
def decrease_asset_value(self):
total_value_of_stock_consumed = self.get_total_value_of_stock_consumed()
if self.asset_doc.calculate_depreciation:
for row in self.asset_doc.finance_books:
row.value_after_depreciation -= total_value_of_stock_consumed
if self.capitalize_repair_cost:
row.value_after_depreciation -= self.repair_cost
def get_total_value_of_stock_consumed(self):
total_value_of_stock_consumed = 0
if self.get('stock_consumption'):
for item in self.get('stock_items'):
total_value_of_stock_consumed += item.total_value
return total_value_of_stock_consumed
def decrease_stock_quantity(self):
stock_entry = frappe.get_doc({
"doctype": "Stock Entry",
@ -86,8 +109,22 @@ class AssetRepair(AccountsController):
self.stock_entry = stock_entry.name
def on_cancel(self):
self.make_gl_entries(cancel=True)
def increase_stock_quantity(self):
stock_entry = frappe.get_doc({
"doctype": "Stock Entry",
"stock_entry_type": "Material Receipt",
"company": self.company
})
for stock_item in self.get('stock_items'):
stock_entry.append('items', {
"s_warehouse": self.warehouse,
"item_code": stock_item.item,
"qty": stock_item.consumed_quantity
})
stock_entry.insert()
stock_entry.submit()
def make_gl_entries(self, cancel=False):
if flt(self.repair_cost) > 0: