De Peppol-standaard staat niet toe dat een elektronische factuur wordt verstuurd zonder dat een van deze twee velden is ingevuld:
- cbc:BuyerReference (referentie aankoper)
- cac:OrderReference/cbc:ID (referentie van de bestelling)
Standaard vult Mercator de referentie van de bestelling aan met de referentie van de hoofding van het document (PIEDS_V.REFERENCE). Bijgevolg kan dit veld niet leeg zijn. Dit wordt gecontroleerd nadat het XML-document is aangemaakt en voordat het naar het Peppol-netwerk wordt gestuurd. (In tegenstelling tot vorige versies van Mercator die deze controle uitvoerden voordat het XML-bestand werd aangemaakt.)
Het is mogelijk om tijdens het genereren van het bestand de waarde Reference in te stellen met deze code. In het onderstaande voorbeeld wordt de referentie, als deze leeg is, vervangen door journaal + factuurnummer. Anders blijft het ongewijzigd.
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;
}
}
}