Merge branch 'temp'
This commit is contained in:
commit
bd56c39b27
@ -212,6 +212,11 @@ wn.module_page["Accounts"] = [
|
||||
route: "query-report/Payment Collection With Ageing",
|
||||
doctype: "Journal Voucher"
|
||||
},
|
||||
{
|
||||
"label":wn._("Payment Made With Ageing"),
|
||||
route: "query-report/Payment Made With Ageing",
|
||||
doctype: "Journal Voucher"
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -1,6 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
import webnotes
|
||||
from webnotes.utils import getdate, nowdate, flt, cstr
|
||||
from webnotes import msgprint, _
|
||||
from accounts.report.accounts_receivable.accounts_receivable import get_ageing_data
|
||||
|
||||
def execute(filters=None):
|
||||
@ -79,13 +80,16 @@ def get_conditions(filters, before_report_date=True):
|
||||
supplier_accounts = []
|
||||
if filters.get("account"):
|
||||
supplier_accounts = [filters["account"]]
|
||||
elif filters.get("company"):
|
||||
else:
|
||||
supplier_accounts = webnotes.conn.sql_list("""select name from `tabAccount`
|
||||
where ifnull(master_type, '') = 'Supplier' and docstatus < 2 %s""" %
|
||||
conditions, filters)
|
||||
|
||||
if supplier_accounts:
|
||||
conditions += " and account in (%s)" % (", ".join(['%s']*len(supplier_accounts)))
|
||||
else:
|
||||
msgprint(_("No Supplier Accounts found. Supplier Accounts are identified based on \
|
||||
'Master Type' value in account record."), raise_exception=1)
|
||||
|
||||
if filters.get("report_date"):
|
||||
if before_report_date:
|
||||
|
@ -1,5 +1,6 @@
|
||||
from __future__ import unicode_literals
|
||||
import webnotes
|
||||
from webnotes import msgprint, _
|
||||
from webnotes.utils import getdate, nowdate, flt, cstr
|
||||
|
||||
def execute(filters=None):
|
||||
@ -68,13 +69,16 @@ def get_conditions(filters, upto_report_date=True):
|
||||
customer_accounts = []
|
||||
if filters.get("account"):
|
||||
customer_accounts = [filters["account"]]
|
||||
elif filters.get("company"):
|
||||
else:
|
||||
customer_accounts = webnotes.conn.sql_list("""select name from `tabAccount`
|
||||
where ifnull(master_type, '') = 'Customer' and docstatus < 2 %s""" %
|
||||
conditions, filters)
|
||||
|
||||
if customer_accounts:
|
||||
conditions += " and account in (%s)" % (", ".join(['%s']*len(customer_accounts)))
|
||||
else:
|
||||
msgprint(_("No Customer Accounts found. Customer Accounts are identified based on \
|
||||
'Master Type' value in account record."), raise_exception=1)
|
||||
|
||||
if filters.get("report_date"):
|
||||
if upto_report_date:
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import webnotes
|
||||
from webnotes import msgprint, _
|
||||
from accounts.report.accounts_receivable.accounts_receivable import get_ageing_data
|
||||
|
||||
def execute(filters=None):
|
||||
@ -55,13 +56,16 @@ def get_conditions(filters):
|
||||
customer_accounts = []
|
||||
if filters.get("account"):
|
||||
customer_accounts = [filters["account"]]
|
||||
elif filters.get("company"):
|
||||
else:
|
||||
cond = filters.get("company") and (" and company = '%s'" % filters["company"]) or ""
|
||||
customer_accounts = webnotes.conn.sql_list("""select name from `tabAccount`
|
||||
where ifnull(master_type, '') = 'Customer' and docstatus < 2
|
||||
and company = %s""", filters["company"])
|
||||
where ifnull(master_type, '') = 'Customer' and docstatus < 2 %s""" % cond)
|
||||
|
||||
if customer_accounts:
|
||||
conditions += " and jvd.account in (%s)" % (", ".join(['%s']*len(customer_accounts)))
|
||||
else:
|
||||
msgprint(_("No Customer Accounts found. Customer Accounts are identified based on \
|
||||
'Master Type' value in account record."), raise_exception=1)
|
||||
|
||||
if filters.get("from_date"): conditions += " and jv.posting_date >= '%s'" % filters["from_date"]
|
||||
if filters.get("to_date"): conditions += " and jv.posting_date <= '%s'" % filters["to_date"]
|
||||
|
@ -0,0 +1,40 @@
|
||||
wn.query_reports["Payment Made With Ageing"] = {
|
||||
"filters": [
|
||||
{
|
||||
fieldname: "from_date",
|
||||
label: "From Date",
|
||||
fieldtype: "Date",
|
||||
default: wn.defaults.get_user_default("year_start_date"),
|
||||
},
|
||||
{
|
||||
fieldname:"to_date",
|
||||
label: "To Date",
|
||||
fieldtype: "Date",
|
||||
default: get_today()
|
||||
},
|
||||
{
|
||||
fieldname:"account",
|
||||
label: "Supplier Account",
|
||||
fieldtype: "Link",
|
||||
options: "Account",
|
||||
get_query: function() {
|
||||
return {
|
||||
query: "accounts.utils.get_account_list",
|
||||
filters: {
|
||||
is_pl_account: "No",
|
||||
debit_or_credit: "Credit",
|
||||
company: wn.query_report.filters_by_name.company.get_value(),
|
||||
master_type: "Supplier"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
fieldname:"company",
|
||||
label: "Company",
|
||||
fieldtype: "Link",
|
||||
options: "Company",
|
||||
default: sys_defaults.company
|
||||
},
|
||||
]
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
# ERPNext - web based ERP (http://erpnext.com)
|
||||
# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import webnotes
|
||||
from webnotes import msgprint, _
|
||||
from accounts.report.accounts_receivable.accounts_receivable import get_ageing_data
|
||||
|
||||
def execute(filters=None):
|
||||
if not filters: filters = {}
|
||||
|
||||
columns = get_columns()
|
||||
entries = get_entries(filters)
|
||||
pi_posting_date_map = get_pi_posting_date_map()
|
||||
|
||||
data = []
|
||||
for d in entries:
|
||||
against_voucher_date = d.against_voucher and pi_posting_date_map[d.against_voucher] or ""
|
||||
|
||||
row = [d.name, d.account, d.posting_date, d.against_voucher, against_voucher_date,
|
||||
d.debit, d.credit, d.cheque_no, d.cheque_date, d.remark]
|
||||
|
||||
if d.against_voucher:
|
||||
row += get_ageing_data(against_voucher_date, d.posting_date, d.debit or -1*d.credit)
|
||||
else:
|
||||
row += ["", "", "", "", ""]
|
||||
|
||||
data.append(row)
|
||||
|
||||
return columns, data
|
||||
|
||||
def get_columns():
|
||||
return ["Journal Voucher:Link/Journal Voucher:140", "Account:Link/Account:140",
|
||||
"Posting Date:Date:100", "Against Invoice:Link/Purchase Invoice:130",
|
||||
"Against Invoice Posting Date:Date:130", "Debit:Currency:120", "Credit:Currency:120",
|
||||
"Reference No::100", "Reference Date:Date:100", "Remarks::150", "Age:Int:40",
|
||||
"0-30:Currency:100", "30-60:Currency:100", "60-90:Currency:100", "90-Above:Currency:100"
|
||||
]
|
||||
|
||||
def get_conditions(filters):
|
||||
conditions = ""
|
||||
supplier_accounts = []
|
||||
if filters.get("account"):
|
||||
supplier_accounts = [filters["account"]]
|
||||
else:
|
||||
cond = filters.get("company") and (" and company = '%s'" % filters["company"]) or ""
|
||||
supplier_accounts = webnotes.conn.sql_list("""select name from `tabAccount`
|
||||
where ifnull(master_type, '') = 'Supplier' and docstatus < 2 %s""" % cond)
|
||||
|
||||
if supplier_accounts:
|
||||
conditions += " and jvd.account in (%s)" % (", ".join(['%s']*len(supplier_accounts)))
|
||||
else:
|
||||
msgprint(_("No Supplier Accounts found. Supplier Accounts are identified based on \
|
||||
'Master Type' value in account record."), raise_exception=1)
|
||||
|
||||
if filters.get("from_date"): conditions += " and jv.posting_date >= '%s'" % filters["from_date"]
|
||||
if filters.get("to_date"): conditions += " and jv.posting_date <= '%s'" % filters["to_date"]
|
||||
|
||||
return conditions, supplier_accounts
|
||||
|
||||
def get_entries(filters):
|
||||
conditions, supplier_accounts = get_conditions(filters)
|
||||
entries = webnotes.conn.sql("""select jv.name, jvd.account, jv.posting_date,
|
||||
jvd.against_voucher, jvd.debit, jvd.credit, jv.cheque_no, jv.cheque_date, jv.remark
|
||||
from `tabJournal Voucher Detail` jvd, `tabJournal Voucher` jv
|
||||
where jvd.parent = jv.name and jv.docstatus=1 %s order by jv.name DESC""" %
|
||||
(conditions), tuple(supplier_accounts), as_dict=1)
|
||||
|
||||
return entries
|
||||
|
||||
def get_pi_posting_date_map():
|
||||
pi_posting_date_map = {}
|
||||
for t in webnotes.conn.sql("""select name, posting_date from `tabPurchase Invoice`"""):
|
||||
pi_posting_date_map[t[0]] = t[1]
|
||||
|
||||
return pi_posting_date_map
|
@ -0,0 +1,22 @@
|
||||
[
|
||||
{
|
||||
"creation": "2013-05-02 12:10:21",
|
||||
"docstatus": 0,
|
||||
"modified": "2013-05-02 12:10:21",
|
||||
"modified_by": "Administrator",
|
||||
"owner": "Administrator"
|
||||
},
|
||||
{
|
||||
"add_total_row": 1,
|
||||
"doctype": "Report",
|
||||
"is_standard": "Yes",
|
||||
"name": "__common__",
|
||||
"ref_doctype": "Journal Voucher",
|
||||
"report_name": "Payment Made With Ageing",
|
||||
"report_type": "Script Report"
|
||||
},
|
||||
{
|
||||
"doctype": "Report",
|
||||
"name": "Payment Made With Ageing"
|
||||
}
|
||||
]
|
Loading…
x
Reference in New Issue
Block a user