-
- if line.product_id and line.product_id.membership:
- member_line_id = member_line_obj.search(cr, uid
- , [('partner' , '=', line.order_line.partner_id.id)
- ,('pos_order_line', '=', line.id)]
- , limit=1
- , context=context)
- for member_line in member_line_obj.browse(cr, uid, member_line_id, context=context):
- # NOTE: get member_line created in membership.pos_order_line.create
- date_from = member_line.date_from
- date_to = member_line.date_to
- if line.product_id.membership_date2date:
- 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(days = +364) # TODO: parameterize this delta?
- date_from = date_from.strftime("%Y-%m-%d")
- date_to = date_to .strftime("%Y-%m-%d")
- print ("DEV: [pos_membership] [create] date_from: %s" % str(date_from))
- print ("DEV: [pos_membership] [create] date_to : %s" % str(date_to))
- member_line_obj.write(cr, uid, member_line.id
- , {'date_from': date_from
- ,'date_to' : date_to
- }
- , context=context)
- partners = [line.order_line.partner_id]
- if line.product_id.membership_grouped and line.order_line.partner_id.associate_members:
- partners.extend(line.order_line.partner_id.associate_members)
+
+ ml_ids = member_line_obj.search(cr, uid, [('pos_order_line', '=', line.id)], context=context)
+ if line.product_id and line.product_id.membership and not ml_ids:
+ date_from = line.product_id.membership_date_from
+ date_to = line.product_id.membership_date_to
+ if line.order_id.date_order > date_from and line.order_id.date_order < date_to:
+ date_from = line.order_id.date_order
+ if line.product_id.membership_date2date:
+ date_from = ('date_from' in context
+ and context.get('date_from')
+ and datetime.strptime(context.get('date_from'), "%Y-%m-%d")
+ or date.today())
+ date_to = date_from + relativedelta(days = +364) # TODO: parameterize this delta?
+ date_from = date_from.strftime("%Y-%m-%d")
+ date_to = date_to .strftime("%Y-%m-%d")
+ print ("DEV: [pos_membership] [pos_order_line] [create] date_from: %s" % str(date_from))
+ print ("DEV: [pos_membership] [pos_order_line] [create] date_to : %s" % str(date_to))
+ member_line_obj.create(cr, uid, {
+ 'partner': line.order_id.partner_id and line.order_id.partner_id.id or False,
+ 'membership_id': line.product_id.id,
+ 'member_price': line.price_unit,
+ 'date': time.strftime('%Y-%m-%d'),
+ 'date_from': date_from,
+ 'date_to': date_to,
+ 'pos_order_line': line.id,
+ }, context=context)
+ partners = [line.order_id.partner_id]
+ if line.product_id.membership_grouped and line.order_id.partner_id.associate_members:
+ partners.extend(line.order_id.partner_id.associate_members)