fix: Reverse depreciation entry made on sale if asset that was set to be sold in the future gets returned
This commit is contained in:
parent
b9fb59da58
commit
796ed947ce
@ -952,6 +952,7 @@ class SalesInvoice(SellingController):
|
|||||||
asset.db_set("disposal_date", None)
|
asset.db_set("disposal_date", None)
|
||||||
|
|
||||||
if asset.calculate_depreciation:
|
if asset.calculate_depreciation:
|
||||||
|
self.reverse_depreciation_entry_made_after_sale(asset)
|
||||||
self.reset_depreciation_schedule(asset)
|
self.reset_depreciation_schedule(asset)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@ -1029,8 +1030,6 @@ class SalesInvoice(SellingController):
|
|||||||
self.modify_depreciation_schedule_for_asset_repairs(asset)
|
self.modify_depreciation_schedule_for_asset_repairs(asset)
|
||||||
asset.save()
|
asset.save()
|
||||||
|
|
||||||
self.delete_depreciation_entry_made_after_sale(asset)
|
|
||||||
|
|
||||||
def modify_depreciation_schedule_for_asset_repairs(self, asset):
|
def modify_depreciation_schedule_for_asset_repairs(self, asset):
|
||||||
asset_repairs = frappe.get_all(
|
asset_repairs = frappe.get_all(
|
||||||
'Asset Repair',
|
'Asset Repair',
|
||||||
@ -1044,7 +1043,7 @@ class SalesInvoice(SellingController):
|
|||||||
asset_repair.modify_depreciation_schedule()
|
asset_repair.modify_depreciation_schedule()
|
||||||
asset.prepare_depreciation_data()
|
asset.prepare_depreciation_data()
|
||||||
|
|
||||||
def delete_depreciation_entry_made_after_sale(self, asset):
|
def reverse_depreciation_entry_made_after_sale(self, asset):
|
||||||
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
|
||||||
|
|
||||||
posting_date_of_original_invoice = self.get_posting_date_of_sales_invoice()
|
posting_date_of_original_invoice = self.get_posting_date_of_sales_invoice()
|
||||||
@ -1059,7 +1058,8 @@ class SalesInvoice(SellingController):
|
|||||||
row += 1
|
row += 1
|
||||||
|
|
||||||
if schedule.schedule_date == posting_date_of_original_invoice:
|
if schedule.schedule_date == posting_date_of_original_invoice:
|
||||||
if not self.sale_was_made_on_original_schedule_date(asset, schedule, row, posting_date_of_original_invoice):
|
if not self.sale_was_made_on_original_schedule_date(asset, schedule, row, posting_date_of_original_invoice) \
|
||||||
|
or self.sale_happens_in_the_future(posting_date_of_original_invoice):
|
||||||
reverse_journal_entry = make_reverse_journal_entry(schedule.journal_entry)
|
reverse_journal_entry = make_reverse_journal_entry(schedule.journal_entry)
|
||||||
reverse_journal_entry.posting_date = nowdate()
|
reverse_journal_entry.posting_date = nowdate()
|
||||||
reverse_journal_entry.submit()
|
reverse_journal_entry.submit()
|
||||||
@ -1078,6 +1078,12 @@ class SalesInvoice(SellingController):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def sale_happens_in_the_future(self, posting_date_of_original_invoice):
|
||||||
|
if posting_date_of_original_invoice > getdate():
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enable_discount_accounting(self):
|
def enable_discount_accounting(self):
|
||||||
if not hasattr(self, "_enable_discount_accounting"):
|
if not hasattr(self, "_enable_discount_accounting"):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user