Bekijk het rekeningoverzicht en het openstaande bedrag van de klant in een verkoop

0000003047     -      20-12-2021

Onderstaande configuratie laat u zien hoe u een openstaande bedrag van de klant in een verkoop kan weergeven en rechtstreeks vanuit de verkoop toegang kan krijgen tot zijn rekeningoverzicht via de klantenfiche.

encours

Het eerste deel van deze configuratie bestaat uit het updaten van een expressie waarvan de eigenschap RefreshedBy de ID zal bevatten van de TextBox waarvan de bron ID_CLI is. De code voor deze expressie is als volgt :

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);
    }
}

 

Vervolgens moet men in de code van de Billing customizer de waarde van idExpression aanpassen met de ID van de hierboven toegevoegde expressie. Deze customizer plaatst een knop in de expressie, deze geeft toegang tot het rekeningoverzicht.

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);
        }
    }
}

 

Deze programmering is compatibel met het beheer van het openstaande bedrag in een boekhouddossier. Het volstaat om C_ENCOURS in de expressie en in de customizer te vervangen door het gewenste C_ENCOURS_xxx-veld.