if (is_numeric($contribution['trans_id'])) {
            $contribution['montant_cotis'] = missing_contrib_amount($DB, $contribution['trans_id'], $error_detected);
        }
    } else {
        // initialize coontribution structure with database values
        $sql = "SELECT * " . "FROM " . PREFIX_DB . "cotisations " . "WHERE id_cotis=" . $contribution["id_cotis"];
        $result =& $DB->Execute($sql);
        if ($result->EOF) {
            header("location: index.php");
        } else {
            // plain info
            $contribution = $result->fields;
            // reformat dates
            $contribution['date_debut_cotis'] = date_db2text($contribution['date_debut_cotis']);
            $contribution['date_fin_cotis'] = date_db2text($contribution['date_fin_cotis']);
            $contribution['duree_mois_cotis'] = distance_months($contribution['date_debut_cotis'], $contribution['date_fin_cotis']);
            $request = "SELECT cotis_extension\n\t\t\t\t\t    FROM " . PREFIX_DB . "types_cotisation\n\t\t\t\t\t    WHERE id_type_cotis = " . $contribution['id_type_cotis'];
            $cotis_extension =& $DB->GetOne($request);
        }
        // dynamic fields
        $contribution['dyn'] = get_dynamic_fields($DB, 'contrib', $contribution["id_cotis"], false);
    }
}
// template variable declaration
$tpl->assign("required", $required);
$tpl->assign("data", $contribution);
$tpl->assign("error_detected", $error_detected);
// contribution types
$requete = "SELECT DISTINCT cotis_extension\n\t\t    FROM " . PREFIX_DB . "types_cotisation";
$exval = $DB->GetOne($requete);
$requete = "SELECT id_type_cotis, libelle_type_cotis\n\t\t   FROM " . PREFIX_DB . "types_cotisation ";
        $row_class = "cotis-give";
    } else {
        $row_class = "cotis-normal";
    }
    $is_cotis = $resultat->fields['cotis_extension'] == '1';
    $contributions[$compteur]["class"] = $row_class;
    $contributions[$compteur]["id_cotis"] = $resultat->fields['id_cotis'];
    $contributions[$compteur]["date_enreg"] = $resultat->fields['date_enreg'];
    $contributions[$compteur]["date_debut"] = $resultat->fields['date_debut_cotis'];
    $contributions[$compteur]["date_fin"] = $is_cotis ? $resultat->fields['date_fin_cotis'] : "";
    $contributions[$compteur]["id_adh"] = $resultat->fields['id_adh'];
    $contributions[$compteur]["nom"] = htmlentities(strtoupper($resultat->fields['nom_adh']), ENT_QUOTES);
    $contributions[$compteur]["prenom"] = htmlentities($resultat->fields['prenom_adh'], ENT_QUOTES);
    $contributions[$compteur]["libelle_type_cotis"] = _T($resultat->fields['libelle_type_cotis']);
    $contributions[$compteur]["montant_cotis"] = $resultat->fields['montant_cotis'];
    $contributions[$compteur]["duree_mois_cotis"] = $is_cotis ? distance_months($resultat->fields['date_debut_cotis'], $resultat->fields['date_fin_cotis']) : "";
    $compteur++;
    $resultat->MoveNext();
}
$resultat->Close();
// if viewing a member's contributions, show deadline
if ($_SESSION["filtre_cotis_adh"] != "") {
    $requete = "SELECT date_echeance, bool_exempt_adh\n\t\t\t    FROM " . PREFIX_DB . "adherents\n\t\t\t    WHERE id_adh='" . $_SESSION["filtre_cotis_adh"] . "'";
    $resultat = $DB->Execute($requete);
    if ($resultat->fields[1]) {
        $statut_cotis = _T("Freed of dues");
        $statut_class = 'cotis-exempt';
    } else {
        if ($resultat->fields[0] == "") {
            $statut_cotis = _T("Never contributed");
            $statut_class = 'cotis-never';