from openerp.osv import osv,fields import time
class fci_attendance_analysis (osv.osv): _name='fci.attendance.analysis' _rec_name='student_id'
_columns={ 'standard_id':fields.many2one('fci.standard',string='Standard',required=True), 'group_id':fields.many2one('fci.standard.groups',string='Group'), 'date':fields.date('Date Of generation',readonly=True), '_date':fields.date('Date'), 'student_id':fields.many2one('fci.student',string='Student'), 'number_of_absence': fields.integer( 'Number Of Absence'), 'terms_id': fields.many2one('fci.terms', string='Term',required=True), 'subject_id':fields.many2one('fci.subject',string='Subject',required=True), 'state': fields.selection([('s','by Subject'),('t','By Student')],string='Select Report Type',required=True), } _defaults = { 'state': 't', 'date': time.strftime("%Y-%m-%d") } def gen_student_attendance_report(self,cr, uid, ids, context=None ): datas = {} if context is None:context = {} noobs_data=[] data = self.read(cr, uid, ids, ['state','subject_id','student_id'], context=context) stu= data[0]['student_id'] sub=data[0]['subject_id'] darsh=int(stu[0]) sasa=int(sub[0]) if data[0]['state'] == 't': cr.execute( "select DISTINCT ON (s.name) s.name as student_name,d.name as subject_name,attendance_date from fci_attendance_line ,fci_student s,fci_subject d where s.id=%d and d.id=%d and present=False "% ( darsh,sasa)) noobs = cr.dictfetchall() cr.execute( "select DISTINCT ON (s.name) s.name as student_name,d.name as subject_name,attendance_date from fci_attendance_line ,fci_student s,fci_subject d where s.id=%d and d.id=%d and present=False "% ( darsh,sasa)) noobs_details = cr.dictfetchall() for details_ids in noobs_details: for datae in noobs: details_ids[datae['student_name']] = str(datae['student_name'])+str(datae['subject_name']) + str(datae['attendance_date']) noobs_data.append(details_ids)
datas = { 'ids': [], 'model': 'fci.attendance.analysis', 'form': noobs_data[0] } return { 'type': 'ir.actions.report.xml', 'report_name': 'FCI_ERP.abcence_report_stu_document', 'datas': datas }
fci_attendance_analysis() |
Any help !!!