STO - Mise en place de la facturation
La facturation SAINet s’effectue par la tâche GTP27 sur la base d’un plan de calcul linéaire, comme un plan de lignes de salaires ou de décompte RH. Chaque ligne de plan émet un résultat qui sera ensuite transformé en ligne de facture dans le STO30.
Ce plan est écrit et s’éxecute en Javascript. Des utilitaires sont disponibles permettant de se lier directement au code Java ce qui permet pour certains calcul d’accélerer grandement le processus et de faire facilement et rapidement des calculs complexes. Les fonctions pré-existantes disponibles sont listées ici
Lors du calcul d’un mois pour un enfant, le système s’intéresse à la période de calcul sur laquelle il va calculer les lignes de factures :
le système découpe la période de calcul en sous période, puis le plan s’execute sur chaque sous-périodes. Le découpage des sous-périodes représente tous les moments ou un enfant voit survenir des changements qui impactent la facturation. Dans le standard, les changements peuvent être liés à
Un type de période particulier lié aux pages de planning, l’adaptation. Le nombre de jours d’adaptations crée une sous-période qui permettra d’effectuer des calculs différents (exemple : pas de facturation normale, rabais, etc…).
Un type d’absence particulier paramétré dans le cas d’un déploiement pemet de découper. Si l’enfant est malade, absent, etc… le système coupera alors la période en morceaux basé sur ces absences. Dans le cas où un même événement donne lieu à des comportements divers (ex : au bout de 10 jours, puis au bout de 15, etc…), alors le plus simple est de définir un morceau de code Java permettant de définir la règle de découpage.
Un changement de type de période (ferié, vacances, urgence). Le GTPSP permet de définir des périodes particulières (vacances, feriés, etc…). Lorsqu’un enfant est affecté par une telle période au travers de ses ses groupes (vacances parascolaire, jour ferié pour la structure, etc…) alors un découpage se fait pour pouvoir traiter différement les périodes.
Un changement de fréquentation de l’enfant ou d’un membre de sa famille. Dans l’exemple ci dessous, le premier enfant change de fréquentation au 15/01. Les deux enfants ont donc deux sous-périodes au même moment. Ceci permet par exemple de faire varier le rabais fraterie en fonction de l’éligibité d’un enfant à faire partie de la fratrie si par exemple il faut un nombre d’heures minimales
Un changement de tarification global permet d’impacter le calcul. Seules les tabelles UNI85 sont utilisées pour les découpages. Il est donc possible de définir grace à la dénomination de la tabelle que le tarif change à partir du 15 aout, mais que les personnes qui sont la depuis le 1er continuent avec le tarif jusqu’au premier septembre.
Au final, la période avec tous les éléments ci-dessus donnera ceci :
[En rédaction]
[En rédaction]
Voici un exemple avec le rabais fratrie. Suivant les cas rencontrés, le rabais fratrie est
- valide pour tous les enfants, ou seulement à partir du deuxième et seulements sur ceux ci
- valide pour tous les enfants dès qu’il y en a plus que 2 d’actifs en même temps
- d’un différent montant en fonction de la position de l’enfant
La meilleure façon de procéder lors de la mise en place d’un plan est alors de diviser la notion de position de l’enfant, qui pourra être calculé de diverse manières, de la notion de montant de rabais qui lui pourra être calculé à partir d’une position
Dans le cas par exemple du rabais dépendant de la position
// La ligne A001 à pour résultat
// * 1 si l'enfant est seul ou le premier de sa fratrie
// * 2 si l'enfant est 2ème de sa fratrie
// * 3 si l'enfant est 3ème...etc.
A001 - Position dans la fratrie
// La ligne A002 à pour résultat 0% si A001 est 1
// 20% si A001 est 2, 25% si A001 est 3 ou plus
A002 - Rabais fratrie (qui utilise A001)
Dans le cas du rabais pour tous
// La ligne A001 à pour résultat
// * 1 si l'enfant est seul
// * 2 si l'enfant a des frères et soeurs en même temps que lui
A001 - Position dans la fratrie
// La ligne A002 à pour résultat 0% si A001 est 1
// 20% si A001 est 2, 25% si A001 est 3 ou plus
A002 - Rabais fratrie (qui utilise A001)
Cet exemple montre que de découper la position permet d’avoir des lignes qui
suivent le même comportement. En effet ici la ligne A002
suit exactement la
même règle dans les deux cas, c’est la façon de calculer la position de l’enfant
qui varie.
En procédant ainsi, les travaux lors de la mise en place d’une structure sont limités car il suffit de se concentrer sur les différences en gardant les lignes déjà fonctionnelles.