From d045d04cc94a3f7c58fc272679faa889214acac0 Mon Sep 17 00:00:00 2001 From: Matthieu Bessat Date: Tue, 22 Feb 2022 13:59:24 +0100 Subject: [PATCH] feat: add example in pdf and html fix: styles dir with twig --- README.md | 2 + bill.example.html | 218 ++++++++++++++++++++++++++ bill.example.pdf | Bin 0 -> 47548 bytes generate_html.php | 2 +- templates/bill.html.twig | 2 +- {styles => templates/styles}/main.css | 0 6 files changed, 222 insertions(+), 2 deletions(-) create mode 100644 bill.example.html create mode 100644 bill.example.pdf rename {styles => templates/styles}/main.css (100%) diff --git a/README.md b/README.md index 7807a79..9622c3d 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Written in PHP. May be adapted in the futur to allow for more use cases. +Currently support only the french language but you can write your own template that support your language. + Long term goal is to include this code into a bigger project that manage all the life of a freelancer ## Requirements diff --git a/bill.example.html b/bill.example.html new file mode 100644 index 0000000..c26c4f3 --- /dev/null +++ b/bill.example.html @@ -0,0 +1,218 @@ + + + + + Facture + + + +
+

Facture n°2022-02-1

+
+
    +
  • Au nom et pour le compte de :
  • +
  • John Doe
  • +
  • first address line
  • +
  • 89767 City name
  • +
  • +23 95 49 95 41
  • +
  • johndoe@example.org
  • +
  • SIRET : XXXXXXX +
  • TVA intracom : FRXXXXX
  • +
  • Code NAF : 6201Z
  • +
+
    +
  • Adressé à :
  • +
  • My super customer
  • +
  • blabla bla
  • +
  • 92404 Wow City
  • +
  • SIRET : XXXX +
  • TVA intracom : FRXXX
  • + +
  • Contact : Alice
  • +
+
+

+ Le mardi 1 mars 2022,
+

+

+ Objet : Web development of a super cool app +

+
+
+
+
+ Tâche +
+
+ Durée (en jours) +
+
+
+ The magnificient blog of your super website +
+
+
Manage articles
+
1,5
+
+
+
RSS feed
+
0,5
+
+
+
Beautiful reader
+
0,5
+
+
+
External connexion
+
0,9
+
+
+
+
Sous-total
+
3,4
+
+
+
+
+
+
+ Tâche +
+
+ Durée (en jours) +
+
+
+ Deployment to production +
+
+
Install a web server
+
0,3
+
+
+
Deployment of the app
+
0,5
+
+
+
+
Sous-total
+
0,8
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Total en jours4,2 j
Taux journalier en euros300 €
TVA (0 %)0 €
Total TTC1 260 €
Solde1 260 €
+
+ +
+ + diff --git a/bill.example.pdf b/bill.example.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b2321b3ff7ac39c560795ec26c0cf06c68448a0b GIT binary patch literal 47548 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 le$Jro $category) { diff --git a/templates/bill.html.twig b/templates/bill.html.twig index 1f02741..9def1fb 100644 --- a/templates/bill.html.twig +++ b/templates/bill.html.twig @@ -4,7 +4,7 @@ Facture diff --git a/styles/main.css b/templates/styles/main.css similarity index 100% rename from styles/main.css rename to templates/styles/main.css