Description technique du scénario fonctionnel (3/5) – détail du wizard

Dans la vue du wizard, qui s'affiche, 4 types d'avance sont possibles

Cette vue est dynamique car elle s'adapte au choix retenu.
Par exemple, si l'on choisit "Pourcentage", la vue va se modifier dynamiquement en ajoutant le champ de saisie "Montant anticipé"

Techniquement, cela repose sur l'utilisation de l'attribut "on_change" d'un champ et sur les possibilités dynamiques des vues.
Le positionnement de l'attribut "on_change" permet l'exécution d'une méthode au changement de valeur du champ.

Dans notre exemple, le libellé  "Que voulez vous facturer ?" est associé au champ "advance_payment_method"

Mode "développeur"

L'attribut "on_change" de ce champ permet d'appeler la méthode "onchange_method"

sale_make_invoice_advance.xml

Cette méthode permet ici d'affecter une valeur à "amount"

sale_make_invoice_advance.py

Concernant l'affichage dynamique des champs (et/ou libellés), cela est géré par l'attribut "invisible"

sale_make_invoice_advance.xml

Enfin, le click sur le bouton "Créer facture / Create Invoice" ...

Mode "développeur"

... déclenche l'appel de la méthode "create_invoices" ...

sale_make_invoice_advance.py

... qui appelle la méthode "_create_invoices"

sale_make_invoice_advance.py

 ... qui crée une nouvelle instance de l'objet "account.invoice" (facture)

La facture est créée dans l'état "brouillon" (attribut "state" avec valeur "draft").

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *