Your IP : 216.73.216.65


Current Path : /home/ataenra/www/ATA/INTRANET/Admin/Gestion_ACC/
Upload File :
Current File : /home/ataenra/www/ATA/INTRANET/Admin/Gestion_ACC/acc_simul_bdd.php

<?php
require "../../Outils/co.php";
$IDpmo = $_GET['IDpmo'];

$list0 = $dbco->prepare("SELECT ID_acc_site FROM gest_acc_sites WHERE ID_pmo='$IDpmo' AND site_type = 'Conso' "); 
$list0->execute();

$a=0;
$b=0;
$csvac = new SplFileObject('../../../FICHIERS/ACC/'.$IDpmo.'/CCACC.'.$IDpmo.'.csv', 'w');

$pass=1;

while ($R0 = $list0->fetch(PDO::FETCH_OBJ)) {if(isset($R0->ID_acc_site)){

$IDsite = $R0->ID_acc_site; 
$a=1;
//CREATION DE LA VARIABLE ET RECUP COURBES DE CHARGE
$countcc =1;
$cc = fopen("../../../FICHIERS/ACC/$IDpmo/Sites/$IDsite/CC/CCJ.$IDsite.csv", "r");

    $i=1;
    while (($data = fgetcsv($cc, 1000, ";")) !== FALSE) {

    $DBCC[$i][1] = $data[0]; //Date du jour
    $DBCC[$i][2] = $data[1]; //heure

    if($pass == 1){

    $DBCC[$i][3] = $data[2]; //Puissance conso de base
    $DBCC[$i][4] = $data[3]; //Conso de base

    $i++;$countcc++;

    }else{

    $DBCC[$i][3] += $data[2]; //Addition des puissances de base
    $DBCC[$i][4] += $data[3]; //Addition des conso de base
    
    $i++;$countcc++;
    }

}
$pass++;
}
fclose($cc);
}


//AJOUTER LA PUISSANCE DES CENTALES SEULES
$list0 = $dbco->prepare("SELECT ID_acc_site FROM gest_acc_sites WHERE ID_pmo='$IDpmo' AND site_type = 'Prod' "); 
$list0->execute();
$pass=1;
while ($R0 = $list0->fetch(PDO::FETCH_OBJ)) {if(isset($R0->ID_acc_site)){
$IDsite = $R0->ID_acc_site; 
$b=1;
$cp = fopen("../../../FICHIERS/ACC/$IDpmo/Sites/$IDsite/CP/CPMJ.$IDsite.csv", "r");

    $i=1;
    while (($data1 = fgetcsv($cp, 1000, ";")) !== FALSE) {

    if($a==0){
    $DBCC[$i][1] = $data1[0]; //Date du jour
    $DBCC[$i][2] = $data1[1];} //heure

    if($pass == 1){

    $DBCC[$i][5] = $data1[2]; //Puissance de prod
    
    $i++;

    }else{

    $DBCC[$i][5] += $data1[2]; //Puissance de prod
    

    $i++;
    }
    }
    $pass++;
}
fclose($cp);
}


//AJOUTER LA PUISSANCE Excedentaires des ACI
$list0 = $dbco->prepare("SELECT ID_acc_site FROM gest_acc_sites WHERE ID_pmo='$IDpmo' AND site_type = 'AutoConso' "); 
$list0->execute();
$pass=1;
//boucle des sites
while ($R0 = $list0->fetch(PDO::FETCH_OBJ)) { if(isset($R0->ID_acc_site)){
$IDsite = $R0->ID_acc_site; 

$ac = fopen("../../../FICHIERS/ACC/$IDpmo/Sites/$IDsite/AC/CCAC.$IDsite.csv", "r");

    $i=1;
    while (($data2 = fgetcsv($ac, 1000, ";")) !== FALSE) {
    
        if(($a==0)&&($b==0)){
        $DBCC[$i][1] = $data2[0]; //Date du jour
        $DBCC[$i][2] = $data2[1];} //heure

    if($pass == 1){

        $DBCC[$i][6] = $data2[2]; //puissance soutirée pfinal
        $DBCC[$i][7] = $data2[6]; //puissance excedentaire
        $i++;

        }else{

        $DBCC[$i][6] += $data2[2]; //puissance soutirée pfinal
        $DBCC[$i][7] += $data2[6]; //puissance excedentaire
        $i++;

        }
    }
$pass++;
}
fclose($ac);
}

$i=1;
foreach($DBCC as $bd){

    if(isset($DBCC[$i][3])){$consocc = $DBCC[$i][3]; }else{$consocc =0;}
    if(isset($DBCC[$i][5])){$prodcc = $DBCC[$i][5]; }else{$prodcc =0;}
    if(isset($DBCC[$i][6])){$ACIcc = $DBCC[$i][6]; }else{$ACIcc =0;}
    if(isset($DBCC[$i][7])){$ACIpr = $DBCC[$i][7]; }else{$ACIpr =0;}

    $Pconso = $consocc+$ACIcc; //puissance a consommer, CC + reste soutirage aci
    
    $Pprod = $prodcc+$ACIpr; //production des centrales + excendents des aci
    
    $Econso = $Pconso/1000;
    $Eprod = $Pprod/1000;
    $Pcalc = $Pconso-$Pprod;
    
    if($Pcalc > 0){
        $Pfinal = $Pcalc; 
        $Efinal = $Pfinal/1000; 
        $Pautoconso=$Pprod; 
        $Eautoconso=($Pprod)/1000;
        $Pexc =0;
        $Eexc =0;
     }
    
    //Si conso = la production => Reste de la Conso
    if($Pcalc == 0){
        $Pfinal = 0; 
        $Efinal = 0; 
        $Pautoconso=$Pconso; 
        $Eautoconso=$Pautoconso/1000;
        $Pexc = 0;
        $Eexc = 0;
    }
    //Si conso inférieure à la production => Conso = 0 + Autoconsommation = Conso de base + Excedent.
    if($Pcalc < 0){
        $Pfinal = 0; 
        $Efinal = 0; 
        $Pautoconso=$Pconso;
        $Eautoconso=$Pautoconso/1000;
        $Pexc =($Pcalc*-1);
        $Eexc = $Pexc/1000;
    
    }

    $DBCC[$i][8] = $Econso;
    $DBCC[$i][9] = $Eprod;
    $DBCC[$i][10] = $Pfinal;
    $DBCC[$i][11] = $Efinal;
    $DBCC[$i][12] = $Pautoconso;
    $DBCC[$i][13] = $Eautoconso;
    $DBCC[$i][14] = $Pexc;
    $DBCC[$i][15] = $Eexc;

    $csvac->fputcsv($DBCC[$i], ';');
    $i++;

}

$list0 = $dbco->prepare("SELECT DISTINCT ID_pmo FROM gest_acc_pmo_heures WHERE ID_pmo='$IDpmo'"); 
$list0->execute();
$R0 = $list0->fetch(PDO::FETCH_OBJ);

if(isset($R0->ID_pmo)){
    $del=$dbco->prepare("DELETE FROM `gest_acc_pmo_heures` WHERE ID_pmo='$IDpmo'");
    $del->execute();
}


$i=1;
foreach($DBCC as $DB){


    if(isset($DB[3])){$consocc = $DB[3]; }else{$consocc =0;}
    if(isset($DB[5])){$prodcc = $DB[5]; }else{$prodcc =0;}
    if(isset($DB[6])){$ACIcc = $DB[6]; }else{$ACIcc =0;}
    if(isset($DB[7])){$ACIpr = $DB[7]; }else{$ACIpr =0;}
    

    $Pconso = $consocc+$ACIcc; //puissance a consommer, CC + reste soutirage aci
    $Econso = $Pconso/1000;
    $Pprod = $prodcc+$ACIpr; //production des centrales + excendents des aci
    $Eprod = $Pprod/1000;


$UP3 = $dbco->prepare("INSERT INTO gest_acc_pmo_heures (ID_pmo, jour, heure, base_puissance, base_conso_kwh, soutirage_puissance, soutirage_kwh, prod_puissance, prod_kwh, autoconso_puissance, autoconso_kwh, injection_puissance, injection_kwh) 
VALUES (:ID_pmo, :jour, :heure, :base_puissance, :base_conso_kwh, :soutirage_puissance, :soutirage_kwh, :prod_puissance, :prod_kwh, :autoconso_puissance, :autoconso_kwh, :injection_puissance, :injection_kwh)");
$UP3->bindparam(':ID_pmo',$IDpmo);
$UP3->bindparam(':jour',$DB[1]);
$UP3->bindparam(':heure',$DB[2]);
$UP3->bindparam(':base_puissance',$Pconso);
$UP3->bindparam(':base_conso_kwh',$Econso);
$UP3->bindparam(':soutirage_puissance',$DB[10]);
$UP3->bindparam(':soutirage_kwh',$DB[11]);
$UP3->bindparam(':prod_puissance',$Pprod);
$UP3->bindparam(':prod_kwh',$Eprod);
$UP3->bindparam(':autoconso_puissance',$DB[12]);
$UP3->bindparam(':autoconso_kwh',$DB[13]);
$UP3->bindparam(':injection_puissance',$DB[14]);
$UP3->bindparam(':injection_kwh',$DB[15]);
$UP3->execute();
$i++;
}

$UP6 = $dbco->prepare('UPDATE gest_acc_pmo SET pmo_simul = :pmo_simul WHERE ID_pmo = :ID_pmo');
$UP6->bindvalue('pmo_simul',1);
$UP6->bindvalue('ID_pmo',$IDpmo);
$UP6->execute();


require 'acc_calcul_journalier_ACC.php';
require 'acc_calcul_mois_ACC.php';


header("location:acc_config.php?IDpmo=$IDpmo");

?>