# Copyright 2017-18 Eficent Business and IT Consulting Services S.L. # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html) from odoo import api, fields, models class RmaOperation(models.Model): _name = 'rma.operation' _description = 'RMA Operation' @api.model def _default_warehouse_id(self): company_id = self.env.user.company_id.id warehouse = self.env['stock.warehouse'].search( [('company_id', '=', company_id)], limit=1) return warehouse @api.model def _default_customer_location_id(self): return self.env.ref('stock.stock_location_customers') or False @api.model def _default_supplier_location_id(self): return self.env.ref('stock.stock_location_suppliers') or False @api.model def _default_routes(self): op_type = self.env.context.get('default_type') if op_type == 'customer': return self.env.ref('rma.route_rma_customer') elif op_type == 'supplier': return self.env.ref('rma.route_rma_supplier') name = fields.Char('Description', required=True) code = fields.Char('Code', required=True) active = fields.Boolean(string='Active', default=True) receipt_policy = fields.Selection([ ('no', 'Not required'), ('ordered', 'Based on Ordered Quantities'), ('delivered', 'Based on Delivered Quantities')], string="Receipts Policy", default='no') delivery_policy = fields.Selection([ ('no', 'Not required'), ('ordered', 'Based on Ordered Quantities'), ('received', 'Based on Received Quantities')], string="Delivery Policy", default='no') in_route_id = fields.Many2one( comodel_name='stock.location.route', string='Inbound Route', domain=[('rma_selectable', '=', True)], default=lambda self: self._default_routes(), ) out_route_id = fields.Many2one( comodel_name='stock.location.route', string='Outbound Route', domain=[('rma_selectable', '=', True)], default=lambda self: self._default_routes(), ) customer_to_supplier = fields.Boolean( string='The customer will send to the supplier', ) supplier_to_customer = fields.Boolean( string='The supplier will send to the customer', ) in_warehouse_id = fields.Many2one( comodel_name='stock.warehouse', string='Inbound Warehouse', default=lambda self: self._default_warehouse_id(), ) out_warehouse_id = fields.Many2one( comodel_name='stock.warehouse', string='Outbound Warehouse', default=lambda self: self._default_warehouse_id(), ) location_id = fields.Many2one( 'stock.location', 'Send To This Company Location') type = fields.Selection([ ('customer', 'Customer'), ('supplier', 'Supplier')], string="Used in RMA of this type", required=True) rma_line_ids = fields.One2many( comodel_name='rma.order.line', inverse_name='operation_id', string='RMA lines', ) company_id = fields.Many2one( comodel_name='res.company', string='Company', required=True, default=lambda self: self.env.user.company_id )