diff --git a/models/__init__.py b/models/__init__.py index 8f73648..366d54d 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -20,4 +20,5 @@ from . import laposte_ref from . import settings from . import donation_recurring_template_letter from . import partner_import -#from . import res_partner_bank \ No newline at end of file +#from . import res_partner_bank +from .import donation_print_email_history \ No newline at end of file diff --git a/models/donation.py b/models/donation.py index b978745..6d49c88 100644 --- a/models/donation.py +++ b/models/donation.py @@ -87,7 +87,13 @@ class DonationDonation(models.Model): ) year_donation_date=fields.Integer('Year donation date',compute='_compute_year_donation_date',store=True) - + print_email_history_ids=fields.One2many( + 'opendons.donation.print_email_history', + 'donation_id', + string='print or email history ', + readonly=True + ) + def _compute_year_donation_date(self): for rec in self: rec.year_donation_date=rec.donation_date.year @@ -96,14 +102,13 @@ class DonationDonation(models.Model): #raise Warning(self.recurring_template) if self.recurring_template=='active': - sepa_payment_method=self.env['account.payment.method'].search([('code','=','sepa_direct_debit')]) - + sepa_payment_method=self.env['account.payment.method'].search([('code','=','sepa_direct_debit')],limit=1) if sepa_payment_method: - - id=int(sepa_payment_method.id) - return 4 - else: - raise Warning('veuillez configurer la méthode de paiment SEPA') + sepa_payment_mode=self.env['account.payment.mode'].search([('payment_method_id','=',int(sepa_payment_method.id))],limit=1) + if sepa_payment_mode: + self.payment_mode_id=sepa_payment_mode.id + else: + raise Warning(_('Please configure a SEPA payment mode')) payment_mode_id = fields.Many2one( "account.payment.mode", @@ -166,7 +171,20 @@ class DonationDonation(models.Model): self.mandate_id=False - + @api.onchange("payment_mode_id") + def donation_payment_mode_id_change(self): + if self.recurring_template=='active' and self.payment_mode_id: + sepa_payment_method=self.env['account.payment.method'].search([('code','=','sepa_direct_debit')],limit=1) + if sepa_payment_method: + sepa_payment_mode=self.env['account.payment.mode'].search([('payment_method_id','=',int(sepa_payment_method.id))],limit=1) + if sepa_payment_mode: + if self.payment_mode_id!=sepa_payment_mode.id : + self.payment_mode_id=sepa_payment_mode.id + + else: + raise ValidationError(_('Please configure SEPA Payment')) + + @api.onchange('operation_id') def _onchange_operation_id(self): @@ -563,7 +581,27 @@ class DonationDonation(models.Model): 'res_id': wiz.id, 'context': self.env.context, } - + + def show_print_wizard(self): + self.ensure_one() + assert self.recurring_template == "active" + view=self.env.ref('opendons.recurring_donation_view') + + wiz=self.env['opendons.recurringdonationprint.wizard'].create({'donation_id':self.id}) + + return { + 'name': _('Print letter'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'opendons.recurringdonationprint.wizard', + 'views': [(view.id, 'form')], + 'view_id': view.id, + 'target': 'new', + 'res_id': wiz.id, + 'context': self.env.context, + } + # self.write({"recurring_template": "stopped"}) diff --git a/models/donation_print_email_history.py b/models/donation_print_email_history.py new file mode 100644 index 0000000..f5b9d04 --- /dev/null +++ b/models/donation_print_email_history.py @@ -0,0 +1,11 @@ +from odoo import api, fields, models,_ +from odoo.exceptions import UserError,Warning + +class opendons_donation_print_email_history(models.Model): + _name = 'opendons.donation.print_email_history' + _description = 'history of print or email sent to partner' + + chanel=fields.Char('chanel') + date_action=fields.Date('date action') + template_name=fields.Char('Template name') + donation_id=fields.Many2one('donation.donation') diff --git a/models/donation_recurring_template_letter.py b/models/donation_recurring_template_letter.py index d323f2d..bff9ba1 100644 --- a/models/donation_recurring_template_letter.py +++ b/models/donation_recurring_template_letter.py @@ -9,22 +9,7 @@ class DonationRecurringTemplateLetter(models.Model): html_content=fields.Html('html content',compute='pa_html_content') html_content_print=fields.Html('html content print') - def action_print_pa(self): - self.ensure_one() - - if self.html_content: - html_content_print=self.html_content - html_content_print=html_content_print.replace('{{partner_id.name}}',self.partner_id.name) - html_content_print=html_content_print.replace('{{partner_id.firstname}}',self.partner_id.firstname) - - - - self.html_content_print=self.html_content - - - return self.env.ref("opendons.report_donation_recurring_letter").report_action(self) - else: - raise Warning('please select a mail to print') + def action_send_pa(self): self.ensure_one() diff --git a/models/operation.py b/models/operation.py index f9af7ff..4fb83ae 100644 --- a/models/operation.py +++ b/models/operation.py @@ -30,8 +30,8 @@ class opendons_operation(models.Model): _inherit = ['mail.thread'] _check_company_auto = True #_order = "__last_update desc" - #code=fields.Char(string='Code',required=True, translate=True,track_visibility='always') - name=fields.Char(string='Name',required=True, translate=True,copy=False,default='operation',track_visibility='always') + code=fields.Char(string='Code',required=True, translate=True,track_visibility='always') + name=fields.Char(string='Name',required=True, translate=True,copy=False,default='campagne',track_visibility='always') partner_count = fields.Integer(string="count",readonly=True) exported_date=fields.Date(string='Exported Date',track_visibility='always', readonly=True) #end_date=fields.Date(string='Date end',required=True, translate=True,track_visibility='always') diff --git a/models/partner.py b/models/partner.py index eedff62..3e021cf 100644 --- a/models/partner.py +++ b/models/partner.py @@ -293,4 +293,9 @@ class partner(models.Model): raise ValidationError('Invalid mobile') - \ No newline at end of file + @api.onchange('zip') + def _onchange_zip(self): + if self.zip: + if len(self.zip)!=5: raise ValidationError('invalid zip code') + if not self.zip.isnumeric(): raise ValidationError('invalid zip code') + return \ No newline at end of file diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index c598f77..c65e2fe 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -38,9 +38,13 @@ access_opendons_laposte_ref,opendons_laposte_ref,model_opendons_laposte_ref,dona access_opendons_recurring_donation_wizard,opendons_recurring_donation_wizard,model_opendons_recurringdonation_wizard,donation.group_donation_manager,1,1,1,1 +access_opendons_recurring_donationprint_wizard,opendons_recurring_donationprint_wizard,model_opendons_recurringdonationprint_wizard,donation.group_donation_manager,1,1,1,1 access_opendons_recurring_donation,opendons_recurring_donation,model_opendons_recurring_donation,donation.group_donation_manager,1,1,1,1 access_opendons_template_pa_letter,opendons_template_pa_letter,model_opendons_template_pa_letter,donation.group_donation_manager,1,1,1,1 +access_opendons_print_donation_email_history,opendons_print_donation_email_history,model_opendons_donation_print_email_history,donation.group_donation_manager,1,1,1,1 + + access_opendons_partnerdraft,opendons_partnerdraft,model_opendons_partnerdraft,donation.group_donation_manager,1,1,1,1 access_opendons_partnerdraftfile,opendons_partnerdraftfile,model_opendons_partnerdraftfile,donation.group_donation_manager,1,1,1,1 access_opendons_partnerdraft_file_mapping,opendons_partnerdraft_file_mapping,model_opendons_partnerdraftfile_mapping,donation.group_donation_manager,1,1,1,1 \ No newline at end of file diff --git a/views/operation.xml b/views/operation.xml index d3b24b2..3b5f4f5 100644 --- a/views/operation.xml +++ b/views/operation.xml @@ -148,6 +148,7 @@ + diff --git a/views/partner.xml b/views/partner.xml index 4968276..827b75b 100644 --- a/views/partner.xml +++ b/views/partner.xml @@ -131,6 +131,7 @@ + diff --git a/views/recurring_donation.xml b/views/recurring_donation.xml index 58d2802..5bab8e5 100644 --- a/views/recurring_donation.xml +++ b/views/recurring_donation.xml @@ -30,10 +30,10 @@ --> - + @@ -82,7 +82,7 @@ -