X-Git-Url: https://git.heureux-cyclage.org/?p=burette%2Fremembership.git;a=blobdiff_plain;f=remembership.py;h=b88034f48cea079796643cea69620b6823a72a86;hp=849afcf3a3a3f99399fe514cffa4a155b6e902e3;hb=7c2f716cce71fba66bc0136ef804fa22eca29a8e;hpb=514e61eeeea5e8c2e804726185ead891420460ce diff --git a/remembership.py b/remembership.py index 849afcf..b88034f 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) @@ -181,7 +182,10 @@ class account_invoice_line(osv.osv): date_from = member_line.date_from date_to = member_line.date_to if line.product_id.membership_date2date: - date_from = context['date_from'] and datetime.strptime(context['date_from'], "%Y-%m-%d") or date.today() + date_from = ('date_from' in context + and context['date_from'] + and datetime.strptime(context['date_from'], "%Y-%m-%d") + or date.today()) date_to = date_from + relativedelta(months = +12) # TODO: parameterize this delta? date_from = date_from.strftime("%Y-%m-%d") date_to = date_to .strftime("%Y-%m-%d") @@ -279,6 +283,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: