Let cases and/or units be (dis)allowed for new custorder
at least this sets the stage, probably more tweaks needed to fully support the idea
This commit is contained in:
parent
358f571f48
commit
50db7437f5
|
@ -98,6 +98,24 @@ class CustomerOrderBatchHandler(BatchHandler):
|
|||
'new_orders.allow_contact_info_create',
|
||||
default=False)
|
||||
|
||||
def allow_case_orders(self):
|
||||
"""
|
||||
Returns a boolean indicating whether "case" orders are
|
||||
allowed.
|
||||
"""
|
||||
return self.config.getbool('rattail.custorders',
|
||||
'allow_case_orders',
|
||||
default=False)
|
||||
|
||||
def allow_unit_orders(self):
|
||||
"""
|
||||
Returns a boolean indicating whether "unit" orders are
|
||||
allowed.
|
||||
"""
|
||||
return self.config.getbool('rattail.custorders',
|
||||
'allow_unit_orders',
|
||||
default=False)
|
||||
|
||||
def allow_unknown_product(self):
|
||||
"""
|
||||
Returns a boolean indicating whether "unknown" products are
|
||||
|
@ -530,15 +548,17 @@ class CustomerOrderBatchHandler(BatchHandler):
|
|||
choices = []
|
||||
|
||||
# Each
|
||||
unit_name = self.enum.UNIT_OF_MEASURE[self.enum.UNIT_OF_MEASURE_EACH]
|
||||
choices.append({'key': self.enum.UNIT_OF_MEASURE_EACH,
|
||||
'value': unit_name})
|
||||
if self.allow_unit_orders():
|
||||
unit_name = self.enum.UNIT_OF_MEASURE[self.enum.UNIT_OF_MEASURE_EACH]
|
||||
choices.append({'key': self.enum.UNIT_OF_MEASURE_EACH,
|
||||
'value': unit_name})
|
||||
|
||||
# Case
|
||||
case_text = self.enum.UNIT_OF_MEASURE[self.enum.UNIT_OF_MEASURE_CASE]
|
||||
if case_text:
|
||||
choices.append({'key': self.enum.UNIT_OF_MEASURE_CASE,
|
||||
'value': case_text})
|
||||
if self.allow_case_orders():
|
||||
case_text = self.enum.UNIT_OF_MEASURE[self.enum.UNIT_OF_MEASURE_CASE]
|
||||
if case_text:
|
||||
choices.append({'key': self.enum.UNIT_OF_MEASURE_CASE,
|
||||
'value': case_text})
|
||||
|
||||
return choices
|
||||
|
||||
|
@ -547,7 +567,14 @@ class CustomerOrderBatchHandler(BatchHandler):
|
|||
Return a list of UOM choices for the given product.
|
||||
"""
|
||||
products_handler = self.app.get_products_handler()
|
||||
return products_handler.get_uom_choices(product)
|
||||
choices = products_handler.get_uom_choices(product)
|
||||
if not self.allow_case_orders():
|
||||
choices = [choice for choice in choices
|
||||
if choice['key'] != self.enum.UNIT_OF_MEASURE_CASE]
|
||||
if not self.allow_unit_orders():
|
||||
choices = [choice for choice in choices
|
||||
if choice['key'] != self.enum.UNIT_OF_MEASURE_EACH]
|
||||
return choices
|
||||
|
||||
def why_not_add_product(self, product, batch):
|
||||
"""
|
||||
|
|
|
@ -685,19 +685,25 @@ class ProductsHandler(GenericHandler):
|
|||
"""
|
||||
choices = []
|
||||
|
||||
# TODO: not sure how generically useful this method even is? i
|
||||
# think it is only used when making a new custorder so far..
|
||||
|
||||
# TODO: for instance "pound" vs. "each" is really just 2 ways
|
||||
# of saying "unit" - and does not consider i18n etc.
|
||||
|
||||
# Each
|
||||
if not product or not product.weighed:
|
||||
unit_name = self.enum.UNIT_OF_MEASURE[self.enum.UNIT_OF_MEASURE_EACH]
|
||||
choices.append({'key': self.enum.UNIT_OF_MEASURE_EACH,
|
||||
'value': unit_name})
|
||||
|
||||
# Pound
|
||||
if not product or product.weighed:
|
||||
unit_name = self.enum.UNIT_OF_MEASURE[self.enum.UNIT_OF_MEASURE_POUND]
|
||||
choices.append({
|
||||
'key': self.enum.UNIT_OF_MEASURE_POUND,
|
||||
'value': unit_name,
|
||||
})
|
||||
# # Pound
|
||||
# if not product or product.weighed:
|
||||
# unit_name = self.enum.UNIT_OF_MEASURE[self.enum.UNIT_OF_MEASURE_POUND]
|
||||
# choices.append({
|
||||
# 'key': self.enum.UNIT_OF_MEASURE_POUND,
|
||||
# 'value': unit_name,
|
||||
# })
|
||||
|
||||
# Case
|
||||
case_text = None
|
||||
|
|
Loading…
Reference in a new issue