Compute CMR packages.
This commit is contained in:
parent
5bce830b3b
commit
3f5112d03e
80
load.py
80
load.py
|
@ -711,60 +711,46 @@ class LoadSheet:
|
|||
return value
|
||||
|
||||
|
||||
class CMR:
|
||||
class TransportReportMixin(object):
|
||||
|
||||
@classmethod
|
||||
def _get_products(cls, order):
|
||||
return list(set([ul.product for ul in order.unit_loads]))
|
||||
|
||||
@classmethod
|
||||
def product_weight(cls, order, product, language):
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
Modeldata = pool.get('ir.model.data')
|
||||
|
||||
cat_weight = Modeldata.get_id('product', 'uom_cat_weight')
|
||||
kg_uom = Uom(Modeldata.get_id('product', 'uom_kilogram'))
|
||||
|
||||
if product.default_uom.category.id != cat_weight:
|
||||
return None
|
||||
res = sum(Uom.compute_qty(
|
||||
ul.uom, ul.quantity, kg_uom) or 0 for ul in order.unit_loads
|
||||
if ul.product.id == product.id) or None
|
||||
if not res:
|
||||
return super(TransportReportMixin, cls).product_weight(order,
|
||||
product, language)
|
||||
return res
|
||||
|
||||
@classmethod
|
||||
def product_packages(cls, order, product, language):
|
||||
return sum(ul.cases_quantity for ul in order.unit_loads
|
||||
if ul.product.id == product.id) or None
|
||||
|
||||
|
||||
class CMR(TransportReportMixin):
|
||||
__name__ = 'carrier.load.order.cmr'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
@classmethod
|
||||
def _get_products(cls, order):
|
||||
return list(set([ul.product for ul in order.unit_loads]))
|
||||
|
||||
@classmethod
|
||||
def product_weight(cls, order, product, language):
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
Modeldata = pool.get('ir.model.data')
|
||||
|
||||
cat_weight = Modeldata.get_id('product', 'uom_cat_weight')
|
||||
kg_uom = Uom(Modeldata.get_id('product', 'uom_kilogram'))
|
||||
|
||||
if product.default_uom.category.id != cat_weight:
|
||||
return None
|
||||
res = sum(Uom.compute_qty(
|
||||
ul.uom, ul.quantity, kg_uom) or 0 for ul in order.unit_loads
|
||||
if ul.product.id == product.id) or None
|
||||
if not res:
|
||||
return super(CMR, cls).product_weight(order, product, language)
|
||||
return res
|
||||
|
||||
|
||||
class RoadTransportNote:
|
||||
class RoadTransportNote(TransportReportMixin):
|
||||
__name__ = 'carrier.load.order.road_note'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
@classmethod
|
||||
def _get_products(cls, order):
|
||||
return list(set([ul.product for ul in order.unit_loads]))
|
||||
|
||||
@classmethod
|
||||
def product_weight(cls, order, product, language):
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
Modeldata = pool.get('ir.model.data')
|
||||
|
||||
cat_weight = Modeldata.get_id('product', 'uom_cat_weight')
|
||||
kg_uom = Uom(Modeldata.get_id('product', 'uom_kilogram'))
|
||||
|
||||
if product.default_uom.category.id != cat_weight:
|
||||
return None
|
||||
res = sum(Uom.compute_qty(
|
||||
ul.uom, ul.quantity, kg_uom) or 0 for ul in order.unit_loads
|
||||
if ul.product.id == product.id) or None
|
||||
if not res:
|
||||
return super(RoadTransportNote, cls).product_weight(order,
|
||||
product, language)
|
||||
return res
|
||||
|
||||
|
||||
class EditLoadOrderLineData(ModelView):
|
||||
"""Edit load order line data"""
|
||||
|
|
Loading…
Reference in New Issue