mirror of
https://github.com/ForgeFlow/stock-rma.git
synced 2025-01-21 12:57:49 +02:00
[FIX]compute_sold_qty
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user