La norme Peppol ne permet pas d'envoyer une facture électronique sans que l'une de ces deux zones ne soit complétée :
- cbc:BuyerReference (référence acheteur)
- cac:OrderReference/cbc:ID (référence de commande)
Par défaut, Mercator complète la référence de commande avec la référence du pied de document (PIEDS_V.REFERENCE). En conséquence, ce champ ne peut être vide. Un contrôle à ce propos est en place après la génération du document XML et avant l'envoi dans le réseau Peppol. (Contrairement aux anciennes versions de Mercator qui effectuaient ce test avant de produire le fichier XML.)
Il est possible, lors de la génération du fichier, de fixer la valeur de Reference par ce code. Dans l'exemple ci-dessous, si la référence est vide, on la remplace par journal + n° de facture. Sinon, elle demeure inchangée.
namespace Billing
{
public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
{
public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
{
billingEngine.BeforeEinvoiceExport += BillingEngine_BeforeEinvoiceExport;
}
public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
{
billingEngine.BeforeEinvoiceExport -= BillingEngine_BeforeEinvoiceExport;
}
void BillingEngine_BeforeEinvoiceExport(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeEinvoiceExportEventArgs e)
{
MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
if (string.IsNullOrWhiteSpace(e.Reference))
e.Reference = billingEngine.PiedsVRecord.JOURNAL + " " + billingEngine.PiedsVRecord.PIECE;
}
}
}