void BillingEngine_EinvNodeAdded(object sender, MercatorUi.Engine.Gescom.BillingEngine.EinvNodeAddedEventArgs e)
{
    MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
    
    if (e.Node.Name == "cbc:PriceAmount")
    {
        double s_bebat = Convert.ToDouble(e.DrLigne["s_bebat"]);
        if (s_bebat.CompareTo(0d, 2) != 0)
        {
            e.Node.InnerText = Api.Transform(Api.ValSafeDouble(e.Node.InnerText) - s_bebat, "#########0.00"); // diminuer le prix unitaire de la cotisation Bebat
            XmlNode n = billingEngine.EinvAddNode(e.eInvoiceEnum, e.ParentNode, "cac:AllowanceCharge");
            billingEngine.EinvAddNode(e.eInvoiceEnum, n, "cbc:ChargeIndicator", "true"); // true = charge
            billingEngine.EinvAddNode(e.eInvoiceEnum, n, "cbc:AllowanceChargeReason", "Bebat");
            billingEngine.EinvAddNode(e.eInvoiceEnum, n, "cbc:Amount", Api.Transform(s_bebat, "#########0.00"), new MercatorUi.Engine.Gescom.Tools.EinvNodeAttribute("currencyID", billingEngine.LibDev));
        }
    }
}