Income/expense info in email digest

This commit is contained in:
Nabin Hait 2014-05-20 15:27:24 +05:30
parent 0e6554edc1
commit 44ae408b36
2 changed files with 45 additions and 48 deletions

View File

@ -96,7 +96,7 @@
{
"fieldname": "income_year_to_date",
"fieldtype": "Check",
"hidden": 1,
"hidden": 0,
"label": "Income Year to Date",
"permlevel": 0
},
@ -104,7 +104,7 @@
"description": "Income booked for the digest period",
"fieldname": "income",
"fieldtype": "Check",
"hidden": 1,
"hidden": 0,
"label": "Income Booked",
"permlevel": 0
},
@ -112,24 +112,10 @@
"description": "Expenses booked for the digest period",
"fieldname": "expenses_booked",
"fieldtype": "Check",
"hidden": 1,
"hidden": 0,
"label": "Expenses Booked",
"permlevel": 0
},
{
"description": "Payments received during the digest period",
"fieldname": "collections",
"fieldtype": "Check",
"label": "Payments Received",
"permlevel": 0
},
{
"description": "Payments made during the digest period",
"fieldname": "payments",
"fieldtype": "Check",
"label": "Payments Made",
"permlevel": 0
},
{
"description": "Receivable / Payable account will be identified based on the field Master Type",
"fieldname": "column_break_16",
@ -151,6 +137,20 @@
"label": "Payables",
"permlevel": 0
},
{
"description": "Payments received during the digest period",
"fieldname": "collections",
"fieldtype": "Check",
"label": "Payments Received",
"permlevel": 0
},
{
"description": "Payments made during the digest period",
"fieldname": "payments",
"fieldtype": "Check",
"label": "Payments Made",
"permlevel": 0
},
{
"fieldname": "section_break_20",
"fieldtype": "Section Break",
@ -328,7 +328,7 @@
],
"icon": "icon-envelope",
"idx": 1,
"modified": "2014-05-09 02:16:43.979204",
"modified": "2014-05-20 14:02:36.762220",
"modified_by": "Administrator",
"module": "Setup",
"name": "Email Digest",

View File

@ -13,8 +13,7 @@ from frappe.utils.email_lib import sendmail
from frappe.core.doctype.user.user import STANDARD_USERS
content_sequence = [
# ["Income / Expenses", ["income_year_to_date", "bank_balance",
# "income", "expenses_booked"]],
["Income / Expenses", ["income_year_to_date", "income", "expenses_booked"]],
["Receivables / Payables", ["collections", "payments",
"invoiced_amount", "payables"]],
["Bank Balance", ["bank_balance"]],
@ -154,9 +153,9 @@ class EmailDigest(Document):
return msg
# def get_income_year_to_date(self):
# return self.get_income(frappe.db.get_defaults("year_start_date"),
# self.meta.get_label("income_year_to_date"))
def get_income_year_to_date(self):
return self.get_income(frappe.db.get_defaults("year_start_date"),
self.meta.get_label("income_year_to_date"))
def get_bank_balance(self):
# account is of type "Bank" or "Cash"
@ -169,36 +168,34 @@ class EmailDigest(Document):
accounts[gle["account"]][1] += gle["debit"] - gle["credit"]
# build html
out = self.get_html("Bank/Cash Balance", "", "")
out = self.get_html("Bank/Cash Balance as on " + formatdate(self.to_date), "", "")
for ac in ackeys:
if accounts[ac][1]:
out += "\n" + self.get_html(accounts[ac][0], self.currency,
fmt_money(accounts[ac][1]), style="margin-left: 17px")
return sum((accounts[ac][1] for ac in ackeys)), out
# def get_income(self, from_date=None, label=None):
# # account is PL Account and Credit type account
# accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Income"]
#
# income = 0
# for gle in self.get_gl_entries(from_date or self.from_date, self.to_date):
# if gle["account"] in accounts:
# income += gle["credit"] - gle["debit"]
#
# return income, self.get_html(label or self.meta.get_label("income"), self.currency,
# fmt_money(income))
#
# def get_expenses_booked(self):
# # account is PL Account and Debit type account
# accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Expense"]
#
# expense = 0
# for gle in self.get_gl_entries(self.from_date, self.to_date):
# if gle["account"] in accounts:
# expense += gle["debit"] - gle["credit"]
#
# return expense, self.get_html(self.meta.get_label("expenses_booked"), self.currency,
# fmt_money(expense))
def get_income(self, from_date=None, label=None):
accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Income"]
income = 0
for gle in self.get_gl_entries(from_date or self.from_date, self.to_date):
if gle["account"] in accounts:
income += gle["credit"] - gle["debit"]
return income, self.get_html(label or self.meta.get_label("income"), self.currency,
fmt_money(income))
def get_expenses_booked(self):
accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Expense"]
expense = 0
for gle in self.get_gl_entries(self.from_date, self.to_date):
if gle["account"] in accounts:
expense += gle["debit"] - gle["credit"]
return expense, self.get_html(self.meta.get_label("expenses_booked"), self.currency,
fmt_money(expense))
def get_collections(self):
return self.get_party_total("Customer", "credit", self.meta.get_label("collections"))
@ -390,7 +387,7 @@ class EmailDigest(Document):
def get_accounts(self):
if not hasattr(self, "accounts"):
self.accounts = frappe.db.sql("""select name, account_type, account_name, master_type
self.accounts = frappe.db.sql("""select name, account_type, account_name, master_type, root_type
from `tabAccount` where company=%s and docstatus < 2
and group_or_ledger = "Ledger" order by lft""",
(self.company,), as_dict=1)