Dans les retraits de caisse - remises en banque, il est possible de contrôler que le montant retiré n'est pas supérieur au montant en caisse. Ce contrôle s'effectue par mode de paiement et par devise.
Ci-dessous un exemple de code qui affiche un avertissement en cas de dépassement :
// <CompileWithRoslyn />
namespace Gescom
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
{
public void FormLoadCustomize(System.Windows.Forms.Form form)
{
if (form is MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm gescomCashDepositBankRemittingForm)
gescomCashDepositBankRemittingForm.HandlingError += GescomCashDepositBankRemittingForm_HandlingError;
}
public void FormClosedCustomize(System.Windows.Forms.Form form)
{
if (form is MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm gescomCashDepositBankRemittingForm)
gescomCashDepositBankRemittingForm.HandlingError -= GescomCashDepositBankRemittingForm_HandlingError;
}
private void GescomCashDepositBankRemittingForm_HandlingError(object sender, MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm.HandlingErrorEventArgs e)
{
e.Action = MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm.HandlingErrorEnum.Warning;
}
}
}
En changeant la valeur de e.Action, il est possible de produire d'autres comportements :
- CancelSave : arrêter la sauvegarde. Le code sur mesure doit idéalement afficher un message.
- AcceptAndContinue : continuer
Ce code montre comment afficher un message bloquant :
private void GescomCashDepositBankRemittingForm_HandlingError(object sender, MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm.HandlingErrorEventArgs e)
{
MercatorUi.Dialogs.Stop(string.Format("{0} : le montant retiré {1} {3} est supérieur au montant en caisse {2} {3} !"
, e.LibPaiem, Api.Transform(e.Amount, e.PictDev), Api.Transform(e.Caisse, e.PictDev), e.NomDev));
e.Action = MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm.HandlingErrorEnum.CancelSave;
}