Les programmes#

Un programme correspond à une enveloppe financière à laquelle on vient rattacher des dépenses.

Seul le responsable applicatif (“manager”) peut créer et modifier des programmes.

Note

Dans une version ultérieure, on pourrait imaginer un rôle de responsable financier, qui pourrait créer et modifier ces programmes.

Chaque programme a les propriétés intrinsèques (enregistrées) suivantes :

  • Un code

  • Un intitulé

  • Une discipline

  • Une campagne de rattachement

  • Un établissement OU un pôle OU une UF de rattachement : Portée/périmètre de l’enveloppe

  • Un arbitre : Utilisateur en charge de valider les demandes rattachées à ce programme

  • Un montant estimatif (indicatif)

  • Une limite (facultatif) : Montant total à partir duquel BiomAid bloquera les validations

  • Une date de fin : Date à partir de laquelle le programme sera/est inactif

  • Des pièces jointes (documents attachés)

  • Un champs commentaire (texte libre)

Par ailleurs, à chaque modification d’une demande ou d’une opération rattachée à un programme et au moins une fois par jour, le montant effectivement consommé sur ce programme est calculé et stocké dans la table. Ce montant consommé est calculé en faisant la somme du montant le plus fiable possible de toutes les demandes validées définitivement.

Techniquement, c’est la somme du montant validé (donc éventuellement amendée par l’arbitre) de toutes les demandes validées mais sans opération rattachée (en attendant la création automatique de cette opération) auquel on ajoute la somme, pour chaque opération rattachée au programme du meilleur montant estimé de l’opération. Ce montant est lui-même calculé de la façon suivante :

Si l’opération n’est pas soldée, c’est le montant maximum entre l’enveloppe allouée effectivement et le montant effectivement dépensé sur l’opération.

Si l’opération est soldée, c’est le montant effectivement dépensé sur l’opération.

Le montant effectivement dépensé sur une opération est lui-même calculé de la façon suivante :

  • Si l’utilisateur a saisi une valeur dans le champ « Montant », c’est cette valeur qui est utilisée.

  • Sinon et si au moins une commande rattachée est trouvée par le système, il utilise la meilleure valeur des lignes commandes liées à cette opération :
    • Si une commande n’est rattachée qu’à une opération, toutes les lignes de la commande sont utilisées

    • Si une commande est rattachée à plusieurs opérations, seules les lignes avec la même UF sont utilisées

    • Par ailleurs, le montant utilisé est celui de l’engagement si la ligne de commande n’est pas soldée et le montant liquidé si la ligne est soldée.

  • Sinon et si aucune commande rattachée n’est trouvée, la valeur nulle (0 €) est utilisée.

Note

Le rattachement aux commandes (et à leurs états) est dépendant du processus analytique « commandes_update » qui devrait être lancé au moins une fois par jour (la nuit). Sans cette connexion avec les commandes, disponible seulement pour magh2 à la date d’écriture de cette documentation, seul le mode manuel (où le chargé d’opération indique lui-même le montant de l’opération à la main) est pertinent.

Note

Le process d’analyse des commandes réalise aussi un contrôle sur la cohérence entre les opérations et les commandes et identifie les erreurs (cf. TODO)

Note

Ce processus nécessite de considérer qu’une opération soldée doit s’entendre au sens financier (= une commande soldée ne fera plus l’objet d’une commande en plus) et non au sens procédurale (= une opération soldée ne nécessite plus aucune action d’aucune sorte de la part du chargé d’opération)