Gestion de bons cadeaux dans la gestion commerciale (version 10.10 et suivantes)

0000003081     -      26/08/2025

Mercator 10.10 permet la génération et la consommation de bons cadeaux (sous forme d'un mode de paiement).

Installation

Pour activer cette fonctionnalité, il faut : 

  • Dans la table STOCK, ajouter S_PAYTERMBONCAD bit
  • Dans les tables HISCAISS et LIGNES_V, ajouter IDBONCADPAYTERM char(10)

alter table STOCK add S_PAYTERMBONCAD bit not null default 0
alter table LIGNES_V add IDBONCADPAYTERM char(10) not null default ''
alter table HISCAISS add IDBONCADPAYTERM char(10) not null default ''
Si vous désirez gérer une date de validité pour les bons cadeaux, il faut alors ajouter le champ DATEBONCADEAUPAYTERM de type date dans LIGNES_V
alter table lignes_v add DATEBONCADEAUPAYTERM date not null default '19000101'
Lancez ensuite la mise à jour de la base de données via le menu "Outils > Outils avancés > Base de données SQL > Mettre à jour".
Le champ PIEDS_V.BONCADEAU varchar(MAX) est créé automatiquement. Il ne faut donc pas créer cette colonne manuellement.

Après redémarrage de Mercator, il faudra définir un mode de paiement avec ce libellé dépendant de la langue du dossier :

  • Français : Bon cadeau
  • Néerlandais : Cadeaubon
  • Anglais : Gift card
  • Allemand : Geschenkkarte.

 

Si vous gérez une date de validité pour les bons cadeaux, il faut compléter l'option BC_VALID pour indiquer le nombre de jours de validité du bon cadeau. Il est recommandé de cocher la case "Montant auto" des séquences de vente qui accepteront les bons cadeaux en paiement.
 

Utilisation

Dans un premier temps, il faut créer le(s) article(s) servant à la vente des bons cadeaux et cocher S_PAYTERMBONCAD sur ces articles.
Vous pouvez, par exemple, définir plusieurs articles avec un prix fixe ou alors définir un seul article où vous indiquerez le prix manuellement.
Lors de l'appel de cet(ces) article(s) dans une vente, suivant l'option BC_GENID,

  • soit un identifiant sera généré automatiquement,
  • soit il vous sera demandé d'indiquer cet identifiant.

Il est tout à fait possible de forcer un identifiant par code :

Zoom
using System;
using System.Data;
using MercatorApi;
using MercatorUi;
using MercatorUi.Engine.Gescom;

namespace Billing
{
    public class CustomizerMercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed

    {
        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeBonCadeauAskVoucher += BillingEngine_BeforeBonCadeauAskVoucher;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeBonCadeauAskVoucher -= BillingEngine_BeforeBonCadeauAskVoucher;
        }

        private void BillingEngine_BeforeBonCadeauAskVoucher(object sender, BillingEngine.BeforeBonCadeauAskVoucherEventArgs e)
        {
            for (int i = 0; i <= 3; i++)
            {
                string idBon = Api.Ident();
                Api.LastError = "";
                var exists = Api.ZselectDirect(Globals.RepData, "if exists(select * from lignes_v where IDBONCADPAYTERM=@idBon) select 1 else select 0", new MercatorSqlParam("@idBon", idBon, SqlDbType.Char));
                if (!string.IsNullOrEmpty(Api.LastError))
                    Dialogs.Stop(Api.LastError);
                if (!Convert.ToBoolean(exists))
                {
                    e.IdBonCadeau = idBon;
                    break;
                }
                else if (i == 3)
                {
                    Dialogs.Stop("Bon cadeau : Impossible de trouver un code unique !");
                }
            }
        }
    }
}

 

Il est possible de lancer une impression des bons cadeaux. Pour cela, il faut configurer l'option PRINT_BC, et le layout est modifiable depuis "Outils > Modèles documents" en ayant au préalable ouvert une vente avec un bon cadeau présent.

Fonctionnement

Pour le retour de ce bon cadeau, celui-ci se fait en indiquant le mode de paiement "Bon cadeau". Le montant se complète automatiquement (voir remarque ci-dessus concernant la case "Montant Auto" à cocher). A l'enregistrement, il vous sera alors demandé d'indiquer l'identifiant du bon cadeau. Si on ne souhaite pas saisir cet identifiant manuellement, il faut le fixer via e.IdBonCadeau dans l'événement BeforeSendRequestPayTerm de l'objet Payments de la BillingForm. 

Mercator vérifiera le solde du bon cadeau et, s'il est positif, modifiera le total du mode de paiement avec

  • soit le montant restant du bon cadeau
  • soit le montant restant à payer (si le montant restant du bon cadeau est plus important que le solde du document).


De base, il n'est pas possible d'utiliser le même bon cadeau plusieurs fois dans une même vente. Si vous voulez effectuer des contrôles supplémentaires comme ne pas pouvoir payer par bon cadeau l'achat d'un autre bon cadeau (par exemple), vous pouvez utiliser l'évènement BeforeSendRequestPayTerm de l'objet Payments de la BillingForm.

 

Impressions

Dans le fichier zip ci-dessous, vous trouverez :

  1. le rapport "3081S Historique d'un bon cadeau" à installer.
    Il est accessible via le bouton "Documents" de la fiche article.
    Lorsque vous exécutez celui-ci, Mercator vous demande le code-barres du bon cadeau et vous indique les informations concernant
    • son achat,
    • son éventuelle recharge,
    • son (ou ses différentes) utilisation(s).

  2. le rapport "3081S Bons cadeaux périmés" à installer.
    Il est accessible via le bouton "Documents" de la fiche article.
    Il affiche la liste des bons cadeaux non consommés et dont la date de validité est antérieure à la date sélectionnée.

 

Notions comptables et de TVA

Au niveau comptable et de la TVA, il existe 2 manières de gérer les bons cadeaux comme l'explique la circulaire 2018/C/127 concernant le traitement des bons en matière de TVA.

  1. éligible sur des articles n'ayant qu'un seul taux de TVA
    A CHANGER ET FAIRE RETOUR AVEC ARTICLE NEGATIF
    Dans ce cas, il faut définir un taux de TVA au niveau de l'article de vente. et définir un compte de vente marchandise au niveau de l'article.

    Ce qui donne : 

    • Vente 700000 C
    • TVA 451000

    Lors du retour du bon cadeau, au niveau du mode de paiement, il faudra définir un compte de virement interne par exemple

    • Paiement 580000 D

    Comme la TVA est payé lors de l'émission du bon cadeau, et que la vente pour consommer le bon génère aussi de la tva, il est nécessaire de réconcilier le tout en faisant une écriture pour débiter le chiffre d'affaire et la tva à recevoir.

    • Paiement 580000 C
    • Vente 700000 D
    • TVA à recevoir 411000 D

     

  2. éligible sur des articles ayant des taux de TVA différents
    Dans ce cas, il faut définir un taux de TVA à 0, et définir un compte d'attente exemple 499001 au niveau de l'article.

    Ce qui donne : 

    • Vente 499001  C

    Lors du retour du bon cadeau, au niveau du mode de paiement, il faudra définirle compte d'attente de l'article par exemple 499001

    • Paiement 499001 D
    La TVA dans ce cas, sera géré par les articles de vente


 



A télécharger : 0000003081.zip (41 Kb - 18/10/2022)


Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)