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 :
bookingEngine.DuringSave += new MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventHandler(bookingEngine_DuringSave);
Un code-type pourrait être le suivant :
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 :
Exemple d'utilisation : Dans une écriture de vente, disposer de dates d'échéances multiples