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

Betaling in boekhouding bij verandering van klant tussen levering en facturatie

0000002542     -      04-10-2015

Volgens de Mercatorlogica moet eerst het ticket worden gewijzigd (verandering van klant). Op die manier wordt de historiek van de inningen immers correct geactualiseerd. Eens het ticket gewijzigd en gevalideerd is, kan het omgevormd worden tot een factuur.

Door deze stap weg te laten, wordt aan Mercator aangegeven dat de levering is gebeurd bij de ene klant en dat men factureert aan een andere klant (wat mogelijk en soms noodzakelijk is). De latere betaling is dan ook niet gelinkt aan de correcte klant. Mercator doet niet anders dan de realiteit overnemen die werd aangegeven.

Ter herinnering: bij de boekhoudkundige centralisatie is het de informatie uit pieds_v waarmee rekening wordt gehouden, ook bij het centraliseren van de voorschotten.

Is deze dubbele manipulatie in de "kas"-omgeving echter te zwaar, dan kan men in de sequentie facturen, de volgende customizer installeren.

Merk op dat deze module de gegevens in HISCAISS (historiek van de inningen) niet aanpast, maar er alleen voor zorgt dat de betaling bij het centraliseren in de boekhouding correct wordt geassocieerd met de klant van de factuur.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeSave += new MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventHandler(billingEngine_BeforeSave);
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeSave -= new MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventHandler(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.PIEDS2 != null) && ((Convert.ToInt32(billingEngine.PIEDS2[0]["type"]) == 2) || (Convert.ToInt32(billingEngine.PIEDS2[0]["type"]) == 3))
                && (
                (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem1"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem2"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem3"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem4"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem5"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem6"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem7"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem8"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["tot_paiem9"]), billingEngine.NDec) != 0)
                || (Math.Round(Convert.ToDouble(billingEngine.PIEDS["rendu"]), billingEngine.NDec) != 0))
                && (billingEngine.PIEDS["id_cli"].ToString() != billingEngine.PIEDS2[0]["id_cli"].ToString())
                && MercatorUi.Dialogs.AnswerYesNo("Vous venez de modifier le client, alors qu'un paiement a déjà été perçu. Associer ce paiement au nouveau client ?"))
            {
                foreach (DataRow dr in billingEngine.PIEDS2)
                    dr["id_cli"] = billingEngine.PIEDS["id_cli"];
            }
        }
    }
}

 

Hallo,

De situatie:

een persoon X koopt een artikel aan de receptie met een waarde van € 10 als receptieklant (leveringsbon). De volgende dag komt die persoon terug en wenst een factuur ->historiek klant, opening receptieticket, omvorming in factuur en wijziging van receptieklant naar klant X. Bij het valideren in de boekhouding zal de DT (betaling) gegenereerd worden op de receptieklant. Bestaat er een snellere oplossing dan wijziging van de naam in het receptieticket, opslag, opnieuw openen en pas dan overdracht naar factuur?