mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-26 03:32:02 +02:00
Initial commit: Core packages
This commit is contained in:
commit
12c29a983b
9512 changed files with 8379910 additions and 0 deletions
69
odoo-bringout-oca-ocb-repair/repair/models/stock_picking.py
Normal file
69
odoo-bringout-oca-ocb-repair/repair/models/stock_picking.py
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
|
||||
class PickingType(models.Model):
|
||||
_inherit = 'stock.picking.type'
|
||||
|
||||
is_repairable = fields.Boolean(
|
||||
'Create Repair Orders from Returns',
|
||||
compute='_compute_is_repairable', store=True, readonly=False,
|
||||
help="If ticked, you will be able to directly create repair orders from a return.")
|
||||
return_type_of_ids = fields.One2many('stock.picking.type', 'return_picking_type_id')
|
||||
|
||||
@api.depends('return_type_of_ids', 'code')
|
||||
def _compute_is_repairable(self):
|
||||
for picking_type in self:
|
||||
if not(picking_type.code == 'incoming' and picking_type.return_type_of_ids):
|
||||
picking_type.is_repairable = False
|
||||
|
||||
|
||||
class Picking(models.Model):
|
||||
_inherit = 'stock.picking'
|
||||
|
||||
is_repairable = fields.Boolean(related='picking_type_id.is_repairable')
|
||||
repair_ids = fields.One2many('repair.order', 'picking_id')
|
||||
nbr_repairs = fields.Integer('Number of repairs linked to this picking', compute='_compute_nbr_repairs')
|
||||
|
||||
@api.depends('repair_ids')
|
||||
def _compute_nbr_repairs(self):
|
||||
for picking in self:
|
||||
picking.nbr_repairs = len(picking.repair_ids)
|
||||
|
||||
def action_repair_return(self):
|
||||
self.ensure_one()
|
||||
ctx = self.env.context.copy()
|
||||
ctx.update({
|
||||
'default_location_id': self.location_dest_id.id,
|
||||
'default_picking_id': self.id,
|
||||
'default_partner_id': self.partner_id and self.partner_id.id or False,
|
||||
})
|
||||
return {
|
||||
'name': _('Create Repair'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'repair.order',
|
||||
'view_id': self.env.ref('repair.view_repair_order_form').id,
|
||||
'context': ctx,
|
||||
}
|
||||
|
||||
def action_view_repairs(self):
|
||||
if self.repair_ids:
|
||||
action = {
|
||||
'res_model': 'repair.order',
|
||||
'type': 'ir.actions.act_window',
|
||||
}
|
||||
if len(self.repair_ids) == 1:
|
||||
action.update({
|
||||
'view_mode': 'form',
|
||||
'res_id': self.repair_ids[0].id,
|
||||
})
|
||||
else:
|
||||
action.update({
|
||||
'name': _('Repair Orders'),
|
||||
'view_mode': 'tree,form',
|
||||
'domain': [('id', 'in', self.repair_ids.ids)],
|
||||
})
|
||||
return action
|
||||
Loading…
Add table
Add a link
Reference in a new issue