validate quotation to lead or customer
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index ab6e4ba..f12f396 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -23,7 +23,7 @@
self.validate_order_type()
self.validate_for_items()
self.validate_uom_is_integer("stock_uom", "qty")
- self.quotation_to = "Customer" if self.customer else "Lead"
+ self.validate_quotation_to()
def has_sales_order(self):
return frappe.db.get_value("Sales Order Item", {"prevdoc_docname": self.name, "docstatus": 1})
@@ -54,6 +54,13 @@
if is_sales_item == 'No':
frappe.throw(_("Item {0} must be Sales Item").format(d.item_code))
+ def validate_quotation_to(self):
+ if self.customer:
+ self.quotation_to = "Customer"
+ self.lead = None
+ elif self.lead:
+ self.quotation_to = "Lead"
+
def update_opportunity(self):
for opportunity in list(set([d.prevdoc_docname for d in self.get("quotation_details")])):
if opportunity:
@@ -139,8 +146,8 @@
return doclist
def _make_customer(source_name, ignore_permissions=False):
- quotation = frappe.db.get_value("Quotation", source_name, ["lead", "order_type"])
- if quotation and quotation[0]:
+ quotation = frappe.db.get_value("Quotation", source_name, ["lead", "order_type", "customer"])
+ if quotation and quotation[0] and not quotation[2]:
lead_name = quotation[0]
customer_name = frappe.db.get_value("Customer", {"lead_name": lead_name},
["name", "customer_name"], as_dict=True)