if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');}
if($_SESSION['SESAMATH_ID']==ID_DEMO) {}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Générer une synthèse multi-matières
// ////////////////////////////////////////////////////////////////////////////////////////////////////

$synthese_modele = 'multimatiere' ;
$groupe_id       = (isset($_POST['f_groupe']))             ? Clean::entier($_POST['f_groupe'])                : 0;
$groupe_nom      = (isset($_POST['f_groupe_nom']))         ? Clean::texte($_POST['f_groupe_nom'])             : '';
$groupe_type     = (isset($_POST['f_groupe_type']))        ? Clean::texte($_POST['f_groupe_type'])            : '';
$periode_id      = (isset($_POST['f_periode']))            ? Clean::entier($_POST['f_periode'])               : 0;
$date_debut      = (isset($_POST['f_date_debut']))         ? Clean::date_fr($_POST['f_date_debut'])           : '';
$date_fin        = (isset($_POST['f_date_fin']))           ? Clean::date_fr($_POST['f_date_fin'])             : '';
$retroactif      = (isset($_POST['f_retroactif']))         ? Clean::calcul_retroactif($_POST['f_retroactif']) : '';
$niveau_id       = (isset($_POST['f_niveau']))             ? Clean::entier($_POST['f_niveau'])                : 0; // Niveau transmis uniquement si on restreint sur un niveau
$fusion_niveaux  = (isset($_POST['f_fusion_niveaux']))     ? 1                                                : 0;
$aff_coef        = (isset($_POST['f_coef']))               ? 1                                                : 0;
$aff_socle       = (isset($_POST['f_socle']))              ? 1                                                : 0;
$aff_lien        = (isset($_POST['f_lien']))               ? 1                                                : 0;
$aff_start       = (isset($_POST['f_start']))              ? 1                                                : 0;
$only_socle      = (isset($_POST['f_restriction_socle']))  ? 1                                                : 0;
$only_niveau     = (isset($_POST['f_restriction_niveau'])) ? $niveau_id                                       : 0;
$couleur         = (isset($_POST['f_couleur']))            ? Clean::texte($_POST['f_couleur'])                : '';
$fond            = (isset($_POST['f_fond']))               ? Clean::texte($_POST['f_fond'])                   : '';
$legende         = (isset($_POST['f_legende']))            ? Clean::texte($_POST['f_legende'])                : '';
$marge_min       = (isset($_POST['f_marge_min']))          ? Clean::entier($_POST['f_marge_min'])             : 0;
$eleves_ordre    = (isset($_POST['f_eleves_ordre']))       ? Clean::texte($_POST['f_eleves_ordre'])           : '';
// Normalement c'est un tableau qui est transmis, mais au cas où...
$tab_eleve = (isset($_POST['f_eleve'])) ? ( (is_array($_POST['f_eleve'])) ? $_POST['f_eleve'] : explode(',',$_POST['f_eleve']) ) : array() ;
}
$action = isset($_POST['action']) ? $_POST['action'] : '';
// Valeur d'un code (sur 100)
$valeur = array();
$valeur['RR'] = isset($_POST['valeurRR']) ? Clean::entier($_POST['valeurRR']) : 0;
$valeur['R'] = isset($_POST['valeurR']) ? Clean::entier($_POST['valeurR']) : 33;
$valeur['V'] = isset($_POST['valeurV']) ? Clean::entier($_POST['valeurV']) : 67;
$valeur['VV'] = isset($_POST['valeurVV']) ? Clean::entier($_POST['valeurVV']) : 100;
// Seuil d'acquisition (sur 100)
$seuil = array();
$seuil['R'] = isset($_POST['seuilR']) ? Clean::entier($_POST['seuilR']) : 40;
$seuil['V'] = isset($_POST['seuilV']) ? Clean::entier($_POST['seuilV']) : 60;
// Méthode de calcul
$methode = isset($_POST['f_methode']) ? Clean::calcul_methode($_POST['f_methode']) : NULL;
$limite = isset($_POST['f_limite']) ? Clean::calcul_limite($_POST['f_limite'], $methode) : NULL;
$retroactif = isset($_POST['f_retroactif']) ? Clean::calcul_retroactif($_POST['f_retroactif']) : NULL;
// Vérification des données transmises
if (is_null($methode) || is_null($limite) || is_null($retroactif)) {
    exit('Erreur avec les données transmises !');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Simuler avec des paramètres donnés
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'calculer') {
    $type_calcul = in_array($methode, array('geometrique', 'arithmetique', 'classique')) ? 'moyenne' : 'bestof';
    $tab_bad = array('0', '1', '2', '3');
    $tab_bon = array(' RR', ' R', ' V', ' VV');
    $tab_lignes = array();
    $tab_lignes[1] = '';
    $tab_lignes = array_pad($tab_lignes, 256, '');
    for ($nb_devoirs = 1; $nb_devoirs <= 4; $nb_devoirs++) {
$releve_aff_domaine = isset($_POST['f_releve_aff_domaine']) ? 1 : 0;
$releve_aff_theme = isset($_POST['f_releve_aff_theme']) ? 1 : 0;
$releve_couleur = isset($_POST['f_releve_couleur']) ? Clean::texte($_POST['f_releve_couleur']) : '';
$releve_fond = isset($_POST['f_releve_fond']) ? Clean::texte($_POST['f_releve_fond']) : '';
$releve_legende = isset($_POST['f_releve_legende']) ? Clean::texte($_POST['f_releve_legende']) : '';
$releve_pages_nb = isset($_POST['f_releve_pages_nb']) ? Clean::texte($_POST['f_releve_pages_nb']) : '';
$bulletin_appreciation_rubrique_longueur = isset($_POST['f_bulletin_appreciation_rubrique_longueur']) ? Clean::entier($_POST['f_bulletin_appreciation_rubrique_longueur']) : 0;
$bulletin_appreciation_rubrique_report = isset($_POST['f_bulletin_appreciation_rubrique_report']) ? 1 : 0;
$bulletin_appreciation_rubrique_modele = isset($_POST['f_bulletin_appreciation_rubrique_modele']) ? Clean::texte($_POST['f_bulletin_appreciation_rubrique_modele']) : '';
$bulletin_appreciation_generale_longueur = isset($_POST['f_bulletin_appreciation_generale_longueur']) ? Clean::entier($_POST['f_bulletin_appreciation_generale_longueur']) : 0;
$bulletin_appreciation_generale_report = isset($_POST['f_bulletin_appreciation_generale_report']) ? 1 : 0;
$bulletin_appreciation_generale_modele = isset($_POST['f_bulletin_appreciation_generale_modele']) ? Clean::texte($_POST['f_bulletin_appreciation_generale_modele']) : '';
$bulletin_ligne_supplementaire = isset($_POST['f_bulletin_check_supplementaire']) ? Clean::texte($_POST['f_bulletin_ligne_supplementaire']) : '';
$bulletin_assiduite = isset($_POST['f_bulletin_assiduite']) ? 1 : 0;
$bulletin_prof_principal = isset($_POST['f_bulletin_prof_principal']) ? 1 : 0;
$bulletin_retroactif = isset($_POST['f_bulletin_retroactif']) ? Clean::calcul_retroactif($_POST['f_bulletin_retroactif']) : '';
$bulletin_only_socle = isset($_POST['f_bulletin_only_socle']) ? 1 : 0;
$bulletin_fusion_niveaux = isset($_POST['f_bulletin_fusion_niveaux']) ? 1 : 0;
$bulletin_barre_acquisitions = isset($_POST['f_bulletin_barre_acquisitions']) ? 1 : 0;
$bulletin_acquis_texte_nombre = isset($_POST['f_bulletin_acquis_texte_nombre']) ? 1 : 0;
$bulletin_acquis_texte_code = isset($_POST['f_bulletin_acquis_texte_code']) ? 1 : 0;
$bulletin_moyenne_scores = isset($_POST['f_bulletin_moyenne_scores']) ? 1 : 0;
$bulletin_conversion_sur_20 = isset($_POST['f_bulletin_conversion_sur_20']) ? Clean::entier($_POST['f_bulletin_conversion_sur_20']) : 0;
// Est transmis à 0 si f_bulletin_pourcentage coché
$bulletin_moyenne_classe = isset($_POST['f_bulletin_moyenne_classe']) ? 1 : 0;
$bulletin_moyenne_generale = isset($_POST['f_bulletin_moyenne_generale']) ? 1 : 0;
$bulletin_couleur = isset($_POST['f_bulletin_couleur']) ? Clean::texte($_POST['f_bulletin_couleur']) : '';
$bulletin_fond = isset($_POST['f_bulletin_fond']) ? Clean::texte($_POST['f_bulletin_fond']) : '';
$bulletin_legende = isset($_POST['f_bulletin_legende']) ? Clean::texte($_POST['f_bulletin_legende']) : '';
$socle_appreciation_rubrique_longueur = isset($_POST['f_socle_appreciation_rubrique_longueur']) ? Clean::entier($_POST['f_socle_appreciation_rubrique_longueur']) : 0;
$socle_appreciation_rubrique_report = isset($_POST['f_socle_appreciation_rubrique_report']) ? 1 : 0;
 */

if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');}
if(($_SESSION['SESAMATH_ID']==ID_DEMO)&&($_POST['action']!='Voir')){exit('Action désactivée pour la démo...');}

$action         = (isset($_POST['f_action']))         ? $_POST['f_action']                                : '';
$matiere_id     = (isset($_POST['f_matiere_id']))     ? Clean::entier($_POST['f_matiere_id'])             : 0;
$matiere_nom    = (isset($_POST['f_matiere_nom']))    ? Clean::texte($_POST['f_matiere_nom'])             : '';
$niveau_id      = (isset($_POST['f_niveau_id']))      ? Clean::entier($_POST['f_niveau_id'])              : 0;
$niveau_nom     = (isset($_POST['f_niveau_nom']))     ? Clean::texte($_POST['f_niveau_nom'])              : '';
$structure_id   = (isset($_POST['f_structure_id']))   ? Clean::entier($_POST['f_structure_id'])           : 0;
$nb_demandes    = (isset($_POST['f_nb_demandes']))    ? Clean::entier($_POST['f_nb_demandes'])            : -1; // Changer le nb de demandes
$partage        = (isset($_POST['f_partage']))        ? Clean::referentiel_partage($_POST['f_partage'])   : NULL; // Changer l'état de partage
$methode        = (isset($_POST['f_methode']))        ? Clean::calcul_methode($_POST['f_methode'])        : NULL; // Changer le mode de calcul
$limite         = (isset($_POST['f_limite']))         ? Clean::calcul_limite($_POST['f_limite'],$methode) : NULL; // Changer le nb d'items pris en compte
$retroactif     = (isset($_POST['f_retroactif']))     ? Clean::calcul_retroactif($_POST['f_retroactif'])  : NULL; // Changer le nb d'items pris en compte
$information    = (isset($_POST['f_information']))    ? Clean::texte($_POST['f_information'])             : '';
$referentiel_id = (isset($_POST['f_referentiel_id'])) ? Clean::entier($_POST['f_referentiel_id'])         : -1; // Référence du référentiel importé (0 si vierge), ou référence du référentiel à consulter
$ids            = (isset($_POST['f_ids']))            ? $_POST['f_ids']                                   : '';

function compter_items($DB_TAB)
{
  $nb_item = 0;
  foreach($DB_TAB as $DB_ROW)
  {
    if($DB_ROW['item_id']!==NULL)
    {
      $nb_item++;
    }
  }
  return $nb_item;