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

Ontvang het totaal van PaymentTracing

0000003204     -      11-04-2024

1. In de klanten historiek

Deze instelling voegt een kolom toe met het totaal van PaymentTracing in de klanten historiek van het menu "Vensters". Hiervoor moet deze SQL scalaire functie worden geïnstalleerd (minimale versie van SQL Server = 2016).

CREATE FUNCTION TOT_PAYMENTS_TRACING (@payments_tracing varchar(MAX))
RETURNS float
AS
BEGIN
declare @ret float
if (@payments_tracing is not null) and (@payments_tracing <> '')
select @ret = SUM(TotDv) from OPENJSON(@PAYMENTS_TRACING)
  WITH (
Id char(10),
Journal char(5),
Piece bigint,
[Date] date,
TotDv float,
IdDev char(10)
  )
RETURN isNull(@ret, 0)
END

 

Vervolgens moet u het tabblad Customizer van de gewenste sequentie gebruiken om deze regel in de StringUpdater in te stellen:

  • Voor : devises.nom as dev_nom
  • Na : devises.nom as dev_nom,dbo.TOT_PAYMENTS_TRACING(payments_tracing) as TotPaiem

 

Belangrijke opmerkingen :

  • De toevoeging van deze kolom kan de prestaties van de functie "klanten historiek" aanzienlijk beïnvloeden.
  • Het is niet mogelijk om op één regel van de klanten historiek meerdere bedragen toe te voegen. Het is dus niet mogelijk om voor eenzelfde verkoopdocument betalingen in verschillende valuta's te onderscheiden. De instellingen die hier worden gemaakt, gaan er daarom van uit dat er niet meerdere valuta's worden gebruikt in het bestand of, op zijn minst, dat alle betalingen die zijn ontvangen en gekoppeld aan een definitief document, in de valuta van dat definitief document zijn.

2. In een rapport gekoppeld aan een verkoopsequentie (piece.repx)

Om dit totaal te verkrijgen, moet u gebruikmaken van het codegedeelte van de rapporteditor en de BeforePrint actie van een "tekst"-object benutten.

Zoom
private void Text20_BeforePrint(object sender, EventArgs e)
{
    List<MercatorUi.Engine.Gescom.Tools.PaymentTracingDescriptor> l = MercatorUi.Engine.Gescom.Tools.PaymentTracingDescriptor.ListFromJsonString((String)Report.GetColumnValue("PIEDS_V.PAYMENTS_TRACING"));
    double v = 0;
    foreach (MercatorUi.Engine.Gescom.Tools.PaymentTracingDescriptor d in l)
        v += d.TotDv;
    Text20.Text = FormatNumber(v,(Int16)Report.GetColumnValue("PIEDS_V.N_DEC"));
}

 

Le paramétrage effectué ici suppose donc qu'il n'est pas fait usage de multiples devises dans le dossier ou, au minimum, que tous les paiements perçus et liés à un document final, sont dans la devise ce document final.