Ce bundle permet d'envoyer une notification quand la caisse (ou un tiroir-caisse particulier) est ouvert ou clôturé. Lors de la seconde étape, il présente le contenu de ce tiroir-caisse, de façon identique à ce bundle de type liste.
Le customizer repris ci-dessous permet d'envoyer la notification lors de validation de l'écran d'ouverture ou de fermeture de caisse.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using System.Windows.Forms;
namespace Gescom
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer
{
public void FormLoadCustomize(Form form)
{
if (form is MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm) // on est dans l'écran ouvertures/fermetures de caisse
{
MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm gescomCashOpeningClosingForm = (MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm)form;
gescomCashOpeningClosingForm.AfterValidate += gescomCashOpeningClosingForm_AfterValidate;
gescomCashOpeningClosingForm.Disposed += GescomCashOpeningClosingForm_Disposed;
}
}
private void GescomCashOpeningClosingForm_Disposed(object sender, EventArgs e)
{
MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm gescomCashOpeningClosingForm = (MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm)sender;
gescomCashOpeningClosingForm.AfterValidate -= gescomCashOpeningClosingForm_AfterValidate;
gescomCashOpeningClosingForm.Disposed -= GescomCashOpeningClosingForm_Disposed;
}
void gescomCashOpeningClosingForm_AfterValidate(object sender, MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm.AfterValidateEventArgs e)
{
MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm gescomCashOpeningClosingForm = (MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm)sender;
string msg = "Tiroir n° " + gescomCashOpeningClosingForm.CashDrawer;
if (gescomCashOpeningClosingForm.Type == MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm.GescomCashOpeningClosingEnum.Opening)
msg += " ouvert";
else
msg += " clôturé";
msg += " par " + Globals.CurrentUser["nom"].ToString() + ".";
Dictionary<string, object> dicoParams = new Dictionary<string, object>
{
{ "@message", msg },
{ "@tiroir", gescomCashOpeningClosingForm.CashDrawer }
};
MercatorPenguin.NotificationClient.Send(msg, "03c82b35-4ae6-4db7-b142-5a774d852358", dicoParams);
}
}
}
Il est nécessaire d'adapter la valeur du paramètre bundleId passé à Send en fonction de celle effectivement existante dans la table PENGUIN_BUNDLES de ce Mercator.
Installation rapide : le fichier Ouverture-clôture caisse.pngb peut être lu via le bouton "Ouvrir" situé dans le bas de l'écran de paramétrage.