/** * 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); } } }