fix: pass required deal fields value while converting to deal
This commit is contained in:
parent
3c865c37a7
commit
3afa8c2d72
@ -197,8 +197,8 @@ class CRMLead(Document):
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def create_deal(self, contact, organization):
|
def create_deal(self, contact, organization, deal=None):
|
||||||
deal = frappe.new_doc("CRM Deal")
|
new_deal = frappe.new_doc("CRM Deal")
|
||||||
|
|
||||||
lead_deal_map = {
|
lead_deal_map = {
|
||||||
"lead_owner": "deal_owner",
|
"lead_owner": "deal_owner",
|
||||||
@ -245,13 +245,13 @@ class CRMLead(Document):
|
|||||||
if field.fieldname in lead_deal_map:
|
if field.fieldname in lead_deal_map:
|
||||||
fieldname = lead_deal_map[field.fieldname]
|
fieldname = lead_deal_map[field.fieldname]
|
||||||
|
|
||||||
if hasattr(deal, fieldname):
|
if hasattr(new_deal, fieldname):
|
||||||
if fieldname == "organization":
|
if fieldname == "organization":
|
||||||
deal.update({fieldname: organization})
|
new_deal.update({fieldname: organization})
|
||||||
else:
|
else:
|
||||||
deal.update({fieldname: self.get(field.fieldname)})
|
new_deal.update({fieldname: self.get(field.fieldname)})
|
||||||
|
|
||||||
deal.update(
|
new_deal.update(
|
||||||
{
|
{
|
||||||
"lead": self.name,
|
"lead": self.name,
|
||||||
"contacts": [{"contact": contact}],
|
"contacts": [{"contact": contact}],
|
||||||
@ -259,7 +259,7 @@ class CRMLead(Document):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if self.first_responded_on:
|
if self.first_responded_on:
|
||||||
deal.update(
|
new_deal.update(
|
||||||
{
|
{
|
||||||
"sla_creation": self.sla_creation,
|
"sla_creation": self.sla_creation,
|
||||||
"response_by": self.response_by,
|
"response_by": self.response_by,
|
||||||
@ -270,8 +270,11 @@ class CRMLead(Document):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
deal.insert(ignore_permissions=True)
|
if deal:
|
||||||
return deal.name
|
new_deal.update(deal)
|
||||||
|
|
||||||
|
new_deal.insert(ignore_permissions=True)
|
||||||
|
return new_deal.name
|
||||||
|
|
||||||
def set_sla(self):
|
def set_sla(self):
|
||||||
"""
|
"""
|
||||||
@ -297,8 +300,8 @@ class CRMLead(Document):
|
|||||||
if sla:
|
if sla:
|
||||||
sla.apply(self)
|
sla.apply(self)
|
||||||
|
|
||||||
def convert_to_deal(self):
|
def convert_to_deal(self, deal=None):
|
||||||
return convert_to_deal(lead=self.name, doc=self)
|
return convert_to_deal(lead=self.name, doc=self, deal=deal)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_non_filterable_fields():
|
def get_non_filterable_fields():
|
||||||
@ -380,7 +383,7 @@ class CRMLead(Document):
|
|||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def convert_to_deal(lead, doc=None):
|
def convert_to_deal(lead, doc=None, deal=None):
|
||||||
if not (doc and doc.flags.get("ignore_permissions")) and not frappe.has_permission(
|
if not (doc and doc.flags.get("ignore_permissions")) and not frappe.has_permission(
|
||||||
"CRM Lead", "write", lead
|
"CRM Lead", "write", lead
|
||||||
):
|
):
|
||||||
@ -394,5 +397,5 @@ def convert_to_deal(lead, doc=None):
|
|||||||
lead.db_set("communication_status", "Replied")
|
lead.db_set("communication_status", "Replied")
|
||||||
contact = lead.create_contact(False)
|
contact = lead.create_contact(False)
|
||||||
organization = lead.create_organization()
|
organization = lead.create_organization()
|
||||||
deal = lead.create_deal(contact, organization)
|
_deal = lead.create_deal(contact, organization, deal)
|
||||||
return deal
|
return _deal
|
||||||
|
|||||||
@ -646,9 +646,9 @@ async function convertToDeal(updated) {
|
|||||||
)
|
)
|
||||||
showConvertToDealModal.value = false
|
showConvertToDealModal.value = false
|
||||||
} else {
|
} else {
|
||||||
let deal = await call(
|
let _deal = await call(
|
||||||
'crm.fcrm.doctype.crm_lead.crm_lead.convert_to_deal',
|
'crm.fcrm.doctype.crm_lead.crm_lead.convert_to_deal',
|
||||||
{ lead: lead.data.name },
|
{ lead: lead.data.name, deal },
|
||||||
).catch((err) => {
|
).catch((err) => {
|
||||||
createToast({
|
createToast({
|
||||||
title: __('Error converting to deal'),
|
title: __('Error converting to deal'),
|
||||||
@ -657,12 +657,12 @@ async function convertToDeal(updated) {
|
|||||||
iconClasses: 'text-ink-red-4',
|
iconClasses: 'text-ink-red-4',
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
if (deal) {
|
if (_deal) {
|
||||||
capture('convert_lead_to_deal')
|
capture('convert_lead_to_deal')
|
||||||
if (updated) {
|
if (updated) {
|
||||||
await contacts.reload()
|
await contacts.reload()
|
||||||
}
|
}
|
||||||
router.push({ name: 'Deal', params: { dealId: deal } })
|
router.push({ name: 'Deal', params: { dealId: _deal } })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user