fixes in email validation for recurring invoice
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 4df061e..4563532 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -511,3 +511,17 @@
}
cur_frm.cscript.notify(doc, args);
}
+
+cur_frm.cscript.invoice_period_from_date = function(doc, dt, dn) {
+ if(doc.invoice_period_from_date) {
+ var recurring_type_map = { 'Monthly': 1, 'Quarterly': 3, 'Half-yearly': 6, 'Yearly': 12 };
+
+ var months = $(recurring_type_map).attr(doc.recurring_type);
+ if(months) {
+ var to_date = wn.datetime.add_months(doc.invoice_period_from_date,
+ months);
+ doc.invoice_period_to_date = wn.datetime.add_days(to_date, -1);
+ refresh_field('invoice_period_to_date');
+ }
+ }
+}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 2d0a9f2..9139c95 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -681,31 +681,37 @@
#-------------------------------------------------------------------------------------
def set_default_recurring_values(self):
+ from webnotes.utils import cstr
+
owner_email = self.doc.owner
if owner_email.lower() == 'administrator':
- owner_email = webnotes.conn.sql("select ifnull(email, '') \
- from `tabProfile` where name = 'Administrator'")[0][0]
+ owner_email = cstr(webnotes.conn.get_value("Profile", "Administrator", "email"))
+
ret = {
'repeat_on_day_of_month' : getdate(self.doc.posting_date).day,
- 'notification_email_address' : ', '.join([cstr(owner_email), self.doc.contact_email])
+ 'notification_email_address' : ', '.join([owner_email, cstr(self.doc.contact_email)]),
}
return ret
def validate_notification_email_id(self):
- from webnotes.utils import validate_email_add
- email_ids = self.doc.notification_email_address.replace('\n', '').replace(' ', '').split(",")
- for add in email_ids:
- if add and not validate_email_add(add):
- msgprint("%s is not a valid email address" % add, raise_exception=1)
+ if self.doc.notification_email_address:
+ from webnotes.utils import validate_email_add
+ for add in self.doc.notification_email_address.replace('\n', '').replace(' ', '').split(","):
+ if add and not validate_email_add(add):
+ msgprint("%s is not a valid email address" % add, raise_exception=1)
+ else:
+ msgprint("Notification Email Addresses not specified for recurring invoice",
+ raise_exception=1)
def on_update_after_submit(self):
- self.validate_notification_email_id()
self.convert_into_recurring()
def convert_into_recurring(self):
if self.doc.convert_into_recurring_invoice:
+ self.validate_notification_email_id()
+
if not self.doc.recurring_type:
msgprint("Please select recurring type", raise_exception=1)
elif not self.doc.invoice_period_from_date or not self.doc.invoice_period_to_date: