Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création d'une facture en PHP

    3 mai 2016 à 20:39:04

    Bonjour à tous !

    La pression monte, la facture est à rendre pour demain et je coince toujours sur la partie PHP !

    J'ai commencé à incorporer le PHP dans le HTML et je bloque sur la partie 'désignation, article...'. J'ai fait un tableau pour ranger mes différents items 

    Ma question était de savoir si avec ce que tu m'as proposé Kets14, je pouvais faire des 'echo' pour afficher mes lignes de facturation en suivant le tableau.

    Pareil pour le montant total HT , TVA et Montant total TTC

    Voilà mon code en entier... Je suis entrain de le terminer.

    <?php
    /*Je place tout le php avec les info que va contenir la facture en premier*/
    /* Génération du numéro de facture*/
    $numerofacture = mt_rand(16.000,16.999);
    /* Infos sur la date de la facture*/
    $datefacture = date("d/m/Y");
    	/* je rajoute 30 jours à la date d'établissement pour savoir la date d'échéance */
    $duedate = date("d/m/Y", strtotime("+30 days"));
    /*Liste des clients*/
    $arr_client = 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"
                    ));
                    /*En-tetes qui seront dans mon tableau html*/
                        $arr_entete_art = array("Code article","Désignation", "Quantité", "Prix unitaire HT", "Prix total HT");
                            /* Tableau où je stocke les articles */
                            $arr_article = array(
                                    array(
                                    "article" => "30797",
                                    "Designation" => "Basse - Eagletone Sun State Bass P Sunburt",
                                    "PUHT" => "129",
                                    "Devise" => "€"
                                    ),
                                    array(
                                    "article" => "20717",
                                    "Designation" => "Basse - Ibanez SR 500BM Acajou",
                                    "PUHT" => "629",
                                    "Devise" => "€"
                                    ),
                                    array(
                                    "article" => "213659",
                                    "Designation" => "Piano - Bird Fullpack XP1",
                                    "PUHT" => "329",
                                    "Devise" => "€"
                                    ),
                                    array(
                                    "article" => "184171",
                                    "Designation" => "Batterie - Roland TD1K V-Drums",
                                    "PUHT" => "449",
                                    "Devise" => "€"
                                    ),
     
                                    array(
                                    "article" => "21455",
                                    "Designation" => "Zildjian - Modulo electro acoustique",
                                    "PUHT" => "399",
                                    "Devise" => "€"
                                    ),
     
                                    array(
                                    "article" => "81494",
                                    "Designation" => "Yamaha - Set Violoncelle",
                                    "PUHT" => "1099",
                                    "Devise" => "€"
                                    ),
     
                                    array(
                                    "article" => "183724",
                                    "Designation" => "BAM - Housse avion violoncelle - Noir",
                                    "PUHT" => "490",
                                    "Devise" => "€"
                                    ),
     
                                    array(
                                    "article" => "190221",
                                    "Designation" => "Nuark - Mix Track pro 3",
                                    "PUHT" => "329",
                                    "Devise" => "€"
                                     ),
                              
                                    array(
                                    "article" => "162850",
                                    "Designation" => "Native Instruments - Tracktor X1 NKZ",
                                    "PUHT" => "559",
                                    "Devise" => "€"
                                    ));
    									/*Selection d'un client au hasard*/
    										$client=array_rand($arr_client);
     										/*Selection d'article aléatoire*/
    											$nbr_product=$nbarticles = rand(1,count($arr_article)); 
    											/*Selection des articles de la facture aléatoirement*/
    												$rand_article = array_rand($arr_article, $nbr_product);
     
    												/*total TTC FACTURE a 0*/
    													$facture_TTC=0;
    														foreach($rand_article as $article){
    														/*quantité*/
    															$qte= rand(1,10);
    																/*Prix unitaire TTC*/
    																	$PuTTC= $arr_article[$article]['PUHT']*1.20;
    																		/*prix TTC de la quantité*/
    																			$art_qte_ttc=$PuTTC*$qte;
         
    																			/*total TTC FACTURE cumulé*/
    																				$facture_TTC+=$art_qte_ttc;
         
    																					$arr_article[$article]['QTE']=$qte;
    																					$arr_article[$article]['PuTTC']=$PuTTC;
    																					$arr_article[$article]['art_qte_ttc']=$art_qte_ttc;
    																			}
     
    																					$facture= array(
    																					"client" => $arr_client[$client],
    																					"date_facture" =>$date_fact,
    																					"date_echeance" =>$date_echeance,
    																					"facture" => $numerofacture,
    																					"article" => $arr_article,
    																					"montant_fact" => $facture_TTC
    																			);
                 
    																			var_dump($facture)
    ?>
    
    /*Partie HTML*/
    
    
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8"/>
            <title> Facture - Exercice 18 </title>
    		  <link rel="stylesheet" href="facture-modele.css" />
    </head>
    	<body>
    		<header>
    		<div id="adresse">
    		<img src="MH_logo.png" alt="logo" title="Voir" width="150" height="130" />
    		<p><b>3 boulevard des Sablons<br/>92220 NEUILLY SUR SEINE<br />FRANCE</b></p>
    		</div>
    		<div id="infofact">
    		<p class="facture"> <? echo ("Numero facture".$numerofacture"")?></p>
    		<p> <? echo ("Date d'etablissement".$datefacture"") ?></p>
    		<p> <? echo ("Date echeance".$duedate"")?></p>
    		</div>
    		<div id="clients">
    		<p> <? echo ($client) ?></p>
    		</div>
    		<div id="document">
    		<p><strong>FACTURE</strong></p>
    		</div>
    		</header>
    			<section>
                <table>
    				<tr>
    					<td width="150" height="10">Code article</td>
    					<td width="150" height="10">Désignation</td>
    					<td width="150" height="10">Quantité</td>
    					<td width="150" height="10">Prix Unitaire</td>
    					<td width="150" height="10">Montant HT</td>
    				</tr>
    				<tr>
    					<td width="150" height="10">Code article</td>
    					<td width="150" height="10">Désignation</td>
    					<td width="150" height="10">Quantité</td>
    					<td width="150" height="10">Prix Unitaire</td>
    					<td width="150" height="10">Montant HT</td>
    				</tr>
    				</table>
                 </section>
    				<footer>
    					<div id="Montant">		
    					<p>Montant HT</p>
    					<p>TVA 20%</p>
    					<p>Total euros TTC<p>
    					</div>
    						<div id="basfacture">
    						 <div class="mentions">
    						 <p>
    							<b>Mentions légales</b><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 class="coordonnées">
    							<p>
    								Mode de paiement : virement bancaire (frais bancaires à la charge du client) <br /> 
    								<b>SOCIETE D'EPARGNE Ile de France - 19 rue des Artistes - 75001 PARIS</b><br />
    								<b>BIC : CEPAFRPP000</b><br />
    								<b>IBAN : FR76 0000 0000 0000 0000 0000 0000</b>
    							</p>
    							</div>
    						</div>
    				</footer>
    	</body>
    </html>	

    PS: pour la date d'établissement et la date de la facture, j'ai fait un truc simple car ce que tu as proposé Kets14 est bien trop parfait pour mon niveau ! :lol:

    • Partager sur Facebook
    • Partager sur Twitter
      4 mai 2016 à 1:21:19

      bonsoir,

      TU dois le renvoyer pour quel heure ?

      j'ai un comportement aléatoire dans mon code que je n'arrive pas expliquer mais j'ai demandé de l'aide j'attend just un reponse au cas ou parce que quand je dis aléatoire c'est vraiment que j'arrive pas a expliqué pour défois il marche et defois il me balance des message d'érreurs :(

      Ceci étant dis tiens avec ca tu a le plus gros du travail et je mettrai une mise a jour quand j'aurai résolu ce phénoméne aléatoire (si tu teste actualise si tu a un bug tu verra defois il sort une facture nickel et defois non c'est cela que je m'explique pas)

      <?php
      /*Je place tout le php avec les info que va contenir la facture en premier*/
      /* Génération du numéro de facture*/
      $numerofacture = mt_rand(16000,16999);
      /* Infos sur la date de la facture*/
      $datefacture = date("d/m/Y");
          /* je rajoute 30 jours à la date d'établissement pour savoir la date d'échéance */
      $duedate = date("d/m/Y", strtotime("+30 days"));
      /*Liste des clients*/
      $arr_client = 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"
                      ));
      /*En-tetes qui seront dans mon tableau html*/
      $arr_entete_art = array("Code article","Désignation", "Quantité", "Prix unitaire HT", "Prix total HT");
      /* Tableau où je stocke les articles */
      $arr_article = array(
                          array(
                              "article" => "30797",
                              "Designation" => "Basse - Eagletone Sun State Bass P Sunburt",
                              "PUHT" => "129",
                              "Devise" => "€"
                          ),
                          array(
                              "article" => "20717",
                              "Designation" => "Basse - Ibanez SR 500BM Acajou",
                              "PUHT" => "629",
                              "Devise" => "€"
                          ),
                          array(
                              "article" => "213659",
                              "Designation" => "Piano - Bird Fullpack XP1",
                              "PUHT" => "329",
                              "Devise" => "€"
                          ),
                          array(
                              "article" => "184171",
                              "Designation" => "Batterie - Roland TD1K V-Drums",
                              "PUHT" => "449",
                              "Devise" => "€"
                          ),
      
                          array(
                              "article" => "21455",
                              "Designation" => "Zildjian - Modulo electro acoustique",
                              "PUHT" => "399",
                              "Devise" => "€"
                          ),
                          array(
                              "article" => "81494",
                              "Designation" => "Yamaha - Set Violoncelle",
                              "PUHT" => "1099",
                              "Devise" => "€"
                          ),
      
                          array(
                              "article" => "183724",
                              "Designation" => "BAM - Housse avion violoncelle - Noir",
                              "PUHT" => "490",
                              "Devise" => "€"
                          ),
                          array(
                              "article" => "190221",
                              "Designation" => "Nuark - Mix Track pro 3",
                              "PUHT" => "329",
                              "Devise" => "€"
                          ),
                          array(
                              "article" => "162850",
                              "Designation" => "Native Instruments - Tracktor X1 NKZ",
                              "PUHT" => "559",
                              "Devise" => "€"
                          ));
      /*Selection d'un client au hasard*/
      $client=array_rand($arr_client);
      
      /*Selection d'article aléatoire*/
      $nbr_product=$nbarticles = rand(1,count($arr_article));
      
      /*Selection des articles de la facture aléatoirement*/
      $rand_article = array_rand($arr_article, $nbr_product);
      
      /*total TTC FACTURE a 0*/
      $facture_TTC=0;
      
      foreach($rand_article as $article){
          /*quantité*/
          echo $qte= rand(1,10);
          
          /*Prix unitaire TTC*/
          echo $PuTTC= $arr_article[$article]['PUHT']*1.20;
          
          /*prix TTC de la quantité*/
          $art_qte_ttc=$PuTTC*$qte;
      
          /*total TTC FACTURE cumulé*/
           $facture_TTC+=$art_qte_ttc;
      
          $arr_article[$article]['QTE']=$qte;
          $arr_article[$article]['TTC']=$PuTTC;
          $arr_article[$article]['art_qte_ttc']=$art_qte_ttc;
      }
      
      $facture= array(
                      "client" => $arr_client[$client],
                      "date_facture" =>$datefacture,
                      "date_echeance" =>$duedate,
                      "facture" => $numerofacture,
                      "article" => $arr_article,
                      "montant_fact" => $facture_TTC
      );
      
                         // var_dump($facture);
      ?>
       
      /*Partie HTML*/
       
       
      <!DOCTYPE html>
      <html>
          <head>
              <meta charset="utf-8"/>
                  <title> Facture - Exercice 18 </title>
                    <link rel="stylesheet" href="facture-modele.css" />
          </head>
          <body>
              <header>
                  <div id="adresse">
                      <img src="MH_logo.png" alt="logo" title="Voir" width="150" height="130" />
                  </div>
              </header>    
              <p><b>3 boulevard des Sablons<br/>92220 NEUILLY SUR SEINE<br />FRANCE</b></p>
              <div id="infofact">
                  <p>
                      <strong>FACTURE</strong>
                      Numero : <?php  echo $facture['facture']."<br />"; ?>
                      Date de la facture : <?php  echo $facture['date_facture']."<br />"; ?>
                      Echéance de la facture : <?php  echo $facture['date_echeance']."<br />"; ?>
                  </p>
               </div>
              <div id="clients">
              <?php
                  echo $facture['client']['nom']." ".$facture['client']['prenom']."<br />";
                  echo $facture['client']['Adresse']."<br />";
                  echo $facture['client']['CP']." ".$facture['client']['Ville']."<br />"; 
              ?>
              </div>
              <div id="document">
                  <table>
                      <tr>
                          <td width="150" height="10">
                              Code article
                          </td>
                          <td width="150" height="10">
                              Désignation
                          </td>
                          <td width="150" height="10">
                              Quantité
                          </td>
                          <td width="150" height="10">
                              Prix Unitaire
                          </td>
                          <td width="150" height="10">
                              Prix Unitaire TTC
                          </td>
                          <td width="150" height="10">
                              total TTC
                          </td>
                      </tr>
                      <?php
                      foreach($facture['article'] as $art){
                          var_dump($art);
                          echo '
                              <tr>
                                  <td width="150" height="10">'.$art['article'].'</td>
                                  <td width="150" height="10">'.$art['Designation'].'</td>
                                  <td width="150" height="10">'.$art['QTE'].'</td>
                                  <td width="150" height="10">'.$art['PUHT'].'</td>
                                  <td width="150" height="10">'.$art['TTC'].'</td>
                                  <td width="150" height="10">'.$art['art_qte_ttc'].'</td>
                              </tr>
                          ';
                      }
                      ?>
              </table>
                      <footer>
                          <div id="Montant">       
                          <p>Montant HT</p>
                          <p>TVA 20%</p>
                          <p>Total euros TTC<p>
                          </div>
                              <div id="basfacture">
                               <div class="mentions">
                               <p>
                                  <b>Mentions légales</b><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 class="coordonnées">
                                  <p>
                                      Mode de paiement : virement bancaire (frais bancaires à la charge du client) <br />
                                      <b>SOCIETE D'EPARGNE Ile de France - 19 rue des Artistes - 75001 PARIS</b><br />
                                      <b>BIC : CEPAFRPP000</b><br />
                                      <b>IBAN : FR76 0000 0000 0000 0000 0000 0000</b>
                                  </p>
                                  </div>
                              </div>
                      </footer>
          </body>
      </html> 



      • Partager sur Facebook
      • Partager sur Twitter
      "Il est hélas devenu évident aujourd’hui que notre technologie a dépassé notre humanité"  A.E.
        4 mai 2016 à 1:58:34

        pardon je suis trop béte defois je me demande comment j'ai fait pour passer une demi heure sur ce bug

        code corrigé et opérationnel

        <?php
        /*Je place tout le php avec les info que va contenir la facture en premier*/
        /* Génération du numéro de facture*/
        $numerofacture = mt_rand(16000,16999);
        /* Infos sur la date de la facture*/
        $datefacture = date("d/m/Y");
            /* je rajoute 30 jours à la date d'établissement pour savoir la date d'échéance */
        $duedate = date("d/m/Y", strtotime("+30 days"));
        /*Liste des clients*/
        $arr_client = 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"
                        ));
        /*En-tetes qui seront dans mon tableau html*/
        $arr_entete_art = array("Code article","Désignation", "Quantité", "Prix unitaire HT", "Prix total HT");
        /* Tableau où je stocke les articles */
        $arr_article = array(
                            array(
                                "article" => "30797",
                                "Designation" => "Basse - Eagletone Sun State Bass P Sunburt",
                                "PUHT" => "129",
                                "Devise" => "€"
                            ),
                            array(
                                "article" => "20717",
                                "Designation" => "Basse - Ibanez SR 500BM Acajou",
                                "PUHT" => "629",
                                "Devise" => "€"
                            ),
                            array(
                                "article" => "213659",
                                "Designation" => "Piano - Bird Fullpack XP1",
                                "PUHT" => "329",
                                "Devise" => "€"
                            ),
                            array(
                                "article" => "184171",
                                "Designation" => "Batterie - Roland TD1K V-Drums",
                                "PUHT" => "449",
                                "Devise" => "€"
                            ),
        
                            array(
                                "article" => "21455",
                                "Designation" => "Zildjian - Modulo electro acoustique",
                                "PUHT" => "399",
                                "Devise" => "€"
                            ),
                            array(
                                "article" => "81494",
                                "Designation" => "Yamaha - Set Violoncelle",
                                "PUHT" => "1099",
                                "Devise" => "€"
                            ),
        
                            array(
                                "article" => "183724",
                                "Designation" => "BAM - Housse avion violoncelle - Noir",
                                "PUHT" => "490",
                                "Devise" => "€"
                            ),
                            array(
                                "article" => "190221",
                                "Designation" => "Nuark - Mix Track pro 3",
                                "PUHT" => "329",
                                "Devise" => "€"
                            ),
                            array(
                                "article" => "162850",
                                "Designation" => "Native Instruments - Tracktor X1 NKZ",
                                "PUHT" => "559",
                                "Devise" => "€"
                            ));
        /*Selection d'un client au hasard*/
        $client=array_rand($arr_client);
        
        /*Selection d'article aléatoire*/
        $nbr_product=$nbarticles = rand(1,count($arr_article));
        
        /*Selection des articles de la facture aléatoirement*/
        $rand_article = array_rand($arr_article, $nbr_product);
        
        /*total TTC FACTURE a 0*/
        $facture_TTC=0;
        foreach($rand_article as $article){
            /*quantité*/
            
            $qte= rand(1,10);
            
            /*Prix unitaire TTC*/
            $PuTTC= $arr_article[$article]['PUHT']*1.20;
            
            /*prix TTC de la quantité*/
            $art_qte_ttc=$PuTTC*$qte;
        
            /*total TTC FACTURE cumulé*/
             $facture_TTC+=$art_qte_ttc;
        
            $arr_article[$article]['QTE']=$qte;
            $arr_article[$article]['TTC']=$PuTTC;
            $arr_article[$article]['art_qte_ttc']=$art_qte_ttc;
        }
        
        $facture= array(
                        "client" => $arr_client[$client],
                        "date_facture" =>$datefacture,
                        "date_echeance" =>$duedate,
                        "facture" => $numerofacture,
                        "article" => $arr_article,
                        "montant_fact" => $facture_TTC
        );
        ?>
         
        
         
         
        <!DOCTYPE html>
        <html>
            <head>
                <meta charset="utf-8"/>
                    <title> Facture - Exercice 18 </title>
                      <link rel="stylesheet" href="facture-modele.css" />
            </head>
            <body>
                <header>
                    <div id="adresse">
                        <img src="MH_logo.png" alt="logo" title="Voir" width="150" height="130" />
                    </div>
                </header>    
                <p><b>3 boulevard des Sablons<br/>92220 NEUILLY SUR SEINE<br />FRANCE</b></p>
                <div id="infofact">
                    <p>
                        <strong>FACTURE</strong>
                        Numero : <?php  echo $facture['facture']."<br />"; ?>
                        Date de la facture : <?php  echo $facture['date_facture']."<br />"; ?>
                        Echéance de la facture : <?php  echo $facture['date_echeance']."<br />"; ?>
                    </p>
                 </div>
                <div id="clients">
                <?php
                    echo $facture['client']['nom']." ".$facture['client']['prenom']."<br />";
                    echo $facture['client']['Adresse']."<br />";
                    echo $facture['client']['CP']." ".$facture['client']['Ville']."<br />"; 
                ?>
                </div>
                <div id="document">
                    <table>
                        <tr>
                            <td width="150" height="10">
                                Code article
                            </td>
                            <td width="150" height="10">
                                Désignation
                            </td>
                            <td width="150" height="10">
                                Quantité
                            </td>
                            <td width="150" height="10">
                                Prix Unitaire
                            </td>
                            <td width="150" height="10">
                                Prix Unitaire TTC
                            </td>
                            <td width="150" height="10">
                                total TTC
                            </td>
                        </tr>
                        <?php
                        foreach($facture['article'] as $art){
                            if(!empty($art['QTE'])){
                                echo '
                                    <tr>
                                        <td width="150" height="10">'.$art['article'].'</td>
                                        <td width="150" height="10">'.$art['Designation'].'</td>
                                        <td width="150" height="10">'.$art['QTE'].'</td>
                                        <td width="150" height="10">'.$art['PUHT'].'</td>
                                        <td width="150" height="10">'.$art['TTC'].'</td>
                                        <td width="150" height="10">'.$art['art_qte_ttc'].'</td>
                                    </tr>
                                ';
                            }
                        }
                        ?>
                </table>
                        <footer>
                            <div id="Montant">       
                            <p>Montant HT</p>
                            <p>TVA 20%</p>
                            <p>Total euros TTC <?php echo $facture['montant_fact']; ?> <p>
                            </div>
                                <div id="basfacture">
                                 <div class="mentions">
                                 <p>
                                    <b>Mentions légales</b><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 class="coordonnées">
                                    <p>
                                        Mode de paiement : virement bancaire (frais bancaires à la charge du client) <br />
                                        <b>SOCIETE D'EPARGNE Ile de France - 19 rue des Artistes - 75001 PARIS</b><br />
                                        <b>BIC : CEPAFRPP000</b><br />
                                        <b>IBAN : FR76 0000 0000 0000 0000 0000 0000</b>
                                    </p>
                                    </div>
                                </div>
                        </footer>
            </body>
        </html> 


        Tu n'as plus que 2 calculs a faire le montant total HT et le montant total de la TVA :) ensuite c'est juste du desgin html/css (je t'ai deja mis le plus gros du tableau en place ;) )

        -
        Edité par kets14 4 mai 2016 à 2:25:24

        • Partager sur Facebook
        • Partager sur Twitter
        "Il est hélas devenu évident aujourd’hui que notre technologie a dépassé notre humanité"  A.E.
          4 mai 2016 à 12:33:41

          Un grand merci Kets14 ! Je t'inderdis de dire que tu es bête car sans ton aide (et celle des autres membres d'OpenClass Room), j'en serai au point 0 !

          J'ai cours de PHP ce soir à 18h30 donc j'ai encore un peu de temps.

          J'ai une toute dernière question pour peaufiner mon code. Je l'ai modifié pour que la facture m'affiche le montant total HT, le montant de la TVA et le montant total TTC.

          Sauf qu'en faisant mon script, ça ne calcule rien et ça me met un message d'erreur.

          /*montant total HT de la facture*/
          <p>Montant HT <?php echo $facture['montant_fact']; ?></p>
          
          /*Calcul du montant de la TVA à 20%*/
          <p> TVA 20% <?php echo $TVA['montant_fact']*0,2; ?></p>
          
          /*Calcul du montant total TTC*/
          <p> Total € TTC <? echo $facture + $TVA; ?></p>



          J'ai peut-être oublié de déclarer quelque chose quelque part...

          Merci !

          Vanessa

          • Partager sur Facebook
          • Partager sur Twitter
            4 mai 2016 à 13:32:01

            Je vais pas remmetre tout le code juste les modifs :) Pour rester dans l'idée je ne fais aucun traitement dans le html je vais calculer les valeurs avant et les mettre dans mon tableau.

            On aurait pu procéder différement en calculant la TVA de chaque produit en fonction des quantités et ensuite cumulé le tout j'ai choisi la solution de facilité pour avoir juste le résultat final en faisant total TTC - total_HT

            <?php
            /*total TTC FACTURE a 0*/
            $facture_TTC=0;
            
            /*total HT FACTURE a 0*/
            $facture_HT=0;
            
            /*total TVA a 0*/
            $total_TVA=0;
            
            foreach($rand_article as $article){
                /*quantité*/
                
                $qte= rand(1,10);
                
                /*Prix unitaire TTC*/
                $PuTTC= $arr_article[$article]['PUHT']*1.20; 
                
                /*prix TTC de la quantité*/
                $art_qte_ttc=$PuTTC*$qte;
                
                $facture_HT+=$arr_article[$article]['PUHT']*$qte;
            
                
                /*total TTC FACTURE cumulé*/
                 $facture_TTC+=$art_qte_ttc;
            
                $arr_article[$article]['QTE']=$qte;
                $arr_article[$article]['TTC']=$PuTTC;
                $arr_article[$article]['art_qte_ttc']=$art_qte_ttc;
            }
            //calcul TVA TTC -HT
            $total_TVA=$facture_TTC-$facture_HT;
            
            $facture= array(
                            "client" => $arr_client[$client],
                            "date_facture" =>$datefacture,
                            "date_echeance" =>$duedate,
                            "facture" => $numerofacture,
                            "article" => $arr_article,
                            "montant_fact" => $facture_TTC,
                            "montant_HT" => $facture_HT,
                            "montant_TVA" => $total_TVA
            );
            ?>

            Et au niveau de l'affichage c'est toujours le même principe j'ai juste a mettre

            <p>Montant HT : <?php echo $facture['montant_HT']; ?> </p>
            <p>TVA 20% : <?php echo $facture['montant_TVA']; ?> </p>


            @--edit ton calcul pour retrouver le montant de TVA n'étais pas bon

            - 100 auquel on rajoute 20% ca donne 120 donc 20euros de TVA

            - 20% de 120 = 24

            - 24 != 20

            -
            Edité par kets14 4 mai 2016 à 13:42:05

            • Partager sur Facebook
            • Partager sur Twitter
            "Il est hélas devenu évident aujourd’hui que notre technologie a dépassé notre humanité"  A.E.
              4 mai 2016 à 18:08:38

              Re à tout le monde et un GRAND MERCI pour votre aide.

              J'ai re-remodifié le code car je voulais le montant total HT par ligne dans mon tableau et j'ai réussi à me débrouiller.

              On peut dire que mon script est plus ou moins terminé. Il affiche quand même un message d'erreur à la ligne 133 (j'ai beau tourner le truc dans tous les sens j'arrive pas pas à le résoudre).

              Comme l'échéance est proche... On va le laisser ainsi.

              En tout cas, MERCI MERCI beaucoup. Vous aviez raison, j'ai sans aucun doute beaucoup plus avec vous appris avec vous qu'avec le CNAM.

              Et vous êtes plus sympas, compréhensifs et patient que vos camarades en Java ! ;)

              <?php
              /*Je place tout le php avec les info que va contenir la facture en premier*/
              /* Génération du numéro de facture*/
              $numerofacture = mt_rand(16000,16999);
              /* Infos sur la date de la facture*/
              $datefacture = date("d/m/Y");
                  /* je rajoute 30 jours à la date d'établissement pour savoir la date d'échéance */
              $duedate = date("d/m/Y", strtotime("+30 days"));
              /*Liste des clients*/
              $arr_client = 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"
                              ));
              /*En-tetes qui seront dans mon tableau html*/
              $arr_entete_art = array("Code article","Désignation", "Quantité", "Prix unitaire HT", "Prix total HT");
              /* Tableau où je stocke les articles */
              $arr_article = array(
                                  array(
                                      "article" => "30797",
                                      "Designation" => "Basse - Eagletone Sun State Bass P Sunburt",
                                      "PUHT" => "129",
                                      "Devise" => "€"
                                  ),
                                  array(
                                      "article" => "20717",
                                      "Designation" => "Basse - Ibanez SR 500BM Acajou",
                                      "PUHT" => "629",
                                      "Devise" => "€"
                                  ),
                                  array(
                                      "article" => "213659",
                                      "Designation" => "Piano - Bird Fullpack XP1",
                                      "PUHT" => "329",
                                      "Devise" => "€"
                                  ),
                                  array(
                                      "article" => "184171",
                                      "Designation" => "Batterie - Roland TD1K V-Drums",
                                      "PUHT" => "449",
                                      "Devise" => "€"
                                  ),
               
                                  array(
                                      "article" => "21455",
                                      "Designation" => "Zildjian - Modulo electro acoustique",
                                      "PUHT" => "399",
                                      "Devise" => "€"
                                  ),
                                  array(
                                      "article" => "81494",
                                      "Designation" => "Yamaha - Set Violoncelle",
                                      "PUHT" => "1099",
                                      "Devise" => "€"
                                  ),
               
                                  array(
                                      "article" => "183724",
                                      "Designation" => "BAM - Housse avion violoncelle - Noir",
                                      "PUHT" => "490",
                                      "Devise" => "€"
                                  ),
                                  array(
                                      "article" => "190221",
                                      "Designation" => "Nuark - Mix Track pro 3",
                                      "PUHT" => "329",
                                      "Devise" => "€"
                                  ),
                                  array(
                                      "article" => "162850",
                                      "Designation" => "Native Instruments - Tracktor X1 NKZ",
                                      "PUHT" => "559",
                                      "Devise" => "€"
                                  ));
              /*Selection d'un client au hasard*/
              $client=array_rand($arr_client);
               
              /*Selection d'article aléatoire*/
              $nbr_product=$nbarticles = rand(1,count($arr_article));
               
              /*Selection des articles de la facture aléatoirement*/
              $rand_article = array_rand($arr_article, $nbr_product);
               
              /*total TTC FACTURE a 0*/
              $facture_TTC=0;
              foreach($rand_article as $article){
                  /*quantité*/
                   
                  $qte= rand(1,10);
              	
              	
              	/*Prix unitaire HT*/
                  $PuHT= $arr_article[$article]['PUHT'];
                   
                  /*prix HT de la quantité*/
                  $art_qte_ht=$PuHT*$qte;
                   
              	/*Prix unitaire TTC*/
                  $PuTTC= $arr_article[$article]['PUHT']*1.2;
              	
              	/*prix TTC de la quantité*/
              	$facture_HT+=$arr_article[$article]['PUHT']*$qte;
              	$art_qte_ttc=$PuTTC*$qte;
              
              	/*total TTC FACTURE cumulé*/
                   $facture_TTC+=$art_qte_ttc;
               
                  $arr_article[$article]['QTE']=$qte;
                  $arr_article[$article]['TTC']=$PuTTC;
                  $arr_article[$article]['art_qte_ttc']=$art_qte_ttc;
              	$arr_article[$article] ['art_qte_ht']=$art_qte_ht;
              
              }
              	/*Calcul TVA TTC -HT*/
              	$total_TVA=$facture_TTC-$facture_HT;
               
              	$facture= array(
                              "client" => $arr_client[$client],
                              "date_facture" =>$datefacture,
                              "date_echeance" =>$duedate,
                              "facture" => $numerofacture,
                              "article" => $arr_article,
                              "montant_fact" => $facture_TTC,
                              "montant_HT" => $facture_HT,
                              "montant_TVA" => $total_TVA
              );
              ?>
              
              
              <!DOCTYPE html>
              <html>
              <head>
                  <meta charset="utf-8"/>
                      <title> Facture - Exercice 18 </title>
              		  <link rel="stylesheet" href="facture-modele.css" />
              </head>
              	<body>
              		<header>
              		<div id="adresse">
              		<img src="MH_logo.png" alt="logo" title="Voir" width="150" height="130" />
              		<p><b>3 boulevard des Sablons<br/>92220 NEUILLY SUR SEINE<br />FRANCE</b></p>
              		</div>
              		<div id="infofact">
              		<p> 
              		<strong>Numero</strong> : <?php  echo $facture['facture']."<br />"; ?>
                      <strong>Date de la facture</strong> : <?php  echo $facture['date_facture']."<br />"; ?>
                      <strong>Echéance de la facture</strong> : <?php  echo $facture['date_echeance']."<br />"; ?>
              		</p>
              		</div>
              		<div id="clients">
              		<p> 
              		<?php
                          echo $facture['client']['nom']." ".$facture['client']['prenom']."<br />";
                          echo $facture['client']['Adresse']."<br />";
                          echo $facture['client']['CP']." ".$facture['client']['Ville']."<br />";
              		?>
              		</p>
              		</div>
              		<div id="document">
              		<p><strong>FACTURE</strong></p>
              		</div>
              		</header>
              			<section>
                          <table>
              				<tr>
              					<td width="150" height="10">Code article</td>
              					<td width="150" height="10">Désignation</td>
              					<td width="150" height="10">Quantité</td>
              					<td width="150" height="10">Prix Unitaire</td>
              					<td width="150" height="10">Montant HT</td>
              				</tr>
              				<?php
                              foreach($facture['article'] as $art){
                                  if(!empty($art['QTE'])){
                                      echo '
              				<tr>
                                  <td width="150" height="10" class="lignes">'.$art['article'].'</td>
                                  <td width="150" height="10" class="lignes">'.$art['Designation'].'</td>
                                  <td width="150" height="10" class="lignes">'.$art['QTE'].'</td>
                                  <td width="150" height="10" class="lignes">'.$art['PUHT'].'</td>
                                  <td width="150" height="10" class="lignes">'.$art['art_qte_ht'].'</td>
                              </tr>
              				';
                                  }
              				}
                              ?>
              				</table>
                           </section>
              				<footer>
              					<div id="Montant">		
              					<p><strong>Total € HT</strong> <?php echo $facture['montant_HT']; ?></p>
              					<p><strong>TVA 20% </strong> <?php echo $facture['montant_TVA']; ?></p>
              					<p><strong>Total € TTC </strong> <?php echo $facture['montant_fact']; ?> <p>
              					</div>
              						<div id="basfacture">
              						 <div class="mentions">
              						 <p>
              							<b>Mentions légales</b><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 class="coordonnées">
              							<p>
              								Mode de paiement : virement bancaire (frais bancaires à la charge du client) <br /> 
              								<b>SOCIETE D'EPARGNE Ile de France - 19 rue des Artistes - 75001 PARIS</b><br />
              								<b>BIC : CEPAFRPP000</b><br />
              								<b>IBAN : FR76 0000 0000 0000 0000 0000 0000</b>
              							</p>
              							</div>
              						</div>
              				</footer>
              	</body>
              </html>	



              • Partager sur Facebook
              • Partager sur Twitter
                4 mai 2016 à 18:38:44

                Alors, dansons la Java !
                Ok je sors...

                Je te suggère quand même de chercher solution à cette erreur, quelle qu'elle soit, pour toi-même si ce n'est pas pour l'exercice. ;)

                • Partager sur Facebook
                • Partager sur Twitter
                  4 mai 2016 à 19:02:07

                  j'ai pas testé le reste du code parce qu'il me semblait bon mais pour ton message d'erreur il viens de cette ligne

                  <?php
                      $facture_HT+=$arr_article[$article]['PUHT']*$qte;

                  += équivaut a dire

                  <?php
                      $facture_HT=$facture_HT + $arr_article[$article]['PUHT']*$qte;

                  sauf que $facture_HT n'existe pas vu que tu ne l'a pas initialisé

                  il faut que tu mettes avant ta boucle

                  <?php
                  /*total HT FACTURE a 0*/
                  $facture_HT=0;

                  sinon ca donne $truc= rien+10 en l'initialisant $truc = 0 + 10



                  • Partager sur Facebook
                  • Partager sur Twitter
                  "Il est hélas devenu évident aujourd’hui que notre technologie a dépassé notre humanité"  A.E.

                  Création d'une facture en PHP

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown