From 6ca3b765ba12f628dd7a837d79b13cc309b345a9 Mon Sep 17 00:00:00 2001 From: Fabien Bourgeois Date: Sat, 9 Jul 2016 08:52:49 +0200 Subject: [PATCH] [ADD]GOLEM Membership Module : invoice memberships and all from GOLEM Member --- golem_membership/__init__.py | 18 +++ golem_membership/__openerp__.py | 31 +++++ golem_membership/i18n/fr.po | 109 ++++++++++++++++++ golem_membership/i18n/golem_membership.pot | 108 +++++++++++++++++ golem_membership/models/__init__.py | 18 +++ golem_membership/models/golem_membership.py | 60 ++++++++++ golem_membership/views/golem_member_view.xml | 75 ++++++++++++ .../views/golem_membership_invoice.xml | 56 +++++++++ 8 files changed, 475 insertions(+) create mode 100644 golem_membership/__init__.py create mode 100644 golem_membership/__openerp__.py create mode 100644 golem_membership/i18n/fr.po create mode 100644 golem_membership/i18n/golem_membership.pot create mode 100644 golem_membership/models/__init__.py create mode 100644 golem_membership/models/golem_membership.py create mode 100644 golem_membership/views/golem_member_view.xml create mode 100644 golem_membership/views/golem_membership_invoice.xml diff --git a/golem_membership/__init__.py b/golem_membership/__init__.py new file mode 100644 index 0000000..2fca3d2 --- /dev/null +++ b/golem_membership/__init__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +# Copyright 2016 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 models diff --git a/golem_membership/__openerp__.py b/golem_membership/__openerp__.py new file mode 100644 index 0000000..b696afb --- /dev/null +++ b/golem_membership/__openerp__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- + +# Copyright 2016 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 . + +{ + 'name': 'GOLEM non-profit membership handling', + 'summary': 'Extends Odoo membership', + 'description': 'Non-profit french MJC membership management', + 'version': '0.1', + 'category': 'Non-profit management', + 'author': 'Fabien Bourgeois', + 'license': 'AGPL-3', + 'application': False, + 'installable': True, + 'depends': ['golem_member', 'decimal_precision'], + 'data': ['views/golem_member_view.xml', + 'views/golem_membership_invoice.xml'] +} diff --git a/golem_membership/i18n/fr.po b/golem_membership/i18n/fr.po new file mode 100644 index 0000000..002c981 --- /dev/null +++ b/golem_membership/i18n/fr.po @@ -0,0 +1,109 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * golem_membership +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-07-09 06:41+0000\n" +"PO-Revision-Date: 2016-07-09 06:41+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" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: golem_membership +#: view:golem.member:golem_membership.membership_add +msgid "Buy Membership" +msgstr "Payer une adhésion" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "Cancel" +msgstr "Annuler" + +#. module: golem_membership +#: field:golem.membership.invoice,create_uid:0 +msgid "Created by" +msgstr "Créé par" + +#. module: golem_membership +#: field:golem.membership.invoice,create_date:0 +msgid "Created on" +msgstr "Créé le" + +#. module: golem_membership +#: field:golem.membership.invoice,display_name:0 +msgid "Display Name" +msgstr "Nom affiché" + +#. module: golem_membership +#: model:ir.model,name:golem_membership.model_golem_membership_invoice +msgid "GOLEM MemberShip invoicing" +msgstr "GOLEM : facturation de l'adhésion" + +#. module: golem_membership +#: field:golem.membership.invoice,id:0 +msgid "ID" +msgstr "ID" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "Invoice Membership" +msgstr "Facture d'adhésion" + +#. module: golem_membership +#: model:ir.actions.act_window,name:golem_membership.action_membership_invoice_view +msgid "Join Membership" +msgstr "Adhésion" + +#. module: golem_membership +#: field:golem.membership.invoice,__last_update:0 +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: golem_membership +#: field:golem.membership.invoice,write_uid:0 +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: golem_membership +#: field:golem.membership.invoice,write_date:0 +msgid "Last Updated on" +msgstr "Dernière modification le" + +#. module: golem_membership +#: field:golem.membership.invoice,member_price:0 +msgid "Member Price" +msgstr "Prix Membre" + +#. module: golem_membership +#: view:golem.member:golem_membership.membership_add +#: field:golem.membership.invoice,product_id:0 +msgid "Membership" +msgstr "Adhésion" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "Membership Invoice" +msgstr "Facture de l'adhésion" + +#. module: golem_membership +#: view:golem.member:golem_membership.membership_add +msgid "Memberships" +msgstr "Adhésions" + +#. module: golem_membership +#: field:golem.membership.invoice,partner_id:0 +msgid "Partner" +msgstr "Contact" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "or" +msgstr "ou" + diff --git a/golem_membership/i18n/golem_membership.pot b/golem_membership/i18n/golem_membership.pot new file mode 100644 index 0000000..01575e4 --- /dev/null +++ b/golem_membership/i18n/golem_membership.pot @@ -0,0 +1,108 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * golem_membership +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-07-09 06:40+0000\n" +"PO-Revision-Date: 2016-07-09 06:40+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_membership +#: view:golem.member:golem_membership.membership_add +msgid "Buy Membership" +msgstr "" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "Cancel" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,create_date:0 +msgid "Created on" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: golem_membership +#: model:ir.model,name:golem_membership.model_golem_membership_invoice +msgid "GOLEM MemberShip invoicing" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,id:0 +msgid "ID" +msgstr "" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "Invoice Membership" +msgstr "" + +#. module: golem_membership +#: model:ir.actions.act_window,name:golem_membership.action_membership_invoice_view +msgid "Join Membership" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,member_price:0 +msgid "Member Price" +msgstr "" + +#. module: golem_membership +#: view:golem.member:golem_membership.membership_add +#: field:golem.membership.invoice,product_id:0 +msgid "Membership" +msgstr "" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "Membership Invoice" +msgstr "" + +#. module: golem_membership +#: view:golem.member:golem_membership.membership_add +msgid "Memberships" +msgstr "" + +#. module: golem_membership +#: field:golem.membership.invoice,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: golem_membership +#: view:golem.membership.invoice:golem_membership.membership_invoice_view +msgid "or" +msgstr "" + diff --git a/golem_membership/models/__init__.py b/golem_membership/models/__init__.py new file mode 100644 index 0000000..01edfaf --- /dev/null +++ b/golem_membership/models/__init__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +# Copyright 2016 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_membership diff --git a/golem_membership/models/golem_membership.py b/golem_membership/models/golem_membership.py new file mode 100644 index 0000000..c87a35e --- /dev/null +++ b/golem_membership/models/golem_membership.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- + +# Copyright 2016 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 openerp import models, fields, api +from openerp.addons import decimal_precision as dp + + +class GolemMembershipInvoice(models.TransientModel): + _name = 'golem.membership.invoice' + _description = 'GOLEM MemberShip invoicing' + + partner_id = fields.Many2one('res.partner', 'Partner') + product_id = fields.Many2one('product.product', 'Membership', + required=True) + member_price = fields.Float('Member Price', + dp.get_precision('Product Price'), + required=True) + + @api.one + @api.onchange('product_id') + def onchange_product(self): + if not self.product_id: + self.member_price = False + else: + price = self.product_id.price_get()[self.product_id.id] + self.member_price = price + + @api.multi + def membership_invoice(self): + self.ensure_one() + datas = {'membership_product_id': self.product_id.id, + 'amount': self.member_price} + invoice_list = self.partner_id.create_membership_invoice(datas=datas) + search_view_id = self.env.ref('account.view_account_invoice_filter') + form_view_id = self.env.ref('account.invoice_form') + + return { + 'domain': [('id', 'in', invoice_list)], + 'name': 'Membership Invoices', + 'view_type': 'form', + 'view_mode': 'tree,form', + 'res_model': 'account.invoice', + 'type': 'ir.actions.act_window', + 'views': [(False, 'tree'), (form_view_id.id, 'form')], + 'search_view_id': search_view_id.id + } diff --git a/golem_membership/views/golem_member_view.xml b/golem_membership/views/golem_member_view.xml new file mode 100644 index 0000000..14d2953 --- /dev/null +++ b/golem_membership/views/golem_member_view.xml @@ -0,0 +1,75 @@ + + + + + + + + + Add membership button + golem.member + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+
+
+
+ +
+
diff --git a/golem_membership/views/golem_membership_invoice.xml b/golem_membership/views/golem_membership_invoice.xml new file mode 100644 index 0000000..bbdec4c --- /dev/null +++ b/golem_membership/views/golem_membership_invoice.xml @@ -0,0 +1,56 @@ + + + + + + + + + membership.invoice.view.form + golem.membership.invoice + +
+ + + + +
+
+
+
+
+ + + + Join Membership + golem.membership.invoice + golem.member + form + tree,form + + new + + +
+