diff --git a/locale/es.po b/locale/es.po index e560736..62b6fca 100644 --- a/locale/es.po +++ b/locale/es.po @@ -132,4 +132,8 @@ msgstr "ul_quantity" msgctxt "view:sale.cost.template:" msgid "ULs quantity:" -msgstr "UdCs:" \ No newline at end of file +msgstr "UdCs:" + +msgctxt "model:ir.action,name:act_relate_sale_unit_load" +msgid "Unit loads" +msgstr "Unidades de carga" \ No newline at end of file diff --git a/tryton.cfg b/tryton.cfg index b9b61c2..66f6dfa 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -13,3 +13,4 @@ extras_depend: xml: sale.xml sale_reporting.xml + unit_load.xml diff --git a/unit_load.py b/unit_load.py index 8f59029..c109095 100644 --- a/unit_load.py +++ b/unit_load.py @@ -11,9 +11,11 @@ class UnitLoad(metaclass=PoolMeta): customer = fields.Function(fields.Many2One('party.party', 'Customer'), 'get_customer') - sale = fields.Function(fields.Many2One('sale.sale', 'Sale'), 'get_sale') + sale = fields.Function(fields.Many2One('sale.sale', 'Sale'), 'get_sale', + searcher='search_sale') sale_line = fields.Function( - fields.Many2One('sale.line', 'Sale line'), 'get_sale_line') + fields.Many2One('sale.line', 'Sale line'), 'get_sale_line', + searcher='search_sale_line') def get_customer(self, name=None): return self.shipment_out.customer.id if self.shipment_out else None @@ -28,3 +30,26 @@ class UnitLoad(metaclass=PoolMeta): if m.origin and m.origin.__name__ == 'sale.line' and m.state not in ('draft', 'cancel')] return moves[0].origin.id if moves else None + + @classmethod + def search_sale_line(cls, name, clause): + _field = 'moves.origin' + if '.' in clause[0]: + _field += '.%s' % clause[0][10:] + else: + if isinstance(clause[2], (int, list, tuple, set)): + _field += '.id' + else: + _field += '.rec_name' + + return [(_field,) + tuple(clause[1:]) + ('sale.line',)] + + @classmethod + def search_sale(cls, name, clause): + _field = 'sale_line.%s' % clause[0] + + if isinstance(clause[2], (int, list, tuple, set)): + _field += '.id' + else: + _field += '.rec_name' + return [(_field, ) + tuple(clause[1:])] diff --git a/unit_load.xml b/unit_load.xml new file mode 100644 index 0000000..e9688a0 --- /dev/null +++ b/unit_load.xml @@ -0,0 +1,18 @@ + + + + + + + Unit loads + stock.unit_load + + + + form_relate + sale.sale,-1 + + + + \ No newline at end of file