feat : enums CauseEntree, CauseSortie, CategorieBovinIPG

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-22 14:51:33 +02:00
parent a538608ab4
commit efb85a3fcf
3 changed files with 113 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
<?php
declare(strict_types=1);
namespace Malio\EdnotifBundle\Bovin\Enum;
/**
* Catégorie IPG d'un bovin (champ optionnel de `IpBCreateEntree`).
*
* Source : `resources/ednotif-ws/CategorieBovinIPG.XSD`.
* Le `.value` est le code IPG (2 lettres) transmis dans le payload SOAP.
* Les case names suivent le code XSD, les libellés sont en docblock.
*/
enum CategorieBovinIPG: string
{
/** Boeuf. */
case BO = 'BO';
/** Broutard. */
case BR = 'BR';
/** Femelle à l'engraissement. */
case FE = 'FE';
/** Génisse laitière. */
case GL = 'GL';
/** Génisse viande. */
case GV = 'GV';
/** Mâle. */
case MA = 'MA';
/** Mâle reproducteur. */
case MR = 'MR';
/** Taurillon. */
case TA = 'TA';
/** Vache allaitante. */
case VA = 'VA';
/** Veau de boucherie. */
case VB = 'VB';
/** Veau. */
case VE = 'VE';
/** Vache laitière. */
case VL = 'VL';
/** Vache de réforme. */
case VR = 'VR';
}

View File

@@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
namespace Malio\EdnotifBundle\Bovin\Enum;
/**
* Cause d'une entrée de bovin sur l'exploitation (opération `IpBCreateEntree`).
*
* Source : `resources/ednotif-ws/CauseEntree.XSD` + doc IPG Table 9.
* Le `.value` est le code IPG transmis dans le payload SOAP.
*/
enum CauseEntree: string
{
/** Entrée par achat. */
case Achat = 'A';
/** Entrée par naissance. */
case Naissance = 'N';
/** Entrée par prêt ou pension. */
case PretOuPension = 'P';
}

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace Malio\EdnotifBundle\Bovin\Enum;
/**
* Cause d'une sortie de bovin de l'exploitation (opération `IpBCreateSortie`).
*
* Source : `resources/ednotif-ws/CauseSortie.XSD` + doc IPG Table 9.
* Le `.value` est le code IPG transmis dans le payload SOAP.
*
* Le code `H` porte ici le sens "Sortie pour prêt ou pension" (équivalent du `P`
* sur une entrée) ; le WSDL garantit que chaque code n'apparaît que dans son sens,
* pas d'ambiguïté à gérer côté consommateur.
*/
enum CauseSortie: string
{
/** Sortie pour boucherie. */
case Boucherie = 'B';
/** Sortie pour auto-consommation. */
case Consommation = 'C';
/** Sortie pour élevage ou vente. */
case Elevage = 'E';
/** Sortie pour mort. */
case Mort = 'M';
/** Sortie pour prêt ou pension. */
case PretOuPension = 'H';
/** Autre cause (réservée aux reprises / données historiques). */
case Autre = 'X';
}