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

Remettre à zéro quotidiennement la caisse pour les modes de paiement non cash

0000003133     -      12/07/2024

Mercator permet d'automatiser la remise à zéro quotidienne de la caisse pour les modes de paiement non cash. Cela se met en place via l'exécution planifiée d'une procédure stockée fournie par Mercator : SP_RESET_NON_CASH.

Via l'éditeur de code de Mercator, il suffit de saisir cette requête :

exec SP_RESET_NON_CASH

et ensuite de choisir cet élément du bouton "Exécuter"

executer_planifie

Cela permet de fixer une planification telle que celle-ci :

planning

L'heure est fixée à 23h pour que l'inscription dans l'historique des encaissements s'effectue à la date du jour.
La fréquence est quotidienne. La procédure stockée détectera correctement les journées sans activité (par ex. le dimanche) et ne produira aucune modification dans ce cas.

Voir aussi : Exécution de requêtes planifiées


L'exécution planifiée d'une requête requiert que SQL Agent soit installé et fonctionnel. Cette fonctionnalité n'est donc pas disponible si la version de SQL est limitée à SQL Express. Dans ce cas, il est possible de provoquer l'exécution de la procédure stockée lors du retrait de caisse effectué pour le cash (remise en banque) dans Mercator. Ceci peut se faire avec ce customizer :

Zoom
using System;
using System.Text;
using System.Windows.Forms;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using System.Data.SqlClient;

// <CompileWithRoslyn />

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.ISqlCommandUpdater
    {
        public void SqlCommandUpdate(SqlCommand sqlCommandToModify, Form form)
        {
            if ((form is MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm gescomCashDepositBankRemittingForm) && (gescomCashDepositBankRemittingForm.Type == MercatorUi.Forms.Gescom.GescomCashDepositBankRemittingForm.GescomCashDepositBankRemittingEnum.BankRemitting))
                sqlCommandToModify.CommandText += "\r\n\r\n"
                                                + "exec SP_RESET_NON_CASH";
        }
    }
}

Depuis la version 11.0 de Mercator, cette procédure stockée existe aussi dans une version acceptant un paramètre @tiroir permettant de limiter cette remise à zéro à un seul tiroir.

CREATE PROCEDURE dbo.SP_RESET_NON_CASH_WITH_DRAWER @tiroir smallint

Si on utilise une requête planifiée, celle-ci doit simplement être adaptée avec le numéro de tiroir. 

exec SP_RESET_NON_CASH_WITH_DRAWER 1

Si on utilise le code C# ci-dessus, il suffit de modifier la dernière ligne.

"exec SP_RESET_NON_CASH_WITH_DRAWER @tiroir";