Als de backorderbeheermodus van Mercator is ingesteld op ASK (= keuze ter beschikking van de gebruiker), zal MercatorPenguinServer deze keuze wijzigen naar OUI (=backorders behouden), aangezien het dialoogvenster niet aan de MercatorPenguin-gebruiker kan worden voorgelegd. Dit gedrag kan worden gewijzigd via deze instelling.
Er moet eerst een boolean kolom worden toegevoegd aan de tabel van de transacties (PIEDS_V of PIEDS_A).
alter table PIEDS_V add KEEP_BO bit not null default 0
Vervolgens, in de XAML-configuratie van de betreffende sequentie, moet je een EditSwitch toevoegen waarvan de bron KEEP_BO is.
<m:EditSwitch Source="keep_bo" BackgroundColor="%ThemeColor%" />
Tot slot meot je in de doelsequentie deze customizer toevoegen :
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 (MercatorUi.Globals.IsMercatorPenguinServer)
billingEngine.ForcedBackOrders = billingEngine.PiedsVRecord.KEEP_BO ? MercatorUi.Engine.Gescom.BillingEngine.ForcedBackOrdersEnum.Yes : MercatorUi.Engine.Gescom.BillingEngine.ForcedBackOrdersEnum.No;
}
}
}