Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout

génération de facture

le problème

on veut automatiser la rédaction de factures à partir d’une liste d’items et de prix

exemple d’utilisation, imaginons qu’on a les données suivantes :

à partir de ces données on pourrait imaginer plusieurs APIs pour produire des factures comme ceci

v0 : une fonction

l’API la plus simple évidemment ce serait tout simplement ceci

**************************************************
                  Tribeca Inc.,                   
            Somerset House – New Wing             
                 Lancaster Place                  
                 London WC2R 1LA                  
++++++++++++++++++++++++++++++++++++++++++++++++++
         Product Name   #    Item Price           
                Books   2    25.00                
              Monitor   1    250.00               
             Computer   1    500.00               
--------------------------------------------------
                Total        800.00 $             
--------------------------------------------------
        Thanks for shopping with us today!        
--------------------------------------------------

suggestions / indices

'X tutuX'
'X tutu X'

v1 : une classe

maintenant on peut aussi imaginer une autre façon d’implémenter ceci, en passant par une classe, comme par exemple

**************************************************
                  Tribeca Inc.,                   
            Somerset House – New Wing             
                 Lancaster Place                  
                 London WC2R 1LA                  

++++++++++++++++++++++++++++++++++++++++++++++++++
     Product Name     #  Item Price       
            Books     2  25.0             
          Monitor     1  250.0            
         Computer     1  500.0            
--------------------------------------------------
            Total        800.00$
++++++++++++++++++++++++++++++++++++++++++++++++++
        Thanks for shopping with us today!        
**************************************************

solution

Comme toujours, les annotations type hints sont totalement optionnelles

une solution v0

Dans une toute première version, on pourrait penser à faire des print() dans la fonction.

Toutefois cette approche n’est pas recommandée; il vaut beaucoup mieux construire et renvoyer une chaine; de cette façon l’appelant pourra toujours choisir d’utiliser print() de son coté

une solution v1