fix(Asset Repair): Increase stock quantity and decrease asset value on cancellation
This commit is contained in:
parent
ad78888c86
commit
6c2f4ce6a5
@ -24,9 +24,9 @@ class AssetRepair(AccountsController):
|
|||||||
|
|
||||||
def calculate_total_repair_cost(self):
|
def calculate_total_repair_cost(self):
|
||||||
self.total_repair_cost = self.repair_cost
|
self.total_repair_cost = self.repair_cost
|
||||||
if self.get('stock_items'):
|
|
||||||
for item in self.get('stock_items'):
|
total_value_of_stock_consumed = self.get_total_value_of_stock_consumed()
|
||||||
self.total_repair_cost += item.total_value
|
self.total_repair_cost += total_value_of_stock_consumed
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
self.check_repair_status()
|
self.check_repair_status()
|
||||||
@ -44,6 +44,14 @@ class AssetRepair(AccountsController):
|
|||||||
self.asset_doc.flags.ignore_validate_update_after_submit = True
|
self.asset_doc.flags.ignore_validate_update_after_submit = True
|
||||||
self.asset_doc.save()
|
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):
|
def check_repair_status(self):
|
||||||
if self.repair_status == "Pending":
|
if self.repair_status == "Pending":
|
||||||
frappe.throw(_("Please update Repair Status."))
|
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"))
|
frappe.throw(_("Please enter Warehouse from which Stock Items consumed during the Repair were taken."), title=_("Missing Warehouse"))
|
||||||
|
|
||||||
def increase_asset_value(self):
|
def increase_asset_value(self):
|
||||||
total_value_of_stock_consumed = 0
|
total_value_of_stock_consumed = self.get_total_value_of_stock_consumed()
|
||||||
if self.get('stock_consumption'):
|
|
||||||
for item in self.get('stock_items'):
|
|
||||||
total_value_of_stock_consumed += item.total_value
|
|
||||||
|
|
||||||
if self.asset_doc.calculate_depreciation:
|
if self.asset_doc.calculate_depreciation:
|
||||||
for row in self.asset_doc.finance_books:
|
for row in self.asset_doc.finance_books:
|
||||||
@ -67,6 +72,24 @@ class AssetRepair(AccountsController):
|
|||||||
if self.capitalize_repair_cost:
|
if self.capitalize_repair_cost:
|
||||||
row.value_after_depreciation += self.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):
|
def decrease_stock_quantity(self):
|
||||||
stock_entry = frappe.get_doc({
|
stock_entry = frappe.get_doc({
|
||||||
"doctype": "Stock Entry",
|
"doctype": "Stock Entry",
|
||||||
@ -86,8 +109,22 @@ class AssetRepair(AccountsController):
|
|||||||
|
|
||||||
self.stock_entry = stock_entry.name
|
self.stock_entry = stock_entry.name
|
||||||
|
|
||||||
def on_cancel(self):
|
def increase_stock_quantity(self):
|
||||||
self.make_gl_entries(cancel=True)
|
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):
|
def make_gl_entries(self, cancel=False):
|
||||||
if flt(self.repair_cost) > 0:
|
if flt(self.repair_cost) > 0:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user