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; }