# Dictionnaire Chirurgical des Calculs, Formules Métier & Sources de Données
## Guide Exhaustif en Langage Humain — Plateforme Industrielle & Halieutique MNGI

---

> **Plateforme** : Suite Native Rust MNGI (Transformation, Traçabilité & Comptabilité Halieutique)  
> **Version** : v2.10 (Octobre 2026) — 97/97 tests validés à 100 %  
> **Marque Officielle** : **MNGI** (Dakhla / Agadir, Maroc)  
> **Public Destinataire** : Direction Générale, Directeur Administratif & Financier (DAF), Responsables d'Usine, Contrôleurs de Gestion, Auditeurs Légaux et Développeurs.  
> **Objectif Fondamental** : Fournir une transparence chirurgicale sur l'origine exacte de chaque chiffre affiché sur les 21 écrans de la plateforme. Aucun chiffre n'est magique : chaque métrique provient d'une source vérifiable (table SQLite, colonne Excel, saisie terrain) et obéit à une formule mathématique rigoureusement documentée.

---

## SOMMAIRE DU DICTIONNAIRE

1. [Vue d'Ensemble & Principes Fondamentaux de Calcul](#1-vue-densemble--principes-fondamentaux-de-calcul)
2. [Moteur des Rendements Industriels & Flux Usine](#2-moteur-des-rendements-industriels--flux-usine)
3. [Comptabilité Analytique & Coût de Revient au Kilo](#3-comptabilité-analytique--coût-de-revient-au-kilo)
4. [Mass Balance, Conservation de Matière & Réconciliation](#4-mass-balance-conservation-de-matière--réconciliation)
5. [Diagnostic Industriel, Détection d'Exceptions & Cas Cliniques](#5-diagnostic-industriel-détection-dexceptions--cas-cliniques)
6. [MRP Halieutique & Planification Prévisionnelle des Besoins](#6-mrp-halieutique--planification-prévisionnelle-des-besoins)
7. [Moteur de Contrôle Interne & 7 Couches de Valeur](#7-moteur-de-contrôle-interne--7-couches-de-valeur)
8. [Passerelle Comptable Générale CGNC & Idempotence](#8-passerelle-comptable-générale-cgnc--idempotence)
9. [L'Intégralité des 7 Référentiels Métier (Spécification Zéro Hardcoding)](#9-lintégralité-des-7-référentiels-métier-spécification-zéro-hardcoding)
10. [Matrice de Traçabilité Ascendante / Descendante](#10-matrice-de-traçabilité-ascendante--descendante)
11. [Cycle de Vie Physique de la Donnée & Circuit Fichiers](#11-cycle-de-vie-physique-de-la-donnée--circuit-fichiers)
12. [Matrice des Rôles RBAC & Confidentialité des Chiffres](#12-matrice-des-rôles-rbac--confidentialité-des-chiffres)
13. [Calculs de Facturation Achat Poisson & Taxes ONP](#13-calculs-de-facturation-achat-poisson--taxes-onp)
14. [Calculs Prestations Services Froid & Prorata Temporis](#14-calculs-prestations-services-froid--prorata-temporis)
15. [Calculs Dossiers Export & Liasse Sanitaire ONSSA](#15-calculs-dossiers-export--liasse-sanitaire-onssa)
16. [Calculs Module RH, Paie & Simulateur MOD par Arrivage](#16-calculs-module-rh-paie--simulateur-mod-par-arrivage)
17. [Les 13 Invariants d'Or Industriels de la Tour de Contrôle](#17-les-13-invariants-dor-industriels-de-la-tour-de-contrôle)

---

## 1. VUE D'ENSEMBLE & PRINCIPES FONDAMENTAUX DE CALCUL

### 1.1. Philosophie de la Règle de 3 Industrielle
Dans l'industrie de congélation des pélagiques (Sardine, Maquereau, Chinchard), tout part du principe de conservation pondérale :
- Le poisson acheté au port arrive **brut avec glace et eau de mer**.
- Il perd du poids lors de l'étêtage, l'éviscération et le parage (**Freinte de tri / Déchets**).
- Il perd une fraction infime d'eau lors de la surgélation à grand froid en tunnel à -25°C (**Dessiccation grand froid**).
- Il ressort conditionné en **cartons pesés nets** prêts pour l'exportation.

### 1.2. Cartographie des 5 Types de Documents Métier
Chaque flux est matérialisé par un type de document standardisé :
- **`BP` (Bon de Pesée)** : Réception brute au quai de déchargement du port. Source initiale de la matière première et de la dette armateur.
- **`BT` (Bon de Triage / Traitement)** : Poids net après tri, étêtage et éviscération, prêt à entrer en tunnel de congélation.
- **`BE` (Bon d'Emballage / Sortie Tunnel)** : Poids fini congelé, mis en cartons étiquetés et transféré en chambre froide négative (-18°C).
- **`BS` (Bon de Sortie / Expédition)** : Sortie de chambre froide vers les camions frigorifiques ou conteneurs maritimes reefers pour vente locale ou export.
- **`BF` (Bon de Facture / Débardage)** : Prestations annexes (camionnage port $\rightarrow$ usine, achat de glace en écailles).

---

## 2. MOTEUR DES RENDEMENTS INDUSTRIELS & FLUX USINE

### 2.1. Rendement Débarquement → Triage ($BP \rightarrow BT$)
- **Fichier Source** : [rendement_bp_bt.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/rendement_bp_bt.rs)
- **Objectif Métier** : Mesurer l'efficacité des ouvriers sur les tables de tri et surveiller la qualité de chair du poisson livré par chaque chalutier.
- **Formule Mathématique** :
  $$\text{Rendement } BP \rightarrow BT\text{ (\%)} = \frac{\sum \text{Poids Traité } BT\text{ (kg)}}{\sum \text{Poids Débarqué } BP\text{ (kg)}} \times 100$$
- **Écart de Freinte / Déchets (kg)** :
  $$\text{Déchets \& Freinte (kg)} = \sum \text{Poids } BP - \sum \text{Poids } BT$$
- **Sources de Données Exactes** :
  - `Poids BP` : Table SQLite `RAPPORT_SYNC`, colonne `POIDS_T * 1000` où `TYPE_DOCUMENT = 'BP'`.
  - `Poids BT` : Table SQLite `RAPPORT_SYNC`, colonne `POIDS_T * 1000` où `TYPE_DOCUMENT = 'BT'` pour la même marée ou date.
- **Seuils d'Interprétation Industrielle** :
  - 🟢 **Conforme ($> 82\%$)** : Poisson frais, ferme, peu de casse, tri optimal.
  - 🟠 **Vigilance ($78\% - 82\%$)** : Poisson de petite taille ou ramolli, réglage de cadence nécessaire.
  - 🔴 **Alerte Critique ($< 78\%$)** : Perte excessive par sur-éviscération ou poisson dégradé par manque de glace au port.

---

### 2.2. Rendement Triage → Emballage ($BT \rightarrow BE$)
- **Fichier Source** : [rendement_bt_be.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/rendement_bt_be.rs)
- **Objectif Métier** : Surveiller le passage dans le tunnel de surgélation et la conformité du conditionnement en cartons.
- **Formule Mathématique** :
  $$\text{Rendement } BT \rightarrow BE\text{ (\%)} = \frac{\sum \text{Poids Fini Emballé } BE\text{ (kg)}}{\sum \text{Poids Traité Entrant Tunnel } BT\text{ (kg)}} \times 100$$
- **Perte Thermique Tunnel (Dessiccation)** :
  $$\text{Dessiccation (kg)} = \sum \text{Poids } BT - \sum \text{Poids } BE$$
- **Sources de Données Exactes** :
  - `Poids BT` : Table SQLite `RAPPORT_SYNC` (`TYPE_DOCUMENT = 'BT'`).
  - `Poids BE` : Table SQLite `RAPPORT_SYNC` (`TYPE_DOCUMENT = 'BE'`).
- **Seuils d'Interprétation Industrielle** :
  - 🟢 **Normal ($95\% - 98\%$)** : Cycle de congélation conforme (6h à 10h à -25°C).
  - 🔴 **Anormal ($< 94\%$)** : Temps de séjour excessif en tunnel entraînant une déshydratation anormale de la chair de poisson.

---

### 2.3. Rendement Global Filière Usine ($BP \rightarrow BE$)
- **Fichier Source** : [rendement_bp_be.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/rendement_bp_be.rs)
- **Objectif Métier** : La métrique reine pour le propriétaire et la direction : combien de kilos de produit fini congelé prêt à vendre obtient-on pour 1 000 kg de poisson brut acheté au quai ?
- **Formule Mathématique** :
  $$\text{Rendement Global (\%)} = \frac{\sum \text{Poids Fini } BE\text{ (kg)}}{\sum \text{Poids Brut } BP\text{ (kg)}} \times 100$$
- **Valorisation Financière de la Perte Matière (DH)** :
  $$\text{Perte Financière (DH)} = \left( \sum \text{Poids } BP - \sum \text{Poids } BE \right) \times \text{Prix d'Achat Moyen Unitaire (DH/kg)}$$
- **Sources de Données Exactes** :
  - `Prix d'Achat Moyen Unitaire` : $\frac{\sum \text{VALEUR(DH) des BP}}{\sum \text{POIDS\_T des BP} \times 1000}$ extrait de `RAPPORT_SYNC`.

---

### 2.4. Suivi Frigorifique des Stocks
- **Fichier Source** : [suivi_stock.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/suivi_stock.rs)
- **Objectif Métier** : Connaître en temps réel le tonnage physique stocké dans chaque chambre froide négative (-18°C) par espèce et par calibre commercial.
- **Formule Mathématique (Équation de Stock Temps Réel)** :
  $$\text{Stock Théorique Disponible (kg)} = \sum \text{Entrées Congelées } BE - \sum \text{Expéditions Sorties } BS$$
- **Ventilation Multi-Dimensionnelle** :
  $$\text{Stock}(E, C, F) = \sum BE(E, C, F) - \sum BS(E, C, F)$$
  *(où $E = \text{Espèce}$, $C = \text{Calibre}$, $F = \text{Chambre Froide})*.
- **Sources de Données Exactes** :
  - Entrées : `RAPPORT_SYNC` où `TYPE_DOCUMENT = 'BE'`.
  - Sorties : `RAPPORT_SYNC` où `TYPE_DOCUMENT = 'BS'`.

---

## 3. COMPTABILITÉ ANALYTIQUE & COÛT DE REVIENT AU KILO

- **Fichiers Sources** : [analytique.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/analytique.rs), [analytique/mod.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/analytique/mod.rs)

### 3.1. Les 4 Centres de Coût (CDC)
Le système structure l'usine en 4 centres de coût étanches :
1. **`CDC-PORT`** : Opérations de réception quai, débardage camions et glace.
2. **`CDC-USINE`** : Traitement, filetage, tunnel de surgélation, électricité froids, emballage.
3. **`CDC-TRANSP`** (ou `CDC-EXPORT-TRANSP`) : Transport routier frigo vers les ports d'export (Tanger Med, Agadir).
4. **`CDC-SIEGE`** : Encadrement, loyers, assurances, honoraires d'audit, direction.

---

### 3.2. Formule du Coût de Revient Complet par Kilo Produit
$$\text{Coût de Revient Unitaire (DH/kg)} = \frac{\text{Coût d'Achat Poisson (DH)} + \sum \text{Charges Directes} + \sum \text{Charges Indirectes Réparties}}{\text{Tonnage Net Produit } BE\text{ (kg)}}$$

#### Décomposition pas à pas des composantes du coût :
| Composante | Calcul & Formule | Source des Données | Centre de Coût |
| :--- | :--- | :--- | :--- |
| **Poisson Brut** | $\text{Poids } BP \times \text{Prix Achat } PU$ | `RAPPORT_SYNC.VALEUR(DH)` | `CDC-USINE` |
| **Débardage Quai** | $\text{Poids Débarqué (kg)} \times 0,15\text{ DH/kg}$ | Table `bons_debardage.poids_net` | `CDC-PORT` |
| **Glace Écailles** | $\text{Glace Déclarée (kg)} \times 0,40\text{ DH/kg}$ | Table `suivi_glace_marees.glace_declaree_bp_kg` | `CDC-PORT` |
| **Cartons Emballage**| $\text{Nombre de Cartons} \times 6,50\text{ DH/carton}$ | Table `lignes_detail.nbre_emb` | `CDC-USINE` |
| **Électricité Tunnel**| Facture ONEE au prorata des tonnes congelées | Table `pieces_comptables` (Compte `61251000`) | `CDC-USINE` |
| **Salaires Ouvriers**| Forfait mensuel ou tonnage fileté | Table `pieces_comptables` (Compte `61710000`) | `CDC-USINE` |
| **Loyer Quai & Sol** | Redevance mensuelle concession portuaire | Table `pieces_comptables` (Compte `61310000` - ONP) | `CDC-PORT` |
| **Transport Export** | $\text{Poids Expédié (kg)} \times 0,85\text{ DH/kg}$ | Table `pieces_comptables` (Compte `61410000`) | `CDC-TRANSP` |

---

### 3.3. Calcul des Marges Commerciales
- **Marge Brute par Bon de Sortie (`BS`)** :
  $$\text{Marge Brute (DH)} = \text{Chiffre d'Affaires Export} - \text{Coût d'Achat Matière Première}$$
- **Marge Nette Commerciale (DH)** :
  $$\text{Marge Nette (DH)} = \text{Chiffre d'Affaires Export (7113)} - \text{Coût de Revient Complet Imputé}$$
- **Taux de Marge Nette (\%)** :
  $$\text{Taux de Marge (\%)} = \frac{\text{Marge Nette (DH)}}{\text{Chiffre d'Affaires (DH)}} \times 100$$

---

## 4. MASS BALANCE, CONSERVATION DE MATIÈRE & RÉCONCILIATION

- **Fichiers Sources** : [mass_balance.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/mass_balance.rs), [mass_balance/mod.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/mass_balance/mod.rs)

### 4.1. L'Équation Fondamentale de Conservation de Masse
Applique le principe universel de Lavoisier à chaque marée industrielle :
$$\text{Matière Entrante (BP)} = \text{Produit Fini (BE)} + \text{Déchets Tri/Éviscération} + \text{Freinte Tunnel} + \text{Écart Inexpliqué}$$

- **Taux de Déchets Standard** : $14\% - 16\%$ (viscères, têtes, ouïes selon espèce).
- **Taux de Freinte Thermique Standard** : $2\% - 3\%$ (évaporation de l'eau superficielle lors du passage à -25°C).
- **Écart Inexpliqué (Coulage)** : Si $\text{Écart Inexpliqué} > 1\%$, le système lève un drapeau rouge d'investigation.

---

### 4.2. Autopsie des Écarts de Stock (Physique vs Théorique)
Compare la pesée manuelle du magasinier lors des inventaires physiques et le calcul logiciel :
$$\Delta\text{Stock (kg)} = \text{Stock Physique Réel Magasinier} - \text{Stock Théorique Calculé}$$
- Si $\Delta\text{Stock} < 0$ : Perte inexpliquée ou démarque inconnue.
- **Valorisation Financière de l'Écart (DH)** :
  $$\text{Perte d'Écart (DH)} = |\Delta\text{Stock (kg)}| \times \text{Prix Vente Moyen (DH/kg)}$$
  *Source : Table SQLite `reconciliations_stocks`.*

---

### 4.3. Rapprochement Facture Fournisseur vs Pont-Bascule Port (Anti-Surfacturation)
Surveille la concordance entre le bordereau de facturation émis par l'armateur et la pesée certifiée au pont-bascule du port de Dakhla :
$$\Delta\text{Poids (kg)} = \text{Poids Facturé Armateur} - \text{Poids Réel Pont-Bascule}$$
- Si $\Delta\text{Poids} > 0$ : L'armateur facture plus de poisson qu'il n'en a réellement déchargé.
- **Avoir à Réclamer au Fournisseur (DH)** :
  $$\text{Avoir à Réclamer (DH)} = \Delta\text{Poids (kg)} \times \text{Prix Convenu au Kilo (DH/kg)}$$
  *Source : Table SQLite `rapprochements_fournisseurs`.*

---

## 5. DIAGNOSTIC INDUSTRIEL, DÉTECTION D'EXCEPTIONS & CAS CLINIQUES

- **Fichiers Sources** : [diagnostic.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/diagnostic.rs), [diagnostic.rs (HTML)](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/diagnostic.rs)

### 5.1. Algorithme de Contrôle par Exception
Sur 10 000 opérations de saisie, le système élimine le « bruit » normal et n'isole que les **anomalies statistiques significatives** :
- Critère 1 : Rendement $BP \rightarrow BT < 78\%$.
- Critère 2 : Rendement $BT \rightarrow BE < 94\%$.
- Critère 3 : Écart de poids débardage navire vs usine $> 1\%$.
- Critère 4 : Ratio de glace hors tolérance ($< 8\text{ kg}$ ou $> 15\text{ kg}$ par caisse).

---

### 5.2. Détection des Goulots d'Étranglement (*Bottlenecks*)
Compare la capacité maximale de traitement horaire (T/h) de chaque poste :
$$\text{Cadence Réception Port (T/h)} \quad\text{vs}\quad \text{Cadence Éviscération} \quad\text{vs}\quad \text{Capacité Tunnel Surgélation} \quad\text{vs}\quad \text{Cadence Emballage}$$
- **Identification du Goulot** :
  $$\text{Goulot} = \min\left( \text{Cadence}_{\text{Réception}}, \text{Cadence}_{\text{Tri}}, \text{Cadence}_{\text{Tunnel}}, \text{Cadence}_{\text{Emballage}} \right)$$
- Le poste limitant la vitesse globale de l'usine est surligné en rouge avec son coût d'improductivité associé.

---

### 5.3. Journal d'Audit Horodaté Avant / Après
- **Fichier Source** : Table SQLite `journal_audit`
- **Règle Métier** : Toute modification sur un bon déjà validé enregistre :
  1. `valeur_avant` : Donnée initiale chiffrée.
  2. `valeur_apres` : Donnée rectifiée par l'opérateur.
  3. `nom_utilisateur` : Identifiant de session RBAC.
  4. `date_modification` : Date et heure ISO 8601.
  5. `motif` : Raison déclarée de la correction (ex : "Rature bon papier pointeur").
  6. **Badge 🌙 Nuit** : Activé automatiquement si l'heure de modification est comprise entre **22h00 et 06h00**.

---

## 6. MRP HALIEUTIQUE & PLANIFICATION PRÉVISIONNELLE DES BESOINS

- **Fichiers Sources** : [mrp.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/mrp.rs), [mrp.rs (HTML)](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/mrp.rs)

### 6.1. Formules des 6 Cadrans Prévisionnels à J+1 / J+7

1. **Tonnage Fini Prévu (T)** :
   $$\text{Tonnage Fini Estimé} = \text{Tonnage Débarqué Annoncé (BP)} \times \text{Rendement Historique Global Moyenne Espèce}$$

2. **Besoin en Cartons d'Emballage (Unités)** :
   $$\text{Cartons Requis} = \frac{\text{Tonnage Fini Estimé (kg)}}{\text{Poids Net par Carton (ex: 10 kg)}} \times 1,02 \quad (\text{marge casse 2\%})$$

3. **Besoin en Glace d'Avitaillement (Tonnes)** :
   $$\text{Glace Requise (T)} = \text{Tonnage Débarqué Prévu (T)} \times 0,40$$

4. **Besoin en Volume de Stockage Froid (Palettes / Tonnes)** :
   $$\text{Volume Froid Requis (T)} = \text{Tonnage Fini Estimé} - \text{Expéditions BS Prévues}$$

5. **Heures Tunnel Très Froid Requises (Heures)** :
   $$\text{Heures Tunnel} = \left\lceil \frac{\text{Tonnage Entrant Tunnel (T)}}{\text{Capacité Tunnel par Cycle (T)}} \right\rceil \times \text{Durée Cycle (ex: 8h)}$$

6. **Réservation Camions Frigorifiques (18 Tonnes)** :
   $$\text{Nombre de Camions} = \left\lceil \frac{\text{Tonnage Prévu à l'Expédition (T)}}{18\text{ Tonnes}} \right\rceil$$

---

## 7. MOTEUR DE CONTRÔLE INTERNE & 7 COUCHES DE VALEUR

- **Fichiers Sources** : [controle_interne/mod.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/controle_interne/mod.rs), [controle_interne/relations.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/controle_interne/relations.rs)

### 7.1. La Matrice de Continuité des 10 Maillons Métier
Le moteur teste la cohérence logique et arithmétique de la chaîne industrielle complète :
$$\text{Photo HD} \longleftrightarrow \text{Bon Manuscrit} \longleftrightarrow \text{Pesée Quai} \longleftrightarrow \text{BP} \longleftrightarrow \text{BT} \longleftrightarrow \text{BE} \longleftrightarrow \text{Stock Froid} \longleftrightarrow \text{BS} \longleftrightarrow \text{Facture} \longleftrightarrow \text{Comptabilité CGNC}$$

Chaque relation produit l'un des 3 états :
- 🟢 **Cohérent** : Écart $< 0,5\%$, pièces jointes conformes, dates alignées.
- 🟠 **Avertissement** : Écart $0,5\% - 1\%$, retard de saisie $> 24\text{h}$.
- 🔴 **Bloquant** : Rupture de chaîne, bon orphelin sans photo ou facture non lettrée.

---

### 7.2. Algorithme du Score Global de Fiabilité des Données (\%)
$$\text{Score Fiabilité (\%)} = \frac{\sum (\text{Nombre de Bons Certifiés par Photo HD} \times 1,0) + \sum (\text{Bons Corrigés Validés} \times 0,95) + \sum (\text{Saisies Directes Manuelles} \times 0,70)}{\text{Nombre Total d'Enregistrements}} \times 100$$

---

## 8. PASSERELLE COMPTABLE GÉNÉRALE CGNC & IDEMPOTENCE

- **Fichiers Sources** : [base_donnees.rs:L444-L495](file:///d:/M/OneDrive/peche/src/consultation_web/base_donnees.rs#L444-L495), [comptabilite.rs](file:///d:/M/OneDrive/peche/src/consultation_web/base_donnees/comptabilite.rs)

### 8.1. Déclenchement Automatique des Écritures Équilibrées

#### A. À la Validation d'un Bon de Pesée (`BP`) :
- **Débit Compte `61110000`** (Achats de marchandises - Poisson brut) : Montant HT en DH.
- **Crédit Compte `44110000`** (Fournisseurs - Armateur / Bateau) : Montant TTC en DH.
- *TVA* : 0% (Exonération pêche artisanale et hauturière marocaine).

#### B. À la Validation d'un Bon de Sortie Export (`BS`) :
- **Débit Compte `34210000`** (Clients - Export International) : Montant TTC en DH.
- **Crédit Compte `71130000`** (Ventes de marchandises à l'étranger) : Montant HT en DH.
- *TVA* : 0% (Exonération légale export marocain).

#### C. Pour les Prestations Annexes Réelles d'Usine :
- **Débardage Quai** : Débit `61420000` (Transports du personnel et manutention) / Crédit `44110000`.
- **Glace Écailles** : Débit `61220000` (Achats de matières consommables) / Crédit `44110000`.
- **Cartons & Emballages** : Débit `61230000` (Emballages perdus) / Crédit `44110000`.
- **Électricité ONEE** : Débit `61251000` (Énergie usine), Débit `34552000` (TVA récupérable 14%), Crédit `44110000`.
- **Redevance Quai & Sol** : Débit `61310000` (Locations et charges locatives / Quai) / Crédit `44110000` (Tiers : **ONP Office Nationale des péches**).

---

### 8.2. Principe d'Idempotence Absolue (Zéro Doublon)
À chaque enregistrement ou ré-enregistrement, le moteur exécute systématiquement dans la même transaction atomique SQLite :
```sql
DELETE FROM pieces_comptables WHERE numero_piece = ?1 AND type_journal = 'ACH';
INSERT INTO pieces_comptables (...) VALUES (...);
```
**Garantie** : Cliquer 1 fois, 2 fois ou 10 fois produit exactement le même résultat comptable parfait, sans jamais créer de doublon de ligne ni déséquilibrer la balance.

---

## 9. L'INTÉGRALITÉ DES 7 RÉFÉRENTIELS MÉTIER (SPÉCIFICATION ZÉRO HARDCODING)

> [!IMPORTANT]
> **EXIGENCE MAJEURE DU CLIENT & DE LA DIRECTION** :  
> Aucun seuil, capacité ou coût ne doit demeurer codé en dur dans les fichiers Rust (`.rs`). L'intégralité des 7 référentiels ci-dessous doit être **100% paramétrable depuis l'interface web**, stockée en base de données SQLite dans une table dédiée `parametres_referentiels`, afin de permettre au client d'adapter les règles à son usine et de simuler des scénarios prévisionnels en direct.

```
┌──────────────────────────────────────────────────────────────────────────────────┐
│             TABLE UNIQUE DE STOCKAGE DYNAMIQUE : parametres_referentiels         │
├───────────────┬─────────────────────────┬──────────────┬───────────────┬─────────┤
│ categorie     │ cle_parametre           │ valeur       │ type_donnee   │ unite   │
├───────────────┼─────────────────────────┼──────────────┼───────────────┼─────────┤
│ SEUILS_ALERTE │ seuil_rdt_bp_bt_vert    │ 82.0         │ float         │ %       │
│ SEUILS_ALERTE │ seuil_rdt_bp_bt_rouge   │ 78.0         │ float         │ %       │
│ TARIFS_STD    │ cout_debardage_kg       │ 0.15         │ float         │ DH/kg   │
│ TARIFS_STD    │ cout_glace_kg           │ 0.40         │ float         │ DH/kg   │
│ CAPACITE_USINE│ duree_cycle_tunnel      │ 8.0          │ float         │ heures  │
└───────────────┴─────────────────────────┴──────────────┴───────────────┴─────────┘
```

### Détail des 7 Référentiels à Paramétrer :

1. **Référentiel des Seuils d'Alerte & Tolérances Industrielles** :
   - Seuil rendement $BP \rightarrow BT$ conforme (défaut : $82\%$).
   - Seuil rendement $BP \rightarrow BT$ alerte critique (défaut : $78\%$).
   - Seuil rendement surgélation tunnel $BT \rightarrow BE$ (défaut : $95\%$).
   - Tolérance écart pesée quai vs usine (défaut : $\pm 1\%$).
   - Tolérance coulage inexpliqué mass balance (défaut : $1\%$).

2. **Référentiel des Tarifs Standards & Clés de Coûts Analytiques** :
   - Coût unitaire de débardage portuaire au kg (défaut : $0,15\text{ DH/kg}$).
   - Coût unitaire d'achat de glace en écailles au kg (défaut : $0,40\text{ DH/kg}$).
   - Prix unitaire du carton d'emballage standard (défaut : $6,50\text{ DH/carton}$).
   - Tarif du transport frigorifique international au kg (défaut : $0,85\text{ DH/kg}$).
   - Clés d'imputation des sections analytiques (Traitement, Tunnel, Emballage, Froid).

3. **Référentiel des Capacités & Équipements Usine** :
   - Nombre de tunnels de surgélation et capacité unitaire en tonnes par cycle.
   - Durée paramétrable d'un cycle tunnel (6h, 8h, 10h).
   - Température de consigne tunnel ($-25^\circ\text{C}$ à $-35^\circ\text{C}$) et chambres ($-18^\circ\text{C}$).
   - Capacité maximale de stockage de chaque chambre froide en tonnes.
   - Capacité nominale de calibrage par ligne de tri (T/jour).

4. **Référentiel des Espèces & Calibres Commerciaux** :
   - Liste des espèces autorisées (Sardine, Maquereau, Chinchard, Poulpe, Calmar, Seiche).
   - Calibres normalisés (ex : 24/26, S, M, L, Indéterminé).
   - Poids moyen standard attendu par pièce (grammes).
   - Ratio de freinte d'éviscération standard par espèce.

5. **Référentiel des Flottes, Navires & Armateurs** :
   - Répertoire des navires accrédités (noms de bateaux, matricules portuaires).
   - Noms des armements et coordonnées de facturation.
   - Méthode de pesée par défaut (pesée caisse brute déduite ou pesée globale bascule).

6. **Référentiel Comptable Marocain & Mapping CGNC** :
   - Comptes de charges paramétrables : Achats poisson (`61110000`), Glace (`61220000`), Emballages (`61230000`), Électricité (`61251000`), Loyer/Quai ONP (`61310000`), Transport (`61410000`), Débardage (`61420000`).
   - Compte de produit export (`71130000`) et local (`71110000`).
   - Taux de TVA applicables (0% export, 14% transport et électricité, 20% standard).

7. **Référentiel des Cas Cliniques & Prescriptions Usine** :
   - Liste des anomalies types, messages d'alerte associés et plans d'action préconisés pour les équipes d'atelier.

---

## 10. MATRICE DE TRAÇABILITÉ ASCENDANTE / DESCENDANTE

```
                    TRAÇABILITÉ DESCENDANTE (Du Port vers l'Export)
   Navire & Marée  ──►  Bon de Pesée (BP)  ──►  Triage (BT)  ──►  Congélation (BE)  ──►  Chambre Froide  ──►  Conteneur (BS)
 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   Facture Client  ◄──  Conteneur (BS)   ◄──  Palette BE   ◄──  Lot Tunnel (BT)   ◄──  Bordereau Quai  ◄──  Navire Origine
                    TRAÇABILITÉ ASCENDANTE (De l'Export vers le Navire)
```

1. **Généalogie Descendante** :
   À partir d'un Bon de Pesée (`BP 00987`), le système affiche en 1 clic :
   - Les lots de tri (`BT`) qui en sont issus.
   - Les cartons étiquetés sortis du tunnel (`BE`).
   - La chambre froide actuelle et la palette d'entreposage.
   - Les bons d'expédition (`BS`) vers les clients destinataires.

2. **Généalogie Ascendante** :
   À partir d'une palette contestée par un importateur européen (ex : lot `LOT-SAR-202409-04`) :
   - Remontée immédiate au cycle de congélation et à la date exacte de sortie du tunnel.
   - Identification des ouvriers affectés au parage ce jour-là.
   - Remontée au chalutier ayant débarqué la matière première et à la température relevée au débarcadère.

---

## 11. CYCLE DE VIE PHYSIQUE DE LA DONNÉE & CIRCUIT FICHIERS

```mermaid
graph LR
    A[📱 Photo Quai Pointeur] -->|Telegram Bot| B(BON SAISI / id.jpg)
    B -->|OCR Claude Vision| C(BON SAISI / id.xlsm)
    C -->|Visualiseur & Validation Humaine| D{Validation}
    D -->|Déplacement Atomique| E(BON VALIDE / id.xlsm & jpg)
    D -->|Purge Automatique| F[🗑️ Suppression BON SAISI/]
    D -->|Consolidation| G[📊 RAPPORT_GLOBAL.xlsx]
    D -->|Synchronisation| H[(SQLite base_donnees.sqlite)]
    H --> I[6111 CGNC & Analytique]
```

1. **Étape 1 : Réception Quai** : La photo du bon papier manuscrit prise par le pointeur est stockée dans `BON SAISI/{id}.jpg`.
2. **Étape 2 : Extraction IA** : Claude 3.5 Sonnet extrait les 20 colonnes et pré-remplit le modèle macro `BON SAISI/{id}.xlsm`.
3. **Étape 3 : Contrôle Humain & Anti-Duplicata** : Le visualiseur double écran permet de corriger toute rature.
4. **Étape 4 : Déplacement & Purge Atomique** :
   - Les fichiers validés sont déplacés vers `BON VALIDE/{id}.xlsm` et `BON VALIDE/{id}.jpg`.
   - Les fichiers temporaires de `BON SAISI/` sont **immédiatement détruits** pour ne pas saturer le disque.
5. **Étape 5 : Consolidation Synchrone** :
   - Le classeur central `RAPPORT/RAPPORT_GLOBAL.xlsx` est enrichi.
   - Les tables SQLite (`bons_production`, `lignes_detail`, `RAPPORT_SYNC`, `pieces_comptables`) sont mises à jour sans aucun délai de latence.

---

## 12. MATRICE DES RÔLES RBAC & CONFIDENTIALITÉ DES CHIFFRES

Pour préserver le secret d'affaires et la gouvernance industrielle, l'accès aux calculs et données obéit à la matrice suivante :

| Rôle RBAC | Visualisation Rendements | Visualisation Marges & Bénéfices DH | Saisie & Prise de Photo | Édition & Validation Bons | Modification Écritures CGNC | Paramétrage Référentiels |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: |
| **Patron / Direction Générale** | ✅ Oui | ✅ **Accès Total (DH)** | ❌ Non | ✅ Oui | ✅ Consultation / Audit | ✅ **Total** |
| **Directeur Financier / DAF** | ✅ Oui | ✅ **Accès Total (DH)** | ❌ Non | ✅ Oui | ✅ **Modification Directe**| ✅ **Total** |
| **Responsable d'Usine** | ✅ **Accès Total** | 🟠 Partiel (Coûts usine) | ❌ Non | ✅ Oui | ❌ Non | ✅ Seuils d'Atelier |
| **Chef de Quai / Réception** | 🟠 BP uniquement | ❌ Masqué | ✅ Oui | 🟠 Validation Quai | ❌ Non | ❌ Non |
| **Pointeur Terrain** | ❌ Non | ❌ **Strictement Masqué** | ✅ **Photos Quai** | ❌ Non | ❌ Non | ❌ Non |
| **Magasinier Chambres Froides** | 🟠 Stocks kg | ❌ Masqué | ✅ Inventaires kg | ❌ Non | ❌ Non | ❌ Non |
| **Comptable** | 🟠 Sur demande | ✅ Consultation financière | ❌ Non | ❌ Non | ✅ **Saisie & Lettrage** | ❌ Non |
| **Auditeur Externe** | ✅ Lecture seule | ✅ Lecture seule | ❌ Non | ❌ Non | ❌ Lecture seule certifiée | ❌ Non |

---

## 13. CALCULS DE FACTURATION ACHAT POISSON & TAXES ONP

- **Fichiers Sources** : [factures_achat.rs](file:///d:/M/OneDrive/peche/src/consultation_web/routes_api/factures_achat.rs), [modal_facture_achat.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/composants/modal_facture_achat.rs)
- **Objectif Métier** : Facturation groupée légale des Bons de Pesée (BP) non encore facturés, avec intégration des taxes de l'Office National des Pêches (ONP) en vigueur à Dakhla.

### 13.1. Formules Mathématiques Officielles
1. **Montant Brut Poisson (HT)** :
   $$\text{Montant Brut HT (DH)} = \sum_{i=1}^{n} \Big( \text{Poids BP}_i \text{ (kg)} \times \text{Prix Unitaire}_i \text{ (DH/kg)} \Big)$$
2. **Taxe de Péage ONP (1%)** :
   Conformément au Décret Royal n° 2-76-39 :
   $$\text{Taxe Péage ONP (DH)} = \text{Montant Brut HT} \times 0{,}01$$
3. **Taxe Produit Pélagique (TPP — 20 DH / Tonne)** :
   Applicable aux espèces pélagiques (Sardine, Maquereau, Chinchard) selon le Décret n° 2-99-1256 :
   $$\text{Taxe TPP (DH)} = \sum \text{Tonnage Pélagique (Tonnes)} \times 20{,}00\text{ DH}$$
4. **Montant Net à Payer au Fournisseur (TTC)** :
   Selon l'Article 91 du Code Général des Impôts (CGI) marocain, les ventes de poisson brut à l'état frais au débarquement sont exonérées de TVA :
   $$\text{Net à Payer Fournisseur (DH)} = \text{Montant Brut HT} - \text{Péage ONP} - \text{Taxe TPP}$$
   *(Note : Les taxes ONP sont prélevées à la source pour versement au Trésor et à l'ONP).*

---

## 14. CALCULS PRESTATIONS SERVICES FROID & PRORATA TEMPORIS

- **Fichiers Sources** : [services_froid.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/services_froid.rs), [scripts_mouvements.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/services_froid/scripts_mouvements.rs)
- **Objectif Métier** : Traitement et conservation frigorifique en sous-traitance pour le compte de tiers sans mélange avec les stocks propres de l'usine.

### 14.1. Formules Mathématiques
1. **Solde du Stock Tiers Détenu (kg)** :
   $$\text{Stock Détenu (kg)} = \sum \text{Mouvements Entrée (kg)} - \sum \text{Mouvements Sortie (kg)}$$
2. **Calcul d'Entreposage Frigorifique Journalier au Prorata Temporis (Kg-Jours)** :
   Pour chaque client tiers, le coût d'entreposage s'établit sur la courbe réelle de détention :
   $$\text{Cumul Kg-Jours} = \sum_{j=1}^{N} \Big( \text{Stock Présent au Jour } j \text{ (kg)} \times 1\text{ jour} \Big)$$
   $$\text{Frais de Froid (DH HT)} = \text{Cumul Kg-Jours} \times \text{Tarif Journalier Froid (DH/kg/jour)}$$
3. **Facturation Prestation Complète (C-XXXX)** :
   $$\text{Total HT} = \text{Frais Traitement} + \text{Frais Congélation Tunnel} + \text{Frais Entreposage Froid} + \text{Frais Manutention}$$
   $$\text{TVA (20\%)} = \text{Total HT} \times 0{,}20$$
   $$\text{Total TTC (DH)} = \text{Total HT} \times 1{,}20$$

---

## 15. CALCULS DOSSIERS EXPORT & LIASSE SANITAIRE ONSSA

- **Fichiers Sources** : [dossiers_export.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/dossiers_export.rs), [dossiers_export.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/dossiers_export.rs)
- **Objectif Métier** : Certification de conformité sanitaire vétérinaire et contrôle du colisage pour conteneur maritime Reefer 40'.

### 15.1. Formules Mathématiques
1. **Adossement Obligatoire au Bon de Sortie (Invariant N° 13)** :
   $$\text{Tonnage Export Net (kg)} = \text{Poids Net déclaré sur le Bon de Sortie (BS affilié)}$$
2. **Calcul de la Masse Brute Colisage Palette EPAL (Packing List)** :
   Pour chaque palette normalisée (1 à 20 palettes par conteneur 40 pieds) :
   $$\text{Poids Brut Palette}_k = \text{Poids Net Poisson}_k + \Big( \text{Nombre Cartons}_k \times \text{Tare Carton (0,65 kg)} \Big) + \text{Tare Palette EPAL NIMP15 (25 kg)}$$
3. **Valorisation et Conversion en Dirhams (MAD)** :
   $$\text{Montant MAD} = \text{Montant Devise (EUR/USD)} \times \text{Taux de Change Douanier Officiel}$$

---

## 16. CALCULS MODULE RH, PAIE & SIMULATEUR MOD PAR ARRIVAGE

- **Fichiers Sources** : [salaires.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/rh/salaires.rs), [pointage.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/rh/pointage.rs), [arrivage.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/rh/arrivage.rs)

### 16.1. Paie Mensuelle & Règle des 26 Jours Ouvrables
Selon la législation sociale marocaine en vigueur :
$$\text{Valeur Journalière} = \frac{\text{Salaire de Base Net (DH)}}{26}$$
$$\text{Retenue Absence} = \text{Valeur Journalière} \times \text{Nombre de Jours d'Absence}$$
$$\text{Net à Payer (DH)} = \text{Salaire de Base} - \text{Retenue Absence} - \text{Avances du Mois} - \text{Mensualité Prêt}$$

### 16.2. Ratio de Productivité Main d'Œuvre Directe (`PRIX/TN`)
Rapproche quotidiennement le coût salarial déboursé et la production physique réelle :
$$\text{PRIX/TN (DH/Tonne)} = \frac{\sum \text{Salaires Payés Journée (DH)}}{\sum \text{Tonnage Traité ou Débarqué (Tonnes)}}$$

### 16.3. Simulateur Prédictif de Mobilisation MOD par Arrivage Navire
- **Entrées** : Tonnage annoncé $T$ (kg), Présentation (`ENTIER_BLOCS` ou `ETETE_EVISCERE`), État (`STANDARD` ou `DIFFICILE`).
- **Pour chaque opération $i$** (Réception, Tri, Étêtage, Mise en moules, Congélation, Démoulage/Emballage, Nettoyage) :
  $$\text{Effectif Prévu}_i = \text{Effectif Base}_i(T) + \left( \begin{cases} \text{Renfort Difficile}_i & \text{si état = DIFFICILE} \\ 0 & \text{sinon} \end{cases} \right)$$
- **Écart de Post-Production** :
  $$\text{Écart Effectif}_i = \text{Effectif Réel Mobilisé}_i - \text{Effectif Prévu}_i$$

---

## 17. LES 13 INVARIANTS D'OR INDUSTRIELS DE LA TOUR DE CONTRÔLE

- **Fichier Source** : [audit_kpis.rs](file:///d:/M/OneDrive/peche/src/collecte_comptable/audit_kpis.rs), [audit_indicateurs.rs](file:///d:/M/OneDrive/peche/src/consultation_web/pages_html/audit_indicateurs.rs)
- **Objectif Métier** : Surveillance automatisée continue de la cohérence mathématique intégrale de l'usine, éliminant tout risque de dérive comptable ou matérielle silencieuse.

| N° | Invariant d'Or Industriel | Formule Mathématique de Contrôle | Seuil de Tolérance |
|:---:|:---|:---|:---:|
| **1** | **Équilibre Mass Balance Strict** | $\sum BP - \sum BT - \sum BE - \text{Pertes Constatées} = 0$ | $\le 2{,}5\%$ |
| **2** | **Non-Négativité des Stocks Frigo** | $\forall (\text{Espèce}, \text{Calibre}, \text{Chambre}), \text{ Stock} \ge 0$ | $0\text{ kg}$ (Strict) |
| **3** | **Cohérence Rendement Pesée $\to$ Tri ($BP \to BT$)** | $82\% \le \frac{\sum BT}{\sum BP} \times 100 \le 98\%$ | $[82\% ; 98\%]$ |
| **4** | **Cohérence Rendement Tri $\to$ Emballage ($BT \to BE$)** | $92\% \le \frac{\sum BE}{\sum BT} \times 100 \le 99\%$ | $[92\% ; 99\%]$ |
| **5** | **Rapprochement Débardage vs Pesée Quai** | $|\text{Poids Débardage} - \text{Poids BP}| \le 0{,}01 \times \text{Poids BP}$ | $\le 1{,}0\%$ |
| **6** | **Double Circuit Glace Marées** | $\text{Glace Achetée Fournisseur} \ge \text{Glace Embarquée Navires}$ | Strict |
| **7** | **Adossement Strict Export aux Bons de Sortie** | $\forall \text{Dossier Export}, \exists \text{ BS Validé} \land \text{Tonnage Export} = \text{Poids Net BS}$ | Strict ($0\text{ écart}$) |
| **8** | **Cadence Réaliste des Tunnels Grand Froid** | $\text{Temps de Séjour} \ge 0{,}67\text{ h/Tonne}$ (Congélation à cœur $\le -20^\circ\text{C}$) | $\ge 6\text{ heures}$ |
| **9** | **Étanchéité Stock Propre vs Stock Tiers** | $\text{Stock Propre (Compte 3111)} \cap \text{Stock Tiers (Prestations)} = \emptyset$ | Strict (Étanchéité 100%) |
| **10** | **Équilibre en Partie Double CGNC** | $\sum \text{Débits} - \sum \text{Crédits} = 0{,}00\text{ DH}$ sur chaque écriture | $0{,}00\text{ DH}$ |
| **11** | **Cohérence TVA Déductible & Collectée** | $\text{TVA Calculée} = \text{Base HT} \times \text{Taux Légal (0\%, 14\%, 20\%)}$ | $\pm 0{,}05\text{ DH}$ |
| **12** | **Rapprochement Paie Journalière vs Coût Analytique** | $\sum \text{Salaires Bruts Journaliers} = \text{Charges MOD Analytiques Imputées}$ | Strict |
| **13** | **Certification Numérique des Données Dérivées** | Zéro valeur codée en dur ; chaque indicateur est recalculé en temps réel | $100\%$ Dynamique |

---

*Document de Référence Technique & Métier MNGI — Conçu pour la pérennité, la rigueur industrielle et la certitude financière de la filière pêche. Mis à jour le 2026-09-24.*
