66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
from odoo import models, fields
|
|
|
|
class OwsMachineArea(models.Model):
|
|
_name = 'ows.machine.area'
|
|
_table = "ows_machine_area"
|
|
_description = 'OWS: Maschinenbereich'
|
|
_order = 'name'
|
|
|
|
name = fields.Char(required=True, translate=True)
|
|
color = fields.Integer(string="Farbe")
|
|
|
|
|
|
class OwsMachine(models.Model):
|
|
_name = 'ows.machine'
|
|
_table = 'ows_machine'
|
|
_description = 'OWS: Maschine'
|
|
|
|
name = fields.Char(required=True, translate=True)
|
|
code = fields.Char(required=True, help="Eindeutiger Kurzcode, z.B. 'lasercutter'")
|
|
description = fields.Text()
|
|
active = fields.Boolean(default=True)
|
|
|
|
area_id = fields.Many2one('ows.machine.area', string='Bereich')
|
|
|
|
_sql_constraints = [
|
|
('code_unique', 'unique(code)', 'Maschinencode muss eindeutig sein.')
|
|
]
|
|
|
|
def name_get(self):
|
|
return [(rec.id, f"{rec.name} ({rec.code})") for rec in self]
|
|
|
|
|
|
class OwsMachineAccess(models.Model):
|
|
_name = 'ows.machine.access'
|
|
_table = 'ows_machine_access'
|
|
_description = 'OWS: Maschinenfreigabe'
|
|
_order = 'partner_id, machine_id'
|
|
|
|
partner_id = fields.Many2one('res.partner', required=True, ondelete='cascade')
|
|
machine_id = fields.Many2one('ows.machine', required=True)
|
|
date_granted = fields.Date(default=fields.Date.today)
|
|
date_expiry = fields.Date(string="Ablaufdatum")
|
|
granted_by_pos = fields.Boolean(default=True)
|
|
|
|
_sql_constraints = [
|
|
('partner_machine_unique', 'unique(partner_id, machine_id)', 'Der Kunde hat diese Freigabe bereits.')
|
|
]
|
|
|
|
|
|
class OwsMachineProduct(models.Model):
|
|
_name = 'ows.machine.product'
|
|
_table = 'ows_machine_product'
|
|
_description = 'OWS: Zurordnung Produkt der Einweisung zur die Maschine'
|
|
|
|
product_id = fields.Many2one('product.product', required=True, domain=[('available_in_pos', '=', True)], ondelete='cascade')
|
|
machine_id = fields.Many2one('ows.machine', required=True, ondelete='cascade')
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
machine_access_ids = fields.One2many(
|
|
'ows.machine.access',
|
|
'partner_id',
|
|
string='Maschinenfreigaben'
|
|
)
|