verifyRole('viewStore'); $data['page_title'] = $this->pageTitle; return $this->render_template('stores/index', $data); } public function fetchStoresDataById($id) { if($id) { $Stores = new Stores(); $data = $Stores->getStoresData($id); echo json_encode($data); } } public function fetchStoresData() { $storeModel = new Stores(); // Load the StoreModel $stores = $storeModel->findAll(); // Fetch all data $result = ['data' => []]; // Iterate through the data foreach ($stores as $key => $store) { // Action buttons $buttons = ''; // Check permissions for updating the store if (in_array('updateStore', $this->permission)) { $buttons .= ''; } // Check permissions for deleting the store if (in_array('deleteStore', $this->permission)) { $buttons .= ' '; } // Status display $status = ($store['active'] == 1) ? 'Active' : 'Inactive'; // Add the row data $result['data'][$key] = [ $store['name'], // Store name $status, // Active or inactive status $buttons // Action buttons ]; } // Return data in JSON format return $this->response->setJSON($result); } public function create() { $this->verifyRole('createStore'); $response = []; // Set validation rules $validation = \Config\Services::validation(); $validation->setRules([ 'store_name' => 'required', 'active' => 'required', ]); $validationData = [ 'store_name' => $this->request->getPost('store_name'), 'active' => $this->request->getPost('active'), ]; // Run validation if ($validation->run($validationData)) { // // Prepare data $data = [ 'name' => $this->request->getPost('store_name'), 'active' => $this->request->getPost('active'), ]; // Load the model and create the store $storeModel = new Stores(); if ($storeModel->createStore($data)) { $response['success'] = true; $response['messages'] = 'Successfully created'; } else { $response['success'] = false; $response['messages'] = 'Error in the database while creating the store'; } } else { // Validation failed, return error messages $response['success'] = false; $response['messages'] = $validation->getErrors(); } return $this->response->setJSON($response); } public function update(int $id) { $this->verifyRole('updateStore'); $response = []; // die(var_dump($this->request->getPost())); if ($id) { // Set validation rules $validation = \Config\Services::validation(); $validation->setRules([ 'edit_store_name' => 'required', 'edit_active' => 'required', ]); $validationData = [ 'edit_store_name' => $this->request->getPost('edit_store_name'), 'edit_active' => $this->request->getPost('edit_active'), ]; $storeModel = new Stores(); if ($validation->run($validationData)) { $data = [ 'name' => $this->request->getPost('edit_store_name'), 'active' => $this->request->getPost('edit_active'), ]; if ($storeModel->updateStore($data, $id)) { $response['success'] = true; $response['messages'] = 'Mise à jour réussie'; } else { $response['success'] = false; $response['messages'] = 'Erreur dans la base de données lors de la mise à jour du magasin'; } } else { // Validation failed, return error messages $response['success'] = false; $response['messages'] = $validation->getErrors(); } } else { $response['success'] = false; $response['messages'] = 'Erreur, veuillez actualiser la page à nouveau !!'; } return $this->response->setJSON($response); } public function remove() { $this->verifyRole('deleteStore'); $response = []; $storeId = $this->request->getPost('store_id'); if ($storeId) { $storeModel = new Stores(); if ($storeModel->delete($storeId)) { $response['success'] = true; $response['messages'] = "Supprimé avec succès"; } else { $response['success'] = false; $response['messages'] = "Erreur dans la base de données lors de la suppression des informations sur la marque"; } } else { $response['success'] = false; $response['messages'] = "Référez à nouveau la page !!"; } return $this->response->setJSON($response); } }