avatar
كود ottplayer 2023 - ottplayer code 2023

ibrahimayoub 653 11th Jun, 2023

/** Controller **/

public function fetch_department()
	{
		if (!$this->isLogin() || !in_array($this->me["position"], PERMISSION_GROUP3)) {
			return $this->getResponse([
				"draw" => 1,
				"recordsTotal" => 0,
				"recordsFiltered" => 0,
				"data" => []
			]);
		}
		$order = [];
		$orders = $this->request->getVar("order");
		if ($orders != null) {
			$columns = $this->request->getVar("columns");
			foreach ($orders as $value) {
				$id = $value["column"];
				$field = $columns[$id]["data"];
				$val = ($value["dir"] == "asc") ? true : false;
				$order[$field] = $val;
			}
		}
		$result = $this->departmentModel->getDepartmentByName($this->getParammeter(), $order);

		return $this->getResponse([
			"draw" => intval($this->request->getVar("draw")),
			"recordsTotal" => $result['total'],
			"recordsFiltered" => count($result['result']),
			"data" => $result['result']
		]);
	}

/** Model **/
 public function getDepartmentByName($input, $order) {
        try {
            $builder = $this->builder();

            $builder->select('id, name, short_name, note');
            $total = $builder->countAllResults(false);

            if(isset($input['name'])) {
                $builder->like('name', $input['name'], 'both');
            }
            if(isset($input['shortname'])) {
                $builder->like('short_name', $input['shortname'], 'both');
            }
            $builder->where('del_flag', 0);
            foreach ($order as $key => $value) {
                if (isset($order[$key])) {
                    $builder->orderBy($key,($value)?'ASC':'DESC');
                }
            }

            $result = $builder->get();
            return ["result" => $result->getResultArray(), "total" => $total];

        }catch(DatabaseException $db_e) {
            log_message('error', '[ERROR] --> Use function: {function}. {exception} '."\n".'[MYSQL] "{query}"', ['exception' => $db_e,'function' => __FUNCTION__,'query' => $this->db->getLastQuery()]);

            return [];
        }
    }
Markup
To share this paste please copy this url and send to your friends
RAW Paste Data