You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

91 lines
2.6 KiB

# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError
from psycopg2 import sql, DatabaseError
from werkzeug import utils
class opendons_returnmail(models.Model):
_name = 'opendons_returnmail'
_description = 'manage return mail'
return_type=fields.Selection(string='Type',
selection=[
('npai', 'NPAI'),
('decedee','Décédée'),
('refusee','Refusée')
],default='npai')
return_count=fields.Integer(string='returns count', readonly=True)
return_input=fields.Char('Input field')
npai_lines = fields.One2many(
'opendons_returnmail.npai',
'returnmail_id',
string='NPAI',
track_visibility='onchange')
company_id = fields.Many2one(
"res.company",
string="Company",
required=True,
default=lambda self: self.env.company
)
def action_ajouter_npai(self):
data=self.return_input.split(';')
vals={}
vals['partner_id']=data[0]
vals['operation_id']=data[1]
vals['segment_id']=data[2]
vals['returnmail_id']=self.id
p=self.env['res.partner'].search_count([('id','=',int(vals['partner_id']))])
if p==0 : raise UserError("ce contact n'existe pas")
op=self.env['opendons.operation'].search_count([('id','=',int(vals['operation_id']))])
if op==0 : raise UserError("cette operation n'existe pas")
seg=self.env['opendons.segment'].search_count([('id','=',int(vals['segment_id']))])
if seg==0 : raise UserError("ce segment n'existe pas")
res=self.env['opendons_returnmail.npai'].create(vals)
self.env.cr.commit()
class opendons_returnmailNpai(models.Model):
_name = 'opendons_returnmail.npai'
_description = 'gestion des retours NPAI'
returnmail_id = fields.Many2one(
'opendons_returnmail',
string='return mail',
ondelete='set null'
)
partner_id=fields.Many2one(
'res.partner',
string='Partner',
required=True,
index=True,
track_visibility='onchange',
ondelete='restrict'
)
operation_id=fields.Many2one(
'opendons.operation',
string='Operation',
required=True,
index=True,
track_visibility='onchange',
ondelete='restrict'
)
segment_id=fields.Many2one(
'opendons.segment',
string='Segment',
required=True,
index=True,
track_visibility='onchange',
ondelete='restrict'
)