<!DOCTYPE html>
<html>    
  <body>
   <?php
   define("W_EOL","<br />");
   // --- on récupère les données ---
   $Capital          = $_POST['Capital']       ;
   $NbAn             = $_POST['NbAn']          ;
   $EtNbMois         = $_POST['EtNbMois']      ;
   $TauxAssurance    = $_POST['TauxAssurance'] ;
   $TauxAnnuelHA     = $_POST['TauxAnnuelHA']  ;
   // si le nombre de mois est vide on le met à 0 
   if(empty($EtNbMois)) { $EtNbMois=0;}
   // si l'une des autres données initiales est vide on affiche un message d'erreur
   if(empty($Capital)||empty($NbAn)||empty($TauxAssurance)||empty($TauxAnnuelHA))
   {echo "--- Les donn&eacute;es suivantes sont absentes ---".W_EOL;
    if(empty($Capital))       echo "Capital".W_EOL;
    if(empty($NbAn))          echo "Nombre d'ann&eacute;es".W_EOL;
    if(empty($TauxAnnuelHA))  echo "Taux Annuel Hors Assurance".W_EOL;
    if(empty($TauxAssurance)) echo "Taux de l'Assurance".W_EOL;
   }
   else // on effectue les calculs
   { // --- conversion dans le bon type de données
    $Capital        = floatval($Capital)      ;
    $NbAn           = intval($NbAn)           ;
    $EtNbMois       = intval($EtNbMois)       ;
    $TauxAssurance  = floatval($TauxAssurance);
    $TauxAnnuelHA   = floatval($TauxAnnuelHA) ;
    // -------------------------------
    // --- on effectue les calculs ---
    // -------------------------------
    $NbMois         = ($NbAn*12)+$EtNbMois ;
    $AssMensuelle   = round((($Capital*($TauxAssurance/100))/12),2);
    $TauxMensuel    = ($TauxAnnuelHA/100)/12                  ;
    // --- mensualité --- 
    $calcul1        = $Capital*$TauxMensuel                   ;
    $calcul2        = pow((1+$TauxMensuel),$NbMois)           ;
    $calcul3        = $calcul2-1                              ;
    $MensualiteHA   = round(($calcul1*($calcul2/$calcul3)),2) ;
    $MensualiteAC   = $MensualiteHA+$AssMensuelle             ;
    // --- coût du crédit ---
    $CoutCreditHA   = ($MensualiteHA*$NbMois)-$Capital        ;
    $PourcentCoutHA = round(($CoutCreditHA/$Capital)*100,2)   ;
    $CoutAss        = $AssMensuelle*$NbMois                   ;
    $CoutCreditAC   = $CoutCreditHA+$CoutAss                  ;
    $PourcentCoutAC = round(($CoutCreditAC/$Capital)*100,2)   ;
    // --- Calcul du tableau d'amortissement ---
    $TotMensualiteAC  = 0       ;
    $TotInterets      = 0       ;
    $TotAmortissement = 0       ;
    $TotAssMens       = 0       ;
    $CapRestant       = $Capital;
    // -------------------------------
    // --- on affiche la synthèse  ---
    // -------------------------------
    ?>
    <table summary="Synthèse du Crédit">
       <caption>Synth&egrave;se du cr&eacute;dit</caption>
       <thead>
       </thead>
       <tr>
         <td>Mensualit&eacute; Assurance Comprise en &euro;</td>
         <td><?php echo $MensualiteAC   ; ?></td>
       </tr>
       <tr>
         <td>Assurance par mois en &euro;</td>
         <td><?php echo $AssMensuelle   ; ?></td>
       </tr>
       <tr>
         <td>Co&ucirc;t Total Assurance en &euro;</td>
         <td><?php echo $CoutAss        ; ?></td>
       </tr>
       <tr>
         <td>Co&ucirc;t Total du cr&eacute;dit Hors Ass en &euro;</td>
         <td><?php echo $CoutCreditHA   ; ?></td>
       </tr>
       <tr>
         <td>Co&ucirc;t Total du cr&eacute;dit Hors Ass en %</td>
         <td><?php echo $PourcentCoutHA ; ?></td>
       </tr>
       <tr>
         <td>Co&ucirc;t Total du cr&eacute;dit Ass Comp en &euro;</td>
         <td><?php echo $CoutCreditAC   ; ?></td>
       </tr>
       <tr>
         <td>Co&ucirc;t Total du cr&eacute;dit Ass Comp en %</td>
         <td><?php echo $PourcentCoutAC ; ?></td>
       </tr>
    </table>
    <br />
    <!--
     ------------------------------------------------------------------
     --- on affiche l'entête et le pied du tableau d'amortissement  ---
     ------------------------------------------------------------------
    -->
    <table summary="Tableau d'amortissement">
       <caption>Tableau d'amortissement</caption>
       <thead>
         <tr>
          <th>N&deg; Ech&eacute;ance</th>
          <th>Mensualit&eacute; Assurance Comprise &euro;</th>
          <th>Amortissement en &euro;</th>
          <th>Int&eacute;r&ecirc;ts &euro;</th>
          <th>Assurance &euro;</th>
          <th>Capital Restant D&ucirc; &euro;</th>
         </tr>
       </thead>
       <tfoot>
         <tr>
          <th>N&deg; Ech&eacute;ance</th>
          <th>Mensualit&eacute; Assurance Comprise &euro;</th>
          <th>Amortissement &euro;</th>
          <th>Int&eacute;r&ecirc;ts &euro;</th>
          <th>Assurance &euro;</th>
          <th>Capital Restant D&ucirc; &euro;</th>
         </tr>
       </tfoot>
       <?php
       for ($NumEcheance=1 ; $NumEcheance<=$NbMois ; $NumEcheance++)
       {
        $Interets=round($CapRestant*$TauxMensuel,2)    ;
        $Amortissement=$MensualiteHA-$Interets         ;
        $CapRestant=round($CapRestant-$Amortissement,2);
        // correction de la dernière échéance
        if (($NumEcheance==$NbMois) &&($CapRestant != 0))
        {
          $MensualiteAC+=$CapRestant ;
          $Amortissement+=$CapRestant;
          $CapRestant=0              ;
        }
        $TotMensualiteAC+=$MensualiteAC  ;
        $TotInterets+=$Interets          ;
        $TotAmortissement+=$Amortissement;
        $TotAssMens+=$AssMensuelle       ;
 
        // --- Affichage de chaque échéance --- 
        ?>
        <tr>
         <td><?php echo $NumEcheance   ; ?></td>
         <td><?php echo $MensualiteAC  ; ?></td>
         <td><?php echo $Amortissement ; ?></td>
         <td><?php echo $Interets      ; ?></td>
         <td><?php echo $AssMensuelle  ; ?></td>
         <td><?php echo $CapRestant    ; ?></td>
        </tr>
        <?php
       }
       // -------------------------------
       // --- les totaux  ---
       // -------------------------------
       ?>
       <tr>
         <td>Total</td>
         <td><?php echo $TotMensualiteAC  ; ?></td>
         <td><?php echo $TotAmortissement ; ?></td>
         <td><?php echo $TotInterets      ; ?></td>
         <td><?php echo $TotAssMens       ; ?></td>
         <td></td>
       </tr>
      </table>
   <?php
   }
   ?>
  </body>
</html>

