[MODULE] ~wip migration
[burette/remembership.git] / wizard / membership_invoice.py
1 # -*- coding: utf-8 -*-
2 # Copyright 2012-2020 L'Heureux Cyclage
3 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4
5 from openerp.osv import osv
6 from openerp.osv import fields
7 from datetime import datetime
8
9
10 class membership_invoice(osv.osv):
11 _inherit = 'membership.invoice'
12
13 _columns = {
14 'date_from': fields.date('This membership start date'),
15 'is_date2date': fields.boolean('This membership product is date to date.', readonly=True),
16 }
17
18 _defaults = {
19 'date_from': datetime.today().strftime('%Y-%m-%d'),
20 }
21
22 def onchange_product(self, cr, uid, ids, product_id=False):
23 res = super(membership_invoice, self).onchange_product(cr, uid, ids, product_id)
24 if product_id:
25 res['value']['is_date2date'] = self.pool.get('product.product').browse(cr, uid, [product_id], context=None)[0].membership_date2date
26 else:
27 res['value']['is_date2date'] = False
28
29 return res
30
31 def membership_invoice(self, cr, uid, ids, context=None):
32 """NOTE: Copy of orginial function for overwrite it by adding
33 date_from value for date to date membership products. Keep an eye of it
34 for taking advantage of its enhancements (2013-01-11)"""
35 mod_obj = self.pool.get('ir.model.data')
36 partner_obj = self.pool.get('res.partner')
37 datas = {}
38 if context is None:
39 context = {}
40 data = self.browse(cr, uid, ids, context=context)
41 if data:
42 data = data[0]
43 datas = {
44 'membership_product_id': data.product_id.id,
45 'amount': data.member_price,
46 'date_from': data.date_from
47 }
48 invoice_list = partner_obj.create_membership_invoice(cr, uid, context.get('active_ids', []), datas=datas, context=context)
49
50 res = mod_obj.get_object_reference(cr, uid, 'account', 'view_account_invoice_filter')
51
52 return {
53 'domain': [('id', 'in', invoice_list)],
54 'name': 'Membership Invoices',
55 'view_type': 'form',
56 'view_mode': 'tree,form',
57 'res_model': 'account.invoice',
58 'type': 'ir.actions.act_window',
59 'search_view_id': res and res[1] or False
60 }
61
62 membership_invoice()