Merge branch 'master' of github.com:webnotes/erpnext into unicode
This commit is contained in:
commit
7118086658
@ -24,6 +24,7 @@ from webnotes.model.doc import Document, addchild, getchildren, make_autoname
|
|||||||
from webnotes.model.doclist import getlist, copy_doclist, clone
|
from webnotes.model.doclist import getlist, copy_doclist, clone
|
||||||
from webnotes.model.code import get_obj
|
from webnotes.model.code import get_obj
|
||||||
from webnotes import session, form, is_testing, msgprint, errprint
|
from webnotes import session, form, is_testing, msgprint, errprint
|
||||||
|
from webnotes.utils.email_lib import sendmail
|
||||||
|
|
||||||
in_transaction = webnotes.conn.in_transaction
|
in_transaction = webnotes.conn.in_transaction
|
||||||
convert_to_lists = webnotes.conn.convert_to_lists
|
convert_to_lists = webnotes.conn.convert_to_lists
|
||||||
@ -491,14 +492,78 @@ def manage_recurring_invoices():
|
|||||||
rv = webnotes.conn.sql("""select name, recurring_id from `tabSales Invoice` \
|
rv = webnotes.conn.sql("""select name, recurring_id from `tabSales Invoice` \
|
||||||
where ifnull(convert_into_recurring_invoice, 0) = 1 and next_date = %s \
|
where ifnull(convert_into_recurring_invoice, 0) = 1 and next_date = %s \
|
||||||
and next_date <= ifnull(end_date, '2199-12-31') and docstatus=1""", nowdate())
|
and next_date <= ifnull(end_date, '2199-12-31') and docstatus=1""", nowdate())
|
||||||
|
|
||||||
|
|
||||||
|
exception_list = []
|
||||||
for d in rv:
|
for d in rv:
|
||||||
if not webnotes.conn.sql("""select name from `tabSales Invoice` \
|
if not webnotes.conn.sql("""select name from `tabSales Invoice` \
|
||||||
where posting_date = %s and recurring_id = %s and docstatus=1""", (nowdate(), d[1])):
|
where posting_date = %s and recurring_id = %s and docstatus=1""", (nowdate(), d[1])):
|
||||||
prev_rv = get_obj('Sales Invoice', d[0], with_children=1)
|
try:
|
||||||
new_rv = create_new_invoice(prev_rv)
|
prev_rv = get_obj('Sales Invoice', d[0], with_children=1)
|
||||||
|
new_rv = create_new_invoice(prev_rv)
|
||||||
|
|
||||||
send_notification(new_rv)
|
send_notification(new_rv)
|
||||||
|
webnotes.conn.commit()
|
||||||
|
except Exception, e:
|
||||||
|
webnotes.conn.rollback()
|
||||||
|
|
||||||
|
webnotes.conn.begin()
|
||||||
|
webnotes.conn.sql("update `tabSales Invoice` set \
|
||||||
|
convert_into_recurring_invoice = 0 where name = %s", d[0])
|
||||||
|
notify_errors(d[0], prev_rv.doc.owner)
|
||||||
|
webnotes.conn.commit()
|
||||||
|
|
||||||
|
exception_list.append(e)
|
||||||
|
finally:
|
||||||
|
webnotes.conn.begin()
|
||||||
|
|
||||||
|
if exception_list:
|
||||||
|
exception_message = "\n\n".join([cstr(d) for d in exception_list])
|
||||||
|
raise Exception, exception_message
|
||||||
|
|
||||||
|
|
||||||
|
def notify_errors(inv, owner):
|
||||||
|
exception_msg = """
|
||||||
|
Dear User,
|
||||||
|
|
||||||
|
An error occured while creating recurring invoice from %s.
|
||||||
|
|
||||||
|
May be there are some invalid email ids mentioned in the invoice.
|
||||||
|
|
||||||
|
To stop sending repetitive error notifications from the system, we have unchecked \
|
||||||
|
"Convert into Recurring" field in the invoice %s.
|
||||||
|
|
||||||
|
|
||||||
|
Please correct the invoice and make the invoice recurring again.
|
||||||
|
|
||||||
|
<b>It is necessary to take this action today itself for the above mentioned recurring invoice \
|
||||||
|
to be generated. If delayed, you will have to manually change the "Repeat on Day of Month" field \
|
||||||
|
of this invoice for generating the recurring invoice.</b>
|
||||||
|
|
||||||
|
Regards,
|
||||||
|
Administrator
|
||||||
|
|
||||||
|
""" % (inv, inv)
|
||||||
|
subj = "[Urgent] Error while creating recurring invoice from %s" % inv
|
||||||
|
import webnotes.utils
|
||||||
|
recipients = webnotes.utils.get_system_managers_list()
|
||||||
|
recipients += ['support@erpnext.com', owner]
|
||||||
|
assign_task_to_owner(inv, exception_msg, recipients)
|
||||||
|
sendmail(recipients, subject=subj, msg = exception_msg)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def assign_task_to_owner(inv, msg, users):
|
||||||
|
for d in users:
|
||||||
|
from webnotes.widgets.form import assign_to
|
||||||
|
args = {
|
||||||
|
'assign_to' : d,
|
||||||
|
'doctype' : 'Sales Invoice',
|
||||||
|
'name' : inv,
|
||||||
|
'description' : msg,
|
||||||
|
'priority' : 'Urgent'
|
||||||
|
}
|
||||||
|
assign_to.add(args)
|
||||||
|
|
||||||
|
|
||||||
def create_new_invoice(prev_rv):
|
def create_new_invoice(prev_rv):
|
||||||
@ -596,5 +661,5 @@ def send_notification(new_rv):
|
|||||||
|
|
||||||
|
|
||||||
msg = hd + tbl + totals
|
msg = hd + tbl + totals
|
||||||
from webnotes.utils.email_lib import sendmail
|
recipients = new_rv.doc.notification_email_address.replace('\n', '').replace(' ', '').split(",")
|
||||||
sendmail(new_rv.doc.notification_email_address.split(", "), subject=subject, msg = msg)
|
sendmail(recipients, subject=subject, msg = msg)
|
||||||
|
@ -237,7 +237,7 @@ class DocType:
|
|||||||
|
|
||||||
def update_serial_no(self, sr_no, rate):
|
def update_serial_no(self, sr_no, rate):
|
||||||
""" update valuation rate in serial no"""
|
""" update valuation rate in serial no"""
|
||||||
sr_no = sr_no.split('\n')
|
sr_no = cstr(sr_no).split('\n')
|
||||||
for d in sr_no:
|
for d in sr_no:
|
||||||
sql("update `tabSerial No` set purchase_rate = %s where name = %s", (rate, d))
|
sql("update `tabSerial No` set purchase_rate = %s where name = %s", (rate, d))
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
|
|||||||
else{
|
else{
|
||||||
return 'SELECT `tabItem`.name, `tabItem`.item_name, `tabItem`.description \
|
return 'SELECT `tabItem`.name, `tabItem`.item_name, `tabItem`.description \
|
||||||
FROM `tabItem` \
|
FROM `tabItem` \
|
||||||
WHERE `tabItem`.docstatus != 2 AND `tabItem`.name LIKE "%s" ORDER BY `tabItem`.name ASC LIMIT 50';
|
WHERE `tabItem`.docstatus != 2 AND `tabItem`.%(key)s LIKE "%s" ORDER BY `tabItem`.name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user