API RF SCE_GP_002

  Version ACE : 1.3

Package : Standard

gnc_up_controle_produit_maj

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

Cette API permet de mettre à jour la table de contrôle UP pour le produit scanné.

API imbriquées : aucune.

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

RAS.

Paramétrage (PPE)

RAS.

Processus, contrôles et règles de gestion

ETAPE DESCRIPTION DU PROCESSUS
Règles de gestion

Type de traitement :

Dans ce sous-programme, le champ flgtrt vaut 1 (contrôle)

Mode :

  • T : cas où l’utilisateur modifie la quantité scannée dans le tableau ‘mouvements validés’. C’est la quantité scannée totale qui sera passée en paramètre,
  • ‘ ‘ : qté saisie lors du scan, ajout sur enregistrement existant.
Traitement
  • Idmvt renseigné et mvt en statut ‘3’ :
  • Vérifier s’il existe déjà un enregistrement dans la tale LUPCTL , non historisé pour le mouvement (il ne peut exister qu’en statut manquant) : si oui, historiser la ligne (flghis = ‘1’)
  • Valider le mouvement pour la quantité passée en paramètre (gnc_valid_mvtstk_logis)
    • Val.qteval_uc = 0
    • Val.dispo = 0
    • Val.majol = 1
    • Val.codmag = lobjstk.lcodmag } lire lobjstk pour le colis
    • Val.codemp = lobjstk.adremp } (lobjstk.idobj = idobjcol)
    • Si la quantité (qteunt) est < à celle du mouvement initial (lmvtstk.qteunt), un mouvement reliquat sera généré (voir gnc_rf_valid_mvt_op)
  • Insérer dans la table LUPCTL , statut scanné, pour la quantité scannée (lupctl.idobj = objet du mouvement ‘ES’ créé lors de la validation du mouvement ‘SS’, lupctl.idmvt = 0)
  • S’il existe un objet (mvt validé) :
  • Vérifier s’il existe déjà un enregistrement dans la table LUPCTL, non historisé pour l’objet (flghis = ‘0’) :
  • S’il existe une ligne en statut :
  • Manquant, non historisé : historiser la ligne : flghis = ‘1’
  • scanné, non historisé :
        • mode ‘ ‘ :
          • ajouter dans la table LUPCTL pour l’objet (la quantité scannée ne peut dépasser celle de l’objet)
        • mode T : modifier la quantité de la table. Si la quantité passée en paramètre est supérieure à celle de l’objet il faudra insérer la différence dans la table LUPCTL en statut ‘3’ (erreur), idobj = ‘ ‘.
  • sinon, insérer dans la table lupctl, statut scanné
  • recherche du mouvement correspondant pour alimenter la table (idbch, idord, ligord) :
        • lire lmvtstk avec :
          • typtie
          • sigtie
          • typmvt=’S’
          • sensmvt=’E’
          • idobj
          • si trouvé, lire le mvt de sens ‘S’ associé : sur le mouvement SS, on trouve les n° et ligne d’OP.
          • si non trouvé : pas d’erreur

Exemples :

Quantité scannée = 5, objet = 5

1) il n’existe pas d’enregistrement dans la table LUPCTL :

  • insertion qteunt = 5, statut = ‘1’

2) il existe :

  • un enregistrement scanné : quantité 2
  • un enregistrement manquant : quantité = 3
  • traitement :
  • historiser la ligne manquant, flghis = ‘1’
  • modifier la ligne scannée (statut = ‘1’, scanné) : qteunt = 5
  • insérer une ligne avec qteunt = 2, statut = ‘3’, erreur

Statut ‘3’ : en rouge, ce qui change.

CHAMP VALEUR
codsoc  
typtie Typdep
sigtie Sigdep
flgtrt 1 : contrôle UP
idobjcol Idobjcol
idmvt Idmvt si idobj vide 0
idobj Idobj si idmvt = 0 vide
flghis Calculé ‘0’
numord + 1
idbch Lmvtstk.idbch 0
idord Lmvtstk.idord 0
ligord Lmvtstk.ligord 0
codpro Lmvtstk.codpro ou lobjstk.codpro – code produit
qteunt Qteunt
cnttyp Lmvtstk.cnttyp ou lobjstk.cnttyp (1)
cntcod Lmvtstk.cntcod ou lobjstk.cntcod (1)
uticre Ut_uti.uti
datcre Date
heucre Heure
datctl  
heuctl  
statut calculé
flgedite ‘0’
lcodmag ‘ ‘ (1)
adremp ‘ ‘ (1)
valzn1  
valzn2  
valzn3  
valzn4  
valzn5  
valzn6  
valzn7  
valzn8  
valzn9  
valzn10  
datmod  
utimod  

(1) : recherche du picking si produit en erreur :

recherche, dans la table EMP, un magasin de type picking, non bloqué en sortie pour le produit, prioritairement pour le contenant de l’objet :

a. codsoc

b. sigdep = sigdep

c. typmag = 3 (picking)

d. contenant de l’objet (cnttyp, cntcod)

e. non bloqué en entrée :

i. si codblq = ‘ ‘ : ok

ii. sinon lire la table LCBQ avec le code blocage, vérifier si entint =’0’

si non trouvé, faire la même recherche mais sans tenir compte du contenant

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
Idmvt Mouvement de sortie Long O si idobj vide
Idobj N° d’objet contenu Char (18) O si idmvt vide
Qteunt Quantité contrôlée en unités Long O
Mode T = quantité totale, ‘ ‘ sinon Char(1) O

Paramètres en sortie

NOM DU PARAMÈTRE TYPE FORMAT TAILLE REMARQUE
Aucun