diff --git a/tailbone/templates/trainwreck/transactions/view_row.mako b/tailbone/templates/trainwreck/transactions/view_row.mako new file mode 100644 index 00000000..9abcb8ba --- /dev/null +++ b/tailbone/templates/trainwreck/transactions/view_row.mako @@ -0,0 +1,16 @@ +## -*- coding: utf-8; -*- +<%inherit file="/master/view_row.mako" /> + +<%def name="modify_this_page_vars()"> + ${parent.modify_this_page_vars()} + + + + +${parent.body()} diff --git a/tailbone/views/trainwreck/base.py b/tailbone/views/trainwreck/base.py index 4f6c9e15..6fac7605 100644 --- a/tailbone/views/trainwreck/base.py +++ b/tailbone/views/trainwreck/base.py @@ -30,6 +30,8 @@ import six from rattail.time import localtime +from webhelpers2.html import HTML + from tailbone.db import Session, TrainwreckSession, ExtraTrainwreckSessions from tailbone.views import MasterView @@ -136,9 +138,13 @@ class TransactionView(MasterView): 'description', 'unit_quantity', 'subtotal', + 'discounts', + 'discounted_subtotal', 'tax', 'total', 'exempt_from_gross_sales', + 'net_sales', + 'gross_sales', 'void', ] @@ -231,6 +237,46 @@ class TransactionView(MasterView): f.set_type('tax', 'currency') f.set_type('total', 'currency') + # discounts + f.set_renderer('discounts', self.render_discounts) + + def render_discounts(self, item, field): + if not item.discounts: + return + + route_prefix = self.get_route_prefix() + factory = self.get_grid_factory() + use_buefy = self.get_use_buefy() + + g = factory( + key='{}.discounts'.format(route_prefix), + data=[] if use_buefy else item.discounts, + columns=['description', 'amount'], + request=self.request) + + if use_buefy: + return HTML.literal( + g.render_buefy_table_element(data_prop='discountsData')) + else: + g.set_type('amount', 'currency') + return HTML.literal(g.render_grid()) + + def template_kwargs_view_row(self, **kwargs): + use_buefy = self.get_use_buefy() + if use_buefy: + + app = self.get_rattail_app() + item = kwargs['instance'] + discounts_data = [] + for discount in item.discounts: + discounts_data.append({ + 'description': discount.description, + 'amount': app.render_currency(discount.amount), + }) + kwargs['discounts_data'] = discounts_data + + return kwargs + def rollover(self): """ View for performing yearly rollover functions.