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

Documents liés - croisés

0000003181     -      02/09/2024

Mercator 11.0 ou ultérieur permet de lier des documents en mettant en place des liaisons "ventes - achats" ou "achats - ventes". Cela permet de générer automatiquement, par exemple,

  • des préparations de commandes fournisseurs au départ d'une commande client. Par exemple lors d'une vente d'articles "sur commande".
  • des devis clients au départ d'une commande fournisseur. Par exemple pour de la refacturation inter-sociétés.

Pour installer cette liaison au départ des ventes, il faut ajouter ces colonnes dans la base de données :

alter table LIGNES_V add LINKED_A char(38) not null default ''
alter table LIGNES_V add ID_FOU_LINKED char(10) not null default ''
alter table LIGNES_A add LINKED_V char(38) not null default ''

Pour installer cette liaison au départ des achats, il faut ajouter ces colonnes dans la base de données, en excluant le cas échéant, les colonnes LINKED_V et LINKED_A créées à l'étape précédente :

alter table LIGNES_A add LINKED_V char(38) not null default ''
alter table LIGNES_A add ID_CLI_LINKED char(10) not null default ''
alter table LIGNES_V add LINKED_A char(38) not null default ''

 

Après ajout de ces colonnes, il est impératif de redémarrer Mercator et ensuite d'exécuter le menu "Outils > Outils Avancés > Base de Données SQL > Vérifier Structure". Cette procédure va ajouter les contraintes et index rendus nécessaires par la présence de ces colonnes.

 Si Mercator n'ajoute pas de contrainte, vérifiez que la version dans le voucher est égale ou supérieure à 11.0 et recommencez la vérification de structure.


Pour générer des documents fournisseurs au départ d'une commande client, il est nécessaire d'ajouter ces colonnes dans le paramétrage des colonnes du LinesEditor cet écran :

  • ID_FOU_LINKED : identifiant du fournisseur lié
  • ZOOM_FOU_LINKED : bouton de zoom / recherche associé 
  • NOM_FOU_LINKED : nom du fournisseur lié

fournisseurs_linked

Pour générer des documents clients au départ d'une commande fournisseur, il est nécessaire d'ajouter ces colonnes dans le paramétrage des colonnes du LinesEditor cet écran :

  • ID_CLI_LINKED : identifiant du client lié
  • ZOOM_CLI_LINKED : bouton de zoom / recherche associé 
  • NOM_CLI_LINKED : nom du client lié

Ces colonnes peuvent être ajoutées facilement via :

id_cli_linked

Il est recommandé d'ajouter une colonne supplémentaire, avec cette source read-only :

  • En commande client : LIGNES_V.LINKED_A
  • En préparation de commande fournisseur : LIGNES_A.LINKED_V

Cette colonne va permettre de visualiser les liaisons vers les documents opposés.

Pour que cette colonne produise un contenu, il faut installer les fonctions SQL correspondantes reprises dans le zip ci-joint. 

  • dbo.LINKED_DOC_V : appelée au départ d'une vente pour voir les achats liés
  • dbo.LINKED_DOC_A : appelée au départ d'un achat pour voir les ventes liées

Ces fonctions SQL peuvent être modifiées. Mercator ne les remplacera jamais.

Cette colonne read-only peut idéalement être ajoutée dans toutes les séquences de vente puisqu'elle va permettre, quel que soit le statut du document, de voir le ou les documents d'achats liés.

De même, la colonne read-only LIGNES_A.LINKED_V peut être ajoutée dans toutes les séquences d'achats, afin de visualiser les documents de vente qui sont à l'origine de ce document d'achat.

Les colonnes read-only symétriques existent aussi :

  • En commande fournisseur : LIGNES_A.LINKED_V
  • En devis client : LIGNES_V.LINKED_A

 

Dans la séquence de commandes clients, il est aussi recommandé d'ajouter cette colonne de type :

  • Source : find_fou_linked
  • Width : 34

Cette colonne affichera un bouton, qui permettra de sélectionner le fournisseur dans les données de ARTFOU liées à l'article en cours.

linked_artfou


Pour pouvoir générer des documents d'achats au départ d'une commande client, il faut compléter l'option JOULINKEDA : Documents liés : séquence achats.

Pour pouvoir générer des documents de ventes au départ d'une commande fournisseur, il faut compléter l'option JOULINKEDV : Documents liés : séquence ventes.

Note pour les développeurs :

Si on souhaite modifier par code une de ces options, il faut modifier la valeur de la propriété billingEngine.LinkedDocJournal. Cette propriété est toujours initialisée lors de la création du billingEngine avec la valeur des options mentionnées ci-dessus.


Fonctionnement

La suite des explications de cette page sont données pour des documents d'achats générés à partir du cycle de vente. Le fonctionnement symétrique depuis le cycle d'achats est aussi disponible ; il fonctionne de façon symétrique.

L'utilisateur encode une commande client. Pour certains articles, il souhaite appliquer le mode "sur commande" et spécifie donc dans ID_FOU_LINKED le fournisseur chez qui il va commander ces articles. Dans une même commande :

  • on peut trouver des articles avec ou sans fournisseur, même si certains articles sont identiques ;
  • on peut créer des liaisons vers différents fournisseurs, même pour des articles identiques.

Lors de la sauvegarde, Mercator va placer un identifiant unique dans la colonne LIGNES_V.LINKED_A. Il commence par V car le point de départ est une commande client. Mercator va ensuite générer autant de préparations de commandes fournisseurs que de fournisseurs trouvés dans la commande client. Il placera respectivement sur chaque ligne de ces préparations de commande fournisseur, dans la colonne LIGNES_A.LINKED_V, l'identifiant unique généré précédemment.

Cet identifiant unique ne changera jamais durant toute la vie des documents de vente et d'achat.

Une préparation de commande fournisseur générée de cette façon n'est jamais modifiable. Pour la modifier, il suffit de modifier la commande client correspondante. Si d'autres modifications sont nécessaires, elles devront avoir lieu après l'augmentation de la préparation de commande vers un statut supérieur.

Une préparation de commande ainsi produite peut être augmentée de statut mais ne peut jamais faire l'objet d'une gestion des reliquats de type "document entier".

Une fois la préparation de commande augmentée vers un statut ultérieur, totalement ou partiellement, les quantités de la commande client liée, pour les lignes associées à cette préparation de commande, ne sont plus modifiables.

Dans la commande client, la quantité d'une ligne résultant d'un reliquat n'est plus modifiable.

Par la suite, les processus de transformation tant au niveau des achats qu'au niveau de ventes peuvent suivre leur cours normal. Les colonnes read-only mentionnées ci-dessus permettent à tout instant de visualiser les liaisons. Un double-clic sur une cellule non vide de cette colonne permet

  • d'ouvrir directement le document lié, si celui-ci est unique,
  • d'afficher une fenêtre d'historique avec tous les documents liés, s'il en existe plusieurs.

Lors du réapprovisionnement :

  • Les commandes fournisseurs et préparations de commande avec LINKED_V non vides sont ignorées.
  • Si le réapprovisionnement tient compte des commandes client, il ignore les lignes où LINKED_A est non vide.

Transfert des lignes de commentaires

Mercator dispose de ces options, qui peuvent prendre la valeur OUI/NON :

  • Documents liés : commentaires depuis vente (id = LINKEDVCOM)
  • Documents liés : commentaires depuis achat (id = LINKEDACOM)

Elles permettent de transférer vers le document opposé les lignes de commentaire qui se trouve directement sous l'article. Ce transfert n'a lieu que lors de la création du document opposé. Il n'y a donc pas de mise à jour des commentaires lors de la modification du document d'origine.


Transfert des champs de pieds et/ou de lignes

Dans la séquence de commandes, il est possible de déterminer une liste de colonnes de la table PIEDS_V/A et/ou de la table LIGNES_V/A :

linkeddoc_pied

Ces listes sont délimitées par une virgule.

Elles permettent de transférer vers le document opposé les valeurs correspondantes.


Si l'utilisateur n'a pas des droits suffisants pour créer / modifier un document dans la séquence de destination, on peut déroger à cette limitation en mettant à OUI une des options suivantes :

  • LINKV_IGND : Documents liés-croisés : ignorer droits sur ventes
  • LINKA_IGND : Documents liés-croisés : ignorer droits sur achats

Si on souhaite automatiser l'insertion du fournisseur principal en tant que fournisseur lié (ID_FOU_LINKED), ce code peut être placé dans un AfterInsertItem :

Zoom
if ((billingEngine.Journal == "1Comm") && (e.StockRecord.S_... == "..."))
{
    DataSet ds = Api.Zselect(MercatorUi.Globals.RepData, "select fou.f_id,fou.f_nom from ARTFOU inner join FOU on (artfou.id_fou=fou.f_id) where (id_art=@s_id) and (principal=1)", new MercatorSqlParam("@s_id", e.StockRecord.S_ID, SqlDbType.Char));
    if ((ds != null) && (ds.Tables[0].Rows.Count > 0))
    {
        e.LignesVRecord.ID_FOU_LINKED = ds.Tables[0].Rows[0]["f_id"].ToString().TrimEnd();
        e.DataRowLignes["NOM_FOU_LINKED"] = ds.Tables[0].Rows[0]["f_nom"].ToString().TrimEnd();
    }
}


A télécharger : 0000003181.zip (1 Kb - 13/10/2023)