diff --git a/golem_activity_registration_payment/__manifest__.py b/golem_activity_registration_payment/__manifest__.py
index 3261587..1e44ec3 100644
--- a/golem_activity_registration_payment/__manifest__.py
+++ b/golem_activity_registration_payment/__manifest__.py
@@ -20,7 +20,7 @@
'name': 'GOLEM Activity Member Registration Payments',
'summary': 'GOLEM Activities Member Registration Payments',
'description': 'GOLEM Activities Member Registration Payments',
- 'version': '10.0.0.6.0',
+ 'version': '10.0.0.6.1',
'category': 'GOLEM',
'author': 'Fabien Bourgeois',
'license': 'AGPL-3',
diff --git a/golem_activity_registration_payment/i18n/fr.po b/golem_activity_registration_payment/i18n/fr.po
index b1e93d7..202edba 100644
--- a/golem_activity_registration_payment/i18n/fr.po
+++ b/golem_activity_registration_payment/i18n/fr.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-26 09:44+0000\n"
-"PO-Revision-Date: 2018-09-26 11:58+0200\n"
+"POT-Creation-Date: 2018-11-01 17:43+0000\n"
+"PO-Revision-Date: 2018-11-01 18:45+0100\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -157,14 +157,14 @@ msgid "GOLEM Member"
msgstr "Adhérent"
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:153
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
#, python-format
msgid "Generated invoice"
msgstr "Facture générée"
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:168
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
#, python-format
msgid "Generated payments"
@@ -351,13 +351,13 @@ msgid "Status"
msgstr "État"
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:149
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
#, python-format
msgid "There is no generated invoice."
msgstr "Il n'y a pas de facture générée."
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:164
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
#, python-format
msgid "There is no generated payments."
msgstr "Il n'y a pas de paiement généré."
diff --git a/golem_activity_registration_payment/i18n/golem_activity_registration_payment.pot b/golem_activity_registration_payment/i18n/golem_activity_registration_payment.pot
index b483cc8..939a8f8 100644
--- a/golem_activity_registration_payment/i18n/golem_activity_registration_payment.pot
+++ b/golem_activity_registration_payment/i18n/golem_activity_registration_payment.pot
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-26 09:44+0000\n"
-"PO-Revision-Date: 2018-09-26 09:44+0000\n"
+"POT-Creation-Date: 2018-11-01 17:43+0000\n"
+"PO-Revision-Date: 2018-11-01 17:43+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -153,14 +153,14 @@ msgid "GOLEM Member"
msgstr ""
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:153
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
#, python-format
msgid "Generated invoice"
msgstr ""
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:168
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
#, python-format
msgid "Generated payments"
@@ -347,13 +347,13 @@ msgid "Status"
msgstr ""
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:149
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
#, python-format
msgid "There is no generated invoice."
msgstr ""
#. module: golem_activity_registration_payment
-#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:164
+#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
#, python-format
msgid "There is no generated payments."
msgstr ""
diff --git a/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py b/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py
index f2eab93..726529a 100644
--- a/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py
+++ b/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py
@@ -21,7 +21,6 @@
import logging
from math import ceil
from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError
from odoo.exceptions import UserError
_LOGGER = logging.getLogger(__name__)
@@ -51,10 +50,6 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
ondelete='cascade')
member_id = fields.Many2one('golem.member', 'Member', required=True,
ondelete='cascade')
- guardian_ids = fields.Many2many('res.partner', compute='_compute_guardian_ids')
- on_the_name_of = fields.Many2one('res.partner', 'On the Name of',
- ondelete='cascade')
- is_minor = fields.Boolean(related='member_id.is_minor')
line_ids = fields.One2many('golem.activity.registration.invoicing.line',
'invoicing_id', string='Activities')
schedule_id = fields.Many2one('golem.payment.schedule', 'Payment schedule',
@@ -70,15 +65,6 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
ondelete='cascade')
payment_ids = fields.Many2many('account.payment', string='Generated payments')
- @api.depends('member_id')
- def _compute_guardian_ids(self):
- for rec in self:
- partner_ids = rec.member_id.legal_guardian_ids.mapped('legal_guardian_id').ids
- if hasattr(rec.member_id, 'family_member_ids'):
- partner_ids += rec.member_id.family_member_ids.filtered(
- lambda r: r.id != self.member_id.partner_id.id).ids
- rec.guardian_ids = [(6, 0, partner_ids)]
-
def _create_invoice_line(self, product, price, invoice):
""" Create invoice line : needs cache record for onchange, then real
writing... """
@@ -97,10 +83,7 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
def _create_invoice(self):
""" Create invoice and lines """
self.ensure_one()
- if self[0].is_minor:
- partner = self[0].on_the_name_of
- else:
- partner = self[0].member_id.partner_id
+ partner = self[0].member_id.partner_id
#check if there is a draft invoice for the current customer
member_line = partner.member_lines.filtered(
lambda ml: (ml.membership_id.membership_season_id == self.season_id
@@ -114,10 +97,6 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
'account_id': partner.property_account_receivable_id.id,
'fiscal_position_id': partner.property_account_position_id.id
})
- if self[0].is_minor:
- invoice.write({'is_minor_invoice': True,
- 'partner_ids': [(6, 0, [self[0].on_the_name_of.id,
- self[0].member_id.partner_id.id])]})
for line in self.line_ids:
product = line.activity_id.product_id.product_variant_id
invoice_line = self._create_invoice_line(product, line.price, invoice)
@@ -156,10 +135,6 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
def validate(self):
""" Validate and create invoice and payments """
self.ensure_one()
- if self.is_minor and not self.on_the_name_of:
- err = _('This member is a minor, please fill on the name of so you '
- 'invoice this registration')
- raise ValidationError(err)
self[0].line_ids.mapped('registration_id').write({'state': 'confirmed'})
invoice = self._create_invoice()
self.invoice_id = invoice
diff --git a/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.xml b/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.xml
index 283c490..c011f68 100644
--- a/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.xml
+++ b/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.xml
@@ -2,6 +2,7 @@
+
+
+
+
+
+
+ GOLEM Activity Registration Invoicing Form
+ golem.activity.registration.invoicing
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/golem_activity_registration_payment_member_minor/wizard/__init__.py b/golem_activity_registration_payment_member_minor/wizard/__init__.py
new file mode 100644
index 0000000..bcc8d2a
--- /dev/null
+++ b/golem_activity_registration_payment_member_minor/wizard/__init__.py
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+
+# Copyright 2018 Fabien Bourgeois
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+from . import golem_activity_registration_invoicing
diff --git a/golem_activity_registration_payment_member_minor/wizard/golem_activity_registration_invoicing.py b/golem_activity_registration_payment_member_minor/wizard/golem_activity_registration_invoicing.py
new file mode 100644
index 0000000..4549c82
--- /dev/null
+++ b/golem_activity_registration_payment_member_minor/wizard/golem_activity_registration_invoicing.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+
+# Copyright 2017-2018 Fabien Bourgeois
+# Copyright 2018 Youssef El Ouahby
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+""" GOLEM Activity Registration Invoicing Wizard """
+
+from odoo import models, fields, api, _
+from odoo.exceptions import ValidationError
+
+
+class GolemActivityRegistrationInvoicing(models.TransientModel):
+ """ GOLEM Activity Registration Invoicing Wizard """
+ _inherit = 'golem.activity.registration.invoicing'
+
+ guardian_ids = fields.Many2many('res.partner', compute='_compute_guardian_ids')
+ on_the_name_of = fields.Many2one('res.partner', 'On the Name of',
+ ondelete='cascade')
+ is_minor = fields.Boolean(related='member_id.is_minor')
+
+ @api.depends('member_id')
+ def _compute_guardian_ids(self):
+ for rec in self:
+ guardian_ids = rec.member_id.legal_guardian_ids.mapped('legal_guardian_id').ids
+ rec.guardian_ids = [(6, 0, guardian_ids)]
+
+ @api.multi
+ def _create_invoice(self):
+ """ Create invoice and lines """
+ self.ensure_one()
+ invoice = super(GolemActivityRegistrationInvoicing, self)._create_invoice()
+ if self[0].is_minor:
+ invoice.write({'': self[0].on_the_name_of.id,
+ 'is_minor_invoice': True,
+ 'partner_ids': [(6, 0, [self[0].on_the_name_of.id,
+ self[0].member_id.partner_id.id])]})
+ return invoice
+
+ @api.multi
+ def validate(self):
+ """ Validate and create invoice and payments """
+ self.ensure_one()
+ action = super(GolemActivityRegistrationInvoicing, self).validate()
+ if self.is_minor and not self.on_the_name_of:
+ err = _('This member is a minor, please fill on the name of so you '
+ 'invoice this registration')
+ raise ValidationError(err)
+ return action
+