Add toggle complete; improve quick entry for receiving batch API
This commit is contained in:
parent
d42c2fabb9
commit
6a98dcc169
|
@ -262,6 +262,7 @@ class APIBatchRowView(APIBatchMixin, APIMasterView):
|
|||
msg = "Feature is not implemented"
|
||||
return {'error': msg}
|
||||
|
||||
self.Session.flush()
|
||||
result = self._get(obj=row)
|
||||
result['ok'] = True
|
||||
return result
|
||||
|
|
|
@ -27,8 +27,10 @@ Tailbone Web API - Receiving Batches
|
|||
from __future__ import unicode_literals, absolute_import
|
||||
|
||||
import six
|
||||
import humanize
|
||||
|
||||
from rattail.db import model
|
||||
from rattail.time import make_utc
|
||||
|
||||
from tailbone.api.batch import APIBatchView, APIBatchRowView
|
||||
|
||||
|
@ -41,6 +43,7 @@ class ReceivingBatchViews(APIBatchView):
|
|||
permission_prefix = 'receiving'
|
||||
collection_url_prefix = '/receiving-batches'
|
||||
object_url_prefix = '/receiving-batch'
|
||||
supports_toggle_complete = True
|
||||
|
||||
def normalize(self, batch):
|
||||
data = super(ReceivingBatchViews, self).normalize(batch)
|
||||
|
@ -48,6 +51,9 @@ class ReceivingBatchViews(APIBatchView):
|
|||
data['vendor_uuid'] = batch.vendor.uuid
|
||||
data['vendor_display'] = six.text_type(batch.vendor)
|
||||
|
||||
data['department_uuid'] = batch.department_uuid
|
||||
data['department_display'] = six.text_type(batch.department) if batch.department else None
|
||||
|
||||
return data
|
||||
|
||||
def get_purchase(self, uuid):
|
||||
|
@ -234,8 +240,38 @@ class ReceivingBatchRowViews(APIBatchRowView):
|
|||
data['item_id'] = row.item_id
|
||||
data['upc'] = six.text_type(row.upc)
|
||||
data['upc_pretty'] = row.upc.pretty() if row.upc else None
|
||||
data['brand_name'] = row.brand_name
|
||||
data['description'] = row.description
|
||||
data['size'] = row.size
|
||||
data['full_description'] = row.product.full_description if row.product else row.description
|
||||
|
||||
data['case_quantity'] = row.case_quantity
|
||||
data['unit_uom'] = 'EA' # TODO
|
||||
data['order_quantities_known'] = batch.order_quantities_known
|
||||
|
||||
data['cases_shipped'] = row.cases_shipped
|
||||
data['units_shipped'] = row.units_shipped
|
||||
|
||||
data['cases_received'] = row.cases_received
|
||||
data['units_received'] = row.units_received
|
||||
|
||||
data['cases_damaged'] = row.cases_damaged
|
||||
data['units_damaged'] = row.units_damaged
|
||||
|
||||
data['cases_expired'] = row.cases_expired
|
||||
data['units_expired'] = row.units_expired
|
||||
|
||||
# TODO: surely the caller of API should determine this flag?
|
||||
# maybe alert user if they've already received some of this product
|
||||
alert_received = self.rattail_config.getbool('tailbone', 'receiving.alert_already_received',
|
||||
default=False)
|
||||
if alert_received:
|
||||
msg = ''
|
||||
if self.handler.get_units_confirmed(row):
|
||||
msg = "You have already received some of this product; last update was {}.".format(
|
||||
humanize.naturaltime(make_utc() - row.modified))
|
||||
data['received_alert'] = msg
|
||||
|
||||
return data
|
||||
|
||||
def collection_get(self):
|
||||
|
|
Loading…
Reference in a new issue