diff --git a/rattail/pyramid/templates/reports/ordering.mako b/rattail/pyramid/templates/reports/ordering.mako index 2eca252f..4cd014fc 100644 --- a/rattail/pyramid/templates/reports/ordering.mako +++ b/rattail/pyramid/templates/reports/ordering.mako @@ -34,6 +34,10 @@ ${h.hidden('departments', value='')}
+
+ ${h.checkbox('preferred_only', label="Include only those products for which this vendor is preferred.", checked=True)} +
+
${h.submit('submit', "Generate Report")}
diff --git a/rattail/pyramid/views/reports.py b/rattail/pyramid/views/reports.py index 0df29850..4776fa92 100644 --- a/rattail/pyramid/views/reports.py +++ b/rattail/pyramid/views/reports.py @@ -34,7 +34,8 @@ def ordering_report(request): dept = Session.query(rattail.Department).get(uuid) if dept: departments.append(dept) - body = write_ordering_worksheet(vendor, departments) + preferred_only = request.params.get('preferred_only') == '1' + body = write_ordering_worksheet(vendor, departments, preferred_only) response = Response(content_type='text/html') response.headers['Content-Length'] = len(body) response.headers['Content-Disposition'] = 'attachment; filename=ordering.html' @@ -43,7 +44,7 @@ def ordering_report(request): return {} -def write_ordering_worksheet(vendor, departments): +def write_ordering_worksheet(vendor, departments, preferred_only): """ Rendering engine for the ordering worksheet report. """ @@ -52,6 +53,8 @@ def write_ordering_worksheet(vendor, departments): q = q.join(rattail.Product) q = q.filter(rattail.ProductCost.vendor == vendor) q = q.filter(rattail.Product.department_uuid.in_([x.uuid for x in departments])) + if preferred_only: + q = q.filter(rattail.ProductCost.preference == 1) costs = {} for cost in q: