# © 2019 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import models, fields, api class ScopPeriod(models.Model): _name = "scop.period" _description = "SCOP Period" _order = "partner_id, start desc" # Infos générales partner_id = fields.Many2one( comodel_name='res.partner', string='Organisme', domain=[('is_cooperative', '=', True)], ondelete='cascade', required=True, index=True) id_riga = fields.Integer("ID RIGA") start = fields.Date('Début de validité', required=True, default=fields.Date.today(), index=True) end = fields.Date('Fin de validité') end_reason = fields.Selection( [('juri', "Modification de la forme juridique"), ('form', "Changement de forme coopérative"), ('acti', "Changement d'activité (NAF)"), ('adr', "Changement d'adresse"), ('nom', "Changement de dénomination sociale"), ('deces', 'Décès'), ('autr', "Autres")], string='Motif de fin de validité') comments = fields.Text('Commentaires') name = fields.Char('Raison Sociale', required=True, index=True) cooperative_form_id = fields.Many2one( 'res.partner.cooperative.form', string="Cooperative form", on_delete='restrict') partner_company_type_id = fields.Many2one( comodel_name='res.partner.company.type', string='Legal Form', track_visibility='onchange', on_delete='restrict') siret = fields.Char(string='SIRET', size=14) street = fields.Char() street2 = fields.Char() street3 = fields.Char() zip = fields.Char() zip_id = fields.Many2one('res.city.zip', 'ZIP Location') city = fields.Char() cedex = fields.Char() state_id = fields.Many2one( "res.country.state", string='State', ondelete='restrict', domain="[('country_id', '=?', country_id)]") country_id = fields.Many2one( 'res.country', string='Country', ondelete='restrict') naf_id = fields.Many2one( 'res.partner.naf', string='Code NAF', on_delete='restrict') cae = fields.Boolean("CAE") dissolution_reason_id = fields.Many2one( 'res.partner.dissolution.reason', string="Motif Décès", on_delete='restrict', track_visibility='onchange') @api.multi def write(self, vals): for period in self: partner_vals = dict(vals) partner_vals.pop('partner_id', False) partner_vals.pop('id_riga', False) partner_vals.pop('start', False) partner_vals.pop('end', False) partner_vals.pop('end_reason', False) partner_vals.pop('comments', False) partner_vals.pop('dissolution_reason_id', False) # Update partner period.partner_id.write(partner_vals) return super(ScopPeriod, self).write(vals)