148 lines
5.0 KiB
PHP
148 lines
5.0 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers\Backend;
|
|
|
|
use CodeIgniter\RESTful\ResourceController;
|
|
|
|
use App\Models\StoreDiscount;
|
|
|
|
class StoreDiscountController extends ResourceController
|
|
{
|
|
public function index()
|
|
{
|
|
$storeDiscountModel = new StoreDiscount();
|
|
$data = $storeDiscountModel->findAll();
|
|
return $this->respond([
|
|
'status' => 'success',
|
|
'message' => 'Store discounts fetched successfully',
|
|
'data' => $data
|
|
], 200);
|
|
}
|
|
|
|
public function show($id = null)
|
|
{
|
|
$storeDiscountModel = new StoreDiscount();
|
|
$data = $storeDiscountModel->find($id);
|
|
return $this->respond([
|
|
'status' => 'success',
|
|
'message' => 'Store discount fetched successfully',
|
|
'data' => $data
|
|
], 200);
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
|
|
$rules = [
|
|
'discount_name' => 'required|string',
|
|
'discount_type' => 'required|string',
|
|
'discount_value' => 'required|numeric',
|
|
'outlet_list' => 'required|is_array',
|
|
'menu_item_list' => 'required|is_array',
|
|
'status' => 'required|string',
|
|
];
|
|
if (!$this->validate($rules)) {
|
|
return $this->failValidationErrors($this->validator->getErrors());
|
|
}
|
|
|
|
$storeDiscountModel = new StoreDiscount();
|
|
// Insert data to database outlet_list is array and store it in JSON
|
|
$discount_name = $this->request->getVar('discount_name');
|
|
$discount_type = $this->request->getVar('discount_type');
|
|
$discount_value = $this->request->getVar('discount_value');
|
|
$outlet_list = $this->request->getVar('outlet_list');
|
|
$menu_item_list = $this->request->getVar('menu_item_list');
|
|
$status = $this->request->getVar('status');
|
|
|
|
$implode_outlet_list = implode(',', $outlet_list);
|
|
$implode_menu_item_list = implode(',', $menu_item_list);
|
|
$data = [
|
|
'discount_name' => $discount_name,
|
|
'discount_type' => $discount_type,
|
|
'discount_value' => $discount_value,
|
|
'outlet_list' => $implode_outlet_list,
|
|
'menu_item_list' => $implode_menu_item_list,
|
|
'status' => $status,
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
'updated_at' => date('Y-m-d H:i:s'),
|
|
];
|
|
|
|
$storeDiscountModel->insert($data);
|
|
return $this->respond([
|
|
'status' => 'success',
|
|
'message' => 'Store discount created successfully',
|
|
'data' => $data
|
|
], 200);
|
|
}
|
|
|
|
public function update($id = null)
|
|
{
|
|
$storeDiscountModel = new StoreDiscount();
|
|
$storeDiscount = $storeDiscountModel->find($id);
|
|
if(!$storeDiscount) {
|
|
return $this->respond([
|
|
'status' => 'error',
|
|
'message' => 'Store discount not found',
|
|
'data' => null
|
|
], 404);
|
|
}
|
|
|
|
$rules = [
|
|
'discount_name' => 'required|string',
|
|
'discount_type' => 'required|string',
|
|
'discount_value' => 'required|numeric',
|
|
'outlet_list' => 'required|is_array',
|
|
'menu_item_list' => 'required|is_array',
|
|
'status' => 'required|string',
|
|
];
|
|
if (!$this->validate($rules)) {
|
|
return $this->failValidationErrors($this->validator->getErrors());
|
|
}
|
|
|
|
$discount_name = $this->request->getVar('discount_name');
|
|
$discount_type = $this->request->getVar('discount_type');
|
|
$discount_value = $this->request->getVar('discount_value');
|
|
$outlet_list = $this->request->getVar('outlet_list');
|
|
$menu_item_list = $this->request->getVar('menu_item_list');
|
|
$status = $this->request->getVar('status');
|
|
|
|
$implode_outlet_list = implode(',', $outlet_list);
|
|
$implode_menu_item_list = implode(',', $menu_item_list);
|
|
|
|
$data = [
|
|
'discount_name' => $discount_name,
|
|
'discount_type' => $discount_type,
|
|
'discount_value' => $discount_value,
|
|
'outlet_list' => $implode_outlet_list,
|
|
'menu_item_list' => $implode_menu_item_list,
|
|
'status' => $status,
|
|
'updated_at' => date('Y-m-d H:i:s'),
|
|
];
|
|
$storeDiscountModel->update($id, $data);
|
|
|
|
return $this->respond([
|
|
'status' => 'success',
|
|
'message' => 'Store discount updated successfully',
|
|
'data' => $data
|
|
], 200);
|
|
}
|
|
|
|
public function delete($id = null){
|
|
$storeDiscountModel = new StoreDiscount();
|
|
$storeDiscount = $storeDiscountModel->find($id);
|
|
if(!$storeDiscount) {
|
|
return $this->respond([
|
|
'status' => 'error',
|
|
'message' => 'Store discount not found',
|
|
'data' => null
|
|
], 404);
|
|
}
|
|
$storeDiscountModel->delete($id);
|
|
return $this->respond([
|
|
'status' => 'success',
|
|
'message' => 'Store discount deleted successfully',
|
|
'data' => null
|
|
], 200);
|
|
}
|
|
}
|