Opportunity Items fetching into Request for quotation
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index 8bc7ad8..da0ade7 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -84,19 +84,11 @@
self.delete_events()
def has_active_quotation(self):
- if not self.with_items:
- return frappe.get_all('Quotation',
- {
- 'opportunity': self.name,
- 'status': ("not in", ['Lost', 'Closed']),
- 'docstatus': 1
- }, 'name')
- else:
- return frappe.db.sql("""
- select q.name
- from `tabQuotation` q, `tabQuotation Item` qi
- where q.name = qi.parent and q.docstatus=1 and qi.prevdoc_docname =%s
- and q.status not in ('Lost', 'Closed')""", self.name)
+ return frappe.db.sql("""
+ select q.name
+ from `tabQuotation` q, `tabQuotation Item` qi
+ where q.name = qi.parent and q.docstatus=1 and qi.prevdoc_docname =%s
+ and q.status not in ('Lost', 'Closed')""", self.name)
def has_ordered_quotation(self):
return frappe.db.sql("""
@@ -194,6 +186,27 @@
}
@frappe.whitelist()
+def make_request_for_quotation(source_name, target_doc=None):
+ doclist = get_mapped_doc("Opportunity", source_name, {
+ "Opportunity": {
+ "doctype": "Request for Quotation",
+ "validation": {
+ "enquiry_type": ["=", "Sales"]
+ }
+ },
+ "Opportunity Item": {
+ "doctype": "Request for Quotation Item",
+ "field_map": [
+ ["name", "opportunity_item"],
+ ["parent", "opportunity"],
+ ["uom", "uom"]
+ ]
+ }
+ }, target_doc)
+
+ return doclist
+
+@frappe.whitelist()
def make_quotation(source_name, target_doc=None):
def set_missing_values(source, target):
from erpnext.controllers.accounts_controller import get_default_taxes_and_charges
@@ -220,8 +233,6 @@
quotation.run_method("set_missing_values")
quotation.run_method("calculate_taxes_and_totals")
- if not source.with_items:
- quotation.opportunity = source.name
doclist = get_mapped_doc("Opportunity", source_name, {
"Opportunity": {
@@ -247,6 +258,7 @@
@frappe.whitelist()
def make_supplier_quotation(source_name, target_doc=None):
+ frappe.msgprint("python");
doclist = get_mapped_doc("Opportunity", source_name, {
"Opportunity": {
"doctype": "Supplier Quotation",
@@ -261,9 +273,11 @@
}
}
}, target_doc)
-
+
return doclist
+
+
@frappe.whitelist()
def set_multiple_status(names, status):
names = json.loads(names)
@@ -284,4 +298,4 @@
doc.status = "Closed"
doc.flags.ignore_permissions = True
doc.flags.ignore_mandatory = True
- doc.save()
\ No newline at end of file
+ doc.save()