[REF][IMP]GOLEM Registrations states and payments

Huge refactoring, separing states management from payment and invoice
managements
This commit is contained in:
Fabien BOURGEOIS 2018-07-31 19:59:56 +02:00
parent 3270ceab13
commit 244ee83487
26 changed files with 734 additions and 319 deletions

View File

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# 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 <http://www.gnu.org/licenses/>.
from . import models, wizard

View File

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# 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 <http://www.gnu.org/licenses/>.
{
'name': 'GOLEM Activity Member Registration Payments',
'summary': 'GOLEM Activities Member Registration Payments',
'description': 'GOLEM Activities Member Registration Payments',
'version': '10.0.0.1.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois',
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': ['golem_activity_registration_state', 'golem_payment'],
'data': ['views/golem_activity_views.xml',
'views/golem_member_views.xml',
'views/golem_activity_registration_views.xml',
'wizard/golem_activity_registration_invoicing.xml']
}

View File

@ -0,0 +1,181 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * golem_activity_registration_payment
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-31 17:51+0000\n"
"PO-Revision-Date: 2018-07-31 19:58+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,help:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
msgid " * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n"
" * The 'Pro-forma' status is used when the invoice does not have an invoice number.\n"
" * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n"
" * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n"
" * The 'Cancelled' status is used when user cancel invoice."
msgstr "* L'état \"Brouillon\" est utilisé lorsqu'un utilisateur est en train de saisir ou de modifier une nouvelle facture non confirmée.\n"
"* L'état \"Pro-forma\" est utilisé lorsque la facture n'a pas de numéro de facture.\n"
"* L'état 'Ouvert' est utilisé lorsque l'utilisateur crée une facture, celle-ci a alors un numéro de facture. La facture reste dans l'état \"Ouvert\" tant qu'elle n'est pas payée.\n"
"* L'état 'Payé' est affecté automatiquement lorsque la facture est payée. Les écritures correspondantes dans les journaux peuvent ou non être lettrées.\n"
"* L'état \"Annulé\" est utilisé lorsque l'utilisateur annule la facture."
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Activities and Prices"
msgstr "Activités et tarifs"
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:65
#, python-format
msgid "All confirmed registrations had already been invoiced."
msgstr "Toutes les inscriptions confirmées ont déjà été facturées."
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Close"
msgstr "Fermer"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Congratulations, activities had been confirmed and invoiced."
msgstr "Félicitations, les activités ont été confirmées et facturées."
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_uid
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_date
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_date
msgid "Created on"
msgstr "Créé le"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Display invoice"
msgstr "Afficher la facture"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Display payments"
msgstr "Afficher les paiements"
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration
msgid "GOLEM Activity Registration"
msgstr "Inscription à l'activité"
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing_line
msgid "GOLEM Activity Registration Invoicing Lines"
msgstr "GOLEM Activity Registration Invoicing Lines"
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing
msgid "GOLEM Activity Registration Invoicing Wizard"
msgstr "GOLEM Activity Registration Invoicing Wizard"
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_member
msgid "GOLEM Member"
msgstr "Adhérent"
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:147
#, 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:162
#, python-format
msgid "Generated payments"
msgstr "Paiements générés"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_member_has_invoicable_registrations
msgid "Has invoicable registrations ?"
msgstr "A des inscriptions à facturer ?"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
msgid "If you confirmed registrations not already invoiced, you'll get a wizard to assist you for invoice creation."
msgstr "Si vous lancez la facturation des inscriptions en attente, un assistant vous proposera de créer une facture."
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_id
msgid "Invoice Reference"
msgstr "Référence de la facture"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_line_id
msgid "Invoice line"
msgstr "Ligne de facturation"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
msgid "Invoice pending registrations"
msgstr "Inscriptions en attente de facturation"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_uid
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_date
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Please confirm activity prices and choose a payment schedule if needed."
msgstr "Merci de confirmer les coûts des activités et de choisir, si souhaité, un échéancier de paiement."
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:58
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
#, python-format
msgid "Registration invoicing"
msgstr "Facturation des inscriptions"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
msgid "Status"
msgstr "État"
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:143
#, 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:158
#, python-format
msgid "There is no generated payments."
msgstr "Il n'y a pas de paiement généré."
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Total"
msgstr "Total"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Validate"
msgstr "Valider"

View File

@ -0,0 +1,177 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * golem_activity_registration_payment
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-31 17:51+0000\n"
"PO-Revision-Date: 2018-07-31 17:51+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,help:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
msgid " * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n"
" * The 'Pro-forma' status is used when the invoice does not have an invoice number.\n"
" * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n"
" * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n"
" * The 'Cancelled' status is used when user cancel invoice."
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Activities and Prices"
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:65
#, python-format
msgid "All confirmed registrations had already been invoiced."
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Close"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Congratulations, activities had been confirmed and invoiced."
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_uid
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_uid
msgid "Created by"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_date
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_date
msgid "Created on"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Display invoice"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Display payments"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration
msgid "GOLEM Activity Registration"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing_line
msgid "GOLEM Activity Registration Invoicing Lines"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing
msgid "GOLEM Activity Registration Invoicing Wizard"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_member
msgid "GOLEM Member"
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:147
#, python-format
msgid "Generated invoice"
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:162
#, python-format
msgid "Generated payments"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_member_has_invoicable_registrations
msgid "Has invoicable registrations ?"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
msgid "If you confirmed registrations not already invoiced, you'll get a wizard to assist you for invoice creation."
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_id
msgid "Invoice Reference"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_line_id
msgid "Invoice line"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
msgid "Invoice pending registrations"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_uid
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_uid
msgid "Last Updated by"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_date
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_date
msgid "Last Updated on"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Please confirm activity prices and choose a payment schedule if needed."
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:58
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
#, python-format
msgid "Registration invoicing"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
msgid "Status"
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:143
#, 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:158
#, python-format
msgid "There is no generated payments."
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Total"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Validate"
msgstr ""

View File

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# 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 <http://www.gnu.org/licenses/>.
from . import golem_member, golem_activity_registration

View File

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# 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 <http://www.gnu.org/licenses/>.
""" GOLEM Activity Registration adaptations """
from odoo import models, fields
class GolemActivityRegistration(models.Model):
""" GOLEM Activity Registration adaptations """
_inherit = 'golem.activity.registration'
invoice_line_id = fields.Many2one('account.invoice.line',
string='Invoice line',
ondelete='set null')
invoice_id = fields.Many2one(related='invoice_line_id.invoice_id')
invoice_state = fields.Selection(related='invoice_line_id.invoice_id.state')

View File

@ -0,0 +1,66 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# 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 <http://www.gnu.org/licenses/>.
""" GOLEM Member adaptations """
from odoo import models, fields, api, _
from odoo.exceptions import UserError
class GolemMember(models.Model):
""" GOLEM Member adaptations """
_inherit = 'golem.member'
has_invoicable_registrations = fields.Boolean(
'Has invoicable registrations ?',
compute='_compute_has_invoicable_reg')
@api.depends('activity_registration_ids', 'activity_registration_ids.state')
def _compute_has_invoicable_reg(self):
""" Check if there are confirmed registrations with no invoice linked """
for member in self:
regis = member.activity_registration_ids
regis = regis.filtered(lambda r: r.state == 'confirmed' and not r.invoice_line_id)
member.has_invoicable_registrations = bool(len(regis))
@api.multi
def invoice_registrations(self):
""" Launch wizard to generate invoices for registrations """
self.ensure_one()
member = self[0]
registrations = member.activity_registration_ids.filtered(
lambda r: r.state == 'confirmed' and not r.invoice_line_id
)
if registrations:
invoicing = self.env['golem.activity.registration.invoicing'].create({
'member_id' : member.id,
'season_id': registrations[0].activity_id.season_id.id
})
line_obj = self.env['golem.activity.registration.invoicing.line']
for reg in registrations:
line_obj.create({'invoicing_id': invoicing.id,
'registration_id': reg.id,
'activity_id': reg.activity_id.id,
'price': reg.activity_id.list_price})
return {'name': _('Registration invoicing'),
'type': 'ir.actions.act_window',
'res_model': 'golem.activity.registration.invoicing',
'view_mode': 'form',
'res_id': invoicing.id,
'target': 'new'}
else:
uerr = _('All confirmed registrations had already been invoiced.')
raise UserError(uerr)

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
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 <http://www.gnu.org/licenses/>.
-->
<odoo>
<data>
<!-- Tree -->
<record id="golem_activity_registration_tree_inherit_payment" model="ir.ui.view">
<field name="name">Activity Registration Tree adaptations</field>
<field name="model">golem.activity.registration</field>
<field name="inherit_id"
ref="golem_activity_registration.golem_activity_registration_tree" />
<field name="arch" type="xml">
<field name="activity_id" position="after">
<field name="invoice_id" readonly="1" />
<field name="invoice_line_id" readonly="1" />
</field>
</field>
</record>
<!-- Search -->
<record id="golem_activity_registration_search_inherit_payment" model="ir.ui.view">
<field name="name">Activity Registration Search adaptations</field>
<field name="model">golem.activity.registration</field>
<field name="inherit_id"
ref="golem_activity_registration.golem_activity_registration_search" />
<field name="arch" type="xml">
<field name="activity_id" position="after">
<field name="invoice_id" widget="many2one" />
</field>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
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 <http://www.gnu.org/licenses/>.
-->
<odoo>
<data>
<!-- Form -->
<record id="golem_registration_state_activity_form_inherit_registration_payment"
model="ir.ui.view">
<field name="name">Activity Form adaptations</field>
<field name="model">golem.activity</field>
<field name="inherit_id"
ref="golem_activity_registration_state.golem_activity_form_inherit_registration_state" />
<field name="arch" type="xml">
<xpath expr="//tree/field[@name='season_id']" position="after">
<field name="invoice_id" readonly="1" />
</xpath>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
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 <http://www.gnu.org/licenses/>.
-->
<odoo>
<data>
<!-- Form -->
<record id="golem_registration_state_member_form_inherit_registration_payment"
model="ir.ui.view">
<field name="name">Member Form adaptations</field>
<field name="model">golem.member</field>
<field name="inherit_id"
ref="golem_activity_registration_state.golem_member_form_inherit_registration_state" />
<field name="arch" type="xml">
<button name="do_validate_registrations" position="after">
<field name="has_invoicable_registrations" invisible="1" />
<button name="invoice_registrations" type="object"
string="Invoice pending registrations"
class="oe_highlight"
help="If you confirmed registrations not already invoiced, you'll get a wizard to assist you for invoice creation."
attrs="{'invisible': [('has_invoicable_registrations', '=', False)]}" />
</button>
</field>
</record>
</data>
</odoo>

View File

@ -1,19 +1,19 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# copyright 2017 fabien bourgeois <fabien@yaltik.com> # Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
# #
# this program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the gnu affero general public license as # it under the terms of the GNU Affero General Public License as
# published by the free software foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# license, or (at your option) any later version. # License, or (at your option) any later version.
# #
# this program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but without any warranty; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# merchantability or fitness for a particular purpose. see the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# gnu affero general public license for more details. # GNU Affero General Public License for more details.
# #
# you should have received a copy of the gnu affero general public license # You should have received a copy of the GNU Affero General Public License
# along with this program. if not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
""" GOLEM Activity Registration Invoicing Wizard """ """ GOLEM Activity Registration Invoicing Wizard """
@ -26,7 +26,7 @@ _LOGGER = logging.getLogger(__name__)
class GolemActivityRegistrationInvoicingLine(models.TransientModel): class GolemActivityRegistrationInvoicingLine(models.TransientModel):
""" GOLEM Activity Registration Invoicing Lines """ """ GOLEM Activity Registration Invoicing Lines """
_name = 'golem.activity.registration.invoicing.line' _name = 'golem.activity.registration.invoicing.line'
description = 'GOLEM Activity Registration Invoicing Lines' _description = 'GOLEM Activity Registration Invoicing Lines'
invoicing_id = fields.Many2one('golem.activity.registration.invoicing', invoicing_id = fields.Many2one('golem.activity.registration.invoicing',
required=True) required=True)

View File

@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<data> <data>
<!-- Form --> <!-- Form -->
<record id="invoicing_form" model="ir.ui.view"> <record id="golem_activity_registration_invoicing_view_form" model="ir.ui.view">
<field name="name">GOLEM Activity Registration Invoicing Form</field> <field name="name">GOLEM Activity Registration Invoicing Form</field>
<field name="model">golem.activity.registration.invoicing</field> <field name="model">golem.activity.registration.invoicing</field>
<field name="arch" type="xml"> <field name="arch" type="xml">

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2017 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -15,4 +15,4 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import models, wizard from . import models

View File

@ -19,7 +19,7 @@
'name': 'GOLEM Activity Session Member Registrations States', 'name': 'GOLEM Activity Session Member Registrations States',
'summary': 'GOLEM Activities Session Member Registration states', 'summary': 'GOLEM Activities Session Member Registration states',
'description': 'GOLEM Activities Session Member Registration states', 'description': 'GOLEM Activities Session Member Registration states',
'version': '10.0.1.2.0', 'version': '10.0.2.0.0',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois',
'license': 'AGPL-3', 'license': 'AGPL-3',
@ -27,7 +27,6 @@
'installable': True, 'installable': True,
'depends': ['golem_activity_registration', 'golem_payment'], 'depends': ['golem_activity_registration', 'golem_payment'],
'data': ['views/golem_activity_registration_views.xml', 'data': ['views/golem_activity_registration_views.xml',
'views/golem_member_views.xml', 'views/golem_activity_views.xml', 'views/golem_member_views.xml',
'wizard/golem_activity_registration_invoicing.xml'] 'views/golem_activity_views.xml']
# 'report/golem_member_report.xml']
} }

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-20 16:23+0000\n" "POT-Creation-Date: 2018-07-31 17:51+0000\n"
"PO-Revision-Date: 2018-07-20 18:24+0200\n" "PO-Revision-Date: 2018-07-31 17:51+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -20,11 +20,6 @@ msgstr ""
msgid "Activities" msgid "Activities"
msgstr "Activités" msgstr "Activités"
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Activities and Prices"
msgstr "Activities and Prices"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_activity_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_activity_id
msgid "Activity id" msgid "Activity id"
@ -35,49 +30,17 @@ msgstr "Activité liée"
msgid "Canceled" msgid "Canceled"
msgstr "Annulé" msgstr "Annulé"
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Close"
msgstr "Fermer"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: selection:golem.activity.registration,state:0 #: selection:golem.activity.registration,state:0
msgid "Confirmed" msgid "Confirmed"
msgstr "Confirmé" msgstr "Confirmé"
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Congratulations, activities had been confirmed and invoiced."
msgstr "Félicitations, les activités ont été confirmées et facturées."
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_uid
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_date
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_date
msgid "Created on"
msgstr "Créé le"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_display_name #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_display_name
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_display_name #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_display_name
msgid "Display Name" msgid "Display Name"
msgstr "Nom affiché" msgstr "Nom affiché"
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Display invoice"
msgstr "Afficher la facture"
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Display payments"
msgstr "Afficher les paiements"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: selection:golem.activity.registration,state:0 #: selection:golem.activity.registration,state:0
msgid "Draft" msgid "Draft"
@ -93,6 +56,11 @@ msgstr "Activité"
msgid "GOLEM Activity Registration" msgid "GOLEM Activity Registration"
msgstr "Inscription à l'activité" msgstr "Inscription à l'activité"
#. module: golem_activity_registration_state
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
msgid "GOLEM Activity Registration Invoicing Lines"
msgstr "GOLEM Activity Registration Invoicing Lines"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing #: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing
msgid "GOLEM Activity Registration Invoicing Wizard" msgid "GOLEM Activity Registration Invoicing Wizard"
@ -104,16 +72,12 @@ msgid "GOLEM Member"
msgstr "Adhérent" msgstr "Adhérent"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:147
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_invoice_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_invoice_id
#, python-format
msgid "Generated invoice" msgid "Generated invoice"
msgstr "Facture générée" msgstr "Facture générée"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:162
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_payment_ids #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_payment_ids
#, python-format
msgid "Generated payments" msgid "Generated payments"
msgstr "Paiements générés" msgstr "Paiements générés"
@ -122,12 +86,6 @@ msgstr "Paiements générés"
msgid "Has draft registrations ?" msgid "Has draft registrations ?"
msgstr "A des inscriptions non validées ?" msgstr "A des inscriptions non validées ?"
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_id
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_id
msgid "ID"
msgstr "ID"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,help:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id #: model:ir.model.fields,help:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id
msgid "If no schedule is selected, only the invoice will be create. Otherwise, draft payments will be generated." msgid "If no schedule is selected, only the invoice will be create. Otherwise, draft payments will be generated."
@ -135,18 +93,8 @@ msgstr "Si aucun échéancier n'est sélectionné, seule la facture sera créée
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state #: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
msgid "If you validate draft registration, they will be seen as confirmed. Then, an invoice will be created for the current member." msgid "If you validate draft registrations, they will be seen as confirmed."
msgstr "Si vous validez les inscriptions, elles seront vues comme confirmées. Ensuite, une facture sera créée pour l'adhérent." msgstr "If you validate draft registrations, they will be seen as confirmed."
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_id
msgid "Invoice Reference"
msgstr "Référence de la facture"
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_line_id
msgid "Invoice line"
msgstr "Ligne de facturation"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_invoicing_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_invoicing_id
@ -164,18 +112,6 @@ msgstr "Journal"
msgid "Last Modified on" msgid "Last Modified on"
msgstr "Dernière Modification le" msgstr "Dernière Modification le"
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_uid
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_date
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_member_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_member_id
msgid "Member" msgid "Member"
@ -191,11 +127,6 @@ msgstr "Notez que vous ne devez d'abord enregistrer la fiche d'un nouvel adhére
msgid "Payment schedule" msgid "Payment schedule"
msgstr "Échéancier de paiement" msgstr "Échéancier de paiement"
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Please confirm activity prices and choose a payment schedule if needed."
msgstr "Merci de confirmer les coûts des activités et de choisir, si souhaité, un échéancier de paiement."
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_price #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_price
msgid "Price" msgid "Price"
@ -206,13 +137,6 @@ msgstr "Prix"
msgid "Registration id" msgid "Registration id"
msgstr "Registration id" msgstr "Registration id"
#. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:58
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
#, python-format
msgid "Registration invoicing"
msgstr "Registration invoicing"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_season_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_season_id
msgid "Season" msgid "Season"
@ -224,28 +148,6 @@ msgstr "Saison"
msgid "State" msgid "State"
msgstr "État" msgstr "État"
#. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:143
#, python-format
msgid "There is no generated invoice."
msgstr "Il n'y a pas de facture générée."
#. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:158
#, python-format
msgid "There is no generated payments."
msgstr "Il n'y a pas de paiement généré."
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Total"
msgstr "Total"
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Validate"
msgstr "Valider"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state #: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
msgid "Validate all draft registrations" msgid "Validate all draft registrations"
@ -256,11 +158,6 @@ msgstr "Valider toutes les inscriptions"
msgid "final" msgid "final"
msgstr "final" msgstr "final"
#. module: golem_activity_registration_state
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
msgid "golem.activity.registration.invoicing.line"
msgstr "golem.activity.registration.invoicing.line"
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: selection:golem.activity.registration.invoicing,state:0 #: selection:golem.activity.registration.invoicing,state:0
msgid "init" msgid "init"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-20 16:23+0000\n" "POT-Creation-Date: 2018-07-31 17:51+0000\n"
"PO-Revision-Date: 2018-07-20 16:23+0000\n" "PO-Revision-Date: 2018-07-31 17:51+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -20,11 +20,6 @@ msgstr ""
msgid "Activities" msgid "Activities"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Activities and Prices"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_activity_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_activity_id
msgid "Activity id" msgid "Activity id"
@ -35,49 +30,17 @@ msgstr ""
msgid "Canceled" msgid "Canceled"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Close"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: selection:golem.activity.registration,state:0 #: selection:golem.activity.registration,state:0
msgid "Confirmed" msgid "Confirmed"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Congratulations, activities had been confirmed and invoiced."
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_uid
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_uid
msgid "Created by"
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_date
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_date
msgid "Created on"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_display_name #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_display_name
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_display_name #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_display_name
msgid "Display Name" msgid "Display Name"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Display invoice"
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Display payments"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: selection:golem.activity.registration,state:0 #: selection:golem.activity.registration,state:0
msgid "Draft" msgid "Draft"
@ -93,6 +56,11 @@ msgstr ""
msgid "GOLEM Activity Registration" msgid "GOLEM Activity Registration"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
msgid "GOLEM Activity Registration Invoicing Lines"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing #: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing
msgid "GOLEM Activity Registration Invoicing Wizard" msgid "GOLEM Activity Registration Invoicing Wizard"
@ -104,16 +72,12 @@ msgid "GOLEM Member"
msgstr "" msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:147
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_invoice_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_invoice_id
#, python-format
msgid "Generated invoice" msgid "Generated invoice"
msgstr "" msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:162
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_payment_ids #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_payment_ids
#, python-format
msgid "Generated payments" msgid "Generated payments"
msgstr "" msgstr ""
@ -122,12 +86,6 @@ msgstr ""
msgid "Has draft registrations ?" msgid "Has draft registrations ?"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_id
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_id
msgid "ID"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,help:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id #: model:ir.model.fields,help:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id
msgid "If no schedule is selected, only the invoice will be create. Otherwise, draft payments will be generated." msgid "If no schedule is selected, only the invoice will be create. Otherwise, draft payments will be generated."
@ -135,17 +93,7 @@ msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state #: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
msgid "If you validate draft registration, they will be seen as confirmed. Then, an invoice will be created for the current member." msgid "If you validate draft registrations, they will be seen as confirmed."
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_id
msgid "Invoice Reference"
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_line_id
msgid "Invoice line"
msgstr "" msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
@ -164,18 +112,6 @@ msgstr ""
msgid "Last Modified on" msgid "Last Modified on"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_uid
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_uid
msgid "Last Updated by"
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_date
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_date
msgid "Last Updated on"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_member_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_member_id
msgid "Member" msgid "Member"
@ -191,11 +127,6 @@ msgstr ""
msgid "Payment schedule" msgid "Payment schedule"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Please confirm activity prices and choose a payment schedule if needed."
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_price #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_price
msgid "Price" msgid "Price"
@ -206,13 +137,6 @@ msgstr ""
msgid "Registration id" msgid "Registration id"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:58
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
#, python-format
msgid "Registration invoicing"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_season_id #: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_season_id
msgid "Season" msgid "Season"
@ -224,28 +148,6 @@ msgstr ""
msgid "State" msgid "State"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:143
#, python-format
msgid "There is no generated invoice."
msgstr ""
#. module: golem_activity_registration_state
#: code:addons/golem_activity_registration_state/wizard/golem_activity_registration_invoicing.py:158
#, python-format
msgid "There is no generated payments."
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Total"
msgstr ""
#. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
msgid "Validate"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state #: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
msgid "Validate all draft registrations" msgid "Validate all draft registrations"
@ -256,11 +158,6 @@ msgstr ""
msgid "final" msgid "final"
msgstr "" msgstr ""
#. module: golem_activity_registration_state
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
msgid "golem.activity.registration.invoicing.line"
msgstr ""
#. module: golem_activity_registration_state #. module: golem_activity_registration_state
#: selection:golem.activity.registration.invoicing,state:0 #: selection:golem.activity.registration.invoicing,state:0
msgid "init" msgid "init"

View File

@ -1,23 +1,23 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# copyright 2017 fabien bourgeois <fabien@yaltik.com> # Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
# #
# this program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the gnu affero general public license as # it under the terms of the GNU Affero General Public License as
# published by the free software foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# license, or (at your option) any later version. # License, or (at your option) any later version.
# #
# this program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but without any warranty; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# merchantability or fitness for a particular purpose. see the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# gnu affero general public license for more details. # GNU Affero General Public License for more details.
# #
# you should have received a copy of the gnu affero general public license # You should have received a copy of the GNU Affero General Public License
# along with this program. if not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
""" GOLEM Activity Registration State """ """ GOLEM Activity Registration State """
from odoo import models, fields, api, _ from odoo import models, fields, api
class GolemMember(models.Model): class GolemMember(models.Model):
""" GOLEM Member adaptations """ """ GOLEM Member adaptations """
@ -27,40 +27,22 @@ class GolemMember(models.Model):
'Has draft registrations ?', 'Has draft registrations ?',
compute='_compute_has_draft_reg') compute='_compute_has_draft_reg')
@api.depends('activity_registration_ids') @api.depends('activity_registration_ids', 'activity_registration_ids.state')
def _compute_has_draft_reg(self): def _compute_has_draft_reg(self):
""" Check if there are draft states in member activities """ """ Check if there are draft states in member activities """
for member in self: for member in self:
for reg in member.activity_registration_ids: regis = member.activity_registration_ids
if reg.state == 'draft': regis = regis.filtered(lambda r: r.state == 'draft')
member.has_draft_registrations = True member.has_draft_registrations = bool(len(regis))
return
member.has_draft_registrations = False
@api.multi @api.multi
def do_validate_registrations(self): def do_validate_registrations(self):
""" Validate all draft registrations """ """ Validate all draft registrations """
self.ensure_one() self.ensure_one()
member = self[0] member = self[0]
draft_registrations = member.activity_registration_ids.filtered( member.activity_registration_ids.filtered(
lambda r: r.state == 'draft') lambda r: r.state == 'draft'
if draft_registrations: ).write({'state': 'confirmed'})
invoicing = self.env['golem.activity.registration.invoicing'].create({
'member_id' : member.id,
'season_id': draft_registrations[0].activity_id.season_id.id
})
line_obj = self.env['golem.activity.registration.invoicing.line']
for reg in draft_registrations:
line_obj.create({'invoicing_id': invoicing.id,
'registration_id': reg.id,
'activity_id': reg.activity_id.id,
'price': reg.activity_id.list_price})
return {'name': _('Registration invoicing'),
'type': 'ir.actions.act_window',
'res_model': 'golem.activity.registration.invoicing',
'view_mode': 'form',
'res_id': invoicing.id,
'target': 'new'}
@api.multi @api.multi
def write(self, values): def write(self, values):
@ -105,10 +87,6 @@ class GolemActivityRegistration(models.Model):
state = fields.Selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), state = fields.Selection([('draft', 'Draft'), ('confirmed', 'Confirmed'),
('canceled', 'Canceled')], required=True, ('canceled', 'Canceled')], required=True,
default='draft') default='draft')
invoice_line_id = fields.Many2one('account.invoice.line',
string='Invoice line',
ondelete='set null')
invoice_id = fields.Many2one(related='invoice_line_id.invoice_id')
@api.multi @api.multi
def write(self, values): def write(self, values):

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2016 Fabien Bourgeois <fabien@yaltik.com> Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -32,24 +32,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<tree position="inside"> <tree position="inside">
<field name="state" invisible="1" /> <field name="state" invisible="1" />
</tree> </tree>
<field name="activity_id" position="after">
<field name="invoice_id" readonly="1" />
<field name="invoice_line_id" readonly="1" />
</field>
</field>
</record>
<!-- Search -->
<record id="golem_activity_registration_search_inherit_state"
model="ir.ui.view">
<field name="name">Registration state specific searches</field>
<field name="model">golem.activity.registration</field>
<field name="inherit_id"
ref="golem_activity_registration.golem_activity_registration_search" />
<field name="arch" type="xml">
<field name="activity_id" position="after">
<field name="invoice_id" widget="many2one" />
</field>
</field> </field>
</record> </record>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2017 Fabien Bourgeois <fabien@yaltik.com> Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -34,7 +34,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
domain="[('season_ids', '=', season_id)]" /> domain="[('season_ids', '=', season_id)]" />
<field name="activity_id" readonly="1" /> <field name="activity_id" readonly="1" />
<field name="season_id" readonly="1" /> <field name="season_id" readonly="1" />
<field name="invoice_id" readonly="1" />
</tree> </tree>
</tree> </tree>
</field> </field>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2017 Fabien Bourgeois <fabien@yaltik.com> Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -30,12 +30,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
colspan="2"> colspan="2">
Note that you can't register activities if the member is new and not yet saved into the database. Note that you can't register activities if the member is new and not yet saved into the database.
</p> </p>
<p colspan="2"> <p colspan="2" id="golem_activity_registration_buttons">
<field name="has_draft_registrations" invisible="1" /> <field name="has_draft_registrations" invisible="1" />
<button name="do_validate_registrations" type="object" <button name="do_validate_registrations" type="object"
string="Validate all draft registrations" string="Validate all draft registrations"
class="oe_highlight" class="oe_highlight"
help="If you validate draft registration, they will be seen as confirmed. Then, an invoice will be created for the current member." help="If you validate draft registrations, they will be seen as confirmed."
attrs="{'invisible': [('has_draft_registrations', '=', False)]}" /> attrs="{'invisible': [('has_draft_registrations', '=', False)]}" />
</p> </p>
</field> </field>

View File

@ -20,7 +20,7 @@
'name': 'GOLEM non-profit members', 'name': 'GOLEM non-profit members',
'summary': 'Extends Odoo contacts for MJC', 'summary': 'Extends Odoo contacts for MJC',
'description': 'Extends Odoo contacts for MJC', 'description': 'Extends Odoo contacts for MJC',
'version': '10.0.2.2.1', 'version': '10.0.2.2.3',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois, Michel Dessenne', 'author': 'Fabien Bourgeois, Michel Dessenne',
'license': 'AGPL-3', 'license': 'AGPL-3',

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-20 14:43+0000\n" "POT-Creation-Date: 2018-08-01 05:38+0000\n"
"PO-Revision-Date: 2018-07-20 16:44+0200\n" "PO-Revision-Date: 2018-08-01 07:39+0200\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -256,8 +256,8 @@ msgstr "Pays"
#. module: golem_member #. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.res_partner_form_inherit_golem_member #: model:ir.ui.view,arch_db:golem_member.res_partner_form_inherit_golem_member
msgid "Create a GOLEM member from this contact" msgid "Create a service user from this contact"
msgstr "Faire de ce contact un adhérent GOLEM" msgstr "Faire de ce contact un usager"
#. module: golem_member #. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_create_uid #: model:ir.model.fields,field_description:golem_member.field_golem_member_create_uid
@ -480,12 +480,12 @@ msgstr "Voir la fiche adhérent"
#. module: golem_member #. module: golem_member
#: model:ir.actions.report.xml,name:golem_member.golem_member_report_html #: model:ir.actions.report.xml,name:golem_member.golem_member_report_html
msgid "Golem member report [HTML]" msgid "Golem member report [HTML]"
msgstr "Fiche adhérent [HTML]" msgstr "Fiche usager [HTML]"
#. module: golem_member #. module: golem_member
#: model:ir.actions.report.xml,name:golem_member.golem_member_report_pdf #: model:ir.actions.report.xml,name:golem_member.golem_member_report_pdf
msgid "Golem member report [PDF]" msgid "Golem member report [PDF]"
msgstr "Fiche adhérent [PDF]" msgstr "Fiche usager [PDF]"
#. module: golem_member #. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_search #: model:ir.ui.view,arch_db:golem_member.golem_member_search
@ -964,6 +964,11 @@ msgstr "Sélectionner l'option 'Avertissement' notifiera l'utilisateur avec le M
msgid "Self" msgid "Self"
msgstr "Self" msgstr "Self"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_form
msgid "Service User form"
msgstr "Fiche usager"
#. module: golem_member #. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_member_user_action #: model:ir.actions.act_window,name:golem_member.golem_member_user_action
msgid "Service Users" msgid "Service Users"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-20 14:43+0000\n" "POT-Creation-Date: 2018-08-01 05:38+0000\n"
"PO-Revision-Date: 2018-07-20 14:43+0000\n" "PO-Revision-Date: 2018-08-01 05:38+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -256,7 +256,7 @@ msgstr ""
#. module: golem_member #. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.res_partner_form_inherit_golem_member #: model:ir.ui.view,arch_db:golem_member.res_partner_form_inherit_golem_member
msgid "Create a GOLEM member from this contact" msgid "Create a service user from this contact"
msgstr "" msgstr ""
#. module: golem_member #. module: golem_member
@ -956,6 +956,11 @@ msgstr ""
msgid "Self" msgid "Self"
msgstr "" msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_form
msgid "Service User form"
msgstr ""
#. module: golem_member #. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_member_user_action #: model:ir.actions.act_window,name:golem_member.golem_member_user_action
msgid "Service Users" msgid "Service Users"

View File

@ -45,7 +45,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<sheet> <sheet>
<div colspan="2" <div colspan="2" attrs="{'invisible': [('membership_state', '=', 'none')]}"
style="background-color: #ccc; color: #fff; font-size: 150%; font-weight: bold; padding: 0.5%; text-align: center; margin-bottom: 1%;">Service User form</div>
<div colspan="2" attrs="{'invisible': [('membership_state', '!=', 'none')]}"
style="background-color: #ccc; color: #fff; font-size: 150%; font-weight: bold; padding: 0.5%; text-align: center; margin-bottom: 1%;">Member form</div> style="background-color: #ccc; color: #fff; font-size: 150%; font-weight: bold; padding: 0.5%; text-align: center; margin-bottom: 1%;">Member form</div>
<group> <group>
<div class="oe_title"> <div class="oe_title">

View File

@ -41,7 +41,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
attrs="{'invisible': ['|', ('is_company', '=', True), attrs="{'invisible': ['|', ('is_company', '=', True),
('is_member', '=', False)]}" /> ('is_member', '=', False)]}" />
<button type="object" name="create_golem_member" <button type="object" name="create_golem_member"
string="Create a GOLEM member from this contact" string="Create a service user from this contact"
attrs="{'invisible': ['|', ('is_company', '=', True), attrs="{'invisible': ['|', ('is_company', '=', True),
('is_member', '!=', False)]}" /> ('is_member', '!=', False)]}" />
</h1> </h1>