Expose shipments_returns constructors
issue7016 review42951002
This commit is contained in:
@@ -28,7 +28,8 @@ __all__ = ['Sale', 'SaleIgnoredInvoice', 'SaleRecreatedInvoice',
|
||||
'SaleLineRecreatedMove', 'SaleReport', 'OpenCustomer',
|
||||
'HandleShipmentExceptionAsk', 'HandleShipmentException',
|
||||
'HandleInvoiceExceptionAsk', 'HandleInvoiceException',
|
||||
'ReturnSaleStart', 'ReturnSale']
|
||||
'ReturnSaleStart', 'ReturnSale',
|
||||
'get_shipments_returns', 'search_shipments_returns']
|
||||
|
||||
_ZERO = Decimal(0)
|
||||
STATES = [
|
||||
@@ -41,6 +42,36 @@ STATES = [
|
||||
]
|
||||
|
||||
|
||||
def get_shipments_returns(model_name):
|
||||
"Computes the returns or shipments"
|
||||
def method(self, name):
|
||||
Model = Pool().get(model_name)
|
||||
shipments = set()
|
||||
for line in self.lines:
|
||||
for move in line.moves:
|
||||
if isinstance(move.shipment, Model):
|
||||
shipments.add(move.shipment.id)
|
||||
return list(shipments)
|
||||
return method
|
||||
|
||||
|
||||
def search_shipments_returns(model_name):
|
||||
"Search on shipments or returns"
|
||||
def method(self, name, clause):
|
||||
nested = clause[0].lstrip(name)
|
||||
if nested:
|
||||
return [('lines.moves.shipment' + nested,)
|
||||
+ tuple(clause[1:3]) + (model_name,) + tuple(clause[3:])]
|
||||
else:
|
||||
if isinstance(clause[2], basestring):
|
||||
target = 'rec_name'
|
||||
else:
|
||||
target = 'id'
|
||||
return [('lines.moves.shipment.' + target,)
|
||||
+ tuple(clause[1:3]) + (model_name,)]
|
||||
return classmethod(method)
|
||||
|
||||
|
||||
class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
'Sale'
|
||||
__name__ = 'sale.sale'
|
||||
@@ -565,39 +596,9 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
'invoice_state': state,
|
||||
})
|
||||
|
||||
def get_shipments_returns(model_name):
|
||||
"Computes the returns or shipments"
|
||||
def method(self, name):
|
||||
Model = Pool().get(model_name)
|
||||
shipments = set()
|
||||
for line in self.lines:
|
||||
for move in line.moves:
|
||||
if isinstance(move.shipment, Model):
|
||||
shipments.add(move.shipment.id)
|
||||
return list(shipments)
|
||||
return method
|
||||
|
||||
get_shipments = get_shipments_returns('stock.shipment.out')
|
||||
get_shipment_returns = get_shipments_returns('stock.shipment.out.return')
|
||||
|
||||
def search_shipments_returns(model_name):
|
||||
'''
|
||||
Search on shipments or returns
|
||||
'''
|
||||
def method(self, name, clause):
|
||||
nested = clause[0].lstrip(name)
|
||||
if nested:
|
||||
return [('lines.moves.shipment' + nested,)
|
||||
+ tuple(clause[1:3]) + (model_name,) + tuple(clause[3:])]
|
||||
else:
|
||||
if isinstance(clause[2], basestring):
|
||||
target = 'rec_name'
|
||||
else:
|
||||
target = 'id'
|
||||
return [('lines.moves.shipment.' + target,)
|
||||
+ tuple(clause[1:3]) + (model_name,)]
|
||||
return classmethod(method)
|
||||
|
||||
search_shipments = search_shipments_returns('stock.shipment.out')
|
||||
search_shipment_returns = search_shipments_returns(
|
||||
'stock.shipment.out.return')
|
||||
|
||||
@@ -224,6 +224,32 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="action" ref="act_sale_shipments_relate"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_sale_shipment_returns_relate">
|
||||
<field name="name">Sales</field>
|
||||
<field name="res_model">sale.sale</field>
|
||||
<field name="domain"
|
||||
eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('shipment_returns', '=', Eval('active_id')), ('shipment_returns', 'in', Eval('active_ids')))]"
|
||||
pyson="1"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_sale_shipment_returns_relate_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="sale_view_tree"/>
|
||||
<field name="act_window" ref="act_sale_shipment_returns_relate"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_sale_shipment_returns_relate_view2">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="sale_view_form"/>
|
||||
<field name="act_window" ref="act_sale_shipment_returns_relate"/>
|
||||
</record>
|
||||
<record model="ir.action.keyword"
|
||||
id="act_sale_shipment_returns_relate_keyword">
|
||||
<field name="keyword">form_relate</field>
|
||||
<field name="model">stock.shipment.out.return,-1</field>
|
||||
<field name="action" ref="act_sale_shipment_returns_relate"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_sale">
|
||||
<field name="model" search="[('model', '=', 'sale.sale')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
|
||||
Reference in New Issue
Block a user