コード例 #1
0
def approve_overtime_application_service(approver, overtime_application):
    """Changes overtime status to Approved and returns all approved overtime applications"""
    approved_overtime_application = None
    is_supervisor = get_is_supervisor_in_team(approver)
    is_hod = get_is_hod_in_department(approver)
    if is_supervisor:
        approved_overtime_application = supervisor_approve(overtime_application)

    if is_hod:
        approved_overtime_application = hod_approve(overtime_application)

    if approver.is_hr:
        approved_overtime_application = hr_approve(overtime_application)

    if approver.is_cfo:
        approved_overtime_application = cfo_approve(overtime_application)

    if approver.is_ceo:
        approved_overtime_application = ceo_approve(overtime_application)
        # send_overtime_application_approval_mail(overtime_application)

    return approved_overtime_application
コード例 #2
0
def reject_overtime_application_service(rejecter, overtime_application):
    is_supervisor = get_is_supervisor_in_team(rejecter)
    is_hod = get_is_hod_in_department(rejecter)
    
    if is_supervisor:
        rejected_overtime_application = supervisor_reject(overtime_application)

    elif is_hod:
        rejected_overtime_application = hod_reject(overtime_application)

    elif rejecter.is_hr:
        rejected_overtime_application = hr_reject(overtime_application)

    elif rejecter.is_cfo:
        rejected_overtime_application = cfo_reject(overtime_application)

    elif rejecter.is_ceo:
        rejected_overtime_application = ceo_reject(overtime_application)
    else:
        rejected_overtime_application = None

    # send_overtime_application_approval_mail(rejected_overtime_application)
    return rejected_overtime_application
コード例 #3
0
def get_pending_overtime_applications(approver_user: User) -> dict:
    """Return a dictionary of pending applications per user role"""
    hod_pending_applications = OvertimeApplication.objects.none()
    hr_pending_applications = OvertimeApplication.objects.none()
    cfo_pending_applications = OvertimeApplication.objects.none()
    ceo_pending_applications = OvertimeApplication.objects.none()
    supervisor_pending_applications = OvertimeApplication.objects.none()
    is_supervisor = get_is_supervisor_in_team(approver_user)
    is_hod = get_is_hod_in_department(approver_user)

    if is_hod:
        hod_department = approver_user.solitonuser.employee.department
        hod_pending_applications = get_hod_pending_overtime_applications(
            hod_department)

    if approver_user.is_hr:
        hr_pending_applications = get_hr_pending_overtime_applications()

    if approver_user.is_cfo:
        cfo_pending_applications = get_cfo_pending_overtime_applications()

    if approver_user.is_ceo:
        ceo_pending_applications = get_ceo_pending_overtime_applications()

    if is_supervisor:
        supervisor = approver_user.solitonuser.employee
        supervisor_pending_applications = get_supervisor_pending_overtime_applications(
            supervisor)

    pending_applications = {
        "supervisor_pending_applications": supervisor_pending_applications,
        "hod_pending_applications": hod_pending_applications,
        "hr_pending_applications": hr_pending_applications,
        "cfo_pending_applications": cfo_pending_applications,
        "ceo_pending_applications": ceo_pending_applications,
    }
    return pending_applications
コード例 #4
0
def get_is_overtime_approver(approver_user: User) -> bool:
    is_supervisor = get_is_supervisor_in_team(approver_user)
    is_hod = get_is_hod_in_department(approver_user)
    return is_hod or approver_user.is_hr or approver_user.is_cfo or approver_user.is_ceo or is_supervisor