Bonjour,

Je viens de débuter mes cours de PHP et je suis un peu larguée. Je suis une formation à distance pour être développeur Web via le CNAM.

J'aurai besoin d'un coup de main pour un exercice.

Je dois créer un document HTML de type facture dans lequel les données clients et chaque ligne de prestation sont stockées dans des tableaux associatifs. Le montant de la facture doit être calculée dynamiquement en appliquant une TVA de 20%. De plus, il faut faire en sorte de pouvoir rajouter une ligne de prestation sans que ça flingue le code.
A chaque fois qu'on met la facture à jour, une facture différente doit apparaitre.

J'ai un peu commencé et je bloque sur quelques (voire beaucoup) de détail:

- Comment générer un numéro de facture par ordre chronologique. J'ai utilisé mt_rand mais pas sur que ce soit la bonne méthode

- Je bloque sur comment renseigner mes quantités et le calcul du prix total HT par ligne d'article. Dois-je faire un mt_rand pour la quantité (un truc du genre "quantité" => mt_rand (1,10) ? Pour le prix total HT par ligne d'article est-ce que je fois faire un (mt_rand(1,10) * quantite)

- Enfin pour le calcul du montant total de la facture (montant total HT + TVA = montant total TTC).


Voici mon code. Toute aide et correction est la bienvenue.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
 
<!DOCTYPE html>
<head>
	<meta charset="utf-8"/>
		<title> Facture - Exercice 18 </title>
		<link rel="stylesheet" href="facture.css"/>
</head>
		<header>
			<div id="adresse">
			<img src="SOA_logo.jpg" alt="logo" title="Voir" />
			<p>3 boulevard des Sablons<br/>92220 NEUILLY SUR SEINE<br />FRANCE</p>
			</div>
				<div id="document">
				<p><center><strong>FACTURE</strong></center></p>
				</div>
					<div id="Date">
					<?php
					/* Je rajoute un numéro de facture qui doit changer aléatoirement. 16 pour l'année, 000 pour le numéro de chrono*/
					$numerofacture = mt_rand(16.000,16.999);
					echo("Numéro de facture".$numerofacture."");
					?>
					<?php
					$jour = date("d/m/Y");
					echo("Date d'établissement".$jour."");
					/* je rajoute 30 jours à la date d'établissement pour savoir la date d'échéance */
					$duedate = date("d/m/Y", strtotime("+30 days"));
					echo ("Date d'échéance".$duedate."");
					?>
					</div>
				<div id="clients">
				<?php
				/* Tableau assiciatif dans lequel je stocke les clients */
				$entete = array("Nom","Prénom","Adresse","CP","Ville");
 
				$clients = array(
				array(
				"nom" => "DO",
				"prenom" => "Dominique",
				"Adresse" => "20 impasse Beethoven",
				"CP" => "75011"
				"Ville" =>"Paris"
				),
				array(
				"nom" => "RE",
				"prenom" => "Remi",
				"Adresse" => "1 allée des Musiciens",
				"CP" => "92220"
				"Ville" =>"NEUILY SUR SEINE"
				),
				array(
				"nom" => "MI",
				"prenom" => "Michel",
				"Adresse" => "15 impasse Mozart",
				"CP" => "91000"
				"Ville" =>"EVRY"
				),
 
				array(
				"nom" => "FA",
				"prenom" => "Fabrice",
				"Adresse" => "3 rue du Paradis",
				"CP" => "75009"
				"Ville" => "Paris"
				),
 
				array(
				"nom" => "SOL",
				"prenom" => "Solène",
				"Adresse" => "45 boulevard des danseurs",
				"CP" => "94140"
				"Ville" => "ALFORTVILLE"
				),
				);
				?>
				</div>
		</header>
					<body>
						<?php
						/* Tableau où je stocke les articles */
						$entete = array("Code article","Désignation", "Quantité", "Prix unitaire HT", "Prix total HT");
						$article = array(
						array(
						"Code article" => "30797",
						"Designation" => "Basse - Eagletone Sun State Bass P Sunburt",
						"Quantite" => 
						"Prix unitaire HT" => "129€"
						"Prix total HT" => 
							),
 
						array(
						"Code article" => "20717",
						"Designation" => "Basse - Ibanez SR 500BM Acajou",
						"Quantite" => 
						"Prix unitaire HT" => "629€"
						"Prix total HT" => 
							),
 
						array(
						"Code article" => "213659",
						"Designation" => "Piano - Bird Fullpack XP1",
						"Quantite" => 
						"Prix unitaire HT" => "329€"
						"Prix total HT" => 
							),
 
						array(
						"Code article" => "213888",
						"Designation" => "Piano - Roland F20DW",
						"Quantite" => 
						"Prix unitaire HT" => "599€"
						"Prix total HT" => 
						),
 
						array(
						"Code article" => "184171",
						"Designation" => "Batterie - Roland TD1K V-Drums",
						"Quantite" => 
						"Prix unitaire HT" => "449€"
						"Prix total HT" => 
						),
 
						array(
						"Code article" => "21455",
						"Designation" => "Zildjian - Modulo electro acoustique",
						"Quantite" => 
						"Prix unitaire HT" => "399€"
						"Prix total HT" => 
						),
 
						array(
						"Code article" => "81494",
						"Designation" => "Yamaha - Set Violoncelle",
						"Quantite" => 
						"Prix unitaire HT" => "1099€"
						"Prix total HT" =>
						),
 
						array(
						"Code article" => "183724",
						"Designation" => "BAM - Housse avion violoncelle - Noir",
						"Quantite" => 
						"Prix unitaire HT" => "490€"
						"Prix total HT" =>
						),
 
						array(
						"Code article" => "190221",
						"Designation" => "Nuark - Mix Track pro 3",
						"Quantite" => 
						"Prix unitaire HT" => "329€"
						"Prix total HT" => 
						 ),
 
						array(
						"Code article" => "162850",
						"Designation" => "Native Instruments - Tracktor X1 NKZ",
						"Quantite" => 
						"Prix unitaire HT" => "559€"
						"Prix total HT" =>
						),
						);
						?>
					</body>
						<footer>
							<div id="mentions">
							<p>
							Mentions légales<br/> Pas d'escompte pour paiement anticipé.<br /> Conformément à la loi 92.1142, en cas de retard de paiement, toute somme, y compris l'acompte, non payée à sa date d'éxigibilité produira de plein droit des intérêts de retard équivalents au triple du taux d'intérêt légal de l'année en cours ainsi que le paiement d'une somme forfaitaire de quarante (40) euros due au titre des frais de recouvrement conformément au décret N°2012-1115.
							</p>
							</div>
							<div id="coordonnées">
							<p><em>Mode de paiement : virement bancaire (frais bancaires à la charge du client. <br /> SOCIETE D'EPARGNE Ile de France - 19 rue des Artistes - 75001 PARIS<br /> BIC : CEPAFRPP000 <br /> IBAN : FR76 0000 0000 0000 0000 0000 0000 </em></p>
							</div>
						</footer>
</html>
Merci

Vanessa