U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Nieuwe functionaliteiten in "Tools > Kortingen"

0000002330     -      17-11-2021

Versie 8.5 van Mercator brengt nieuwe functionaliteiten mee op niveau van solden- en promotiebeheer ("Tools > Kortingen"):

  • Voetnoot: de kortinglijnen kunnen gegroepeerd en afzonderlijk beheerd worden door de groep die dezelfde voet deelt (bijvoorbeeld reclamefolders beheren)
  • Concept voorbereidingen op niveau van aankopen (leverancierskortingen)
  • Beheer van kortingen 2 tot 4
  • Mogelijkheid om artikels te importeren met een draagbare terminal of Excel
  • Mogelijkheid om te zoeken in lijnen in een bepaalde kolom via rechtsklik in het rooster of via de knop "Zoeken" onderaan het scherm.

Om te beschikken over nieuwe functionaliteiten moet men:

  • Beschikken over versie 8.5 of hoger
  • de optie "Prijs > Kortingen: Volledige interface" (BAREM_FULL) op JA zetten: deze optie activeert de voetnoot
  • indien men wenst om de kortingen op aankopen te activeren, moet men de optie "Kortingen op aankopen" (BAREM_ACH) op JA zetten Deze laatste optie kan niet op JA gezet worden als de optie "Volledige interface" ook op JA staat.
Eens de volledige interface geactiveerd is, toont het menu "Tools > Kortingen" een lijst van voet-kortingen (headers). Een nieuwe lijn kan toegevoegd worden via de knop "Lijn toevoegen". Om de kortingen op deze lijn aan te passen, volstaat het om hierop te dubbel klikken.% In het scherm van de lijst met kortingen, kan men de volgorde van de lijnen wijzigen door te bewegen met de muis. De volgorde van de lijnen in het rooster is essentieel, aangezien de volgorde ook bepaalt welke lijnen in rekening genomen worden bij het toepassen van kortingen in documenten uit het commercieel beheer.
 
Het tabblad voet bevat standaard een gebied dat ons toelaat om de klant/leverancier te selecteren. Dit gebied is optioneel. Indien dit aangevuld is, dan worden de kolommen voor klanten/leveranciers (categoriën voor beide, tarieven) verborgen in het tweede tablad. Dit laat ons bijvoorbeeld toe om kortingen toe te kennen gelinkt aan een leverancier.
 
Het is mogelijk om extra gebieden toe te voegen in het eerste tabblad van het kortingenscherm. Dit kan gedaan worden met een customizer zoals deze hier. Het voorbeeld is voor het veld INFO van het type CHAR(50) toegevoegd in de tabel BAREMESV_PIEDS.
alter table BAREMESV_PIEDS add INFO char(50) not null default ''
 
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer
    {

        public void FormLoadCustomize(Form WindowsForm)
        {
            if (WindowsForm is MercatorUi.Forms.Gescom.GescomAllowancesForm)
            {
                MercatorUi.Forms.Gescom.GescomAllowancesForm gescomAllowancesForm = (MercatorUi.Forms.Gescom.GescomAllowancesForm)WindowsForm;
                if ((gescomAllowancesForm.TabControl != null) // TabControl est null si on est en gestion simplifiée
                && (gescomAllowancesForm.TypeVA == MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V)) // uniquement pour les remises clients
                {
                    MercatorUi._BaseClasses.MercatorLabelX labelInfo = new MercatorUi._BaseClasses.MercatorLabelX();
                    labelInfo.BackgroundStyle.Class = "";
                    labelInfo.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
                    labelInfo.Location = new System.Drawing.Point(9, 130);
                    labelInfo.Size = new System.Drawing.Size(80, 23);
                    labelInfo.TabIndex = 8;
                    labelInfo.Text = "Info :";
                    labelInfo.TextAlignment = System.Drawing.StringAlignment.Far;

                    MercatorUi._BaseClasses.BindableTextBox bindableTextBoxInfo = new MercatorUi._BaseClasses.BindableTextBox();
                    bindableTextBoxInfo.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
                    bindableTextBoxInfo.Border.Class = "TextBoxBorder";
                    bindableTextBoxInfo.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
                    bindableTextBoxInfo.Location = new System.Drawing.Point(109, 132);
                    bindableTextBoxInfo.Size = new System.Drawing.Size(398, 20);
                    bindableTextBoxInfo.Source = "info"; // nom de la colonne ajoutée dans la table BAREMESV_PIEDS
                    bindableTextBoxInfo.TabIndex = 9;
                    bindableTextBoxInfo.MaxLength = 50;

                    gescomAllowancesForm.TabControl.TabPages[0].Controls.AddRange(new Control[2] { labelInfo, bindableTextBoxInfo });
                }
            }
        }
    }
}

 


 

Indien men wenst om kortingen 2 tot 4 te beheren, volstaat het om de volgende velden toe te voegen:

  • voor de kortingen op verkopen: REMISE2, REMISE3, REMISE4 : float in de tabel BAREMES
    alter table BAREMES add REMISE2 float not null default 0
    alter table BAREMES add REMISE3 float not null default 0
    alter table BAREMES add REMISE4 float not null default 0
  • voor kortingen op aankopen: REMISE2, REMISE3, REMISE4 : float in de tabel BAREMESA
    alter table BAREMESA add REMISE2 float not null default 0
    alter table BAREMESA add REMISE3 float not null default 0
    alter table BAREMESA add REMISE4 float not null default 0

De overweging van deze optionele velden op verkoopsniveau vereist geen overschakeling naar "volledige modus". Enkel echt noodzakelijke velden kunnen toegevoegd worden.


Opmerkingen:

  • De tabel BAREMESV_PIEDS wordt automatisch toegevoegd wanneer de functionaliteit "Klantenkortingen" voor het eerst geopend wordt in "Volledige modus". In Aruba, vereist dit exclusieve toegang tot de database omdat het veld ID_PIED ook werd toegevoegd in de tabel BAREME. Daarom moeten alle andere gebruikers het programma afsluiten. (In Majuro, is deze vereiste niet van toepassing.)
  • De tabellen BAREMESA en BAREMESA_PIEDS werden automatisch aangemaakt wanneer de functionaliteit "Leveranciers kortingen" voor het eerst gebruikt wordt.
  • In Aruba, worden de tabellen BAREMESV_PIEDS, BAREMESA en BAREMESA_PIEDS niet aangemaakt in .DBF. Dit betekent dat de inhoud verloren zal gaan, indien men een demigratie uitvoert naar DBF.
  • De omschakeling van "Volledige modus" naar "Normale modus" heeft de consequentie dat alle informatie uit de voet definitief verloren is en dat alle kortinglijnen opnieuw gegroepeerd worden.
  • Het veld INTITULE van de tabel BAREMES kan uitgebreid worden, maar het moet altijd dezelfde lengte hebben als dit veld in de tabel BAREMESV_PIEDS.
    Hetzelfde geldt voor de tabellen BAREMEA - BEREMESA_PIEDS.

Voorbeeldtoepassing: Verschillende aankoopprijzen beheren in functie van het depot


Sinds versie 8.5.314 van MercatorUi.dll, kunnen de velden van de tabel BAREMES- BAREMESA toegevoegd worden in de tabellen met de kortingsvoeten (BAREMESV_PIEDS en BAREMESA_PIEDS):

  • Tarif : TARIF smallint (uniek voor kortingen op verkopen)
    alter table BAREMESV_PIEDS add TARIF smallint not null default 0
  • Categoriën: respectievelijk ID_CAT_CLI ou ID_CAT_FOU char(12)
    alter table BAREMESV_PIEDS add ID_CAT_CLI CHAR(12) not null default ''
    alter table BAREMESA_PIEDS add ID_CAT_FOU CHAR(12) not null default ''
  • Depot: ID_DEPOT char(10)
    alter table BAREMESV_PIEDS add ID_DEPOT CHAR(10) not null default ''
    alter table BAREMESA_PIEDS add ID_DEPOT CHAR(10) not null default ''

Eens deze velden toegevoegd zijn in de database, verschijnen de overeenkomstige controles automatisch in het eerste tabblad van het kortingenscherm. Zodra één van deze controles een niet-leeg veld tegenkomt, worden deze kolommen verborgen in het tweede tabblad.


De onderstaande code laat zien hoe u de waarde van een veld in kortingsvoet (in dit voorbeeld "remise") naar de lijnen niet kopieert, als de waarde nul is.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using MercatorExtensions;

// <CompileWithRoslyn />

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
    {
        public void FormLoadCustomize(Form form)
        {
            if (form is MercatorUi.Forms.Gescom.GescomAllowancesForm gescomAllowancesForm)
                gescomAllowancesForm.MergingDataRows += GescomAllowancesForm_MergingDataRows;
        }

        public void FormClosedCustomize(Form form)
        {
            if (form is MercatorUi.Forms.Gescom.GescomAllowancesForm gescomAllowancesForm)
                gescomAllowancesForm.MergingDataRows -= GescomAllowancesForm_MergingDataRows;
        }

        private void GescomAllowancesForm_MergingDataRows(object sender, MercatorUi.Forms.Gescom.GescomAllowancesForm.MergingDataRowsEventArgs e)
        {
            if (Convert.ToDouble(e.DataRowPied["remise"]).CompareTo(0d, 2) == 0)
                e.ColumnsToIgnore = new string[1] { "remise" };
        }
    }
}

Aanvullende informatie :