Trois évolutions du générateur de devis (/subscriptions/devis/form/{idcust}) qui portent sur le
déroulé de travail plutôt que sur le contenu du devis lui-même.
Un bandeau en haut du formulaire affiche en permanence les totaux du devis en cours de saisie :
| Carte | Contenu |
|---|---|
| Total HT | Montant HT sur la période de facturation, et le montant de TVA |
| Total TTC | Montant TTC, avec la répartition abonnement / prestations |
| Abonnement récurrent | Tarif mensuel réel, hors mois offerts — celui qui s'appliquera après la première période |
| Offert | Montant des mois offerts et leur portée (tout l'abonnement ou N modules) |
La remise globale du client, quand elle existe, est rappelée sous les cartes.
Les montants se recalculent dès qu'on quitte un champ de prix ou qu'on change une remise, un type de facturation, une case « retirer du module ». C'est le même calcul que celui du PDF : plus besoin de générer un fichier pour connaître le montant proposé, ni de regénérer pour vérifier l'effet d'un ajustement.
Le formulaire est découpé en quatre panneaux qui suivent l'ordre de construction d'une offre : Le devis (libellé, numéro, adresse, mode de facturation, engagement), L'offre (modules souscrits, modules à proposer, options, mois offerts), Prestations ponctuelles (frais de mise en service et lignes facturées une seule fois) et Mentions sur le devis.
Deux interrupteurs commandent les modules, et ils ne font pas la même chose :
| Interrupteur | Effet |
|---|---|
| Ce devis comporte un abonnement | Décoché, le devis ne porte ni modules ni frais de mise en service : c'est un devis de pure prestation. |
| Inclure les modules déjà souscrits | Retire d'un coup tous les modules que le client a déjà, sans toucher aux modules à proposer. Pratique pour un devis qui ne porte que la nouveauté. |
Chaque module souscrit affiche son statut — En essai, Essai expiré, Abonné, Abonnement terminé. Un module « Abonné » est signalé comme déjà facturé : le laisser dans le devis n'a de sens que pour un réengagement ou une révision tarifaire. À l'inverse, un module en essai n'est pas encore facturé, et le devis sert justement à le convertir en abonnement payant.
Une barre reste collée en haut de l'écran pendant toute la saisie : elle porte le bouton Générer le devis et les quatre totaux, qui se recalculent à mesure que vous remplissez le formulaire. Survolez un total pour en voir le détail (TVA, décomposition, modules concernés par les mois offerts). Le bouton de génération est également répété en bas.
Bouton copier sur chaque ligne de l'historique. Le formulaire se recharge avec tout le contenu du devis choisi, mais en création : le devis d'origine reste intact et la copie repart avec un numéro neuf (voir numérotation).
C'est le cycle courant devis → négociation → nouvelle proposition, qui imposait jusqu'ici soit d'écraser le devis précédent en l'éditant, soit de tout ressaisir.
Bouton avion en papier sur chaque ligne de l'historique. Une fenêtre permet de :
Le PDF du devis sélectionné est joint automatiquement. À l'envoi :
Auparavant, l'envoi n'était accessible que depuis un écran séparé et expédiait le fichier téléversé à la main sur l'affaire — pas le devis généré ici.
Si l'envoi échoue pour certains destinataires seulement, le devis est quand même marqué comme envoyé — avec la liste de ceux qui l'ont réellement reçu — et un message indique les adresses en échec. Ne relancez alors que celles-ci : une relance complète renverrait le devis aux destinataires déjà servis.
En environnement local, tous les envois sont détournés vers l'adresse de support : aucun mail ne part chez un client.
La suppression retire le devis de l'historique sans le détruire : la ligne et son PDF sont conservés, ce qui permet de le retrouver s'il a été retiré par erreur. Son numéro reste réservé et ne sera jamais réattribué à un autre document — il a pu être communiqué au client.
Si le devis a déjà été envoyé, la confirmation le signale explicitement (date d'envoi et destinataires) et rappelle que le PDF transmis reste, lui, chez le destinataire.