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

Dans une vente, visualiser l'encours du client et son extrait de compte

0000003047     -      20/12/2021

Le paramétrage illustré ici permet d'afficher l'encours du client dans une vente et d'accéder à son extrait de compte, directement depuis la vente, sans passer par la fiche du client.

encours

La première partie de ce paramétrage consiste en la mise en place d'une expression, dont la propriété RefreshedBy contiendra l'ID du TextBox dont la source est ID_CLI. Le code de cette expression est le suivant :

Zoom
public static String Evaluate(MercatorUi.MovableControls.MovableExpression currentExpression)
{
    // enter your customized code here
    MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)currentExpression.Form;
    if (billingForm.BillingEngine.CLI == null)
    {
        currentExpression.ButtonCustom.Enabled = false;
        return "0.00";
    }
    else
    {
        currentExpression.ButtonCustom.Enabled = true;
        return string.Format("{0:### ##0.00}", billingForm.BillingEngine.CliRecord.C_ENCOURS);
    }
}

 

Ensuite, il faut placer ce customizer Billing en adaptant dans le code la valeur de idExpression par l'ID de l'expression ajoutée ci-dessus. Ce customizer place un bouton dans l'expression, qui permettra l'accès à l'extrait de compte.

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

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
    {
        private const string idExpression = "1QZ1FZ3457";
        private const string source = "C_ENCOURS";


        public void FormLoadCustomize(Form form)
        {
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)form;
            if (billingForm.MovableControls.ContainsKey(idExpression))
            {
                MercatorUi.MovableControls.MovableExpression movableExpression = (MercatorUi.MovableControls.MovableExpression)billingForm.MovableControls[idExpression];
                movableExpression.ButtonCustom.Visible = true;
                movableExpression.ButtonCustom.Shortcut = DevComponents.DotNetBar.eShortcut.CtrlEnter;
                movableExpression.ButtonCustom.Image = _Divers.ImageFromResource("MercatorUi.MovableControls.Images.tinydetails.png");
                movableExpression.ButtonCustomClick += MovableExpression_ButtonCustomClick;
            }
        }

        public void FormClosedCustomize(Form form)
        {
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)form;
            if (billingForm.MovableControls.ContainsKey(idExpression))
            {
                MercatorUi.MovableControls.MovableExpression movableExpression = (MercatorUi.MovableControls.MovableExpression)billingForm.MovableControls[idExpression];
                movableExpression.ButtonCustomClick -= MovableExpression_ButtonCustomClick;
            }
        }

        private void MovableExpression_ButtonCustomClick(object sender, System.EventArgs e)
        {
            MercatorUi.MovableControls.MovableExpression movableExpression = (MercatorUi.MovableControls.MovableExpression)sender;
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)movableExpression.Form;
            MercatorUi.Sig.SigCli sigCli = (MercatorUi.Sig.SigCli)MercatorUi.Sig._SigsStatic.SigByModule(MercatorUi.Sig._SigEnum.CLI);
            if (billingForm.BillingEngine.CLI != null)
                sigCli.Statement(billingForm.BillingEngine.CliRecord.C_ID, source);
        }
    }
}

 

Cette programmation est compatible avec la gestion de l'encours par dossier comptable. Il suffit de remplacer C_ENCOURS dans l'expression et dans le customizer par le champ C_ENCOURS_xxx souhaité.