validate changing service stop date once its set
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 1e5166f..f071a06 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -534,15 +534,23 @@
frappe.throw(_("Could not update stock, invoice contains drop shipping item."))
def validate_service_stop_date(self):
- frappe.errprint("here")
+ old_doc = frappe.db.get_all("Sales Invoice Item", {"parent": self.name}, ["name", "service_stop_date"])
+ old_stop_dates = {}
+ for d in old_doc:
+ old_stop_dates[d.name] = d.service_stop_date or ""
+
for item in self.items:
- print(date_diff(item.service_stop_date, item.service_start_date))
if item.enable_deferred_revenue:
+ print(vars(item))
if date_diff(item.service_stop_date, item.service_start_date) < 0:
frappe.throw(_("Service Stop Date cannot be before Service Start Date"))
- elif date_diff(item.service_stop_date, item.service_end_date) > 0:
+
+ if date_diff(item.service_stop_date, item.service_end_date) > 0:
frappe.throw(_("Service Stop Date cannot be after Service End Date"))
+ if old_stop_dates[item.name] and item.service_stop_date!=old_stop_dates[item.name]:
+ frappe.throw(_("Cannot change Service Stop Date for item in row {0}".format(item.idx)))
+
def update_current_stock(self):
for d in self.get('items'):
if d.item_code and d.warehouse: