test: auto email for ar report
This commit is contained in:
parent
f07f4ce86f
commit
a006b66e45
@ -371,7 +371,7 @@ def download_statements(document_name):
|
|||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def send_emails(document_name, from_scheduler=False):
|
def send_emails(document_name, from_scheduler=False, posting_date=None):
|
||||||
doc = frappe.get_doc("Process Statement Of Accounts", document_name)
|
doc = frappe.get_doc("Process Statement Of Accounts", document_name)
|
||||||
report = get_report_pdf(doc, consolidated=False)
|
report = get_report_pdf(doc, consolidated=False)
|
||||||
|
|
||||||
@ -403,7 +403,7 @@ def send_emails(document_name, from_scheduler=False):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if doc.enable_auto_email and from_scheduler:
|
if doc.enable_auto_email and from_scheduler:
|
||||||
new_to_date = getdate(today())
|
new_to_date = getdate(posting_date or today())
|
||||||
if doc.frequency == "Weekly":
|
if doc.frequency == "Weekly":
|
||||||
new_to_date = add_days(new_to_date, 7)
|
new_to_date = add_days(new_to_date, 7)
|
||||||
else:
|
else:
|
||||||
@ -414,6 +414,8 @@ def send_emails(document_name, from_scheduler=False):
|
|||||||
)
|
)
|
||||||
doc.db_set("to_date", new_to_date, commit=True)
|
doc.db_set("to_date", new_to_date, commit=True)
|
||||||
doc.db_set("from_date", new_from_date, commit=True)
|
doc.db_set("from_date", new_from_date, commit=True)
|
||||||
|
doc.db_set("posting_date", new_to_date, commit=True)
|
||||||
|
doc.db_set("report", doc.report, commit=True)
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
@ -423,7 +425,8 @@ def send_emails(document_name, from_scheduler=False):
|
|||||||
def send_auto_email():
|
def send_auto_email():
|
||||||
selected = frappe.get_list(
|
selected = frappe.get_list(
|
||||||
"Process Statement Of Accounts",
|
"Process Statement Of Accounts",
|
||||||
filters={"to_date": format_date(today()), "enable_auto_email": 1},
|
filters={"enable_auto_email": 1},
|
||||||
|
or_filters={"to_date": format_date(today()), "posting_date": format_date(today())},
|
||||||
)
|
)
|
||||||
for entry in selected:
|
for entry in selected:
|
||||||
send_emails(entry.name, from_scheduler=True)
|
send_emails(entry.name, from_scheduler=True)
|
||||||
|
@ -1,9 +1,42 @@
|
|||||||
# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
|
|
||||||
# import frappe
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
import frappe
|
||||||
|
from frappe.utils import add_days, getdate, today
|
||||||
|
|
||||||
|
from erpnext.accounts.doctype.process_statement_of_accounts.process_statement_of_accounts import (
|
||||||
|
send_emails,
|
||||||
|
)
|
||||||
|
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
|
||||||
|
|
||||||
|
|
||||||
class TestProcessStatementOfAccounts(unittest.TestCase):
|
class TestProcessStatementOfAccounts(unittest.TestCase):
|
||||||
pass
|
def setUp(self):
|
||||||
|
self.si = create_sales_invoice()
|
||||||
|
self.process_soa = create_process_soa()
|
||||||
|
|
||||||
|
def test_auto_email_for_process_soa_ar(self):
|
||||||
|
send_emails(self.process_soa.name, from_scheduler=True)
|
||||||
|
self.process_soa.load_from_db()
|
||||||
|
self.assertEqual(self.process_soa.posting_date, getdate(add_days(today(), 7)))
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
frappe.delete_doc_if_exists("Process Statement Of Accounts", "Test Process SOA")
|
||||||
|
|
||||||
|
|
||||||
|
def create_process_soa():
|
||||||
|
frappe.delete_doc_if_exists("Process Statement Of Accounts", "Test Process SOA")
|
||||||
|
process_soa = frappe.new_doc("Process Statement Of Accounts")
|
||||||
|
soa_dict = {
|
||||||
|
"name": "Test Process SOA",
|
||||||
|
"company": "_Test Company",
|
||||||
|
}
|
||||||
|
process_soa.update(soa_dict)
|
||||||
|
process_soa.set("customers", [{"customer": "_Test Customer"}])
|
||||||
|
process_soa.enable_auto_email = 1
|
||||||
|
process_soa.frequency = "Weekly"
|
||||||
|
process_soa.report = "Accounts Receivable"
|
||||||
|
process_soa.save()
|
||||||
|
return process_soa
|
||||||
|
Loading…
Reference in New Issue
Block a user