[membership] +cron job to update members status
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 30 Sep 2015 15:25:27 +0000 (17:25 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 30 Sep 2015 15:31:02 +0000 (17:31 +0200)
__openerp__.py
data/membership.xml
remembership.py

index be751a4..7a09100 100644 (file)
@@ -29,7 +29,8 @@
     This module overload official OpenERP membership module for adding some functionnalities that could be useful:
         - grouped membership;
         - date to date membership;
-        - members identfication number.
+        - members identfication number;
+        - cron job to update membership status.
     """,
     'author': 'L\'Heureux Cyclage - LHC',
     'website': 'http://www.heureux-cyclage.org',
index ffc074d..9b85ec9 100644 (file)
             <field name="number_next">1</field>
             <field name="number_increment">1</field>
         </record>
+        <record id="ir_cron_scheduler_action" model="ir.cron">
+             <field name="name">Update partners membership state</field>
+             <field eval="True" name="active"/>
+             <field name="user_id" ref="base.user_root"/>
+             <field name="interval_number">1</field>
+             <field name="interval_type">days</field>
+             <field name="numbercall">-1</field>
+             <field eval="False" name="doall"/>
+             <field eval="'res.partner'" name="model"/>
+             <field eval="'update_membership_status'" name="function"/>
+             <field eval="'()'" name="args"/>
+        </record>
+
     </data>
 </openerp>
index 6256b4d..fcd89fe 100644 (file)
@@ -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'
 
@@ -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()