Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Gestion du montant maximum dans les retraits de caisse

0000003126     -      03/01/2023

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 :

Zoom
// <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 :

Zoom
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;
}