Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
2
maintenance_request_sequence/models/__init__.py
Normal file
2
maintenance_request_sequence/models/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
from . import maintenance_request
|
||||
from . import maintenance_team
|
||||
24
maintenance_request_sequence/models/maintenance_request.py
Normal file
24
maintenance_request_sequence/models/maintenance_request.py
Normal file
@@ -0,0 +1,24 @@
|
||||
# Copyright 2019 Creu Blanca
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class MaintenanceRequest(models.Model):
|
||||
_inherit = "maintenance.request"
|
||||
_rec_names_search = ["code"]
|
||||
|
||||
code = fields.Char(readonly=True, copy=False, default="/")
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if vals.get("code", "/") == "/":
|
||||
team_id = vals.get("maintenance_team_id")
|
||||
sequence = self.env["maintenance.team"].browse(
|
||||
team_id
|
||||
).sequence_id or self.env.ref(
|
||||
"maintenance_request_sequence.seq_maintenance_request_auto"
|
||||
)
|
||||
vals["code"] = sequence.next_by_id()
|
||||
return super().create(vals_list)
|
||||
57
maintenance_request_sequence/models/maintenance_team.py
Normal file
57
maintenance_request_sequence/models/maintenance_team.py
Normal file
@@ -0,0 +1,57 @@
|
||||
# Copyright 2019 Creu Blanca
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class MaintenanceTeam(models.Model):
|
||||
_inherit = "maintenance.team"
|
||||
|
||||
code_prefix = fields.Char(
|
||||
string="Prefix for Team Reference",
|
||||
help="Prefix used to generate the internal reference for re "
|
||||
"created with this category. If blank the "
|
||||
"default sequence will be used.",
|
||||
)
|
||||
sequence_id = fields.Many2one(
|
||||
comodel_name="ir.sequence",
|
||||
string="Team Sequence",
|
||||
copy=False,
|
||||
readonly=True,
|
||||
)
|
||||
|
||||
@api.model
|
||||
def _prepare_ir_sequence(self, prefix):
|
||||
"""Prepare the vals for creating the sequence
|
||||
:param prefix: a string with the prefix of the sequence.
|
||||
:return: a dict with the values.
|
||||
"""
|
||||
vals = {
|
||||
"name": "Maintenance Request " + prefix,
|
||||
"code": "maintenance.request - " + prefix,
|
||||
"padding": 5,
|
||||
"prefix": prefix,
|
||||
"company_id": False,
|
||||
}
|
||||
return vals
|
||||
|
||||
def write(self, vals):
|
||||
prefix = vals.get("code_prefix")
|
||||
if prefix:
|
||||
for rec in self:
|
||||
if rec.sequence_id:
|
||||
rec.sudo().sequence_id.prefix = prefix
|
||||
else:
|
||||
seq_vals = self._prepare_ir_sequence(prefix)
|
||||
rec.sequence_id = self.env["ir.sequence"].create(seq_vals)
|
||||
return super().write(vals)
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
prefix = vals.get("code_prefix")
|
||||
if prefix:
|
||||
seq_vals = self._prepare_ir_sequence(prefix)
|
||||
sequence = self.env["ir.sequence"].create(seq_vals)
|
||||
vals["sequence_id"] = sequence.id
|
||||
return super().create(vals_list)
|
||||
Reference in New Issue
Block a user