Lors de la centralisation en comptabilité, Mercator propose un arbre permettant la sélection des séquences de la gestion commerciale qui doivent faire l'objet de ce traitement comptable. Par défaut, les différents nœuds sont cochés. Il est possible de bloquer la centralisation d'une séquence déterminée en décochant et en désactivant le nœud correspondant. Cela peut se faire via le customizer Main dont le code est repris ci-dessous.
Pour atteindre le noeud des achats, il suffit de remplacer
accountingAskPostIntoAccouting.Tree.Nodes[0]
par
accountingAskPostIntoAccouting.Tree.Nodes[1]
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
namespace Main
{
public class Customizer : MercatorUi.ICustomizers.IExec
{
public void Main(MercatorUi.ICustomizers.ExecAction Action)
{
if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
{
Globals.Main.BaseFormCreating += new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
}
else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
{
Globals.Main.BaseFormCreating -= new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
}
}
void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
{
if (e.Form is MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)
{
MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting accountingAskPostIntoAccouting = (MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)e.Form;
accountingAskPostIntoAccouting.Shown += new EventHandler(accountingAskPostIntoAccouting_Shown);
}
}
void accountingAskPostIntoAccouting_Shown(object sender, EventArgs e)
{
MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting accountingAskPostIntoAccouting = (MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)sender;
accountingAskPostIntoAccouting.Shown -= new EventHandler(accountingAskPostIntoAccouting_Shown);
DevComponents.AdvTree.Node node_ventes = accountingAskPostIntoAccouting.Tree.Nodes[0];
foreach (MercatorUi._BaseClasses.DataRowNode node in node_ventes.Nodes)
{
if (node.Dr["journal"].ToString() == "NCV")
{
node.Checked = false;
node.Enabled = false;
break;
}
}
}
}
}