[VIEW] -hide procurement buttons on membership products. This feature is added to...
[burette/remembership.git] / remembership.py
index 178fd4b..e424e03 100644 (file)
@@ -2,7 +2,7 @@
 ##############################################################################
 #
 #    Remembership module for OpenERP, Membership module enhancement and bug fixes
-#    Copyright (C) 2012-2013 L'Heureux Cyclage (<http://www.heureux-cyclage.org>)
+#    Copyright (C) 2012-2018 L'Heureux Cyclage (<http://www.heureux-cyclage.org>)
 #
 #    This file is a part of Remembership
 #
@@ -28,7 +28,6 @@ from datetime import datetime, date
 from dateutil.relativedelta import relativedelta
 from openerp.tools.translate import _
 
-
 class Partner(osv.osv):
     _inherit = 'res.partner'
 
@@ -52,7 +51,7 @@ class Partner(osv.osv):
                  'membership_cancel': False
             }
             if name == 'membership_start':
-                line_id = member_line_obj.search(cr, uid, [('partner', '=', partner_id),('date_cancel','=',False)],
+                line_id = member_line_obj.search(cr, uid, [('partner', '=', partner_id),('state','!=','canceled')],
                             limit=1, order='date_from', context=context)
                 if line_id:
                     res[partner.id]['membership_start'] = member_line_obj.read(cr, uid, line_id[0],
@@ -63,7 +62,7 @@ class Partner(osv.osv):
                         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)],
+                line_id1 = member_line_obj.search(cr, uid, [('partner', '=', partner_id),('state','!=','canceled')],
                             limit=1, order='date_to desc', context=context)
                 if line_id1:
                     res[partner.id]['membership_stop'] = member_line_obj.read(cr, uid, line_id1[0],
@@ -145,7 +144,7 @@ class Partner(osv.osv):
     def create_membership_invoice(self, cr, uid, ids, product_id=None, datas=None, context=None):
         # NOTE: use context to supply date_from to account_invoice_line.create
         context = context and context.copy() or {}
-        #context.update({'date_from': datas.get('date_from', None)});
+        context.update({'date_from': datas.get('date_from', None)});
         # XXX: copied from openerp/addons/membership/membership.py to fix account_invoice_line creation
         print ("DEV: [remembership] [partner] [create_membership_invoice] ids=%s" % str(ids))
         invoice_obj = self.pool.get('account.invoice')
@@ -209,6 +208,13 @@ class Partner(osv.osv):
         print ("DEV: [remembership] [partner] [create_membership_invoice] return=%s" % str(invoice_list))
         return invoice_list
 
+    def update_membership_status(self, cr, uid):
+        """Action for updating old members status with scheduled cron job"""
+        partner_obj = self.pool.get('res.partner')
+        today = date.today()
+        ids = partner_obj.search(cr, uid, [('membership_state', '=', 'paid'), ('membership_stop', '<', today)], context=None)
+        self.write(cr, uid, ids, {'membership_state': 'old'}, context=None)
+
 Partner()
 
 
@@ -247,7 +253,7 @@ class account_invoice_line(osv.osv):
                               and context.get('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_to   = date_from + relativedelta(months=+12, days=-1) # TODO: parameterize this delta?
                             date_from = date_from.strftime("%Y-%m-%d")
                             date_to   = date_to  .strftime("%Y-%m-%d")
                         print ("DEV: [remembership] [account_invoice_line] [write] date_from: %s" % str(date_from))
@@ -319,7 +325,8 @@ class account_invoice_line(osv.osv):
                       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?
+                    print("#DEBUG: Date de début - %s" % str(date_from))
+                    date_to   = date_from + relativedelta(months=+12, days=-1) # TODO: parameterize this delta?
                     date_from = date_from.strftime("%Y-%m-%d")
                     date_to   = date_to  .strftime("%Y-%m-%d")
                 print ("DEV: [remembership] [account_invoice_line] [create] date_from: %s" % str(date_from))