";
//$session = $_GET[session];
$ref_liste = $_GET[valeur];
$Switch = $_GET[switches];
// une variable pour le champs de tri
// une variable pour le sens de tri (ASC ou DESC)
$data_type = "FY";
$annee = date("Y",time()); //Année actuelle $_GET[annee];
$ref_champs = "33,32";//$_GET[ref_champs];
// Transforme la chaine DataRef en Tableau
$DataRef=explode(",",$ref_champs);
//Compte le nombre de champs de données demandés
$NbDataRef = count($DataRef);
//Pour debuggage
//echo "Session:".$session." ";
//echo "Ref liste:".$ref_liste." ";
//include("verif_session.php");
echo " ";
//include("menu_horizontal.php");
include("fonc_connectMYSQL.php");
include("fonctions_util.php");
echo "
";
require ("variables.php");
//Connexion Mantiquore
$connexion_Man = mysql_connect(SERVEUR_1,NOM_1,PASSE_1);
$accesBD_Man = mysql_select_db (BASE_1,$connexion_Man);
// Connexion BB
$connexion_BB = mysql_connect(SERVEUR,NOM,PASSE);
$accesBD_BB = mysql_select_db (BASE,$connexion_BB);
/*
Objectif : pour chaque valeur de la liste soumise valorisation en VCZ "glissante"
Récuperer la ref des valeurs de la liste (BBears)
Récupérer : ISIN + Lib de ces valeurs (Referentiel Mantiquore)
Récupere la date de clôture de l'exercice pour calculer l'année de Ref
Si Jour/mois clôture + année d'aujourd'hui < à date aujourd'hui alors année Ref = année aujourd'hui + 1)
Exemple :
si maintenant = 31/07/2009 alors date aujourd'hui = 2009
si cloture exercice = 31/06 alors 31/06/2009 < 31/07/2009 alors année Ref = 2009+1 = 2010
si cloture = 31/12 alors 31/12/2009 > 31/07/2009 alors année Ref= 2009
*/
//Extraction des valeurs d la liste
$Requete_1 = "
SELECT
`ref_val`
FROM `BB_liste_valeurs`
WHERE `ref_liste` LIKE '$ref_liste'
";
//echo "Requete_1:".$Requete_1." ";
// Lance la requête
$resultat= mysql_query($Requete_1, $connexion_BB);
// Initialise les tableaux
unset ($Liste_RefValeur);
//INJECTION DES REFVAL de la liste dans un Tableau
while($fetch= mysql_fetch_object($resultat))
{
$Liste_RefValeur[$fetch->ref_val] = $fetch->ref_val;
}
// Transformation du tableau de Ref Valeurs en une Variable Texte
$List_RefValeur_Txt = implode(",",$Liste_RefValeur);
echo "
\n";
// Exploite le résultat de l'extraction des valeur de la liste
// Initialise les tableaux
unset($TableauDataVal); //Ce tableau à en ligne les enregistrement et en colonne les champs
echo "
";
//echo "
".ltrim($fetch->ref_valeur)."
".$fetch->code_isin."
".$fetch->code_factset."
".$fetch->libelle_valeur."
\n";
// ************* EXTRAIRE LES CARACTERISTIQUES de toutes les VALEURS de la liste *******************
$Requete_1b = "
SELECT
`mantiquore_valeurs`.`ref_valeur`,
`mantiquore_valeurs`.`code_isin`,
`mantiquore_valeurs`.`libelle_valeur`,
`mantiquore_valeurs`.`cloture_valeur`
FROM `mantiquore_valeurs`
WHERE `mantiquore_valeurs`.`ref_valeur` IN($List_RefValeur_Txt)
;";
//echo "Requete_1b:".$Requete_1b." ";
// Lance la requête
$resultat_1b= mysql_query($Requete_1b, $connexion_Man);
// Initialise les tableaux
unset($Tab_ISIN,$Tab_Libelle,$Tab_Cloture);
// Injecte le résultat dans des vecteurs Colonne
while($fetch_1b= mysql_fetch_object($resultat_1b))
{
$Ref_Val_Tmp = $fetch_1b->ref_valeur;
$Tab_ISIN[$Ref_Val_Tmp]=$fetch_1b->code_isin;
$Tab_Libelle[$Ref_Val_Tmp]=$fetch_1b->libelle_valeur;
$Tab_Cloture[$Ref_Val_Tmp]=$fetch_1b->cloture_valeur;
}
//************** EXTRAIRE TOUTES LES DONNEES DE CALCUL POUR CETTE LISTE de VALEUR
// Lance l'extraction des données du champs et de la valeur
$Requete_2 = "
SELECT
`BB_anafi_calc`.`champs_ref`,
`BB_anafi_calc`.`valeurs_ref`,
`BB_anafi_calc`.`datas_value`,
`BB_anafi_calc`.`datas_annee`,
`BB_anafi_calc`.`datas_type`,
`BB_anafi_calc`.`datas_archive`,
`BB_anafi_calc`.`auteurs_ref`,
`BB_anafi_calc`.`datas_timestamp`
FROM `BB_anafi_calc`
WHERE `valeurs_ref` IN ($List_RefValeur_Txt)
AND `BB_anafi_calc`.`datas_archive`= 1
AND `BB_anafi_calc`.`datas_type` = '$data_type'
;";
//echo "Requete_2:".$Requete_2." ";
// Lance la requête
$resultat_2= mysql_query($Requete_2, $connexion_Man);
// Initialise les tableaux ********************************
unset($TableauTri);
//Creer une entrée par defaut à chaque fois
foreach($Liste_RefValeur as $Key_1 => $Value_1)
{
foreach($DataRef as $Key_2 => $Value_2)
{
foreach(array(($annee+1),$annee,($annee-1)) as $Key_3 => $Value_3)
{
$RefVal = "_".$Value_2."_FY_".$Value_3."_".$Value_1;
$TableauTri[$RefVal] = 0;
}
}
}
// Exploite le résultat Requete_2
// Tous les enregistrement CALCULS de la valeur
while($fetch_2= mysql_fetch_object($resultat_2))
{
// On va insérer tous les enregistrements dans un VECTEUR
//Transfert des données dans le tableau LIGNE = RefValeur Colonnes (CHAMPS/DATATYPE/ANNEE)
$RefVal = "_".$fetch_2->champs_ref."_".$fetch_2->datas_type."_".$fetch_2->datas_annee."_".$fetch_2->valeurs_ref;
//Pour débugage :
//echo "
".$RefVal."
\n";
// !!!!! Tout ces tableaux DOIVENT être initialisés à chaque changement de champs
// Création d'un tableau COLONNE
$TableauTri[$RefVal]=$fetch_2->datas_value;
//Pour débugage :
//echo "
".$fetch_2->datas_value."
\n";
}
//******************************EXTRAIRE LES DONNEES DE MARCHE **************************
unset($Table_CB);
// Lance l'extraction des données du champs et de la valeur
$Requete_2b = "
SELECT
`BB_anafi_datas`.`champs_ref`,
`BB_anafi_datas`.`valeurs_ref`,
`BB_anafi_datas`.`datas_archive`,
`BB_anafi_datas`.`datas_type`,
`BB_anafi_datas`.`datas_annee`,
`BB_anafi_datas`.`datas_value`
FROM `BB_anafi_datas`
WHERE `valeurs_ref` IN ($List_RefValeur_Txt)
AND `BB_anafi_datas`.`datas_archive`= 1
AND `BB_anafi_datas`.`datas_type` = '$data_type'
AND `BB_anafi_datas`.`champs_ref` IN (22)
;";
//echo "Requete_2b:".$Requete_2b." ";
// Lance la requête
$resultat_2b= mysql_query($Requete_2b, $connexion_BB);
while($fetch_2b= mysql_fetch_object($resultat_2b))
{
$RefVal_2b = "_".$fetch_2b->champs_ref."_".$fetch_2b->datas_type."_".$fetch_2b->datas_annee."_".$fetch_2b->valeurs_ref;
$Table_CB[$RefVal_2b] = $fetch_2b->datas_value;
//echo "
".$Table_CB[$RefVal_2b]."
".$RefVal_2b."
";
}
//************ ICI ON DETERMINE LES POIDS ET LES EXERCICES
unset($Date_tmp);
unset($Tableau_COEF_N0,$Tableau_COEF_N,$Tableau_COEF_N1);
unset($Tableau_DATE_N0,$Tableau_DATE_N,$Tableau_DATE_N1);
// Pour Chaque Valeur on calcul l'exercice N-1; N ; N+1
foreach($Liste_RefValeur as $Key => $Value)
{
//echo "
Cet élément a pour clé " . $Key . " et pour valeur ".$Value."
";
// Pour N+1 / N / N-1
// Calculer Les Dates et les inserer dans un Vecteur
// ******* ****** Calcul de la date de clôture de l'exercice ***********************
// Elle doit être supérieure à la date courrante
// Année en cours
$Date_Year_tmp = date("Y",time());
$Date_tmp = explode("-",$Tab_Cloture[$Value]);
$Date_Month_tmp = $Date_tmp[1];
$Date_Day_tmp = $Date_tmp[0];
//Heure/Minute/Seconde Mois/Jour/Annee
if(mktime(0, 0, 0, $Date_Month_tmp, $Date_Day_tmp, $Date_Year_tmp)
\n";
// Commence ici l'affichage du tableau DATA
//Assemblage des matrices colonnes dans un tableau $TableauTri
$Tableau_Final = array(
"Ref_Val" => $Liste_RefValeur,
"DEC_VCZ_Pct" => $Table_VCZ_Pondere_Pct
);
// Tri du tableau (Tri toujours en tête) :
switch($Switch)
{
case "A_D":
array_multisort(
$Tableau_Final[DEC_VCZ_Pct],SORT_DESC,
$Tableau_Final[Ref_Val]
);
break;
case "A_A":
array_multisort(
$Tableau_Final[DEC_VCZ_Pct],SORT_ASC,
$Tableau_Final[Ref_Val]
);
break;
}
// ATTENTION : le multisort change les clés des matrice originales
// $Tableau_Decote_VCZ_N_Pct qui a une clé RefVal devient ensuite indexée sur la clé séquentielle
// de $Tableau_Final[DEC_VCZ_N_Pct]
//Debuggage
//echo count($Tableau_Final[DEC_VCZ_N_Pct])."***".count($Tableau_Final[Ref_Val]);
// AFFICHAGE DU TABLEAU
echo "