Projet

Général

Profil

Development #67675

Mis à jour par Lauréline Guérin il y a presque 2 ans

Besoin: calculer un forfait ou une adhésion.

Actuellement, la tarification ne se fait qu'a posteriori, selon un pointage, sur un event particulier.
Pour le forfait et ou l'adhésion, on a besoin de pouvoir calculer un tarif indépendamment d'un event et d'un pointage.

Pouvoir préciser sur une grille tarifaire, que cette grille est forfaitaire.
(sur la grille, et non sur le modèle de grille !)

Permettre d'avoir une grille tarifaire normale et une grille forfaitaire sur un agenda avec des périodes qui se chevauchent.

Pouvoir paramétrer des dates de facturation: une date, un label
Exemple: date=01/01/2023, label=Trimestre 1 2023
La date est un déclencheur: une fois qu'elle est passée, on doit facturer.
Elle peut servir d'identifiant pour la ligne de facturation.
Le label permet d'afficher un truc userfriendly dans la facture.

Pour le calcul d'un tarif:
* mode normal (calcul du tarif d'un event), ne chercher que parmi les grilles tarifaires normales.
* mode forfaitaire, ne chercher que parmi les grilles tarifaires forfaitaires.
* mode forfaitaire, prévoir un débrayage de la recherche de la subscription (adhésion: on n'a pas forcément de subscribed)

Techniquement:
* Ajouter un bool au model AgendaPricing pour préciser que la grille est forfaitaire ou non
* Ajouter un bool au model AgendaPricing pour préciser si on checke la subscription ou non (si activé, pas de rattachement à un agenda possible)
* Ajouter une liste de dates de facturation (nouveau model avec une FK vers AgendaPricing, un champ date, un champ label)
* Lors de l'ajout d'un agenda à une grille tarifaire, ne checker l'overlaps que sur les grilles de cet agenda avec le meme bool "forfaitaire"
* Adapter la méthode de calcul de tarif
* Adapter l'outil de test
* Adapter le endpoint de calcul de tarif
** Ajouter un param agenda (mode où on va checker la subscription)
** Ajouter un param agenda_pricing (mode où on ne checke pas la subscription)
** Les params slots, agenda, agenda_pricing sont exclusifs
* Pour les modes agenda et agenda_pricing, on a besoin d'une date, pour trouver le bon QF. Prendre
** Quand ça passe en facturation, on prend
la date de début de la période.
** Pour le endpoint de calcul de tarif, on prend la date du jour.

Retour