diff --git a/__init__.py b/__init__.py index 511a0ca..a24914b 100755 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- from . import controllers -from . import models \ No newline at end of file +from . import models +from . import wizard \ No newline at end of file diff --git a/__manifest__.py b/__manifest__.py index ec2a650..6b8a6fb 100755 --- a/__manifest__.py +++ b/__manifest__.py @@ -70,7 +70,9 @@ 'views/payment_transaction.xml', 'views/donation.xml', 'views/mediatheque.xml', - 'views/account.xml' + 'views/account.xml', + 'views/accounting_file.xml', + 'wizard/accounting_file_wizard.xml' #'views/payment_views.xml' diff --git a/controllers/booking.py b/controllers/booking.py index 3956547..c9a7d3a 100755 --- a/controllers/booking.py +++ b/controllers/booking.py @@ -268,13 +268,14 @@ class booking(WebsiteEventController,AuthSignupHome): else: invoice=request.env['event.registration'].sudo().action_event_registration_generate_invoice(request.session['res_id'],False,False) request.session['invoice_id']=invoice.id - + #ajout de l'adhésion if membership: membership_product=request.env['product.product'].sudo().search([('membership_product','=',True)],limit=1) if not membership_product: raise UserError(_('No membership product, please add one')) vals={} vals['invoice_id']=int(invoice.id) + vals['balance_invoice_id']=int(res.balance_invoice_id) vals['partner_id']=int(res.partner_id) vals['product_id']=int(membership_product.id) vals['start_date']=datetime.now() diff --git a/controllers/kalachakra.py b/controllers/kalachakra.py index 1c99183..1d9b0fe 100755 --- a/controllers/kalachakra.py +++ b/controllers/kalachakra.py @@ -627,8 +627,9 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): if data['status']=='not member':data['status']='non adhérent' if data['status']=='member':data['status']='adhérent' if data['status']=='super member':data['status']='adhérent de soutien' - #data['form_action']='step2' - data['form_action']='contactform' + data['form_action']='step2' + #if not partner.phone or not partner.zip or not partner.city: + #data['form_action']='contactform' if event.headphone_option :data['form_action']='step1b' request.session['status']=partner.member_status @@ -751,16 +752,15 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): request.session['res_id']=res.id #mise à jour des informations personnelles - - partner.name=post.get('name') - partner.firstname=post.get('firstname') - partner.street=post.get('street') - partner.street2=post.get('street2') - partner.zip=post.get('zip') - partner.city=post.get('city') - partner.phone=post.get('phone') - partner.mobile=post.get('mobile') - if post.get('birthday_date')!='': + if post.get('name'):partner.name=post.get('name') + if post.get('firstname'):partner.firstname=post.get('firstname') + if post.get('street'):partner.street=post.get('street') + if post.get('street2'):partner.street2=post.get('street2') + if post.get('zip'):partner.zip=post.get('zip') + if post.get('city'):partner.city=post.get('city') + if post.get('phone'):partner.phone=post.get('phone') + if post.get('mobile'):partner.mobile=post.get('mobile') + if post.get('birthday_date'): bd=post.get('birthday_date').split('/' ) partner.birthday_date=bd[2]+'-'+bd[1]+'-'+bd[0] diff --git a/models/__init__.py b/models/__init__.py index 093aae0..1c22f6b 100755 --- a/models/__init__.py +++ b/models/__init__.py @@ -23,4 +23,5 @@ from . import account_move from . import res_users from . import membership_import from . import online_payment +from . import accounting_file diff --git a/models/account_move.py b/models/account_move.py index ac4ace3..e39b1fb 100755 --- a/models/account_move.py +++ b/models/account_move.py @@ -14,6 +14,7 @@ class AccountMove(models.Model): transaction_date=fields.Datetime(compute='_compute_transaction_date') transaction_amount=fields.Float(compute='_compute_transaction_amount') systempay_ref=fields.Text(compute='_compute_systempay_ref') + date_compta=fields.Datetime('date import',default=False) def _compute_description(self): diff --git a/models/accounting_file.py b/models/accounting_file.py new file mode 100755 index 0000000..8975826 --- /dev/null +++ b/models/accounting_file.py @@ -0,0 +1,13 @@ +from odoo import models, fields, api +from odoo.exceptions import UserError, ValidationError,Warning +from datetime import date,datetime,timedelta + +class accounting_file(models.Model): + _name = 'accounting.file' + _description = 'accounting files' + + accounting_file = fields.Binary('accounting file', readonly=True) + document_fname=fields.Char(default='undefined') + exported_date=fields.Date(string='Exported Date',tracking=True, readonly=True) + + \ No newline at end of file diff --git a/models/booking_event_registration.py b/models/booking_event_registration.py index a0b462d..3566ab3 100755 --- a/models/booking_event_registration.py +++ b/models/booking_event_registration.py @@ -108,6 +108,7 @@ class EventRegistration(models.Model): days_duration=fields.Integer('Duration in days') price_individual_booking=fields.Monetary('price individual booking',currency_field='currency_id') + exported_state=fields.Char('accounting exported state') def compute_individual_room(self): for rec in self: diff --git a/models/donation.py b/models/donation.py index db149d8..4fd1956 100755 --- a/models/donation.py +++ b/models/donation.py @@ -47,6 +47,7 @@ class DonationDonation(models.Model): affectation=fields.Char(compute='_compute_affectation') source_import=fields.Char('source import') date_import=fields.Date('date import',default=False) + date_compta=fields.Datetime('date import',default=False) # @api.depends('transaction_id.state') # def transaction_state(self): # _logger.error("onchange_transaction_state") diff --git a/models/event.py b/models/event.py index a85e17b..7fd3d2a 100755 --- a/models/event.py +++ b/models/event.py @@ -211,6 +211,7 @@ class KalachakraEvent(models.Model): child_event.online_link=rec.online_link child_event.online_id=rec.online_id child_event.online_password=rec.online_password + child_event.teacher_picto=rec.teacher_picto child_event.event_logo=rec.event_logo child_event.cover_properties=rec.cover_properties @@ -453,71 +454,7 @@ class KalachakraEvent(models.Model): vals['currency_id']=option.currency_id self.booking_option_ids = [(0, 0, vals)] - #suppression des 2 templates de mail - # self.event_mail_ids=False - # self.env['event.mail'].sudo().search([('event_id','=',self._origin.id)]).unlink() - - # template_mail_reg=self.env['mail.template'].sudo().search([('name','=','Retraite : Inscription')]) - # #création du mail d'enregistrement - # if template_mail_reg: - # vals={} - # vals['display_name']=template_mail_reg.name - # vals['event_id']=self._origin.id - # vals['template_id']=template_mail_reg.id - # vals['interval_nbr']=0 - # vals['interval_unit']='now' - # vals['interval_type']='after_sub' - # mail=self.env['event.mail'].sudo().create(vals) - - # self.event_mail_ids=[(4, mail.id)] - - # template_mail_remind=self.env['mail.template'].sudo().search([('name','=','Retraite : Rappel')]) - # #création du mail avant événement - # if template_mail_remind: - # vals={} - # vals['display_name']=template_mail_remind.name - # vals['event_id']=self._origin.id - # vals['template_id']=int(template_mail_remind.id) - # vals['interval_nbr']=5 - # vals['interval_unit']='days' - # vals['interval_type']='before_event' - # mail=self.env['event.mail'].sudo().create(vals) - # self.event_mail_ids=[(4, mail.id)] - - # #événement - # else: - - # #suppression des 2 templates de mail - # self.event_mail_ids=False - # self.env['event.mail'].sudo().search([('event_id','=',self._origin.id)]).unlink() - - # template_mail_reg=self.env['mail.template'].sudo().search([('name','=','Evénement : Inscription')]) - # #création du mail d'enregistrement - # if template_mail_reg: - # vals={} - # vals['display_name']=template_mail_reg.name - # vals['event_id']=self._origin.id - # vals['template_id']=template_mail_reg.id - # vals['interval_nbr']=0 - # vals['interval_unit']='now' - # vals['interval_type']='after_sub' - # mail=self.env['event.mail'].sudo().create(vals) - - # self.event_mail_ids=[(4, mail.id)] - - # template_mail_remind=self.env['mail.template'].sudo().search([('name','=','Evénement : Rappel')]) - # #création du mail avant événement - # if template_mail_remind: - # vals={} - # vals['display_name']=template_mail_remind.name - # vals['event_id']=self._origin.id - # vals['template_id']=int(template_mail_remind.id) - # vals['interval_nbr']=5 - # vals['interval_unit']='days' - # vals['interval_type']='before_event' - # mail=self.env['event.mail'].sudo().create(vals) - # self.event_mail_ids=[(4, mail.id)] diff --git a/models/membership.py b/models/membership.py index 11b679c..3a9f7d2 100755 --- a/models/membership.py +++ b/models/membership.py @@ -28,9 +28,18 @@ class kalachakra_membership(models.Model): product_id=fields.Many2one('product.product',required=True,string='membership product',default=_default_product_id,domain="[('membership_product','=',True)]") start_date=fields.Date('start date',required=True,default=lambda self: fields.Date.today()) invoice_id=fields.Many2one('account.move','invoice') + balance_invoice_id=fields.Many2one('account.move','balance invoice') transaction_id=fields.Many2one('payment.transaction','payment transaction') payment_state=fields.Selection(string='payment_state',selection=[('paid', 'paid'), ('not paid', 'not paid')]) - + + payment_mode_id = fields.Many2one( + "account.payment.mode", + string="Payment Mode", + domain="[('company_id', '=', company_id)]", + copy=False, + tracking=True + + ) # @api.depends('state', 'invoice_id') @@ -79,13 +88,14 @@ class kalachakra_membership(models.Model): tracking=True, ) + date_compta=fields.Datetime('date import',default=False) - @api.depends('invoice_id.payment_state','transaction_id.state') + @api.depends('invoice_id.payment_state','balance_invoice_id.payment_state','transaction_id.state') def _compute_membership_state(self): for m in self: - if m.invoice_id: + if m.invoice_id and not m.balance_invoice_id: if m.invoice_id.payment_state=='paid': m.payment_state='paid' @@ -94,6 +104,15 @@ class kalachakra_membership(models.Model): m.payment_state='not paid' m.state='draft' + if m.balance_invoice_id: + if m.balance_invoice_id.payment_state=='paid': + + m.payment_state='paid' + m.state='done' + else: + m.payment_state='not paid' + m.state='draft' + if m.transaction_id: if m.transaction_id.state=='done': diff --git a/models/partner.py b/models/partner.py index 74c2d76..7fae7a0 100755 --- a/models/partner.py +++ b/models/partner.py @@ -64,6 +64,10 @@ class ResPartner(models.Model): ],'Origine', index=True) date_adhesion=fields.Char(string='Date adhesion', readonly=True) + birthday_date=fields.Date(string="Birthday date") + birthday_yeardate=fields.Date(string="Birthday date") + + name_for_list = fields.Char('name', compute='_compute_name_for_list',store=True) def _compute_end_date_membership(self): for rec in self: @@ -187,6 +191,11 @@ class ResPartner(models.Model): if not mailing_list in mailing_contact.list_ids: mailing_contact.sudo().write({'list_ids':[(4,int(mailing_list.id))]}) + @api.depends('name') + def _compute_name_for_list(self): + for rec in self: + rec.name_for_list=rec.name + @api.depends('name','donor_id') def name_get(self): res = [] diff --git a/report/report_invoice_document.xml b/report/report_invoice_document.xml index bc9a466..069faed 100644 --- a/report/report_invoice_document.xml +++ b/report/report_invoice_document.xml @@ -1,6 +1,10 @@ @@ -311,10 +311,10 @@
-
+
-
To contact you if needed, please filling your personnals informations :
+
Please fill in or update your personnals informations :
@@ -334,12 +334,35 @@ *
- +
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ + +
+ +
+
+ +
+ +
+
+