ShipmentTrackingStatusMapper
in package
FinalYes
Provides display metadata for shipment tracking statuses across carriers.
Table of Contents
Constants
- BASE_METADATA = ['DATA_RECEIVED' => ['label' => 'Données reçues', 'class' => 'label-default'], 'PICKUP' => ['label' => 'Prise en charge', 'class' => 'label-primary'], 'HUB' => ['label' => 'En cours de traitement', 'class' => 'label-warning'], 'DELIVERY_DEPOT' => ['label' => 'Dépôt de livraison', 'class' => 'label-info'], 'IN_DELIVERY' => ['label' => 'En cours de livraison', 'class' => 'label-info'], 'DELIVERED' => ['label' => 'Livré', 'class' => 'label-success'], 'CANCELLED' => ['label' => 'Annulé', 'class' => 'label-danger'], 'CONTROLLED' => ['label' => 'Contrôlé', 'class' => 'label-warning'], 'EMPTY' => ['label' => 'Vide', 'class' => 'label-default']]
- Base metadata keyed by normalized status.
- CUSTOM_METADATA = [ // Geodis custom 'REN' => ['label' => 'Relivraison planifiée', 'class' => 'label-info'], 'RST' => ['label' => 'Retour expéditeur', 'class' => 'label-warning'], 'COM' => ['label' => 'En attente de prise en charge', 'class' => 'label-default'], // Trusk statuses - AJOUT COMPLET DES TRADUCTIONS 'ORDER_CREATED' => ['label' => 'Commande créée', 'class' => 'label-default'], 'CONTROLLED' => ['label' => 'Contrôlé', 'class' => 'label-warning'], 'DROPOFF_COMPLETED' => ['label' => 'Livré', 'class' => 'label-success'], // Trusk additional statuses 'ORDER_PICKUP' => ['label' => 'Collecte programmée', 'class' => 'label-primary'], 'ORDER_PICKUP_STARTED' => ['label' => 'Collecte en cours', 'class' => 'label-primary'], 'ORDER_PICKUP_COMPLETED' => ['label' => 'Collecte terminée', 'class' => 'label-primary'], 'ORDER_DROPOFF' => ['label' => 'Livraison programmée', 'class' => 'label-info'], 'ORDER_DROPOFF_STARTED' => ['label' => 'Livraison en cours', 'class' => 'label-info'], 'ORDER_DROPOFF_FAILED' => ['label' => 'Échec de livraison', 'class' => 'label-danger'], 'PROCESSING' => ['label' => 'En traitement', 'class' => 'label-warning'], 'ENDED' => ['label' => 'Terminé', 'class' => 'label-success'], 'STARTED' => ['label' => 'Démarré', 'class' => 'label-primary'], 'COMPLETED' => ['label' => 'Complété', 'class' => 'label-success'], 'FAILED' => ['label' => 'Échec', 'class' => 'label-danger'], ]
- Custom metadata for codes that do not map directly to base statuses.
- STATUS_ALIASES = [ // Geodis only 'EXP' => 'DATA_RECEIVED', 'PAQ' => 'PICKUP', 'AAR' => 'DELIVERY_DEPOT', 'MLV' => 'IN_DELIVERY', 'SOL' => 'IN_DELIVERY', 'LIV' => 'DELIVERED', // Generic fallbacks 'DATA_RECEIVED' => 'DATA_RECEIVED', 'PICKUP' => 'PICKUP', 'HUB' => 'HUB', 'DELIVERY_DEPOT' => 'DELIVERY_DEPOT', 'IN_DELIVERY' => 'IN_DELIVERY', 'DELIVERED' => 'DELIVERED', 'CANCELLED' => 'CANCELLED', 'EMPTY' => 'EMPTY', ]
- Aliases - SUPPRESSION de la logique d'alias confuse
Methods
- getHighestPriorityStatus() : string|null
- NOUVELLE MÉTHODE: Obtenir le statut de plus haute priorité pour l'affichage principal
- getStatusClass() : string
- Obtenir la classe CSS pour un statut
- getStatusLabel() : string
- Obtenir le libellé d'affichage pour un statut
-
getViewMappings()
: array{colors: array
, translations: array } - Returns arrays ready for Twig consumption.
- __construct() : mixed
Constants
BASE_METADATA
Base metadata keyed by normalized status.
private
array<string, array{label: string, class: string}>
BASE_METADATA
= ['DATA_RECEIVED' => ['label' => 'Données reçues', 'class' => 'label-default'], 'PICKUP' => ['label' => 'Prise en charge', 'class' => 'label-primary'], 'HUB' => ['label' => 'En cours de traitement', 'class' => 'label-warning'], 'DELIVERY_DEPOT' => ['label' => 'Dépôt de livraison', 'class' => 'label-info'], 'IN_DELIVERY' => ['label' => 'En cours de livraison', 'class' => 'label-info'], 'DELIVERED' => ['label' => 'Livré', 'class' => 'label-success'], 'CANCELLED' => ['label' => 'Annulé', 'class' => 'label-danger'], 'CONTROLLED' => ['label' => 'Contrôlé', 'class' => 'label-warning'], 'EMPTY' => ['label' => 'Vide', 'class' => 'label-default']]
CUSTOM_METADATA
Custom metadata for codes that do not map directly to base statuses.
private
array<string, array{label: string, class: string}>
CUSTOM_METADATA
= [
// Geodis custom
'REN' => ['label' => 'Relivraison planifiée', 'class' => 'label-info'],
'RST' => ['label' => 'Retour expéditeur', 'class' => 'label-warning'],
'COM' => ['label' => 'En attente de prise en charge', 'class' => 'label-default'],
// Trusk statuses - AJOUT COMPLET DES TRADUCTIONS
'ORDER_CREATED' => ['label' => 'Commande créée', 'class' => 'label-default'],
'CONTROLLED' => ['label' => 'Contrôlé', 'class' => 'label-warning'],
'DROPOFF_COMPLETED' => ['label' => 'Livré', 'class' => 'label-success'],
// Trusk additional statuses
'ORDER_PICKUP' => ['label' => 'Collecte programmée', 'class' => 'label-primary'],
'ORDER_PICKUP_STARTED' => ['label' => 'Collecte en cours', 'class' => 'label-primary'],
'ORDER_PICKUP_COMPLETED' => ['label' => 'Collecte terminée', 'class' => 'label-primary'],
'ORDER_DROPOFF' => ['label' => 'Livraison programmée', 'class' => 'label-info'],
'ORDER_DROPOFF_STARTED' => ['label' => 'Livraison en cours', 'class' => 'label-info'],
'ORDER_DROPOFF_FAILED' => ['label' => 'Échec de livraison', 'class' => 'label-danger'],
'PROCESSING' => ['label' => 'En traitement', 'class' => 'label-warning'],
'ENDED' => ['label' => 'Terminé', 'class' => 'label-success'],
'STARTED' => ['label' => 'Démarré', 'class' => 'label-primary'],
'COMPLETED' => ['label' => 'Complété', 'class' => 'label-success'],
'FAILED' => ['label' => 'Échec', 'class' => 'label-danger'],
]
STATUS_ALIASES
Aliases - SUPPRESSION de la logique d'alias confuse
private
mixed
STATUS_ALIASES
= [
// Geodis only
'EXP' => 'DATA_RECEIVED',
'PAQ' => 'PICKUP',
'AAR' => 'DELIVERY_DEPOT',
'MLV' => 'IN_DELIVERY',
'SOL' => 'IN_DELIVERY',
'LIV' => 'DELIVERED',
// Generic fallbacks
'DATA_RECEIVED' => 'DATA_RECEIVED',
'PICKUP' => 'PICKUP',
'HUB' => 'HUB',
'DELIVERY_DEPOT' => 'DELIVERY_DEPOT',
'IN_DELIVERY' => 'IN_DELIVERY',
'DELIVERED' => 'DELIVERED',
'CANCELLED' => 'CANCELLED',
'EMPTY' => 'EMPTY',
]
Methods
getHighestPriorityStatus()
NOUVELLE MÉTHODE: Obtenir le statut de plus haute priorité pour l'affichage principal
public
static getHighestPriorityStatus(array<string|int, mixed> $statusList) : string|null
Parameters
- $statusList : array<string|int, mixed>
Return values
string|nullgetStatusClass()
Obtenir la classe CSS pour un statut
public
static getStatusClass(string $status) : string
Parameters
- $status : string
Return values
stringgetStatusLabel()
Obtenir le libellé d'affichage pour un statut
public
static getStatusLabel(string $status) : string
Parameters
- $status : string
Return values
stringgetViewMappings()
Returns arrays ready for Twig consumption.
public
static getViewMappings() : array{colors: array, translations: array}
Return values
array{colors: array__construct()
private
__construct() : mixed