diff --git a/__manifest__.py b/__manifest__.py index c286a8154104c299eae86addcc9319618f6618a0..f82d2083733178dffc22913089c3a4393d078f39 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -10,6 +10,7 @@ "security/ir.model.access.csv", # datas "data/mail_data.xml", + "data/data.xml", # views "views/res_partner_views.xml", "views/acc_operation_views.xml", diff --git a/data/data.xml b/data/data.xml new file mode 100644 index 0000000000000000000000000000000000000000..e2d676048360961cf971017a55476f568ff8292e --- /dev/null +++ b/data/data.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data noupdate="1"> + + <record id="sequence_prod_seq" model="ir.sequence"> + <field name="name">Séquence pour les producteurs</field> + <field name="code">res.partner</field> + <field name="prefix">P</field> + <field name="padding">4</field> + <field eval="False" name="company_id"/> + </record> + + </data> + +</odoo> diff --git a/models/res_partner.py b/models/res_partner.py index c55b2f94f213953857a0c192bc4abf4e7cb18037..bda32fb88b9d3f76c44197a94ca048dbf305295b 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -1,7 +1,7 @@ # Copyright 2021 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 class ResPartner(models.Model): @@ -34,6 +34,7 @@ class ResPartner(models.Model): ) mail_contact_pmo = fields.Char("Mail du contact PMO") date_log = fields.Datetime("Date de connexion") + ref_producer = fields.Char("Référence du producteur") # ------------------------------------------------------ # SQL Constraints # ------------------------------------------------------ @@ -53,7 +54,12 @@ class ResPartner(models.Model): # ------------------------------------------------------ # CRUD methods (ORM overrides) # ------------------------------------------------------ - + @api.model + def create(self, vals): + if vals.get("is_producer") == True: + vals["ref_producer"] = self.env["ir.sequence"].next_by_code("res.partner") + result = super(ResPartner, self).create(vals) + return result # ------------------------------------------------------ # Actions # ------------------------------------------------------ diff --git a/views/res_partner_views.xml b/views/res_partner_views.xml index 352553b1d70dd38033d961e70b9b572440eb0c68..96a21fb47d92257b54e52b8fe359c7afa0a271d6 100644 --- a/views/res_partner_views.xml +++ b/views/res_partner_views.xml @@ -51,6 +51,7 @@ <field name="arch" type="xml"> <field name="type" position="before"> <field name="is_producer" /> + <field name="ref_producer" attrs="{'invisible': [('is_producer', '!=', True)]}"/> <field name="is_consumer" /> <field name="is_pmo" /> <field