API Gestion Analytique ContrôlerAnalytique

 

Version : 5.0-00

Edition spéciale ES2

Package : fr.ACE.metier.bc4j.gestionanalytique.common

GestionAnalytiqueControlerAnalytique

Schémas d’entrée et de sortie : IN OUT

Cette API permet de contrôler la comptabilité analytique :

1- Elle vérifie que, pour chaque nature d'imputation, la somme des pourcentages de répartition sur les différentes combinaisons analytiques (evyd.pourcent) correspond à 100 %.

2- En présence du paramètre CTRANA, elle vérifie que les deux premiers éléments de la combinaison analytique sont renseignés

3- Elle vérifie l'existence des éléments de plan et la période de validité de la section et de la rubrique (au cas où la date d'écriture aurait été modifiée depuis le dernier contrôle).

4- Elle contrôle le caractère obligatoire ou facultatif. de certains couples (section/rubrique) ou plans secondaires.

API imbriquées : aucune.

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

RAS.

Paramétrage (PPE)

CTRANA (Contrôle sur l'imputation analytique)

Processus, contrôles et règles de gestion

Etape Description du Processus
1

Boucle de lecture sur le détail analytique (table EVYD) en fonction du champ p_option

2

En présence du paramètre CTRANA, on vérifie que les deux premiers éléments de la combinaison analytique sont renseignés :

  • Si la zone N1 du paramètre CTRANA est égale à « 1 » ou « 2 », alors on vérifie que, pour une nature d'imputation "FAC", EVYD.p_plecodpr <> " " et EVYD.p_plecodpb <> " "
  • On utilise également la zone N2 du paramètre CTRANA, avec un fonctionnement identiqueà la zone N1 mais pour une nature de type engagement (iae.inddeg = 'E').
3

Lire la définition de l'axe dans la table P_5AX

  • Pour chaque plan de l'axe, on contrôle l'existence de l'élément de plan de la table EVYD dans la table P_PLE .
  • On contrôle la période de validité de la section (evyd.p_plecodpr) et de la rubrique (evyd.p_plecodpb) : le contrôle s'effectue avec le champ « eve.datcli » s’il est renseigné sinon avec le champ « eve.dateve ».

Cette date doit être comprise entre la valeur du champ « p_pledeb » et la valeur du champ « p_plefin ».

Si les champs « eve.datcli » et « eve.dateve » ne sont pas renseignés alors il n’y a aucun contrôle de la période de validité de la section et de la rubrique.

  • Si l'axe ne gère pas un plan analytique, on efface l'élément correspondant dans la table EVYD .

Exemple : p_5ax.p_plncodpj = " " donc evyd.pl_plecods3 = " "

4

L’API gère le contrôle de couple : pour certains couples (section/rubrique), les plans secondaires peuvent être obligatoires ou facultatifs.

Le système contrôle le caractère obligatoire ou non des plans secondaires.

Lecture du couple et vérification du caractère obligatoire ou non des éléments de plans si :

q la section est paramétrée avec contrôle (p_ple.p_plectspb) ou

q l'axe est paramétré avec contrôle systématique : si « p_5ax.p_5axctspb » =

  • 1 : Couples obligatoires,
  • 2 : Couples non gérés,
  • 3 ou 4 : Contrôle selon la section.

Si l'indicateur « p_plectspb » de la section (p_ple_sect.p_plectspb) = "O" ET

si l'indicateur p_plectspb de l'axe = 2 ou 1,

Alors :

Accès à la table P_5CPL avec :
  • p_5axcod = p_5ax.p_5axcod,

  • p_plncodpr = p_5ax.p_plncodpr,

  • p_plecodpr = evyd.p_plecodpr,

  • p_plncodpb = p_5ax.p_plncodpb,

  • p_plecodpb = evyd.p_plecodpb.

Si non trouvé, on effectue le même accès mais en chargeant la rubrique avec le mot clé « #RUB » :

Accès à la table P_5CPL avec :
  • p_5axcod = p_5ax.p_5axcod,

  • p_plncodpr = p_5ax.p_plncodpr,

  • p_plecodpr = evyd.p_plncodpr,

  • p_plncodpb = p_5ax.p_plncodpb,

  • p_plecodpb = #RUB.

Si non trouvé, on s'assure que les couples ne sont pas gérés sur une longueur inférieure à celle de la section et on effectue le même accès mais en chargeant la section de la façon suivante :

Accès à la table P_5CPL avec :
  • p_5axcod = p_5ax.p_5axcod,

  • p_plncodpr = p_5ax.p_plncodpr,

  • p_plecodpr =

  • Lire la table P_PLN (définition du plan) avec p_plncod = p_5ax.p_plncodpr
  • Longueur du couple = LG = p_pln.p_plngcpl
  • Charger p_5CPL.P_plecodpr avec les LG premiers caractères de eyd.p_plecodpr, en ajoutant le caractère "#"
    • p_plncodpb = p_5ax.p_plncodpb
    • p_plecodpb = evyd.p_plecodpb

Si non trouvé, on effectue le même accès mais en chargeant la rubrique avec le mot clé « #RUB »

Accès à la table P_5CPL avec :
  • p_5axcod = p_5ax.p_5axcod,

  • p_plncodpr = p_5ax.p_plncodpr,

  • p_plecodpr =

  • Lire la table P_PLN (définition du plan) avec p_plncod = p_5ax.p_plncodpr
  • Longueur du couple = LG = p_pln.p_plngcpl
  • Charger p_5CPL.P_plecodpr avec les LG premiers caractères de eyd.p_plecodpr, en ajoutant derrière le caractère "#"),
  • p_plncodpb = p_5ax.p_plncodpb,
  • p_plecodpb = #RUB.

Si non trouvé :

on affiche le message P_CPLANINE « Couple analytique inexistant @ / @. »

Sinon :
  • on vérifie que le couple est autorisé :

    Si P_5cpl.p_5cpltyp <> "A", alors le couple est interdit :

    on affiche le message P_CPLANINT « Couple analytique interdit @ / @. »

  • on vérifie si les plans secondaires sont obligatoires : message bloquant si l'élément est rendu obligatoire par le contrôle de couple et qu'il n'est pas renseigné.

  • Vérification du plan secondaire S1 :

Si p_5cplss1 = "O" et p_5ax.plncods1 <> " " et evyd.p_plecods1 = " "

Erreur P_5CPLOBL : indiquer

à le plan de section à renseigner : p_5ax.p_plncods1

à le numéro de poste si evyd.numpos <> "0"

à le code frais si evyd.codfrd <> " "

à préciser que l'erreur concerne l'en-tête si numpos=0 et codfrd = " "

  • Vérification du plan secondaire S2 :

Si p_5cplss2 = "O" et p_5ax.plncods2 <> " " et evyd.p_plecods2 = " "

Erreur P_5CPLOBL : indiquer

à le plan de section à renseigner : p_5ax.p_plncods2

à le numéro de poste si evyd.numpos <> "0"

à le code frais si evyd.codfrd <> " "

à préciser que l'erreur concerne l'en-tête si numpos=0 et codfrd = " "

  • Vérification du plan secondaire S3 :

Si p_5cplprg = "O" et p_5ax.plncodpj <> " " et evyd.p_plecods3 = " "

Erreur P_5CPLOBL : indiquer

à le plan de section à renseigner : p_5ax.p_plncodpj

à le numéro de poste si evyd.numpos <> "0"

à le code frais si evyd.codfrd <> " "

à préciser que l'erreur concerne l'en-tête si numpos=0 et codfrd = " "

  • On vérifie si les plans secondaires sont gérés ou non : message bloquant si l'élément renseigné n’est pas géré par le contrôle de couple.
  • Vérification du plan secondaire S1 :

Si p_5cplss1 = "N" et p_5ax.plncods1 <> " " et evyd.p_plecods1 <> " "

Erreur P_5CPLNOBL : indiquer

à le plan de section à reblanchir : p_5ax.p_plncods1

à le numéro de poste si evyd.numpos <> "0"

à le code frais si evyd.codfrd <> " "

à préciser que l'erreur concerne l'en-tête si numpos=0 et codfrd = " "

  • Vérification du plan secondaire S2 :

Si p_5cplss2 = "N" et p_5ax.plncods2 <> " " et evyd.p_plecods2 <> " "

Erreur P_5CPLNOBL : indiquer

à le plan de section à reblanchir : p_5ax.p_plncods2

à le numéro de poste si evyd.numpos <> "0"

à le code frais si evyd.codfrd <> " "

à préciser que l'erreur concerne l'en-tête si numpos=0 et codfrd = " "

  • Vérification du plan secondaire S3 :

Si p_5cplprg = "N" et p_5ax.plncodpj <> " " et evyd.p_plecods3 <> " "

Erreur P_5CPLNOBL : indiquer

à le plan de section à reblanchir : p_5ax.p_plncodpj

à le numéro de poste si evyd.numpos <> "0"

à le code frais si evyd.codfrd <> " "

à préciser que l'erreur concerne l'en-tête si numpos=0 et codfrd = " "

5 Pour chaque nature d'imputation, on vérifie que la somme des pourcentages de répartition sur les différentes combinaisons analytiques (evyd.pourcent) correspond à 100 %.

Cas d’erreurs

Cause Effet
L’événement n’existe pas.

Aucun traitement n’est effectué.

Si la section et la rubrique n’est pas renseigné (EVYD.p_plecodpr = " " et EVYD.p_plecodpb = " ").

Aucun traitement n’est effectué.

Si l’enregistrement dans la table IAE n’est pas présent.

Aucun traitement n’est effectué.

La section principale n’existe pas dans la table P_PLE.

Aucun traitement n’est effectué.

La définition du plan n’existe pas dans la table P_PLN.

Aucun traitement n’est effectué.