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

Paiement dans compta si changement de client entre livraison et facture

0000002542     -      04/10/2015

Dans la logique de Mercator, la modification du ticket d'abord, en changeant le client, est nécessaire. En effet, ceci a pour effet de mettre à jour de façon correcte l'historique des encaissements. Une fois le ticket modifié et validé, on peut le transformer en facture.

Si on omet cette étape, on a indiqué à Mercator que la livraison a été effectuée sur un client et qu'on facture à un autre (ce qui est possible et parfois nécessaire). Il ne faut dès lors pas déplorer par la suite que le paiement n'est pas associé au client correct. Mercator ne fait que transcrire la réalité qu'on lui a indiqué.

Pour rappel, lors de la centralisation comptable, c'est bien l'information de pieds_v qui est prise en compte, même pour la centralisation des acomptes.

Si toutefois, cette double-manipulation en environnement "caisse" est trop lourde, on peut installer, dans la séquence de factures, ce customizer.

Notez que ce module n'adapte pas les données dans HISCAISS (historique des encaissements) mais fait en sorte que, lors de la centralisation en comptabilité, le paiement sera bien associé au client de la facture.

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"];
            }
        }
    }
}

 

Bonjour à tous,

Situation :

J'ai une personne X qui achète un article au comptoir valeur 10 € client comptoir (Bon de livraison). Le lendemain, elle revient et veut une facture -> historique client, ouverture du ticket comptoir, transformation en facture et modification du client comptoir en client X. Lors de la validation en compta, l'OD de paiement sera générée sur le client comptoir. Y a-t-il une solution plus rapide que le changement de nom dans le ticket comptoir, l'enregistrement, réouvrir puis seulement le transfert en facture?