"; //$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 "\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 " \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 " \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 "\n"; //echo "\n"; //echo "\n"; $Pdx_N0 = round(Pdx_Exercice($Date_Close_N0,time()),4); $Pdx_N = round(Pdx_Exercice($Date_Close_N,time()),4); $Pdx_N1 = round(Pdx_Exercice($Date_Close_N1,time()),4); //echo "\n"; //echo "\n"; //echo "\n"; //Insertion des coef dans le tableau $Tableau_COEF_N0[$Value]= round($Pdx_N0,3); $Tableau_COEF_N[$Value]= round($Pdx_N,3); $Tableau_COEF_N1[$Value]= round($Pdx_N1,3); //Insertion des EXERCICE dans le tableau $Tableau_DATE_N0[$Value]= ($Date_Year_tmp-1); $Tableau_DATE_N[$Value]= $Date_Year_tmp; $Tableau_DATE_N1[$Value]= ($Date_Year_tmp+1); } //******************************** MAINTENANT on PARCOURS LE VECTEUR UNIQUE POUR LE VENTILER unset($Tableau_33_N0,$Tableau_33_N,$Tableau_33_N1); unset($Tableau_32_N0,$Tableau_32_N,$Tableau_32_N1); unset($Tableau_Decote_VCZ_N,$Tableau_Decote_VCZ_N_Pct); unset($Table_VCZ_Pondere,$Table_VCZ_Pondere_Pct); unset($Table_CB_Last); unset($Table_Flag); // ** POUR CHAQUE VALEUR **** foreach($Liste_RefValeur as $Key_Val => $Value_Val) { // ** POUR CHAQUE CHAMPS **** // 33 = VCZ MEDIANE $Tableau_33_N0[$Value_Val] = $TableauTri["_33_FY_".$Tableau_DATE_N0[$Value_Val]."_".$Value_Val]; $Tableau_33_N[$Value_Val] = $TableauTri["_33_FY_".$Tableau_DATE_N[$Value_Val]."_".$Value_Val]; $Tableau_33_N1[$Value_Val] = $TableauTri["_33_FY_".$Tableau_DATE_N1[$Value_Val]."_".$Value_Val]; // 32 = VCZ $Tableau_32_N0[$Value_Val] = $TableauTri["_32_FY_".$Tableau_DATE_N0[$Value_Val]."_".$Value_Val]; $Tableau_32_N[$Value_Val] = $TableauTri["_32_FY_".$Tableau_DATE_N[$Value_Val]."_".$Value_Val]; $Tableau_32_N1[$Value_Val] = $TableauTri["_32_FY_".$Tableau_DATE_N1[$Value_Val]."_".$Value_Val]; // Flag VCZ if($Tableau_32_N1[$Value_Val]<$Tableau_32_N[$Value_Val]) { $Table_Flag[$Value_Val]="BlueArrowDown.gif"; } else { $Table_Flag[$Value_Val]="BlueArrowUp.gif"; } // VCZ pondéré unset($Temp); $Temp = $Tableau_32_N0[$Value_Val]*$Tableau_COEF_N0[$Value_Val]; $Temp = $Temp + $Tableau_32_N[$Value_Val]*$Tableau_COEF_N[$Value_Val]; $Temp = $Temp + $Tableau_32_N1[$Value_Val]*$Tableau_COEF_N1[$Value_Val]; $Table_VCZ_Pondere[$Value_Val] = $Temp; //echo "
".ltrim($fetch->ref_valeur)."".$fetch->code_isin."".$fetch->code_factset."".$fetch->libelle_valeur."
".$RefVal."".$fetch_2->datas_value."
".$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)$Date_Day_tmp/$Date_Month_tmp/$Date_Year_tmp".$fetch->cloture_valeur."".date("d-m-Y",$Date_Close_N)."".$Pdx_N1."".$Pdx_N."".$Pdx_N0."VCZ POND".$Table_VCZ_Pondere[$Value_Val]; // 22 CB $CB_Last = $Table_CB["_22_FY_".date("Y",time())."_".$Value_Val]; $Table_CB_Last[$Value_Val] = $CB_Last; //echo "CB Last".$CB_Last; // CALCUL DECOTE VCZ M€ if($Tableau_32_N[$Value_Val]>0) { if($CB_Last==0) { $Tableau_Decote_VCZ_N_Pct[$Value_Val] = "Capi Nulle"; } else { $Tableau_Decote_VCZ_N[$Value_Val] = ($Tableau_32_N[$Value_Val]-$CB_Last); $Tableau_Decote_VCZ_N_Pct[$Value_Val] = round(($Tableau_Decote_VCZ_N[$Value_Val]/$CB_Last*100),2); //echo $Value_Val."-"; } } else { $Tableau_Decote_VCZ_N[$Value_Val] = "-"; $Tableau_Decote_VCZ_N_Pct[$Value_Val] = "-"; } // CALCUL DECOTE VCZ PONDERE M€ unset($Temp); if($Table_VCZ_Pondere[$Value_Val]>0) { if($CB_Last==0) { $Table_VCZ_Pondere_Pct[$Value_Val] = "Capi Nulle"; } else { $Temp = ($Table_VCZ_Pondere[$Value_Val]-$CB_Last); $Table_VCZ_Pondere_Pct[$Value_Val] = round(($Temp/$CB_Last*100),2); //echo $Value_Val."-"; } } else { $Table_VCZ_Pondere_Pct[$Value_Val] = "-"; } } // ************************************************************************************* //$Switch = "A_A"; // **** FIN du FETCH REQUETE 2 : ICI TOUTES LES DONNEES DOIVENT ETRE DANS DES TABLEAUX VECTEURS echo "
\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 " \n"; Printf(" "); foreach( $Tableau_Final[Ref_Val] as $key => $value ) { $HyperLien = "../include/fiche_valeur_open.php?ValRef=$value&YearStart=1987&YearEnd=".($annee+1)."&DataType=FY&DataRef=11,3,6,20,21,26,28,22,23,24,25,34"; $PopUp = "onClick=\"javascript:window.open('$HyperLien','FicheValeur','top=10, left=10, resizable=yes, location=no, width=200, height=100, menubar=no, status=no, scrollbars=1, fullscreen=yes');\""; //$PopUp = "onClick=\"javascript:window.open('$HyperLien','FicheValeur','');\""; Printf("
Clé Val ISIN Libelle CB Last VCZ Pond DEC Pct - Cloture COEF N-1 COEF N COEF N+1 VCZ N0 VCZ N VCZ N1
".$key." ".$value." ".$Tab_ISIN[$value]." ".$Tab_Libelle[$value]." ".round($Table_CB_Last[$value],2)." ".round($Table_VCZ_Pondere[$value],2)." ".round($Table_VCZ_Pondere_Pct[$value],2)." ".$Tab_Cloture[$value]." ".$Tableau_COEF_N0[$value]." ".$Tableau_COEF_N[$value]." ".$Tableau_COEF_N1[$value]." ".round($Tableau_32_N0[$value],2)." ".round($Tableau_32_N[$value],2)." ".round($Tableau_32_N1[$value],2)." "); } mysql_close($connexion_BB); mysql_close($connexion_Man); echo "
\n"; /* //DEBUGAGE echo " \n"; foreach( $Tab_ISIN as $key => $value ) { echo ""; } echo "
Key is : $key Value is : $value
\n"; */ //Heure,Minutes,Secondes,Mois,Jour,Annee(4 chiffres) $date_cloture_exercice = mktime(0, 0, 0, 12, 31, 2009); $date_actuelle = mktime(0, 0, 0,11, 1, 2009); //echo Pdx_Exercice($date_cloture_exercice,$date_actuelle); ?>