API Gestion Repartition Créer Répartition

Version ACE : 1.3  
Package : fr.ACE.metier.bc4j.evenement.common    
Schémas d’entrée et de sortie : IN OUT

Cette API permet de générer les éléments de répartition pour un poste d’un évènement ou pour une liste de produits et de magasins. Dans le cas d’une liste de produits et de magasins, l’API génère également les postes d’évènement correspondants.

Les éléments de répartition sont créés avec une quantité à zéro, les postes d’évènement également.

API imbriquées : GestionEvenementcreerPoste -

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

RAS.

Paramétrage (PPE)

Aucun.

Processus, contrôles et règles de gestion

ETAPE DESCRIPTION DU PROCESSUS
  Le champ « SelectionEnregistrementProduit » ou le champ « Poste » doit être renseigné dans le schéma d’entrée. Les deux ne peuvent être renseignés en même temps (message d’erreur).
  L’API vérifier qu’il existe au moins 1 magasin trouvé dans l’enregistrement EVPG.
  L’API recherche le numéro de ciblage : max(numcible) + 1 à rechercher les numcible existants pour la même clé (evrpe.achvte, typeve, numeve)
 

Si SelectionEnregistrementProduit est renseigné, l’API identifie tous les postes à générer correspondants (table EVPG). Si aucun code produit n’est spécifié, l’API identifie tous les postes à générer.

Pour tous les produits trouvés :

  • Si le poste existe avec le même produit, ne pas créer de nouveau poste.
  • Si aucun poste n’existe pas avec le même produit, créer un poste dans EVP en utilisant l’API GestionEvenementcreerPoste avec qtecde = 0. S’il y a création de poste (EVP), le champ « Evrpe.IndcreEvp » est mis à jour (= 1).

L’API crée un enregistrement dans EVRPE.

Appeler la méthode creerRepartionMagasinSelection

Si le champ « Poste » est renseigné, l’API ne crée pas de poste :

Appeler la méthode creerRepartionMagasinSelection

L’API supprime tous les enregistrements EVPG concernés (produits et magasins).

 

Méthode creerRepartionMagasinSelection

Créer un enregistrement dans EVRPE avec

Evrpe.achvte = evp.achvte

Evrpe.typeve = evp.typeve

Evrpe.numeve = evp.numeve

Evrpe.numpos = evp.numpos

Evrpe.numlig = 0

Evrpe.codrrp = vide

Evrpe.qtesai = 0

Evrpe.coduni = vide

Evrpe.numcible = Numéro de ciblage

Si EVRPE existe déjà ne pas générer d’erreur.

Pour chaque magasin trouvé dans EVPG avec :

Evpg.typtrt = SelectionEnregistrementMagasin.typtrt

Evpg.numedi = SelectionEnregistrementMagasin.numedi

Evpg.codpev = SelectionEnregistrementMagasin.codpev

Evpg.typtie = SelectionEnregistrementMagasin.typtie

Evpg.sigtie = SelectionEnregistrementMagasin.sigtie

Evpg.uticod = SelectionEnregistrementMagasin.uticod

Evpg.codpro = SelectionEnregistrementMagasin.codpro

Evpg.sigdep = SelectionEnregistrementMagasin.sigdep

Evpg.numlot = SelectionEnregistrementMagasin.numlot

Evpg.libcom = SelectionEnregistrementMagasin.libcom

Evpg.numpos = SelectionEnregistrementMagasin.numpos

(Si SelectionEnregistrementMagasin.sigtie est vide, il faut parcourir tous les EVPG pour tous les sigtie)

Créer un enregistrement dans EVRP avec

Evrp.achvte = evp.achvte

Evrp.typeve = evp.typeve

Evrp.numeve = evp.numeve

Evrp.numpos = evp.numpos

Evrp.numlig = 0

Evrp.typtie = evpg.typtie

Evrp.sigtie = evpg.sigtie

Evrp.codaxe = evpg.z40l_1

Evrp.qteini = 0

Evrp.qtealiv = 0

Evrp.qteliv = 0

Evrp.coduni = vide

Evrp.codunimag = vide

Evrp.dateng = vide

Evrp.achvto = vide

Evrp.typevo = vide

Evrp.numevo = 0

Evrp.numpoo = 0

Evrp.numlio = 0

Evrp.indtrt = N

Evrp.coeffini = 0

Evrp.coeff = 0

Evrp.proass = N

Evrp.valznx = vide

Si EVRP existe déjà ne pas générer d’erreur.

Erreurs possibles

CAUSE EFFET
Le champ « SelectionEnregistrementProduit » est renseigné et le champ « Poste » est renseigné. Message d’erreur bloquant.

Il n’existe aucun magasin dans l’enregistrement des postes à générer (table EVPG).

MAG_INE - « Il n’y a aucun magasin dans la sélection »

Exemples

Exemple 1 :

Pour un évènement commande d’achat A/CDA/340 sans aucun poste (EVP),

Contenu de la table EVPG après sélection des produits et magasins et avant l’appel de l’API

numedi Typtie Sigtie typtrt codpev Uticod codpro sigdep numlot Libcom numpos Z40l_1
340     RPP ACDA DEMO BR101          
340     RPP ACDA DEMO BR102          
340 DEP LILLE MAG ACDA DEMO           NORD
340 DEP PARIS MAG ACDA DEMO           IDF

Après le traitement de l’API :

La table EVPG est vidée de ces éléments

Contenu de la table EVRPE :

Achvte… Codrrp Qtesai coduni coduniaff Numcible
A/CDA/340/1/0 Vide 0 U U 1
A/CDA/340/2/0 vide 0 U U 1

Contenu de la table EVRP :

Achvte… Typtie Sigtie codaxe Qteini/qtealiv/qteliv coduni codunimag Dateng indtrt coeff coeffini
A/CDA/340/1/0 DEP LILLE NORD 0 U U 20072202 N 0 0
A/CDA/340/1/0 DEP PARIS IDF 0 U U 20072202 N 0 0
A/CDA/340/2/0 DEP LILLE NORD 0 U U 20072202 N 0 0
A/CDA/340/2/0 DEP PARIS IDF 0 U U 20072202 N 0 0

Dans EVP création de 2 postes pour les 2 produits : A/CDA/340/1/0 et A/CDA/340/2/0

Exemple 2 :

Pour un évènement commande d’achat A/CDA/340 avec un poste existant sur le produit BR101 (quantité 10)

Contenu de la table EVPG après sélection des produits et magasins et avant l’appel de l’API

numedi Typtie Sigtie typtrt codpev Uticod codpro sigdep Numlot/numpos Libcom qtecde Z40l_1
340     RPP ACDA DEMO BR101       10  
340     RPP ACDA DEMO BR102          
340 DEP LILLE MAG ACDA DEMO           NORD
340 DEP PARIS MAG ACDA DEMO           IDF

Après le traitement de l’API :

La table EVPG est vidée de ces éléments

Contenu de la table EVRPE :

Achvte… Codrrp Qtesai coduni coduniaff Numcible
A/CDA/340/1/0 Vide 0 U U 1
A/CDA/340/2/0 vide 0 U U 1

Contenu de la table EVRP :

Achvte… Typtie Sigtie codaxe Qteini/qtealiv/qteliv coduni codunimag Dateng indtrt coeff coeffini
A/CDA/340/1/0 DEP LILLE NORD 0 U U 20072202 N 2 3
A/CDA/340/1/0 DEP PARIS IDF 0 U U 20072202 N 6 6
A/CDA/340/2/0 DEP LILLE NORD 0 U U 20072202 N 2 4
A/CDA/340/2/0 DEP PARIS IDF 0 U U 20072202 N 9 7

Dans EVP création de 1 poste pour le produit BR102 : A/CDA/340/2/0