X-Git-Url: https://git.heureux-cyclage.org/?p=burette%2Fremembership.git;a=blobdiff_plain;f=remembership.py;h=b88034f48cea079796643cea69620b6823a72a86;hp=733f00d8088259664b4e3188869e897609496bf6;hb=7c2f716cce71fba66bc0136ef804fa22eca29a8e;hpb=435ec7d1f0a1d180e9f76512b64c43f61ff5e295 diff --git a/remembership.py b/remembership.py index 733f00d..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): @@ -37,6 +38,7 @@ class Partner(osv.osv): name = name[0] res = {} member_line_obj = self.pool.get('membership.membership_line') + print ("DEV: [remembership] [_membership_date]") for partner in self.browse(cr, uid, ids, context=context): # XXX: commented part from openerp/addons/membership/membership.py #if partner.associate_member: @@ -55,6 +57,10 @@ class Partner(osv.osv): if line_id: res[partner.id]['membership_start'] = member_line_obj.read(cr, uid, line_id[0], ['date_from'], context=context)['date_from'] + if partner.associate_member: + 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)], @@ -62,6 +68,10 @@ class Partner(osv.osv): if line_id1: res[partner.id]['membership_stop'] = member_line_obj.read(cr, uid, line_id1[0], ['date_to'], context=context)['date_to'] + if partner.associate_member: + 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': @@ -172,10 +182,15 @@ 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") + print ("DEV: [write] date_from: %s" % str(date_from)) + print ("DEV: [write] date_to : %s" % str(date_to)) member_line_obj.write(cr, uid, member_line.id , {'date_from': date_from ,'date_to' : date_to @@ -189,6 +204,8 @@ class account_invoice_line(osv.osv): ] , context=context) for associate_member_line in member_line_obj.browse(cr, uid, associate_member_line_ids, context=context): + print ("DEV: [write] [associate] date_from: %s" % str(date_from)) + print ("DEV: [write] [associate] date_to : %s" % str(date_to)) member_line_obj.write(cr, uid, associate_member_line.id , {'date_from': date_from ,'date_to' : date_to @@ -236,10 +253,15 @@ 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") + print ("DEV: [create] date_from: %s" % str(date_from)) + print ("DEV: [create] date_to : %s" % str(date_to)) member_line_obj.write(cr, uid, member_line.id , {'date_from': date_from ,'date_to' : date_to @@ -250,6 +272,8 @@ class account_invoice_line(osv.osv): partners.extend(line.invoice_id.partner_id.associate_members) #Adding membership lines just for associate partners for associate_member in line.invoice_id.partner_id.associate_members: + print ("DEV: [create] [associate] date_from: %s" % str(date_from)) + print ("DEV: [create] [associate] date_to : %s" % str(date_to)) member_line_obj.create(cr, uid, { 'partner': associate_member.id, 'membership_id': line.product_id.id, @@ -259,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: