De customer die gekoppeld is aan het invoerscherm voor prestaties maakt het mogelijk om het eindtijdstip van de voorgaande prestatie voor te stellen als aanvangstijdstip van de volgende prestatie. Deze customizer die in de betreffende sequenties moet worden geplaatst, implementeert de volgende interfaces:
Maakt vooral gebruik van het event ProviderTimePanelLoaded en ProviderTimeBeforeOkvan de BillingEngine van het huidige document. Het laatste eindtijdstip wordt opgeslagen in de dictionary MercatorUi.Globals.FreeTags, met de sleutel last_prest_h2.
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;
namespace Billing
{
public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
{
public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.ProviderTimePanelLoaded += new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimePanelLoadedEventHandler(BillingEngine_ProviderTimePanelLoaded);
BillingEngine.ProviderTimeBeforeOk += new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimeBeforeOkEventHandler(BillingEngine_ProviderTimeBeforeOk);
}
public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.ProviderTimePanelLoaded -= new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimePanelLoadedEventHandler(BillingEngine_ProviderTimePanelLoaded);
BillingEngine.ProviderTimeBeforeOk -= new MercatorUi.Engine.Gescom.BillingEngine.ProviderTimeBeforeOkEventHandler(BillingEngine_ProviderTimeBeforeOk);
}
void BillingEngine_ProviderTimePanelLoaded(object sender, MercatorUi.Engine.Gescom.BillingEngine.ProviderTimePanelLoadedEventArgs e)
{
if (Globals.FreeTags.ContainsKey("last_prest_h2") && (e.ProviderTimePanel.HourMinBegin.Text == "00:00"))
e.ProviderTimePanel.HourMinBegin.Text = Globals.FreeTags["last_prest_h2"].ToString();
}
void BillingEngine_ProviderTimeBeforeOk(object sender, MercatorUi.Engine.Gescom.BillingEngine.ProviderTimeBeforeOkEventArgs e)
{
if (Globals.FreeTags.ContainsKey("last_prest_h2"))
Globals.FreeTags["last_prest_h2"] = e.ProviderTimePanel.HourMinEnd.Text;
else
Globals.FreeTags.Add("last_prest_h2", e.ProviderTimePanel.HourMinEnd.Text);
}
}
}