verifyRole('viewCategory');
$data['page_title'] = $this->pageTitle;
return $this->render_template('attributes/index', $data);
}
public function fetchAttributeDataById(int $id)
{
if ($id) {
$Attributes = new Attributes();
$data = $Attributes->getAttributeData($id);
return $this->response->setJSON($data);
}
}
public function fetchCategoryData()
{
// Prepare the response array
$result = ['data' => []];
$Attributes = new Attributes();
// Get category data
$data = $Attributes->getAttributeData(); // Make sure this function exists in your CategoryModel
// Iterate through each category and build the response
foreach ($data as $key => $value) {
// Initialize button HTML
$buttons = '';
// Check if the user has permission to update
if (in_array('updateCategory', $this->permission)) {
$buttons .= '';
}
// Check if the user has permission to delete
if (in_array('deleteCategory', $this->permission)) {
$buttons .= ' ';
}
// Check if the user has permission to delete
if (in_array('deleteCategory', $this->permission)) {
$buttons .= ' ';
}
// Determine the status label
$status = ($value['active'] == 1) ? 'Active' : 'Inactive';
$attributCount = $Attributes->countAttributeValue($value['id']);
// Add data to the result array
$result['data'][] = [
$value['name'],
$attributCount,
$status,
$buttons
];
}
// Return the result as JSON
return $this->response->setJSON($result);
}
public function create()
{
$this->verifyRole('createAttribute');
$response = [];
// Set validation rules
$validation = \Config\Services::validation();
$validation->setRules([
'attribute_name' => 'required',
'active' => 'required',
]);
$validationData = [
'attribute_name' => $this->request->getPost('attribute_name'),
'active' => $this->request->getPost('active'),
];
$Attributes = new Attributes();
if ($validation->run($validationData)) {
$data = [
'name' => $this->request->getPost('attribute_name'),
'active' => $this->request->getPost('active'),
];
if ($Attributes->create($data)) {
$response['success'] = true;
$response['messages'] = 'Crée avec succès';
} else {
$response['success'] = false;
$response['messages'] = 'Erreur dans la base de données lors de la création des informations sur la marque';
}
} else {
$response['success'] = false;
$response['messages'] = $validation->getErrors();
}
return $this->response->setJSON($response);
}
public function update(int $id)
{
$this->verifyRole('updateAttribute');
$response = [];
if ($id) {
// Set validation rules
$validation = \Config\Services::validation();
$validation->setRules([
'edit_attribute_name' => 'required',
'edit_active' => 'required',
]);
$validationData = [
'edit_attribute_name' => $this->request->getPost('edit_attribute_name'),
'edit_active' => $this->request->getPost('edit_active'),
];
$Attributes = new Attributes();
if ($validation->run($validationData)) {
$data = [
'name' => $this->request->getPost('edit_attribute_name'),
'active' => $this->request->getPost('edit_active'),
];
if ($Attributes->updateAttribute($data, $id)) {
$response['success'] = true;
$response['messages'] = 'Succesfully updated';
} else {
$response['success'] = false;
$response['messages'] = 'Error in the database while updated the brand information';
}
} else {
$response['success'] = false;
$response['messages'] = $validation->getErrors();
}
} else {
$response['success'] = false;
$response['messages'] = 'Error please refresh the page again!!';
}
return $this->response->setJSON($response);
}
public function remove()
{
$this->verifyRole('deleteAttribute');
$attribute_id = $this->request->getPost('attribute_id');
if ($attribute_id) {
$Attributes = new Attributes();
if ($Attributes->delete($attribute_id)) {
$response['success'] = true;
$response['messages'] = "Successfully removed";
} else {
$response['success'] = false;
$response['messages'] = "Error in the database while removing the brand information";
}
} else {
$response['success'] = false;
$response['messages'] = "Refersh the page again!!";
}
return $this->response->setJSON($response);
}
public function getValue(int $id)
{
$Attributes = new Attributes();
$data['attribute_data'] = $Attributes->getAttributeData($id);
$this->verifyRole('viewCategory');
$data['page_title'] = $this->pageTitle;
// die(var_dump($data));
$data['test'] = $id;
return $this->render_template('attributes/addvalue', $data);
}
public function fetchCategoryValueData(int $id)
{
if ($id) {
// Prepare the response array
$result = ['data' => []];
$Attributes = new Attributes();
// Get category data
$data = $Attributes->getAttributeValueData($id); // Make sure this function exists in your CategoryModel
// Iterate through each category and build the response
foreach ($data as $key => $value) {
// Initialize button HTML
$buttons = '';
// Check if the user has permission to update
if (in_array('updateCategory', $this->permission)) {
$buttons .= '';
}
// Check if the user has permission to delete
if (in_array('deleteCategory', $this->permission)) {
$buttons .= ' ';
}
// Add data to the result array
$result['data'][] = [
$value['value'],
$buttons
];
}
// Return the result as JSON
return $this->response->setJSON($result);
}
}
public function createValue()
{
$this->verifyRole('createAttribute');
$response = [];
// Set validation rules
$validation = \Config\Services::validation();
$validation->setRules([
'attribute_value_name' => 'required',
'attribute_parent_id' => 'required',
]);
$validationData = [
'attribute_value_name' => $this->request->getPost('attribute_value_name'),
'attribute_parent_id' => $this->request->getPost('attribute_parent_id'),
];
$Attributes = new Attributes();
if ($validation->run($validationData)) {
$data = [
'value' => $this->request->getPost('attribute_value_name'),
'attribute_parent_id' => $this->request->getPost('attribute_parent_id'),
];
if ($Attributes->createValue($data)) {
$response['success'] = true;
$response['messages'] = 'Crée avec succès';
} else {
$response['success'] = false;
$response['messages'] = 'Erreur dans la base de données lors de la création des informations sur la marque';
}
} else {
$response['success'] = false;
$response['messages'] = $validation->getErrors();
}
return $this->response->setJSON($response);
}
public function fetchAttributeValueById(int $id)
{
if ($id) {
$Attributes = new Attributes();
$data = $Attributes->getAttributeValueById($id);
return $this->response->setJSON($data);
}
}
public function updateValue(int $id)
{
$this->verifyRole('updateAttribute');
$response = [];
// Set validation rules
$validation = \Config\Services::validation();
$validation->setRules([
'edit_attribute_value_name' => 'required',
'attribute_parent_id' => 'required',
]);
$validationData = [
'edit_attribute_value_name' => $this->request->getPost('edit_attribute_value_name'),
'attribute_parent_id' => $this->request->getPost('attribute_parent_id'),
];
$Attributes = new Attributes();
if ($validation->run($validationData)) {
$data = [
'value' => $this->request->getPost('edit_attribute_value_name'),
'attribute_parent_id' => $this->request->getPost('attribute_parent_id'),
];
if ($Attributes->updateValue($data, $id)) {
$response['success'] = true;
$response['messages'] = 'Succesfully updated';
} else {
$response['success'] = false;
$response['messages'] = 'Error in the database while updated the brand information';
}
} else {
$response['success'] = false;
$response['messages'] = $validation->getErrors();
}
return $this->response->setJSON($response);
}
public function removeValue()
{
$response = [];
$Attributes = new Attributes();
if ($this->request->getPost('attribute_value_id') && $Attributes->removeValue($this->request->getPost('attribute_value_id'))) {
$response['success'] = true;
$response['messages'] = 'Succesfully removed';
} else {
$response['success'] = false;
$response['messages'] = 'Error in the database while updated the brand information';
}
return $this->response->setJSON($response);
}
}