Bonjour,
La piste qui me paraît la plus logique pour représenter ce type de chose est au sein du bloc ApplicableCIOHSupplyChainTradeSettlement qui décrit les conditions financières au sein du message ORDER.
Aujourd'hui, ce bloc contient les informations suivantes :
<xsd:complexType name="CIOHSupplyChainTradeSettlementType">
<xsd:sequence>
<xsd:element name="PayerCITradeParty"> Le payeur, obligatoire
<xsd:element name="SpecifiedCIOHTradeSettlementMonetarySummation"> Le montant pris en charge, opt.
<xsd:element name="PayableSpecifiedCITradeAccountingAccount"> La référence comptable, opt.
</xsd:sequence>
</xsd:complexType>
Le message européen UNECE_D09B_CrossIndustryOrder qui sert de modèle à ORDER prévoit que ce bloc puisse également contenir une information SpecifiedCITradeAllowanceCharge : "An allowance or charge specified for this CIOH supply chain trade settlement", càd une remise ou un surcoût attaché à cette commande. Ce qui correspond plutôt bien à ce que nous cherchons, puisque le MTP constitue une forme de remise pour le donneur d'ordre.
Le bloc SpecifiedCITradeAllowanceCharge est de cardinalité [0..n] et de type CITradeAllowanceChargeType. Il contient les informations suivantes :
ChargeIndicator [0..1] (est-ce une charge ?)
ID [0..1] (identifiant unique de cette charge ou remise)
SequenceNumeric [0..1] (ordre séquentiel dans lequel l'appliquer)
CalculationPercent [0..1] (pourcentage à appliquer au montant pour obtenir la remise ou la charge)
BasisQuantity [0..1] (quantité sur laquelle cette remise ou charge est appliquée)
PrepaidIndicator [0..1] (est-il pré-payé ?)
ActualAmount [0..n] (montant réel de cette remise ou surcoût)
ReasonCode [0..1] (code indiquant le motif)
Reason [0..1] (motif sous forme de texte)
CategoryCITradeTax [0..1] (type de taxe à appliquer)
ActualCITradeCurrencyExchange [0..1] (taux de change)
Si nous choisissions cette option, deux problèmes se poseraient :
1) Je ne vois pas bien comment exprimer le "ActualAmount" en €/mois (il n'y a pas de raison mécanique pour laquelle un message ORDER serait mensuel, il faut donc soit exprimer le MTP en €/mois, soit l'exprimer en € en calculant un montant prorata temporis à partir de la durée de validité du message).
2) Nous avons déjà utilisé le type CITradeAllowanceChargeType (voir chapitre 3.8.4 du guide d'implémentation), et en avons extrait qu'une partie limitée à CalculationPercent, ActualAmount et ReasonCode (fixè par convention à "30", qui signifie « paiement direct au prestataire »).
Il faudrait ajouter l'information Reason et trouver un code adapté au nouveau contexte.
Cordialement,
Philippe Ameline