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
2 changed files with 48 additions and 15 deletions
|
@ -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):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue