Avoid error when history has blanks for ordering worksheet
This commit is contained in:
parent
a807a0f50c
commit
cc7b9ccb86
|
@ -2,7 +2,7 @@
|
|||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2022 Lance Edgar
|
||||
# Copyright © 2010-2023 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -27,12 +27,8 @@ These views expose the basic CRUD interface to "ordering" batches, for the web
|
|||
API.
|
||||
"""
|
||||
|
||||
from __future__ import unicode_literals, absolute_import
|
||||
|
||||
import datetime
|
||||
|
||||
import six
|
||||
|
||||
from rattail.db import model
|
||||
from rattail.util import pretty_quantity
|
||||
|
||||
|
@ -67,10 +63,10 @@ class OrderingBatchViews(APIBatchView):
|
|||
data = super(OrderingBatchViews, self).normalize(batch)
|
||||
|
||||
data['vendor_uuid'] = batch.vendor.uuid
|
||||
data['vendor_display'] = six.text_type(batch.vendor)
|
||||
data['vendor_display'] = str(batch.vendor)
|
||||
|
||||
data['department_uuid'] = batch.department_uuid
|
||||
data['department_display'] = six.text_type(batch.department) if batch.department else None
|
||||
data['department_display'] = str(batch.department) if batch.department else None
|
||||
|
||||
data['po_total_calculated_display'] = "${:0.2f}".format(batch.po_total_calculated or 0)
|
||||
data['ship_method'] = batch.ship_method
|
||||
|
@ -152,7 +148,7 @@ class OrderingBatchViews(APIBatchView):
|
|||
product = cost.product
|
||||
subdept_costs.append({
|
||||
'uuid': cost.uuid,
|
||||
'upc': six.text_type(product.upc),
|
||||
'upc': str(product.upc),
|
||||
'upc_pretty': product.upc.pretty() if product.upc else None,
|
||||
'brand_name': product.brand.name if product.brand else None,
|
||||
'description': product.description,
|
||||
|
@ -173,8 +169,8 @@ class OrderingBatchViews(APIBatchView):
|
|||
|
||||
# sort the (sub)department groupings
|
||||
sorted_departments = []
|
||||
for dept in sorted(six.itervalues(departments), key=lambda d: d['name']):
|
||||
dept['subdepartments'] = sorted(six.itervalues(dept['subdepartments']),
|
||||
for dept in sorted(departments.values(), key=lambda d: d['name']):
|
||||
dept['subdepartments'] = sorted(dept['subdepartments'].values(),
|
||||
key=lambda s: s['name'])
|
||||
sorted_departments.append(dept)
|
||||
|
||||
|
@ -185,6 +181,8 @@ class OrderingBatchViews(APIBatchView):
|
|||
history = list(reversed(history))
|
||||
# must convert some date objects to string, for JSON sake
|
||||
for h in history:
|
||||
if not h:
|
||||
continue
|
||||
purchase = h.get('purchase')
|
||||
if purchase:
|
||||
dt = purchase.get('date_ordered')
|
||||
|
@ -237,7 +235,7 @@ class OrderingBatchRowViews(APIBatchRowView):
|
|||
data = super(OrderingBatchRowViews, self).normalize(row)
|
||||
|
||||
data['item_id'] = row.item_id
|
||||
data['upc'] = six.text_type(row.upc)
|
||||
data['upc'] = str(row.upc)
|
||||
data['upc_pretty'] = row.upc.pretty() if row.upc else None
|
||||
data['brand_name'] = row.brand_name
|
||||
data['description'] = row.description
|
||||
|
@ -262,7 +260,7 @@ class OrderingBatchRowViews(APIBatchRowView):
|
|||
data['po_total_calculated'] = row.po_total_calculated
|
||||
data['po_total_calculated_display'] = "${:0.2f}".format(row.po_total_calculated) if row.po_total_calculated is not None else None
|
||||
data['status_code'] = row.status_code
|
||||
data['status_display'] = row.STATUS.get(row.status_code, six.text_type(row.status_code))
|
||||
data['status_display'] = row.STATUS.get(row.status_code, str(row.status_code))
|
||||
|
||||
return data
|
||||
|
||||
|
|
Loading…
Reference in a new issue