diff --git a/__manifest__.py b/__manifest__.py index a7e2b0e4c2f50fbe2a57253c574362b5b1e52f86..7c8f7ef224dc85b5bdb3f99ba7bc25907ea74631 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -16,6 +16,7 @@ "views/res_partner.xml", # views menu "views/menus.xml", + "data/sequence.xml" # wizard ], "assets": { diff --git a/data/sequence.xml b/data/sequence.xml new file mode 100644 index 0000000000000000000000000000000000000000..c43605ea936a3095088b199eea396b9669a2481c --- /dev/null +++ b/data/sequence.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data noupdate="1"> + <!-- Demandes sequences --> + <record model="ir.sequence" id="financial_contract_sequence"> + <field name="name">Contract number</field> + <field name="code">financial_contract_seq</field> + <field eval="1" name="number_next"/> + <field eval="1" name="number_increment"/> + <field eval="False" name="use_date_range"/> + <field eval="False" name="company_id"/> + <field name="prefix">FC</field> + <field name="padding">5</field> + </record> + + </data> +</odoo> diff --git a/models/financial_contract.py b/models/financial_contract.py index 5de399d115521b6fcf09f7724ba13b6393010934..431aa7df77a46c03ecf0331fe4bbda579ece7168 100644 --- a/models/financial_contract.py +++ b/models/financial_contract.py @@ -1,7 +1,7 @@ # © 2019 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import _, fields, models +from odoo import _, fields, models, api from odoo.exceptions import UserError @@ -13,7 +13,7 @@ class FinancialContract(models.Model): _check_company_auto = True _rec_names_search = ["name", "partner_id.name", "partner_id.member_number"] - name = fields.Char("Numéro", required=True) + name = fields.Char("Numéro", readonly=True) partner_id = fields.Many2one( comodel_name="res.partner", string="Coopérative", @@ -62,3 +62,14 @@ class FinancialContract(models.Model): _("Seuls les deals à l'état Projet peuvent être supprimés") ) return super().unlink() + + @api.model + def create(self, values): + # On récupère le no de demande + name = self.env["ir.sequence"].next_by_code("financial_contract_seq") + values["name"] = name + + # On crée le record + res = super().create(values) + + return res