From: Ludovic CHEVALIER Date: Fri, 11 Jan 2013 17:15:40 +0000 (+0100) Subject: [date2date] date_from choice in the wizard X-Git-Url: https://git.heureux-cyclage.org/?p=burette%2Fremembership.git;a=commitdiff_plain;h=f240fa726d73949ec5c3630771a2288cf06075e4 [date2date] date_from choice in the wizard --- 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/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 + + + + + + + + + +