コード例 #1
0
ファイル: functions.php プロジェクト: nizamuddin/wp-erp
function erp_hr_get_work_days_between_dates($start_date, $end_date)
{
    $between_dates = erp_extract_dates($start_date, $end_date);
    if (is_wp_error($between_dates)) {
        return $between_dates;
    }
    $dates = array('days' => array(), 'total' => 0);
    $work_days = erp_hr_get_work_days();
    foreach ($between_dates as $date) {
        $key = strtolower(date('D', strtotime($date)));
        $is_holidy = $work_days[$key] === 0 ? true : false;
        $dates['days'][] = array('date' => $date, 'count' => (int) (!$is_holidy));
        if (!$is_holidy) {
            $dates['total'] += 1;
        }
    }
    return $dates;
}
コード例 #2
0
ファイル: functions-leave.php プロジェクト: ediamin/wp-erp
/**
 * Assign for schedule leave policy
 *
 * @since 0.1
 *
 * @return void
 */
function erp_hr_apply_policy_schedule()
{
    $active_employes = \WeDevs\ERP\HRM\Models\Employee::select('user_id')->where('status', 'active')->get()->toArray();
    $policies = \WeDevs\ERP\HRM\Models\Leave_Policies::get()->toArray();
    $selected_policy = [];
    $today = date('Y-m-d', strtotime(current_time('mysql')));
    foreach ($active_employes as $key => $employee) {
        $employee_obj = new \WeDevs\ERP\HRM\Employee(intval($employee['user_id']));
        $employee_data = $employee_obj->to_array();
        $department = isset($employee_data['work']['department']) ? $employee_data['work']['department'] : '';
        $designation = isset($employee_data['work']['designation']) ? $employee_data['work']['designation'] : '';
        $gender = isset($employee_data['personal']['gender']) ? $employee_data['personal']['gender'] : '';
        $location = isset($employee_data['work']['location']) ? $employee_data['work']['location'] : '';
        $marital = isset($employee_data['personal']['marital_status']) ? $employee_data['personal']['marital_status'] : '';
        $hire_date = isset($employee_data['work']['hiring_date']) ? $employee_data['work']['hiring_date'] : '';
        $current_time = current_time('mysql');
        $daydiff = count(erp_extract_dates($hire_date, $current_time)) - 1;
        foreach ($policies as $key => $policy) {
            if ($policy['activate'] == 1) {
                erp_hr_apply_new_employee_policy($employee_data, $policy);
                continue;
            }
            $effective_date = date('Y-m-d', strtotime($policy['effective_date']));
            if (strtotime($effective_date) < 0 && $today < $effective_date) {
                continue;
            }
            if ($daydiff <= $policy['execute_day']) {
                continue;
            }
            if ($policy['department'] != '-1' && $policy['department'] != $department) {
                continue;
            }
            if ($policy['designation'] != '-1' && $policy['designation'] != $designation) {
                continue;
            }
            if ($policy['gender'] != '-1' && $policy['gender'] != $gender) {
                continue;
            }
            if ($policy['location'] != '-1' && $policy['location'] != $location) {
                continue;
            }
            if ($policy['marital'] != '-1' && $policy['marital'] != $marital) {
                continue;
            }
            erp_hr_apply_leave_policy(intval($employee['user_id']), $policy);
        }
    }
}