Merge pull request #21384 from anupamvs/email-camp-end-date

fix: set end_date in Email Campaign
This commit is contained in:
Rucha Mahabal 2020-04-24 20:04:34 +05:30 committed by GitHub
commit d124581044
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 1 deletions

View File

@ -27,7 +27,7 @@ class EmailCampaign(Document):
for entry in campaign.get("campaign_schedules"):
send_after_days.append(entry.send_after_days)
try:
end_date = add_days(getdate(self.start_date), max(send_after_days))
self.end_date = add_days(getdate(self.start_date), max(send_after_days))
except ValueError:
frappe.throw(_("Please set up the Campaign Schedule in the Campaign {0}").format(self.campaign_name))

View File

@ -669,3 +669,4 @@ erpnext.patches.v12_0.set_total_batch_quantity
erpnext.patches.v12_0.rename_mws_settings_fields
erpnext.patches.v12_0.set_updated_purpose_in_pick_list
erpnext.patches.v12_0.repost_stock_ledger_entries_for_target_warehouse
erpnext.patches.v12_0.update_end_date_and_status_in_email_campaign

View File

@ -0,0 +1,24 @@
from __future__ import unicode_literals
import frappe
from frappe.utils import add_days, getdate, today
def execute():
if frappe.db.exists('DocType', 'Email Campaign'):
email_campaign = frappe.get_all('Email Campaign')
for campaign in email_campaign:
doc = frappe.get_doc("Email Campaign",campaign["name"])
send_after_days = []
camp = frappe.get_doc("Campaign", doc.campaign_name)
for entry in camp.get("campaign_schedules"):
send_after_days.append(entry.send_after_days)
if send_after_days:
end_date = add_days(getdate(doc.start_date), max(send_after_days))
doc.db_set("end_date", end_date)
today_date = getdate(today())
if doc.start_date > today_date:
doc.db_set("status", "Scheduled")
elif end_date >= today_date:
doc.db_set("status", "In Progress")
elif end_date < today_date:
doc.db_set("status", "Completed")