Skip to content

Commit

Permalink
Merge pull request #48 from Alchez/fix-irs-1099-filters
Browse files Browse the repository at this point in the history
  • Loading branch information
vjFaLk authored Feb 8, 2022
2 parents a6eba28 + f852b3f commit 51a8589
Showing 1 changed file with 22 additions and 15 deletions.
37 changes: 22 additions & 15 deletions erpnext/regional/report/irs_1099/irs_1099.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from frappe.utils import cstr, nowdate
from frappe.utils.data import fmt_money
from frappe.utils.jinja import render_template
from frappe.utils.nestedset import get_descendants_of
from frappe.utils.pdf import get_pdf
from frappe.utils.print_format import read_multi_pdf

Expand All @@ -31,12 +32,21 @@ def execute(filters=None):
return [], []

data = []
columns = get_columns()
conditions = ""
columns = get_columns(filters)

if filters.supplier_group:
conditions += "AND s.supplier_group = %s" %frappe.db.escape(filters.get("supplier_group"))
data = get_supplier_irs_data(filters)
elif filters.customer_group:
data = get_customer_irs_data(filters)

return columns, data

data = frappe.db.sql("""

def get_supplier_irs_data(filters):
supplier_groups = [filters.supplier_group] + \
get_descendants_of("Supplier Group", filters.supplier_group)

return frappe.db.sql("""
SELECT
s.supplier_group as "supplier_group",
gl.party AS "supplier",
Expand All @@ -48,21 +58,19 @@ def execute(filters=None):
WHERE
s.name = gl.party
AND s.irs_1099 = 1
AND s.supplier_group IN %(supplier_group)s
AND gl.fiscal_year = %(fiscal_year)s
AND gl.party_type = "Supplier"
AND gl.company = %(company)s
{conditions}
GROUP BY
gl.party
ORDER BY
gl.party DESC""".format(conditions=conditions), {
"fiscal_year": filters.fiscal_year,
"company": filters.company
}, as_dict=True)

return columns, data
gl.party DESC
""", {
"fiscal_year": filters.fiscal_year,
"supplier_group": tuple(supplier_groups),
"company": filters.company
}, as_dict=True)


def get_customer_irs_data(filters):
Expand Down Expand Up @@ -181,8 +189,7 @@ def irs_1099_print(filters):
row["payments"] = fmt_money(row["payments"], precision=0, currency="USD")
pdf = get_pdf(render_template(template, row), output=output if output else None)

frappe.local.response.filename = "{0} {1} IRS 1099 Forms{2}".format(filters.fiscal_year,
filters.company, IRS_1099_FORMS_FILE_EXTENSION)
frappe.local.response.filename = f"{filters.fiscal_year} {filters.company} IRS 1099 Forms{IRS_1099_FORMS_FILE_EXTENSION}"
frappe.local.response.filecontent = read_multi_pdf(output)
frappe.local.response.type = "download"

Expand Down

0 comments on commit 51a8589

Please sign in to comment.