# -*- coding: utf-8 -*- import ast import json import re import uuid import logging from odoo import api, fields, models, _ from odoo.exceptions import ValidationError from datetime import date _logger = logging.getLogger(__name__) class dbtools_toolsbase(models.Model): _name = "dbtools.tools" _description = "ToolManagement Tools" _rec_name = "tool_short_name" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') tool_state = fields.Many2one('dbtools.state',sring='akt.Status') tool_class = fields.Many2one('dbtools.classes',sring='Werkzeuglasse') tool_category = fields.Many2one('dbtools.category',string='Werkzeugkategorie') tool_branch = fields.Many2one('dbtools.branche',string='Gewerke') tool_short_name = fields.Char('Kurzbezeichnung', required=True) tool_long_name = fields.Char('Ausf.Bezeichnung') tool_description = fields.Text('Beschreibung') tool_artikelnummer_intern = fields.Char('Interne Art.Nummer') tool_artikelnummer_producer = fields.Char('Hersteller Art.Nummer') tool_producer = fields.Many2one('dbtools.producer',string='Hersteller') tool_picture = fields.Binary('Werkzeugbild') tool_documents = fields.One2many('dbtools.documents','tool',string='Dokumente') tool_rental_state = fields.Selection([('IL','Im Lager'),('RT','Vermietet'),('RS','Reserviert'),('NV','Nicht verfügbar')],string="Vermietungs Status",default=lambda self: self._default_rental_state()) tool_rental_date = fields.Datetime('Vermietet seit') tool_rental_partner = fields.Many2one('res.partner',string='Vermietet an') tool_rental_returndate = fields.Datetime('Plan-Rückgabeam') tool_rental_takedate = fields.Datetime('Plan-Abholung am') tool_rental_history = fields.One2many('dbtools.rentalhistory','tool',string='Dokumente') @api.model def _default_uuid(self): return str(uuid.uuid4()) def _default_rental_state(self): return str('IL') def dorental(self): return self def finrental(self): return self class dbtools_toolproducer(models.Model): _name = "dbtools.producer" _description = "ToolManagement Hersteller" _rec_name = "producername" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') producername = fields.Char('Herstellername', required=True) description = fields.Char('Beschreibung') producer_partner = fields.Many2one('res.partner',string='Partner') @api.model def _default_uuid(self): return str(uuid.uuid4()) class dbtools_toolclass(models.Model): _name = "dbtools.classes" _description = "ToolManagement Klassen" _rec_name = "classname" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') classname = fields.Char('Klassenname', required=True) description = fields.Char('Beschreibung') @api.model def _default_uuid(self): return str(uuid.uuid4()) class dbtools_toolbranche(models.Model): _name = "dbtools.branche" _description = "ToolManagement Gewerke" _rec_name = "branchname" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') branchname = fields.Char('Klassenname', required=True) description = fields.Char('Beschreibung') @api.model def _default_uuid(self): return str(uuid.uuid4()) class dbtools_toolcategory(models.Model): _name = "dbtools.category" _description = "ToolManagement Kategorie" _rec_name = "categoryname" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') categoryname = fields.Char('Kategoriename', required=True) description = fields.Char('Beschreibung') @api.model def _default_uuid(self): return str(uuid.uuid4()) class dbtools_tooldocuments(models.Model): _name = "dbtools.documents" _description = "ToolManagement Dokumente" _rec_name = "documentname" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') tool = fields.Many2one('dbtools.tools',string='Werkzeug') documentname = fields.Char('Dokumentenname', required=True) description = fields.Char('Beschreibung') documentfile = fields.Binary('Anhang') @api.model def _default_uuid(self): return str(uuid.uuid4()) class dbtools_toolrentalhistory(models.Model): _name = "dbtools.rentalhistory" _description = "ToolManagement Vermietungshistorie" _rec_name = "entryname" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') tool = fields.Many2one('dbtools.tools',string='Werkzeug') entryname = fields.Char('Entryname', required=True) rental_partner = fields.Char('Leihpartner') rental_start = fields.Datetime('Vermietungsbegin') rental_ende = fields.Datetime('Vermietungsende') rental_returndate = fields.Datetime('Rückgabe am') rental_takedate = fields.Datetime('Abholung am') @api.model def _default_uuid(self): return str(uuid.uuid4()) class dbtools_toolstate(models.Model): _name = "dbtools.state" _description = "ToolManagement Status" _rec_name = "statename" _inherit = ['mail.thread'] uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID') statename = fields.Char('Statusname', required=True) description = fields.Char('Beschreibung') @api.model def _default_uuid(self): return str(uuid.uuid4())