diff --git a/crm/fcrm/doctype/crm_lead/crm_lead.py b/crm/fcrm/doctype/crm_lead/crm_lead.py index 7cafc54c..e7149479 100644 --- a/crm/fcrm/doctype/crm_lead/crm_lead.py +++ b/crm/fcrm/doctype/crm_lead/crm_lead.py @@ -161,13 +161,33 @@ class CRMLead(Document): def create_deal(self, contact, organization): deal = frappe.new_doc("CRM Deal") + + lead_deal_map = { + "name": "lead", + "lead_owner": "deal_owner", + } + + restricted_fieldtypes = ["Tab Break", "Section Break", "Column Break", "HTML", "Button", "Attach", "Table"] + restricted_map_fields = ["name", "naming_series", "creation", "owner", "modified", "modified_by", "idx", "docstatus", "status", "email", "mobile_no", "phone", "sla", "sla_status", "response_by", "first_response_time", "first_responded_on", "communication_status", "sla_creation"] + + for field in self.meta.fields: + if field.fieldtype in restricted_fieldtypes: + continue + if field.fieldname in restricted_map_fields: + continue + + fieldname = field.fieldname + if field.fieldname in lead_deal_map: + fieldname = lead_deal_map[field.fieldname] + + if hasattr(deal, fieldname): + if fieldname == "organization": + deal.update({fieldname: organization}) + else: + deal.update({fieldname: self.get(field.fieldname)}) + deal.update( { - "lead": self.name, - "organization": organization, - "deal_owner": self.lead_owner, - "source": self.source, - "lead_name": self.lead_name, "contacts": [{"contact": contact}], } ) diff --git a/frontend/src/pages/Deal.vue b/frontend/src/pages/Deal.vue index e6babe5e..0b7cdd0e 100644 --- a/frontend/src/pages/Deal.vue +++ b/frontend/src/pages/Deal.vue @@ -472,12 +472,6 @@ function getParsedFields(sections, contacts) { }) || [] } else { section.fields.forEach((field) => { - if ( - !deal.data.organization && - ['website', 'territory', 'annual_revenue'].includes(field.name) - ) { - field.hidden = true - } if (field.name == 'organization') { field.create = (value, close) => { _organization.value.organization_name = value