[FIX]compute_sold_qty

This commit is contained in:
aheficent
2018-02-12 17:46:36 +01:00
committed by aaron
parent e591b5fac3
commit 94629b098a

View File

@@ -9,24 +9,25 @@ from openerp.addons import decimal_precision as dp
class RmaOrderLine(models.Model):
_inherit = "rma.order.line"
@api.depends('sale_line_ids', 'sale_policy', 'sales_count',
'sale_line_ids.state', 'qty_received', 'product_qty')
@api.depends('sale_line_ids', 'sale_type', 'sales_count',
'sale_line_ids.state')
def _compute_qty_to_sell(self):
for rec in self:
if rec.sale_policy == 'ordered':
if rec.sale_type == 'no':
rec.qty_to_sell = 0.0
elif rec.sale_type == 'ordered':
qty = rec._get_rma_sold_qty()
rec.qty_to_sell = rec.product_qty - qty
elif rec.sale_policy == 'received':
elif rec.sale_type == 'received':
qty = rec._get_rma_sold_qty()
rec.qty_to_sell = rec.qty_received - qty
else:
rec.qty_to_sell = 0.0
@api.depends('sale_line_ids', 'sale_policy', 'sales_count',
@api.depends('sale_line_ids', 'sale_type', 'sales_count',
'sale_line_ids.state')
def _compute_qty_sold(self):
for rec in self:
rec.qty_sold = rec._get_rma_sold_qty()
self.qty_sold = self._get_rma_sold_qty()
@api.multi
def _compute_sales_count(self):
@@ -57,35 +58,13 @@ class RmaOrderLine(models.Model):
digits=dp.get_precision('Product Unit of Measure'),
readonly=True, compute=_compute_qty_sold,
store=True)
sale_policy = fields.Selection(selection=[
sale_type = fields.Selection(selection=[
('no', 'Not required'), ('ordered', 'Based on Ordered Quantities'),
('received', 'Based on Received Quantities')],
string="Sale Policy", default='no', required=True)
sales_count = fields.Integer(
compute=_compute_sales_count, string='# of Sales')
@api.onchange('product_id', 'partner_id')
def _onchange_product_id(self):
"""Domain for sale_line_id is computed here to make it dynamic."""
res = super(RmaOrderLine, self)._onchange_product_id()
if not res.get('domain'):
res['domain'] = {}
domain = [
'|',
('order_id.partner_id', '=', self.partner_id.id),
('order_id.partner_id', 'child_of', self.partner_id.id)]
if self.product_id:
domain.append(('product_id', '=', self.product_id.id))
res['domain']['sale_line_id'] = domain
return res
@api.onchange('operation_id')
def _onchange_operation_id(self):
res = super(RmaOrderLine, self)._onchange_operation_id()
if self.operation_id:
self.sale_policy = self.operation_id.sale_policy or 'no'
return res
@api.multi
def _prepare_rma_line_from_sale_order_line(self, line):
self.ensure_one()