Example #1
0
<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>
Example #2
0
 /**
  * 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;
     }
 }
Example #3
0
/**
 * 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;
}
Example #4
0
 /**
  * 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));
 }
Example #6
0
 /**
  * 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);
     }
 }