Refactor Order Form a bit to allow custom history data
This commit is contained in:
parent
feed93eb61
commit
814fd12e9e
2 changed files with 32 additions and 27 deletions
|
@ -37,7 +37,7 @@ from rattail.db.util import make_full_description
|
|||
from rattail.gpc import GPC
|
||||
from rattail.time import localtime
|
||||
from rattail.core import Object
|
||||
from rattail.util import OrderedDict, pretty_quantity
|
||||
from rattail.util import pretty_quantity
|
||||
|
||||
import formalchemy as fa
|
||||
import formencode as fe
|
||||
|
@ -584,23 +584,11 @@ class PurchaseBatchView(BatchMasterView):
|
|||
# do anything else needed to satisfy template display requirements etc.
|
||||
self.decorate_order_form_cost(cost)
|
||||
|
||||
# fetch last 6 purchases for this vendor, organize line items by product
|
||||
history = OrderedDict()
|
||||
purchases = Session.query(model.Purchase)\
|
||||
.filter(model.Purchase.vendor == batch.vendor)\
|
||||
.filter(model.Purchase.status >= self.enum.PURCHASE_STATUS_ORDERED)\
|
||||
.order_by(model.Purchase.date_ordered.desc(), model.Purchase.created.desc())\
|
||||
.options(orm.joinedload(model.Purchase.items))[:6]
|
||||
for purchase in purchases[:6]:
|
||||
items = {}
|
||||
for item in purchase.items:
|
||||
items[item.product_uuid] = item
|
||||
history[purchase.uuid] = {'purchase': purchase, 'items': items}
|
||||
|
||||
# reverse sorting and pad history as needed, for template convenience
|
||||
# fetch recent purchase history, sort/pad for template convenience
|
||||
history = self.get_order_form_history(batch, costs, 6)
|
||||
for i in range(6 - len(history)):
|
||||
history[i] = None
|
||||
history = OrderedDict([(i, v) for i, v in enumerate(reversed(list(history.itervalues())))])
|
||||
history.append(None)
|
||||
history = list(reversed(history))
|
||||
|
||||
title = self.get_instance_title(batch)
|
||||
return self.render_to_response('order_form', {
|
||||
|
@ -615,6 +603,23 @@ class PurchaseBatchView(BatchMasterView):
|
|||
'get_upc': lambda p: p.upc.pretty() if p.upc else '',
|
||||
})
|
||||
|
||||
def get_order_form_history(self, batch, costs, count):
|
||||
|
||||
# fetch last 6 purchases for this vendor, organize line items by product
|
||||
history = []
|
||||
purchases = Session.query(model.Purchase)\
|
||||
.filter(model.Purchase.vendor == batch.vendor)\
|
||||
.filter(model.Purchase.status >= self.enum.PURCHASE_STATUS_ORDERED)\
|
||||
.order_by(model.Purchase.date_ordered.desc(), model.Purchase.created.desc())\
|
||||
.options(orm.joinedload(model.Purchase.items))
|
||||
for purchase in purchases[:count]:
|
||||
items = {}
|
||||
for item in purchase.items:
|
||||
items[item.product_uuid] = item
|
||||
history.append({'purchase': purchase, 'items': items})
|
||||
|
||||
return history
|
||||
|
||||
def get_order_form_costs(self, vendor):
|
||||
return Session.query(model.ProductCost)\
|
||||
.join(model.Product)\
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue