validate notification_email_ids in recurring invoice and if user is administrator set email id from profile
diff --git a/erpnext/accounts/doctype/gl_control/gl_control.py b/erpnext/accounts/doctype/gl_control/gl_control.py
index 78bfeec..5853132 100644
--- a/erpnext/accounts/doctype/gl_control/gl_control.py
+++ b/erpnext/accounts/doctype/gl_control/gl_control.py
@@ -553,6 +553,9 @@
def assign_task_to_owner(inv, msg, users):
for d in users:
+ if d.lower() == 'administrator':
+ d = webnotes.conn.sql("select ifnull(email_id, '') \
+ from `tabProfile` where name = 'Administrator'")[0][0]
from webnotes.widgets.form import assign_to
args = {
'assign_to' : d,
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index c69c5f8..4df061e 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -499,12 +499,9 @@
}
// Default values for recurring invoices
-cur_frm.cscript.convert_into_recurring_invoice = function(doc) {
- if (doc.convert_into_recurring_invoice) {
- doc.repeat_on_day_of_month = doc.posting_date.split('-')[2];
- doc.notification_email_address = [doc.owner, doc.contact_email].join(', ');
- refresh_field(['repeat_on_day_of_month', 'notification_email_address']);
- }
+cur_frm.cscript.convert_into_recurring_invoice = function(doc, dt, dn) {
+ if (doc.convert_into_recurring_invoice)
+ get_server_fields('set_default_recurring_values','','',doc, dt, dn, 0);
}
cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 82314ca..2d0a9f2 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -679,10 +679,31 @@
webnotes.conn.set(self.doc,'outstanding_amount',flt(self.doc.grand_total) - flt(self.doc.total_advance) - flt(self.doc.paid_amount) - flt(self.doc.write_off_amount))
#-------------------------------------------------------------------------------------
+
+ def set_default_recurring_values(self):
+ 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]
+ ret = {
+ 'repeat_on_day_of_month' : getdate(self.doc.posting_date).day,
+ 'notification_email_address' : ', '.join([cstr(owner_email), 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)
+
+
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:
if not self.doc.recurring_type: