Vérifier la date de fin de la période de facturation

Erreur BR-29 EN 16931

[BR-29] - Si la date de début de la période de facturation (BT-73) et la date de fin de la période de facturation (BT-74) sont toutes deux indiquées, la date de fin de la période de facturation (BT-74) doit être postérieure ou égale à la date de début de la période de facturation (BT-73).

Règle obligatoire : tant qu'elle n'est pas respectée, la facture est invalide et sera rejetée par les validateurs.
Ce qui ne va pas

Lorsque ram:StartDateTime et ram:EndDateTime sont tous deux indiqués comme des dates au format 102, la date de fin est antérieure à la date de début. Si l’une des dates manque, cette condition d’ordre ne s’applique pas.

Ce que signifie la règle

Une période de facturation ne peut pas se terminer avant son début. L’ordre des dates définit la période couverte par la facture.

Champs concernés BT-73 BT-74
Veuillez indiquer une date de fin égale ou postérieure à la date de début

La date de fin de la période de facturation est antérieure à sa date de début. Corrigez l’ordre des deux dates si elles sont toutes deux indiquées pour la période.

Que faire ?
  1. Comparez la date de ram:StartDateTime à celle de ram:EndDateTime.
  2. Assurez-vous que la date de fin est égale ou postérieure à la date de début.
  3. Vérifiez que les deux valeurs de date utilisent le format 102.
  4. Générez de nouveau la facture et vérifiez-la une nouvelle fois.
À quoi cela ressemble
✗ Déclenche le message
<ram:BillingSpecifiedPeriod>
  <ram:StartDateTime>
    <udt:DateTimeString format="102">20250110</udt:DateTimeString>
  </ram:StartDateTime>
  <ram:EndDateTime>
    <udt:DateTimeString format="102">20250109</udt:DateTimeString>
  </ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
✓ Correct
<ram:BillingSpecifiedPeriod>
  <ram:StartDateTime>
    <udt:DateTimeString format="102">20250109</udt:DateTimeString>
  </ram:StartDateTime>
  <ram:EndDateTime>
    <udt:DateTimeString format="102">20250110</udt:DateTimeString>
  </ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
À vérifier dans FactoorSharp
  • FacturXInvoice.BillingPeriodStart (BT-73)
  • FacturXInvoice.BillingPeriodEnd (BT-74)
Détails techniques

Le XPath compare les valeurs de date de ram:EndDateTime/udt:DateTimeString et de ram:StartDateTime/udt:DateTimeString lorsque @format='102'. La condition est également satisfaite si l’un des deux conteneurs de date est absent.

Où la règle s'applique

La règle s’applique à la période de facturation ram:BillingSpecifiedPeriod dans le règlement au niveau du document. Elle compare les dates de début et de fin lorsque les deux sont indiquées.

Message d'origine du Schematron
If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).
Contexte (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod
Expression de contrôle (assert/@test)
(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/ udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)