fix: removed unnecessary fields from Campaign DocType and other fixes in Email Campaign
This commit is contained in:
parent
324ab98b99
commit
d23a95c06e
@ -11,38 +11,34 @@ from frappe.core.doctype.communication.email import make
|
|||||||
|
|
||||||
class EmailCampaign(Document):
|
class EmailCampaign(Document):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_dates()
|
self.set_date()
|
||||||
#checking if email is set for lead. Not checking for contact as email is a mandatory field for contact.
|
#checking if email is set for lead. Not checking for contact as email is a mandatory field for contact.
|
||||||
if self.email_campaign_for == "Lead":
|
if self.email_campaign_for == "Lead":
|
||||||
self.validate_lead()
|
self.validate_lead()
|
||||||
self.validate_email_campaign_already_exists()
|
self.validate_email_campaign_already_exists()
|
||||||
self.update_status()
|
self.update_status()
|
||||||
|
|
||||||
def validate_dates(self):
|
def set_date(self):
|
||||||
campaign = frappe.get_doc("Campaign", self.campaign_name)
|
if getdate(self.start_date) < getdate(today()):
|
||||||
|
frappe.throw(_("Start Date cannot be before the current date"))
|
||||||
#email campaign cannot start before campaign
|
|
||||||
if campaign.from_date and getdate(self.start_date) < getdate(campaign.from_date):
|
|
||||||
frappe.throw(_("Email Campaign Start Date cannot be before Campaign Start Date"))
|
|
||||||
|
|
||||||
#set the end date as start date + max(send after days) in campaign schedule
|
#set the end date as start date + max(send after days) in campaign schedule
|
||||||
send_after_days = []
|
send_after_days = []
|
||||||
|
campaign = frappe.get_doc("Campaign", self.campaign_name)
|
||||||
for entry in campaign.get("campaign_schedules"):
|
for entry in campaign.get("campaign_schedules"):
|
||||||
send_after_days.append(entry.send_after_days)
|
send_after_days.append(entry.send_after_days)
|
||||||
end_date = add_days(getdate(self.start_date), max(send_after_days))
|
try:
|
||||||
|
end_date = add_days(getdate(self.start_date), max(send_after_days))
|
||||||
if campaign.to_date and getdate(end_date) > getdate(campaign.to_date):
|
except ValueError:
|
||||||
frappe.throw(_("Email Schedule cannot extend Campaign End Date"))
|
frappe.throw(_("Please set up the Campaign Schedule in the Campaign {0}").format(self.campaign_name))
|
||||||
else:
|
|
||||||
self.end_date = end_date
|
|
||||||
|
|
||||||
def validate_lead(self):
|
def validate_lead(self):
|
||||||
lead_email_id = frappe.db.get_value("Lead", self.recipient, 'email_id')
|
lead_email_id = frappe.db.get_value("Lead", self.recipient, 'email_id')
|
||||||
if not lead_email_id:
|
if not lead_email_id:
|
||||||
frappe.throw(_("Please set an email id for lead communication"))
|
lead_name = frappe.db.get_value("Lead", self.recipient, 'lead_name')
|
||||||
|
frappe.throw(_("Please set an email id for the Lead {0}").format(lead_name))
|
||||||
|
|
||||||
def validate_email_campaign_already_exists(self):
|
def validate_email_campaign_already_exists(self):
|
||||||
if frappe.db.get_value("Email Campaign", {"campaign_name": self.campaign_name, "recipient": self.recipient, "status": "In Progress"}):
|
if frappe.db.get_value("Email Campaign", {"campaign_name": self.campaign_name, "recipient": self.recipient, "status": ("in", ["In Progress", "Scheduled"])}):
|
||||||
frappe.throw(_("The Campaign '{0}' already exists for the {1} '{2}'").format(self.campaign_name, self.email_campaign_for, self.recipient))
|
frappe.throw(_("The Campaign '{0}' already exists for the {1} '{2}'").format(self.campaign_name, self.email_campaign_for, self.recipient))
|
||||||
|
|
||||||
def update_status(self):
|
def update_status(self):
|
||||||
|
|||||||
@ -11,14 +11,6 @@
|
|||||||
"campaign",
|
"campaign",
|
||||||
"campaign_name",
|
"campaign_name",
|
||||||
"naming_series",
|
"naming_series",
|
||||||
"from_date",
|
|
||||||
"column_break1",
|
|
||||||
"status",
|
|
||||||
"to_date",
|
|
||||||
"budget_section",
|
|
||||||
"currency",
|
|
||||||
"column_break2",
|
|
||||||
"budget",
|
|
||||||
"campaign_schedules_section",
|
"campaign_schedules_section",
|
||||||
"campaign_schedules",
|
"campaign_schedules",
|
||||||
"description_section",
|
"description_section",
|
||||||
@ -55,53 +47,10 @@
|
|||||||
"oldfieldtype": "Text",
|
"oldfieldtype": "Text",
|
||||||
"width": "300px"
|
"width": "300px"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"default": "Planned",
|
|
||||||
"fieldname": "status",
|
|
||||||
"fieldtype": "Select",
|
|
||||||
"in_list_view": 1,
|
|
||||||
"label": "Status",
|
|
||||||
"options": "\nPlanned\nIn Progress\nCompleted\nCancelled",
|
|
||||||
"reqd": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "from_date",
|
|
||||||
"fieldtype": "Date",
|
|
||||||
"label": "From Date"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "to_date",
|
|
||||||
"fieldtype": "Date",
|
|
||||||
"label": "To Date"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "column_break1",
|
|
||||||
"fieldtype": "Column Break"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "budget",
|
|
||||||
"fieldtype": "Currency",
|
|
||||||
"label": "Budget"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"fieldname": "description_section",
|
"fieldname": "description_section",
|
||||||
"fieldtype": "Section Break"
|
"fieldtype": "Section Break"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"fieldname": "currency",
|
|
||||||
"fieldtype": "Link",
|
|
||||||
"label": "Currency",
|
|
||||||
"options": "Currency"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "column_break2",
|
|
||||||
"fieldtype": "Column Break"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "budget_section",
|
|
||||||
"fieldtype": "Section Break",
|
|
||||||
"label": "BUDGET"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"fieldname": "campaign_schedules",
|
"fieldname": "campaign_schedules",
|
||||||
"fieldtype": "Table",
|
"fieldtype": "Table",
|
||||||
@ -116,7 +65,7 @@
|
|||||||
],
|
],
|
||||||
"icon": "fa fa-bullhorn",
|
"icon": "fa fa-bullhorn",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"modified": "2019-07-15 17:45:06.168107",
|
"modified": "2019-07-22 12:03:39.832342",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Selling",
|
"module": "Selling",
|
||||||
"name": "Campaign",
|
"name": "Campaign",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user