motorbike/app/Controllers/CompanyController.php
andrymodeste a195d24e78 feat: refonte gestion commandes, sécurité, impressions et notifications
## Gestion Moto & Commandes
- Correction des notifications pour la Caissière
- Le bouton "Enregistrer" changé en "Payer"
- La moto commandée reste visible dans la liste jusqu'à livraison par la sécurité

## Espace Sécurité
- Ajout des notifications de livraison
- Transfert vers l'espace commande après livraison

## Espace SuperAdmin
- Rejet de commande : le produit redevient disponible en stock automatiquement
- Correction de la gestion des rôles (permissions inversées)
- Avance complète : s'affiche directement chez la Caissière

## Historique des Actions
- Ajout de l'historique des actions pour SuperAdmin (traçabilité)

## Dashboard
- Filtre par date ajouté (par défaut : aujourd'hui)
- Affichage uniquement des données du site concerné

## Espace Commercial
- Liste des produits disponibles sur la liste déroulante dans l'ajout des commandes
- Le bouton "+" se cache après le premier clic pour les clients particuliers

## Impression Documents
- Refonte facture, bon de livraison, facture d'acompte (QR codes, infos dynamiques)

## Sidebar
- Correction des animations et du logo dynamique

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 07:28:05 +02:00

76 lines
2.8 KiB
PHP

<?php
namespace App\Controllers;
use App\Models\Company;
class CompanyController extends AdminController
{
public function __construct()
{
parent::__construct();
}
private $pageTitle = 'Company';
public function index()
{
$this->verifyRole('updateCompany');
// Validation rules
$validation = \Config\Services::validation();
$validation->setRules([
'company_name' => 'trim|required',
'service_charge_value' => 'trim|integer',
'vat_charge_value' => 'trim|integer',
'address' => 'trim|required',
'message' => 'trim|required',
]);
$Company = new Company();
// die(var_dump($validation->getErrors()));
if (strtolower($this->request->getMethod()) === 'post' && $validation->withRequest($this->request)->run()) {
// If the form is valid
$data = [
'company_name' => $this->request->getPost('company_name'),
'service_charge_value' => $this->request->getPost('service_charge_value'),
'vat_charge_value' => $this->request->getPost('vat_charge_value'),
'address' => $this->request->getPost('address'),
'phone' => $this->request->getPost('phone'),
'phone2' => $this->request->getPost('phone2'),
'NIF' => $this->request->getPost('nif'),
'STAT' => $this->request->getPost('stat'),
'country' => $this->request->getPost('country'),
'message' => $this->request->getPost('message'),
'currency' => $this->request->getPost('currency'),
];
// Upload du logo
$logoFile = $this->request->getFile('logo');
if ($logoFile && $logoFile->isValid() && !$logoFile->hasMoved()) {
$newName = 'company_logo.' . $logoFile->getExtension();
$logoFile->move(FCPATH . 'assets/images/', $newName, true);
$data['logo'] = 'assets/images/' . $newName;
}
if ($Company->updateCompany($data, 1)) {
session()->setFlashdata('success', 'Successfully updated');
return redirect()->to('/company');
} else {
session()->setFlashdata('errors', 'Error occurred!');
return redirect()->to('/company/index');
}
} else {
// If the form is invalid
$data = [
'currency_symbols' => $this->currency(),
'company_data' => $Company->getCompanyData(1),
'page_title' => $this->pageTitle,
'validation_errors' => $validation->getErrors() // Pass the Validation object
];
return $this->render_template('company/index', $data);
}
}
}