# RéceptionsDeux circuits distincts : le carburant part en cuve et se mesure à la jauge, le gaz et le lubrifiant partent en stock et se comptent à l'unité.

Le module **Réceptions** enregistre l'arrivée physique de la marchandise. Il se décline en deux
circuits, avec deux écrans différents :

- le **carburant**, réceptionné par **dépotage** dans les cuves et contrôlé à la jauge ;
- le **gaz & lubrifiant**, réceptionné en **stock** et contrôlé au comptage.

🧭 **Où le trouver** : `Mes réceptions → Carburant` et `Mes réceptions → Gaz & lubrifiant`

```mermaid
flowchart LR
    A[Commande validée] -->|Convertir en BL| B[Réception En attente]
    B -->|Modifier| B
    B -->|Confirmer| C[Réception validée]
    B -->|Annuler| D[Réception supprimée]
    C -->|Dépotage partiel| A
    C -->|Dépotage complet| E[Commande Terminée]
```

{{< callout context="caution" title="Une journée démarrée est indispensable" icon="outline/alert-triangle" >}}
Toute réception se rattache à la journée en cours. Si aucune journée n'est ouverte,
l'application affiche « Veuillez ouvrir une journée au préalable » et vous ramène à l'accueil.
Si les index d'ouverture ne sont pas enregistrés, elle affiche « Veuillez valider les index ».
{{< /callout >}}

## Consulter les réceptions à traiter

**À quoi ça sert ?**
Retrouver les commandes validées qui attendent leur réception.

**Droits d'accès**
- **Utilisateur** (accès à l'espace station)

**Accès** : `Mes réceptions → Carburant` ou `Mes réceptions → Gaz & lubrifiant`

| Liste | Titre de l'écran | Colonnes |
|-------|------------------|----------|
| Carburant | Liste des commandes carburant en attente de réception | Date, Type de produit, N°commande, Date livr. prévue, Statut, Action |
| Gaz & lubrifiant | Liste des commandes de gaz et lubrifiant en attente de réception | Date, Type de produit, N°commande, Date livr. prévue, Fournisseur, Statut, Action |

Dans la colonne **Action**, l'icône aux deux flèches (info-bulle « Convertir en BL » ou
« Convertir en bl ») ouvre l'écran de réception, pré-rempli à partir de la commande.

Le bouton **Nouveau** enregistre une réception **sans commande préalable**.

## Enregistrer un dépotage de carburant

**À quoi ça sert ?**
Enregistrer le carburant effectivement dépoté en cuve, et le comparer à la quantité commandée.

**Prérequis**
- Une journée est ouverte, ses index d'ouverture sont enregistrés.
- La commande de carburant est au statut **Validé(e)**.
- Les jauges de la cuve ont été relevées avant et après le dépotage.

**Droits d'accès**
- **Utilisateur** (accès à l'espace station)

**Accès** : `Mes réceptions → Carburant → icône Convertir en BL`

**Procédure pas-à-pas**
1. Ouvrez `Mes réceptions → Carburant`, puis cliquez sur l'icône **Convertir en BL** de la
   commande concernée. L'écran **Enregistrer un dépotage** s'affiche.
2. Dans le bloc **Information de la commande**, saisissez la **Référence BL** ⚑ (le numéro du
   bon de livraison du transporteur) et la date **Livré le** ⚑.
3. Cochez **Dépôtage partiel?** si le camion ne livre qu'une partie de la commande.
4. Renseignez le **Transporteur** ⚑, le **Tracteur** et la **Citerne**.
5. Dans le bloc **Information du dépotage**, pour chaque cuve concernée :
   - vérifiez la **Quantité à receptioner** proposée ;
   - saisissez le **Stock(Jauge avant dépotage)** relevé avant l'opération ;
   - saisissez le **Stock(Jauge après dépotage)** relevé après l'opération ;
   - complétez le **Contre plein** si vous en avez constaté un.
6. Cliquez sur **Enregistrer**.

L'application confirme par « Dépotage enregistrer avec succès » et affiche le détail du
dépotage, au statut **En attente**.

| Champ | Obligatoire | Valeur attendue | Comportement |
|-------|:-----------:|-----------------|--------------|
| Référence BL | ⚑ | Numéro du bon de livraison | Reprise de la référence de la commande, modifiable |
| Livré le | ⚑ | Date de livraison réelle | Datera le dépotage dans les états |
| Dépôtage partiel? | | Coché si la livraison est incomplète | Détermine si la commande reste réceptionnable après validation |
| Transporteur | ⚑ | Nom du transporteur | Repris de la commande s'il y figure |
| Tracteur | | Immatriculation du tracteur | Repris de la commande s'il y figure |
| Citerne | | Immatriculation de la citerne | Reprise de la commande s'il y figure |
| Quantité à receptioner *(ligne)* | ⚑ | Volume annoncé pour cette cuve | Pré-rempli avec la quantité commandée, ou avec le reste à livrer si un dépotage partiel a déjà eu lieu |
| Stock(Jauge avant dépotage) *(ligne)* | ⚑ | Jauge relevée avant le dépotage | Sert de base au calcul de la réception |
| Stock(Jauge après dépotage) *(ligne)* | ⚑ | Jauge relevée après le dépotage | Sert de base au calcul de la réception |
| Réception *(ligne)* | | Calculée | **Jauge après dépotage − Jauge avant dépotage** ; non saisissable |
| Ecart dépotage *(ligne)* | | Calculé | **Réception − Quantité à receptioner** ; non saisissable |
| Contre plein *(ligne)* | | Volume de contre-plein constaté | Repris dans les états de suivi du dépotage |

⚙️ Les colonnes **Réception** et **Ecart dépotage** se recalculent dès que vous saisissez une
jauge. Un écart négatif signale un manquant, un écart positif un excédent.

💡 Si vous corrigez la **Quantité à receptioner** après avoir saisi les jauges, ressaisissez la
**Stock(Jauge après dépotage)** : c'est la saisie d'une jauge qui déclenche le recalcul de
l'écart.

⚙️ À l'enregistrement, la commande d'origine passe au statut **Terminé(e)** et la notification
de livraison correspondante se referme.

## Enregistrer un dépotage sans commande

**À quoi ça sert ?**
Enregistrer un dépotage arrivé sans commande saisie dans l'application.

**Prérequis** : une journée est ouverte et ses index d'ouverture sont enregistrés.

**Droits d'accès**
- **Utilisateur** (accès à l'espace station)

**Accès** : `Mes réceptions → Carburant → Nouveau`

**Procédure pas-à-pas**
1. Ouvrez `Mes réceptions → Carburant`, puis cliquez sur **Nouveau**.
2. Le bloc **Information commandes** s'ajoute en haut de l'écran : saisissez la **Référence**
   et sélectionnez le **Fournisseur** ⚑.
3. Renseignez ensuite le bloc **Informations de la livraison** et le bloc **Information du
   dépotage** comme pour un dépotage ordinaire.
4. Cliquez sur **Enregistrer**.

⚙️ L'application crée elle-même la commande correspondante, directement au statut
**Terminé(e)**, avec les volumes que vous venez de dépoter. Vous n'avez pas de commande à
saisir séparément.

⚠️ Le **Fournisseur** est ici obligatoire : sans lui, l'enregistrement est refusé et le champ
est signalé en erreur.

## Valider un dépotage

**À quoi ça sert ?**
Confirmer le dépotage. C'est cette validation qui met les cuves à jour.

**Prérequis** : le dépotage est au statut **En attente**.

**Droits d'accès**
- **Utilisateur** (accès à l'espace station)

**Accès** : depuis l'écran **Information dépotage** affiché après l'enregistrement

**Procédure pas-à-pas**
1. Relisez l'écran **Information dépotage** : la première ligne récapitule **Date de
   livraison**, **N° BL**, **N° cmde**, **Transporteur**, **Tracteur** et **Citerne** ; le
   tableau suivant reprend, cuve par cuve, les volumes saisis, l'**Ecart dépotage**, le
   **Contre plein** et la **Tolérance (%)** calculée.
2. Cliquez sur **Confirmer**.
3. La fenêtre **Confirmation dépotage** demande « Êtes-vous sûr de vouloir confirmer les
   informations ci-dessous ! ».
4. Cliquez sur **Confirmer**.

L'application confirme par « Dépotage validé avec succès » et vous ramène à l'accueil. Le
dépotage passe au statut **Validé(e)**.

⚙️ À la validation :

- le volume disponible de chaque cuve devient la **Stock(Jauge après dépotage)** saisie — vous
  le voyez immédiatement dans l'indicateur des cuves de l'en-tête ;
- la réception est ajoutée au relevé de la cuve pour la journée, et sera reprise dans le
  récapitulatif de clôture ;
- la commande passe au statut **Terminé(e)**, ou revient au statut **Validé(e)** si vous avez
  coché **Dépôtage partiel?** — dans ce cas elle réapparaît dans `Mes réceptions → Carburant`
  pour le solde à livrer.

⚠️ Si la jauge après dépotage dépasse la contenance de la cuve, la validation est refusée avec
le message « Capacité de la cuve <numéro> inférieure à la quantité à réceptionner ». Vérifiez
votre relevé, puis corrigez le dépotage par **Modifier**.

## Modifier ou annuler un dépotage

**Prérequis** : le dépotage n'est pas encore validé pour la modification ; l'annulation reste
proposée après validation.

**Droits d'accès**
- **Utilisateur** (accès à l'espace station)

**Accès** : écran **Information dépotage**

**Modifier**
1. Cliquez sur **Modifier**.
2. Corrigez les informations ou les jauges.
3. Cliquez sur **Enregistrer**. L'application confirme par « Dépotage modifier avec succès ».

Le bouton **Modifier** disparaît dès que le dépotage est **Validé(e)**.

**Annuler**
1. Cliquez sur **Annuler**.
2. La fenêtre **Annulation dépotage** demande « Êtes-vous sûr de vouloir confirmer les
   informations ci-dessous ! ».
3. Cliquez sur **Confirmer**.

L'application confirme par « Dépôtage annulé avec succès » et vous ramène à l'accueil.

⚙️ L'annulation retire le dépotage : la commande revient au statut **Validé(e)** et redevient
réceptionnable, le volume de la cuve est ramené à son niveau d'avant dépotage, et les
quantités déjà reçues sur la commande sont recalculées.

{{< callout context="caution" title="L'annulation supprime le dépotage" icon="outline/alert-triangle" >}}
Un dépotage annulé n'est pas conservé au statut **Annulé(e)** : il disparaît. Si vous
souhaitez seulement corriger une jauge, utilisez **Modifier** tant que le dépotage n'est pas
validé.
{{< /callout >}}

## Enregistrer une réception de gaz ou de lubrifiant

**À quoi ça sert ?**
Enregistrer l'entrée en stock des bouteilles de gaz et des lubrifiants, et récupérer au
passage les bouteilles vides ou fuyardes rendues.

**Prérequis**
- Une journée est ouverte, ses index d'ouverture sont enregistrés.
- La commande est au statut **Validé(e)**.

**Droits d'accès**
- **Utilisateur** (accès à l'espace station)

**Accès** : `Mes réceptions → Gaz & lubrifiant → icône Convertir en bl`

**Procédure pas-à-pas**
1. Ouvrez `Mes réceptions → Gaz & lubrifiant`, puis cliquez sur l'icône **Convertir en bl**.
   L'écran **Enregistrer une réception** s'affiche.
2. Dans le bloc **Information réception**, saisissez le **N° BL** ⚑, la **Date livraison** ⚑
   et vérifiez le **Type produit** ⚑.
3. Le tableau qui suit rappelle la commande : **Produits**, **Quantité**, **Unité**.
4. Dans le bloc **Détail de la réception**, pour chaque ligne :
   - vérifiez le **Produit** ;
   - vérifiez la **Quantité à réceptionner** annoncée ;
   - saisissez la **Réception** réellement comptée.
5. Si le **Type produit** correspond aux bouteilles pleines, complétez le bloc **Contrôles**
   pour les bouteilles rendues : cliquez sur **Nouvelle ligne**, choisissez le **Produits**, la
   **Quantité** et l'**Unité**.
6. Cliquez sur **Enregistrer**.

L'application confirme par « Réception enregistré avec succès » et affiche le détail de la
réception, au statut **En attente**.

| Champ | Obligatoire | Valeur attendue | Comportement |
|-------|:-----------:|-----------------|--------------|
| N° BL | ⚑ | Numéro du bon de livraison | Repris de la référence de la commande, modifiable |
| Date livraison | ⚑ | Date de livraison réelle | Datera la réception dans les états |
| Type produit | ⚑ | Lubrifiant ou bouteille pleine | Détermine les produits proposés et l'affichage du bloc **Contrôles** |
| Produit *(ligne)* | ⚑ | Un produit du type sélectionné | À la sélection, le **Stock avant réception** se remplit automatiquement |
| Quantité à réceptionner *(ligne)* | ⚑ | Quantité annoncée | Reprise de la commande ; pour le lubrifiant, la quantité commandée en carton est convertie en bidons |
| Stock avant réception *(ligne)* | | Calculé | Stock disponible du produit avant la réception ; non saisissable |
| Réception *(ligne)* | ⚑ | Quantité réellement reçue | C'est la seule quantité que vous saisissez |
| Stock après réception *(ligne)* | | Calculé | **Stock avant réception + Réception** ; non saisissable |
| Ecart *(ligne)* | | Calculé | **Réception − Quantité à réceptionner** ; non saisissable |
| Produits *(bloc Contrôles)* | ⚑ | Une bouteille vide ou fuyarde | Bloc visible uniquement pour les bouteilles pleines |
| Quantité *(bloc Contrôles)* | ⚑ | Nombre de bouteilles rendues | Reprise dans le calcul de stock à la clôture |
| Unité *(bloc Contrôles)* | ⚑ | **Unité** | Seule unité proposée |

{{< callout context="caution" title="Choisissez le Type produit avant de saisir les lignes" icon="outline/alert-triangle" >}}
Changer le **Type produit** **vide le tableau Détail de la réception** : la liste des produits
disponibles est reconstruite. Renseignez donc toujours le type en premier, et ne le modifiez
plus une fois vos lignes saisies.
{{< /callout >}}

⚙️ La colonne **Stock après réception** et la colonne **Ecart** se recalculent dès que vous
saisissez une **Réception**.

⚙️ À l'enregistrement, la commande d'origine passe au statut **Terminé(e)** et la notification
de livraison correspondante se referme.

## Enregistrer une réception de gaz ou de lubrifiant sans commande

**Accès** : `Mes réceptions → Gaz & lubrifiant → Nouveau`

La procédure est identique, à ceci près qu'aucun tableau de rappel de commande ne s'affiche et
que vous ajoutez vos lignes vous-même avec le bouton **Nouvelle ligne**. La corbeille rouge en
fin de ligne supprime une ligne saisie par erreur.

## Valider, modifier ou annuler une réception de gaz ou de lubrifiant

**Accès** : écran de détail de la réception

**Valider**
1. Relisez le détail de la réception. Pour les bouteilles pleines, un second tableau récapitule
   les **Contrôles** (Produit, Quantité, Unite).
2. Cliquez sur **Valider la réception**.
3. La fenêtre **Confirmation de la réception.** demande « Êtes-vous sûr de vouloir confirmer
   les informations ci-dessous ! ».
4. Cliquez sur **Confirmer**.

L'application confirme par « Réception validé avec succès » et vous ramène à l'accueil.

{{< callout context="note" title="Quand le stock est-il réellement mis à jour ?" icon="outline/info-circle" >}}
Contrairement au carburant, le stock de gaz et de lubrifiant **n'est pas modifié à la
validation de la réception**. Les quantités reçues sont reprises à l'ouverture de l'écran de
clôture, où l'application recalcule pour chaque produit :
**stock d'ouverture + réceptions − sorties**. Le stock disponible affiché dans l'application
est actualisé à la clôture de la journée, après le billetage.
{{< /callout >}}

**Modifier** : cliquez sur **Modifier**, corrigez, puis **Enregistrer**. L'application confirme
par « Réception modifié avec succès ».

**Annuler** : cliquez sur **Annuler**, puis **Confirmer** dans la fenêtre de confirmation.
L'application confirme par « Dépôtage annulé avec succès » et ramène à l'accueil.

⚙️ L'annulation retire la réception, ramène le stock du produit à son niveau d'avant réception
et remet la commande d'origine au statut **Validé(e)**, donc réceptionnable de nouveau.

## Récapitulatif du cycle

| Statut de la réception | Signification | Actions possibles |
|------------------------|---------------|-------------------|
| **En attente** | La réception est saisie, elle n'a pas encore d'effet | Modifier, Confirmer, Annuler |
| **Validé(e)** | La réception est confirmée : cuves mises à jour (carburant), quantités prises en compte pour la clôture (gaz & lubrifiant) | Consulter, Annuler |

| Statut de la commande liée | Après quoi |
|----------------------------|------------|
| **Terminé(e)** | Une réception a été enregistrée pour la totalité de la commande |
| **Validé(e)** | Dépotage partiel validé, ou réception annulée : le solde reste à réceptionner |

## Points de vigilance

| Situation | Risque | Que faire ? |
|-----------|--------|-------------|
| L'écran affiche « Veuillez valider les index » | Aucune réception ne peut être saisie | Enregistrez les index et jauges d'ouverture, puis reprenez |
| La validation est refusée : « Capacité de la cuve <numéro> inférieure à la quantité à réceptionner » | La jauge après dépotage dépasse la contenance de la cuve | Vérifiez le relevé de jauge, corrigez le dépotage par **Modifier**, puis validez |
| L'**Ecart dépotage** reste inchangé après correction de la quantité | Vous validez un écart faux | Ressaisissez la **Stock(Jauge après dépotage)** pour forcer le recalcul |
| Le tableau **Détail de la réception** se vide brutalement | Toutes les lignes saisies sont perdues | Vous venez de changer le **Type produit** : choisissez-le avant de saisir les lignes |
| Un dépotage partiel n'a pas été coché | La commande passe **Terminé(e)** et le solde n'est plus réceptionnable | Annulez le dépotage, recommencez en cochant **Dépôtage partiel?** |
| Le stock de gaz ne bouge pas après validation de la réception | Vous croyez la réception perdue | C'est normal : le stock est actualisé à la clôture de la journée |
| Les bouteilles vides rendues n'ont pas été saisies dans **Contrôles** | Le stock de bouteilles vides sera faux à la clôture | Modifiez la réception tant qu'elle n'est pas validée, et complétez le bloc **Contrôles** |
| Un dépotage est annulé par erreur | Il faut tout ressaisir : le dépotage n'est pas conservé | Ressaisissez-le depuis la commande, redevenue **Validé(e)** |

## Et après ?

Le carburant est en cuve, le gaz et le lubrifiant sont comptés : poursuivez avec **Vente
carburant** pour enregistrer les ventes de la journée, ou avec **Autres ventes** pour les
ventes de gaz et de lubrifiant.
