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 :
using System;
using System.Data;
using MercatorApi;
using MercatorUi;
using MercatorUi.Engine.Gescom;
namespace Billing
{
public class Customizer : MercatorUi.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 :
- 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).
- 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.
- é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 C
Lors du retour du bon cadeau, au niveau du mode de paiement, il faudra définir un compte de virement interne par exemple
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
é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 :
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
La TVA dans ce cas, sera géré par les articles de vente
A télécharger :
0000003081.zip (41 Kb - 18/10/2022)