SOMALEV FINANCE360 (leasing, crédits CMT, trésorerie) - Installation sur hébergement cPanel
======================================================

Prérequis : PHP 8.0 ou plus avec PDO (SQLite ou MySQL). Aucune autre extension requise.

1. Dans cPanel > Gestionnaire de fichiers, créez un dossier (ex. public_html/leasing).
2. Envoyez le fichier gestion_leasing.zip dans ce dossier, puis "Extraire".
3. Vérifiez que les dossiers data/ et uploads/ sont en écriture (droits 755 ; 775 si besoin).
4. Ouvrez https://votre-domaine/leasing/install.php
   - SQLite : rien à configurer (recommandé, base stockée dans data/, protégée).
   - MySQL : créez d'abord la base et l'utilisateur dans cPanel > Bases de données MySQL.
   - Choisissez l'identifiant et le mot de passe administrateur.
   - Laissez cochée l'importation des 30 contrats et 6 avenants.
5. SUPPRIMEZ install.php après l'installation.
6. Connectez-vous, puis créez les autres utilisateurs dans le menu Utilisateurs.

Profils : Administrateur (tout + utilisateurs + paramètres), Gestionnaire (ajout/modification),
Lecture seule (consultation, simulations, exports).

Sauvegarde : téléchargez régulièrement le dossier data/ (SQLite) ou exportez la base MySQL
avec phpMyAdmin, ainsi que le dossier uploads/.

Données importées : extraites des PDF scannés. Les contrats marqués d'un point jaune ont une
date de 1re échéance estimée : corrigez-la dans "Modifier" puis décochez "Données à vérifier".
Le contrat Maghrebail 1827350 (bon de commande) attend durée, loyer et VR.

Calculs :
- RAP = loyers restant à échoir après la date de calcul (avenants appliqués à leur date d'effet).
- Coût = total des loyers + VR - valeur d'acquisition HT.
- Taux = taux implicite (valeur HT = loyers actualisés + VR), hors frais et préloyers.
- Montant du rachat : réglable dans Paramètres (loyers restants + VR, ou capital restant dû + VR,
  avec indemnité en %).

MISE À JOUR D'UNE INSTALLATION EXISTANTE
----------------------------------------
Envoyez le nouveau ZIP et extrayez-le par-dessus l'ancien dossier. Ne supprimez pas
config.local.php, data/ ni uploads/. Supprimez à nouveau install.php.
La base est mise à jour automatiquement à la première connexion (e-mail des utilisateurs,
règles de notification, historique des envois).

NOTIFICATIONS PAR E-MAIL
------------------------
1. cPanel > Comptes de messagerie : créez par ex. leasing@votre-domaine.ma.
   "Connect Devices" (Configurer le client) donne le serveur SMTP : souvent
   mail.votre-domaine.ma, port 465 (SSL).
2. Application > Notifications > Configuration e-mail : mode SMTP, serveur, port 465, SSL,
   identifiant = adresse complète, mot de passe du compte, adresse d'expédition = la même.
   Cliquez "Tester la configuration".
3. Utilisateurs : renseignez l'e-mail de chaque personne à prévenir.
4. Notifications > Nouvelle règle : fréquence (jour, semaine, mois), seuils 1/2/3/6 mois,
   destinataires (utilisateurs cochés + autres adresses), organismes.
   "Tester" envoie le rapport à une seule adresse ; "Envoyer maintenant" à tous.
5. cPanel > Tâches Cron : une fois par jour, commande affichée dans la page Notifications :
   /usr/local/bin/php -q /home/COMPTE/public_html/leasing/cron.php >/dev/null 2>&1

CRÉDITS MOYEN TERME (CMT)
-------------------------
Menu "Crédits (CMT)". Les 3 crédits fournis (BMCE Oxygène 71058805, BMCE Relance 71032561,
BMCI 4065952 01) sont importés automatiquement à la première connexion après la mise à jour,
avec leurs tableaux d'amortissement PDF.
- Intérêts en jours exacts/360 (BMCE) ou 30/360 (BMCI), TVA 10 % sur intérêts, franchise de capital.
- Taux variable : ajoutez chaque révision (date d'effet, nouveau taux, échéance si connue)
  dans la fiche du crédit ; le tableau est recalculé.
- Simulations : remboursement anticipé total ou partiel, variation de taux, nouveau crédit,
  capacité d'emprunt.
- Les CMT sont inclus dans le tableau de bord, la vue globale et les alertes e-mail.


============================================================
TRÉSORERIE DES GROUPES (KENZ POWER HOLDING, EMPOWER HOLDING)
============================================================
Module de suivi de trésorerie du groupe : 5 sociétés, 6 comptes bancaires
(Kenz Power Holding BMCE + SGMB, Empower Facilities, Windon Energy, Marshpark,
Empower Reality Management). Il est indépendant des modules Leasing et CMT.

1) Accès
   - Les administrateurs y ont toujours accès.
   - Pour les autres utilisateurs : menu Administration > Utilisateurs, cocher
     la case « Trésorerie ». Un profil « lecteur » consulte sans pouvoir saisir.

2) Première ouverture après la mise à jour
   - Les tables sont créées automatiquement et les 6 fichiers Excel de
     trésorerie sont importés (279 mouvements, du 01/05/2023 au 17/09/2026).
   - Une fois vérifié, vous pouvez supprimer inc/treso_seed.json (données
     déjà en base ; ce fichier n'est plus utilisé).

3) Saisie (menu Trésorerie > Saisie)
   - Saisie rapide : compte, + Encaissement / − Décaissement, date, montant,
     libellé du relevé. La catégorie est proposée automatiquement. Le montant
     accepte une somme (2,75+7,5+20). « Enregistrer et saisir un autre »
     garde le compte et la date.
   - Relevé bancaire : grille à la manière d'un relevé (date, libellé, débit,
     crédit). On peut coller des lignes copiées depuis Excel ou charger un
     fichier CSV. Les lignes déjà saisies sont ignorées (pas de doublon).
     On peut indiquer le solde final du relevé pour contrôler l'écart.
   - Un libellé non reconnu est placé dans « À classer » et se classe ensuite
     en un clic depuis Mouvements (filtre « À classer »).

4) Classement automatique (menu Classement)
   - Ordre de décision : 1) même libellé déjà classé, 2) mots-clés.
   - Mots-clés et catégories modifiables ; zone de test d'un libellé.
   - Les règles sont lues de haut en bas : la colonne « Ordre » décide.

5) Autres écrans
   - Tableau de bord : trésorerie totale, position par société, flux du mois,
     courbes sur 12 mois, derniers mouvements, alertes (dépassement, relevé
     ancien, écart de rapprochement, lignes à classer).
   - Mouvements : recherche, filtres, export CSV, modification, suppression.
   - Plan de trésorerie : présentation mensuelle identique à vos fichiers
     Excel (recettes, dépenses, solde final), par groupe, société ou compte.
   - Comptes bancaires : soldes, autorisation de découvert, contrôle avec le
     relevé de la banque, journal d'un compte avec solde courant.
   - Les virements entre sociétés du groupe sont repérés (badge « groupe ») et
     isolés dans les flux du mois et dans le plan consolidé.
   - Un mouvement daté dans le futur est traité comme prévisionnel : il
     n'entre pas dans le solde actuel mais dans la prévision à 30 jours.

6) Mise à jour
   Extraire ce ZIP dans le dossier de l'application (ds.somalev.tech/leasing)
   en écrasant les fichiers, puis Ctrl+F5. Le fichier install.php, la base
   (data/), config.local.php et uploads/ ne sont pas touchés.


------------------------------------------------------------
TRÉSORERIE : DEUX GROUPES, FILIALES, DÉTAIL DES MONTANTS
------------------------------------------------------------
- Groupes : Kenz Power Holding (Empower Facilities, Empower Reality Management)
  et Empower Holding (Windon Energy, Marshpark, PSA, Repair4You). Le sélecteur
  en haut des pages Trésorerie bascule d'un groupe à l'autre ou affiche « Tous
  les groupes ». Le groupe choisi est mémorisé.
- Tableau de bord : filtre « Filiale » pour isoler une société (ou la holding).
- Plan de trésorerie : par défaut « Tous flux » ; « Hors flux internes » isole
  les virements entre comptes et sociétés du périmètre. Un clic sur un montant
  ouvre la liste des mouvements qui le composent (fenêtre), avec un lien vers
  la page Mouvements pour filtrer, modifier ou exporter.
- Flux internes : les virements de fonds / de compensation entre comptes d'une
  même société sont toujours internes. Un virement vers une société du même
  périmètre est interne ; vers une société d'un autre groupe, il reste un flux
  réel pour le périmètre affiché.
- Changer le rattachement d'une société : Comptes bancaires > Sociétés > colonne
  « Rattachée à ».
- Catégorie « Ajustements » : recalages de solde repérés dans les fichiers Excel
  (solde initial saisi à la main pour s'aligner sur la banque). Ils rendent les
  soldes identiques à vos fichiers ; à justifier quand vous retrouvez les
  mouvements manquants.
- Première ouverture après mise à jour : migration automatique (v6) et import
  des fichiers Empower Holding, PSA et Repair4You. Les fichiers
  inc/treso_seed.json et inc/treso_seed_v6.json peuvent ensuite être supprimés.


------------------------------------------------------------
CONTACTS SALARIÉS (annuaire du personnel)
------------------------------------------------------------
- Menu « Contacts salariés » > Annuaire / Nouveau salarié.
- Accès : les administrateurs y ont toujours accès ; pour les autres, cocher
  « Contacts salariés » dans Administration > Utilisateurs. Un profil « lecteur »
  consulte et exporte sans pouvoir modifier ; le N° CIN n'est visible que pour
  les profils autorisés à modifier.
- Première ouverture après mise à jour : la table est créée et la base
  operateur3.xlsx importée (926 fiches : 106 actifs, 820 inactifs).
  Ensuite, inc/salaries_seed.json peut être supprimé (données déjà en base).
- Recherche instantanée : tapez plusieurs mots (nom, prénom, emploi, matricule,
  téléphone), sans tenir compte des majuscules ni des accents.
  Filtres : Actifs / Inactifs / Tous ; Avec numéro / Sans numéro / Tous (par défaut :
  avec numéro) ; emploi ; tri (nom, embauche, âge, départ).
  Quand des salariés sans numéro sont masqués, un message permet de les afficher.
- Actif / inactif : un salarié est inactif dès qu'une date de départ passée est
  renseignée. Vider la date de départ le réactive.
- Âge et ancienneté sont calculés automatiquement à la date du jour. Un âge
  inférieur à 18 ans ou supérieur à 70 ans est signalé « ⚠ à vérifier »
  (dates de naissance probablement erronées dans la base d'origine).
- Un salarié ré-embauché apparaît avec plusieurs dossiers (même CIN ou même
  nom, prénom et naissance) : la fiche liste ses autres dossiers.
- Les numéros sont cliquables (appel) avec un lien WhatsApp.
- Export CSV de la liste filtrée depuis l'annuaire.


------------------------------------------------------------
REFINANCEMENT (financements en devises de SOMALEV)
------------------------------------------------------------
- Menu « Refinancement » : Tableau de bord, Dossiers, Nouveau dossier, Notification du lundi.
- Un dossier = un financement en devises d'une facture fournisseur : banque,
  attestation de mise en place (oui/non), fournisseur / objet, devise, montant
  en devise et en MAD (le cours de mise en place est calculé), date de dépôt,
  durée, taux annuel, dates de décaissement et prorogations 1 à 3, statut,
  cours négocié, montant débité.
- L'échéance retenue est la dernière date de décaissement renseignée.
- Calculs : intérêts estimés = montant devise x taux x durée totale / 360.
  « À prévoir » = (principal + intérêts) x cours négocié, à défaut cours de mise
  en place. Écart = montant MAD - montant débité (comme dans le fichier Excel).
  Au règlement, le coût du refinancement (change + intérêts) est affiché.
- Points d'attention : attestation manquante, échéance dépassée / sous 7 ou
  30 jours, cours à négocier (échéance sous 15 jours), échéance différente de
  dépôt + durée (prorogation non saisie ?).
- Notification hebdomadaire : e-mail de synthèse chaque lundi à 8 h (jour et
  heure réglables). Réglages, destinataires, aperçu, test et envoi manuel :
  Refinancement > Notification du lundi (administrateurs).
  L'envoi utilise la tâche cron de Notifications (cPanel > Tâches Cron, une fois
  par jour à 8 h : 0 8 * * *) : le message part à la première exécution après
  l'heure prévue, une seule fois par semaine, avec rattrapage si la tâche a
  manqué le lundi. La configuration SMTP est celle de Notifications.
- Première ouverture après mise à jour : table créée et fichier refinancement.xlsx
  importé (2 dossiers). inc/refinancements_seed.json peut ensuite être supprimé.


------------------------------------------------------------
SOMALEV (TRÉSORERIE), REFINANCEMENT PAR SOCIÉTÉ ET BANQUE, IMPORT DE RELEVÉS,
PARAMÈTRE RAP, DOCUMENTS DES COMPTES
------------------------------------------------------------
1) Trésorerie de Somalev
   - Somalev est une filiale d'Empower Holding (groupe Empower Holding dans le
     sélecteur de la trésorerie) avec 9 comptes : BMCE (MAD, USD, EUR), SGMB, BMCI,
     Attijariwafa bank, Crédit du Maroc, CIH, Banque Populaire.
   - Comptes en devises : aucune conversion ni addition entre devises. Chaque devise
     (MAD, USD, EUR) est traitée séparément dans toute la trésorerie : un sélecteur
     « Devise des comptes » (sous les boutons de groupe) apparaît quand le périmètre
     contient plusieurs devises. Tableau de bord, mouvements et plan de trésorerie
     n'affichent que les comptes de la devise choisie ; chaque solde porte sa devise.
   - La devise figure dans le nom de chaque compte (ex. « BMCE Bank of Africa · Compte
     en devises USD ») dans toutes les listes et le journal.
   - Import initial des 9 fichiers Excel : les soldes correspondent au « Solde final »
     de chaque fichier. Les recalages de solde et écarts de formule des fichiers
     apparaissent dans la catégorie « Ajustements » (à justifier).
   - Les fichiers AWB et BCP contenaient le même historique 2020 à février 2024
     (copie) : seul l'historique propre à chaque compte est importé (AWB depuis le
     01/01/2025, BCP depuis le 24/11/2025).
2) Refinancement, sous-catégorie de la trésorerie
   - Catégories : Refinancement > Déblocage refinancement (entrée), Tombée
     refinancement / ILC / placement (sortie), Intérêts et commissions de
     refinancement (sortie). Elles figurent dans le plan de trésorerie, par compte
     (banque) et par société.
   - Dossiers de refinancement : chaque dossier est rattaché à une société et à un
     compte bancaire (filtres, répartition par société et par banque, e-mail du lundi).
   - Dans la saisie, une ligne classée en Refinancement peut être liée à un dossier ;
     la fiche du dossier liste alors ses mouvements de trésorerie.
3) Import de relevés (Trésorerie > Saisie > Relevé bancaire)
   - Choisir le compte (société et banque), puis « Importer un relevé » : fichier
     Excel (.xlsx) ou CSV. Les colonnes date, libellé, débit, crédit (ou montant
     signé) sont repérées automatiquement ; les totaux et lignes sans montant sont
     ignorés. Vous vérifiez la grille, puis enregistrez (doublons ignorés).
   - Les PDF ne sont pas lus : exporter le relevé en Excel ou CSV depuis la banque.
4) Paramètres leasing > Calcul du reste à payer (RAP)
   - « RAP seul » (loyers restants) ou « RAP + VR » (loyers restants + valeur
     résiduelle). Appliqué au tableau de bord, aux contrats, à la vue globale, aux
     simulations de reste à payer et aux e-mails. Le rachat anticipé garde sa
     propre méthode (la VR n'est jamais comptée deux fois).
5) Comptes bancaires > Documents
   - Pour chaque compte : attestation de RIB, contrat banque, avenants au contrat
     banque (PDF, image, Word, Excel ; 15 Mo). Colonne « Documents » dans la liste
     des comptes (✔ = présent). Fichiers stockés dans uploads/treso/ (protégé).
6) Après mise à jour
   - Migration automatique à la première ouverture. inc/treso_seed_v8.json, inc/treso_seed_v7.json,
     inc/treso_seed_v6.json et inc/treso_seed.json peuvent ensuite être supprimés.

7) Cellules Somalev ajoutées
   - Les 22 cellules des fichiers Excel de Somalev saisies mais non comptées dans leur
     solde ont été ajoutées (migration automatique). Le solde des comptes les inclut
     désormais : il peut donc différer du « Solde final » des fichiers Excel
     (variations : SGMB -58 574,57 ; AWB -393,25 ; CDM -179 835,23 ; BCP -9 361 ;
     BMCE : voir Comptes bancaires). Les lignes portent une note explicative.

8) Menu
   - Trésorerie contient deux sous-menus : Refinancement (tableau de bord, dossiers) et
     Crédits CMT (tableau de bord, crédits, vue globale, simulations).
   - Les utilisateurs sans accès à la trésorerie gardent le menu « Crédits CMT » comme
     avant ; le Refinancement exige l'accès à la trésorerie.
   - La notification du refinancement (lundi 8h) est dans Administration > Notification
     refinancement (administrateurs).
9) CMT comme le refinancement
   - Chaque crédit CMT est rattaché à une société et à un compte bancaire (formulaire de
     création/modification, colonne et filtre « Société » dans la liste). Les 3 CMT
     existants sont rattachés à Somalev et au compte de leur banque.
   - Catégories de trésorerie « Crédit moyen terme » : Échéance CMT, Déblocage crédit CMT,
     Intérêts et commissions CMT (classement automatique sur « PRELV CMT », « ECHEANCE CMT »,
     « DEBLOCAGE CMT »...).
   - Dans la saisie, une ligne classée en CMT peut être liée à un crédit ; la fiche du crédit
     liste ses mouvements de trésorerie.

10) Leasing par société et banque de prélèvement
   - Chaque contrat de leasing a une société titulaire et une banque de prélèvement
     (compte bancaire MAD débité à chaque échéance). Les 30 contrats actuels sont
     rattachés à Somalev ; la banque de prélèvement est à renseigner dans chaque contrat
     (Contrats > Modifier).
   - Filtre « Société » sur le tableau de bord leasing, la liste des contrats et la vue
     globale ; colonnes Société et Banque de prélèvement dans la liste et l'export CSV.
   - Plan de trésorerie : après « Solde final » s'affichent « Autorisation de découvert »
     puis « Solde disponible » (solde final + autorisation), puis le leasing :
     « Leasing : échéances à prélever (TTC) » (échéances des contrats de la société, ou
     du compte pour un compte précis) et « Solde disponible après leasing à venir »
     (solde disponible moins les échéances restant à prélever à partir d'aujourd'hui).
     Ces lignes n'apparaissent que pour les comptes en MAD et les sociétés ayant des
     contrats de leasing.

11) Compte BMCE USD de Somalev : mise à jour d'après les relevés bancaires
   - Les mouvements 2024 et 2025 du compte en dollars sont ceux des relevés BMCE
     (53 lignes en 2024, 5 en 2025 ; 24 soldes mensuels et 10 totaux contrôlés).
     Les mouvements de 2021, 2022 et 2023 sont supprimés. 2026 n'est pas modifié.
   - Le compte s'ouvre au 31/12/2023 avec le solde du relevé (71 014,36 USD). Soldes de
     contrôle : 63 736,83 au 31/12/2024 et 61 702,17 au 31/12/2025, comme les relevés.
   - Classement : crédits reçus = Virements de l'étranger ; transferts émis = Virements
     fournisseurs à l'étranger ; commissions et frais = Frais bancaires ; « débit
     correspondant du montant à rapatrier » = virement de compensation vers BMCE (compte
     MAD), marqué interne. Références (TRF…, RPT…) dans la colonne Référence.
   - Migration automatique ; inc/treso_releves_usd.json peut ensuite être supprimé.

12) Compte SGMB MAD de Somalev : mêmes soldes que le fichier sgmb_mad_somalev.xlsx
   - Le compte est reconstruit d'après le fichier (jusqu'au 02/10/2026) : solde 2 332 544,91,
     identique au « Solde final » du fichier. Les 9 cellules que le fichier ne comptait pas
     ne sont plus ajoutées (elles faisaient dévier le solde).
   - Il reste 5 lignes « Recalage du solde » : ce sont les soldes initiaux tapés à la main dans
     le fichier lui-même ; sans elles le solde serait inférieur de 125 149,72.
   - Les saisies manuelles et les classements modifiés dans l'application sont conservés.
   - inc/treso_sgmb_maj.json et inc/treso_sgmb_complet.json peuvent être supprimés ensuite.

13) Compte BMCI MAD de Somalev : mêmes soldes que le fichier MET_AJOUR_BMCI_SOMALEV_SELON_CA.xlsx
   - Le compte est reconstruit d'après le fichier (jusqu'au 02/10/2026) : solde -854 382,25,
     identique au « Solde final » du fichier. Aucun ajustement ajouté ; saisies manuelles et
     classements modifiés conservés. Le fichier contient un seul recalage (02/10/2025, -655,89).
   - Nouveautés d'octobre 2026 : prélèvement BMCI Leasing de 974 443,02 le 02/10, frais de 25,30,
     et encaissement AIC Métallurgie (84 807,61) daté du 02/10 au lieu du 01/10.
   - inc/treso_bmci_complet.json peut être supprimé après la mise à jour.

14) Trésorerie prévisionnelle : prévision leasing et pointage avec les relevés
   - Menu Trésorerie > Prévisionnel : « Plan prévisionnel » (second plan de trésorerie) et
     « Prévision leasing (pointage) ».
   - Prévision leasing : toutes les échéances TTC de vos contrats de leasing à partir du
     01/10/2026 (1 009 échéances, jusqu'en 2033), générées d'après les tableaux d'amortissement.
     Elles se mettent à jour quand un contrat ou un avenant est enregistré, ou avec le bouton
     « Mettre à jour d'après les contrats » ; les échéances déjà pointées ne sont jamais modifiées.
   - Pointage avec le relevé : pour chaque échéance, « Pointer » permet (1) d'associer un
     prélèvement déjà saisi (un prélèvement peut regrouper plusieurs échéances) ou (2) de créer
     le mouvement d'après le relevé (date et montant réellement débités). La date réelle est celle
     du prélèvement ; l'écart avec la date et le montant prévus est affiché. « Dépointer » annule.
     « Pointer automatiquement » rapproche les prélèvements dont le montant (ou la somme de
     plusieurs échéances d'un même organisme) est exact, à ±10 jours.
   - Saisie (Trésorerie > Saisie) : une carte « Leasing à pointer » liste les échéances prévues
     de la société du compte choisi (clic = saisie préremplie) ; pour une sortie classée en
     Leasing, une liste « Échéance leasing prévue à pointer » propose l'échéance de même montant.
     Un relevé enregistré en lot pointe automatiquement les lignes qui correspondent.
   - Plan prévisionnel : solde actuel diminué du leasing restant à prélever, mois par mois (12 mois),
     avec le détail pointé / passé non pointé / reste à prélever, l'autorisation et le solde
     disponible prévisionnel. Prévision partielle : seule la source leasing est incluse pour
     l'instant ; d'autres sources (CMT, refinancement, salaires, impôts) pourront s'ajouter.
   - Renseignez la « banque de prélèvement » dans chaque contrat pour rattacher les échéances à
     un compte précis (plan par compte, comptes proposés au pointage).

15) Trésorerie prévisionnelle : CMT, masse salariale, refinancement (en plus du leasing)
   - Menu Trésorerie > Prévisionnel : Plan prévisionnel, Prévision leasing, Prévision crédits CMT,
     Prévision masse salariale, Prévision refinancement. Chaque page a le même fonctionnement :
     liste des échéances à partir du 01/10/2026, pointage avec le relevé (date et montant réels),
     « Pointer automatiquement », « Mettre à jour la prévision ».
   - Crédits CMT : toutes les échéances (capital, intérêts, TVA) des tableaux d'amortissement.
     Le pointage rattache aussi le mouvement au crédit (visible dans sa fiche).
   - Masse salariale : règles mensuelles (société, libellé, catégorie, montant, jour du mois, compte,
     dates de début et de fin) projetées sur 24 mois. Règles proposées d'après la moyenne des derniers
     mois (salaires, CNSS, IR) : à valider ou corriger sur la page. Modifier une règle met à jour les
     échéances non pointées ; les échéances pointées ne changent pas.
   - Refinancement : une échéance par dossier en cours (montant à prévoir estimé, ajusté avec le cours
     négocié). Le pointage rattache le mouvement au dossier et peut marquer le dossier comme réglé
     (montant débité et date) ; « Dépointer » le remet en cours.
   - Saisie : la carte « Prélèvements prévus à pointer » et la liste « Échéance prévue à pointer »
     couvrent les quatre sources (selon la catégorie choisie) ; un relevé enregistré en lot pointe
     automatiquement les lignes qui correspondent exactement.
   - Plan de trésorerie : bouton « Afficher le prévisionnel » (comptes en MAD) qui ajoute sous le solde
     disponible les échéances restant à prélever par source (leasing, CMT, masse salariale,
     refinancement), le solde prévisionnel et le solde disponible prévisionnel. Le plan prévisionnel
     détaille aussi le suivi du pointage par source. Prévision partielle : les encaissements ne sont
     pas prévus.

16) Plan prévisionnel, chèques / effets / virements, masse salariale facile, prélèvements par contrat
   - Plan de trésorerie : plus de bouton « prévisionnel » sur le plan réalisé (un simple lien « Plan
     prévisionnel » mène à l'autre plan). Plan prévisionnel = le même plan que le plan de trésorerie
     (mêmes filtres Détail / Groupes, société, année, clic sur un montant) : réalisé jusqu'à aujourd'hui,
     puis les échéances prévues non encore réalisées (leasing, CMT, masse salariale, refinancement,
     chèques / effets / virements) ajoutées dans leurs catégories, soldes recalculés.
   - Menu : les sous-menus (Prévisionnel, Refinancement, Crédits CMT) se replient et se déplient d'un
     clic ; l'état est mémorisé dans le navigateur.
   - Masse salariale : tableau de saisie par société, une ligne par poste (salaires, CNSS, IR, CIMR,
     primes…) et une colonne par mois : on tape le montant, « → tous » le recopie sur les mois, un mois vidé
     reste vide, les mois pointés avec le relevé sont verrouillés. « Ajouter une ligne » crée un poste.
   - Chèques, effets et virements (Trésorerie > Prévisionnel) : fournisseurs (décaissements) et clients
     (encaissements) ; une échéance isolée ou une série répétitive (hebdomadaire, mensuelle, bimestrielle,
     trimestrielle, semestrielle, annuelle) pour une charge ou une recette fixe, modifiable ou annulable
     pour les échéances futures. Elles alimentent le plan prévisionnel ; pointage avec le relevé (création
     du mouvement possible, date et montant réels) pour les encaissements comme pour les décaissements.
   - Leasing > Prélèvements par contrat : tableau contrat x mois ; jusqu'au 30/09/2026 d'après les
     tableaux d'amortissement des contrats, à partir du 01/10/2026 d'après la prévision leasing (montant
     réellement prélevé quand l'échéance est pointée). Export CSV.

17) Gestion caisse (menu « Gestion caisse »), circuit de validation, règles d'accès
   - Journal de caisse 2026 (Somalev, « Caisse principale ») : importé du classeur Excel (onglet
     « SUIVI CAISSE 2026 » uniquement ; la caisse 2025 n'est pas reprise). Solde d'ouverture 3 490,00
     au 31/12/2025, 257 écritures (entrées = alimentations, sorties = dépenses), solde au 04/10/2026 :
     -222,66. Contrôle : le « TOTAL GLOBAL » de la feuille Excel omet le bloc de la ligne 301 (5 000 en
     entrée, 4 950 en sortie) et affichait -272,66 ; 5 dates saisies en 2025 au milieu de janvier 2026
     ont été corrigées en 2026. Ajout, modification, suppression d'écritures et export CSV.
   - Demandes de caisse : formulaire (société, demandeur, lignes « nature de dépense / montant »,
     date souhaitée) -> numéro CS-2026-0001... -> circuit de validation -> validation finale -> remise
     de la caisse. La remise crée automatiquement l'entrée « ALIMENTATION DE CAISSE » dans le journal.
   - Circuit de validation (Gestion caisse > Circuit de validation) : par société (ou circuit commun),
     étapes ordonnées, valideur(s) désigné(s) par étape, seuil de montant (une étape ne s'applique qu'au-
     dessus d'un montant), étape de validation finale et étape de remise. Par défaut : Responsable
     hiérarchique > Responsable financier > Directeur général > Remise de la caisse.
   - Chaque étape : valider, renvoyer au demandeur (commentaire obligatoire) ou refuser (motif
     obligatoire). Notifications à chaque étape : cloche « Mes notifications » + compteur dans le menu
     + e-mail (même SMTP que les autres notifications ; un échec d'envoi n'empêche pas le circuit).
     Le demandeur est prévenu à chaque étape, puis à la validation finale et à la remise.
   - Impression : modèle « Demande d'alimentation de caisse - Exploitation » (logo, date, demandeur,
     tableau nature de dépense / montant, total, montant en lettres, 4 visas avec cachets de validation
     électroniques, bloc de remise de la caisse), format A4 sur une page, « Enregistrer au format PDF ».
   - Règles d'accès (Administration > Règles d'accès) : par utilisateur et par onglet de menu (hérité /
     aucun accès / lecture / lecture et modification) et par société pour les modules Leasing, CMT,
     Trésorerie et Caisse. Modèles rapides (demandeur de caisse, caissier, tout en lecture...). Sans règle,
     les droits habituels s'appliquent (rien ne change pour les utilisateurs existants). Un onglet sans
     accès disparaît du menu et sa page est refusée ; les données des sociétés non autorisées sont masquées.
     Droit par défaut sur la caisse : toute personne connectée peut faire une demande et voir les siennes ;
     le journal de caisse et le circuit sont accordés par règle (le caissier : journal en modification).

18) Gestion caisse : caisse centrale, autres caisses, réception, saisie rapide du journal
   - Le menu s'appelle « Gestion caisse » (plus d'année) : Journal de caisse, Caisses, Demandes de caisse,
     Nouvelle demande, Circuit de validation.
   - La caisse issue de l'Excel est la « Caisse centrale » (ouverture 3 490,00 au 31/12/2025, 257 écritures).
   - Caisses (Gestion caisse > Caisses, administrateurs) : créer d'autres caisses (nom, société, type centrale
     ou secondaire, caisse mère qui l'alimente, responsable, solde d'ouverture, saisie des dépenses par le
     responsable oui/non), modifier, désactiver, supprimer (si aucune écriture).
   - Alimentation : une demande est validée (circuit), la caisse est remise, puis le demandeur (ou le responsable
     de la caisse, ou un administrateur) CONFIRME LA RÉCEPTION. Ce n'est qu'à la demande « validée et reçue »
     que les journaux bougent : la caisse du demandeur est créditée (ligne 🔒 « ALIMENTATION DE CAISSE ») et,
     pour une caisse secondaire, la caisse mère (centrale) est débitée du même montant (« ALIMENTATION CAISSE
     <nom> »). Une demande de la caisse centrale ne fait qu'une entrée (alimentation banque / finance).
     À la remise, la case « le demandeur a signé : confirmer la réception maintenant » fait les deux en une fois.
     Le responsable de la caisse mère peut effectuer la remise des demandes des caisses qu'elle alimente.
   - Responsable de caisse : voit SON journal (sans règle d'accès), fait les demandes de SA caisse, suit ses
     demandes et ses sorties ; il peut saisir ses dépenses (sorties) si l'option est activée sur la caisse.
     Les entrées ne s'inscrivent que par les demandes reçues (ou par un administrateur).
   - Saisie rapide du journal (administrateurs, ou règle « modification », ou responsable autorisé) : grille type
     Excel (Date, Tiers, Demandeur, Description, Entrée, Sortie, Pièce) ; Entrée = ligne suivante, Tab = case
     suivante, date recopiée de la ligne du dessus, année par défaut = celle du journal, collage direct de lignes
     copiées depuis Excel, totaux et solde après saisie en direct, détection des doublons, « tout ou rien » avec les
     lignes en erreur signalées. « Modifier le journal » : toutes les cases du mois deviennent modifiables, solde
     recalculé en direct, case « Suppr. », enregistrement des seules lignes changées ; les lignes issues d'une
     demande reçue sont verrouillées.

19) Détail prévisionnel, impression des signatures, suppression admin, mobile, plans sur une seule vue
   - Plan de trésorerie prévisionnel : un clic sur un montant ouvre le détail avec les mouvements RÉALISÉS puis,
     dessous, les MOUVEMENTS PRÉVISIONNELS (échéances non encore réalisées : leasing, CMT, salaires, refinancement,
     chèques / effets / virements) qui composent le montant ; chaque échéance renvoie à sa page de pointage.
   - Impression d'une demande de caisse : le cadre VISA ne contient que les personnes qui ont signé (demandeur à la
     soumission, chaque valideur, remise, réception) ; sans signature : « Aucune signature pour le moment ».
   - Administrateur : suppression d'une demande de caisse (quel que soit son statut) depuis la demande, la liste des
     demandes, ou le journal de caisse (ligne 🔒 : « Supprimer la demande », ou case « demande » en mode modification).
     La suppression retire aussi ses écritures de caisse (caisse du demandeur et caisse mère) : les soldes sont rétablis.
   - Mobile : barre du haut avec menu en tiroir (☰), page sans défilement horizontal, boutons et champs tactiles,
     listes affichées en cartes sur téléphone, fenêtre de détail en plein écran, installation possible sur l'écran
     d'accueil (manifeste + icône).
   - Plans de trésorerie (réalisé et prévisionnel) : « Tout sur une vue » (activé par défaut) réduit automatiquement le
     tableau à la largeur de l'écran, sans défilement horizontal ; montants sans centimes par défaut (bouton
     « Centimes : non / oui »). Sur téléphone, tournez en paysage ou pincez pour zoomer.

20) Erreur 404 sur mobile, circuit par caisse, plan lisible sur téléphone, mot de passe, page d'accueil
   - Erreur 404 « La ressource demandée est introuvable » : le raccourci « ajouter à l'écran d'accueil » pointait
     vers assets/index.php. Le manifeste est maintenant manifest.php (à la racine) et démarre sur accueil.php.
     Si l'erreur persiste sur un ancien raccourci : supprimez-le de l'écran d'accueil du téléphone et recréez-le
     (menu du navigateur > Ajouter à l'écran d'accueil / Installer l'application), après avoir vidé le cache.
   - Circuit de validation PAR CAISSE (Gestion caisse > Circuit de validation) : choisissez une caisse puis
     « Créer un circuit propre » (copie du circuit actuel) et désignez ses valideurs, seuils et étapes. Ordre de
     priorité : circuit propre à la caisse, sinon circuit commun de la société, sinon circuit par défaut. La liste des
     caisses indique l'origine du circuit. Une demande déjà soumise garde son circuit.
   - Plans de trésorerie sur téléphone : « Vue par mois » (par défaut) = une liste claire pour le mois choisi
     (puces Janv. à Déc. + Total, mois prévus colorés, appui sur un montant = détail avec les mouvements prévisionnels),
     ou « Tableau complet » défilant (police lisible, colonne des libellés figée). Les filtres sont repliés.
   - Mot de passe : champs compatibles avec l'enregistrement du navigateur (proposez-le après la connexion) et case
     « Rester connecté sur cet appareil » (sans limite de durée) : jeton aléatoire par appareil (seul son hachage est stocké),
     renouvelé à chaque usage, supprimé à la déconnexion, au changement de mot de passe ou par « Déconnecter tous mes
     appareils » (Mon profil).
   - Accueil (première page après connexion, aussi pour le raccourci du téléphone) : « Mes notifications », « À traiter
     en priorité » (demandes de caisse à valider / remettre / confirmer, échéances à pointer, mouvements à classer,
     ajustements à justifier, refinancements proches), « En chiffres » (trésorerie, sorties prévues sous 7 jours,
     refinancement, soldes de vos caisses), prochaines échéances sous 7 jours, activité récente (administrateurs).
     Chaque bloc n'apparaît que si l'utilisateur a accès au module (règles d'accès et profil).

21) Caisses : entrées automatiques, Empower Holding en avant, tableau du plan, connexion permanente
   - Seule la CAISSE CENTRALE se saisit en entrées (par un administrateur). Les autres caisses n'ont jamais de saisie
     d'entrée, même pour un administrateur : leurs entrées s'inscrivent automatiquement à la réception des demandes
     de caisse (la caisse centrale est débitée du même montant). Le responsable d'une caisse secondaire saisit ses
     SORTIES une à une avec leur désignation obligatoire (formulaire « Nouvelle sortie », option activée par défaut
     sur toutes les caisses secondaires). La saisie rapide (grille type Excel) est réservée à la caisse centrale.
   - Empower Holding est le groupe affiché en premier et par défaut dans toute la trésorerie (tableaux de bord, plans,
     comptes, saisie) ; Kenz Power Holding vient ensuite. Réglage : « tres_holding_defaut » (Empower Holding).
   - Plan de trésorerie et plan prévisionnel sur téléphone : le TABLEAU est affiché par défaut (police lisible, colonne
     des libellés figée, défilement) ; la « Vue par mois » reste disponible d'un appui.
   - « Rester connecté sur cet appareil » : sans limite de durée (le navigateur garde le jeton, renouvelé à chaque visite ;
     il n'est supprimé qu'à la déconnexion, au changement de mot de passe ou par « Déconnecter tous mes appareils »).

22) Prévision des impôts (Trésorerie > Prévisionnel > Prévision impôts)
   - Même principe que la masse salariale : tableau de saisie par société (une ligne par impôt, une colonne par mois),
     échéances alimentant le plan prévisionnel (groupe « Impôts »), pointage avec le relevé (date et montant réels),
     choix de l'échéance proposé à la saisie d'un paiement classé dans une catégorie d'impôt.
   - Périodicité à la création d'une ligne : chaque mois (TVA le 20 du mois suivant, RAS), tous les 3 mois (mois de
     référence au choix), acomptes d'IS (mars, juin, septembre, décembre), une fois par an (patente, taxe de services
     communaux, reliquat d'IS…). Le jour et la périodicité se pré-remplissent selon la catégorie choisie.
   - « Suggérer les impôts d'après mon historique » : crée TVA et RAS (moyenne mensuelle des 12 derniers mois),
     acomptes d'IS (montant médian) et patente (dernier paiement) pour les sociétés qui en ont payé : à valider.
   - Droits d'accès : onglet « Prévision impôts » dans Administration > Règles d'accès (aucun accès / lecture / modification).

22) Demandes de chèque et de virement (menu « Chèques et virements »)
   - Le demandeur crée une demande de CHÈQUE ou de VIREMENT : société, date, nom du demandeur, « Frs » (fournisseur /
     bénéficiaire), « Objet » (descriptif), montant demandé, date de paiement souhaitée, RIB du bénéficiaire (virement,
     facultatif), puis joint ses PIÈCES (devis, comparatif, bon de commande, facture, autre : PDF, image, Word ou Excel,
     10 Mo par fichier) dans le formulaire ou après coup : autant de lignes que l'on veut (devis, comparatif et bon de commande proposés par défaut, bouton « + Ajouter une autre pièce »), chacune avec son propre type et plusieurs fichiers possibles par ligne. Brouillon -> soumission au circuit.
   - Règle des 24 heures du modèle : une demande dont la date souhaitée est aujourd'hui (ou passée) doit indiquer un motif
     d'urgence pour être soumise. Réglage : pièces jointes obligatoires à partir d'un montant (0 = jamais).
   - Circuit de validation (menu > Circuit de validation) : étapes ordonnées (Validation / Validation finale /
     Exécution), valideurs désignés par étape, seuil de montant par étape, circuit propre à une société et/ou à un type
     (chèque ou virement), sinon circuit par défaut (Responsable > Direction > Établissement du chèque / du virement).
   - Notifications comme les demandes de caisse : à chaque étape, au valideur suivant et au demandeur (cloche, compteur du
     menu, page d'accueil, e-mail si SMTP). Valider, renvoyer au demandeur (motif obligatoire), refuser (motif obligatoire),
     annuler. Personne ne valide sa propre demande (sauf un administrateur).
   - Exécution : la personne désignée enregistre le n° du chèque émis ou la référence du virement, la date, le compte et le
     montant ; le demandeur et les valideurs sont notifiés.
   - Impression conforme au modèle Word (logo, « Casablanca le », nom du demandeur, montant, titre encadré « DEMANDE DE
     CHÈQUE / DE VIREMENT (*) », Frs, Objet, mention des 24 h, visas DEMANDEUR / VISA RESPONSABLE / VISA DIRECTION) : seuls
     les cadres de ceux qui ont signé sont imprimés, avec le montant en lettres, les pièces jointes et l'exécution.
   - Les pièces jointes sont stockées dans uploads/dp/ (protégé) et ne se téléchargent qu'après connexion, par les personnes
     concernées. L'administrateur peut supprimer une demande (pièces comprises).
   - Droits d'accès : tout le monde peut faire une demande et voit les siennes ; « Toutes les demandes » (consultation par
     société) et « Circuit de validation » s'accordent dans Administration > Règles d'accès (module Chèques et virements).

23) Personnes en copie à la validation finale (demandes de chèque / virement ET demandes de caisse)
   - Dans « Circuit de validation » (chèques / virements et caisse), chaque étape a une colonne « Personnes en copie » :
     désignez-y, sur l'étape de VALIDATION FINALE, les personnes à informer. Dès que l'étape est validée, elles reçoivent
     une notification (« Validation finale : n° de la demande », avec le montant, le bénéficiaire et l'objet) dans
     l'application et par e-mail (si SMTP). Elles ne reçoivent pas de doublon si elles sont déjà notifiées comme
     demandeur ou comme valideur de l'étape suivante.
   - Les personnes en copie peuvent ensuite consulter la demande (pièces jointes et impression comprises) sans pouvoir agir ;
     avant la validation de l'étape, elles n'y ont pas accès. Leur nom apparaît (« Informés ») dans la chronologie.
   - La copie est figée au moment de la soumission de la demande (comme le circuit).

24) Caisse : une seule saisie pour la « nature de dépense / désignation » ; signatures = intitulés du circuit
   - Demande de caisse : le champ « Objet général » est supprimé. La désignation (nature de la dépense) se saisit une seule fois,
     sur chaque ligne (« Désignation (nature de la dépense) » + montant) ; c'est elle qui s'affiche sur le formulaire imprimé
     (en-tête de colonne conforme à votre modèle : « Nature de dépense (objet) »), dans la liste des demandes, les notifications
     et les e-mails (une seule ligne : son texte ; plusieurs lignes : la 1re suivie de « +n autre(s) »).
   - Journal de caisse : « Description » devient « Désignation » partout (grille de saisie, mode modification, tableau, recherche,
     export CSV), comme sur les caisses secondaires.
   - Impression de la demande de caisse : l'en-tête de chaque case de signature reprend exactement l'intitulé de l'étape du
     circuit de validation (par ex. « Chef de chantier », « Contrôle de gestion », « Direction générale », « Caissier
     principal ») au lieu de libellés figés (« Resp. Hiérarchique »…) ; seules les cases des personnes qui ont signé sont imprimées.
     Les demandes de chèque / virement suivaient déjà ce principe (« VISA » + intitulé de l'étape).

25) Chèques et effets, prévisionnels simples, et règle « un administrateur ne valide pas à la place d'un autre » (caisse)
   - Trésorerie > Prévisionnel > « Chèques et effets » : registre des effets et chèques CLIENTS (à encaisser) et FOURNISSEURS (à payer),
     4 onglets. Chaque pièce non réglée alimente le plan prévisionnel à sa date prévue (effet = échéance, chèque client = remise en
     banque, chèque fournisseur = émission) dans les catégories Chèques clients / Effets à encaisser / Chèques fournisseurs / Effets à
     payer, avec le détail au clic. POINTAGE : rapprochement automatique avec les relevés (même banque, même montant, date -10/+25 jours,
     nom du tiers en cas de doute), pointage manuel (choix du mouvement ou création du mouvement d'après le relevé), dépointage,
     « réglée hors relevé », statuts impayé / annulé (sortent du prévisionnel), report des pièces en retard à une date.
   - Import du fichier CHEQUE_EFFET.xlsx (onglets EFFET CLIENT, CHEQUE CLIENT, EFFET FRS, CHEQUE FRS) : importé à la première ouverture à
     partir du 01/09/2026 (date modifiable dans le formulaire d'import : abaissez-la pour reprendre des pièces plus anciennes) ;
     ré-importable sans doublon (les pièces pointées, les dates reportées et les statuts saisis à la main sont conservés).
   - Ancien échéancier « Chèques, effets, virements » ANNULÉ, remplacé par deux prévisionnels simples : « Prévisionnel encaissements »
     et « Prévisionnel décaissements » (désignation, client / fournisseur, date, montant, banque, catégorie du plan, répétition
     facultative, pointage). Les lignes déjà saisies dans l'ancien échéancier sont reprises dans ces deux pages.
   - Gestion caisse : un administrateur ne valide, ne remet et ne confirme PAS la réception à la place d'un autre. Seules les personnes
     désignées sur l'étape agissent (le responsable de la caisse mère pour la remise, le demandeur ou le responsable de la caisse pour la
     réception) ; l'administrateur n'agit que sur une étape qui n'a AUCUN valideur désigné ; personne ne valide sa propre demande.

26) Chèques et effets : suppression (simple ou multiple) et notifications de dépôt J-1 / J
   - Suppression : chaque pièce a un bouton « Supprimer » visible (confirmation) ; des cases à cocher et une barre « Supprimer la
     sélection » / « Marquer comme déposées » permettent d'agir sur plusieurs pièces (une seule, tout un onglet — effets ou chèques —,
     ou la sélection). Une pièce pointée est supprimée avec son échéance : le pointage est défait, le mouvement du relevé reste.
     Réservé aux utilisateurs ayant le droit « modification » sur l'onglet Chèques et effets.
   - À déposer : filtre « À déposer en banque (clients) » = chèques et effets clients en portefeuille ; bouton « Déposé » (date de
     dépôt, une pièce ou la sélection) : la pièce passe « remise en banque » (un chèque compte alors à sa date de dépôt ; un effet reste à
     son échéance).
   - Notifications : chaque jour (tâche planifiée cron.php de 8 h, ou à défaut à la première ouverture de l'accueil de la journée),
     les chèques et effets clients à déposer sont notifiés à J-1 (veille ouvrée de la date limite de dépôt) et à J (jour limite). Si la
     date tombe un samedi ou un dimanche, la date limite est le vendredi précédent. Une seule notification par pièce et par date ;
     notifications de l'application + e-mail si le SMTP est configuré. Destinataires et choix J-1 / J : rubrique « Notifications des
     chèques et effets à déposer » de la page Chèques et effets (aucun destinataire choisi = administrateurs) ; bouton « Vérifier et
     notifier maintenant ». L'accueil affiche aussi le nombre de pièces à déposer aujourd'hui, demain ou en retard.

27) Module LOGISTIQUE (menu « Logistique ») : parc, GMAO, transport, facturation interne
   - Intégration de la partie « Gestion logistique » de l'application SOMALEV (somalev-php) dans le dossier logistique/ : Tableau de bord,
     Parc matériel, Véhicules transport, Conducteurs, Interventions GMAO, Plans préventifs, Techniciens, Pannes, Alertes GMAO,
     Ordres de transport (PDF, export Excel, pièces jointes), Dashboard transport, Facturation interne, Rapports, Paramètres (listes).
     Les parties « Gasoil dépôt » et « Gasoil Beni Amir » de l'ancienne application ne sont pas reprises (les tables restent dans la base).
   - MÊME BASE DE DONNÉES que l'ancienne application : Finance360 se connecte à la base MySQL GMAO via config.logistique.php (racine ;
     identifiants repris de l'ancien config.php ; fichier à NE PAS écraser lors des mises à jour). Extension PHP pdo_mysql requise.
     Aucune migration : les tables existantes sont utilisées telles quelles. Page de contrôle : Logistique › Paramètres › Diagnostic.
   - Une seule connexion : comptes, droits et mise en page de Finance360. Droits par onglet dans Administration › Règles d'accès, rubrique
     « Logistique » (aucun / lecture / modification ; modèles rapides « consultation » et « saisie complète »). Par défaut, seuls les
     administrateurs y accèdent. Les anciens utilisateurs de l'application GMAO ne sont pas utilisés.
   - Pièces jointes des ordres de transport : dossier logistique/uploads/transport/ ; pour retrouver les fichiers déjà envoyés dans
     l'ancienne application, renseigner LG_UPLOADS_DIR (dossier uploads de l'ancienne application) dans config.logistique.php.
   - Numérotation INT / OT / FI : les numéros déjà utilisés sont sautés (plus de « Duplicate entry » si le compteur est en retard).

28) Gasoil dépôt Somalev (menu Logistique › Gasoil dépôt Somalev)
   - Tableau de bord unique (gasoil_dashboard.php) : période (mois / trimestre / année / tout, navigation ‹ ›), stock citerne théorique
     (stock initial + livraisons − pleins, jauge sur la capacité), sorties et coût vs période précédente, prix moyen du litre, pleins,
     livraisons ; évolution 13 mois (livraisons, pleins, stock), répartition par famille (CLIC → engins de la famille), top 10 engins,
     top chauffeurs (CLIC), consommation par engin en L/100 km ou L/h (CLIC → fiche de l'engin : dernier compteur, parcours, historique
     du compteur et des pleins). Alertes : stock bas, stock négatif (stock initial à renseigner), livraisons sans montant, pleins sans
     compteur, pleins « À vérifier » (CLIC → liste filtrée).
   - Saisie (gasoil_saisie.php) : plein d'un engin (date, engin — recherche par code, création à la volée avec sa famille —, chauffeur,
     quantité, compteur, n° de bon, pompiste, validateur, porte-engin, projet, montant = quantité × prix moyen des 3 dernières livraisons
     si vide) et livraison citerne (quantité, montant, bon, citerne). RÈGLES : le compteur précédent de l'engin est affiché dès le choix de
     l'engin (date, quantité du dernier plein, consommation moyenne) ; le nouveau compteur est OBLIGATOIRE et ne peut pas être inférieur au
     précédent ni dépasser le plein suivant (saisie rétroactive) ; écart > 50 000 refusé ; cas particulier « compteur remplacé / remis à zéro »
     avec motif obligatoire ; quantité d'un plein ≤ 2 000 L ; pas de date future ; un même n° de bon de sortie ne peut pas être saisi deux fois.
   - Mouvements (gasoil_mouvements.php) : liste filtrable (mois, type, « à vérifier », recherche), modification / suppression, export CSV.
   - Données de base (gasoil_base.php) : engins (code, famille, unité km/h, actif), FUSION de deux engins ou de deux chauffeurs (les
     mouvements sont rattachés, un alias est gardé pour les prochains imports), chauffeurs, listes (pompistes, validateurs, citernes,
     projets, porte-engins), réglages (stock initial, capacité, seuil d'alerte), import CSV « Saisie des carburants » (export SharePoint).
   - Import initial : le CSV fourni (2 208 mouvements : 13 livraisons = 182 000 L, 2 195 pleins) et les familles du tableau de bord HTML.
     NOMS UNIFIÉS : immatriculations normalisées (18699B7 / 18699 B 7 → 18699-B-7), codes en majuscules, chauffeurs en Prénom Nom avec
     fusion des doublons connus (6 fusions), pompistes / validateurs / citernes / projets dédoublonnés. 188 engins, 96 chauffeurs.
   - Anomalies de l'historique marquées « À vérifier » (pas bloquées) : compteur en recul par rapport au plein précédent (207) et prix au
     litre hors de 7–15 MAD (38) → à corriger dans Mouvements. Le stock théorique est NÉGATIF (−2 273 L) : des livraisons manquent dans
     l'export ou le stock initial est à renseigner (Données de base › Réglages).
   - Droits : onglets « Gasoil dépôt : tableau de bord / saisie / mouvements / données de base » dans Règles d'accès (modèles rapides
     Logistique). Pages de la logistique (parc, GMAO, transport) : palette et typographie alignées sur Finance360.

29) Gasoil dépôt : tableau de bord unique à onglets, citerne centrale par défaut, saisie refaite
   - CITERNE CENTRALE = citerne par défaut (réglage gz_citerne_defaut). Le tableau de bord propose les citernes en onglets : « Citerne
     centrale — Parc Somalev » (par défaut), les stations (Afriquia, Petromine Tarfaya) et « Toutes les citernes ». Le stock est calculé par
     citerne : un plein pris en station ne vide plus la citerne centrale (stock 1 569 L = 182 000 L livrés − 180 431 L sortis, comme votre
     tableau HTML). Les 6 pleins identiques d'un même jour, écartés à tort comme doublons, sont réimportés (2 191 sorties pour la citerne centrale).
   - PÉRIODE TOUJOURS LIBRE : raccourcis (7 jours, 30 jours, mois avec ‹ ›, trimestre, année, tout) ET champs « Du … au … » toujours visibles ;
     comparaison automatique avec la période précédente. UNITÉ au choix partout : Litres ou Montant (MAD). Filtre famille.
   - UN SEUL TABLEAU DE BORD, 6 onglets : Vue globale (cumulé, sorties, entrées, activité, comparaison sorties/entrées/tendance, répartition par
     famille, évolution du stock) · Par famille (blocs dépliables : période en cours, % du total, période précédente, variation, coût ; détail par
     engin avec parcours et L/100 km ou L/h, puis par chauffeur) · Conso par engin / par chauffeur (matrice par jour, semaine, mois, trimestre
     ou année, avec sous-totaux de famille, total général, carte de chaleur pour les chauffeurs, export CSV) · Top 10 · Prix et stock · Détail ;
     fiche engin (clic sur un engin : compteur, parcours, consommation, historique). Chaque famille, engin et chauffeur est cliquable.
   - COMPTEURS NETTOYÉS pour les calculs de parcours et de consommation : valeurs isolées trop hautes ou trop basses, sauts invraisemblables,
     remises à zéro détectés ; ces pleins sont marqués « À vérifier » (Mouvements › case « À vérifier seulement ») et ignorés dans les km.
   - SAISIE REFAITE : 3 étapes (quand et où · l'engin et le chauffeur · le plein), recherche de l'engin et du chauffeur en tapant, création à
     la volée, panneau latéral (stock de la citerne avant / après, compteur précédent en grand, consommation habituelle, 5 derniers pleins),
     contrôle du compteur en direct (✖ plus petit que le précédent, ✔ + n km et L/100 km estimés), citerne choisie (centrale ou station).

30) Gasoil dépôt : tableau de bord plus lisible, filtres complets, modification rapide
   - Tableau de bord : palette plus contrastée (sorties orange, livraisons bleu, tendance noire, familles en couleurs franches), indicateurs
     simplifiés (stock avec jauge, litres sortis, coût, prix moyen, livraisons, pleins, évolution vs période précédente), graphiques et
     classements sans texte explicatif, onglets en boutons, mise en page adaptée à l'écran et au téléphone.
   - Période : uniquement « Dates libres » (Du / Au). Par défaut : les 3 derniers mois jusqu'à la dernière sortie. Filtres : famille, engin,
     chauffeur (+ choix de la citerne et unité Litres / MAD). Les anomalies (stock bas, livraisons sans montant, pleins à vérifier) sont
     des pastilles cliquables.
   - Mouvements : filtres Du / Au, type, famille, engin, chauffeur, citerne, projet, recherche, « à vérifier » ; totaux de la sélection ;
     MODIFICATION RAPIDE en ligne (bouton « ✎ Rapide » : date, engin, chauffeur, litres, compteur, montant, bon ; Entrée = enregistrer, Échap =
     annuler) avec les mêmes règles (compteur jamais inférieur au précédent, bon unique) ; le formulaire complet reste disponible.
   - Saisie : le dernier compteur de l'engin est affiché en information dès le choix de l'engin (valeur, date, litres du dernier plein).

31) GESTION CARBURANT (nouveau menu) : gasoil dépôt Somalev + gasoil BENI AMIR avec avancement
   - Menu : « Gestion logistique » (parc, GMAO, transport) reste seul ; le nouveau menu « Gestion carburant » contient deux sections,
     « Gasoil dépôt Somalev » et « Gasoil Beni Amir ». Le menu est un ACCORDÉON : un seul groupe ouvert à la fois, et une seule section
     ouverte dans un groupe (la page en cours reste ouverte).
   - GASOIL BENI AMIR = gestion SÉPARÉE (tables ba_*, pages ba_*.php, droits « Gasoil Beni Amir ») : rien n'est mélangé avec le dépôt.
     Données reprises de vos fichiers : 1 383 pleins (312 191 L) et 26 livraisons (326 000 L) de la citerne Beni Amir, 2 821 lignes d'avancement
     = 55 716 voyages = 1 114 320 m³ = 15 321 900 MAD de CA, 67 engins (référentiel Titre / Famille / Marque / Matricule / Type).
   - RÈGLES : 1 voyage = 20 m³ ; 1 m³ = 13,75 MAD (donc 275 MAD par voyage) ; modifiables dans Données de base › Réglages. Chaque ligne
     d'avancement garde le prix de sa saisie ; « Recalculer tout l'historique » réécrit tout avec les valeurs en vigueur.
     Le gasoil sorti est valorisé au CMUP de la citerne (coût moyen pondéré des livraisons) : coût du gasoil = litres × CMUP.
   - TABLEAU DE BORD (Dates libres Du / Au + filtres famille, type, engin) : voyages, m³, CA, gasoil consommé, coût du gasoil, gasoil / CA (%),
     litres par voyage et par m³, stock citerne, évolution vs période précédente. Onglets : Vue globale (CA, coût et poids du gasoil par
     mois ; voyages et litres ; part du CA et part du gasoil par famille ; stock) · Par famille (CA, % CA, litres, % litres, coût, gasoil / CA,
     L/voyage, L/m³) · Par engin (tri au choix, consommation L/100 km ou L/h, dernier compteur) · Par mois (jours, voyages, CA, litres,
     coût, ratios, livraisons, stock fin de mois) · Matrice engin × période (litres + km + L/100, coût, voyages, CA ou gasoil/CA ; jour à
     année ; CSV) · Prix et stock (CMUP, livraisons) · Détail ; fiche engin (clic sur un engin).
   - SAISIE : « Saisie carburant » (plein d'un engin ou livraison de la citerne ; compteur jamais inférieur au précédent, dernier compteur
     affiché, bon unique, stock avant / après) ; « Avancement (voyages) » : grille du jour par camion avec m³ et CA en direct (une ligne à 0
     supprime ; « Autre engin » pour une location) ; « Mouvements » : carburant et avancement avec filtres complets et modification rapide.
   - NOMS CORRIGÉS : « Pelle sur chenille PE4502 », « Benne 8x4 CBIV05 », « 84302 / A / 4 »… sont rapprochés des codes du référentiel ;
     « Pickup 36627B7 » et « PICKUP FIAT 36627-B-7 » = PI36627 ; « Renault express 55522-a-10 » = 50522-A-10 ; le groupe CATERPILLAR TE33B
     reçoit son propre code GE-TE33B (le référentiel donnait deux fois GE10001) ; familles harmonisées (Benne 6x4 = Camion benne 6x4…).
   - À CORRIGER dans vos données : 7 lignes d'avancement sans engin (112 voyages, 30 800 MAD de CA) rattachées à « NON AFFECTÉ » ;
     1 ligne d'avancement sans nombre de voyages (ignorée) ; 84 pleins « à vérifier » (compteur douteux) ; 4 engins sans famille.

32) Beni Amir : consommations corrigées, onglet JOURNAL (gasoil dépôt et Beni Amir)
   - CAUSE des consommations anormales de 84302 / A / 4 (37,5 L/100 km) et 84298 / A / 4 (41,6) : entre le 31/07 et le 12/08/2026, les compteurs de
     ces deux camions ont été INTERVERTIS à la saisie (3 relevés chacun : les valeurs de l'un saisies sur l'autre). Corrigé : après échange, leurs
     séries redeviennent continues et leur consommation (92 et 82 L/100 km) rejoint celle des autres camions (82 à 98 L/100 km).
   - VÉRIFICATION DE TOUS LES ENGINS : détection des relevés hors série (plus longue suite croissante) ; 13 fautes de frappe évidentes corrigées quand
     UNE SEULE lecture plausible existe (un chiffre changé ou échangé, ou en trop, qui replace le relevé entre ses voisins : 30967 → 31967,
     21875 → 11875, 880418 → 180418…). Rien n'est supprimé : chaque correction est consignée (ancienne et nouvelle valeur) et ANNULABLE depuis le Journal.
   - CALCUL DES CONSOMMATIONS plus robuste : par intervalle entre deux relevés distincts (les litres pris sans progrès du compteur sont reportés à
     l'intervalle suivant) ; un intervalle est écarté s'il couvre plus de 40 jours (pleins manquants) ou s'écarte de plus de 3 fois (moins de 30 %) de la
     médiane de sa famille ; consommation non affichée sous 100 km ou 10 h. Résultat : pelles de 25 à 37 L/h (au lieu de 1,4 à 12 pour certaines), chargeuse
     10,8 L/h, niveleuse 12 L/h, pickups 9 L/100 km.
   - ONGLET « JOURNAL » dans les tableaux de bord Beni Amir et dépôt : les alertes ne sont plus affichées en haut des tableaux de bord. Le Journal
     liste : corrections appliquées (avec Annuler), corrections proposées (Échanger / Corriger / Tout appliquer, droit de modification requis), compteurs
     douteux (lien « Corriger » vers Mouvements), prix au litre inhabituels (dépôt), consommations anormales (écart de plus de 40 % vs la médiane de la
     famille), avancement sans engin, livraisons sans montant, stock bas. Le nombre de points à vérifier est affiché sur l'onglet.
   - Le dépôt Somalev bénéficie du Journal ; son calcul de consommation reste inchangé.

33) PARAMÈTRE DES FAMILLES (gasoil dépôt et gasoil Beni Amir)
   - Onglet « Familles » dans Données de base (dépôt : Gestion carburant › Gasoil dépôt Somalev › Engins, chauffeurs, listes › Familles ;
     Beni Amir : Données de base et réglages › Paramètre des familles). La liste des familles n'est plus figée : on peut AJOUTER une famille
     (nom, couleur, unité du compteur km ou heures), la RENOMMER (le nouveau nom est répercuté sur tous ses engins), changer sa couleur et son
     unité (case « à ses engins » pour l'appliquer à tous les engins de la famille) et la SUPPRIMER si elle n'a plus d'engin.
   - Une famille ajoutée est immédiatement proposée dans toutes les listes : nouvel engin, modification d'un engin, saisie (nouvel engin créé
     à la volée), filtres et graphiques des tableaux de bord (dès qu'un engin y est rattaché). Un lien « ⚙ paramétrer » est affiché à côté de
     chaque liste de familles. Le choix d'une famille préremplit l'unité du compteur.
   - À la mise à jour, la liste est alimentée avec les familles actuelles (couleurs et unités conservées). Les familles créées par un import
     sont enregistrées automatiquement. Dépôt : noms en majuscules ; Beni Amir : casse libre.

34) CHÈQUES ET VIREMENTS : modification complète par l'administrateur, ODV, prévisionnel ; TRANSFERT ENTRE BANQUES
   - ADMINISTRATEUR : dans la fiche d'une demande, « ✎ Modifier tous les éléments de la pièce (administrateur) », à TOUS les statuts (en validation,
     validée, exécutée, refusée, annulée) : type, société, demandeur, dates, fournisseur, objet, montant, RIB, motif d'urgence et, pour une pièce
     exécutée, date, référence / n° du chèque, montant exécuté, compte débité, note et date au prévisionnel. Chaque changement est consigné dans
     l'historique (ancienne → nouvelle valeur). Le brouillon reste modifiable par le demandeur et l'administrateur comme avant.
   - ORDRE DE VIREMENT (ODV) : nouveau type de pièce jointe « Ordre de virement (ODV) ». Il peut être ajouté par le demandeur, l'administrateur et la
     personne désignée à l'étape d'exécution, avant ou après l'exécution (champ ODV aussi dans le formulaire d'exécution d'un virement). À l'ajout, une
     notification (cloche, accueil, e-mail si SMTP) est envoyée AU DEMANDEUR et aux valideurs de la demande.
   - PRÉVISIONNEL : à l'exécution, la pièce est inscrite aux prévisions simples de trésorerie : Décaissement (par défaut), Encaissement ou « Ne pas inscrire »,
     avec une date prévue (compte et société de la pièce, catégorie frs_ / enc_ chèques ou virements, tiers, n° de chèque ou référence). La demande
     garde le lien : la fiche affiche le statut (prévu / pointé avec le relevé) ; une pièce exécutée non inscrite peut l'être ensuite, ou être retirée du
     prévisionnel tant qu'elle n'est pas pointée. Une modification administrateur est répercutée sur la ligne du prévisionnel.
   - TRANSFERT ENTRE BANQUES (Trésorerie › Transfert entre banques, bouton sur Mouvements et onglet de Saisie) : un seul formulaire (compte débité,
     compte crédité, date, montant, référence, libellé, note) crée les DEUX mouvements liés : sortie « Vers <banque> » et entrée « Depuis <banque> »
     (groupes Virements de compensation / Virements de fonds), marqués flux internes (intra-groupe : contrepartie = l'autre société, ou la même société).
     Aperçu des soldes avant / après ; devises différentes : saisie du montant reçu ; modification et suppression d'un transfert agissent sur les deux
     lignes (badge « ⇄ transfert » dans les listes). Catégories ajoutées si absentes : « Depuis un autre compte », « Vers Crédit Agricole (CAM) ».
   - NOTIFICATION D'EXÉCUTION : la banque du compte débité est ajoutée au message (« … effectué (réf. VIR-7788) par Admin — banque : BMCE Bank of Africa »)
     et au tableau de détail de l'e-mail (ligne « Banque ») pour les notifications d'une demande exécutée.
   - TRANSFERT : TYPE ET CATÉGORIES AU CHOIX. Choix du type : « Interbancaire » (deux banques de la MÊME société) ou « Intergroupe » (entre deux sociétés
     du groupe) ; la liste des comptes à créditer se filtre selon le type (même société / autres sociétés) et la saisie est refusée si le type ne correspond
     pas aux comptes. Deux listes de catégories : catégorie de la SORTIE et catégorie de l'ENTRÉE, parmi toutes les catégories du sens concerné (virements de
     compensation / de fonds en tête), ou « Automatique (selon la banque) » qui affiche la catégorie proposée (Vers <banque> / Depuis <banque>). La liste des
     derniers transferts indique le type et les catégories retenues.
