import re
from django.db.models import Count, Q, F, Sum
from django.core.paginator import Paginator
from django.shortcuts import redirect, render
from django.db import transaction
from django.contrib import messages
from itertools import groupby

from django.urls import reverse
from account.models import *
from django.contrib.auth import get_user_model
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
from .utils.decorators import role_required

User = get_user_model()


#for pdf
from django.template.loader import get_template
from django.http import HttpResponse
from xhtml2pdf import pisa

from .variable import *
from .custom_today import get_custom_today

#TODO: company dashboard    
@role_required('dashboard_company')
def dashboard_company(request):
    company= request.user.company
    date = get_custom_today()
    total_posted = Member.objects.filter(Q(company=company)|Q(p_company=company), active=True).count()
    attendance_summary = AttendanceSummary.objects.filter(company=company,date=date)
    # Dynamically create the aggregate query
    aggregate_query = {field: Sum(field) for field in field_names}

    # Execute the aggregate query
    record = attendance_summary.aggregate(**aggregate_query)
    # Replace None values with 0
    record = {key: value or 0 for key, value in record.items()}
    # calculate out of unit emp
    total_out_of_unit_emp = OutOfUnitEmp.objects.filter(Q(member__company=company)|Q(member__p_company=company), status=True, member__active=True).exclude(member__t_company=company).count()
    total_ops_depl = Member.objects.filter(company=company, ops_depl=True, active=True).count()

    # Aggregate values
    toe_auth = Company.objects.filter(id=company.id).aggregate(**{field: Sum(field) for field in member_types_fields})
    toe_auth['total'] = sum(value or 0 for value in toe_auth.values())
    ere_auth = Company.objects.filter(id=company.id).aggregate(**{field: Sum(field) for field in ere_member_types_fields})
    ere_auth['total'] = sum(value or 0 for value in ere_auth.values())
    total_auth = toe_auth['total'] + ere_auth['total']
    

    # Calculate combined totals
    combined_total_auth = {}
    for field in member_types_fields:
        toe_value = toe_auth.get(field) or 0
        ere_value = ere_auth.get(f'ere_{field}') or 0
        combined_total_auth[field + '_total'] = toe_value + ere_value

    # Optional: calculate overall total of all combined
    combined_total_auth['grand_total'] = sum(combined_total_auth.values())

    # Create a dictionary to store counts dynamically
    posted = {
    field: Member.objects.filter(member_type__name=field,active=True,company=company).count() for field in member_types_fields
    }
    # Calculate total sum of all members
    posted['total'] = sum(posted.values())
    
    # Create a dictionary to store counts dynamically
    ops_depl = {
    field: Member.objects.filter(member_type__name=field,active=True,ops_depl=True,company=company).count() for field in member_types_fields
    }
    # Calculate total sum of all members
    ops_depl['total'] = sum(ops_depl.values())
    
        # Create a dictionary to store counts dynamically
    out_of_unit_emp = {
    field: OutOfUnitEmp.objects.filter(Q(member__company=company)|Q(member__p_company=company), status=True, type_name=field, member__active=True).exclude(member__t_company=company).count() for field in leave_out_of_unit_emp_fields
    }
    # Calculate total sum of all members
    out_of_unit_emp['total'] = sum(out_of_unit_emp.values())
    

    total_leaves =attendance_summary.aggregate(**{field: Sum(field) for field in total_leaves_fields})
    total_cct =attendance_summary.aggregate(**{field: Sum(field) for field in cct_fields})
    total_unauth_absent =attendance_summary.aggregate(**{field: Sum(field) for field in unauth_absent_fields})
    total_other_reason =attendance_summary.aggregate(**{field: Sum(field) for field in other_reason_fields})

    # Calculate the total sum and append it to total_leaves
    total_leaves['total'] = sum(value or 0 for value in total_leaves.values())
    total_cct['total'] = sum(value or 0 for value in total_cct.values())
    total_unauth_absent['total'] = sum(value or 0 for value in total_unauth_absent.values())
    total_other_reason['total'] = sum(value or 0 for value in total_other_reason.values())
    context = {
        'total_posted':total_posted,
        'total_auth':total_auth,
        'toe_auth':toe_auth,
        'ere_auth':ere_auth,
        'total_leaves':total_leaves,
        'total_cct':total_cct,
        'total_out_of_unit_emp':total_out_of_unit_emp,
        'total_ops_depl':total_ops_depl,
        'total_unauth_absent':total_unauth_absent,
        'total_other_reason':total_other_reason,
        'deficiency': total_auth - total_posted,
        'held': total_posted - total_out_of_unit_emp,
        'record': record,
        'combined_total_auth': combined_total_auth,
        'posted': posted,
        'ops_depl':ops_depl,
        'out_of_unit_emp': out_of_unit_emp,
    }
    return render(request,"dashboard/dashboard_company.html",context)




#TODO: Attendance
@role_required('make_parade_state_company')
def make_parade_state_company(request):
    company = request.user.company
    battalion = company.battalion
    date = get_custom_today()
    out_of_unit_emps = OutOfUnitEmp.objects.filter(
        Q(member__company=company) | Q(member__p_company=company),
        status=True
    ).exclude(member__t_company=company)
    # Get the IDs of the out-of-unit members
    out_of_unit_member_ids = out_of_unit_emps.values_list('member_id', flat=True)
    # Exclude those from the main members queryset
    members = Member.objects.filter(company=company, active=True).exclude(id__in=out_of_unit_member_ids)

    leaveTypes = LeaveType.objects.all()
    main_leave_keys = {key for key, label in MainLeave.CHOICE_LIST}
    main_leave_types = LeaveType.objects.filter(name__in=main_leave_keys)
    # Create a set of member IDs who have applied for leave
    
    old_attendance_summary = AttendanceSummary.objects.filter(company=company, date=date).first()
    if old_attendance_summary:  
            # Render the attendance table immediately when the function is called
        return redirect('parade_state_company')
    else:
        old_attendance_instance = CompanyTakeAttendance.objects.filter(attendance_date=date, company=company).first()
        if old_attendance_instance:
            old_attendance_instance.delete()
        
    if request.method == 'POST':
        attendance_instance, created = CompanyTakeAttendance.objects.get_or_create(
            company=company,
            attendance_date=date
        )
        if not created:
            messages.error(request, "Attendance already marked for today")
            return render(request,'company/attendance_table.html')
        # Process attendance for each member
        for member in members:
            attendance_status = request.POST.get(f'attendance_{member.id}') == 'on'  # Checkbox value
            reason_id = request.POST.get(f'reason_{member.id}')
            leave_type_id = request.POST.get(f'leave_type_{member.id}')
            reason = LeaveReason.objects.get(id=reason_id) if reason_id else None

            # Create or update AttendanceMember instance
            attendance_member, created = AttendanceMember.objects.get_or_create(
                member=member,
                attendance=attendance_instance
            )
            attendance_member.ops_depl = member.ops_depl
            attendance_member.date = date
            attendance_member.status = attendance_status
            if reason_id:
                attendance_member.reason = reason if not attendance_status else None
            attendance_member.save()

            # Handle leave if applicable
            if not attendance_status and leave_type_id:
                leave_type = LeaveType.objects.get(id=leave_type_id)
                first_leave = list(Leave.objects.filter(member=member, date=date))
                if len(first_leave) > 1:
                    Leave.objects.filter(id__in=[leave.id for leave in first_leave[1:]]).delete()

                leave, created = Leave.objects.get_or_create(
                    member=member,
                    date=date,
                    leave_type=leave_type,
                )
                leave.attendance_member = attendance_member
                if created:
                    leave.reason = reason if reason_id else None
                    leave.apply_by = "company daily"
                    leave.start_date = date
                    leave.end_date = date
                    leave.days = 1
                leave.save()
            
        attendance_summary_cart, created = AttendanceSummaryCart.objects.get_or_create(
            battalion=battalion,
            date=date
        )
        attendanceSummaryTable(company, date,attendance_summary_cart)
        messages.success(request, "Parade state marked successfully")
        return redirect('parade_state_company')
    #create leave for unauth absent and other reason
    unauth_absent_other_reason = list(UnauthAbsent.objects.filter(member__company=company, status=True)) + \
               list(OtherReason.objects.filter(member__company=company, status=True))
    for i in unauth_absent_other_reason:
        # create leave for unauth absent
        leave, created = Leave.objects.get_or_create(
            member=i.member,
            date=date,
            leave_type=i.leave_type,
        )
        if created:
            leave.reason = i.reason
            leave.start_date = i.start_date
            leave.save()
    # if unauth absent and other reason status is false then delete leave
    unauth_absent_other_reason = list(UnauthAbsent.objects.filter(member__company=company, status=False, end_date = date)) + \
               list(OtherReason.objects.filter(member__company=company, status=False, end_date = date))
    for i in unauth_absent_other_reason:
        leave = Leave.objects.filter(member=i.member, date=date, leave_type=i.leave_type).delete()
    
    
    leaves = Leave.objects.filter(member__company=company, date=date) 
    leave_member_ids = set(leave.member.id for leave in leaves)
    reasons = LeaveReason.objects.all()
    context = {
        'members':members,
        'leaveTypes':leaveTypes,
        'leaves':leaves,
        'main_leave_types':main_leave_types,
        'leave_member_ids':leave_member_ids,
        'reasons':reasons
    }
    return render(request,'company/make_attendance.html',context)


@role_required('dashboard_company')
def parade_state_company(request, date=None):
    if not date:
        date = get_custom_today()
    else:
        date = datetime.strptime(date, "%Y-%m-%d").date()
    company= request.user.company
    attendance_summary = AttendanceSummary.objects.filter(company=company,date=date).first()
    context = {
        'record': attendance_summary,
        'date': date,
    }
    
    return render(request,'company/attendance_table.html',context)




    
    
#list attendance summary
@role_required('dashboard_company')
def parade_state_list_company(request): 
    date = request.GET.get('date')  # Get selected date from request
    company= request.user.company
    if date:
        dates = AttendanceSummary.objects.filter(
            date=date, 
            company=company  # Filters where company is in the list of company
        ).values_list("date", flat=True).distinct()
    else:
        dates = AttendanceSummary.objects.filter(
            company=company  # Filters where company is in the list of company
        ).values_list("date", flat=True).distinct().order_by('-date')
    #use paginator for dates
    paginator = Paginator(dates, 30)  # 10 dates per page
    page_number = request.GET.get("page")
    dates = paginator.get_page(page_number)
    context = {
        "dates": dates,  # Pass the dates to the template
        "date": date
    }
    
    return render(request, 'company/list_attendance_summary.html', context)





@role_required('other_company')
def parade_state_offr_company(request, date):
    company= request.user.company
    attendance_summary = AttendanceSummary.objects.filter(company=company,date=date).first()
    attendance_summary = AttendanceSummaryOffr.objects.filter(attendance_summary=attendance_summary).first()
    context = {
        'record': attendance_summary,
        'date': datetime.strptime(date, "%Y-%m-%d").date(),
    }
    
    return render(request,'company/parade_state_offr.html',context)

@role_required('other_company')
def parade_state_jco_company(request, date):
    company= request.user.company
    attendance_summary = AttendanceSummary.objects.filter(company=company,date=date).first()
    context = {
    'record': attendance_summary,
    'date': datetime.strptime(date, "%Y-%m-%d").date(),
    }
    return render(request,'company/parade_state_jco.html',context)


@role_required('other_company')
def parade_state_pdf_company(request, date):  
    company= request.user.company
    attendance_summary = AttendanceSummary.objects.filter(company=company,date=date).first()
    context = {
        'record': attendance_summary,
        'date': datetime.strptime(date, "%Y-%m-%d").strftime('%d-%b-%Y'),
    }
    # Load the HTML template and render it with context data
    template = get_template('company/attendance_summary_pdf.html')
    html = template.render(context)

    # Create a response with PDF content type
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = f'inline; filename="manpower_parade_state_of_{company.name}_of_{company.battalion.name}_{date}.pdf"'

    # Convert HTML to PDF
    pisa_status = pisa.CreatePDF(html, dest=response)

    if pisa_status.err:
        return HttpResponse("Error generating PDF", status=500)
    
    return response

@role_required('other_company')
def parade_state_offr_pdf_company(request, date):  
    company= request.user.company
    attendance_summary = AttendanceSummary.objects.filter(company=company,date=date).first()
    attendance_summary = AttendanceSummaryOffr.objects.filter(attendance_summary=attendance_summary).first()
    context = {
        'record': attendance_summary,
        'date': datetime.strptime(date, "%Y-%m-%d").strftime('%d-%b-%Y'),
    }
    # Load the HTML template and render it with context data
    template = get_template('company/parade_state_offr_pdf.html')
    html = template.render(context)

    # Create a response with PDF content type
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = f'inline; filename="offr_manpower_parade_state_of_{company.name}_of_{company.battalion.name}_{date}.pdf"'

    # Convert HTML to PDF
    pisa_status = pisa.CreatePDF(html, dest=response)

    if pisa_status.err:
        return HttpResponse("Error generating PDF", status=500)
    
    return response

@role_required('other_company')
def parade_state_jco_pdf_company(request, date):  
    company= request.user.company
    attendance_summary = AttendanceSummary.objects.filter(company=company,date=date).first()
    context = {
        'record': attendance_summary,
        'date': datetime.strptime(date, "%Y-%m-%d").strftime('%d-%b-%Y'),
    }
    # Load the HTML template and render it with context data
    template = get_template('company/parade_state_jco_pdf.html')
    html = template.render(context)

    # Create a response with PDF content type
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = f'inline; filename="jco_manpower_parade_state_of_{company.name}_of_{company.battalion.name}_{date}.pdf"'

    # Convert HTML to PDF
    pisa_status = pisa.CreatePDF(html, dest=response)

    if pisa_status.err:
        return HttpResponse("Error generating PDF", status=500)
    
    return response




@role_required('dashboard_company')
def attendance_member_list_company(request, date):
    company = request.user.company  # Get the company of the logged-in user
    try:
        # Convert string to date object
        date = datetime.strptime(date, "%Y-%m-%d").date()
    except ValueError:
        messages.error(request, "Invalid date format. Please use YYYY-MM-DD.")
        return redirect('attendance_member_list_company')

    # Get attendance records
    attendance_records = AttendanceMember.objects.filter(
        member__company=company,
        attendance__attendance_date=date
    ).select_related('attendance', 'member')

    # Get leave details for absent members
    leave_records = Leave.objects.filter(
        member__company=company,
        date = date
    ).select_related('member', 'leave_type')
    
    search_query = request.GET.get("search", "")  # Get search query
    if search_query:
        # Use Q objects for OR logic
        attendance_records = attendance_records.filter(
            Q(member__army_no__icontains=search_query) |
            Q(member__mobile_no__icontains=search_query) |
            Q(member__name__icontains=search_query)
        ) 
    context = {
        'attendance_records': attendance_records,
        'leave_records': leave_records,
        'date': date,
        'search_query': search_query,  # Pass search query to template
        'company_name': company.name, 
    }

    return render(request, 'dashboard/attendance_report.html', context)


@role_required('dashboard_company')
def absent_list_company(request,member_type):
    date = get_custom_today()
    company = request.user.company
    # Get attendance records
    attendance_records = AttendanceMember.objects.filter(
        member__company = company,
        attendance__attendance_date=date,
        status=False
    ).select_related('attendance', 'member')

    # Get leave details for total members
    leave_records = Leave.objects.filter(
        member__company= company,
        date=date 
    ).select_related('member', 'leave_type')
    
    if member_type != 'total':
        attendance_records = attendance_records.filter(member__member_type__name=member_type)
        leave_records = leave_records.filter(member__member_type__name=member_type)

    context = {
        'attendance_records': attendance_records,
        'leave_records': leave_records,
        'date': date,
    }

    return render(request, 'dashboard/attendance_report.html', context)

@role_required('dashboard_company')
def present_list_company(request,member_type):
    date = get_custom_today()
    company = request.user.company
    # Get attendance records
    attendance_records = AttendanceMember.objects.filter(
        member__company = company,
        attendance__attendance_date=date,
        status=True
    ).select_related('attendance', 'member')

    # Get leave details for total members   
    leave_records = Leave.objects.filter(
        member__company= company,
        date=date 
    ).select_related('member', 'leave_type')
    
    if member_type != 'total':
        attendance_records = attendance_records.filter(member__member_type__name=member_type)
        leave_records = leave_records.filter(member__member_type__name=member_type)

    context = {
        'attendance_records': attendance_records,
        'leave_records': leave_records,
        'date': date,
    }

    return render(request, 'dashboard/attendance_report.html', context)

@role_required('dashboard_company')
def leave_list_company(request,type="total"):
    date = get_custom_today()
    company = request.user.company
    # Get attendance records
    attendance_records = AttendanceMember.objects.filter(
        member__company = company,
        attendance__attendance_date=date,
    ).select_related('attendance', 'member')

    # Get leave details for present members
    leave_records = Leave.objects.filter(
        date=date 
    ).select_related('member', 'leave_type')
    
    if type == 'total_leaves':
    #get leave attendance records
        leave_attendance_records = []
        for i in attendance_records:
            for j in leave_records:
                if i.member == j.member and j.leave_type is not None and j.leave_type.name in leave_main_leaves:
                    leave_attendance_records.append(i)
    elif type == 'total_cct':
        #get leave attendance records
        leave_attendance_records = []
        for i in attendance_records:
            for j in leave_records:
                if i.member == j.member and j.leave_type is not None and j.leave_type.name in leave_cct_fields:
                    leave_attendance_records.append(i)
    elif type == 'total_unauth_absent':
        #get leave attendance records
        leave_attendance_records = []
        for i in attendance_records:
            for j in leave_records:
                if i.member == j.member and j.leave_type is not None and j.leave_type.name in leave_unauth_absent_fields:
                    leave_attendance_records.append(i)
    elif type == 'total_other_reason':
        #get leave attendance records
        leave_attendance_records = []
        for i in attendance_records:
            for j in leave_records:
                if i.member == j.member and j.leave_type is not None and j.leave_type.name in leave_other_reason_fields:
                    leave_attendance_records.append(i)
    elif type == 'total':
        leave_attendance_records = []
        for i in attendance_records:
            for j in leave_records:
                if i.member == j.member:
                    leave_attendance_records.append(i)
    else:
        leave_attendance_records = []
        for i in attendance_records:
            for j in leave_records:
                if i.member == j.member and j.leave_type is not None and j.leave_type.name == type:
                    leave_attendance_records.append(i)
    context = {
        'attendance_records': leave_attendance_records,
        'leave_records': leave_records,
        'date': date,
    }
    return render(request,'dashboard/attendance_report.html',context)










#TODO:Member
@role_required('create_member_company')
def create_member_company(request):
    company = request.user.company
    context = {
        'member_statuses':MemberStatus.objects.all(),
        'apartments':Apartment.objects.all() 
    }
    if request.method == "POST":
        name = request.POST.get('name')
        army_no = request.POST.get('army_no')
        rank_id = request.POST.get('rank')
        apartment_id = request.POST.get('apartment')
        mobile_no = request.POST.get('mobile_no')
        short_name = request.POST.get('short_name')
        picture = request.FILES.get('picture') if request.FILES.get('picture') else None
        # Check if all fields are provided
        if not all([name, army_no, rank_id, apartment_id, mobile_no, short_name]):
            messages.error(request, "All fields are required")
            return redirect('create_member_company')
        if len(mobile_no) != 11 or not mobile_no.startswith("01") or not mobile_no.isdigit():
            messages.error(request, "Mobile number must be exactly 11 digits and start with 01")
            return redirect('create_member_company')
        # Check if the email is already in use
        if User.objects.filter(email=army_no).exists():
            messages.error(request, "Army No already in use")
            return redirect('create_member_company')
        try:
            # Get the other
            rank = Rank.objects.get(id=rank_id)
            apartment = Apartment.objects.get(id=apartment_id)
            # Create the user
            user = User.objects.create_user(email=army_no, password=mobile_no)
            user.role = Role.objects.get(h_name="member")
            if picture:
                user.picture = picture
            user.name = name
            user.army_no = army_no
            user.rank = rank
            user.mobile_no = mobile_no
            user.save()
            # Create the Member entry
            Member.objects.create(user=user, company=company, member_type=rank.memberType, rank=rank, apartment=apartment, name=name, army_no=army_no, mobile_no=mobile_no, short_name=short_name, picture=picture)
            messages.success(request, "Member added successfully")
            return redirect('create_member_company')

        except Company.DoesNotExist:
            messages.error(request, "Invalid company")
            return redirect('create_member_company')

        except Exception as e:messages.error(request, "An error occurred")
        return redirect('create_member_company')
    return render(request,"company/add_member_form.html",context)

@role_required('update_member_company')
def update_member_company(request,id):
    member = Member.objects.get(id=id)
    context = {
        'member_statuses':MemberStatus.objects.all(),
        'ranks':Rank.objects.all(),
        'apartments':Apartment.objects.all(),
        'member':member
    }
    if request.method == "POST":
        name = request.POST.get('name')
        army_no = request.POST.get('army_no')
        rank_id = request.POST.get('rank')
        apartment_id = request.POST.get('apartment')
        mobile_no = request.POST.get('mobile_no')
        short_name = request.POST.get('short_name')
        picture = request.FILES.get('picture')
        # Check if all fields are provided
        if not all([name, army_no, rank_id, apartment_id, mobile_no, short_name]):
            messages.error(request, "All fields are required")
            return redirect('update_member_company',id=id)
        if len(mobile_no) != 11 or not mobile_no.startswith("01") or not mobile_no.isdigit():
            messages.error(request, "Mobile number must be exactly 11 digits and start with 01")
            return redirect('update_member_company',id=id)
        if User.objects.filter(email=army_no).exclude(id=member.user.id).exists():
            messages.error(request, "BA No already in use")
            return redirect('update_member_company',id=id)
        try:
            # Get the other
            rank = Rank.objects.get(id=rank_id)
            apartment = Apartment.objects.get(id=apartment_id)
            # Create the user
            user = member.user
            user.email = army_no
            user.name = name
            user.army_no = army_no
            user.rank = rank
            user.mobile_no = mobile_no
            if picture:
                user.picture = picture
            user.save()
            # Create the Member entry
            member.member_type = rank.memberType
            member.rank = rank
            member.apartment = apartment
            member.name = name
            member.army_no = army_no
            member.mobile_no = mobile_no
            member.short_name = short_name
            if picture:
                member.picture = picture
            member.save()
            messages.success(request, "Member updated successfully")
            return redirect('read_member')
        except Exception as e:
            messages.error(request, "An error occurred")
            return redirect('update_member_company',id=id)
    return render(request,'company/edit_member_form.html',context) 
        








#TODO: Query of attendance summary
def attendanceSummaryTable(company, date,attendance_summary_cart):
    # Group attendance by company and member type
    data = (CompanyTakeAttendance.objects
    .filter(company=company, attendance_date=date)
    .annotate(
        #absent_count
        offr_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr')),
        mwo_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='mwo')),
        smo_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='smo')),
        wo_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='wo')),
        sgt_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='sgt')),
        cpl_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='cpl')),
        lcpl_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='lcpl')),
        snk_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='snk')),
        clk_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='clk')),
        tailor_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='tailor')),
        e_br_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='e_br')),
        ck_mm_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='ck_mm')),
        carp_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='carp')),
        rco_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='rco')),
        nc_e_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='nc_e')),
        nc_u_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='nc_u')),
        att_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='att')),
        total_absent=Count('attendancemember', filter=Q(attendancemember__status=False)),
        
        #present_count
        offr_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr')),
        mwo_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='mwo')),
        smo_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='smo')),
        wo_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='wo')),
        sgt_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='sgt')),
        cpl_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='cpl')),
        lcpl_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='lcpl')),
        snk_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='snk')),
        clk_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='clk')),
        tailor_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='tailor')),
        e_br_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='e_br')),
        ck_mm_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='ck_mm')),
        carp_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='carp')),
        rco_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='rco')),
        nc_e_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='nc_e')),
        nc_u_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='nc_u')),
        att_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='att')),
        total_present=Count('attendancemember', filter=Q(attendancemember__status=True)),
        #ops depl present count
        ops_depl_offr_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True)),
        ops_depl_mwo_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='mwo', attendancemember__member__ops_depl=True)),
        ops_depl_smo_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='smo', attendancemember__member__ops_depl=True)),
        ops_depl_wo_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='wo', attendancemember__member__ops_depl=True)),
        ops_depl_sgt_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='sgt', attendancemember__member__ops_depl=True)),
        ops_depl_cpl_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='cpl', attendancemember__member__ops_depl=True)),
        ops_depl_lcpl_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='lcpl', attendancemember__member__ops_depl=True)),
        ops_depl_snk_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='snk', attendancemember__member__ops_depl=True)),
        ops_depl_clk_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='clk', attendancemember__member__ops_depl=True)),
        ops_depl_tailor_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='tailor', attendancemember__member__ops_depl=True)),
        ops_depl_e_br_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='e_br', attendancemember__member__ops_depl=True)),
        ops_depl_ck_mm_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='ck_mm', attendancemember__member__ops_depl=True)),
        ops_depl_carp_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='carp', attendancemember__member__ops_depl=True)),
        ops_depl_rco_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='rco', attendancemember__member__ops_depl=True)),
        ops_depl_nc_e_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='nc_e', attendancemember__member__ops_depl=True)),
        ops_depl_nc_u_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='nc_u', attendancemember__member__ops_depl=True)),
        ops_depl_att_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='att', attendancemember__member__ops_depl=True)),
        ops_depl_total_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__ops_depl=True)),
        
        #p_leave
        p_leave_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr')),
        p_leave_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='mwo')),
        p_leave_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='smo')),
        p_leave_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='wo')),
        p_leave_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='sgt')),
        p_leave_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='cpl')),
        p_leave_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='lcpl')),
        p_leave_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='snk')),
        p_leave_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='clk')),
        p_leave_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='tailor')),
        p_leave_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='e_br')),
        p_leave_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='ck_mm')),
        p_leave_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='carp')),
        p_leave_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='rco')),
        p_leave_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='nc_e')),
        p_leave_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='nc_u')),
        p_leave_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='att')),
        p_leave_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave')),
        #c_leave
        c_leave_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr')),
        c_leave_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='mwo')),
        c_leave_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='smo')),
        c_leave_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='wo')),
        c_leave_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='sgt')),
        c_leave_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='cpl')),
        c_leave_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='lcpl')),
        c_leave_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='snk')),
        c_leave_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='clk')),
        c_leave_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='tailor')),
        c_leave_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='e_br')),
        c_leave_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='ck_mm')),
        c_leave_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='carp')),
        c_leave_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='rco')),
        c_leave_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='nc_e')),
        c_leave_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='nc_u')),
        c_leave_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='att')),
        c_leave_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave')),
        #r_leave
        r_leave_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr')),
        r_leave_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='mwo')),
        r_leave_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='smo')),
        r_leave_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='wo')),
        r_leave_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='sgt')),
        r_leave_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='cpl')),
        r_leave_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='lcpl')),
        r_leave_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='snk')),
        r_leave_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='clk')),
        r_leave_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='tailor')),
        r_leave_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='e_br')),
        r_leave_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='ck_mm')),
        r_leave_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='carp')),
        r_leave_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='rco')),
        r_leave_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='nc_e')),
        r_leave_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='nc_u')),
        r_leave_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='att')),
        r_leave_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave')),
        #m_leave
        m_leave_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr')),
        m_leave_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='mwo')),
        m_leave_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='smo')),
        m_leave_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='wo')),
        m_leave_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='sgt')),
        m_leave_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='cpl')),
        m_leave_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='lcpl')),
        m_leave_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='snk')),
        m_leave_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='clk')),
        m_leave_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='tailor')),
        m_leave_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='e_br')),
        m_leave_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='ck_mm')),
        m_leave_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='carp')),
        m_leave_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='rco')),
        m_leave_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='nc_e')),
        m_leave_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='nc_u')),
        m_leave_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='att')),
        m_leave_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave')),
        #w_leave
        w_leave_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr')),
        w_leave_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='mwo')),
        w_leave_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='smo')),
        w_leave_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='wo')),
        w_leave_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='sgt')),
        w_leave_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='cpl')),
        w_leave_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='lcpl')),
        w_leave_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='snk')),
        w_leave_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='clk')),
        w_leave_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='tailor')),
        w_leave_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='e_br')),
        w_leave_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='ck_mm')),
        w_leave_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='carp')),
        w_leave_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='rco')),
        w_leave_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='nc_e')),
        w_leave_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='nc_u')),
        w_leave_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='att')),
        w_leave_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave')),
        #j_leave
        j_leave_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr')),
        j_leave_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='mwo')),
        j_leave_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='smo')),
        j_leave_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='wo')),
        j_leave_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='sgt')),
        j_leave_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='cpl')),
        j_leave_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='lcpl')),
        j_leave_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='snk')),
        j_leave_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='clk')),
        j_leave_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='tailor')),
        j_leave_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='e_br')),
        j_leave_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='ck_mm')),
        j_leave_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='carp')),
        j_leave_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='rco')),
        j_leave_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='nc_e')),
        j_leave_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='nc_u')),
        j_leave_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='att')),
        j_leave_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave')),
        #osl
        osl_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr')),
        osl_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='mwo')),
        osl_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='smo')),
        osl_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='wo')),
        osl_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='sgt')),
        osl_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='cpl')),
        osl_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='lcpl')),
        osl_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='snk')),
        osl_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='clk')),
        osl_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='tailor')),
        osl_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='e_br')),
        osl_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='ck_mm')),
        osl_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='carp')),
        osl_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='rco')),
        osl_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='nc_e')),
        osl_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='nc_u')),
        osl_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='att')),
        osl_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl')),
        #awol
        awol_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr')),
        awol_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='mwo')),
        awol_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='smo')),
        awol_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='wo')),
        awol_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='sgt')),
        awol_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='cpl')),
        awol_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='lcpl')),
        awol_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='snk')),
        awol_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='clk')),
        awol_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='tailor')),
        awol_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='e_br')),
        awol_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='ck_mm')),
        awol_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='carp')),
        awol_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='rco')),
        awol_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='nc_e')),
        awol_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='nc_u')),
        awol_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='att')),
        awol_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol')),
        #course
        course_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr')),
        course_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='mwo')),
        course_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='smo')),
        course_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='wo')),
        course_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='sgt')),
        course_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='cpl')),
        course_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='lcpl')),
        course_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='snk')),
        course_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='clk')),
        course_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='tailor')),
        course_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='e_br')),
        course_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='ck_mm')),
        course_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='carp')),
        course_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='rco')),
        course_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='nc_e')),
        course_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='nc_u')),
        course_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='att')),
        course_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course')),
        #trg
        trg_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr')),
        trg_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='mwo')),
        trg_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='smo')),
        trg_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='wo')),
        trg_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='sgt')),
        trg_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='cpl')),
        trg_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='lcpl')),
        trg_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='snk')),
        trg_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='clk')),
        trg_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='tailor')),
        trg_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='e_br')),
        trg_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='ck_mm')),
        trg_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='carp')),
        trg_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='rco')),
        trg_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='nc_e')),
        trg_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='nc_u')),
        trg_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='att')),
        trg_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg')),
        #cdr
        cdr_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr')),
        cdr_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='mwo')),
        cdr_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='smo')),
        cdr_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='wo')),
        cdr_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='sgt')),
        cdr_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='cpl')),
        cdr_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='lcpl')),
        cdr_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='snk')),
        cdr_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='clk')),
        cdr_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='tailor')),
        cdr_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='e_br')),
        cdr_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='ck_mm')),
        cdr_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='carp')),
        cdr_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='rco')),
        cdr_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='nc_e')),
        cdr_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='nc_u')),
        cdr_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='att')),
        cdr_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr')),
        #cmh
        cmh_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr')),
        cmh_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='mwo')),
        cmh_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='smo')),
        cmh_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='wo')),
        cmh_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='sgt')),
        cmh_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='cpl')),
        cmh_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='lcpl')),
        cmh_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='snk')),
        cmh_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='clk')),
        cmh_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='tailor')),
        cmh_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='e_br')),
        cmh_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='ck_mm')),
        cmh_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='carp')),
        cmh_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='rco')),
        cmh_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='nc_e')),
        cmh_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='nc_u')),
        cmh_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='att')),
        cmh_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh')),
        #stmk
        stmk_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr')),
        stmk_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='mwo')),
        stmk_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='smo')),
        stmk_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='wo')),
        stmk_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='sgt')),
        stmk_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='cpl')),
        stmk_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='lcpl')),
        stmk_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='snk')),
        stmk_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='clk')),
        stmk_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='tailor')),
        stmk_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='e_br')),
        stmk_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='ck_mm')),
        stmk_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='carp')),
        stmk_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='rco')),
        stmk_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='nc_e')),
        stmk_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='nc_u')),
        stmk_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='att')),
        stmk_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk')),
        #line_sick
        line_sick_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr')),
        line_sick_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='mwo')),
        line_sick_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='smo')),
        line_sick_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='wo')),
        line_sick_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='sgt')),
        line_sick_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='cpl')),
        line_sick_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='lcpl')),
        line_sick_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='snk')),
        line_sick_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='clk')),
        line_sick_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='tailor')),
        line_sick_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='e_br')),
        line_sick_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='ck_mm')),
        line_sick_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='carp')),
        line_sick_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='rco')),
        line_sick_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='nc_e')),
        line_sick_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='nc_u')),
        line_sick_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='att')),
        line_sick_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick')),
        #misc
        misc_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr')),
        misc_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='mwo')),
        misc_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='smo')),
        misc_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='wo')),
        misc_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='sgt')),
        misc_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='cpl')),
        misc_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='lcpl')),
        misc_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='snk')),
        misc_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='clk')),
        misc_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='tailor')),
        misc_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='e_br')),
        misc_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='ck_mm')),
        misc_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='carp')),
        misc_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='rco')),
        misc_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='nc_e')),
        misc_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='nc_u')),
        misc_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='att')),
        misc_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc')),
        #total leave
        total_leave_offr = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr')),
        total_leave_mwo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='mwo')),
        total_leave_smo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='smo')),
        total_leave_wo = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='wo')),
        total_leave_sgt = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='sgt')),
        total_leave_cpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='cpl')),
        total_leave_lcpl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='lcpl')),
        total_leave_snk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='snk')),
        total_leave_clk = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='clk')),
        total_leave_tailor = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='tailor')),
        total_leave_e_br = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='e_br')),
        total_leave_ck_mm = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='ck_mm')),
        total_leave_carp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='carp')),
        total_leave_rco = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='rco')),
        total_leave_nc_e = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='nc_e')),
        total_leave_nc_u = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='nc_u')),
        total_leave_att = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='att')),
        total_leave_total = Count('attendancemember__leave', filter=Q(attendancemember__status=False)),
        
        # for offr
        # absent
        g_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        lg_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        mg_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        bg_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        c_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        lc_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        m_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        cp_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        l_absent =Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        sl_absent=Count('attendancemember', filter=Q(attendancemember__status=False, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # present
        g_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        lg_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        mg_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        bg_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        c_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        lc_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        m_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        cp_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        l_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        sl_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        #ops depl
        ops_depl_g_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=1)),
        ops_depl_lg_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=2)),
        ops_depl_mg_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=3)),
        ops_depl_bg_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=4)),
        ops_depl_c_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=5)),
        ops_depl_lc_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=6)),
        ops_depl_m_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=7)),
        ops_depl_cp_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=8)),
        ops_depl_l_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=9)),
        ops_depl_sl_present=Count('attendancemember', filter=Q(attendancemember__status=True, attendancemember__member__member_type__name='offr', attendancemember__member__ops_depl=True, attendancemember__member__rank__id=10)),
        #p_leave
        p_leave_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        p_leave_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        p_leave_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        p_leave_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        p_leave_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        p_leave_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        p_leave_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        p_leave_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        p_leave_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        p_leave_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='p_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # c_leave
        c_leave_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        c_leave_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        c_leave_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        c_leave_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        c_leave_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        c_leave_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        c_leave_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        c_leave_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        c_leave_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        c_leave_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='c_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # r_leave
        r_leave_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        r_leave_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        r_leave_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        r_leave_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        r_leave_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        r_leave_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        r_leave_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        r_leave_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        r_leave_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        r_leave_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='r_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # m_leave
        m_leave_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        m_leave_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        m_leave_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        m_leave_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        m_leave_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        m_leave_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        m_leave_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        m_leave_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        m_leave_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        m_leave_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='m_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # j_leave
        j_leave_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        j_leave_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        j_leave_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        j_leave_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        j_leave_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        j_leave_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        j_leave_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        j_leave_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        j_leave_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        j_leave_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='j_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # w_leave
        w_leave_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        w_leave_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        w_leave_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        w_leave_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        w_leave_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        w_leave_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        w_leave_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        w_leave_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        w_leave_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        w_leave_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='w_leave', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # osl
        osl_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        osl_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        osl_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        osl_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        osl_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        osl_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        osl_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        osl_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        osl_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        osl_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='osl', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # awol
        awol_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        awol_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        awol_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        awol_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        awol_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        awol_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        awol_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        awol_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        awol_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        awol_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='awol', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # course
        course_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        course_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        course_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        course_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        course_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        course_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        course_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        course_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        course_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        course_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='course', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # trg
        trg_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        trg_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        trg_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        trg_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        trg_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        trg_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        trg_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        trg_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        trg_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        trg_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='trg', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # cdr
        cdr_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        cdr_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        cdr_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        cdr_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        cdr_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        cdr_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        cdr_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        cdr_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        cdr_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        cdr_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cdr', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # cmh
        cmh_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        cmh_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        cmh_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        cmh_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        cmh_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        cmh_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        cmh_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        cmh_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        cmh_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        cmh_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='cmh', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # stmk
        stmk_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        stmk_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        stmk_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        stmk_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        stmk_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        stmk_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        stmk_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        stmk_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        stmk_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        stmk_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='stmk', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # line_sick
        line_sick_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        line_sick_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        line_sick_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        line_sick_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        line_sick_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        line_sick_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        line_sick_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        line_sick_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        line_sick_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        line_sick_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='line_sick', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # misc
        misc_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        misc_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        misc_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        misc_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        misc_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        misc_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        misc_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        misc_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        misc_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        misc_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__leave__leave_type__name='misc', attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),
        # total_leave
        total_leave_g = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=1)),
        total_leave_lg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=2)),
        total_leave_mg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=3)),
        total_leave_bg = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=4)),
        total_leave_c = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=5)),
        total_leave_lc = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=6)),
        total_leave_m = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=7)),
        total_leave_cp = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=8)),
        total_leave_l = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=9)),
        total_leave_sl = Count('attendancemember__leave', filter=Q(attendancemember__status=False,attendancemember__member__member_type__name='offr', attendancemember__member__rank__id=10)),

    )).first()
    toe_total_auth = (
    company.offr + company.mwo + company.smo + company.wo +
    company.sgt + company.cpl + company.lcpl + company.snk +
    company.clk + company.tailor + company.e_br + company.ck_mm + company.carp + company.rco +
    company.nc_e + company.nc_u + company.att
    )
    ere_total_auth=(
        company.ere_offr + company.ere_mwo + company.ere_smo + company.ere_wo +
        company.ere_sgt + company.ere_cpl + company.ere_lcpl + company.ere_snk +
        company.ere_clk + company.ere_tailor + company.ere_e_br + company.ere_ck_mm + company.ere_carp + company.ere_rco +
        company.ere_nc_e + company.ere_nc_u + company.ere_att
    )
    offr_auth = company.offr + company.ere_offr
    mwo_auth = company.mwo + company.ere_mwo
    smo_auth = company.smo + company.ere_smo
    wo_auth = company.wo + company.ere_wo
    sgt_auth = company.sgt + company.ere_sgt
    cpl_auth = company.cpl + company.ere_cpl
    lcpl_auth = company.lcpl + company.ere_lcpl
    snk_auth = company.snk + company.ere_snk
    clk_auth = company.clk + company.ere_clk
    tailor_auth = company.tailor + company.ere_tailor
    e_br_auth = company.e_br + company.ere_e_br
    ck_mm_auth = company.ck_mm + company.ere_ck_mm
    carp_auth = company.carp + company.ere_carp
    rco_auth = company.rco + company.ere_rco
    nc_e_auth = company.nc_e + company.ere_nc_e
    nc_u_auth = company.nc_u + company.ere_nc_u
    att_auth = company.att + company.ere_att
    total_auth = toe_total_auth + ere_total_auth
    
    # posted data
    members = Member.objects.filter(Q(company=company)|Q(p_company=company) ,active=True).order_by('id')
    offr_posted = members.filter(member_type__name='offr').count()
    mwo_posted = members.filter(member_type__name='mwo').count()
    smo_posted = members.filter(member_type__name='smo').count()
    wo_posted = members.filter(member_type__name='wo').count()
    sgt_posted = members.filter(member_type__name='sgt').count()
    cpl_posted = members.filter(member_type__name='cpl').count()
    lcpl_posted = members.filter(member_type__name='lcpl').count()
    snk_posted = members.filter(member_type__name='snk').count()
    clk_posted = members.filter(member_type__name='clk').count()
    tailor_posted = members.filter(member_type__name='tailor').count()
    e_br_posted = members.filter(member_type__name='e_br').count()
    ck_mm_posted = members.filter(member_type__name='ck_mm').count()
    carp_posted = members.filter(member_type__name='carp').count()
    rco_posted = members.filter(member_type__name='rco').count()
    nc_e_posted = members.filter(member_type__name='nc_e').count()
    nc_u_posted = members.filter(member_type__name='nc_u').count()
    att_posted = members.filter(member_type__name='att').count()
    total_posted = members.count()
    # raw members
    raw_members = Member.objects.filter(company=company ,active=True).order_by('id')
    raw_offr_posted =raw_members.filter(member_type__name='offr').count()
    raw_mwo_posted =raw_members.filter(member_type__name='mwo').count()
    raw_smo_posted =raw_members.filter(member_type__name='smo').count()
    raw_wo_posted =raw_members.filter(member_type__name='wo').count()
    raw_sgt_posted =raw_members.filter(member_type__name='sgt').count()
    raw_cpl_posted =raw_members.filter(member_type__name='cpl').count()
    raw_lcpl_posted =raw_members.filter(member_type__name='lcpl').count()
    raw_snk_posted =raw_members.filter(member_type__name='snk').count()
    raw_clk_posted =raw_members.filter(member_type__name='clk').count()
    raw_tailor_posted =raw_members.filter(member_type__name='tailor').count()
    raw_e_br_posted =raw_members.filter(member_type__name='e_br').count()
    raw_ck_mm_posted =raw_members.filter(member_type__name='ck_mm').count()
    raw_carp_posted =raw_members.filter(member_type__name='carp').count()
    raw_rco_posted =raw_members.filter(member_type__name='rco').count()
    raw_nc_e_posted =raw_members.filter(member_type__name='nc_e').count()
    raw_nc_u_posted =raw_members.filter(member_type__name='nc_u').count()
    raw_att_posted =raw_members.filter(member_type__name='att').count()
    raw_total_posted =raw_members.count()
    # out of unit emp
    out_of_unit_emp = OutOfUnitEmp.objects.filter(Q(member__company=company)|Q(member__p_company=company), status=True, member__active=True).exclude(member__t_company=company).order_by('id')
    #ere
    ere_offr = out_of_unit_emp.filter(type_name='ere',member__member_type__name='offr').count()
    ere_mwo = out_of_unit_emp.filter(type_name='ere',member__member_type__name='mwo').count()
    ere_smo = out_of_unit_emp.filter(type_name='ere',member__member_type__name='smo').count()
    ere_wo = out_of_unit_emp.filter(type_name='ere',member__member_type__name='wo').count()
    ere_sgt = out_of_unit_emp.filter(type_name='ere',member__member_type__name='sgt').count()
    ere_cpl = out_of_unit_emp.filter(type_name='ere',member__member_type__name='cpl').count()
    ere_lcpl = out_of_unit_emp.filter(type_name='ere',member__member_type__name='lcpl').count()
    ere_snk = out_of_unit_emp.filter(type_name='ere',member__member_type__name='snk').count()
    ere_clk = out_of_unit_emp.filter(type_name='ere',member__member_type__name='clk').count()
    ere_tailor = out_of_unit_emp.filter(type_name='ere',member__member_type__name='tailor').count()
    ere_e_br = out_of_unit_emp.filter(type_name='ere',member__member_type__name='e_br').count()
    ere_ck_mm = out_of_unit_emp.filter(type_name='ere',member__member_type__name='ck_mm').count()
    ere_carp = out_of_unit_emp.filter(type_name='ere',member__member_type__name='carp').count()
    ere_rco = out_of_unit_emp.filter(type_name='ere',member__member_type__name='rco').count()
    ere_nc_e = out_of_unit_emp.filter(type_name='ere',member__member_type__name='nc_e').count()
    ere_nc_u = out_of_unit_emp.filter(type_name='ere',member__member_type__name='nc_u').count()
    ere_att = out_of_unit_emp.filter(type_name='ere',member__member_type__name='att').count()
    ere_total = out_of_unit_emp.filter(type_name='ere').count()
    # att
    att_offr = out_of_unit_emp.filter(type_name='att',member__member_type__name='offr').count()
    att_mwo = out_of_unit_emp.filter(type_name='att',member__member_type__name='mwo').count()
    att_smo = out_of_unit_emp.filter(type_name='att',member__member_type__name='smo').count()
    att_wo = out_of_unit_emp.filter(type_name='att',member__member_type__name='wo').count()
    att_sgt = out_of_unit_emp.filter(type_name='att',member__member_type__name='sgt').count()
    att_cpl = out_of_unit_emp.filter(type_name='att',member__member_type__name='cpl').count()
    att_lcpl = out_of_unit_emp.filter(type_name='att',member__member_type__name='lcpl').count()
    att_snk = out_of_unit_emp.filter(type_name='att',member__member_type__name='snk').count()
    att_clk = out_of_unit_emp.filter(type_name='att',member__member_type__name='clk').count()
    att_tailor = out_of_unit_emp.filter(type_name='att',member__member_type__name='tailor').count()
    att_e_br = out_of_unit_emp.filter(type_name='att',member__member_type__name='e_br').count()
    att_ck_mm = out_of_unit_emp.filter(type_name='att',member__member_type__name='ck_mm').count()
    att_carp = out_of_unit_emp.filter(type_name='att',member__member_type__name='carp').count()
    att_rco = out_of_unit_emp.filter(type_name='att',member__member_type__name='rco').count()
    att_nc_e = out_of_unit_emp.filter(type_name='att',member__member_type__name='nc_e').count()
    att_nc_u = out_of_unit_emp.filter(type_name='att',member__member_type__name='nc_u').count()
    att_att = out_of_unit_emp.filter(type_name='att',member__member_type__name='att').count()
    att_total = out_of_unit_emp.filter(type_name='att').count()
    # t_duty
    t_duty_offr = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='offr').count()
    t_duty_mwo = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='mwo').count()
    t_duty_smo = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='smo').count()
    t_duty_wo = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='wo').count()
    t_duty_sgt = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='sgt').count()
    t_duty_cpl = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='cpl').count()
    t_duty_lcpl = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='lcpl').count()
    t_duty_snk = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='snk').count()
    t_duty_clk = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='clk').count()
    t_duty_tailor = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='tailor').count()
    t_duty_e_br = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='e_br').count()
    t_duty_ck_mm = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='ck_mm').count()
    t_duty_carp = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='carp').count()
    t_duty_rco = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='rco').count()
    t_duty_nc_e = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='nc_e').count()
    t_duty_nc_u = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='nc_u').count()
    t_duty_att = out_of_unit_emp.filter(type_name='t_duty',member__member_type__name='att').count()
    t_duty_total = out_of_unit_emp.filter(type_name='t_duty').count()
    # msn
    msn_offr = out_of_unit_emp.filter(type_name='msn',member__member_type__name='offr').count()
    msn_mwo = out_of_unit_emp.filter(type_name='msn',member__member_type__name='mwo').count()
    msn_smo = out_of_unit_emp.filter(type_name='msn',member__member_type__name='smo').count()
    msn_wo = out_of_unit_emp.filter(type_name='msn',member__member_type__name='wo').count()
    msn_sgt = out_of_unit_emp.filter(type_name='msn',member__member_type__name='sgt').count()
    msn_cpl = out_of_unit_emp.filter(type_name='msn',member__member_type__name='cpl').count()
    msn_lcpl = out_of_unit_emp.filter(type_name='msn',member__member_type__name='lcpl').count()
    msn_snk = out_of_unit_emp.filter(type_name='msn',member__member_type__name='snk').count()
    msn_clk = out_of_unit_emp.filter(type_name='msn',member__member_type__name='clk').count()
    msn_tailor = out_of_unit_emp.filter(type_name='msn',member__member_type__name='tailor').count()
    msn_e_br = out_of_unit_emp.filter(type_name='msn',member__member_type__name='e_br').count()
    msn_ck_mm = out_of_unit_emp.filter(type_name='msn',member__member_type__name='ck_mm').count()
    msn_carp = out_of_unit_emp.filter(type_name='msn',member__member_type__name='carp').count()
    msn_rco = out_of_unit_emp.filter(type_name='msn',member__member_type__name='rco').count()
    msn_nc_e = out_of_unit_emp.filter(type_name='msn',member__member_type__name='nc_e').count()
    msn_nc_u = out_of_unit_emp.filter(type_name='msn',member__member_type__name='nc_u').count()
    msn_att = out_of_unit_emp.filter(type_name='msn',member__member_type__name='att').count()
    msn_total = out_of_unit_emp.filter(type_name='msn').count()
    # okp
    okp_offr = out_of_unit_emp.filter(type_name='okp',member__member_type__name='offr').count()
    okp_mwo = out_of_unit_emp.filter(type_name='okp',member__member_type__name='mwo').count()
    okp_smo = out_of_unit_emp.filter(type_name='okp',member__member_type__name='smo').count()
    okp_wo = out_of_unit_emp.filter(type_name='okp',member__member_type__name='wo').count()
    okp_sgt = out_of_unit_emp.filter(type_name='okp',member__member_type__name='sgt').count()
    okp_cpl = out_of_unit_emp.filter(type_name='okp',member__member_type__name='cpl').count()
    okp_lcpl = out_of_unit_emp.filter(type_name='okp',member__member_type__name='lcpl').count()
    okp_snk = out_of_unit_emp.filter(type_name='okp',member__member_type__name='snk').count()
    okp_clk = out_of_unit_emp.filter(type_name='okp',member__member_type__name='clk').count()
    okp_tailor = out_of_unit_emp.filter(type_name='okp',member__member_type__name='tailor').count()
    okp_e_br = out_of_unit_emp.filter(type_name='okp',member__member_type__name='e_br').count()
    okp_ck_mm = out_of_unit_emp.filter(type_name='okp',member__member_type__name='ck_mm').count()
    okp_carp = out_of_unit_emp.filter(type_name='okp',member__member_type__name='carp').count()
    okp_rco = out_of_unit_emp.filter(type_name='okp',member__member_type__name='rco').count()
    okp_nc_e = out_of_unit_emp.filter(type_name='okp',member__member_type__name='nc_e').count()
    okp_nc_u = out_of_unit_emp.filter(type_name='okp',member__member_type__name='nc_u').count()
    okp_att = out_of_unit_emp.filter(type_name='okp',member__member_type__name='att').count()
    okp_total = out_of_unit_emp.filter(type_name='okp').count()
    # demov
    demov_offr = out_of_unit_emp.filter(type_name='demov',member__member_type__name='offr').count()
    demov_mwo = out_of_unit_emp.filter(type_name='demov',member__member_type__name='mwo').count()
    demov_smo = out_of_unit_emp.filter(type_name='demov',member__member_type__name='smo').count()
    demov_wo = out_of_unit_emp.filter(type_name='demov',member__member_type__name='wo').count()
    demov_sgt = out_of_unit_emp.filter(type_name='demov',member__member_type__name='sgt').count()
    demov_cpl = out_of_unit_emp.filter(type_name='demov',member__member_type__name='cpl').count()
    demov_lcpl = out_of_unit_emp.filter(type_name='demov',member__member_type__name='lcpl').count()
    demov_snk = out_of_unit_emp.filter(type_name='demov',member__member_type__name='snk').count()
    demov_clk = out_of_unit_emp.filter(type_name='demov',member__member_type__name='clk').count()
    demov_tailor = out_of_unit_emp.filter(type_name='demov',member__member_type__name='tailor').count()
    demov_e_br = out_of_unit_emp.filter(type_name='demov',member__member_type__name='e_br').count()
    demov_ck_mm = out_of_unit_emp.filter(type_name='demov',member__member_type__name='ck_mm').count()
    demov_carp = out_of_unit_emp.filter(type_name='demov',member__member_type__name='carp').count()
    demov_rco = out_of_unit_emp.filter(type_name='demov',member__member_type__name='rco').count()
    demov_nc_e = out_of_unit_emp.filter(type_name='demov',member__member_type__name='nc_e').count()
    demov_nc_u = out_of_unit_emp.filter(type_name='demov',member__member_type__name='nc_u').count()
    demov_att = out_of_unit_emp.filter(type_name='demov',member__member_type__name='att').count()
    demov_total = out_of_unit_emp.filter(type_name='demov').count()
    
    # out of unit emp
    out_of_unit_emp_offr = out_of_unit_emp.filter(member__member_type__name='offr').count()
    out_of_unit_emp_mwo = out_of_unit_emp.filter(member__member_type__name='mwo').count()
    out_of_unit_emp_smo = out_of_unit_emp.filter(member__member_type__name='smo').count()
    out_of_unit_emp_wo = out_of_unit_emp.filter(member__member_type__name='wo').count()
    out_of_unit_emp_sgt = out_of_unit_emp.filter(member__member_type__name='sgt').count()
    out_of_unit_emp_cpl = out_of_unit_emp.filter(member__member_type__name='cpl').count()
    out_of_unit_emp_lcpl = out_of_unit_emp.filter(member__member_type__name='lcpl').count()
    out_of_unit_emp_snk = out_of_unit_emp.filter(member__member_type__name='snk').count()
    out_of_unit_emp_clk = out_of_unit_emp.filter(member__member_type__name='clk').count()
    out_of_unit_emp_tailor = out_of_unit_emp.filter(member__member_type__name='tailor').count()
    out_of_unit_emp_e_br = out_of_unit_emp.filter(member__member_type__name='e_br').count()
    out_of_unit_emp_ck_mm = out_of_unit_emp.filter(member__member_type__name='ck_mm').count()
    out_of_unit_emp_carp = out_of_unit_emp.filter(member__member_type__name='carp').count()
    out_of_unit_emp_rco = out_of_unit_emp.filter(member__member_type__name='rco').count()
    out_of_unit_emp_nc_e = out_of_unit_emp.filter(member__member_type__name='nc_e').count()
    out_of_unit_emp_nc_u = out_of_unit_emp.filter(member__member_type__name='nc_u').count()
    out_of_unit_emp_att = out_of_unit_emp.filter(member__member_type__name='att').count()
    out_of_unit_emp_total = out_of_unit_emp.count()
    
    #TODO: for offr
    # offr auth
    g_auth = company.g + company.ere_g
    lg_auth = company.lg + company.ere_lg
    mg_auth = company.mg + company.ere_mg
    bg_auth = company.bg + company.ere_bg
    c_auth = company.c + company.ere_c
    lc_auth = company.lc + company.ere_lc
    m_auth = company.m + company.ere_m
    cp_auth = company.cp + company.ere_cp
    l_auth = company.l + company.ere_l
    sl_auth = company.sl + company.ere_sl
    # posted data
    offr_members = Member.objects.filter(Q(company=company)|Q(p_company=company) ,active=True,member_type__name='offr').order_by('id')
    g_posted = offr_members.filter(rank__id=1).count()
    lg_posted = offr_members.filter(rank__id=2).count()
    mg_posted = offr_members.filter(rank__id=3).count()
    bg_posted = offr_members.filter(rank__id=4).count()
    c_posted = offr_members.filter(rank__id=5).count()
    lc_posted = offr_members.filter(rank__id=6).count()
    m_posted = offr_members.filter(rank__id=7).count()
    cp_posted = offr_members.filter(rank__id=8).count()
    l_posted = offr_members.filter(rank__id=9).count()
    sl_posted = offr_members.filter(rank__id=10).count()
    # raw_offr_posted
    raw_offr_members = Member.objects.filter(company=company ,active=True,member_type__name='offr').order_by('id')
    raw_g_posted = raw_offr_members.filter(rank__id=1).count()
    raw_lg_posted = raw_offr_members.filter(rank__id=2).count()
    raw_mg_posted = raw_offr_members.filter(rank__id=3).count()
    raw_bg_posted = raw_offr_members.filter(rank__id=4).count()
    raw_c_posted = raw_offr_members.filter(rank__id=5).count()
    raw_lc_posted = raw_offr_members.filter(rank__id=6).count()
    raw_m_posted = raw_offr_members.filter(rank__id=7).count()
    raw_cp_posted = raw_offr_members.filter(rank__id=8).count()
    raw_l_posted = raw_offr_members.filter(rank__id=9).count()
    raw_sl_posted = raw_offr_members.filter(rank__id=10).count()
    # offr out of unit emp
    out_of_unit_emp = OutOfUnitEmp.objects.filter(Q(member__company=company)|Q(member__p_company=company), status=True,member__member_type__name='offr').exclude(member__t_company=company).order_by('id')
    #offr ere
    ere_g = out_of_unit_emp.filter(type_name='ere',member__rank__id=1).count()
    ere_lg = out_of_unit_emp.filter(type_name='ere',member__rank__id=2).count()
    ere_mg = out_of_unit_emp.filter(type_name='ere',member__rank__id=3).count()
    ere_bg = out_of_unit_emp.filter(type_name='ere',member__rank__id=4).count()
    ere_c = out_of_unit_emp.filter(type_name='ere',member__rank__id=5).count()
    ere_lc = out_of_unit_emp.filter(type_name='ere',member__rank__id=6).count()
    ere_m = out_of_unit_emp.filter(type_name='ere',member__rank__id=7).count()
    ere_cp = out_of_unit_emp.filter(type_name='ere',member__rank__id=8).count()
    ere_l = out_of_unit_emp.filter(type_name='ere',member__rank__id=9).count()
    ere_sl = out_of_unit_emp.filter(type_name='ere',member__rank__id=10).count()
    #offr att
    att_g = out_of_unit_emp.filter(type_name='att',member__rank__id=1).count()
    att_lg = out_of_unit_emp.filter(type_name='att',member__rank__id=2).count()
    att_mg = out_of_unit_emp.filter(type_name='att',member__rank__id=3).count()
    att_bg = out_of_unit_emp.filter(type_name='att',member__rank__id=4).count()
    att_c = out_of_unit_emp.filter(type_name='att',member__rank__id=5).count()
    att_lc = out_of_unit_emp.filter(type_name='att',member__rank__id=6).count()
    att_m = out_of_unit_emp.filter(type_name='att',member__rank__id=7).count()
    att_cp = out_of_unit_emp.filter(type_name='att',member__rank__id=8).count()
    att_l = out_of_unit_emp.filter(type_name='att',member__rank__id=9).count()
    att_sl = out_of_unit_emp.filter(type_name='att',member__rank__id=10).count()
    #offr t_duty
    t_duty_g = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=1).count()
    t_duty_lg = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=2).count()
    t_duty_mg = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=3).count()
    t_duty_bg = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=4).count()
    t_duty_c = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=5).count()
    t_duty_lc = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=6).count()
    t_duty_m = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=7).count()
    t_duty_cp = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=8).count()
    t_duty_l = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=9).count()
    t_duty_sl = out_of_unit_emp.filter(type_name='t_duty',member__rank__id=10).count()
    #offr msn
    msn_g = out_of_unit_emp.filter(type_name='msn',member__rank__id=1).count()
    msn_lg = out_of_unit_emp.filter(type_name='msn',member__rank__id=2).count()
    msn_mg = out_of_unit_emp.filter(type_name='msn',member__rank__id=3).count()
    msn_bg = out_of_unit_emp.filter(type_name='msn',member__rank__id=4).count()
    msn_c = out_of_unit_emp.filter(type_name='msn',member__rank__id=5).count()
    msn_lc = out_of_unit_emp.filter(type_name='msn',member__rank__id=6).count()
    msn_m = out_of_unit_emp.filter(type_name='msn',member__rank__id=7).count()
    msn_cp = out_of_unit_emp.filter(type_name='msn',member__rank__id=8).count()
    msn_l = out_of_unit_emp.filter(type_name='msn',member__rank__id=9).count()
    msn_sl = out_of_unit_emp.filter(type_name='msn',member__rank__id=10).count()
    #offr okp
    okp_g = out_of_unit_emp.filter(type_name='okp',member__rank__id=1).count()
    okp_lg = out_of_unit_emp.filter(type_name='okp',member__rank__id=2).count()
    okp_mg = out_of_unit_emp.filter(type_name='okp',member__rank__id=3).count()
    okp_bg = out_of_unit_emp.filter(type_name='okp',member__rank__id=4).count()
    okp_c = out_of_unit_emp.filter(type_name='okp',member__rank__id=5).count()
    okp_lc = out_of_unit_emp.filter(type_name='okp',member__rank__id=6).count()
    okp_m = out_of_unit_emp.filter(type_name='okp',member__rank__id=7).count()
    okp_cp = out_of_unit_emp.filter(type_name='okp',member__rank__id=8).count()
    okp_l = out_of_unit_emp.filter(type_name='okp',member__rank__id=9).count()
    okp_sl = out_of_unit_emp.filter(type_name='okp',member__rank__id=10).count()
    #offr demov
    demov_g = out_of_unit_emp.filter(type_name='demov',member__rank__id=1).count()
    demov_lg = out_of_unit_emp.filter(type_name='demov',member__rank__id=2).count()
    demov_mg = out_of_unit_emp.filter(type_name='demov',member__rank__id=3).count()
    demov_bg = out_of_unit_emp.filter(type_name='demov',member__rank__id=4).count()
    demov_c = out_of_unit_emp.filter(type_name='demov',member__rank__id=5).count()
    demov_lc = out_of_unit_emp.filter(type_name='demov',member__rank__id=6).count()
    demov_m = out_of_unit_emp.filter(type_name='demov',member__rank__id=7).count()
    demov_cp = out_of_unit_emp.filter(type_name='demov',member__rank__id=8).count()
    demov_l = out_of_unit_emp.filter(type_name='demov',member__rank__id=9).count()
    demov_sl = out_of_unit_emp.filter(type_name='demov',member__rank__id=10).count()
    #offr out_of_unit_emp
    out_of_unit_emp_g = out_of_unit_emp.filter(member__rank__id=1).count()
    out_of_unit_emp_lg = out_of_unit_emp.filter(member__rank__id=2).count()
    out_of_unit_emp_mg = out_of_unit_emp.filter(member__rank__id=3).count()
    out_of_unit_emp_bg = out_of_unit_emp.filter(member__rank__id=4).count()
    out_of_unit_emp_c = out_of_unit_emp.filter(member__rank__id=5).count()
    out_of_unit_emp_lc = out_of_unit_emp.filter(member__rank__id=6).count()
    out_of_unit_emp_m = out_of_unit_emp.filter(member__rank__id=7).count()
    out_of_unit_emp_cp = out_of_unit_emp.filter(member__rank__id=8).count()
    out_of_unit_emp_l = out_of_unit_emp.filter(member__rank__id=9).count()
    out_of_unit_emp_sl = out_of_unit_emp.filter(member__rank__id=10).count()
    
    
    
    
    
    
    

    attendance_summary =AttendanceSummary.objects.create(
        attendance_summary_cart = attendance_summary_cart,
        company=company,
        date=date,
        # toe auth
        toe_offr_auth=company.offr,
        toe_mwo_auth=company.mwo,
        toe_smo_auth=company.smo,
        toe_wo_auth=company.wo,
        toe_sgt_auth=company.sgt,
        toe_cpl_auth=company.cpl,
        toe_lcpl_auth=company.lcpl,
        toe_snk_auth=company.snk,
        toe_clk_auth=company.clk,
        toe_tailor_auth=company.tailor,
        toe_e_br_auth=company.e_br,
        toe_ck_mm_auth=company.ck_mm,
        toe_carp_auth=company.carp,
        toe_rco_auth=company.rco,
        toe_nc_e_auth=company.nc_e,
        toe_nc_u_auth=company.nc_u,
        toe_att_auth=company.att,
        toe_total_auth=toe_total_auth,
        # ere auth
        ere_offr_auth=company.ere_offr,
        ere_mwo_auth=company.ere_mwo,
        ere_smo_auth=company.ere_smo,
        ere_wo_auth=company.ere_wo,
        ere_sgt_auth=company.ere_sgt,
        ere_cpl_auth=company.ere_cpl,
        ere_lcpl_auth=company.ere_lcpl,
        ere_snk_auth=company.ere_snk,
        ere_clk_auth=company.ere_clk,
        ere_tailor_auth=company.ere_tailor,
        ere_e_br_auth=company.ere_e_br,
        ere_ck_mm_auth=company.ere_ck_mm,
        ere_carp_auth=company.ere_carp,
        ere_rco_auth=company.ere_rco,
        ere_nc_e_auth=company.ere_nc_e,
        ere_nc_u_auth=company.ere_nc_u,
        ere_att_auth=company.ere_att,
        ere_total_auth=ere_total_auth,
        #auth
        offr_auth=offr_auth,
        mwo_auth=mwo_auth,
        smo_auth=smo_auth,
        wo_auth=wo_auth,
        sgt_auth=sgt_auth,
        cpl_auth=cpl_auth,
        lcpl_auth=lcpl_auth,
        snk_auth=snk_auth,
        clk_auth=clk_auth,
        tailor_auth=tailor_auth,
        e_br_auth=e_br_auth,
        ck_mm_auth=ck_mm_auth,
        carp_auth=carp_auth,
        rco_auth=rco_auth,
        nc_e_auth=nc_e_auth,
        nc_u_auth=nc_u_auth,
        att_auth=att_auth,
        total_auth=total_auth,

        #posted
        offr_posted=offr_posted,
        mwo_posted=mwo_posted,
        smo_posted=smo_posted,
        wo_posted=wo_posted,
        sgt_posted=sgt_posted,
        cpl_posted=cpl_posted,
        lcpl_posted=lcpl_posted,
        snk_posted=snk_posted,
        clk_posted=clk_posted,
        tailor_posted=tailor_posted,
        e_br_posted=e_br_posted,
        ck_mm_posted=ck_mm_posted,
        carp_posted=carp_posted,
        rco_posted=rco_posted,
        nc_e_posted=nc_e_posted,
        nc_u_posted=nc_u_posted,
        att_posted=att_posted,
        total_posted=total_posted,
        #raw_posted
        raw_offr_posted=raw_offr_posted,
        raw_mwo_posted=raw_mwo_posted,
        raw_smo_posted=raw_smo_posted,
        raw_wo_posted=raw_wo_posted,
        raw_sgt_posted=raw_sgt_posted,
        raw_cpl_posted=raw_cpl_posted,
        raw_lcpl_posted=raw_lcpl_posted,
        raw_snk_posted=raw_snk_posted,
        raw_clk_posted=raw_clk_posted,
        raw_tailor_posted=raw_tailor_posted,
        raw_e_br_posted=raw_e_br_posted,
        raw_ck_mm_posted=raw_ck_mm_posted,
        raw_carp_posted=raw_carp_posted,
        raw_rco_posted=raw_rco_posted,
        raw_nc_e_posted=raw_nc_e_posted,
        raw_nc_u_posted=raw_nc_u_posted,
        raw_att_posted=raw_att_posted,
        raw_total_posted=raw_total_posted,
        #def
        offr_def = offr_auth - offr_posted,
        mwo_def = mwo_auth - mwo_posted,
        smo_def = smo_auth - smo_posted,
        wo_def = wo_auth - wo_posted,
        sgt_def = sgt_auth - sgt_posted,
        cpl_def = cpl_auth - cpl_posted,
        lcpl_def = lcpl_auth - lcpl_posted,
        snk_def = snk_auth - snk_posted,
        clk_def = clk_auth - clk_posted,
        tailor_def = tailor_auth - tailor_posted,
        e_br_def = e_br_auth - e_br_posted,
        ck_mm_def = ck_mm_auth - ck_mm_posted,
        carp_def = carp_auth - carp_posted,
        rco_def = rco_auth - rco_posted,
        nc_e_def = nc_e_auth - nc_e_posted,
        nc_u_def = nc_u_auth - nc_u_posted,
        att_def = att_auth - att_posted,
        total_def = total_auth - total_posted,

        #Held
        offr_held=offr_posted - out_of_unit_emp_offr,
        mwo_held=mwo_posted - out_of_unit_emp_mwo,
        smo_held=smo_posted - out_of_unit_emp_smo,
        wo_held=wo_posted - out_of_unit_emp_wo,
        sgt_held=sgt_posted - out_of_unit_emp_sgt,
        cpl_held=cpl_posted - out_of_unit_emp_cpl,
        lcpl_held=lcpl_posted - out_of_unit_emp_lcpl,
        snk_held=snk_posted - out_of_unit_emp_snk,
        clk_held=clk_posted - out_of_unit_emp_clk,
        tailor_held=tailor_posted - out_of_unit_emp_tailor,
        e_br_held=e_br_posted - out_of_unit_emp_e_br,
        ck_mm_held=ck_mm_posted - out_of_unit_emp_ck_mm,
        carp_held=carp_posted - out_of_unit_emp_carp,
        rco_held=rco_posted - out_of_unit_emp_rco,
        nc_e_held=nc_e_posted - out_of_unit_emp_nc_e,
        nc_u_held=nc_u_posted - out_of_unit_emp_nc_u,
        att_held=att_posted - out_of_unit_emp_att,
        total_held=total_posted - out_of_unit_emp_total,
        #absent
        offr_absent=data.offr_absent,
        mwo_absent=data.mwo_absent,
        smo_absent=data.smo_absent,
        wo_absent=data.wo_absent,
        sgt_absent=data.sgt_absent,
        cpl_absent=data.cpl_absent,
        lcpl_absent=data.lcpl_absent,
        snk_absent=data.snk_absent,
        clk_absent=data.clk_absent,
        tailor_absent=data.tailor_absent,
        e_br_absent=data.e_br_absent,
        ck_mm_absent=data.ck_mm_absent,
        carp_absent=data.carp_absent,
        rco_absent=data.rco_absent,
        nc_e_absent=data.nc_e_absent,
        nc_u_absent=data.nc_u_absent,
        att_absent=data.att_absent,
        total_absent=data.total_absent,
        #present
        offr_present=data.offr_present,
        mwo_present=data.mwo_present,
        smo_present=data.smo_present,
        wo_present=data.wo_present,
        sgt_present=data.sgt_present,
        cpl_present=data.cpl_present,
        lcpl_present=data.lcpl_present,
        snk_present=data.snk_present,
        clk_present=data.clk_present,
        tailor_present=data.tailor_present,
        e_br_present=data.e_br_present,
        ck_mm_present=data.ck_mm_present,
        carp_present=data.carp_present,
        rco_present=data.rco_present,
        nc_e_present=data.nc_e_present,
        nc_u_present=data.nc_u_present,
        att_present=data.att_present,
        total_present=data.total_present,
        #ops depl present
        ops_depl_offr_present=data.ops_depl_offr_present,
        ops_depl_mwo_present=data.ops_depl_mwo_present,
        ops_depl_smo_present=data.ops_depl_smo_present,
        ops_depl_wo_present=data.ops_depl_wo_present,
        ops_depl_sgt_present=data.ops_depl_sgt_present,
        ops_depl_cpl_present=data.ops_depl_cpl_present,
        ops_depl_lcpl_present=data.ops_depl_lcpl_present,
        ops_depl_snk_present=data.ops_depl_snk_present,
        ops_depl_clk_present=data.ops_depl_clk_present,
        ops_depl_tailor_present=data.ops_depl_tailor_present,
        ops_depl_e_br_present=data.ops_depl_e_br_present,
        ops_depl_ck_mm_present=data.ops_depl_ck_mm_present,
        ops_depl_carp_present=data.ops_depl_carp_present,
        ops_depl_rco_present=data.ops_depl_rco_present,
        ops_depl_nc_e_present=data.ops_depl_nc_e_present,
        ops_depl_nc_u_present=data.ops_depl_nc_u_present,
        ops_depl_att_present=data.ops_depl_att_present,
        ops_depl_total_present=data.ops_depl_total_present,
        #rear
        rear_offr_present=data.offr_present - data.ops_depl_offr_present,
        rear_mwo_present=data.mwo_present - data.ops_depl_mwo_present,
        rear_smo_present=data.smo_present - data.ops_depl_smo_present,
        rear_wo_present=data.wo_present - data.ops_depl_wo_present,
        rear_sgt_present=data.sgt_present - data.ops_depl_sgt_present,
        rear_cpl_present=data.cpl_present - data.ops_depl_cpl_present,
        rear_lcpl_present=data.lcpl_present - data.ops_depl_lcpl_present,
        rear_snk_present=data.snk_present - data.ops_depl_snk_present,
        rear_clk_present=data.clk_present - data.ops_depl_clk_present,
        rear_tailor_present=data.tailor_present - data.ops_depl_tailor_present,
        rear_e_br_present=data.e_br_present - data.ops_depl_e_br_present,
        rear_ck_mm_present=data.ck_mm_present - data.ops_depl_ck_mm_present,
        rear_carp_present=data.carp_present - data.ops_depl_carp_present,
        rear_rco_present=data.rco_present - data.ops_depl_rco_present,
        rear_nc_e_present=data.nc_e_present - data.ops_depl_nc_e_present,
        rear_nc_u_present=data.nc_u_present - data.ops_depl_nc_u_present,
        rear_att_present=data.att_present - data.ops_depl_att_present,
        rear_total_present=data.total_present - data.ops_depl_total_present,
        #p_leave
        p_leave_offr=data.p_leave_offr,
        p_leave_mwo=data.p_leave_mwo,
        p_leave_smo=data.p_leave_smo,
        p_leave_wo=data.p_leave_wo,
        p_leave_sgt=data.p_leave_sgt,
        p_leave_cpl=data.p_leave_cpl,
        p_leave_lcpl=data.p_leave_lcpl,
        p_leave_snk=data.p_leave_snk,
        p_leave_clk=data.p_leave_clk,
        p_leave_tailor=data.p_leave_tailor,
        p_leave_e_br=data.p_leave_e_br,
        p_leave_ck_mm=data.p_leave_ck_mm,
        p_leave_carp=data.p_leave_carp,
        p_leave_rco=data.p_leave_rco,
        p_leave_nc_e=data.p_leave_nc_e,
        p_leave_nc_u=data.p_leave_nc_u,
        p_leave_att=data.p_leave_att,
        p_leave_total=data.p_leave_total,
        #c_leave
        c_leave_offr=data.c_leave_offr,
        c_leave_mwo=data.c_leave_mwo,
        c_leave_smo=data.c_leave_smo,
        c_leave_wo=data.c_leave_wo,
        c_leave_sgt=data.c_leave_sgt,
        c_leave_cpl=data.c_leave_cpl,
        c_leave_lcpl=data.c_leave_lcpl,
        c_leave_snk=data.c_leave_snk,
        c_leave_clk=data.c_leave_clk,
        c_leave_tailor=data.c_leave_tailor,
        c_leave_e_br=data.c_leave_e_br,
        c_leave_ck_mm=data.c_leave_ck_mm,
        c_leave_carp=data.c_leave_carp,
        c_leave_rco=data.c_leave_rco,
        c_leave_nc_e=data.c_leave_nc_e,
        c_leave_nc_u=data.c_leave_nc_u,
        c_leave_att=data.c_leave_att,
        c_leave_total=data.c_leave_total,
        #r_leave
        r_leave_offr=data.r_leave_offr,
        r_leave_mwo=data.r_leave_mwo,
        r_leave_smo=data.r_leave_smo,
        r_leave_wo=data.r_leave_wo,
        r_leave_sgt=data.r_leave_sgt,
        r_leave_cpl=data.r_leave_cpl,
        r_leave_lcpl=data.r_leave_lcpl,
        r_leave_snk=data.r_leave_snk,
        r_leave_clk=data.r_leave_clk,
        r_leave_tailor=data.r_leave_tailor,
        r_leave_e_br=data.r_leave_e_br,
        r_leave_ck_mm=data.r_leave_ck_mm,
        r_leave_carp=data.r_leave_carp,
        r_leave_rco=data.r_leave_rco,
        r_leave_nc_e=data.r_leave_nc_e,
        r_leave_nc_u=data.r_leave_nc_u,
        r_leave_att=data.r_leave_att,
        r_leave_total=data.r_leave_total,
        #m_leave
        m_leave_offr=data.m_leave_offr,
        m_leave_mwo=data.m_leave_mwo,
        m_leave_smo=data.m_leave_smo,
        m_leave_wo=data.m_leave_wo,
        m_leave_sgt=data.m_leave_sgt,
        m_leave_cpl=data.m_leave_cpl,
        m_leave_lcpl=data.m_leave_lcpl,
        m_leave_snk=data.m_leave_snk,
        m_leave_clk=data.m_leave_clk,
        m_leave_tailor=data.m_leave_tailor,
        m_leave_e_br=data.m_leave_e_br,
        m_leave_ck_mm=data.m_leave_ck_mm,
        m_leave_carp=data.m_leave_carp,
        m_leave_rco=data.m_leave_rco,
        m_leave_nc_e=data.m_leave_nc_e,
        m_leave_nc_u=data.m_leave_nc_u,
        m_leave_att=data.m_leave_att,
        m_leave_total=data.m_leave_total,
        #j_leave
        j_leave_offr=data.j_leave_offr,
        j_leave_mwo=data.j_leave_mwo,
        j_leave_smo=data.j_leave_smo,
        j_leave_wo=data.j_leave_wo,
        j_leave_sgt=data.j_leave_sgt,
        j_leave_cpl=data.j_leave_cpl,
        j_leave_lcpl=data.j_leave_lcpl,
        j_leave_snk=data.j_leave_snk,
        j_leave_clk=data.j_leave_clk,
        j_leave_tailor=data.j_leave_tailor,
        j_leave_e_br=data.j_leave_e_br,
        j_leave_ck_mm=data.j_leave_ck_mm,
        j_leave_carp=data.j_leave_carp,
        j_leave_rco=data.j_leave_rco,
        j_leave_nc_e=data.j_leave_nc_e,
        j_leave_nc_u=data.j_leave_nc_u,
        j_leave_att=data.j_leave_att,
        j_leave_total=data.j_leave_total,
        #w_leave
        w_leave_offr=data.w_leave_offr,
        w_leave_mwo=data.w_leave_mwo,
        w_leave_smo=data.w_leave_smo,
        w_leave_wo=data.w_leave_wo,
        w_leave_sgt=data.w_leave_sgt,
        w_leave_cpl=data.w_leave_cpl,
        w_leave_lcpl=data.w_leave_lcpl,
        w_leave_snk=data.w_leave_snk,
        w_leave_clk=data.w_leave_clk,
        w_leave_tailor=data.w_leave_tailor,
        w_leave_e_br=data.w_leave_e_br,
        w_leave_ck_mm=data.w_leave_ck_mm,
        w_leave_carp=data.w_leave_carp,
        w_leave_rco=data.w_leave_rco,
        w_leave_nc_e=data.w_leave_nc_e,
        w_leave_nc_u=data.w_leave_nc_u,
        w_leave_att=data.w_leave_att,
        w_leave_total=data.w_leave_total,
        #osl
        osl_offr=data.osl_offr,
        osl_mwo=data.osl_mwo,
        osl_smo=data.osl_smo,
        osl_wo=data.osl_wo,
        osl_sgt=data.osl_sgt,
        osl_cpl=data.osl_cpl,
        osl_lcpl=data.osl_lcpl,
        osl_snk=data.osl_snk,
        osl_clk=data.osl_clk,
        osl_tailor=data.osl_tailor,
        osl_e_br=data.osl_e_br,
        osl_ck_mm=data.osl_ck_mm,
        osl_carp=data.osl_carp,
        osl_rco=data.osl_rco,
        osl_nc_e=data.osl_nc_e,
        osl_nc_u=data.osl_nc_u,
        osl_att=data.osl_att,
        osl_total=data.osl_total,
        #awol
        awol_offr=data.awol_offr,
        awol_mwo=data.awol_mwo,
        awol_smo=data.awol_smo,
        awol_wo=data.awol_wo,
        awol_sgt=data.awol_sgt,
        awol_cpl=data.awol_cpl,
        awol_lcpl=data.awol_lcpl,
        awol_snk=data.awol_snk,
        awol_clk=data.awol_clk,
        awol_tailor=data.awol_tailor,
        awol_e_br=data.awol_e_br,
        awol_ck_mm=data.awol_ck_mm,
        awol_carp=data.awol_carp,
        awol_rco=data.awol_rco,
        awol_nc_e=data.awol_nc_e,
        awol_nc_u=data.awol_nc_u,
        awol_att=data.awol_att,
        awol_total=data.awol_total,
        #course
        course_offr=data.course_offr,
        course_mwo=data.course_mwo,
        course_smo=data.course_smo,
        course_wo=data.course_wo,
        course_sgt=data.course_sgt,
        course_cpl=data.course_cpl,
        course_lcpl=data.course_lcpl,
        course_snk=data.course_snk,
        course_clk=data.course_clk,
        course_tailor=data.course_tailor,
        course_e_br=data.course_e_br,
        course_ck_mm=data.course_ck_mm,
        course_carp=data.course_carp,
        course_rco=data.course_rco,
        course_nc_e=data.course_nc_e,
        course_nc_u=data.course_nc_u,
        course_att=data.course_att,
        course_total=data.course_total,
        #trg
        trg_offr=data.trg_offr,
        trg_mwo=data.trg_mwo,
        trg_smo=data.trg_smo,
        trg_wo=data.trg_wo,
        trg_sgt=data.trg_sgt,
        trg_cpl=data.trg_cpl,
        trg_lcpl=data.trg_lcpl,
        trg_snk=data.trg_snk,
        trg_clk=data.trg_clk,
        trg_tailor=data.trg_tailor,
        trg_e_br=data.trg_e_br,
        trg_ck_mm=data.trg_ck_mm,
        trg_carp=data.trg_carp,
        trg_rco=data.trg_rco,
        trg_nc_e=data.trg_nc_e,
        trg_nc_u=data.trg_nc_u,
        trg_att=data.trg_att,
        trg_total=data.trg_total,
        #cdr
        cdr_offr=data.cdr_offr,
        cdr_mwo=data.cdr_mwo,
        cdr_smo=data.cdr_smo,
        cdr_wo=data.cdr_wo,
        cdr_sgt=data.cdr_sgt,
        cdr_cpl=data.cdr_cpl,
        cdr_lcpl=data.cdr_lcpl,
        cdr_snk=data.cdr_snk,
        cdr_clk=data.cdr_clk,
        cdr_tailor=data.cdr_tailor,
        cdr_e_br=data.cdr_e_br,
        cdr_ck_mm=data.cdr_ck_mm,
        cdr_carp=data.cdr_carp,
        cdr_rco=data.cdr_rco,
        cdr_nc_e=data.cdr_nc_e,
        cdr_nc_u=data.cdr_nc_u,
        cdr_att=data.cdr_att,
        cdr_total=data.cdr_total,
        #cmh
        cmh_offr=data.cmh_offr,
        cmh_mwo=data.cmh_mwo,
        cmh_smo=data.cmh_smo,
        cmh_wo=data.cmh_wo,
        cmh_sgt=data.cmh_sgt,
        cmh_cpl=data.cmh_cpl,
        cmh_lcpl=data.cmh_lcpl,
        cmh_snk=data.cmh_snk,
        cmh_clk=data.cmh_clk,
        cmh_tailor=data.cmh_tailor,
        cmh_e_br=data.cmh_e_br,
        cmh_ck_mm=data.cmh_ck_mm,
        cmh_carp=data.cmh_carp,
        cmh_rco=data.cmh_rco,
        cmh_nc_e=data.cmh_nc_e,
        cmh_nc_u=data.cmh_nc_u,
        cmh_att=data.cmh_att,
        cmh_total=data.cmh_total,
        #stmk
        stmk_offr=data.stmk_offr,
        stmk_mwo=data.stmk_mwo,
        stmk_smo=data.stmk_smo,
        stmk_wo=data.stmk_wo,
        stmk_sgt=data.stmk_sgt,
        stmk_cpl=data.stmk_cpl,
        stmk_lcpl=data.stmk_lcpl,
        stmk_snk=data.stmk_snk,
        stmk_clk=data.stmk_clk,
        stmk_tailor=data.stmk_tailor,
        stmk_e_br=data.stmk_e_br,
        stmk_ck_mm=data.stmk_ck_mm,
        stmk_carp=data.stmk_carp,
        stmk_rco=data.stmk_rco,
        stmk_nc_e=data.stmk_nc_e,
        stmk_nc_u=data.stmk_nc_u,
        stmk_att=data.stmk_att,
        stmk_total=data.stmk_total,
        #line_sick
        line_sick_offr=data.line_sick_offr,
        line_sick_mwo=data.line_sick_mwo,
        line_sick_smo=data.line_sick_smo,
        line_sick_wo=data.line_sick_wo,
        line_sick_sgt=data.line_sick_sgt,
        line_sick_cpl=data.line_sick_cpl,
        line_sick_lcpl=data.line_sick_lcpl,
        line_sick_snk=data.line_sick_snk,
        line_sick_clk=data.line_sick_clk,
        line_sick_tailor=data.line_sick_tailor,
        line_sick_e_br=data.line_sick_e_br,
        line_sick_ck_mm=data.line_sick_ck_mm,
        line_sick_carp=data.line_sick_carp,
        line_sick_rco=data.line_sick_rco,
        line_sick_nc_e=data.line_sick_nc_e,
        line_sick_nc_u=data.line_sick_nc_u,
        line_sick_att=data.line_sick_att,
        line_sick_total=data.line_sick_total,
        #misc
        misc_offr=data.misc_offr,
        misc_mwo=data.misc_mwo,
        misc_smo=data.misc_smo,
        misc_wo=data.misc_wo,
        misc_sgt=data.misc_sgt,
        misc_cpl=data.misc_cpl,
        misc_lcpl=data.misc_lcpl,
        misc_snk=data.misc_snk,
        misc_clk=data.misc_clk,
        misc_tailor=data.misc_tailor,
        misc_e_br=data.misc_e_br,
        misc_ck_mm=data.misc_ck_mm,
        misc_carp=data.misc_carp,
        misc_rco=data.misc_rco,
        misc_nc_e=data.misc_nc_e,
        misc_nc_u=data.misc_nc_u,
        misc_att=data.misc_att,
        misc_total=data.misc_total,
        #total_leave
        total_leave_offr=data.total_leave_offr,
        total_leave_mwo=data.total_leave_mwo,
        total_leave_smo=data.total_leave_smo,
        total_leave_wo=data.total_leave_wo,
        total_leave_sgt=data.total_leave_sgt,
        total_leave_cpl=data.total_leave_cpl,
        total_leave_lcpl=data.total_leave_lcpl,
        total_leave_snk=data.total_leave_snk,
        total_leave_clk=data.total_leave_clk,
        total_leave_tailor=data.total_leave_tailor,
        total_leave_e_br=data.total_leave_e_br,
        total_leave_ck_mm=data.total_leave_ck_mm,
        total_leave_carp=data.total_leave_carp,
        total_leave_rco=data.total_leave_rco,
        total_leave_nc_e=data.total_leave_nc_e,
        total_leave_nc_u=data.total_leave_nc_u,
        total_leave_att=data.total_leave_att,
        total_leave_total=data.total_leave_total,
        #ration_out
        ration_out_offr=data.total_leave_offr - data.w_leave_offr - data.line_sick_offr,
        ration_out_mwo=data.total_leave_mwo - data.w_leave_mwo - data.line_sick_mwo,
        ration_out_smo=data.total_leave_smo - data.w_leave_smo - data.line_sick_smo,
        ration_out_wo=data.total_leave_wo - data.w_leave_wo - data.line_sick_wo,
        ration_out_sgt=data.total_leave_sgt - data.w_leave_sgt - data.line_sick_sgt,
        ration_out_cpl=data.total_leave_cpl - data.w_leave_cpl - data.line_sick_cpl,
        ration_out_lcpl=data.total_leave_lcpl - data.w_leave_lcpl - data.line_sick_lcpl,
        ration_out_snk=data.total_leave_snk - data.w_leave_snk - data.line_sick_snk,
        ration_out_clk=data.total_leave_clk - data.w_leave_clk - data.line_sick_clk,
        ration_out_tailor=data.total_leave_tailor - data.w_leave_tailor - data.line_sick_tailor,
        ration_out_e_br=data.total_leave_e_br - data.w_leave_e_br - data.line_sick_e_br,
        ration_out_ck_mm=data.total_leave_ck_mm - data.w_leave_ck_mm - data.line_sick_ck_mm,
        ration_out_carp=data.total_leave_carp - data.w_leave_carp - data.line_sick_carp,
        ration_out_rco=data.total_leave_rco - data.w_leave_rco - data.line_sick_rco,
        ration_out_nc_e=data.total_leave_nc_e - data.w_leave_nc_e - data.line_sick_nc_e,
        ration_out_nc_u=data.total_leave_nc_u - data.w_leave_nc_u - data.line_sick_nc_u,
        ration_out_att=data.total_leave_att - data.w_leave_att - data.line_sick_att,
        ration_out_total=data.total_leave_total - data.w_leave_total - data.line_sick_total,
        #out of unit emp
        #ere
        ere_offr=ere_offr,
        ere_mwo=ere_mwo,
        ere_smo=ere_smo,
        ere_wo=ere_wo,
        ere_sgt=ere_sgt,
        ere_cpl=ere_cpl,
        ere_lcpl=ere_lcpl,
        ere_snk=ere_snk,
        ere_clk=ere_clk,
        ere_tailor=ere_tailor,
        ere_e_br=ere_e_br,
        ere_ck_mm=ere_ck_mm,
        ere_carp=ere_carp,
        ere_rco=ere_rco,
        ere_nc_e=ere_nc_e,
        ere_nc_u=ere_nc_u,
        ere_att=ere_att,
        ere_total=ere_total,
        #att
        att_offr=att_offr,
        att_mwo=att_mwo,
        att_smo=att_smo,
        att_wo=att_wo,
        att_sgt=att_sgt,
        att_cpl=att_cpl,
        att_lcpl=att_lcpl,
        att_snk=att_snk,
        att_clk=att_clk,
        att_tailor=att_tailor,
        att_e_br=att_e_br,
        att_ck_mm=att_ck_mm,
        att_carp=att_carp,
        att_rco=att_rco,
        att_nc_e=att_nc_e,
        att_nc_u=att_nc_u,
        att_att=att_att,
        att_total=att_total,
        #t_duty
        t_duty_offr=t_duty_offr,
        t_duty_mwo=t_duty_mwo,
        t_duty_smo=t_duty_smo,
        t_duty_wo=t_duty_wo,
        t_duty_sgt=t_duty_sgt,
        t_duty_cpl=t_duty_cpl,
        t_duty_lcpl=t_duty_lcpl,
        t_duty_snk=t_duty_snk,
        t_duty_clk=t_duty_clk,
        t_duty_tailor=t_duty_tailor,
        t_duty_e_br=t_duty_e_br,
        t_duty_ck_mm=t_duty_ck_mm,
        t_duty_carp=t_duty_carp,
        t_duty_rco=t_duty_rco,
        t_duty_nc_e=t_duty_nc_e,
        t_duty_nc_u=t_duty_nc_u,
        t_duty_att=t_duty_att,
        t_duty_total=t_duty_total,
        #msn
        msn_offr=msn_offr,
        msn_mwo=msn_mwo,
        msn_smo=msn_smo,
        msn_wo=msn_wo,
        msn_sgt=msn_sgt,
        msn_cpl=msn_cpl,
        msn_lcpl=msn_lcpl,
        msn_snk=msn_snk,
        msn_clk=msn_clk,
        msn_tailor=msn_tailor,
        msn_e_br=msn_e_br,
        msn_ck_mm=msn_ck_mm,
        msn_carp=msn_carp,
        msn_rco=msn_rco,
        msn_nc_e=msn_nc_e,
        msn_nc_u=msn_nc_u,
        msn_att=msn_att,
        msn_total=msn_total,
        #okp
        okp_offr=okp_offr,
        okp_mwo=okp_mwo,
        okp_smo=okp_smo,
        okp_wo=okp_wo,
        okp_sgt=okp_sgt,
        okp_cpl=okp_cpl,
        okp_lcpl=okp_lcpl,
        okp_snk=okp_snk,
        okp_clk=okp_clk,
        okp_tailor=okp_tailor,
        okp_e_br=okp_e_br,
        okp_ck_mm=okp_ck_mm,
        okp_carp=okp_carp,
        okp_rco=okp_rco,
        okp_nc_e=okp_nc_e,
        okp_nc_u=okp_nc_u,
        okp_att=okp_att,
        okp_total=okp_total,
        #demov
        demov_offr=demov_offr,
        demov_mwo=demov_mwo,
        demov_smo=demov_smo,
        demov_wo=demov_wo,
        demov_sgt=demov_sgt,
        demov_cpl=demov_cpl,
        demov_lcpl=demov_lcpl,
        demov_snk=demov_snk,
        demov_clk=demov_clk,
        demov_tailor=demov_tailor,
        demov_e_br=demov_e_br,
        demov_ck_mm=demov_ck_mm,
        demov_carp=demov_carp,
        demov_rco=demov_rco,
        demov_nc_e=demov_nc_e,
        demov_nc_u=demov_nc_u,
        demov_att=demov_att,
        demov_total=demov_total,
        #out_of_unit_emp
        out_of_unit_emp_offr=out_of_unit_emp_offr,
        out_of_unit_emp_mwo=out_of_unit_emp_mwo,
        out_of_unit_emp_smo=out_of_unit_emp_smo,
        out_of_unit_emp_wo=out_of_unit_emp_wo,
        out_of_unit_emp_sgt=out_of_unit_emp_sgt,
        out_of_unit_emp_cpl=out_of_unit_emp_cpl,
        out_of_unit_emp_lcpl=out_of_unit_emp_lcpl,
        out_of_unit_emp_snk=out_of_unit_emp_snk,
        out_of_unit_emp_clk=out_of_unit_emp_clk,
        out_of_unit_emp_tailor=out_of_unit_emp_tailor,
        out_of_unit_emp_e_br=out_of_unit_emp_e_br,
        out_of_unit_emp_ck_mm=out_of_unit_emp_ck_mm,
        out_of_unit_emp_carp=out_of_unit_emp_carp,
        out_of_unit_emp_rco=out_of_unit_emp_rco,
        out_of_unit_emp_nc_e=out_of_unit_emp_nc_e,
        out_of_unit_emp_nc_u=out_of_unit_emp_nc_u,
        out_of_unit_emp_att=out_of_unit_emp_att,
        out_of_unit_emp_total=out_of_unit_emp_total,

        #TODO: for jco
        toe_jco_auth = company.mwo + company.smo + company.wo,
        # ere_jco_auth
        ere_jco_auth = company.ere_mwo + company.ere_smo + company.ere_wo,
        # jco_auth
        jco_auth = company.mwo + company.smo + company.wo,
        # jco_posted
        jco_posted = mwo_posted + smo_posted + wo_posted,
        # raw_jco_posted
        raw_jco_posted = raw_mwo_posted + raw_smo_posted + raw_wo_posted,
        # jco def
        jco_def = mwo_auth - mwo_posted + smo_auth - smo_posted + wo_auth - wo_posted,
        # jco held
        jco_held = mwo_posted - out_of_unit_emp_mwo + smo_posted - out_of_unit_emp_smo + wo_posted - out_of_unit_emp_wo,
        # jco absent
        jco_absent = data.mwo_absent + data.smo_absent + data.wo_absent,
        # jco present
        jco_present = data.mwo_present + data.smo_present + data.wo_present,
        # jco ops_depl present
        ops_depl_jco_present = data.ops_depl_mwo_present + data.ops_depl_smo_present + data.ops_depl_wo_present,
        # jco rear present
        rear_jco_present = data.mwo_present - data.ops_depl_mwo_present + data.smo_present - data.ops_depl_smo_present + data.wo_present - data.ops_depl_wo_present,
        # p_leave
        p_leave_jco = data.p_leave_mwo + data.p_leave_smo + data.p_leave_wo,
        # c_leave
        c_leave_jco = data.c_leave_mwo + data.c_leave_smo + data.c_leave_wo,
        # r_leave
        r_leave_jco = data.r_leave_mwo + data.r_leave_smo + data.r_leave_wo,
        # m_leave
        m_leave_jco = data.m_leave_mwo + data.m_leave_smo + data.m_leave_wo,
        # j_leave
        j_leave_jco = data.j_leave_mwo + data.j_leave_smo + data.j_leave_wo,
        # w_leave
        w_leave_jco = data.w_leave_mwo + data.w_leave_smo + data.w_leave_wo,
        # osl
        osl_jco = data.osl_mwo + data.osl_smo + data.osl_wo,
        # awol
        awol_jco = data.awol_mwo + data.awol_smo + data.awol_wo,
        # course
        course_jco = data.course_mwo + data.course_smo + data.course_wo,
        # trg
        trg_jco = data.trg_mwo + data.trg_smo + data.trg_wo,
        # cdr
        cdr_jco = data.cdr_mwo + data.cdr_smo + data.cdr_wo,
        # cmh
        cmh_jco = data.cmh_mwo + data.cmh_smo + data.cmh_wo,
        # stmk
        stmk_jco = data.stmk_mwo + data.stmk_smo + data.stmk_wo,
        # line_sick
        line_sick_jco = data.line_sick_mwo + data.line_sick_smo + data.line_sick_wo,
        # misc
        misc_jco = data.misc_mwo + data.misc_smo + data.misc_wo,
        # total_leave
        total_leave_jco = data.total_leave_mwo + data.total_leave_smo + data.total_leave_wo,
        # ration_out
        ration_out_jco = data.total_leave_mwo - data.w_leave_mwo - data.line_sick_mwo + data.total_leave_smo - data.w_leave_smo - data.line_sick_smo + data.total_leave_wo - data.w_leave_wo - data.line_sick_wo,
        # out of unit emp
        # ere
        ere_jco = ere_mwo + ere_smo + ere_wo,
        # att
        att_jco = att_mwo + att_smo + att_wo,
        # t_duty
        t_duty_jco = t_duty_mwo + t_duty_smo + t_duty_wo,
        # msn
        msn_jco = msn_mwo + msn_smo + msn_wo,
        # okp
        okp_jco = okp_mwo + okp_smo + okp_wo,
        # demov
        demov_jco = demov_mwo + demov_smo + demov_wo,
        # out_of_unit_emp
        out_of_unit_emp_jco = out_of_unit_emp_mwo + out_of_unit_emp_smo + out_of_unit_emp_wo,
    )
    
    
    #TODO: for offr
    AttendanceSummaryOffr.objects.create(
        attendance_summary=attendance_summary,
        company=company,
        date = date,
        # toe_auth
        toe_g_auth = company.g,
        toe_lg_auth = company.lg,
        toe_mg_auth = company.mg,
        toe_bg_auth = company.bg,
        toe_c_auth = company.c,
        toe_lc_auth = company.lc,
        toe_m_auth = company.m,
        toe_cp_auth = company.cp,
        toe_l_auth = company.l,
        toe_sl_auth = company.sl,
        toe_offr_auth = company.offr,
        # ere_auth
        ere_g_auth = company.ere_g,
        ere_lg_auth = company.ere_lg,
        ere_mg_auth = company.ere_mg,
        ere_bg_auth = company.ere_bg,
        ere_c_auth = company.ere_c,
        ere_lc_auth = company.ere_lc,
        ere_m_auth = company.ere_m,
        ere_cp_auth = company.ere_cp,
        ere_l_auth = company.ere_l,
        ere_sl_auth = company.ere_sl,
        ere_offr_auth = company.ere_offr,
        # auth
        g_auth = g_auth,
        lg_auth = lg_auth,
        mg_auth = mg_auth,
        bg_auth = bg_auth,
        c_auth = c_auth,
        lc_auth = lc_auth,
        m_auth = m_auth,
        cp_auth = cp_auth,
        l_auth = l_auth,
        sl_auth = sl_auth,
        offr_auth = offr_auth,
        # posted
        g_posted = g_posted,
        lg_posted = lg_posted,
        mg_posted = mg_posted,
        bg_posted = bg_posted,
        c_posted = c_posted,
        lc_posted = lc_posted,
        m_posted = m_posted,
        cp_posted = cp_posted,
        l_posted = l_posted,
        sl_posted = sl_posted,
        offr_posted = offr_posted,
        # raw_posted
        raw_g_posted = raw_g_posted,
        raw_lg_posted = raw_lg_posted,
        raw_mg_posted = raw_mg_posted,
        raw_bg_posted = raw_bg_posted,
        raw_c_posted = raw_c_posted,
        raw_lc_posted = raw_lc_posted,
        raw_m_posted = raw_m_posted,
        raw_cp_posted = raw_cp_posted,
        raw_l_posted = raw_l_posted,
        raw_sl_posted = raw_sl_posted,
        raw_offr_posted = raw_offr_posted,
        # def
        g_def = g_auth - g_posted,
        lg_def = lg_auth - lg_posted,
        mg_def = mg_auth - mg_posted,
        bg_def = bg_auth - bg_posted,
        c_def = c_auth - c_posted,
        lc_def = lc_auth - lc_posted,
        m_def = m_auth - m_posted,
        cp_def = cp_auth - cp_posted,
        l_def = l_auth - l_posted,
        sl_def = sl_auth - sl_posted,
        offr_def = offr_auth - offr_posted,
        # held
        g_held = g_posted - out_of_unit_emp_g,
        lg_held = lg_posted - out_of_unit_emp_lg,
        mg_held = mg_posted - out_of_unit_emp_mg,
        bg_held = bg_posted - out_of_unit_emp_bg,
        c_held = c_posted - out_of_unit_emp_c,
        lc_held = lc_posted - out_of_unit_emp_lc,
        m_held = m_posted - out_of_unit_emp_m,
        cp_held = cp_posted - out_of_unit_emp_cp,
        l_held = l_posted - out_of_unit_emp_l,
        sl_held = sl_posted - out_of_unit_emp_sl,
        offr_held = offr_posted - out_of_unit_emp_offr,
        # absent
        g_absent = data.g_absent,
        lg_absent = data.lg_absent,
        mg_absent = data.mg_absent,
        bg_absent = data.bg_absent,
        c_absent = data.c_absent,
        lc_absent = data.lc_absent,
        m_absent = data.m_absent,
        cp_absent = data.cp_absent,
        l_absent = data.l_absent,
        sl_absent = data.sl_absent,
        offr_absent = data.offr_absent,
        # present
        g_present = data.g_present,
        lg_present = data.lg_present,
        mg_present = data.mg_present,
        bg_present = data.bg_present,
        c_present = data.c_present,
        lc_present = data.lc_present,
        m_present = data.m_present,
        cp_present = data.cp_present,
        l_present = data.l_present,
        sl_present = data.sl_present,
        offr_present = data.offr_present,
        # ops depl present
        ops_depl_g_present = data.ops_depl_g_present,
        ops_depl_lg_present = data.ops_depl_lg_present,
        ops_depl_mg_present = data.ops_depl_mg_present,
        ops_depl_bg_present = data.ops_depl_bg_present,
        ops_depl_c_present = data.ops_depl_c_present,
        ops_depl_lc_present = data.ops_depl_lc_present,
        ops_depl_m_present = data.ops_depl_m_present,
        ops_depl_cp_present = data.ops_depl_cp_present,
        ops_depl_l_present = data.ops_depl_l_present,
        ops_depl_sl_present = data.ops_depl_sl_present,
        ops_depl_offr_present = data.ops_depl_offr_present,
        # rear
        rear_g_present = data.g_present - data.ops_depl_g_present,
        rear_lg_present = data.lg_present - data.ops_depl_lg_present,
        rear_mg_present = data.mg_present - data.ops_depl_mg_present,
        rear_bg_present = data.bg_present - data.ops_depl_bg_present,
        rear_c_present = data.c_present - data.ops_depl_c_present,
        rear_lc_present = data.lc_present - data.ops_depl_lc_present,
        rear_m_present = data.m_present - data.ops_depl_m_present,
        rear_cp_present = data.cp_present - data.ops_depl_cp_present,
        rear_l_present = data.l_present - data.ops_depl_l_present,
        rear_sl_present = data.sl_present - data.ops_depl_sl_present,
        rear_offr_present = data.offr_present - data.ops_depl_offr_present,
        # p_leave
        p_leave_g = data.p_leave_g,
        p_leave_lg = data.p_leave_lg,
        p_leave_mg = data.p_leave_mg,
        p_leave_bg = data.p_leave_bg,
        p_leave_c = data.p_leave_c,
        p_leave_lc = data.p_leave_lc,
        p_leave_m = data.p_leave_m,
        p_leave_cp = data.p_leave_cp,
        p_leave_l = data.p_leave_l,
        p_leave_sl = data.p_leave_sl,
        p_leave_offr = data.p_leave_offr,
        # c_leave
        c_leave_g = data.c_leave_g,
        c_leave_lg = data.c_leave_lg,
        c_leave_mg = data.c_leave_mg,
        c_leave_bg = data.c_leave_bg,
        c_leave_c = data.c_leave_c,
        c_leave_lc = data.c_leave_lc,
        c_leave_m = data.c_leave_m,
        c_leave_cp = data.c_leave_cp,
        c_leave_l = data.c_leave_l,
        c_leave_sl = data.c_leave_sl,
        c_leave_offr = data.c_leave_offr,
        # r_leave
        r_leave_g = data.r_leave_g,
        r_leave_lg = data.r_leave_lg,
        r_leave_mg = data.r_leave_mg,
        r_leave_bg = data.r_leave_bg,
        r_leave_c = data.r_leave_c,
        r_leave_lc = data.r_leave_lc,
        r_leave_m = data.r_leave_m,
        r_leave_cp = data.r_leave_cp,
        r_leave_l = data.r_leave_l,
        r_leave_sl = data.r_leave_sl,
        r_leave_offr = data.r_leave_offr,
        # m_leave
        m_leave_g = data.m_leave_g,
        m_leave_lg = data.m_leave_lg,
        m_leave_mg = data.m_leave_mg,
        m_leave_bg = data.m_leave_bg,
        m_leave_c = data.m_leave_c,
        m_leave_lc = data.m_leave_lc,
        m_leave_m = data.m_leave_m,
        m_leave_cp = data.m_leave_cp,
        m_leave_l = data.m_leave_l,
        m_leave_sl = data.m_leave_sl,       
        m_leave_offr = data.m_leave_offr,       
        # j_leave
        j_leave_g = data.j_leave_g,
        j_leave_lg = data.j_leave_lg,
        j_leave_mg = data.j_leave_mg,
        j_leave_bg = data.j_leave_bg,
        j_leave_c = data.j_leave_c,
        j_leave_lc = data.j_leave_lc,
        j_leave_m = data.j_leave_m,
        j_leave_cp = data.j_leave_cp,
        j_leave_l = data.j_leave_l,
        j_leave_sl = data.j_leave_sl,
        j_leave_offr = data.j_leave_offr,
        # w_leave
        w_leave_g = data.w_leave_g,
        w_leave_lg = data.w_leave_lg,
        w_leave_mg = data.w_leave_mg,
        w_leave_bg = data.w_leave_bg,
        w_leave_c = data.w_leave_c,
        w_leave_lc = data.w_leave_lc,
        w_leave_m = data.w_leave_m,
        w_leave_cp = data.w_leave_cp,
        w_leave_l = data.w_leave_l,
        w_leave_sl = data.w_leave_sl,
        w_leave_offr = data.w_leave_offr,
        # osl
        osl_g = data.osl_g,
        osl_lg = data.osl_lg,
        osl_mg = data.osl_mg,
        osl_bg = data.osl_bg,
        osl_c = data.osl_c,
        osl_lc = data.osl_lc,
        osl_m = data.osl_m,
        osl_cp = data.osl_cp,
        osl_l = data.osl_l,
        osl_sl = data.osl_sl,
        osl_offr = data.osl_offr,
        # awol
        awol_g = data.awol_g,
        awol_lg = data.awol_lg,
        awol_mg = data.awol_mg,
        awol_bg = data.awol_bg,
        awol_c = data.awol_c,
        awol_lc = data.awol_lc,
        awol_m = data.awol_m,
        awol_cp = data.awol_cp,
        awol_l = data.awol_l,
        awol_sl = data.awol_sl,
        awol_offr = data.awol_offr,
        # course
        course_g = data.course_g,
        course_lg = data.course_lg,
        course_mg = data.course_mg,
        course_bg = data.course_bg,
        course_c = data.course_c,
        course_lc = data.course_lc,
        course_m = data.course_m,
        course_cp = data.course_cp,
        course_l = data.course_l,
        course_sl = data.course_sl,
        course_offr = data.course_offr,
        # trg
        trg_g = data.trg_g,
        trg_lg = data.trg_lg,
        trg_mg = data.trg_mg,
        trg_bg = data.trg_bg,
        trg_c = data.trg_c,
        trg_lc = data.trg_lc,
        trg_m = data.trg_m,
        trg_cp = data.trg_cp,
        trg_l = data.trg_l,
        trg_sl = data.trg_sl,
        trg_offr = data.trg_offr,
        # cdr
        cdr_g = data.cdr_g,
        cdr_lg = data.cdr_lg,
        cdr_mg = data.cdr_mg,
        cdr_bg = data.cdr_bg,
        cdr_c = data.cdr_c,
        cdr_lc = data.cdr_lc,
        cdr_m = data.cdr_m,
        cdr_cp = data.cdr_cp,
        cdr_l = data.cdr_l,
        cdr_sl = data.cdr_sl,
        cdr_offr = data.cdr_offr,
        # cmh
        cmh_g = data.cmh_g,
        cmh_lg = data.cmh_lg,
        cmh_mg = data.cmh_mg,
        cmh_bg = data.cmh_bg,
        cmh_c = data.cmh_c,
        cmh_lc = data.cmh_lc,
        cmh_m = data.cmh_m,
        cmh_cp = data.cmh_cp,
        cmh_l = data.cmh_l,
        cmh_sl = data.cmh_sl,
        cmh_offr = data.cmh_offr,
        # stmk
        stmk_g = data.stmk_g,
        stmk_lg = data.stmk_lg,
        stmk_mg = data.stmk_mg,
        stmk_bg = data.stmk_bg,
        stmk_c = data.stmk_c,
        stmk_lc = data.stmk_lc,
        stmk_m = data.stmk_m,
        stmk_cp = data.stmk_cp,
        stmk_l = data.stmk_l,
        stmk_sl = data.stmk_sl,
        stmk_offr = data.stmk_offr,
        # line_sick
        line_sick_g = data.line_sick_g,
        line_sick_lg = data.line_sick_lg,
        line_sick_mg = data.line_sick_mg,
        line_sick_bg = data.line_sick_bg,
        line_sick_c = data.line_sick_c,
        line_sick_lc = data.line_sick_lc,
        line_sick_m = data.line_sick_m,
        line_sick_cp = data.line_sick_cp,
        line_sick_l = data.line_sick_l,
        line_sick_sl = data.line_sick_sl,
        line_sick_offr = data.line_sick_offr,
        # misc
        misc_g = data.misc_g,
        misc_lg = data.misc_lg,
        misc_mg = data.misc_mg,
        misc_bg = data.misc_bg,
        misc_c = data.misc_c,
        misc_lc = data.misc_lc,
        misc_m = data.misc_m,
        misc_cp = data.misc_cp,
        misc_l = data.misc_l,
        misc_sl = data.misc_sl,
        misc_offr = data.misc_offr,
        # total_leave
        total_leave_g = data.total_leave_g,
        total_leave_lg = data.total_leave_lg,
        total_leave_mg = data.total_leave_mg,
        total_leave_bg = data.total_leave_bg,
        total_leave_c = data.total_leave_c,
        total_leave_lc = data.total_leave_lc,
        total_leave_m = data.total_leave_m,
        total_leave_cp = data.total_leave_cp,
        total_leave_l = data.total_leave_l,
        total_leave_sl = data.total_leave_sl,
        total_leave_offr = data.total_leave_offr,
        # ration_out
        ration_out_g = data.total_leave_g - data.w_leave_g - data.line_sick_g,
        ration_out_lg = data.total_leave_lg - data.w_leave_lg - data.line_sick_lg,
        ration_out_mg = data.total_leave_mg - data.w_leave_mg - data.line_sick_mg,
        ration_out_bg = data.total_leave_bg - data.w_leave_bg - data.line_sick_bg,
        ration_out_c = data.total_leave_c - data.w_leave_c - data.line_sick_c,
        ration_out_lc = data.total_leave_lc - data.w_leave_lc - data.line_sick_lc,
        ration_out_m = data.total_leave_m - data.w_leave_m - data.line_sick_m,
        ration_out_cp = data.total_leave_cp - data.w_leave_cp - data.line_sick_cp,
        ration_out_l = data.total_leave_l - data.w_leave_l - data.line_sick_l,
        ration_out_sl = data.total_leave_sl - data.w_leave_sl - data.line_sick_sl,
        ration_out_offr = data.total_leave_offr - data.w_leave_offr - data.line_sick_offr,
        # out of unit emp
        #ere
        ere_g = ere_g,
        ere_lg = ere_lg,
        ere_mg = ere_mg,
        ere_bg = ere_bg,
        ere_c = ere_c,
        ere_lc = ere_lc,
        ere_m = ere_m,
        ere_cp = ere_cp,
        ere_l = ere_l,
        ere_sl = ere_sl,
        ere_offr = ere_offr,
        # att
        att_g = att_g,
        att_lg = att_lg,
        att_mg = att_mg,
        att_bg = att_bg,
        att_c = att_c,
        att_lc = att_lc,
        att_m = att_m,
        att_cp = att_cp,
        att_l = att_l,
        att_sl = att_sl,
        att_offr = att_offr,
        # t_duty
        t_duty_g = t_duty_g,
        t_duty_lg = t_duty_lg,
        t_duty_mg = t_duty_mg,
        t_duty_bg = t_duty_bg,
        t_duty_c = t_duty_c,
        t_duty_lc = t_duty_lc,
        t_duty_m = t_duty_m,
        t_duty_cp = t_duty_cp,
        t_duty_l = t_duty_l,
        t_duty_sl = t_duty_sl,
        t_duty_offr = t_duty_offr,
        # msn
        msn_g = msn_g,
        msn_lg = msn_lg,
        msn_mg = msn_mg,
        msn_bg = msn_bg,
        msn_c = msn_c,
        msn_lc = msn_lc,
        msn_m = msn_m,
        msn_cp = msn_cp,
        msn_l = msn_l,
        msn_sl = msn_sl,
        msn_offr = msn_offr,
        # okp
        okp_g = okp_g,
        okp_lg = okp_lg,
        okp_mg = okp_mg,
        okp_bg = okp_bg,
        okp_c = okp_c,
        okp_lc = okp_lc,
        okp_m = okp_m,
        okp_cp = okp_cp,
        okp_l = okp_l,
        okp_sl = okp_sl,
        okp_offr = okp_offr,
        # demov
        demov_g = demov_g,
        demov_lg = demov_lg,
        demov_mg = demov_mg,
        demov_bg = demov_bg,
        demov_c = demov_c,
        demov_lc = demov_lc,
        demov_m = demov_m,
        demov_cp = demov_cp,
        demov_l = demov_l,
        demov_sl = demov_sl,
        demov_offr = demov_offr,
        # out_of_unit_emp
        out_of_unit_emp_g = out_of_unit_emp_g,
        out_of_unit_emp_lg = out_of_unit_emp_lg,
        out_of_unit_emp_mg = out_of_unit_emp_mg,
        out_of_unit_emp_bg = out_of_unit_emp_bg,
        out_of_unit_emp_c = out_of_unit_emp_c,
        out_of_unit_emp_lc = out_of_unit_emp_lc,
        out_of_unit_emp_m = out_of_unit_emp_m,
        out_of_unit_emp_cp = out_of_unit_emp_cp,
        out_of_unit_emp_l = out_of_unit_emp_l,
        out_of_unit_emp_sl = out_of_unit_emp_sl,
        out_of_unit_emp_offr = out_of_unit_emp_offr,
    )