| Current Path : /home/a/t/a/ataenra/www/ATA/INTRANET/Admin/Gestion_ACC/save/ |
| Current File : /home/a/t/a/ataenra/www/ATA/INTRANET/Admin/Gestion_ACC/save/CSVCC.php |
<?php
require "../../Outils/co.php";
$IDsite = $_GET['ID'];
$IDpmo = $_GET['IDpmo'];
$list1 = $dbco->prepare("SELECT ID_acc_conso FROM gest_acc_conso_heures WHERE ID_acc_site='$IDsite'");
$list1->execute();
$R1 = $list1->fetch(PDO::FETCH_OBJ);
if(isset($R1->ID_acc_conso)){
$del=$dbco->prepare("DELETE FROM `gest_acc_conso_bdd` WHERE ID_acc_site='$IDsite'");
$del->execute();
$del=$dbco->prepare("DELETE FROM `gest_acc_conso_heures` WHERE ID_acc_site='$IDsite'");
$del->execute();
}
//Identifier le module du tableau
$ligne = 0;$c = 1; $jour=array(); $stop=1; $count=0;
if (($handle = fopen("../../../FICHIERS/ACC/$IDpmo/Sites/$IDsite/CC/CC.$IDsite.csv", "r")) !== FALSE) {
while ((($data = fgetcsv($handle, 1000, ";")) && ($stop == 1)) !== FALSE) {
$ligne++;
if($ligne > 1){
$modifdate = $data[1];
$modifjour = explode("T", $modifdate); //Separer la date et l'heure
$date = $modifjour[0];
if($c==1){$jour2 = $date;}
$jour[$c] = $date;
$test = $jour[$c];
$c++;
if (strcmp($test, $jour2) !== 0) {
$count = $ligne-2;
$stop = 0;
}
}
}}
$tempo = ((24*60)/$count);
$coefh = 60/$tempo;
//echo $count . " boucles, soit ".$tempo." minutes. <br />\n<br />\n";
//echo $coefh . " de coef multiplicateur. <br />\n<br />\n";
fclose($handle);
$row = 0;
$rowmax = $coefh*24*366*4;
$rowb = 0;
$DB = array();
//echo $rowmax . " max de ligne a importer. <br />\n<br />\n";
if (($handle = fopen("../../../FICHIERS/ACC/$IDpmo/Sites/$IDsite/CC/CC.$IDsite.csv", "r")) !== FALSE) {
while ((($data = fgetcsv($handle, 1000, ";"))&&($row < $rowmax)) !== FALSE) {
//$num = count($data);
//echo "<p> $num champs à la ligne $row: <br /></p>\n";
$row++;
if($row > 1){
$rowb++;
//echo $data[$c] . "<br />\n";
$DB[$rowb]['Num']= $rowb;
$modifdate = $data[1];
$modifjour = explode("T", $modifdate); //Separer la date et l'heure
$jour = $modifjour[0];
$DB[$rowb]['Jour'] = $modifjour[0];
$Var_année = explode("T", $jour);
$année = $Var_année[0];
$modifheure = $modifjour[1];
//echo $modifheure. " modifheure. <br />\n";
$modifheure2 = str_replace("Z", "", $modifheure);
//$modifheure2 = explode("Z", $modifjour[1]);
//echo $modifheure2 . " modifheure2. <br />\n";
$heure1 = explode(":", $modifheure2);
//echo $heure1[0] . " heure1. <br />\n";
$heure2 = $heure1[0];
//echo $heure2 . " heure2. <br />\n";
$DB[$rowb]['Heure'] = $heure2;
$ppoint = $data[3];
//$pfloat = str_replace(".", ",", $ppoint);
$puissance = $ppoint*1000;
$pf = (int)$puissance;
$DB[$rowb]['Puissance'] = (int)$puissance;
$conso = ($pf/(1000*$coefh));
$DB[$rowb]['Conso'] = $conso;
//echo $jour . " / Date du jour <br />\n";
//echo $heure . " / Heure du jour <br />\n";
//echo $puissance . " / Puissance en wh <br />\n";
//echo $conso . " / Conso en kwh <br />\n";
if($rowb == $coefh){
$RecupPuissance = array_column($DB, 'Puissance');
$PuissanceHeure=(array_sum($RecupPuissance)/$coefh);
$RecupConso = array_column($DB, 'Conso');
$ConsoHeure=array_sum($RecupConso);
$PDOjour = $DB[1]['Jour'];
$PDOheure = $DB[1]['Heure'];
$rowb = 0;
$UP3 = $dbco->prepare("INSERT INTO gest_acc_conso_heures (ID_acc_site, conso_jour, conso_heure, conso_puissance, conso_kwh) VALUES (:ID_acc_site, :conso_jour, :conso_heure, :conso_puissance, :conso_kwh)");
$UP3->bindparam(':ID_acc_site',$IDsite);
$UP3->bindparam(':conso_jour',$PDOjour);
$UP3->bindparam(':conso_heure',$PDOheure);
$UP3->bindparam(':conso_puissance',$PuissanceHeure);
$UP3->bindparam(':conso_kwh',$ConsoHeure);
$UP3->execute();
//echo "Enregistrement de la journée du ".$PDOjour." et de l'heure N° ".$PDOheure." pour une puissance instant de ".$PuissanceHeure." et une conso de ".$ConsoHeure.". <br />";
}
}
}
}
fclose($handle);
$req1 = $dbco->query("SELECT SUM(Conso_kwh) AS Consos_total FROM gest_acc_conso_heures WHERE ID_acc_site = '$IDsite' AND conso_jour LIKE '2024-%%-%%'");
$totalconsos = $req1->fetch();
$req1->closeCursor();
$UP6 = $dbco->prepare('UPDATE gest_acc_sites SET CC = :CC, Consos = :Consos, Etat = :Etat WHERE ID_acc_site = :ID_acc_site');
$UP6->bindvalue('CC','Oui');
$UP6->bindvalue('Consos',$totalconsos['Consos_total']);
$UP6->bindvalue('Etat','Complet');
$UP6->bindvalue('ID_acc_site',$IDsite);
$UP6->execute();
$del=$dbco->prepare("DELETE FROM `gest_acc_conso_bdd` WHERE ID_acc_site='$IDsite'");
$del->execute();
require('acc_calcul_journalier_CC.php');
require('acc_calcul_mois_CC.php');
header("location:../Gestion_ACC/acc_config_sites.php?ID=$IDpmo");
?>