<div class="wrap erp hrm-dashboard"> <h2><?php _e('HR Management', '$domain'); ?> </h2> <div class="erp-single-container"> <div class="erp-area-left"> <?php if (current_user_can('erp_create_employee')) { ?> <?php $employees = erp_hr_get_employees(); $departments = erp_hr_get_departments(); $designations = erp_hr_get_designations(); ?> <div class="badge-container"> <div class="badge-wrap badge-green"> <div class="badge-inner"> <h3><?php echo number_format_i18n(count($employees), 0); ?> </h3> <p><?php _e('Employees', 'wp-erp'); ?> </p>
/** * Add entitlement with leave policies to employees * * @return void */ public function leave_entitlement() { if (!wp_verify_nonce($_POST['_wpnonce'], 'erp-hr-leave-assign')) { die(__('Something went wrong!', 'wp-erp')); } $affected = 0; $errors = array(); $employees = array(); $cur_year = (int) date('Y'); $page_url = admin_url('admin.php?page=erp-leave-assign&tab=assignment'); $is_single = !isset($_POST['assignment_to']); $leave_policy = isset($_POST['leave_policy']) ? intval($_POST['leave_policy']) : 0; $leave_period = isset($_POST['leave_period']) ? intval($_POST['leave_period']) : 0; $single_employee = isset($_POST['single_employee']) ? intval($_POST['single_employee']) : 0; $location = isset($_POST['location']) ? intval($_POST['location']) : 0; $department = isset($_POST['department']) ? intval($_POST['department']) : 0; $comment = isset($_POST['comment']) ? wp_kses_post($_POST['comment']) : 0; if (!$leave_policy) { $errors[] = 'invalid-policy'; } if (!in_array($leave_period, array($cur_year, $cur_year + 1))) { $errors[] = 'invalid-period'; } if ($is_single && !$single_employee) { $errors[] = 'invalid-employee'; } // bail out if error found if ($errors) { $first_error = reset($errors); $redirect_to = add_query_arg(array('error' => $first_error), $page_url); wp_safe_redirect($redirect_to); exit; } // fetch employees if not single if (!$is_single) { $company_id = erp_get_current_company_id(); $employees = erp_hr_get_employees(array('company_id' => $company_id, 'location' => $location, 'department' => $department)); } else { $user = get_user_by('id', $single_employee); $emp = new \stdClass(); $emp->user_id = $user->ID; $emp->display_name = $user->display_name; $employees[] = $emp; } if ($employees) { $from_date = $leave_period . '-01-01'; $to_date = $leave_period . '-12-31'; $policy = erp_hr_leave_get_policy($leave_policy); if (!$policy) { return; } foreach ($employees as $employee) { if (!erp_hr_leave_has_employee_entitlement($employee->user_id, $leave_policy, $leave_period)) { $data = array('user_id' => $employee->user_id, 'policy_id' => $leave_policy, 'days' => $policy->value, 'from_date' => $from_date, 'to_date' => $to_date, 'comments' => $comment, 'status' => 1); $inserted = erp_hr_leave_insert_entitlement($data); if (!is_wp_error($inserted)) { $affected += 1; } } } $redirect_to = add_query_arg(array('affected' => $affected), $page_url); wp_safe_redirect($redirect_to); exit; } }
/** * Get the raw employees dropdown * * @param int company id * * @return array the key-value paired employees */ function erp_hr_get_employees_dropdown_raw($exclude = null) { $employees = erp_hr_get_employees(array('no_object' => true)); $dropdown = array(0 => __('- Select Employee -', 'wp-erp')); if ($employees) { foreach ($employees as $key => $employee) { if ($exclude && $employee->user_id == $exclude) { continue; } $dropdown[$employee->user_id] = $employee->display_name; } } return $dropdown; }
/** * Prepare the class items * * @return void */ function prepare_items() { $columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array($columns, $hidden, $sortable); $per_page = 20; $current_page = $this->get_pagenum(); $offset = ($current_page - 1) * $per_page; $this->page_status = isset($_GET['status']) ? sanitize_text_field($_GET['status']) : '2'; // only ncessary because we have sample data $args = array('offset' => $offset, 'number' => $per_page); $this->counts = erp_hr_leave_get_requests_count(); $this->items = erp_hr_get_employees($args); $this->set_pagination_args(array('total_items' => $this->counts[$this->page_status]['count'], 'per_page' => $per_page)); }
/** * Prepare the class items * * @return void */ function prepare_items() { $columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array($columns, $hidden, $sortable); $per_page = 20; $current_page = $this->get_pagenum(); $offset = ($current_page - 1) * $per_page; $this->page_status = isset($_GET['status']) ? sanitize_text_field($_GET['status']) : '2'; // only ncessary because we have sample data $args = array('offset' => $offset, 'number' => $per_page); if (isset($_REQUEST['s']) && !empty($_REQUEST['s'])) { $args['s'] = $_REQUEST['s']; } if (isset($_REQUEST['orderby']) && !empty($_REQUEST['orderby'])) { $args['orderby'] = $_REQUEST['orderby']; } if (isset($_REQUEST['status']) && !empty($_REQUEST['status'])) { if ($_REQUEST['status'] != 'all') { $args['status'] = $_REQUEST['status']; } } if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) { $args['order'] = $_REQUEST['order']; } if (isset($_REQUEST['filter_designation']) && $_REQUEST['filter_designation']) { $args['designation'] = $_REQUEST['filter_designation']; } if (isset($_REQUEST['filter_department']) && $_REQUEST['filter_department']) { $args['department'] = $_REQUEST['filter_department']; } if (isset($_REQUEST['filter_employment_type']) && $_REQUEST['filter_employment_type']) { $args['type'] = $_REQUEST['filter_employment_type']; } $this->counts = erp_hr_employee_get_status_count(); $this->items = erp_hr_get_employees($args); $this->set_pagination_args(array('total_items' => erp_hr_count_employees(), 'per_page' => $per_page)); }
/** * Save Announcement post meta * * @since 0.1 * * @param integer $post_id * @param object $post * * @return void */ function save_announcement_meta($post_id, $post) { if (!isset($_POST['hr_announcement_meta_action_nonce'])) { return $post_id; } if (!wp_verify_nonce($_POST['hr_announcement_meta_action_nonce'], 'hr_announcement_meta_action')) { return $post_id; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } $post_type = get_post_type_object($post->post_type); if (!current_user_can($post_type->cap->edit_post, $post_id)) { return $post_id; } if (!current_user_can('erp_manage_announcement')) { return $post_id; } $announcement_assign_type = isset($_POST['hr_announcement_assign_type']) ? $_POST['hr_announcement_assign_type'] : ''; $announcement_assign_employee = isset($_POST['hr_announcement_assign_employee']) ? $_POST['hr_announcement_assign_employee'] : array(); $announcement_assign_employee_array = array(); update_post_meta($post_id, '_announcement_type', $announcement_assign_type); update_post_meta($post_id, '_announcement_selected_user', $announcement_assign_employee); if ($announcement_assign_type == 'selected_employee') { $this->process_employee_announcement_data($announcement_assign_employee, $post_id); } elseif ($announcement_assign_type == 'all_employee') { $employees = erp_hr_get_employees(array('no_object' => true)); if ($employees) { foreach ($employees as $user) { $announcement_assign_employee_array[] = $user->user_id; } } $this->process_employee_announcement_data($announcement_assign_employee_array, $post_id); } }