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

MercatorPenguin en écriture : documents de la gestion commerciale

0000002834     -      08/06/2018

MercatorPenguin 2.0 permet la modification des documents de la gestion commerciale. Cette modification n'est toutefois pas possible sur l'ensemble des éléments du document. A ce stade du développement, elle porte uniquement sur les informations de pied de document et non sensibles par rapport à son intégrité. En d'autres termes, il est uniquement possible de modifier la référence, la date, l'échéance, ... ainsi que tous les champs libres ajoutés. Sont par contre non modifiables le client, le fournisseur, le dépôt, la devise, le taux de change, toutes les zones calculées par UpdateAmounts, ... Les lignes du document ne sont pas non plus modifiables. Ce dernier point n'empêche toutefois pas la saisie d'articles. Cet exemple montre comment cela est possible.

L'accès à un document se fait toujours au départ d'un bundle de type "Liste", via un bouton BillingEditButton, dont les propriétés suivantes doivent être spécifiées :

  • BillingTypeVA = V pour une vente, A pour un achat
  • BillingId = id du document dans la table PIEDS_V/A
  • BillingJournal = le journal
  • BilingPiece = le n° du document
  • BillingType = la valeur de TYPE dans PIEDS_V/A
<m:BillingEditButton Text="Modifier" Font="Small" 
BillingTypeVA="V" BillingId="@ID" BillingJournal="@JOURNAL" BillingPiece="@PIECE" BillingType="@TYPE" />

Le layout d'une fenêtre de modification dans MercatorPenguin doit être créé en XAML, au départ de la fiche de la séquence correspondante dans "Outils / Séquences / Ventes ou Achats" de Mercator et en utilisant cet élément de ce bouton déroulant :

Il convient de faire une version distincte par langue utilisée. (Seules les langues réellement utilisées doivent être complétées). Ce paramétrage XAML utilise essentiellement les EditControls.

Le fichier zip ci-joint contient quelques exemples de paramétrages.

En ce qui concerne les modifications des documents de la gestion commerciale, MercatorPenguinServer est sollicité à deux reprises :

  1. Pour la lecture des données
  2. Pour l'enregistrement des données modifiées.

MercatorPenguinServer étant par définition stateless, il n'y a aucune relation entre ces deux étapes. Concrètement, cela veut dire qu'un document créé ou ouvert en modification par MercatorPenguinServer n'est pas maintenu ouvert jusqu'à sa sauvegarde.

A chaque étape, MercatorUi.Main est utilisé et l'utilisateur actif correctement initialisé. Dès lors, ces propriétés statiques contiennent toujours la valeur correspondant à l'utilisateur de MercatorPenguin :

  • MercatorUi.Globals.Langue
  • MercatorUi.Globals.UserId
  • MercatorUi.Globals.CurrentUser
  • MercatorUi.Globals.CurrentUserRecord
  • ...

Les droits d'accès sont aussi vérifiés.


A chaque étape, les différents codes repris dans un customizer associé à cette séquence seront exécutés. Il existe cependant une exception pour des codes liés à des événements levés par la BillingForm. En effet, cette dernière n'est jamais instanciée par MercatorPenguinServer.

Dans tout code C#, utilisez ce test pour savoir si le customizer fonctionne sous MercatorPenguinServer :

Zoom
if (MercatorUi.Globals.IsMercatorPenguinServer)
{
    ...
}

 

 Il n'y a pas de mécanisme qui avertirait que le document en cours de modification aurait pu être modifié par un autre utilisateur entre le moment de la lecture et celui de l'enregistrement des données. Toutefois, lors de cet enregistrement, le document dans son ensemble est à nouveau lu et seules les valeurs des champs repris dans le paramétrage XAML sont portées en modification du record de pied. Si, lors de la sauvegarde, il est constaté que le document est en cours de modification par un autre utilisateur, alors un message indiquera que cette sauvegarde n'est temporairement pas possible.



A télécharger : 0000002834.zip (2 Kb - 30/05/2018)