Dans les paramètres Rayons, Familles, Sous-familles et Catégories, un nouvel évènement DuringSave permet d'apporter d'autres modifications dans la base de données durant la transaction SQL de sauvegarde. L'EventArgs contient ces propriétés :
- SqlCommand donne accès à la connexion SQL et à cette transaction
- CancelSave permet d'annuler le processus de sauvegarde.
Nouvelle signature de Sig.ScriptsApplyToSomeRecords
public bool ScriptsApplyToSomeRecords(string whereClause, SqlConnection sqlConnection, SqlTransaction transac, bool showProgressBar = false)
Pour la réexécution des scripts sur une sélection d'articles, elle permet de passer seulement la clause where et non plus toute la requête SQL.
Nouvelle méthode Sig.Import qui permet d'importer par code une DataTable
public bool Import(SigClasses.SigImportDescriptor sigImportDescriptor, out string result)
public class SigImportDescriptor
{
public DataTable DataTable { get; set; }
public bool BulkMode { get; set; }
public bool DoNotFindDoubleRecords { get; set; }
public bool UserIdAsUndoublingKeyIfPrestent { get; set; }
public string IdDepotIfNotImported { get; set; }
}
La classe SigImportDescriptor permet de passer les paramètres habituellement sélectionnés par l'utilisateur dans différentes boîtes de dialogue.
Nouvel évènement sur Sig : DuringWrite
Il est levé durant la sauvegarde d'une fiche de signalétique, dans la transaction SQL. Son EventArgs contient ces propriétés :
- CancelWrite : pour annuler le processus de sauvegarde
- SqlCommand : donnant accès à la connexion SQL et la transaction
- IsNew : indique s'il s'agit d'une nouvelle fiche ou d'une modification de fiche existante
- SigForm : la fenêtre de signalétique.
Nouvelle méthode MercatorUi.Dialogs.AskImage
public static _Dialogs.DialogAskImageRet AskImage(string message = null, byte[] defaultValue = null, IWin32Window owner = null, bool readOnly = false)
pour simplement permettre à l'utilisateur de sélectionner une image.
Nouvelles méthodes MercatorUi.Dialogs.AskList
public static string AskList(string message, IEnumerable<string> items, string parDefaut = "", bool showListIfOnlyOne = true, bool removeCancelButton = false, bool returnNullIfCancel = false, IWin32Window iw = null)
public static string AskList(string message, IDictionary<string, string> items, string parDefaut = "", bool showListIfOnlyOne = true, bool removeCancelButton = false, bool returnNullIfCancel = false, IWin32Window iw = null)
public static string AskList(string message, IEnumerable<(string id, string lib)> items, string parDefaut = "", bool showListIfOnlyOne = true, bool removeCancelButton = false, bool returnNullIfCancel = false, IWin32Window iw = null)
Elles permettent de proposer une liste à l'utilisateur. Ces signatures simplifiées ne requièrent plus la création d'une dataTable contenant les éléments de la liste.
Mise à disposition d'une propriété bool IsClosed sur le BillingEngine. Elle permet de savoir si le BillingEngine est déjà passé par sa méthode Close. Cela indique donc si le BillingEngine est encore utilisable ou pas.
Nouvel évènement sur le BillingEngine : ItemRemoved
Cet évènement est levé lorsqu'on remplace un code article par du vide afin de le retirer de la vente / de l'achat.
Son EventArgs contient ces propriétés :
- DataRowLignes, LignesVRecord et LignesARecord : la ligne en cours
- PreviousIdArticle : l'ID de l'article qui vient d'être supprimé.
Nouvel évènement sur le BillingEngine : BeforeDeductInvoiceInstallment
Cet évènement est levé lorsque l'acompte est déduit de la facture dans le processus de facturation automatique des acomptes liés aux commandes. L'EventArgs contient ces propriétés :
- Amount : le montant d'acompte qui va être déduit. Il peut être modifié
- IgnoreDeductInvoiceInstallment : ne pas déduire d'acompte
- Cancel : interrompre le processus.
Nouvel évènement sur le BillingEngine : BeforeInsertAllLinkItem
Cet évènement est levé avant l'insertion d'un ou plusieurs articles liés, mariés ou pacsés.
Son EventArgs contient ces propriétés :
- DataRowStock et StockRecord : l'article initial qui va être à l'origine de l'appel des articles enfants
- DataRowLignes, LignesVRecord et LignesARecord : la ligne en cours
- DataSetLinkedItems : un dataSet contenant 3 dataTables, respectivement pour les articles liés, mariés et pacsés.
Cet évènement est l'endroit idéal pour modifier la liste d'articles liés, mariés ou pacsés, avant leur insertion.
Informations de prix d'achat dans le BillingEngine : la classe PricingInfosA contient ces nouvelles propriétés IdArtFou et FromArtfou.
IdArtfou permet de localiser la ligne de ARTFOU à l'origine de ce prix.
Dans les retraits de caisse (remises en banque) GescomCashDepositBankRemittingForm : nouvel évènement HandlingError
Il permet de placer du code sur mesure si l'utilisateur tente de retirer plus que le solde en caisse. e.Action permet de fixer plusieurs comportements possibles :
- HandlingErrorEnum.CancelSave : interrompre le processus de sauvegarde
- HandlingErrorEnum.AcceptAndContinue : accepter l'erreur et continuer le processus
- HandlingErrorEnum.Warning : afficher une boîte de dialogue d'avertissement, qui demande à l'utilisateur s'il souhaite continuer.
Nouvelles méthodes de contrôle de structure de code-barres dans MercatorApi :
- Api.CheckEan14
- Api. CheckEan14PlusAI (EAN14 précédé d’un "Application Identifier")
- Api. CheckEan8
- Api. CheckGsin
- Api. CheckSscc
Sur le SqlFileView : nouvelle méthode AddFileAndSaveIt
public bool AddFileAndSaveIt(string fileName, byte[] fileContent)
Elle permet d'ajouter un fichier dans un SqlFileView et de le sauvegarder immédiatement. fileName doit contenir un chemin d'accès complet au format SqlFileView (par ex. <RepData\...). Ce chemin doit être compatible avec le SqlFileView utilisé. L'ajout de ce fichier ne mettra pas le SqlFileView en mode "demande de sauvegarde" puisque le fichier est immédiatement sauvegardé.
Calendrier du CRM : nouvel évènement AppointmentMomentChanged
Cet évènement est levé quand l'utilisateur déplace ou étire un rendez-vous dans le calendrier. Son EventArgs contient :
- Appointment : le rendez-vous modifié
- ModifiedField : chaîne de caractères qui vaut "moment_1" ou "moment_2".
Lors d'un déplacement, cet évènement est levé deux fois. Une fois pour moment_1 et une autre pour moment_2.
Dans le TransferEngine, mise à disposition de la datable STOCK et de la collection StockRecords.
Nouvelle méthode xLinearBarCode dans MercatorController.xFunctions.
public static System.Drawing.Image xLinearBarCode(LinearBarcodeEnum linearBarcodeEnum, string text, System.Drawing.Size size, bool showText, int angle = 0)
public enum LinearBarcodeEnum { Code39, Code128, EAN13, EAN8, Interleaved2of5 }
Elle permet d'obtenir une image correspondant à un code-barres linéaire (non QR code).
Note : pour les codes QR, il existait déjà la méthode xQrCode.