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

Evènement DuringSave du BookingEngine

0000002171     -      09/01/2016

L’évènement DuringSave du BookingEgine s’exécute juste avant le transfert de lignes de la table temporaire #LIGNES_C_TMP vers #LIGNES_C sur le serveur SQL. A ce moment, les lignes dans la table temporaire sont complètes.

Attention : il faut être prudent avec cet outil, car comme il agit sur la table temporaire, il n’y a plus de possibilité d’appeler un UpdateAmount pour recalculer les totaux. Dès lors, les modifications apportées à cet endroit ne doivent en rien modifier le pied de document.


L’évènement s’appelle comme ceci :

Zoom
bookingEngine.DuringSave += new MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventHandler(bookingEngine_DuringSave);

Un code-type pourrait être le suivant :

Zoom
void bookingEngine_DuringSave(object sender, MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventArgs e)
{
    e.SqlCommand.CommandText = "update #lignes_c_tmp set..."
    if (!Api.SqlExec(e.SqlCommand))
        e.CancelSave = true ;
}


On voit que sur l’eventArgs, il y a deux propriétés :

  • CancelSave : à mettre à true si on veut stopper la sauvegarde
  • SqlCommand : à utiliser pour toute requête. Elle contient déjà la SqlConnection adéquate ainsi que la SqlTransaction

Exemple d'utilisation : Dans une écriture de vente, disposer de dates d'échéances multiples