mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 10:49:09 +00:00
Income/expense info in email digest
This commit is contained in:
@@ -96,7 +96,7 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "income_year_to_date",
|
"fieldname": "income_year_to_date",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 1,
|
"hidden": 0,
|
||||||
"label": "Income Year to Date",
|
"label": "Income Year to Date",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
},
|
},
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
"description": "Income booked for the digest period",
|
"description": "Income booked for the digest period",
|
||||||
"fieldname": "income",
|
"fieldname": "income",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 1,
|
"hidden": 0,
|
||||||
"label": "Income Booked",
|
"label": "Income Booked",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
},
|
},
|
||||||
@@ -112,24 +112,10 @@
|
|||||||
"description": "Expenses booked for the digest period",
|
"description": "Expenses booked for the digest period",
|
||||||
"fieldname": "expenses_booked",
|
"fieldname": "expenses_booked",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 1,
|
"hidden": 0,
|
||||||
"label": "Expenses Booked",
|
"label": "Expenses Booked",
|
||||||
"permlevel": 0
|
"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",
|
"description": "Receivable / Payable account will be identified based on the field Master Type",
|
||||||
"fieldname": "column_break_16",
|
"fieldname": "column_break_16",
|
||||||
@@ -151,6 +137,20 @@
|
|||||||
"label": "Payables",
|
"label": "Payables",
|
||||||
"permlevel": 0
|
"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",
|
"fieldname": "section_break_20",
|
||||||
"fieldtype": "Section Break",
|
"fieldtype": "Section Break",
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
],
|
],
|
||||||
"icon": "icon-envelope",
|
"icon": "icon-envelope",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"modified": "2014-05-09 02:16:43.979204",
|
"modified": "2014-05-20 14:02:36.762220",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Setup",
|
"module": "Setup",
|
||||||
"name": "Email Digest",
|
"name": "Email Digest",
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ from frappe.utils.email_lib import sendmail
|
|||||||
from frappe.core.doctype.user.user import STANDARD_USERS
|
from frappe.core.doctype.user.user import STANDARD_USERS
|
||||||
|
|
||||||
content_sequence = [
|
content_sequence = [
|
||||||
# ["Income / Expenses", ["income_year_to_date", "bank_balance",
|
["Income / Expenses", ["income_year_to_date", "income", "expenses_booked"]],
|
||||||
# "income", "expenses_booked"]],
|
|
||||||
["Receivables / Payables", ["collections", "payments",
|
["Receivables / Payables", ["collections", "payments",
|
||||||
"invoiced_amount", "payables"]],
|
"invoiced_amount", "payables"]],
|
||||||
["Bank Balance", ["bank_balance"]],
|
["Bank Balance", ["bank_balance"]],
|
||||||
@@ -154,9 +153,9 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
# def get_income_year_to_date(self):
|
def get_income_year_to_date(self):
|
||||||
# return self.get_income(frappe.db.get_defaults("year_start_date"),
|
return self.get_income(frappe.db.get_defaults("year_start_date"),
|
||||||
# self.meta.get_label("income_year_to_date"))
|
self.meta.get_label("income_year_to_date"))
|
||||||
|
|
||||||
def get_bank_balance(self):
|
def get_bank_balance(self):
|
||||||
# account is of type "Bank" or "Cash"
|
# account is of type "Bank" or "Cash"
|
||||||
@@ -169,36 +168,34 @@ class EmailDigest(Document):
|
|||||||
accounts[gle["account"]][1] += gle["debit"] - gle["credit"]
|
accounts[gle["account"]][1] += gle["debit"] - gle["credit"]
|
||||||
|
|
||||||
# build html
|
# 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:
|
for ac in ackeys:
|
||||||
if accounts[ac][1]:
|
if accounts[ac][1]:
|
||||||
out += "\n" + self.get_html(accounts[ac][0], self.currency,
|
out += "\n" + self.get_html(accounts[ac][0], self.currency,
|
||||||
fmt_money(accounts[ac][1]), style="margin-left: 17px")
|
fmt_money(accounts[ac][1]), style="margin-left: 17px")
|
||||||
return sum((accounts[ac][1] for ac in ackeys)), out
|
return sum((accounts[ac][1] for ac in ackeys)), out
|
||||||
|
|
||||||
# def get_income(self, from_date=None, label=None):
|
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"]
|
||||||
# accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Income"]
|
|
||||||
#
|
income = 0
|
||||||
# income = 0
|
for gle in self.get_gl_entries(from_date or self.from_date, self.to_date):
|
||||||
# for gle in self.get_gl_entries(from_date or self.from_date, self.to_date):
|
if gle["account"] in accounts:
|
||||||
# if gle["account"] in accounts:
|
income += gle["credit"] - gle["debit"]
|
||||||
# income += gle["credit"] - gle["debit"]
|
|
||||||
#
|
return income, self.get_html(label or self.meta.get_label("income"), self.currency,
|
||||||
# return income, self.get_html(label or self.meta.get_label("income"), self.currency,
|
fmt_money(income))
|
||||||
# fmt_money(income))
|
|
||||||
#
|
def get_expenses_booked(self):
|
||||||
# def get_expenses_booked(self):
|
accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Expense"]
|
||||||
# # 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):
|
||||||
# expense = 0
|
if gle["account"] in accounts:
|
||||||
# for gle in self.get_gl_entries(self.from_date, self.to_date):
|
expense += gle["debit"] - gle["credit"]
|
||||||
# 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))
|
||||||
# return expense, self.get_html(self.meta.get_label("expenses_booked"), self.currency,
|
|
||||||
# fmt_money(expense))
|
|
||||||
|
|
||||||
def get_collections(self):
|
def get_collections(self):
|
||||||
return self.get_party_total("Customer", "credit", self.meta.get_label("collections"))
|
return self.get_party_total("Customer", "credit", self.meta.get_label("collections"))
|
||||||
@@ -390,7 +387,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
def get_accounts(self):
|
def get_accounts(self):
|
||||||
if not hasattr(self, "accounts"):
|
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
|
from `tabAccount` where company=%s and docstatus < 2
|
||||||
and group_or_ledger = "Ledger" order by lft""",
|
and group_or_ledger = "Ledger" order by lft""",
|
||||||
(self.company,), as_dict=1)
|
(self.company,), as_dict=1)
|
||||||
|
|||||||
Reference in New Issue
Block a user