/** * Display Row * * @param array $departments * @param int $level * * @return void */ public function display_rows($departments = array(), $level = 0) { global $per_page; $results = new \WeDevs\ERP\HRM\Models\Department(); $departments = erp_array_to_object($results->orderby('id', 'desc')->get()->toArray()); $this->_display_rows_hierarchical($departments, $this->get_pagenum(), $per_page); }
/** * Get all the departments of a company * * @param int the company id * * @return array list of departments */ function erp_hr_get_departments($args = []) { $defaults = array('number' => 20, 'offset' => 0, 'orderby' => 'id', 'order' => 'asc', 'no_object' => false); $args = wp_parse_args($args, $defaults); $cache_key = 'erp-get-departments'; $results = wp_cache_get($cache_key, 'wp-erp'); $department = new \WeDevs\ERP\HRM\Models\Department(); if (isset($args['s'])) { $results = $department->where('title', 'LIKE', '%' . $_GET['s'] . '%')->get()->toArray(); $results = erp_array_to_object($results); } if (false === $results) { $results = $department->get()->toArray(); $results = erp_array_to_object($results); wp_cache_set($cache_key, $results, 'wp-erp'); } $results = erp_parent_sort($results); $departments = []; if ($results) { foreach ($results as $key => $row) { if (true === $args['no_object']) { $departments[] = $row; } else { $departments[] = new WeDevs\ERP\HRM\Department(intval($row->id)); } } } return $departments; }
/** * Create a new department * * @param array arguments * * @return int|false */ function erp_hr_create_department($args = array()) { $defaults = array('id' => 0, 'title' => '', 'description' => '', 'lead' => 0, 'parent' => 0, 'status' => 1); $fields = wp_parse_args($args, $defaults); // validation if (empty($fields['title'])) { return new WP_Error('no-name', __('No department name provided.', 'wp-erp')); } // unset the department id $dept_id = $fields['id']; unset($fields['id']); $department = new \WeDevs\ERP\HRM\Models\Department(); if (!$dept_id) { $department->create($fields); do_action('erp_hr_dept_new', $wpdb->insert_id, $fields); return $department->id; } else { $department->find($dept_id)->update($fields); do_action('erp_hr_dept_updated', $dept_id, $fields); return $dept_id; } return false; }