Here is my code so far i create statues field with many values the default is 'underage'and i make cron function (get_age_comp) if the condition true the statues should be changed to ('getCard') my challenge now to add these who their status changed to('getCard') to new model table called (' fci_military_states') and from there i can change the status to the 3rd status ('gotCard') and finally when i change the status in the this table the record must deleted automatic and the status change in the first table (fci_student)to ('gotCard').
**My student model**
from openerp.osv import osv, fields
from openerp import api
from datetime import date
from dateutil.relativedelta import relativedelta
class fci_student(osv.osv):
_name = 'fci.student'
_columns = {
'photo': fields.binary(string='Photo'),
'name': fields.char(size=128, string='First Name', required=True),
'middle_name': fields.char(size=128, string='Middle Name', required=True),
'last_name': fields.char(size=128, string='Last Name', required=True),
'status': fields.Selection([('under_Age', 'UnderAge'), ('get_card', 'GetCard'), ('got_card', 'GotCard')],
'Military Status'
, default='under_Age'),
# basic details
"birth_date": fields.date(string='Birth Date', required=True),
'gender': fields.selection([('m', 'Male'), ('f', 'Female'), ('o', 'Other')], string='Gender', required=True),
'Paid': fields.boolean('Paid Student'),
'nationality': fields.many2one('res.country', string='Nationality'),
'id_number': fields.char(size=64, string='ID Card Number', required=True),
'phone': fields.char(string='Phone Number', size=256, required=True),
'email_address': fields.char(string='E-mail', size=256, required=True),
'pay_amount': fields.char(size=64, string='Payment', required=True),
# Edictional details
'standard_id': fields.many2one('fci.standard', string='Standard', required=True),
'term_id': fields.many2one('fci.terms', string='Terms', required=True),
# Parent details
'parent_name': fields.char(size=128, string='Parent First Name', required=True),
'parent_middle_name': fields.char(size=128, string='Parent First Name', required=True),
'parent_last_name': fields.char(size=128, string='Parent First Name', required=True),
'parent_phone': fields.integer(size=128, string='Parent Number', required=True),
'parent_ids': fields.char(size=128, string='Parent E-mail', required=True),
# Library details
'library_card_number': fields.char(size=64, string='Library Card Number'),
'library_card_type': fields.char(size=64, string='Library Card type'),
'number_of_books_allow': fields.char(size=64, string='Number of books allow'),
# Address details
'street_name': fields.char(size=128, string='Street', required=True),
'city_name': fields.char(size=128, string='City', required=True),
'state_name': fields.char(size=128, string='State', required=True),
'Zip': fields.char(size=128, string='Zip Code'),
'country': fields.char(size=128, string='country', required=True),
}
fci_student()
@api.model
def get_age_comp(self): # cron function
self.search([('gender', '=', 'm'), ('status', '=', 'under_Age'),
('birth_date', '>=', date.today() - relativedelta(years=20))
]).write({'status': 'get_card'})
def add_another_table(self):
to_add = {}
for student in self.search([('gender','=','m'), ('birth_date', '<=', date.today() - relativedelta(years=20)),
('status', '=', 'get_card')]):
to_add[student.name] = student.status
military_model = self.pool.get('fci.military.states')
for name, birth_date,standard_group,standard_id,status in to_add.iteritems():
military_model.create({'name': name, 'birth_date': birth_date,'standard_group':standard_group
,'standard_id':standard_id,'status':status})
**My military status model**
from openerp.osv import osv, fields
from openerp import api
class fci_military_states(osv.osv):
_name = 'fci.military.states'
_rec_name = 'statues'
_columns = {
'statues': fields.Selection([('under_Age', 'UnderAge'),('get_card', 'GetCard'),('got_card', 'GotCard')],
'Military Status', default='get_card'),
'standard_group':fields.many2one('fci.standard.group',string='Group',requierd=True),
'standard_id': fields.many2one('fci.standard', string='Standard', required=True),
'student_id': fields.many2one('fci.student', string='Student', required=True),
}
@api.model
def del_reco(self):
to_add = {}
for student in self.search([('gender', '=', 'm'), ('status', '=', 'got_card')]):
to_add[student.name] = student.status
military_model = self.pool.get('fci.student')
for status in to_add.iteritems():
military_model.write({'status':status})
self.search([('gender', '=', 'm'), ('status', '=', 'got_card')]).unlink()
Edited 14-2 3:49 AM Any help ?