API RF SCE_GP_001

  Version ACE : 1.3

Package : Standard

gnc_up_recherche_produit

Fonctionnalité : Préparation
Schémas d’entrée et de sortie : voir en fin de document.

Cette API permet de rechercher le mouvement ou l’objet correspondant au code produit dans l’UP.

API imbriquées : aucune.

Contraintes et limites de fonctionnement (hors périmètre)

RAS.

Paramétrage (PPE)

MULEAN -

Processus, contrôles et règles de gestion

ETAPE DESCRIPTION DU PROCESSUS
Algorithme
Retrouver le code produit à partir du scanpro :
  • Lire la table PRO avec le code produit (16 car)
  • Si n’existe pas et longueur du champ <= 13 :
    • Lire la table PRO avec le GENCOD
  • Sinon (ou si n’existe pas).
    • Lire PRL avec dun14 (14 car)
      • Si paramètre MULEAN positionné avec A1 = ‘O’ et prl.codva1 = ‘MG’
        • Lire PRL avec
          • Dépôt
          • Codpro = w_prl.codpro
          • codva1 = ‘00’
          • codva2 = w_prl.codva2_l
          • cntcod = w_prl.cntcod_l

          si ok prendre le code produit

      • sinon si même dépôt, prendre le code produit

Si pas de code produit correspondant : erreur (message ‘L_PROINC’, paramètre champ scanpro)

  • Si quantité = 0
    • T0 : rechercher le mvt ou l’objet correspondant au code produit dans l’UP :>
      • Rechercher un enregistrement dans la table LOBJSTK ou LMVTSTK :
        • critères sur LOBJSTK
          • typtie
          • sigtie
          • idobjpere = idobjcol
          • codpro
          • idol > 0
          • statut = ‘0’
        • critères sur LMVTSTK :
          • typtie
          • sigtie
          • codpro
          • idobjcol = idobjcol
          • typmvt = ‘S’
          • sensmvt = ‘S’
          • statut = ‘3’
    • Si aucun enregistrement trouvé (ou tout a déjà été contrôlé) :
      • Message (‘Le produit n’appartient pas à l’UP’)
      • Retourner le code produit et qteunt = 0
    • Si lmvtstk.qteunt > 1 : retourner la quantité, et le code produit
    • Si lmvtstk.qteunt = 1 : gnc_up_controle_produit_maj pour le mouvement
    • Si lobjstk.qteunt >= 1 : lire lupctl, statut scanné.
      • Si n’existe pas :
        • Si lobjstk.qteunt = 1 : gnc_up_controle_produit_maj pour l’objet
      • Si existe :
        • Si lobjstk.qteunt – lupctl.qteunt = 1 : gnc_up_controle_produit_maj pour l’objet et quantité 1
        • Si lobjstk.qteunt – lupctl.qteunt > 1 : retourner la différence, et le code produit
        • Sinon reprendre le traitement en T0
      • Sinon : reprendre le traitement en T0
  • Si quantité > 0
      • T1 : rechercher le mouvement ou l’objet correspondant au code produit dans l’UP :
        • Rechercher un enregistrement dans la table LOBJSTK ou LMVTSTK :
          • critères sur LOBJSTK
            • typtie
            • sigtie
            • idobjpere = idobjcol
            • codpro
            • idol > 0
            • statut = ‘0’
          • critères sur LMVTSTK :
            • typtie
            • sigtie
            • codpro
            • idobjcol = idobjcol
            • typmvt = ‘S’
            • sensmvt = ‘S’
            • statut = ‘3’
    • si aucun enregistrement trouvé :
      • insertion ou ajout dans la table LUPCTL : idmvt = 0, idobj = ‘ ‘, statut = ‘3’ (erreur préparation).
        • Si le produit n’existe pas encore dans la table, incrémenter le n° d’ordre
        • Sinon ajouter la quantité passée en paramètre à la quantité de LUPCTL
    • Sinon
      • si mvt en statut ‘3’ :
        • gnc_up_controle_produit_maj avec lmvtstk.qteunt si p_qteunt >= lmvtstk.qteunt, p_qteunt sinon
        • si p_qteunt – qté traitée > 0, reprendre le traitement en T1
      • sinon (objet) :
        • lire LUPCTL pour l’objet, statut scanné, en cours (si n’existe pas lupctl.qteunt = 0) :
          • si p_qteunt + lupctl.qteunt <= lobjstk.qteunt
            • gnc_up_controle_produit_maj avec p_qteunt
            • fin traitement
          • sinon si lupctl.qteunt = lobjstk.qteunt
            • retour traitement T1
          • sinon :
            • gnc_up_controle_produit_maj avec (lobjstk.qteunt - lupctl.qteunt)
            • enlever la quantité traitée à la quantité passée en paramètre
            • reprendre le traitement T1

Paramètres en entrée

NOM DESCRIPTION FORMAT OBLIGATOIRE/FACULTATIF
Typdep Type dépôt Char (3) O
Sigdep Sigle dépôt Char (12) O
Idobjcol UP Char (18) O
Scanpro Code produit ou gencod ou dun14 Char (30) O
Qteunt Quantité en unités Long O

Paramètres en sortie

NOM DESCRIPTION FORMAT
Codpro Code produit Char (16)
Qteunt Quantité en unités Long