From: Ludovic CHEVALIER Date: Fri, 11 Jan 2013 17:27:27 +0000 (+0100) Subject: Merge branch 'julm' into membership_grouped X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/ajouter.php?a=commitdiff_plain;h=c6482d69cb97eee19be531276e88b5144ef8376d;hp=514e61eeeea5e8c2e804726185ead891420460ce;p=burette%2Fremembership.git Merge branch 'julm' into membership_grouped Conflicts: remembership.py --- diff --git a/__init__.py b/__init__.py index a7284a9..0c00d91 100644 --- a/__init__.py +++ b/__init__.py @@ -22,5 +22,6 @@ ############################################################################## import remembership +import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/__openerp__.py b/__openerp__.py index d71b1ac..fcef0d0 100644 --- a/__openerp__.py +++ b/__openerp__.py @@ -37,6 +37,7 @@ 'view/partner.xml', 'view/point_of_sale.xml', 'view/membership.xml', + 'wizard/remembership_invoice_view.xml', ], 'update_xml': [], 'demo_xml': [], diff --git a/i18n/fr.po b/i18n/fr.po index 7e7d90d..066e84e 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 6.2dev-20121129-000101\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-20 15:21+0000\n" -"PO-Revision-Date: 2012-12-20 16:23+0100\n" +"POT-Creation-Date: 2012-12-20 16:17+0000\n" +"PO-Revision-Date: 2012-12-20 17:50+0100\n" "Last-Translator: Ludovic CHEVALIER \n" "Language-Team: \n" "Language: \n" @@ -16,6 +16,16 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: \n" +#. module: remembership +#: help:res.partner,associate_members:0 +msgid "Members who are associated to this partner. If this member buy a membership, the associates members will be members too." +msgstr "Membres qui sont associé-e-s à ce partenaire. Si ce partenaire adhère, ses membres associé-e-s adhèreront également." + +#. module: remembership +#: view:res.partner:0 +msgid "Members" +msgstr "Membres" + #. module: remembership #: model:ir.model,name:remembership.model_pos_make_payment msgid "Point of Sale Payment" @@ -31,11 +41,6 @@ msgstr "L'identifiant de l'adhérent-e doit être unique !" msgid "Invoice Line" msgstr "Ligne de facture" -#. module: remembership -#: help:res.partner,associate_members:0 -msgid "Members who are associated to this partner." -msgstr "Membres qui sont associé-e-s à ce-tte partenaire." - #. module: remembership #: field:res.partner,member_ident:0 msgid "Member identifier" @@ -51,6 +56,9 @@ msgstr "Partenaire" msgid "Associate members" msgstr "Membres associé-e-s" +#~ msgid "Members who are associated to this partner." +#~ msgstr "Membres qui sont associé-e-s à ce-tte partenaire." + #~ msgid "Product" #~ msgstr "Produit" diff --git a/i18n/remembership.pot b/i18n/remembership.pot index 14db989..81af371 100644 --- a/i18n/remembership.pot +++ b/i18n/remembership.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0alpha-20121206-000102\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-20 15:21+0000\n" -"PO-Revision-Date: 2012-12-20 15:21+0000\n" +"POT-Creation-Date: 2012-12-20 16:17+0000\n" +"PO-Revision-Date: 2012-12-20 16:17+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -15,6 +15,16 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: remembership +#: help:res.partner,associate_members:0 +msgid "Members who are associated to this partner. If this member buy a membership, the associates members will be members too." +msgstr "" + +#. module: remembership +#: view:res.partner:0 +msgid "Members" +msgstr "" + #. module: remembership #: model:ir.model,name:remembership.model_pos_make_payment msgid "Point of Sale Payment" @@ -30,11 +40,6 @@ msgstr "" msgid "Invoice Line" msgstr "" -#. module: remembership -#: help:res.partner,associate_members:0 -msgid "Members who are associated to this partner." -msgstr "" - #. module: remembership #: field:res.partner,member_ident:0 msgid "Member identifier" diff --git a/remembership.py b/remembership.py index 849afcf..999f8c8 100644 --- a/remembership.py +++ b/remembership.py @@ -26,6 +26,7 @@ from osv import fields import time from datetime import datetime, date from dateutil.relativedelta import relativedelta +from openerp.tools.translate import _ class Partner(osv.osv): @@ -60,7 +61,7 @@ class Partner(osv.osv): print ("DEV: [_membership_date] [associate] date_from: %s" % str(res[partner.id]['membership_start'])) else: print ("DEV: [_membership_date] date_from: %s" % str(res[partner.id]['membership_start'])) - + if name == 'membership_stop': line_id1 = member_line_obj.search(cr, uid, [('partner', '=', partner_id),('date_cancel','=',False)], limit=1, order='date_to desc', context=context) @@ -71,7 +72,7 @@ class Partner(osv.osv): print ("DEV: [_membership_date] [associate] date_to: %s" % str(res[partner.id]['membership_stop'])) else: print ("DEV: [_membership_date] date_to: %s" % str(res[partner.id]['membership_stop'])) - + if name == 'membership_cancel': if partner.membership_state == 'canceled': line_id2 = member_line_obj.search(cr, uid, [('partner', '=', partner.id)], limit=1, order='date_cancel', context=context) @@ -279,6 +280,8 @@ class account_invoice_line(osv.osv): 'date_to': date_to, 'account_invoice_line': line.id, }, context=context) + elif line.product_id.membership_grouped and not line.invoice_id.partner_id.associate_members: + raise osv.except_osv(_('Error!!!'), _('You try to invoice grouped membership product to a partner who hasn\'t associated partners.')) #Define member ident if it's necessary for i in partners: if not i.member_ident: diff --git a/view/partner.xml b/view/partner.xml index a9d909e..09344b6 100644 --- a/view/partner.xml +++ b/view/partner.xml @@ -10,6 +10,21 @@ + + + + + + + res.partner.tree + res.partner + tree + + + + + + diff --git a/wizard/__init__.py b/wizard/__init__.py new file mode 100644 index 0000000..995bfd9 --- /dev/null +++ b/wizard/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +import remembership_invoice diff --git a/wizard/remembership_invoice.py b/wizard/remembership_invoice.py new file mode 100644 index 0000000..99fab8b --- /dev/null +++ b/wizard/remembership_invoice.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- + +from openerp.osv import osv +from openerp.osv import fields +from datetime import datetime + + +class membership_invoice(osv.osv): + _inherit = 'membership.invoice' + + _columns = { + 'date_from': fields.date('This membership start date'), + 'is_date2date': fields.boolean('This membership product is date to date.', readonly=True), + } + + _defaults = { + 'date_from': datetime.today().strftime('%Y-%m-%d'), + } + + def onchange_product(self, cr, uid, ids, product_id=False): + res = super(membership_invoice, self).onchange_product(cr, uid, ids, product_id) + if product_id: + res['value']['is_date2date'] = self.pool.get('product.product').browse(cr, uid, [product_id], context=None)[0].membership_date2date + else: + res['value']['is_date2date'] = False + + return res + + def membership_invoice(self, cr, uid, ids, context=None): + """NOTE: Copy of orginial function for overwrite it by adding + date_from value for date to date membership products. Keep an eye of it + for taking advantage of its enhancements (2013-01-11)""" + mod_obj = self.pool.get('ir.model.data') + partner_obj = self.pool.get('res.partner') + datas = {} + if context is None: + context = {} + data = self.browse(cr, uid, ids, context=context) + if data: + data = data[0] + datas = { + 'membership_product_id': data.product_id.id, + 'amount': data.member_price, + 'date_from': data.date_from + } + invoice_list = partner_obj.create_membership_invoice(cr, uid, context.get('active_ids', []), datas=datas, context=context) + + res = mod_obj.get_object_reference(cr, uid, 'account', 'view_account_invoice_filter') + + 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', + 'search_view_id': res and res[1] or False + } + +membership_invoice() diff --git a/wizard/remembership_invoice_view.xml b/wizard/remembership_invoice_view.xml new file mode 100644 index 0000000..5fdb3d2 --- /dev/null +++ b/wizard/remembership_invoice_view.xml @@ -0,0 +1,16 @@ + + + + + membership.invoice.view.form + membership.invoice + + + + + + + + + +