mirror of
https://github.com/OCA/stock-logistics-warehouse.git
synced 2025-01-21 14:27:28 +02:00
[IMP] make the merge domain modular
As explained by Raphaël Valyi in https://github.com/OCA/stock-logistics-warehouse/pull/94#discussion_r45978223 : Some may need to override this domain. Example: in Brazil we will probably separate quants of the same product depending on if it comes from national origin or if it's imported. It's the same product in the MRP for instance. But for fiscal reports we cannot mix quants and we don't want to freak with lots for product origin. In this case we would need to override this domain, but may be there are other use cases.
This commit is contained in:
committed by
Cyril Gaudin
parent
330fcf41cc
commit
7dac9d65c2
@@ -10,21 +10,25 @@ from openerp import models, api
|
||||
class StockQuant(models.Model):
|
||||
_inherit = 'stock.quant'
|
||||
|
||||
@api.multi
|
||||
def _mergeable_domain(self):
|
||||
"""Return the quants which may be merged with the current record"""
|
||||
self.ensure_one()
|
||||
return [('id', '!=', self.id),
|
||||
('product_id', '=', self.product_id.id),
|
||||
('lot_id', '=', self.lot_id.id),
|
||||
('package_id', '=', self.package_id.id),
|
||||
('location_id', '=', self.location_id.id),
|
||||
('reservation_id', '=', False),
|
||||
('propagated_from_id', '=', self.propagated_from_id.id)]
|
||||
|
||||
@api.multi
|
||||
def merge_stock_quants(self):
|
||||
pending_quants = self.filtered(lambda x: True)
|
||||
for quant2merge in self:
|
||||
if (quant2merge in pending_quants and
|
||||
not quant2merge.reservation_id):
|
||||
quants = self.search(
|
||||
[('id', '!=', quant2merge.id),
|
||||
('product_id', '=', quant2merge.product_id.id),
|
||||
('lot_id', '=', quant2merge.lot_id.id),
|
||||
('package_id', '=', quant2merge.package_id.id),
|
||||
('location_id', '=', quant2merge.location_id.id),
|
||||
('reservation_id', '=', False),
|
||||
('propagated_from_id', '=',
|
||||
quant2merge.propagated_from_id.id)])
|
||||
quants = self.search(self._mergeable_domain())
|
||||
cont = 1
|
||||
cost = quant2merge.cost
|
||||
for quant in quants:
|
||||
|
||||
Reference in New Issue
Block a user