Example #1
0
 function get_amende($id_expl)
 {
     global $pmb_amende_comptabilisation;
     $requete = "select pret_date, pret_retour, niveau_relance, date_relance from pret where pret_idexpl={$id_expl}";
     $resultat = pmb_mysql_query($requete);
     $amende = array();
     $amende["valeur"] = 0;
     $amende["recouvrement"] = false;
     if (@pmb_mysql_num_rows($resultat)) {
         $r = pmb_mysql_fetch_object($resultat);
         $dr = explode("-", $r->pret_retour);
         //$calendar=new calendar();
         $njours = calendar::get_open_days($dr[2], $dr[1], $dr[0], date("d"), date("m"), date("Y"));
         $amende_param = $this->get_parameters($id_expl);
         if ($njours > 0) {
             $amende["njours"] = $njours;
             if ($njours > $amende_param["delai_avant_amende"]) {
                 //En recouvrement ?
                 if ($r->niveau_relance == 3) {
                     $drel = explode("-", $r->date_relance);
                     $njours_recouvrement = calendar::get_open_days($drel[2], $drel[1], $drel[0], date("d"), date("m"), date("Y"));
                     if ($njours_recouvrement > $amende_param["delai_recouvrement"]) {
                         $amende["recouvrement"] = true;
                         $njours = calendar::get_open_days($dr[2], $dr[1], $dr[0], $drel[2], $drel[1], $drel[0]);
                     }
                 }
                 //Calcul de l'amende à partir du délai de grâce ?
                 if ($pmb_amende_comptabilisation) {
                     $amende["njours"] = $njours - $amende_param["delai_avant_amende"];
                 }
                 //Montant maximum dépassé ?
                 $amende["valeur"] = $amende["njours"] * $amende_param["amende_jour"];
                 if ($amende["valeur"] > $amende_param["amende_maximum"] && $amende_param["amende_maximum"] > 0) {
                     $amende["valeur"] = $amende_param["amende_maximum"];
                 }
             }
         }
         //Calcul du niveau théorique de l'exemplaire
         //calcul de Date retour+delai_avant_amende
         $date_1 = calendar::add_days($dr[2], $dr[1], $dr[0], $amende_param["delai_avant_amende"]);
         //calcul de Date retour+delai_avant_amende+delai_1_2
         $dr1 = explode("-", $date_1);
         $date_2 = calendar::add_days($dr1[2], $dr1[1], $dr1[0], $amende_param["delai_1_2"]);
         //calcul de Date retour+delai_avant_amende+delai_1_2+delai_2_3
         $dr2 = explode("-", $date_2);
         $date_3 = calendar::add_days($dr2[2], $dr2[1], $dr2[0], $amende_param["delai_2_3"]);
         //calcul de Date retour+delai_avant_amende+delai_1_2+delai_2_3+delai_recouvrement
         $dr3 = explode("-", $date_3);
         $date_recouvrement = calendar::add_days($dr3[2], $dr3[1], $dr3[0], $amende_param["delai_recouvrement"]);
         $time = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
         $niveau = 0;
         if ($time > calendar::maketime($date_1) && $time <= calendar::maketime($date_2)) {
             $niveau = 1;
         } else {
             if ($time > calendar::maketime($date_2) && $time <= calendar::maketime($date_3)) {
                 $niveau = 2;
             } else {
                 if ($time > calendar::maketime($date_3) && $time <= calendar::maketime($date_recouvrement)) {
                     $niveau = 3;
                 } else {
                     if ($time > calendar::maketime($date_recouvrement)) {
                         $niveau = 4;
                     }
                 }
             }
         }
         $amende["niveau"] = $niveau;
         $amende["date_pret"] = $r->pret_date;
         $amende["date_retour"] = $r->pret_retour;
         $amende["niveau_relance"] = $r->niveau_relance;
         $amende["date_relance"] = $r->date_relance;
     }
     return $amende;
 }