<?php
header( 'refresh: 600');
/****************************************************************************************************************************
*
*							Script de transformation des fichiers au format xml fournies par le ministère de l'intérieur
*							au format des résultats des élections sur la plate forme opendat de Rennes Métropole
*												Tour 1
*
*****************************************************************************************************************************/
//genere_1000(1,'R135001.xml');
//genere_999(1,'R135022.xml');
//crée le fichier
//ajout des ligne rennes
//jointure geojson
// geenrer l'entete dynamiquement

//commune bruz p2017 tour1 vrai resultats
//$url = 'https://www.interieur.gouv.fr/avotreservice/elections/telechargements/PR2017/resultatsT1/053/035/035047.xml';
//$url = 'https://www.interieur.gouv.fr/avotreservice/elections/telechargements/PR2017/resultatsT1/053/035/035049.xml';


//commune acigné p2022 tour 1 test
//$url = 'https://www.resultats-elections.interieur.gouv.fr/telechargements/EssaiPR2022/resultatsT1/053/035/035001.xml';

//LG2024/resultatsT1/35/INDEX135.xml
include ("params_MUN2026.php");
$url='https://www.resultats-elections.interieur.gouv.fr/telechargements/MUN2026';
//$url='https://outils.rennes.bzh/api/elections2026/telechargements/MUN2026';
//$url='./telechargements/MUN2026';
//$url='https://www.archives-resultats-elections.interieur.gouv.fr/telechargements/LG2024';
$url_candidat=$url . '/candidatureT1/CandidatureT1.xml';
$url_result_parvenus = $url . '/resultatsT1/35/INDEX135.xml';


$url_territoire = $url . '/territoires/territoires.xml';

/************************************************
*	récupe données territoire
*************************************************/
/*
	$xml_territoire = simplexml_load_file($url_territoire);

	foreach ($xml_territoire->EnsembleGeo->Regions->Region as $idregion){
			if ($idregion->CodReg == 53){
				echo $idregion->LibReg."/";
				foreach ($idregion->Departement as $id_departement){
					//print_r( $id_departement);
					if ($id_departement->CodDpt == 35){
						echo ($id_departement->LibDpt);
						
						foreach ($id_departement->Circonscriptions->Circonscription as $id_commune){
							
							
							
							//echo "</br>".$id_commune->CodCirElec;
							//print_r($liste_communes_RM);
							foreach ($liste_communes_RM as $i => $value) {
								if($i==$id_commune->CodCirElec) {
									if ($id_commune->NbSap) {echo "<b>";}
										echo "</br>".$id_commune->CodCirElec;
										echo "/".$id_commune->LibCirElec;
										echo "/Siege Commune : ".$id_commune->NbSapCommune;
										echo "/Siege EPCI : ".$id_commune->NbSapEpci;
									if($id_commune->NbSap) {echo "</b>";}
								
								//echo $liste_communes_RM[(int)$id_commune->CodCirElec];
							}
							
						}
						
				}
				
			}
		}
	}
	}

*/


/************************************************
*	copie de l'ancien fichier pour historiser la soirée electorale
*************************************************/

//recopie du fichier pour l'historique des arrivées des résultats
echo "./resultats_" . $CODE_ELECTION . "_1_" . date("Ymd")."_".date("H") . "h" . date("i") .  ".csv";
echo "<br/>";
if (!copy("./resultats_" . $CODE_ELECTION . "_1.csv", "./historique/" . $CODE_ELECTION . "/resultats_" . $CODE_ELECTION . "_1_" . date("Ymd")."_".date("H") . "h" . date("i") .  ".csv")) {
    echo "La copie $file du fichier a échoué...\n";
}
/************************************************
*	construction du fichier et de son entete
*************************************************/
//echo $url_candidat;
$entete = construction_fichier_entete_max_resultats(34);
$fp = fopen("./resultats_" . $CODE_ELECTION . "_1.csv", "w");
	fputcsv($fp, $entete,$delimiter = ';');


/************************************************
*	construcion des lignes de résultats
*************************************************/
	//print_r($liste_communes_RM);

	//echo $url_result_parvenus;

	foreach ($liste_communes_RM as $i => $value) {
		
		$xml_parvenu = simplexml_load_file($url_result_parvenus);
			echo "<pre>";
			//print_r($xml_parvenu);
			echo "</pre>";
		
			echo "<br/>***************************************************DEBUT ".$liste_communes_RM[$i]."**************************************************************<br/>";
			echo "&emsp;".($i) . " : " .  $liste_communes_RM[$i] ."<br/>";
			$url_commune = $url . '/resultatsT1/35/R1' . $i . '.xml';
			echo "&emsp;".$url_commune;
				
			echo "<br/>";
			echo "&emsp;Resultats parvenus fichier index : ";
			foreach ($xml_parvenu->Departement->Circonscriptions->Circonscription as $value_parvenu){
				if ($value_parvenu->CodCirElec == $i){
					echo "&emsp;".$value_parvenu->CodCirElec."/";
					echo "&emsp;".$value_parvenu->ResultatsParvenus."/".$value_parvenu->DateDerMaj."/".$value_parvenu->HeureDerMaj."/".$value_parvenu->PourcentageBureauxDeVoteSaisis."%";
				}
			}
				
			
				
			$xml = simplexml_load_file($url_commune);
			//print_r($xml);
			
			if ($xml) {
				//affiche_donnees($xml);
				ecriture_donnees($xml,$fp);
			}
			else 
			{
				echo "<br/>Pas de résultats<br/>";
			}
		echo "<br/>**************************************************FIN ****************************************************************<br/>";
	}

function ecriture_donnees ($xml,$fp)
{
				
		/*	while($data = mysqli_fetch_row($query_export)) {
			    
			fputcsv($fp, $data,$delimiter = ';');
			}*/
		global $CODE_ELECTION;
		global $DATE_ELECTION;
			
		echo "<pre>";
		//print_r($xml);
			echo "</pre>";
			
			
		$ligne=array();
		$compte_ligne=34;
		$ligne[]=$CODE_ELECTION; 
		$ligne[]="ELECTIONS ".mb_strtoupper($xml->Scrutin->Type) . " " . $xml->Scrutin->Annee;
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->NumTour;
		$ligne[]=$DATE_ELECTION;
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->CodCirElec;
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->LibCirElec;
		$ligne[]="";
		$ligne[]="vi";
		$ligne[]="";
		$ligne[]="";
		$ligne[]="";
		$ligne[]="";
		$ligne[]="";
		$ligne[]="";
		$ligne[]="";
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Inscrits->Nombre;
		$ligne[]="";
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Votants->Nombre;
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Blancs->Nombre;
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Nuls->Nombre;
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Exprimes->Nombre;
		$ligne[]=$xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Votants->RapportInscrit;
		$ligne[]="";
		foreach ($xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Resultats->Listes->Liste as $value){
			$ligne[]=$value->CiviliteTeteListe." ".$value->NomTeteListe." ".$value->PrenomTeteListe." / ".$value->NomListe;
			$ligne[]=$value->NbVoix;
			$ligne[]=$value->RapportExprimes;
			$compte_ligne=$compte_ligne-1;
		}
		while ($compte_ligne>0){
			$ligne[]="";
			$ligne[]="";
			$ligne[]="";			
			$compte_ligne=$compte_ligne-1;
			//echo $compte_ligne ."-";
		}
			

		/********************************************
		*		ajout des sheoshape des communes 
		***********************************************/
		
		
		//$apiUrl = "https://data.rennesmetropole.fr/api/records/1.0/search/?dataset=limites-communales-referentielles-de-rennes-metropole-polygones&q=&refine.nom=".$xml->Departement->Commune->LibSubCom;
	
		$geo_json="limites-communales-referentielles-de-rennes-metropole-polygones.json";
		$response = file_get_contents($geo_json, False);
		$data = json_decode($response);
		
		foreach ($data as $value2){
			//print_r ($value2);
			if ( strcasecmp( $value2->fields->nom,$xml->EnsembleGeo->Region->Departement->Circonscription->LibCirElec) == 0 ){
					echo $value2->fields->nom."<br/>"; 
					//print_r($value2->fields);
					$ligne[]=json_encode($value2->fields->geo_shape);
			}
			
				
		}
		//
		//print_r($data);
		
		//$ligne[]="";
	fputcsv($fp, $ligne,$delimiter = ';');
}

function affiche_donnees ($xml)
{
		echo "&emsp;"."<br/>&emsp;***************************Affiche donnees *****************************".'</BR>';
		echo "&emsp;"."CODE_ELECTION : M26 </br>";
		echo "&emsp;"."NOM_ELECTION : ELECTIONS ".mb_strtoupper($xml->Scrutin->Type) . " " . $xml->Scrutin->Annee . " </br>";
		echo "&emsp;"."NUMERO_TOUR : " . $xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->NumTour.'</BR>';
		echo "&emsp;"."DATE_ELECTION : 15/03/2026 </br>";
		echo "&emsp;"."CODE_COMMUNE : " . $xml->EnsembleGeo->Region->Departement->Circonscription->CodCirElec.'</BR>';
		echo "&emsp;"."LIBELLE_COMMUNE : " . $xml->EnsembleGeo->Region->Departement->Circonscription->LibCirElec.'</BR>';
		echo "&emsp;"."NIVEAU_DETAIL : vi </br>";
		echo "&emsp;"."NUMERO_LIEU</br>";
		echo "&emsp;"."num_centre</br>";
		echo "&emsp;"."NOM_LIEU</br>";
		echo "&emsp;"."ADRESSE_LIEU</br>";
		echo "&emsp;"."NUMERO_CANTON</br>";
		echo "&emsp;"."NOM_CANTON</br>";
		echo "&emsp;"."NUMERO_CIRCONSCRIPTION</br>";
		echo "&emsp;"."NOM_CIRCONSCRIPTION</br>";
		echo "&emsp;"."NB_INSCRITS : " . $xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Inscrits->Nombre.'</BR>';
		echo "&emsp;"."NB_EMARGEMENTS : </BR>" ;
		echo "&emsp;"."NB_BULLETINS : " . $xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Votants->Nombre.'</BR>';
		echo "&emsp;"."NB_BLANC : " . $xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Blancs->Nombre.'</BR>';
		// echo "NB_NULS : " . $xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Nuls->Nombre.'</BR>';
		// echo "NB_EXPRIMES : " . $xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Exprimes->Nombre.'</BR>';
		echo "&emsp;"."POURCENTAGE_PARTICIPATION : " . $xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Mentions->Votants->RapportInscrit.'</BR>';
		foreach ($xml->EnsembleGeo->Region->Departement->Circonscription->Tours->Tour->Resultats->Listes->Liste as $value){
			echo "&emsp;"."CANDIDAT_".$value->CiviliteTeteListe." ".$value->NomTeteListe." ".$value->PrenomTeteListe." ".$value->NomListe."</br>";
			echo "&emsp;"."NB_VOIX_".$value->NumPanneauListe." : ".$value->NbVoix."</br>";
			echo "&emsp;"."POURCENTAGE_".$value->NumPanneauListe." :".$value->RapportExprimes." </br>";
	
		}
	echo "&emsp;"."<br/> &emsp;***************************fin Affiche donnees *****************************".'</BR>';
		
	
}



echo '</BR>'.'</BR>'.'</BR>';
//print_r($xml);
?>