Le paramétrage illustré ici montre comment implémenter le scénario suivant : différents vendeurs accompagnent les clients dans un show-room et encodent les ventes en temps réel dans MercatorPenguin. En fin de vente, celle-ci est sauvegardée dans MercatorPenguin et rouverte sur Mercator Desktop afin de la finaliser et de procéder à l'encaissement.
Le parcours commence par l'utilisation d'un bundle de type "Liste" qui affiche un bouton permettant la saisie d'une nouvelle vente. Un clic sur ce bouton va demander au vendeur de s'identifier (via la propriété AskUser). Ensuite, l'encodage de la vente s'effectue tel que décrit dans cette page. Une fois la vente validée, le premier écran est automatiquement rafraîchi (via la propriété RefreshListViewAfterValidation) et se présente sous cette seconde forme.
Le bouton "Modifier" permet de reprendre cette vente pour la compléter. Le code QR est destiné à être scanné par Mercator Desktop afin de pouvoir ouvrir immédiatement cette vente et la finaliser en procédant, par exemple, à l'encaissement.
Ce bundle est téléchargeable ici.
Le code repris ci-dessous peut idéalement être placé dans un bouton du ruban de Mercator Desktop. Il permet la réouverture de ce document sur base du contenu du code QR.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
using MercatorUi;
// <CompileWithRoslyn />
namespace Mercator.Ribbon.ButtonsCodes
{
public static class Script
{
public static void Exec(DevComponents.DotNetBar.ButtonItem clickedButtonItem)
{
// enter your customized code here
string qrCode = MercatorUi.Dialogs.AskString("Code QR ?", "");
if (string.IsNullOrEmpty(qrCode))
return;
if (qrCode.Length != 27)
{
MercatorUi.Dialogs.Stop("Le code QR n'a pas la longueur attendue !");
return;
}
if (!Int64.TryParse(qrCode.Substring(16, 10).TrimStart(), out Int64 piece))
{
MercatorUi.Dialogs.Stop("Le code QR n'a pas le format attendu ! (piece)");
return;
}
if (!int.TryParse(Api.Right(qrCode, 1), out int type))
{
MercatorUi.Dialogs.Stop("Le code QR n'a pas le format attendu ! (type)");
return;
}
string id = qrCode.Substring(1, 10);
string journal = qrCode.Substring(11, 5);
MercatorUi.Globals.Main.ShowBillingExisting("V", type, id, journal, piece);
}
}
}
Exemple de contenu de @lastBillingSaved : V3JG4KTUYEGBrou 517