De code moet in een Billing-customizer geplaatst worden die gecreëerd werd vanuit de bijbehorende sequentie. Implementeert de volgende interfaces:
Maakt vooral gebruik van het event BeforeSave van de BillingEngine van het huidige document.
De code wordt als volgt samengesteld:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
namespace Billing
{
public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
{
public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.BeforeSave += BillingEngine_BeforeSave;
}
public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.BeforeSave -= BillingEngine_BeforeSave;
}
void BillingEngine_BeforeSave(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventArgs e)
{
MercatorUi.Engine.Gescom.BillingEngine BillingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
if (BillingEngine.Type > 1)
{
for (int i = 1; i <= 9; i++)
{
if ((Convert.ToDouble(BillingEngine.PIEDS["tot_paiem" + i.ToString()]).CompareTo(0d, BillingEngine.NDec) != 0)
&& !MercatorController.xFunctions.xLookupLocalBool(BillingEngine.PAIEM, "type=" + BillingEngine.PIEDS["typ_paiem" + i.ToString()].ToString(), "cash"))
{
e.CancelSave = true;
MercatorUi.Dialogs.Stop("Onmogelijk dit document op te slaan!\r\nDit document bevat betaalwijzes van het type uitgesteld!");
break;
}
}
}
}
}
}