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 un document de la gestion commerciale, placer un bouton qui permet de multiplier la quantité de la ligne courante par -1

0000002749     -      20/09/2017

Ce paramétrage n'est pas réellement un module, puisqu'il est possible de le réaliser avec un simple bouton. L'objet de ce paramétrage est d'ajouter dans l'écran de la gestion commerciale (ventes ou achats), un bouton qui va permettre de multiplier la quantité de la ligne courante par -1. Si la ligne courante ne contient pas d'article, la multiplication aura lieu sur la ligne première précédente qui contient un article.

Cela peut se faire en ajoutant un bouton dont le code sera :

Zoom
public static void Exec(MercatorUi.MovableControls.MovableButton clickedButton)
{
    // enter your customized code here
    MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)clickedButton.Form;
    MercatorUi.Engine.Gescom.BillingEngine billingEngine = billingForm.BillingEngine;
    if (billingEngine.ReadOnly) // si l'utilisateur n'a pas le droit de modifier ce document
        return;

    int index = Api.DataGridViewCurrentRowToDataTableRowIndex(billingForm.LinesEditor.Grid);
    if (index < 0)
        return;

    if (!string.IsNullOrWhiteSpace(billingEngine.LignesVRecords[index].ID_ARTICLE))
    {
        billingEngine.LignesVRecords[index].DataRow[billingEngine.VarQ] = (double)billingEngine.LignesVRecords[index].DataRow[billingEngine.VarQ] * -1;
        billingEngine.UpdateAmounts();
    }
    else
    {
        index = index - 1;
        if (index < 0)
            return;
        if (!string.IsNullOrWhiteSpace(billingEngine.LignesVRecords[index].ID_ARTICLE))
        {
            billingEngine.LignesVRecords[index].DataRow[billingEngine.VarQ] = (double)billingEngine.LignesVRecords[index].DataRow[billingEngine.VarQ] * -1;
            billingEngine.UpdateAmounts();
        }
    }
    MercatorUi._Divers.SuperFocus(billingForm.LinesEditor);
}

Cette programmation requiert l'option ENGG.