| API / API Web | |
| Version ACE : 1.2 | ||
|
Package : fr.ACE.metier.bc4j.produit.common GestionDeclinaisonrepartirQuantite |
||
| Schémas d’entrée et de sortie : | IN | OUT |
Cette API permet de répartir une quantité demandée sur l’ensemble des variantes existantes d’un produit de référence et de restituer en sortie :
Cette API tient également compte de l’assortiment d’un magasin.
API imbriquées : aucune.
Contraintes et limites de fonctionnement (hors périmètre)
| Aucune. |
Paramétrage (PPE)
Processus, contrôles et règles de gestion
| ETAPE | DESCRIPTION DU PROCESSUS |
| Déclenchement |
Le produit de référence doit être renseigné. |
| Etape 1 |
Vérification de l’existence du produit de référence Le produit de référence doit exister dans la table PRO. Les paramètres de sortie sont alimentés de la manière suivante :
Si un magasin est précisé en entrée (champ « sigpdv » renseigné) alors l’API calcule à nouveau cette répartition globale en cumulant la répartition des variantes produit qui sont dans l’assortiment du magasin. Un produit existe dans l’assortiment d’un magasin s’il existe un couple magasin/variante produit dans la table PRC (le type de tiers doit correspondre à la valeur définie dans la zone A1 du paramètre TYPMAG). |
| Etape 2 |
Enregistrement des critères du modèle de déclinaison et des valeurs associées L’API tient compte des enregistrements de la table ZODM correspondant au code société, au code modèle et dont la « Codification O/N » (champ codifi) est « O ». Les enregistrements sont triés par ordre croissant par numéro d'ordre de présentation (champ « ordzon »). Pour chaque critère de déclinaison, l’API effectue le traitement suivant :
|
| Etape 3 |
Calcul et enregistrement du pourcentage (ou du ratio) de répartition par variante Répartition par pourcentage Cette étape a pour but de reconstituer les pourcentages par variante tels qu’on les affiche en fiche produit. Elle traite l’ensemble des variantes du produit de référence (table PRO) triées par ordre croissant du code produit. Si un magasin est précisé en entrée de l’API (champ « sigpdv » renseigné) alors l’API ne retient que les variantes produits associées qui font partie de l’assortiment du magasin. Pour chaque variante :
Le pourcentage de répartition de la dernière variante correspond à l’écart entre la somme des pourcentages de répartition des autres variantes et 100%. Répartition par ratios Si le mode de répartition des variantes est sous forme de ratios (champ « Pro.Repvar » = « 2 »), les ratios de chaque produit variante sont mémorisés. En revanche, pour le produit référence, la quantité totale des ratios des variantes assorties en magasin est à chaque fois calculée. Lorsqu’un magasin a été précisé en entrée (« sigPDV » renseigné), alors seules sont retenues dans le traitement les variantes produits associées qui sont dans l’assortiment du magasin. Un produit est considére comme faisant partie de l’assortiment d’un magasin lorsqu’il existe un couple « magasin/variante produit » dans la table des catalogues fournisseurs PRC. Cette table est consultée en utilisant les champs « codsoc », « typtie », « sigfou » (sigle magasin) et « codpro » (code produit). Le champ « typtie » doit contenir la valeur définie par la zone A1 du paramètre TYPMAG. Pour chaque variante concernée, les ratios des produits variantes sont cumulés dans une variable « CumulRatios ». Les paramètres suivants sont alimentés en sortie :
|
| Etape 4.1 |
Si la quantité demandée en entrée est renseignée alors l’API effectue le traitement suivant pour chaque variante du produit. Calcul de la quantité à répartir par variante (par pourcentage) 1. Calcul de la quantité à répartir Quantité de la variante = pourcentage de répartition de variante X quantiteDemandee. La quantité de la variante est arrondie selon l’algorithme ci-dessous (méthode existante « appliquerArrondi »).
2. Cumul de la quantité ainsi calculée sur chaque valeur de critère de la variante 3. Alimentation du paramètre en sortie « quantiteCalculee » L’API y cumule la quantité calculée sur chaque variante. |
| Etape 4.2 |
Pour chaque variante produit, si le mode de répartition des variantes est sous forme de ratios (champ « Pro.Repvar » = « 2 ») : Calcul de la quantité à répartir Si la QuantitéDemandée est différente de 0 et est inférieure au cumul des ratios calculé (CumulRatios), alors la Quantité correspondant au ratio 1 est forcée à la valeur 1. Dans ce cas, l’API affiche un message d’information du type : « La quantité à demander doit obligatoirement avoir au minimum la valeur CumulRatios » Calcul de la quantité à répartir pour le ratio de valeur 1 Quantité (ratio 1) = QuantitéDemandée / CumulRatios La quantité pour le ratio de valeur 1 est arrondie selon l’algorithme ci-dessous (méthode « appliquerArrondi »).
Quantité de la variante produit = Quantité (ratio 1) X Ratio du produit variante La quantité ainsi calculée est cumulée por chaque valeur de critère de la variante. Le paramètre en sortie quantiteCalculee contient le cumul des quantités calculées pour chaque variante. |
Critères d’entrée et de sortie
|
Paramètres en entrée :
Paramètres en sortie :
Trois critères au maximum dans le modèle : les critères doivent être restitués en sortie en respectant l’ordre de définition des critères dans le modèle (selon le champ « zodm.ordzon »). Le nombre de valeurs pour un critère est illimité : les valeurs doivent être restituées en sortie en respectant l’ordre alphabétique croissant sur la valeur du critère. L’unité d’expression de la quantité demandée n’est pas gérée par l’API car la répartition des quantités vers les variantes produit est indépendante de l’unité. |
Exemple
|
Sur le produit de référence 10001 « Pantalon Homme », l’utilisateur a saisi
une répartition d’approvisionnement. Le système a stocké les données dans la
base comme suit :
Tables mises à jour : Pro(produit de référence).repart = 9700 Pro(variante S/NOI).repart = 600 Pro(variante S/GRI).repart = 2100 Pro(variante M/NOI).repart = 500 Pro(variante M/GRI).repart = 1750 Pro(variante M/MAR).repart = 250 Pro(variante L/NOI).repart = 500 Pro(variante L/GRI).repart = 1750 Pro(variante L/MAR).repart = 250 Pro(variante XL/NOI).repart = 400 Pro(variante XL/GRI).repart = 1400 Pro(variante XL/MAR).repart = 200 Prd(Taille/S).repart = 30 Prd(Taille/M).repart = 25 Prd(Taille/L).repart = 25 Prd(Taille/XL).repart = 20 Prd(Couleur/NOI).repart = 20 Prd(Couleur/GRI).repart = 70 Prd(Couleur/MAR).repart = 10 L’utilisateur, connecté sur le site de Marseille, ajoute le produit de référence 10001 sur une commande d’achat. Il saisit une quantité de 7000 sur le produit de référence. Le système appelle l’API creerPoste qui utilise l’API repartirQuantite : Paramètres en entrée : codsoc : code société (facultatif) produitReference : 10001 quantiteDemandee : 1500 sigPDV : MARSEILLE Algorithme : Pour déterminer les paramètres en sortie, le système exécute les traitements suivants : Etape 3 de l’algorithme ci-dessus : La matrice de répartition en quantité du produit de référence est réduite aux variantes assorties dans le magasin MARSEILLE. Le magasin de Marseille qui ne gère pas la taille S : |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Répartition d'appros en quantité | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Total Calculé : 7000 | S | M | L | XL | Total | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Noir | 500 | 500 | 400 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Gris | 1750 | 1750 | 1400 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Marron | 250 | 250 | 200 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Total | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
La matrice des pourcentages associés est la suivante :
7000 = somme des quantités des variantes assorties. On calcule pour la taille M couleur noir mais 500/7000 = 0.07142857… * 100 puis arrondi à 2 décimales après la virgule = 7.14% Pour la dernière variante taille XL couleur Marron : % = 100 – (7 .14 + 7.14 + 5.71 + 25 + 25 + 20 + 3.57 + 3.57) = 2.87 % Etape 4 de l’algorithme ci-dessus : A partir de la matrice des pourcentages, on calcule la quantité à commander par variante retenue. On choisit le mode avec la quantité à commander arrondie à l’entier le plus proche.
Paramètres en sortie :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||