You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
5.0 KiB
150 lines
5.0 KiB
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Models\Securite;
|
|
use App\Models\Products;
|
|
use App\Models\Orders;
|
|
use App\Models\Stores;
|
|
|
|
class SecuriteController extends AdminController
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
helper(['form', 'url']);
|
|
}
|
|
|
|
private $pageTitle = 'Validation sortie motos';
|
|
|
|
public function index()
|
|
{
|
|
$this->verifyRole('viewSecurite');
|
|
$data['page_title'] = $this->pageTitle;
|
|
|
|
return $this->render_template('securite/index', $data);
|
|
}
|
|
|
|
public function fetchSecuriteData()
|
|
{
|
|
$securiteModel = new Securite();
|
|
$Products = new Products();
|
|
$securites = $securiteModel->getAllSecuriteData();
|
|
$result = ['data' => []];
|
|
|
|
foreach ($securites as $securite) {
|
|
if ($securite['status'] === 'PENDING') {
|
|
$product = $Products->getProductData($securite['product_id']);
|
|
if (! $product) continue;
|
|
|
|
// Bouton d’action
|
|
$buttons = in_array('validateCommande1', $this->permission)
|
|
? '<button type="button" class="btn btn-success" onclick="editFunc(' . $securite['id'] . ')" data-toggle="modal" data-target="#editModal"><i class="fa fa-check"></i></button>'
|
|
: '';
|
|
|
|
// Statut
|
|
$statut = '<span class="label label-warning">EN ATTENTE DE VALIDATION</span>';
|
|
|
|
// Image
|
|
$img = '<img src="' . base_url('assets/images/product_image/' . $product['image']) . '" '
|
|
. 'alt="' . esc($product['name']) . '" class="img-circle" width="50" height="50" />';
|
|
|
|
$result['data'][] = [
|
|
'image' => $img,
|
|
'ugs' => esc($product['sku']),
|
|
'designation' => esc($product['name']),
|
|
'statut' => $statut,
|
|
'action' => $buttons
|
|
];
|
|
|
|
}
|
|
}
|
|
|
|
return $this->response->setJSON($result);
|
|
}
|
|
|
|
public function fetchSecuriteDataById($id)
|
|
{
|
|
|
|
if ($id) {
|
|
$Securite = new Securite();
|
|
$Orders = new Orders();
|
|
$Products = new Products();
|
|
|
|
$data = $Securite->getSecuriteData($id);
|
|
$order_data = $Orders->getOrdersDataByBillNo($data['bill_no']);
|
|
$product = $Products->getProductData($data['product_id']);
|
|
|
|
$response = [
|
|
'image' => base_url('assets/images/product_image/' . $product['image']),
|
|
'nom' => $product['name'],
|
|
'ugs' => $product['sku'],
|
|
'bill_no' => $data['bill_no'],
|
|
'customer_name' => $order_data['customer_name'],
|
|
'customer_address' => $order_data['customer_address'],
|
|
'customer_phone' => $order_data['customer_phone'],
|
|
'customer_cin' => $order_data['customer_cin'],
|
|
];
|
|
|
|
return $this->response->setJSON($response);
|
|
}
|
|
}
|
|
|
|
public function update(int $id)
|
|
{
|
|
$this->verifyRole('updateCommande1');
|
|
$storeModel = new Securite();
|
|
$post = $this->request->getPost();
|
|
$response = [];
|
|
|
|
if ($id && isset($post['status'])) {
|
|
$data = [
|
|
'status' => $post['status'],
|
|
'active' => 0
|
|
];
|
|
$session = session();
|
|
$users = $session->get('user');
|
|
$Notification = new NotificationController();
|
|
if ($storeModel->updateSecurite($data, $id)) {
|
|
if ($post['status'] === "Validé") {
|
|
$Notification->createNotification('Une commande a été validé', "COMMERCIALE",(int)$users['store_id'], 'orders');
|
|
}
|
|
$response = ['success' => true, 'messages' => 'Mise à jour réussie'];
|
|
} else {
|
|
$response = ['success' => false, 'messages' => 'Erreur en base lors de la mise à jour'];
|
|
}
|
|
} else {
|
|
$response = ['success' => false, 'messages' => 'ID ou statut manquant'];
|
|
}
|
|
|
|
return $this->response->setJSON($response);
|
|
}
|
|
|
|
|
|
|
|
public function remove()
|
|
{
|
|
$this->verifyRole('deleteCommande1');
|
|
$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);
|
|
}
|
|
}
|