fix: clear deferred revenue/expense fields on uncheck (#57140)

This commit is contained in:
Vishnu Priya Baskaran
2026-07-29 04:18:45 +05:30
committed by GitHub
parent e0c31f1745
commit 5125d64b7f
2 changed files with 16 additions and 1 deletions

View File

@@ -55,3 +55,16 @@ class DeferredAccountingService:
def _is_deferred(self, item) -> bool:
return bool(item.get("enable_deferred_revenue") or item.get("enable_deferred_expense"))
def clear_stale_deferred_fields(self) -> None:
account_field = DEFERRED_ACCOUNT_FIELD.get(self.doc.doctype)
for item in self.doc.get("items"):
if self._is_deferred(item):
continue
item.service_start_date = None
item.service_end_date = None
item.service_stop_date = None
if account_field:
item.set(account_field, None)

View File

@@ -236,7 +236,9 @@ class AccountsController(TransactionBase):
else:
from erpnext.accounts.services.deferred_accounting import DeferredAccountingService
DeferredAccountingService(self).validate_start_and_end_date()
deferred_service = DeferredAccountingService(self)
deferred_service.clear_stale_deferred_fields()
deferred_service.validate_start_and_end_date()
from erpnext.accounts.services.internal_transfer import InternalTransferService