Beispiel #1
0
def report_monthly_activity_group_detail(request,year,month,activity_id):
    activity_list = (Activity.objects.filter(date__month=month,date__year=year) if activity_id == u'0' else \
                     Activity.objects.filter(group__id=activity_id,date__month=month,date__year=year))
    today = datetime.date.today()
    try:
        caption = ("Event" if activity_id == u'0' else Activity.objects.filter(group__id=activity_id,date__month=month,date__year=year)[0].group)
    except IndexError:
        caption = "Event"
    for activity in activity_list:
        gen_activity_report(activity)

    return render_to_response('report_monthly_activity_group_detail.html',
                              {
                                'caption' : caption,
                                'date' : datetime.datetime(int(year),int(month),1),
                                'year' : year,
                                'month' : month,
                                'activity_list' : activity_list,
                               },
                              context_instance=RequestContext(request))
Beispiel #2
0
def gen_report_group_summary_monthly_version(year,month):
    report_header = ["<thead><tr><th rowspan=2 >Name</th>"]
    activity_group_list =  ActivityGroup.objects.filter()
    activity_header_cell=[]
    summary_report_version=0
    for activity_group in activity_group_list:
        activity_list = Activity.objects.filter(group=activity_group,date__month=month,date__year=year)
        al_count = activity_list.count()
        if al_count:
            report_header.append('<th colspan=%s>%s</th>' % (al_count+1,activity_group.name[0:5]))

        for activity in activity_list:
            gen_activity_report(activity)
            activity_header_cell.append('<th>%s</th>' % activity.date.day)
            summary_report_version += activity.version
        if al_count:
            activity_header_cell.append('<th>sum</th>')

    report_header.append(("<th rowspan=2>Total</th></tr><tr>%s</tr></thead>") % ''.join(activity_header_cell))
    report_table =  ''.join(report_header)
    student_list = Student.objects.filter(status=True)
    student_row = []

    for student in student_list:
        student_row.append("<tr><td>%s %s</td>" % (student.people.name_th,student.people.lastname_th))
        activity_group_list =  ActivityGroup.objects.filter()
        activity_allgroup_status_ok_count = 0
        activity_allgroup_count = 0
        for activity_group in activity_group_list:
            activity_list = Activity.objects.filter(group=activity_group,date__month=month,date__year=year)
            activity_status_ok_count = 0
            for activity in activity_list:
                try :
                    ar = ActivityReport.objects.get(activity=activity,attendance=student,version=activity.version)
                    student_row.append('<td><small class=\"tag %s\">%s</small></td>' % (ar.tx_bg_color(),ar.transaction_status))
                    if ar.transaction_status=='O':
                        activity_status_ok_count +=1
                except ActivityReport.DoesNotExist:
                    student_row.append('<td>-</td>')
            if activity_list.count():
                student_row.append('<td>%s/%s</td>' % (activity_status_ok_count,activity_list.count()))
                activity_allgroup_status_ok_count += activity_status_ok_count
                activity_allgroup_count += activity_list.count()
                activity_status_ok_count=0

        student_row.append('<td>%s/%s : %d&#37;</td>' % (
                                                                activity_allgroup_status_ok_count,
                                                                activity_allgroup_count,
                                                                ((float(activity_allgroup_status_ok_count)/activity_allgroup_count)*100),
                                                                )
                                   )
        student_row.append("</tr>")
    report_table =  report_table+''.join(student_row)
    asr = ActivitySummaryReport.objects.create(
        month = month,
        year = year,
        data = report_table ,
        generate_date = datetime.datetime.now(),
        version = summary_report_version
    )
    return ActivitySummaryReport.objects.get(version = summary_report_version)