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

Gestion des reliquats (back-orders)

0000000858     -      14/01/2024

Lors de la transformation manuelle d'un document vers un stade ultérieur (exemple : commande transformée en livraison), si les quantités sont diminuées, Mercator propose une gestion des reliquats (back-orders). Ainsi, les quantités en reliquats restent ou non dans le document d'origine. Lorsqu'un devis (en vente) ou une préparation de commande (en achat) est transformé, Mercator propose de conserver le document d'origine dans son intégralité. L'option "Reliquats sur ventes" ou "Reliquats sur achats" (cf. "Outils / Options / Encodage") permet de déterminer comment la gestion des reliquats doit être effectuée :

  • OUI : toujours conserver les reliquats
  • NON : ne jamais conserver les reliquats
  • ASK : poser la question à l'utilisateur

Pour les ventes, si l'option est sélectionnée avec "+ devis entier", alors les devis sont toujours conservés dans leur intégralité. Pour les achats, si l'option est sélectionnée avec "+ prép. comm. entière", alors les préparations de commandes sont toujours conservées dans leur intégralité.


Mercator permet de déroger à ces options générales en spécifiant la gestion des reliquats client par client ou fournisseur par fournisseur. Pour installer cette fonctionnalité, il faut modifier la database comme suit :

  • ajouter un champ C_BO smallint dans CLI
  • ajouter un champ F_BO smallint dans FOU

L'installation n'est pas requise dans les 2 tables. Il est possible donc d'installer uniquement au niveau "clients" ou au niveau "fournisseurs".

Il convient d'ajouter un nouveau déroulant dans le signalétique correspondant, lié à cette colonne. Ce déroulant permet de spécifier la valeur de l'option de gestion des reliquats pour le client/fournisseur en cours. Si la valeur est laissée à blanc, alors l'option générale est utilisée.


Depuis la version 11.0 de Mercator, il est aussi possible de fixer ce comportement via le déroulant présent dans l'onglet "Evénement" de chaque séquence.

L’ordre des priorités est le suivant :

  • Comportement particulier défini au niveau du client/fournisseur,
  • Valeur définie dans la séquence,
  • Si aucune des deux valeurs précédentes n’est définie, alors c’est l’option générale X_BO_V/A qui est prise en compte.

Il est aussi possible de modifier le comportement par code pour chaque document individuellement. Cela se fait par la propriété ForcedBackOrders du BillingEngine. Par défaut, cette propriété vaut _none. Si sa valeur est différente, alors c'est toujours cette dernière qui est prise en compte.

Zoom
namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {
        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeSave += BillingEngine_BeforeSave;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeSave -= BillingEngine_BeforeSave;
        }

        void BillingEngine_BeforeSave(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventArgs e)
        {
            MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            if (...........)
                billingEngine.ForcedBackOrders = MercatorUi.Engine.Gescom.BillingEngine.ForcedBackOrdersEnum.No;
        }
    }
}