src/Controller/GraphJpgraphController.php line 2617

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Intervention;
  4. use App\Repository\InterventionRepository;
  5. use App\Repository\LieuRepository;
  6. use JpGraph\JpGraph;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Amenadiel\JpGraph\Graph;
  11. use Amenadiel\JpGraph\Plot;
  12. use Amenadiel\JpGraph\Themes;
  13. use App\Entity\Lieu;
  14. use App\Entity\Position;
  15. use App\Entity\Secteur;
  16. use App\Repository\ClientRepository;
  17. use App\Repository\FaclieuRepository;
  18. use App\Repository\FactuRepository;
  19. use App\Repository\InterfaitRepository;
  20. use App\Repository\SecteurposiRepository;
  21. use App\Repository\SecteurRepository;
  22. use App\service\produitService;
  23. use App\service\servicedivers;
  24. use DateTimeImmutable;
  25. use PhpParser\Node\Stmt\Foreach_;
  26. use Symfony\Component\HttpFoundation\Request;
  27. //require_once ('jpgraph/jpgraph.php');
  28. //require_once ('jpgraph/jpgraph_bar.php');
  29. #[Route('/graph'name'graph_')]
  30. class GraphJpgraphController extends AbstractController
  31. {
  32.     #[Route('/inter/{id}/{pdf}'name'inter')]
  33.     public function index(Intervention $intervention,string $pdf,LieuRepository $lieuRepository,InterfaitRepository $interfaitRepository,InterventionRepository $interventionRepository)
  34.     {
  35.         
  36.         $servicedivers= new servicedivers();
  37.         $lieu=$lieuRepository->getlieuid($intervention->getContrat());
  38.         $dateini=date_timestamp_get($intervention->getdate());
  39.         $moiact=date('n',$dateini);
  40.         $inter=$interventionRepository->getInterventionIdcontrat($intervention->getContrat());
  41.         $date=time();
  42.            $d=[];
  43.           //  $d[]=date('d/m/y',time());
  44.             foreach ($inter as $k) {
  45.                 $a=date_timestamp_get($k->getdate());
  46.               //  $d[]=date('d/m/y',$a);
  47.                 if($date>$a){
  48.                     $date=$a;
  49.                 }
  50.             }
  51.            // $d[]=date('d/m/y',$date);
  52.            // $d[]=date('d/m/y',$dateini);
  53.            //
  54.             $moid=date('m',$dateini);
  55.             $and=date('y',$dateini);
  56.            // $d[]=$moid;
  57.           //  $d[]=$and;
  58.             $valdeb=$moid+($and*12);
  59.            // $d[]=$valdeb;
  60.         $moi=date('m',$date);
  61.         $an=date('y',$date);
  62.     //   $d[]=$moi;
  63.       //  $d[]=$an;
  64.             $valfin=$moi+($an*12);
  65.             $moi=($valdeb-$valfin)+1;
  66.             
  67.            // $d[]=$valfin;
  68.            // $d[]=$moi;
  69.           $mod="deux";
  70.             if($moi<=6){
  71.                 $mod="6m";
  72.             }elseif($moi<=12){
  73.                 $mod="an";
  74.             }
  75.            
  76.            // $d[]=$mod;
  77.          //dd($d);
  78. $anact=date('y',$dateini);
  79. $anact++;
  80. $anact--;
  81.          
  82. //$titre="intervention"." ".$numcontre;
  83. $titre="intervention du ".date('d/m/y',date_timestamp_get($intervention->getdate()));
  84. $mois=array("jan","fev","mars","avr","mai",'juin',"juil","aout","sept","oct","nov","dec");
  85. $i=11;
  86. //echo $moiact."  nnn";
  87. $moiact--;
  88. $moisanscol=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  89. $moisanscol6=array(array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0));
  90. $moisanscolpres=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  91. $moisfini=array("","","","","","","","","","","","");
  92. //$d[]=$moiact;
  93. switch ($mod) {
  94.     case "6m":
  95.         while($i>=0){
  96.             //    echo $mois[$moiact]."  nn";
  97.             $moisfini[($i-1)]=$mois[$moiact];
  98.             $a=$moiact+1;
  99.             $moisanscol6[$i]=array($a,$anact,2);
  100.             $moisanscol6[($i-1)]=array($a,$anact,1);
  101.             $moiact--;
  102.             if($moiact==-1){
  103.                 $moiact=11;$anact--;
  104.             }
  105.             $i--;$i--;
  106.         }
  107.         break;
  108.     case "an":
  109. while($i>=0){
  110.     //    echo $mois[$moiact]."  nn";
  111.     $moisfini[$i]=$mois[$moiact];
  112.     $a=$moiact+1;
  113.     $moisanscol[$i]=array($a,$anact);
  114.     $moiact--;
  115.     if($moiact==-1){
  116.         $moiact=11;$anact--;
  117.     }
  118.     $i--;
  119. }
  120.         break;
  121.     default:
  122.         //2 anx
  123. while($i>=0){
  124.     //    echo $mois[$moiact]."  nn";
  125.     $moisfini[$i]=$mois[$moiact];
  126.     $a=$moiact+1;
  127.     $moisanscol[$i]=array($a,$anact);
  128.     $moisanscolpres[$i]=array($a,($anact-1));
  129.     $moiact--;
  130.     if($moiact==-1){
  131.         $moiact=11;$anact--;
  132.     }
  133.     $i--;
  134. }
  135.         break;
  136. }
  137. //$d[]=$moisfini;
  138. //$d[]=$moisanscol;
  139. //$d[]=$moisanscolpres;
  140. //dd($d);
  141. $data1ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  142. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  143. $data1yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  144. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  145. $data1yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  146. $data1ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  147. $data2ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  148. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  149. $data2yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  150. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  151. $data2yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  152. $data2ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  153. $con1=[0,0,0,0,0,0,0,0,0,0,0,0];
  154. $con2=[0,0,0,0,0,0,0,0,0,0,0,0];
  155. $grigno=0;$remi=0;$reste=0;$conso=0;$plushaut=0;$plushautli=0;$diver=0;
  156. $produitser= new produitService();$datr=[];$da=0;
  157. foreach ($inter as $re) {
  158.    // dd($re);$da
  159.     $grigno=0;$remi=0;$reste=0;$chan=0;$conso=0;$diver=0;
  160. $interfa=$interfaitRepository->getinterfait($re->getId());
  161.     $datr[$da]=[];
  162.     $datr[$da]['inter']=$re;
  163.     $datr[$da]['interfait']=$interfa;$dat=[];
  164. foreach ($interfa as $interfai) {
  165. if($interfai->getClientfait()==0){}
  166.     if($interfai->getinter()>=0){
  167.         
  168.    // $dat[]=["grigno"=>$interfai->getGrign(),"remi"=>$interfai->getRemit(),"reste"=>$interfai->getReste(),"chan"=>$interfai->getChan(),"conso"=>$interfai->getConso()];
  169.   
  170.    $grigno=$grigno+$interfai->getGrign();
  171.     $remi=$remi+$interfai->getRemit();
  172.     $reste=$reste+$interfai->getReste();
  173.     $chan=$chan+$interfai->getChan();
  174.     $diver=$diver+$interfai->getConso();
  175. //$interfai->getProduit()
  176.    
  177. $conso=$conso+$produitser->getidvol($interfai->getProduit());
  178.         $dat[]=["consot"=>$conso,"chan"=>$interfai->getChan(),"reste"=>$interfai->getReste(),"remi"=>$interfai->getRemit(),"conso"=>$interfai->getConso(),"prod"=>$interfai->getProduit(),"prod2"=>$produitser->getidvol($interfai->getProduit())];
  179.         }
  180.     } $dateinter=date_timestamp_get($re->getdate());
  181.     $datr[$da]['date']=date('d/m/y',$dateinter);
  182.     $datr[$da]['retour1']=$dat;
  183.     $datr[$da]['retour']=["grigno"=>$grigno,"remi"=>$remi,"reste"=>$reste,"chan"=>$chan,"conso"=>$conso];
  184.         for($i=0$i<=11;$i++){
  185.                    
  186.             switch ($mod) {
  187.                 case "6m":
  188.                     
  189.                    // dd($dateinter);
  190.                     if($moisanscol6[$i][0]==date('m',$dateinter) && $moisanscol6[$i][1]==date('y',$dateinter) ){
  191.                         $day15=0;
  192.                         $d=date('d',$dateinter);
  193.                         //    echo $d." l ";
  194.                         if(1<=$d && $d<=15){
  195.         
  196.                             $day15=1;
  197.                         }elseif(16<=$d && $d<=31){
  198.                             $day15=2;
  199.                         }
  200.                         //    echo $day15." l  ".$re['id']." ffff<br>";
  201.         
  202.                         if($moisanscol6[$i][2]==$day15){
  203.                           
  204.                                 $data1ya[$i]=$reste+$data1ya[$i];
  205.                                 $data1yb[$i]=$grigno+$data1yb[$i];
  206.                                 $data1yc[$i]=$remi+$data1yc[$i];
  207.                          
  208.                                 $data1yd[$i]=$chan+$data1yd[$i];
  209.                                 $data1ye[$i]=$diver+$data1ye[$i];
  210.                                 
  211.         //echo $con1[$i];
  212.                             $con1[$i]=$con1[$i]+$conso;
  213.                         //    echo " + ".$conso." = ".$con1[$i]." - ".$i."<br>";
  214.                                 }
  215.                     }
  216.                             
  217.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  218.                     if($plushaut<=$a){
  219.                         $plushaut=$a;}
  220.                     if($plushautli<=$con1[$i]){
  221.                         $plushautli=$con1[$i];}
  222.                     break;
  223.                 case "an":
  224.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  225.                         
  226.                         $data1ya[$i]=$reste+$data1ya[$i];
  227.                         $data1yb[$i]=$grigno+$data1yb[$i];
  228.                         $data1yc[$i]=$remi+$data1yc[$i];
  229.                         
  230.                         $data1yd[$i]=$chan+$data1yd[$i];
  231.                         $data1ye[$i]=$diver+$data1ye[$i];
  232.                         
  233.         
  234.                         $con1[$i]=$con1[$i]+$conso;
  235.                     }
  236.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  237.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  238.                     if($plushaut<=$a){
  239.                         $plushaut=$a;}
  240.                     if($plushautli<=$con1[$i]){
  241.                         $plushautli=$con1[$i];}
  242.                     break;
  243.                 default:
  244.                     //2 anx
  245.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  246.                         
  247.                             $data1ya[$i]=$reste+$data1ya[$i];
  248.                             $data1yb[$i]=$grigno+$data1yb[$i];
  249.                             $data1yc[$i]=$remi+$data1yc[$i];
  250.                         
  251.                             $data1yd[$i]=$chan+$data1yd[$i];
  252.                             $data1ye[$i]=$diver+$data1ye[$i];
  253.                         
  254.                         $con1[$i]=$con1[$i]+$conso;
  255.         
  256.                     }
  257.                     if($moisanscolpres[$i][0]==date('m',$dateinter) && $moisanscolpres[$i][1]==date('y',$dateinter) ){
  258.                         
  259.                             $data2ya[$i]=$reste+$data2ya[$i];
  260.                             $data2yb[$i]=$grigno+$data2yb[$i];
  261.                             $data2yc[$i]=$remi+$data2yc[$i];
  262.                         
  263.                             $data2yd[$i]=$chan+$data2yd[$i];
  264.                             $data2ye[$i]=$diver+$data2ye[$i];
  265.                         
  266.                             $con2[$i]=$con2[$i]+$conso;
  267.                     }
  268.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  269.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  270.                     if($plushaut<=$a){
  271.                         $plushaut=$a;}
  272.                     $a=$data2ya[$i]+$data2yb[$i]+$data2yc[$i]+$data2yd[$i]+$data2ye[$i];
  273.                     if($plushaut<=$a){
  274.                         $plushaut=$a;}
  275.                 if($plushautli<=$con1[$i]){
  276.                         $plushautli=$con1[$i];}
  277.                     if($plushautli<=$con2[$i]){
  278.                         $plushautli=$con2[$i];}
  279.                     break;
  280.             }
  281.         
  282.         
  283.         //    echo $con1[$i]." h ".$con2[$i]." l ".$plushautli." id ".$re['id']."<br>";
  284.         }
  285.         $da++;
  286. }
  287. $datr[]=[$data1ya,$data1yb,$data1yc,$data1yd,$con1];
  288. $datr[]=[$data2ya,$data2yb,$data2yc,$data2yd,$con2];
  289. //dd($datr);
  290. $plushautli=$plushautli+100;
  291. $aacol=$servicedivers->grahi($plushautli);
  292. $ak=$aacol*6;
  293. //echo $aacol." b ";
  294. //    echo $aacol2." ".$aava." <br>";
  295. //echo $aacol."<br>".$aacol2;
  296. $a3=array(0,0,0,0,0,0,0,0);
  297. for($i=1;$i<=6;$i++){
  298.     $a3[$i]=$aacol*$i;
  299. }
  300. $v=$plushaut/3;//valeur max
  301. if($v>=1){
  302. $vm=$plushautli/$v;//valeur divition
  303. $con1[0]=$con1[0]/$vm;
  304. $con1[1]=$con1[1]/$vm;
  305. $con1[2]=$con1[2]/$vm;
  306. $con1[3]=$con1[3]/$vm;
  307. $con1[4]=$con1[4]/$vm;
  308. $con1[5]=$con1[5]/$vm;
  309. $con1[6]=$con1[6]/$vm;
  310. $con1[7]=$con1[7]/$vm;
  311. $con1[8]=$con1[8]/$vm;
  312. $con1[9]=$con1[9]/$vm;
  313. $con1[10]=$con1[10]/$vm;
  314. $con1[11]=$con1[11]/$vm;
  315. $con2[0]=$con2[0]/$vm;
  316. $con2[1]=$con2[1]/$vm;
  317. $con2[2]=$con2[2]/$vm;
  318. $con2[3]=$con2[3]/$vm;
  319. $con2[4]=$con2[4]/$vm;
  320. $con2[5]=$con2[5]/$vm;
  321. $con2[6]=$con2[6]/$vm;
  322. $con2[7]=$con2[7]/$vm;
  323. $con2[8]=$con2[8]/$vm;
  324. $con2[9]=$con2[9]/$vm;
  325. $con2[10]=$con2[10]/$vm;
  326. $con2[11]=$con2[11]/$vm;}
  327. $plushaut=$plushaut+100;
  328. $aacol=$servicedivers->grahi($plushaut);
  329. $aacol2=$aacol/2;
  330. //    echo $aacol2." ".$aava." <br>";
  331. //echo $aacol."<br>".$aacol2;
  332. $a1=array(0,0,0,0,0,0,0,0);
  333. $a2=array($aacol2,0,0,0,0,0,0);
  334. for($i=1;$i<=6;$i++){
  335.     $a1[$i]=$aacol*$i;
  336.     $a2[$i]=$aacol2+($aacol*($i-1));
  337. }
  338. /*
  339. switch ($mod) {
  340.     case "6m":
  341.     case "an":
  342.          $con1=$servicedivers->aligngraph($con1);
  343.         $b1plota = new Plot\BarPlot($data1ya);
  344.         $b1plotb = new Plot\BarPlot($data1yb);
  345.         $b1plotc = new Plot\BarPlot($data1yc);
  346.         $b1plotd = new Plot\BarPlot($data1yd);
  347.         $b1plot = new Plot\AccBarPlot(array($b1plotc,$b1plotd,$b1plotb,$b1plota));
  348.         //$gbplot = new GroupBarPlot($b1plot);
  349.         $lplot1 = new Plot\LinePlot($con1);
  350.         $graph->Add($b1plot);
  351.         $graph->AddY2($lplot1);
  352.         break;
  353.     default:
  354.         $con2=$servicedivers->aligngraph($con2);
  355.         $con1=$servicedivers->aligngraph($con1);
  356.         $b1plota = new Plot\BarPlot($data1ya);
  357.         $b1plotb = new Plot\BarPlot($data1yb);
  358.         $b1plotc = new Plot\BarPlot($data1yc);
  359.         $b1plotd = new Plot\BarPlot($data1yd);
  360.         $b2plota = new Plot\BarPlot($data2ya);
  361.         $b2plotb = new Plot\BarPlot($data2yb);
  362.         $b2plotc = new Plot\BarPlot($data2yc);
  363.         $b2plotd = new Plot\BarPlot($data2yd);
  364.         $b1plot = new Plot\AccBarPlot(array($b1plotc,$b1plotd,$b1plotb,$b1plota));
  365.         $b2plot = new Plot\AccBarPlot(array($b2plotc,$b2plotd,$b2plotb,$b2plota));
  366.         $gbplot = new Plot\GroupBarPlot(array($b1plot,$b2plot));
  367.         $lplot1 = new Plot\LinePlot($con1);
  368.         $lplot2 = new Plot\LinePlot($con2);
  369.         $graph->Add($gbplot);
  370.         $graph->AddY2($lplot1);
  371.         $graph->AddY2($lplot2);
  372.         break;
  373. }
  374. */
  375. //dd($data1ya);
  376. // Create the graph.
  377. $graph    = new Graph\Graph(700350);
  378. $graph->SetScale('textlin');
  379. $graph->SetMarginColor('white');
  380. $graph->yaxis->SetTickPositions($a1,$a2);
  381. //$graph->y2axis->SetTickPositions($a3);
  382. $graph->SetBox(false);
  383. // Setup title
  384. $graph->title->Set($titre);
  385. // Create the first bar
  386. switch ($mod) {
  387.        default:
  388.        $bplotb = new Plot\BarPlot($data2ya);
  389.        $bplotb->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  390.        $bplotb->SetColor("#239B56");
  391.        $bplotb->SetLegend("asia");
  392.        
  393.        // Create the second bar
  394.        $bplot2b = new Plot\BarPlot($data2yb);
  395.        $bplot2b->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  396.        $bplot2b->SetColor("#C0392B");
  397.        $bplot2b->SetLegend("euro ");
  398.        $bplot3b = new Plot\BarPlot($data2yc);
  399.        $bplot3b->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  400.        $bplot3b->SetColor("#2874A6");
  401.        $bplot3b->SetLegend("mouche");
  402.        $bplot4b = new Plot\BarPlot($data2yd);
  403.        $bplot4b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  404.        $bplot4b->SetColor("#717D7E");/**/
  405.        $bplot4b->SetLegend("papillon");
  406.        $bplot5b = new Plot\BarPlot($data2ye);
  407.        $bplot5b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  408.        $bplot5b->SetColor("#717D7E");/**/
  409.        $bplot5b->SetLegend("orien");
  410.        
  411.        
  412.        
  413.        // And join them in an accumulated bar
  414.        
  415.        // And join them in an accumulated bar
  416.        $p2 = new Plot\LinePlot($con2);
  417.        $p2->mark->SetType(MARK_FILLEDCIRCLE);
  418.        $p2->mark->SetFillColor('green');
  419.        $p2->mark->SetWidth(4);
  420.        $p2->SetColor('yellow');
  421.        $p2->SetCenter();
  422.        $p2->SetLegend("prod");
  423.        $bplot = new Plot\BarPlot($data1ya);
  424.        $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  425.        $bplot->SetColor("#239B56");
  426.        $bplot->SetLegend("asia ");
  427.        // Create the second bar
  428.        $bplot2 = new Plot\BarPlot($data1yb);
  429.        $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  430.        $bplot2->SetColor("#C0392B");
  431.        $bplot2->SetLegend("euro");
  432.        $bplot3 = new Plot\BarPlot($data1yc);
  433.        $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  434.        $bplot3->SetColor("#2874A6");
  435.        $bplot3->SetLegend("mouche");
  436.        $bplot4 = new Plot\BarPlot($data1yd);
  437.        $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  438.        $bplot4->SetColor("#717D7E");
  439.        $bplot4->SetLegend("papillon");/**/
  440.        $bplot5 = new Plot\BarPlot($data1ye);
  441.        $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  442.        $bplot5->SetColor("#717D7E");
  443.        $bplot5->SetLegend("orien");/**/
  444.        
  445.        $p1 = new Plot\LinePlot($con1);
  446.        $p1->mark->SetType(MARK_FILLEDCIRCLE);
  447.        $p1->mark->SetFillColor('blue');
  448.        $p1->mark->SetWidth(4);
  449.        $p1->SetColor('blue');
  450.        $p1->SetCenter();
  451.        $p1->SetLegend("prod");;
  452.     
  453.        
  454. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  455. $accbplotb = new Plot\AccBarPlot([ $bplot5b,$bplot4b,$bplot3b,$bplot2b,$bplotb]);
  456. $bar = new plot\GroupBarPlot(array($accbplot,$accbplotb));
  457. //$graph->Add($accbplot);
  458. $graph->Add($bar);
  459. $graph->Add($p1);
  460. $graph->Add($p2);
  461. break;
  462.     case "6m":
  463.         case "an":
  464.             $bplot = new Plot\BarPlot($data1ya);
  465.             $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  466.             $bplot->SetColor("#239B56");
  467.             $bplot->SetLegend("asia ");
  468.             // Create the second bar
  469.             $bplot2 = new Plot\BarPlot($data1yb);
  470.             $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  471.             $bplot2->SetColor("#C0392B");
  472.             $bplot2->SetLegend("euro");
  473.             $bplot3 = new Plot\BarPlot($data1yc);
  474.             $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  475.             $bplot3->SetColor("#2874A6");
  476.             $bplot3->SetLegend("mouche");
  477.             $bplot4 = new Plot\BarPlot($data1yd);
  478.             $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  479.             $bplot4->SetColor("#717D7E");
  480.             $bplot4->SetLegend("papillon");/**/
  481.             $bplot5 = new Plot\BarPlot($data1ye);
  482.             $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  483.             $bplot5->SetColor("#717D7E");
  484.             $bplot5->SetLegend("orien");/**/
  485.             
  486.             $p1 = new Plot\LinePlot($con1);
  487.             $p1->mark->SetType(MARK_FILLEDCIRCLE);
  488.             $p1->mark->SetFillColor('blue');
  489.             $p1->mark->SetWidth(4);
  490.             $p1->SetColor('blue');
  491.             $p1->SetCenter();
  492.             $p1->SetLegend("prod");;
  493. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  494. $graph->Add($accbplot);
  495. $graph->Add($p1);
  496. break;
  497.         }
  498. //dd($con1);
  499. $graph->SetMargin(40,20,46,80);
  500. $graph->xaxis->SetTickLabels($moisfini);
  501. if($pdf=="oui"){
  502.     switch ($mod) {
  503.         case "6m":
  504.             $fichiergrah=$this->getParameter('grapph_directory').$intervention->getId().uniqid()."grapmois.png";
  505.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$intervention->getId().uniqid()."grapmois.png";
  506.             break;
  507.         case "an":
  508.             $fichiergrah=$this->getParameter('grapph_directory').$intervention->getId().uniqid()."grapan.png";
  509.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$intervention->getId().uniqid()."grapan.png";
  510.             break;
  511.         default:
  512.             $fichiergrah=$this->getParameter('grapph_directory').$intervention->getId().uniqid()."grap2an.png";
  513.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$intervention->getId().uniqid()."grap2an.png";
  514.             break;
  515.     }
  516.     if(file_exists($fichiergrah)){
  517.         unlink($fichiergrah) ;
  518.     }
  519.     $graph->Stroke($fichiergrah);
  520.   //  dd($fichiergrah);
  521. return $fichiergrah;
  522.     }else{
  523.     $graph->Stroke();
  524.     }
  525. //$graph->Stroke();
  526.       /*  return $this->render('graph_jpgraph/index.html.twig', [
  527.             'controller_name' => 'GraphJpgraphController',
  528.         ]);*/
  529.     }
  530.     #[Route('/secteur/{id}/{ids}/{pdf}'name'secteur')]
  531.     public function secteur(Secteur $secteur,
  532.     string $ids,
  533.     string $pdf,
  534.     LieuRepository $lieuRepository,
  535.     InterfaitRepository $interfaitRepository,
  536.     InterventionRepository $interventionRepository,
  537.     SecteurposiRepository $secteurposiRepository,
  538.     )
  539.     {
  540.         
  541.         $intervention=$interventionRepository->find($ids);   
  542.         $servicedivers= new servicedivers();
  543.         $lieu=$lieuRepository->getlieuid($intervention->getContrat());
  544.         $dateini=date_timestamp_get($intervention->getdate());
  545.         $moiact=date('n',$dateini);
  546.         $inter=$interventionRepository->getInterventionIdcontrat($intervention->getContrat());
  547.         $date=time();
  548.            $d=[];
  549.           //  $d[]=date('d/m/y',time());
  550.             foreach ($inter as $k) {
  551.                 $a=date_timestamp_get($k->getdate());
  552.               //  $d[]=date('d/m/y',$a);
  553.                 if($date>$a){
  554.                     $date=$a;
  555.                 }
  556.             }
  557.            // $d[]=date('d/m/y',$date);
  558.            // $d[]=date('d/m/y',$dateini);
  559.            //
  560.             $moid=date('m',$dateini);
  561.             $and=date('y',$dateini);
  562.            // $d[]=$moid;
  563.           //  $d[]=$and;
  564.             $valdeb=$moid+($and*12);
  565.            // $d[]=$valdeb;
  566.         $moi=date('m',$date);
  567.         $an=date('y',$date);
  568.     //   $d[]=$moi;
  569.       //  $d[]=$an;
  570.             $valfin=$moi+($an*12);
  571.             $moi=($valdeb-$valfin)+1;
  572.             
  573.            // $d[]=$valfin;
  574.            // $d[]=$moi;
  575.           $mod="deux";
  576.             if($moi<=6){
  577.                 $mod="6m";
  578.             }elseif($moi<=12){
  579.                 $mod="an";
  580.             }
  581.            // $d[]=$mod;
  582.         // dd($d);
  583. $anact=date('y',$dateini);
  584. $anact++;
  585. $anact--;
  586.          
  587. //$titre="intervention"." ".$numcontre;
  588. $titre="secteur ".$secteur->getSecteur()." : intervention du ".date('d/m/y',date_timestamp_get($intervention->getdate()));
  589. $mois=array("jan","fev","mars","avr","mai",'juin',"juil","aout","sept","oct","nov","dec");
  590. $i=11;
  591. //echo $moiact."  nnn";
  592. $moiact--;
  593. $moisanscol=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  594. $moisanscol6=array(array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0));
  595. $moisanscolpres=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  596. $moisfini=array("","","","","","","","","","","","");
  597. //$d[]=$moiact;
  598. switch ($mod) {
  599.     case "6m":
  600.         while($i>=0){
  601.             //    echo $mois[$moiact]."  nn";
  602.             $moisfini[($i-1)]=$mois[$moiact];
  603.             $a=$moiact+1;
  604.             $moisanscol6[$i]=array($a,$anact,2);
  605.             $moisanscol6[($i-1)]=array($a,$anact,1);
  606.             $moiact--;
  607.             if($moiact==-1){
  608.                 $moiact=11;$anact--;
  609.             }
  610.             $i--;$i--;
  611.         }
  612.         break;
  613.     case "an":
  614. while($i>=0){
  615.     //    echo $mois[$moiact]."  nn";
  616.     $moisfini[$i]=$mois[$moiact];
  617.     $a=$moiact+1;
  618.     $moisanscol[$i]=array($a,$anact);
  619.     $moiact--;
  620.     if($moiact==-1){
  621.         $moiact=11;$anact--;
  622.     }
  623.     $i--;
  624. }
  625.         break;
  626.     default:
  627.         //2 anx
  628. while($i>=0){
  629.     //    echo $mois[$moiact]."  nn";
  630.     $moisfini[$i]=$mois[$moiact];
  631.     $a=$moiact+1;
  632.     $moisanscol[$i]=array($a,$anact);
  633.     $moisanscolpres[$i]=array($a,($anact-1));
  634.     $moiact--;
  635.     if($moiact==-1){
  636.         $moiact=11;$anact--;
  637.     }
  638.     $i--;
  639. }
  640.         break;
  641. }
  642. //$d[]=$moisfini;
  643. //$d[]=$moisanscol;
  644. //dd($d);
  645. $data1ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  646. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  647. $data1yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  648. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  649. $data1yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  650. $data1ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  651. $data2ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  652. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  653. $data2yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  654. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  655. $data2yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  656. $data2ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  657. $con1=[0,0,0,0,0,0,0,0,0,0,0,0];
  658. $con2=[0,0,0,0,0,0,0,0,0,0,0,0];
  659. $grigno=0;$remi=0;$reste=0;$conso=0;$plushaut=0;$plushautli=0;$divers=0;
  660. $produitser= new produitService();$datr=[];$da=0;
  661. foreach ($inter as $re) {
  662.    // dd($re);$da
  663.     $grigno=0;$remi=0;$reste=0;$chan=0;$conso=0;$divers=0;
  664. $interfa=$interfaitRepository->getinterfait($re->getId());
  665.     $datr[$da]=[];
  666.     $datr[$da]['inter']=$re;
  667.     $datr[$da]['interfait']=$interfa;
  668. foreach ($interfa as $interfai) {
  669.     if ($secteurposiRepository->valPosiSecteur($interfai->getPosi(),$secteur->getId())) {
  670. if($interfai->getClientfait()==0){}
  671.     if($interfai->getinter()>=0){
  672.   
  673.             $prod =$interfai->getProduit();
  674.         
  675.     $grigno=$grigno+$interfai->getGrign();
  676.     $remi=$remi+$interfai->getRemit();
  677.     $reste=$reste+$interfai->getReste();
  678.      
  679.     $chan=$chan+$interfai->getChan();
  680.     $divers=$divers+$interfai->getConso();    
  681.     $conso=$conso+$produitser->getidvol($interfai->getProduit());
  682.         }
  683.     }
  684.     } $dateinter=date_timestamp_get($re->getdate());
  685.     $datr[$da]['date']=date('d/m/y',$dateinter);
  686.         for($i=0$i<=11;$i++){
  687.                    
  688.             switch ($mod) {
  689.                 case "6m":
  690.                     
  691.                    // dd($dateinter);
  692.                     if($moisanscol6[$i][0]==date('m',$dateinter) && $moisanscol6[$i][1]==date('y',$dateinter) ){
  693.                         $day15=0;
  694.                         $d=date('d',$dateinter);
  695.                         //    echo $d." l ";
  696.                         if(1<=$d && $d<=15){
  697.         
  698.                             $day15=1;
  699.                         }elseif(16<=$d && $d<=31){
  700.                             $day15=2;
  701.                         }
  702.                         //    echo $day15." l  ".$re['id']." ffff<br>";
  703.         
  704.                         if($moisanscol6[$i][2]==$day15){
  705.                        
  706.                                 $data1ya[$i]=$reste+$data1ya[$i];
  707.                                 $data1yb[$i]=$grigno+$data1yb[$i];
  708.                                 $data1yc[$i]=$remi+$data1yc[$i];
  709.                            
  710.                                 $data1yd[$i]=$chan+$data1yd[$i];
  711.                                 $data1ye[$i]=$divers+$data1ye[$i];
  712.                             
  713.         //echo $con1[$i];
  714.                             $con1[$i]=$con1[$i]+$conso;
  715.                         //    echo " + ".$conso." = ".$con1[$i]." - ".$i."<br>";
  716.                                 }
  717.                     }
  718.                             
  719.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  720.                     if($plushaut<=$a){
  721.                         $plushaut=$a;}
  722.                     if($plushautli<=$con1[$i]){
  723.                         $plushautli=$con1[$i];}
  724.                     break;
  725.                 case "an":
  726.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  727.                         
  728.                         $data1ya[$i]=$reste+$data1ya[$i];
  729.                         $data1yb[$i]=$grigno+$data1yb[$i];
  730.                         $data1yc[$i]=$remi+$data1yc[$i];
  731.                         
  732.                         $data1yd[$i]=$chan+$data1yd[$i];
  733.                         $data1ye[$i]=$divers+$data1ye[$i];
  734.                         
  735.         
  736.                         $con1[$i]=$con1[$i]+$conso;
  737.                     }
  738.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  739.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  740.                     if($plushaut<=$a){
  741.                         $plushaut=$a;}
  742.                     
  743.                     if($plushautli<=$con1[$i]){
  744.                         $plushautli=$con1[$i];}
  745.                     break;
  746.                 default:
  747.                     //2 anx
  748.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  749.                         
  750.                             $data1ya[$i]=$reste+$data1ya[$i];
  751.                             $data1yb[$i]=$grigno+$data1yb[$i];
  752.                             $data1yc[$i]=$remi+$data1yc[$i];
  753.                         
  754.                             $data1yd[$i]=$chan+$data1yd[$i];
  755.                             $data1ye[$i]=$divers+$data1ye[$i];
  756.                         
  757.                         $con1[$i]=$con1[$i]+$conso;
  758.         
  759.                     }
  760.                     if($moisanscolpres[$i][0]==date('m',$dateinter) && $moisanscolpres[$i][1]==date('y',$dateinter) ){
  761.                         
  762.                             $data2ya[$i]=$reste+$data2ya[$i];
  763.                             $data2yb[$i]=$grigno+$data2yb[$i];
  764.                             $data2yc[$i]=$remi+$data2yc[$i];
  765.                        
  766.                             $data2yd[$i]=$chan+$data2yd[$i];
  767.                             $data2ye[$i]=$divers+$data2ye[$i];
  768.                         
  769.                             $con2[$i]=$con2[$i]+$conso;
  770.                     }
  771.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  772.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  773.                     if($plushaut<=$a){
  774.                         $plushaut=$a;}
  775.                     $a=$data2ya[$i]+$data2yb[$i]+$data2yc[$i]+$data2yd[$i]+$data2ye[$i];
  776.                     if($plushaut<=$a){
  777.                         $plushaut=$a;}
  778.                     
  779.                     if($plushautli<=$con1[$i]){
  780.                         $plushautli=$con1[$i];}
  781.                     if($plushautli<=$con2[$i]){
  782.                         $plushautli=$con2[$i];}
  783.                     break;
  784.             }
  785.         
  786.         
  787.         //    echo $con1[$i]." h ".$con2[$i]." l ".$plushautli." id ".$re['id']."<br>";
  788.         }
  789.         $da++;
  790. }
  791. $v=$plushaut/3;//valeur max
  792. if($v>=1){
  793. $vm=$plushautli/$v;//valeur divition
  794. $con1[0]=$con1[0]/$vm;
  795. $con1[1]=$con1[1]/$vm;
  796. $con1[2]=$con1[2]/$vm;
  797. $con1[3]=$con1[3]/$vm;
  798. $con1[4]=$con1[4]/$vm;
  799. $con1[5]=$con1[5]/$vm;
  800. $con1[6]=$con1[6]/$vm;
  801. $con1[7]=$con1[7]/$vm;
  802. $con1[8]=$con1[8]/$vm;
  803. $con1[9]=$con1[9]/$vm;
  804. $con1[10]=$con1[10]/$vm;
  805. $con1[11]=$con1[11]/$vm;
  806. $con2[0]=$con2[0]/$vm;
  807. $con2[1]=$con2[1]/$vm;
  808. $con2[2]=$con2[2]/$vm;
  809. $con2[3]=$con2[3]/$vm;
  810. $con2[4]=$con2[4]/$vm;
  811. $con2[5]=$con2[5]/$vm;
  812. $con2[6]=$con2[6]/$vm;
  813. $con2[7]=$con2[7]/$vm;
  814. $con2[8]=$con2[8]/$vm;
  815. $con2[9]=$con2[9]/$vm;
  816. $con2[10]=$con2[10]/$vm;
  817. $con2[11]=$con2[11]/$vm;}
  818. //dd($datr);
  819. $plushautli=$plushautli+100;
  820. $aacol=$servicedivers->grahi($plushautli);
  821. $ak=$aacol*6;
  822. //echo $aacol." b ";
  823. //    echo $aacol2." ".$aava." <br>";
  824. //echo $aacol."<br>".$aacol2;
  825. $a3=array(0,0,0,0,0,0,0,0);
  826. for($i=1;$i<=6;$i++){
  827.     $a3[$i]=$aacol*$i;
  828. }
  829. $plushaut=$plushaut+100;
  830. $aacol=$servicedivers->grahi($plushaut);
  831. $aacol2=$aacol/2;
  832. //    echo $aacol2." ".$aava." <br>";
  833. //echo $aacol."<br>".$aacol2;
  834. $a1=array(0,0,0,0,0,0,0,0);
  835. $a2=array($aacol2,0,0,0,0,0,0);
  836. for($i=1;$i<=6;$i++){
  837.     $a1[$i]=$aacol*$i;
  838.     $a2[$i]=$aacol2+($aacol*($i-1));
  839. }
  840. $datay1 = [138197176];
  841. $datay2 = [4527525];
  842. //dd($data1ya);
  843. // Create the graph.
  844. $graph    = new Graph\Graph(700350);
  845. $graph->SetScale('textlin');
  846. $graph->SetMarginColor('white');
  847. $graph->yaxis->SetTickPositions($a1,$a2);
  848. //$graph->y2axis->SetTickPositions($a3);
  849. $graph->SetBox(false);
  850. // Setup title
  851. $graph->title->Set($titre);
  852. // Create the first bar
  853. switch ($mod) {
  854.        default:
  855.      
  856. $bplotb = new Plot\BarPlot($data2ya);
  857. $bplotb->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  858. $bplotb->SetColor("#239B56");
  859. $bplotb->SetLegend("asia");
  860. // Create the second bar
  861. $bplot2b = new Plot\BarPlot($data2yb);
  862. $bplot2b->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  863. $bplot2b->SetColor("#C0392B");
  864. $bplot2b->SetLegend("euro ");
  865. $bplot3b = new Plot\BarPlot($data2yc);
  866. $bplot3b->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  867. $bplot3b->SetColor("#2874A6");
  868. $bplot3b->SetLegend("mouche");
  869. $bplot4b = new Plot\BarPlot($data2yd);
  870. $bplot4b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  871. $bplot4b->SetColor("#717D7E");/**/
  872. $bplot4b->SetLegend("papillon");
  873. $bplot5b = new Plot\BarPlot($data2ye);
  874. $bplot5b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  875. $bplot5b->SetColor("#717D7E");/**/
  876. $bplot5b->SetLegend("orien");
  877. // And join them in an accumulated bar
  878. // And join them in an accumulated bar
  879. $p2 = new Plot\LinePlot($con2);
  880. $p2->mark->SetType(MARK_FILLEDCIRCLE);
  881. $p2->mark->SetFillColor('green');
  882. $p2->mark->SetWidth(4);
  883. $p2->SetColor('yellow');
  884. $p2->SetCenter();
  885. $p2->SetLegend("prod");
  886. $bplot = new Plot\BarPlot($data1ya);
  887. $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  888. $bplot->SetColor("#239B56");
  889. $bplot->SetLegend("asia ");
  890. // Create the second bar
  891. $bplot2 = new Plot\BarPlot($data1yb);
  892. $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  893. $bplot2->SetColor("#C0392B");
  894. $bplot2->SetLegend("euro");
  895. $bplot3 = new Plot\BarPlot($data1yc);
  896. $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  897. $bplot3->SetColor("#2874A6");
  898. $bplot3->SetLegend("mouche");
  899. $bplot4 = new Plot\BarPlot($data1yd);
  900. $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  901. $bplot4->SetColor("#717D7E");
  902. $bplot4->SetLegend("papillon");/**/
  903. $bplot5 = new Plot\BarPlot($data1ye);
  904. $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  905. $bplot5->SetColor("#717D7E");
  906. $bplot5->SetLegend("orien");/**/
  907. $p1 = new Plot\LinePlot($con1);
  908. $p1->mark->SetType(MARK_FILLEDCIRCLE);
  909. $p1->mark->SetFillColor('blue');
  910. $p1->mark->SetWidth(4);
  911. $p1->SetColor('blue');
  912. $p1->SetCenter();
  913. $p1->SetLegend("prod");;
  914. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  915. $accbplotb = new Plot\AccBarPlot([$bplot5b$bplot4b,$bplot3b,$bplot2b,$bplotb]);
  916. //$graph->Add($accbplot);
  917. //$graph->Add($accbplotb);
  918. $bar = new plot\GroupBarPlot(array($accbplot,$accbplotb));
  919. //$graph->Add($accbplot);
  920. $graph->Add($bar);
  921. $graph->Add($p1);
  922. $graph->Add($p2);
  923. break;
  924.     case "6m":
  925.         case "an":
  926.             $bplot = new Plot\BarPlot($data1ya);
  927.        $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  928.        $bplot->SetColor("#239B56");
  929.        $bplot->SetLegend("asia ");
  930.        // Create the second bar
  931.        $bplot2 = new Plot\BarPlot($data1yb);
  932.        $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  933.        $bplot2->SetColor("#C0392B");
  934.        $bplot2->SetLegend("euro");
  935.        $bplot3 = new Plot\BarPlot($data1yc);
  936.        $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  937.        $bplot3->SetColor("#2874A6");
  938.        $bplot3->SetLegend("mouche");
  939.        $bplot4 = new Plot\BarPlot($data1yd);
  940.        $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  941.        $bplot4->SetColor("#717D7E");
  942.        $bplot4->SetLegend("papillon");/**/
  943.        $bplot5 = new Plot\BarPlot($data1ye);
  944.        $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  945.        $bplot5->SetColor("#717D7E");
  946.        $bplot5->SetLegend("orien");/**/
  947.        
  948.        $p1 = new Plot\LinePlot($con1);
  949.        $p1->mark->SetType(MARK_FILLEDCIRCLE);
  950.        $p1->mark->SetFillColor('blue');
  951.        $p1->mark->SetWidth(4);
  952.        $p1->SetColor('blue');
  953.        $p1->SetCenter();
  954.        $p1->SetLegend("prod");;
  955. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  956. $graph->Add($accbplot);
  957. $graph->Add($p1);
  958. break;
  959.         }
  960. //dd($con1);
  961. $graph->SetMargin(40,20,46,80);
  962. $graph->xaxis->SetTickLabels($moisfini);
  963. if($pdf=="oui"){
  964.     switch ($mod) {
  965.         case "6m":
  966.             $fichiergrah=$this->getParameter('grapph_directory')."secteur".$secteur->getId()."-".$intervention->getId().uniqid()."grapmois.png";
  967.             $fichiergrah2=$this->getParameter('grapph_directory_dos')."secteur".$secteur->getId()."-".$intervention->getId().uniqid()."grapmois.png";
  968.             break;
  969.         case "an":
  970.             $fichiergrah=$this->getParameter('grapph_directory')."secteur".$secteur->getId()."-".$intervention->getId().uniqid()."grapan.png";
  971.             $fichiergrah2=$this->getParameter('grapph_directory_dos')."secteur".$secteur->getId()."-".$intervention->getId().uniqid()."grapan.png";
  972.             break;
  973.         default:
  974.             $fichiergrah=$this->getParameter('grapph_directory')."secteur".$secteur->getId()."-".$intervention->getId().uniqid()."grap2an.png";
  975.             $fichiergrah2=$this->getParameter('grapph_directory_dos')."secteur".$secteur->getId()."-".$intervention->getId().uniqid()."grap2an.png";
  976.             break;
  977.     }
  978.     if(file_exists($fichiergrah)){
  979.         unlink($fichiergrah) ;
  980.     }
  981.     $graph->Stroke($fichiergrah);
  982. return $fichiergrah2;
  983.     }else{
  984.     $graph->Stroke();
  985.     }
  986. //$graph->Stroke();
  987.       /*  return $this->render('graph_jpgraph/index.html.twig', [
  988.             'controller_name' => 'GraphJpgraphController',
  989.         ]);*/
  990.     }
  991.     #[Route('/posi/{id}/{ids}/{pdf}'name'posi')]
  992.     public function posi(Position $position,
  993.     string $ids,
  994.     string $pdf,Request $request,
  995.     LieuRepository $lieuRepository,
  996.     InterfaitRepository $interfaitRepository,
  997.     InterventionRepository $interventionRepository,
  998.     SecteurposiRepository $secteurposiRepository,
  999.     )
  1000.     {
  1001.         
  1002.         $posi1 $request->query->getInt('posi1',0);
  1003.         $posi2 $request->query->getInt('posi2',0);
  1004.         $posi3 $request->query->getInt('posi3',0);
  1005.         $posi4 $request->query->getInt('posi4',0);
  1006.         $posi5 $request->query->getInt('posi5',0);
  1007.         $posi6 $request->query->getInt('posi6',0);
  1008.         $posi7 $request->query->getInt('posi7',0);
  1009.         $posi8 $request->query->getInt('posi8',0);
  1010.         $posi9 $request->query->getInt('posi9',0);
  1011.         $posi10 $request->query->getInt('posi10',0);
  1012.         $posi11 $request->query->getInt('posi11',0);
  1013.         $posi12 $request->query->getInt('posi12',0);
  1014.         $posi13 $request->query->getInt('posi13',0);
  1015.         $posi14 $request->query->getInt('posi14',0);
  1016.         $posi15 $request->query->getInt('posi15',0);
  1017.         $posi16 $request->query->getInt('posi16',0);
  1018.         $posi17 $request->query->getInt('posi17',0);
  1019.         $posi18 $request->query->getInt('posi18',0);
  1020.         $posi19 $request->query->getInt('posi19',0);
  1021.         $posi=array();
  1022.         $posi[]=$position->getId();
  1023.         if($posi1!=0){$posi[]=$posi1;}
  1024.         if($posi2!=0){$posi[]=$posi2;}
  1025.         if($posi3!=0){$posi[]=$posi3;}
  1026.         if($posi4!=0){$posi[]=$posi4;}
  1027.         if($posi5!=0){$posi[]=$posi5;}
  1028.         if($posi6!=0){$posi[]=$posi6;}
  1029.         if($posi7!=0){$posi[]=$posi7;}
  1030.         if($posi8!=0){$posi[]=$posi8;}
  1031.         if($posi9!=0){$posi[]=$posi9;}
  1032.         if($posi10!=0){$posi[]=$posi10;}
  1033.         if($posi11!=0){$posi[]=$posi11;}
  1034.         if($posi12!=0){$posi[]=$posi12;}
  1035.         if($posi13!=0){$posi[]=$posi13;}
  1036.         if($posi14!=0){$posi[]=$posi14;}
  1037.         if($posi15!=0){$posi[]=$posi15;}
  1038.         if($posi16!=0){$posi[]=$posi16;}
  1039.         if($posi17!=0){$posi[]=$posi17;}
  1040.         if($posi18!=0){$posi[]=$posi18;}
  1041.         if($posi19!=0){$posi[]=$posi19;}
  1042.         $intervention=$interventionRepository->find($ids);   
  1043.         $servicedivers= new servicedivers();
  1044.         $lieu=$lieuRepository->getlieuid($intervention->getContrat());
  1045.         $dateini=date_timestamp_get($intervention->getdate());
  1046.         $moiact=date('n',$dateini);
  1047.         $inter=$interventionRepository->getInterventionIdcontrat($intervention->getContrat());
  1048.         $date=time();
  1049.            $d=[];
  1050.           //  $d[]=date('d/m/y',time());
  1051.             foreach ($inter as $k) {
  1052.                 $a=date_timestamp_get($k->getdate());
  1053.               //  $d[]=date('d/m/y',$a);
  1054.                 if($date>$a){
  1055.                     $date=$a;
  1056.                 }
  1057.             }
  1058.            // $d[]=date('d/m/y',$date);
  1059.            // $d[]=date('d/m/y',$dateini);
  1060.            //
  1061.             $moid=date('m',$dateini);
  1062.             $and=date('y',$dateini);
  1063.            // $d[]=$moid;
  1064.           //  $d[]=$and;
  1065.             $valdeb=$moid+($and*12);
  1066.            // $d[]=$valdeb;
  1067.         $moi=date('m',$date);
  1068.         $an=date('y',$date);
  1069.     //   $d[]=$moi;
  1070.       //  $d[]=$an;
  1071.             $valfin=$moi+($an*12);
  1072.             $moi=($valdeb-$valfin)+1;
  1073.             
  1074.            // $d[]=$valfin;
  1075.            // $d[]=$moi;
  1076.           $mod="deux";
  1077.             if($moi<=6){
  1078.                 $mod="6m";
  1079.             }elseif($moi<=12){
  1080.                 $mod="an";
  1081.             }
  1082.            // $d[]=$mod;
  1083.         // dd($d);
  1084. $anact=date('y',$dateini);
  1085. $anact++;
  1086. $anact--;
  1087.          
  1088. //$titre="intervention"." ".$numcontre;
  1089. $titre="position ".$position->getNumero();
  1090. $mois=array("jan","fev","mars","avr","mai",'juin',"juil","aout","sept","oct","nov","dec");
  1091. $i=11;
  1092. //echo $moiact."  nnn";
  1093. $moiact--;
  1094. $moisanscol=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  1095. $moisanscol6=array(array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0));
  1096. $moisanscolpres=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  1097. $moisfini=array("","","","","","","","","","","","");
  1098. //$d[]=$moiact;
  1099. switch ($mod) {
  1100.     case "6m":
  1101.         while($i>=0){
  1102.             //    echo $mois[$moiact]."  nn";
  1103.             $moisfini[($i-1)]=$mois[$moiact];
  1104.             $a=$moiact+1;
  1105.             $moisanscol6[$i]=array($a,$anact,2);
  1106.             $moisanscol6[($i-1)]=array($a,$anact,1);
  1107.             $moiact--;
  1108.             if($moiact==-1){
  1109.                 $moiact=11;$anact--;
  1110.             }
  1111.             $i--;$i--;
  1112.         }
  1113.         break;
  1114.     case "an":
  1115. while($i>=0){
  1116.     //    echo $mois[$moiact]."  nn";
  1117.     $moisfini[$i]=$mois[$moiact];
  1118.     $a=$moiact+1;
  1119.     $moisanscol[$i]=array($a,$anact);
  1120.     $moiact--;
  1121.     if($moiact==-1){
  1122.         $moiact=11;$anact--;
  1123.     }
  1124.     $i--;
  1125. }
  1126.         break;
  1127.     default:
  1128.         //2 anx
  1129. while($i>=0){
  1130.     //    echo $mois[$moiact]."  nn";
  1131.     $moisfini[$i]=$mois[$moiact];
  1132.     $a=$moiact+1;
  1133.     $moisanscol[$i]=array($a,$anact);
  1134.     $moisanscolpres[$i]=array($a,($anact-1));
  1135.     $moiact--;
  1136.     if($moiact==-1){
  1137.         $moiact=11;$anact--;
  1138.     }
  1139.     $i--;
  1140. }
  1141.         break;
  1142. }
  1143. //$d[]=$moisfini;
  1144. //$d[]=$moisanscol;
  1145. //dd($d);
  1146. $data1ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  1147. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1148. $data1yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  1149. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1150. $data1yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  1151. $data2ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  1152. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1153. $data2yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  1154. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1155. $data2yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  1156. $con1=[0,0,0,0,0,0,0,0,0,0,0,0];
  1157. $con2=[0,0,0,0,0,0,0,0,0,0,0,0];
  1158. $grigno=0;$remi=0;$reste=0;$conso=0;$plushaut=0;$plushautli=0;$divers=0;
  1159. $produitser= new produitService();$datr=[];$da=0;
  1160. foreach ($inter as $re) {
  1161.    // dd($re);$da
  1162.     $grigno=0;$remi=0;$reste=0;$chan=0;$conso=0;$divers=0;
  1163. $interfa=$interfaitRepository->getinterfait($re->getId());
  1164.     $datr[$da]=[];
  1165.     $datr[$da]['inter']=$re;
  1166.     $datr[$da]['interfait']=$interfa;
  1167. foreach ($interfa as $interfai) {
  1168.     $valider=0;
  1169.     foreach ($posi as $posipp) {
  1170.        if($posipp==$interfai->getPosi()){
  1171.         $valider=1;
  1172.        }
  1173.     }
  1174.     //if ($interfai->getPosi()==$position->getId()) {
  1175.         if ($valider==1) {
  1176. if($interfai->getClientfait()==0){}
  1177.     if($interfai->getinter()>=0){
  1178.      
  1179.             $prod =$interfai->getProduit();
  1180.         
  1181.     $grigno=$grigno+$interfai->getGrign();
  1182.     $remi=$remi+$interfai->getRemit();
  1183.     $reste=$reste+$interfai->getReste();
  1184.     
  1185.     $chan=$chan+$interfai->getChan();
  1186.     $divers=$divers+$interfai->getConso();
  1187.     $conso=$conso+$produitser->getidvol($interfai->getProduit());
  1188.         }
  1189.     }
  1190.     } $dateinter=date_timestamp_get($re->getdate());
  1191.     $datr[$da]['date']=date('d/m/y',$dateinter);
  1192.         for($i=0$i<=11;$i++){
  1193.                    
  1194.             switch ($mod) {
  1195.                 case "6m":
  1196.                     
  1197.                    // dd($dateinter);
  1198.                     if($moisanscol6[$i][0]==date('m',$dateinter) && $moisanscol6[$i][1]==date('y',$dateinter) ){
  1199.                         $day15=0;
  1200.                         $d=date('d',$dateinter);
  1201.                         //    echo $d." l ";
  1202.                         if(1<=$d && $d<=15){
  1203.         
  1204.                             $day15=1;
  1205.                         }elseif(16<=$d && $d<=31){
  1206.                             $day15=2;
  1207.                         }
  1208.                         //    echo $day15." l  ".$re['id']." ffff<br>";
  1209.         
  1210.                         if($moisanscol6[$i][2]==$day15){
  1211.                        
  1212.                                 $data1ya[$i]=$reste+$data1ya[$i];
  1213.                                 $data1yb[$i]=$grigno+$data1yb[$i];
  1214.                                 $data1yc[$i]=$remi+$data1yc[$i];
  1215.                            
  1216.                                 $data1yd[$i]=$chan+$data1yd[$i];
  1217.                                 $data1ye[$i]=$divers+$data1yd[$i];
  1218.                             
  1219.         //echo $con1[$i];
  1220.                             $con1[$i]=$con1[$i]+$conso;
  1221.                         //    echo " + ".$conso." = ".$con1[$i]." - ".$i."<br>";
  1222.                                 }
  1223.                     }
  1224.                             
  1225.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i];
  1226.                     if($plushaut<=$a){
  1227.                         $plushaut=$a;}
  1228.                     if($plushautli<=$con1[$i]){
  1229.                         $plushautli=$con1[$i];}
  1230.                     break;
  1231.                 case "an":
  1232.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  1233.                         
  1234.                         $data1ya[$i]=$reste+$data1ya[$i];
  1235.                         $data1yb[$i]=$grigno+$data1yb[$i];
  1236.                         $data1yc[$i]=$remi+$data1yc[$i];
  1237.                         
  1238.                         $data1yd[$i]=$chan+$data1yd[$i];
  1239.                         $data1ye[$i]=$divers+$data1yd[$i];
  1240.                         
  1241.         
  1242.                         $con1[$i]=$con1[$i]+$conso;
  1243.                     }
  1244.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  1245.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  1246.                     if($plushaut<=$a){
  1247.                         $plushaut=$a;}
  1248.                     if($plushautli<=$con1[$i]){
  1249.                         $plushautli=$con1[$i];}
  1250.                     break;
  1251.                 default:
  1252.                     //2 anx
  1253.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  1254.                         
  1255.                             $data1ya[$i]=$reste+$data1ya[$i];
  1256.                             $data1yb[$i]=$grigno+$data1yb[$i];
  1257.                             $data1yc[$i]=$remi+$data1yc[$i];
  1258.                         
  1259.                             $data1yd[$i]=$chan+$data1yd[$i];
  1260.                             $data1ye[$i]=$divers+$data1yd[$i];
  1261.                         
  1262.                         $con1[$i]=$con1[$i]+$conso;
  1263.         
  1264.                     }
  1265.                     if($moisanscolpres[$i][0]==date('m',$dateinter) && $moisanscolpres[$i][1]==date('y',$dateinter) ){
  1266.                         
  1267.                             $data2ya[$i]=$reste+$data2ya[$i];
  1268.                             $data2yb[$i]=$grigno+$data2yb[$i];
  1269.                             $data2yc[$i]=$remi+$data2yc[$i];
  1270.                        
  1271.                             $data2yd[$i]=$chan+$data2yd[$i];
  1272.                             $data2ye[$i]=$divers+$data2yd[$i];
  1273.                         
  1274.                             $con2[$i]=$con2[$i]+$conso;
  1275.                     }
  1276.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  1277.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  1278.                     if($plushaut<=$a){
  1279.                         $plushaut=$a;}
  1280.                     $a=$data2ya[$i]+$data2yb[$i]+$data2yc[$i]+$data2yd[$i]+$data2ye[$i];
  1281.                     if($plushaut<=$a){
  1282.                         $plushaut=$a;}
  1283.                     if($plushautli<=$con1[$i]){
  1284.                         $plushautli=$con1[$i];}
  1285.                     if($plushautli<=$con2[$i]){
  1286.                         $plushautli=$con2[$i];}
  1287.                     break;
  1288.             }
  1289.         
  1290.         
  1291.         //    echo $con1[$i]." h ".$con2[$i]." l ".$plushautli." id ".$re['id']."<br>";
  1292.         }
  1293.         $da++;
  1294. }
  1295. $v=$plushaut/3;//valeur max
  1296. if($v>=1){
  1297. $vm=$plushautli/$v;//valeur divition
  1298. $con1[0]=$con1[0]/$vm;
  1299. $con1[1]=$con1[1]/$vm;
  1300. $con1[2]=$con1[2]/$vm;
  1301. $con1[3]=$con1[3]/$vm;
  1302. $con1[4]=$con1[4]/$vm;
  1303. $con1[5]=$con1[5]/$vm;
  1304. $con1[6]=$con1[6]/$vm;
  1305. $con1[7]=$con1[7]/$vm;
  1306. $con1[8]=$con1[8]/$vm;
  1307. $con1[9]=$con1[9]/$vm;
  1308. $con1[10]=$con1[10]/$vm;
  1309. $con1[11]=$con1[11]/$vm;
  1310. $con2[0]=$con2[0]/$vm;
  1311. $con2[1]=$con2[1]/$vm;
  1312. $con2[2]=$con2[2]/$vm;
  1313. $con2[3]=$con2[3]/$vm;
  1314. $con2[4]=$con2[4]/$vm;
  1315. $con2[5]=$con2[5]/$vm;
  1316. $con2[6]=$con2[6]/$vm;
  1317. $con2[7]=$con2[7]/$vm;
  1318. $con2[8]=$con2[8]/$vm;
  1319. $con2[9]=$con2[9]/$vm;
  1320. $con2[10]=$con2[10]/$vm;
  1321. $con2[11]=$con2[11]/$vm;}
  1322. //dd($datr);
  1323. $plushautli=$plushautli+100;
  1324. $aacol=$servicedivers->grahi($plushautli);
  1325. $ak=$aacol*6;
  1326. //echo $aacol." b ";
  1327. //    echo $aacol2." ".$aava." <br>";
  1328. //echo $aacol."<br>".$aacol2;
  1329. $a3=array(0,0,0,0,0,0,0,0);
  1330. for($i=1;$i<=6;$i++){
  1331.     $a3[$i]=$aacol*$i;
  1332. }
  1333. $plushaut=$plushaut+100;
  1334. $aacol=$servicedivers->grahi($plushaut);
  1335. $aacol2=$aacol/2;
  1336. //    echo $aacol2." ".$aava." <br>";
  1337. //echo $aacol."<br>".$aacol2;
  1338. $a1=array(0,0,0,0,0,0,0,0);
  1339. $a2=array($aacol2,0,0,0,0,0,0);
  1340. for($i=1;$i<=6;$i++){
  1341.     $a1[$i]=$aacol*$i;
  1342.     $a2[$i]=$aacol2+($aacol*($i-1));
  1343. }
  1344. $datay1 = [138197176];
  1345. $datay2 = [4527525];
  1346. //dd($data1ya);
  1347. // Create the graph.
  1348. $graph    = new Graph\Graph(700350);
  1349. $graph->SetScale('textlin');
  1350. $graph->SetMarginColor('white');
  1351. $graph->yaxis->SetTickPositions($a1,$a2);
  1352. //$graph->y2axis->SetTickPositions($a3);
  1353. $graph->SetBox(false);
  1354. // Setup title
  1355. $graph->title->Set($titre);
  1356. // Create the first bar
  1357. switch ($mod) {
  1358.        default:
  1359.        $bplotb = new Plot\BarPlot($data2ya);
  1360. $bplotb->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  1361. $bplotb->SetColor("#239B56");
  1362. $bplotb->SetLegend("asia");
  1363. // Create the second bar
  1364. $bplot2b = new Plot\BarPlot($data2yb);
  1365. $bplot2b->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  1366. $bplot2b->SetColor("#C0392B");
  1367. $bplot2b->SetLegend("euro ");
  1368. $bplot3b = new Plot\BarPlot($data2yc);
  1369. $bplot3b->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  1370. $bplot3b->SetColor("#2874A6");
  1371. $bplot3b->SetLegend("mouche");
  1372. $bplot4b = new Plot\BarPlot($data2yd);
  1373. $bplot4b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1374. $bplot4b->SetColor("#717D7E");/**/
  1375. $bplot4b->SetLegend("papillon");
  1376. $bplot5b = new Plot\BarPlot($data2ye);
  1377. $bplot5b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1378. $bplot5b->SetColor("#717D7E");/**/
  1379. $bplot5b->SetLegend("orien");
  1380. // And join them in an accumulated bar
  1381. // And join them in an accumulated bar
  1382. $p2 = new Plot\LinePlot($con2);
  1383. $p2->mark->SetType(MARK_FILLEDCIRCLE);
  1384. $p2->mark->SetFillColor('green');
  1385. $p2->mark->SetWidth(4);
  1386. $p2->SetColor('yellow');
  1387. $p2->SetCenter();
  1388. $p2->SetLegend("prod");
  1389. $bplot = new Plot\BarPlot($data1ya);
  1390. $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  1391. $bplot->SetColor("#239B56");
  1392. $bplot->SetLegend("asia ");
  1393. // Create the second bar
  1394. $bplot2 = new Plot\BarPlot($data1yb);
  1395. $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  1396. $bplot2->SetColor("#C0392B");
  1397. $bplot2->SetLegend("euro");
  1398. $bplot3 = new Plot\BarPlot($data1yc);
  1399. $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  1400. $bplot3->SetColor("#2874A6");
  1401. $bplot3->SetLegend("mouche");
  1402. $bplot4 = new Plot\BarPlot($data1yd);
  1403. $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1404. $bplot4->SetColor("#717D7E");
  1405. $bplot4->SetLegend("papillon");/**/
  1406. $bplot5 = new Plot\BarPlot($data1ye);
  1407. $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1408. $bplot5->SetColor("#717D7E");
  1409. $bplot5->SetLegend("orien");/**/
  1410. $p1 = new Plot\LinePlot($con1);
  1411. $p1->mark->SetType(MARK_FILLEDCIRCLE);
  1412. $p1->mark->SetFillColor('blue');
  1413. $p1->mark->SetWidth(4);
  1414. $p1->SetColor('blue');
  1415. $p1->SetCenter();
  1416. $p1->SetLegend("prod");;
  1417. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  1418. $accbplotb = new Plot\AccBarPlot([ $bplot5b,$bplot4b,$bplot3b,$bplot2b,$bplotb]);
  1419. //$graph->Add($accbplot);
  1420. //$graph->Add($accbplotb);
  1421. $bar = new plot\GroupBarPlot(array($accbplot,$accbplotb));
  1422. //$graph->Add($accbplot);
  1423. $graph->Add($bar);
  1424. $graph->Add($p1);
  1425. $graph->Add($p2);
  1426. break;
  1427.     case "6m":
  1428.         case "an":
  1429.             $bplot = new Plot\BarPlot($data1ya);
  1430.             $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  1431.             $bplot->SetColor("#239B56");
  1432.             $bplot->SetLegend("asia ");
  1433.             // Create the second bar
  1434.             $bplot2 = new Plot\BarPlot($data1yb);
  1435.             $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  1436.             $bplot2->SetColor("#C0392B");
  1437.             $bplot2->SetLegend("euro");
  1438.             $bplot3 = new Plot\BarPlot($data1yc);
  1439.             $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  1440.             $bplot3->SetColor("#2874A6");
  1441.             $bplot3->SetLegend("mouche");
  1442.             $bplot4 = new Plot\BarPlot($data1yd);
  1443.             $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1444.             $bplot4->SetColor("#717D7E");
  1445.             $bplot4->SetLegend("papillon");/**/
  1446.             $bplot5 = new Plot\BarPlot($data1ye);
  1447.             $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1448.             $bplot5->SetColor("#717D7E");
  1449.             $bplot5->SetLegend("orien");/**/
  1450.             
  1451.             $p1 = new Plot\LinePlot($con1);
  1452.             $p1->mark->SetType(MARK_FILLEDCIRCLE);
  1453.             $p1->mark->SetFillColor('blue');
  1454.             $p1->mark->SetWidth(4);
  1455.             $p1->SetColor('blue');
  1456.             $p1->SetCenter();
  1457.             $p1->SetLegend("prod");;
  1458. $accbplot = new Plot\AccBarPlot([$bplot4,$bplot4,$bplot3$bplot2,$bplot]);
  1459. $graph->Add($accbplot);
  1460. $graph->Add($p1);
  1461. break;
  1462.         }
  1463. //dd($con1);
  1464. $graph->SetMargin(40,20,46,80);
  1465. $graph->xaxis->SetTickLabels($moisfini);
  1466. if($pdf=="oui"){
  1467.     switch ($mod) {
  1468.         case "6m":
  1469.             $fichiergrah=$this->getParameter('grapph_directory')."multigrah-".$intervention->getId().uniqid()."grapmois.png";
  1470.             $fichiergrah2=$this->getParameter('grapph_directory_dos')."multigrah-".$intervention->getId().uniqid()."grapmois.png";
  1471.             break;
  1472.         case "an":
  1473.             $fichiergrah=$this->getParameter('grapph_directory')."multigrah-".$intervention->getId().uniqid()."grapan.png";
  1474.             $fichiergrah2=$this->getParameter('grapph_directory_dos')."multigrah-".$intervention->getId().uniqid()."grapan.png";
  1475.             break;
  1476.         default:
  1477.             $fichiergrah=$this->getParameter('grapph_directory')."multigrah-".$intervention->getId().uniqid()."grap2an.png";
  1478.             $fichiergrah2=$this->getParameter('grapph_directory_dos')."multigrah-".$intervention->getId().uniqid()."grap2an.png";
  1479.             break;
  1480.     }
  1481.     if(file_exists($fichiergrah)){
  1482.         unlink($fichiergrah) ;
  1483.     }
  1484.     $graph->Stroke($fichiergrah);
  1485. return $fichiergrah2;
  1486.     }else{
  1487.     $graph->Stroke();
  1488.     }
  1489.     }
  1490.     #[Route('/faclieu/{id}/{pdf}/{idfac}'name'faclieu')]
  1491.     public function donner(Lieu $lieu,string $pdf,int $idfac,
  1492.     FactuRepository $factuRepository,
  1493.     LieuRepository $lieuRepository,
  1494.     InterfaitRepository $interfaitRepository,
  1495.     InterventionRepository $interventionRepository)
  1496.     {
  1497.         $intervention=$interventionRepository->getdernierparlieu($lieu);
  1498.        // dd($intervention);
  1499.        $factu=$factuRepository->find($idfac);
  1500.         $servicedivers= new servicedivers();
  1501.     
  1502.         if($intervention->getContrat()<=0){
  1503. $intervention= new Intervention();$date= new DateTimeImmutable();
  1504. $intervention->setDate($date);$intervention->setContrat(0);
  1505.         }
  1506.      //   $lieu=$lieuRepository->find($intervention->getContrat());
  1507.         $dateini=date_timestamp_get($intervention->getdate());
  1508.         $moiact=date('n',$dateini);
  1509.         $interf=$interventionRepository->getInterventionIdcontrat($intervention->getContrat());
  1510.         $inter=[];
  1511.         foreach ($interf as $k) {
  1512.             if($k->getFact()==$idfac){
  1513.            $inter[]=$k;}
  1514.         }
  1515.         $date=time();
  1516.            $d=[];
  1517.           //  $d[]=date('d/m/y',time());
  1518.             foreach ($inter as $k) {
  1519.                 $a=date_timestamp_get($k->getdate());
  1520.               //  $d[]=date('d/m/y',$a);
  1521.                 if($date>$a){
  1522.                     $date=$a;
  1523.                 }
  1524.             }
  1525.            // $d[]=date('d/m/y',$date);
  1526.            // $d[]=date('d/m/y',$dateini);
  1527.            //
  1528.             $moid=date('m',$dateini);
  1529.             $and=date('y',$dateini);
  1530.            // $d[]=$moid;
  1531.           //  $d[]=$and;
  1532.             $valdeb=$moid+($and*12);
  1533.            // $d[]=$valdeb;
  1534.         $moi=date('m',$date);
  1535.         $an=date('y',$date);
  1536.     //   $d[]=$moi;
  1537.       //  $d[]=$an;
  1538.             $valfin=$moi+($an*12);
  1539.             $moi=($valdeb-$valfin)+1;
  1540.             
  1541.            // $d[]=$valfin;
  1542.            // $d[]=$moi;
  1543.           $mod="deux";
  1544.             if($moi<=6){
  1545.                 $mod="6m";
  1546.             }elseif($moi<=12){
  1547.                 $mod="an";
  1548.             }
  1549.            
  1550.            // $d[]=$mod;
  1551.          //dd($d);
  1552. $anact=date('y',$dateini);
  1553. $anact++;
  1554. $anact--;
  1555.          
  1556. //$titre="intervention"." ".$numcontre;
  1557. $titre="dernier relever le ".date('d/m/y',date_timestamp_get($intervention->getdate()));
  1558. $mois=array("jan","fev","mars","avr","mai",'juin',"juil","aout","sept","oct","nov","dec");
  1559. $i=11;
  1560. //echo $moiact."  nnn";
  1561. $moiact--;
  1562. $moisanscol=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  1563. $moisanscol6=array(array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0));
  1564. $moisanscolpres=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  1565. $moisfini=array("","","","","","","","","","","","");
  1566. //$d[]=$moiact;
  1567. switch ($mod) {
  1568.     case "6m":
  1569.         while($i>=0){
  1570.             //    echo $mois[$moiact]."  nn";
  1571.             $moisfini[($i-1)]=$mois[$moiact];
  1572.             $a=$moiact+1;
  1573.             $moisanscol6[$i]=array($a,$anact,2);
  1574.             $moisanscol6[($i-1)]=array($a,$anact,1);
  1575.             $moiact--;
  1576.             if($moiact==-1){
  1577.                 $moiact=11;$anact--;
  1578.             }
  1579.             $i--;$i--;
  1580.         }
  1581.         break;
  1582.     case "an":
  1583. while($i>=0){
  1584.     //    echo $mois[$moiact]."  nn";
  1585.     $moisfini[$i]=$mois[$moiact];
  1586.     $a=$moiact+1;
  1587.     $moisanscol[$i]=array($a,$anact);
  1588.     $moiact--;
  1589.     if($moiact==-1){
  1590.         $moiact=11;$anact--;
  1591.     }
  1592.     $i--;
  1593. }
  1594.         break;
  1595.     default:
  1596.         //2 anx
  1597. while($i>=0){
  1598.     //    echo $mois[$moiact]."  nn";
  1599.     $moisfini[$i]=$mois[$moiact];
  1600.     $a=$moiact+1;
  1601.     $moisanscol[$i]=array($a,$anact);
  1602.     $moisanscolpres[$i]=array($a,($anact-1));
  1603.     $moiact--;
  1604.     if($moiact==-1){
  1605.         $moiact=11;$anact--;
  1606.     }
  1607.     $i--;
  1608. }
  1609.         break;
  1610. }
  1611. //$d[]=$moisfini;
  1612. //$d[]=$moisanscol;
  1613. //$d[]=$moisanscolpres;
  1614. //dd($d);
  1615. $data1ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  1616. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1617. $data1yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  1618. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1619. $data1yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  1620. $data1ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  1621. $data2ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  1622. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1623. $data2yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  1624. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  1625. $data2yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  1626. $data2ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  1627. $con1=[0,0,0,0,0,0,0,0,0,0,0,0];
  1628. $con2=[0,0,0,0,0,0,0,0,0,0,0,0];
  1629. $grigno=0;$remi=0;$reste=0;$conso=0;$plushaut=0;$plushautli=0;$diver=0;
  1630. $produitser= new produitService();$datr=[];$da=0;
  1631. foreach ($inter as $re) {
  1632.    // dd($re);$da
  1633.     $grigno=0;$remi=0;$reste=0;$chan=0;$conso=0;$diver=0;
  1634. $interfa=$interfaitRepository->getinterfait($re->getId());
  1635.     $datr[$da]=[];
  1636.     $datr[$da]['inter']=$re;
  1637.     $datr[$da]['interfait']=$interfa;$dat=[];
  1638. foreach ($interfa as $interfai) {
  1639. if($interfai->getClientfait()==0){}
  1640.     if($interfai->getinter()>=0){
  1641.         
  1642.    // $dat[]=["grigno"=>$interfai->getGrign(),"remi"=>$interfai->getRemit(),"reste"=>$interfai->getReste(),"chan"=>$interfai->getChan(),"conso"=>$interfai->getConso()];
  1643.   
  1644.    $grigno=$grigno+$interfai->getGrign();
  1645.     $remi=$remi+$interfai->getRemit();
  1646.     $reste=$reste+$interfai->getReste();
  1647.     $chan=$chan+$interfai->getChan();
  1648.     $diver=$diver+$interfai->getConso();
  1649. //$interfai->getProduit()
  1650.    
  1651. $conso=$conso+$produitser->getidvol($interfai->getProduit());
  1652.         $dat[]=["consot"=>$conso,"chan"=>$interfai->getChan(),"reste"=>$interfai->getReste(),"remi"=>$interfai->getRemit(),"conso"=>$interfai->getConso(),"prod"=>$interfai->getProduit(),"prod2"=>$produitser->getidvol($interfai->getProduit())];
  1653.         }
  1654.     } $dateinter=date_timestamp_get($re->getdate());
  1655.     $datr[$da]['date']=date('d/m/y',$dateinter);
  1656.     $datr[$da]['retour1']=$dat;
  1657.     $datr[$da]['retour']=["grigno"=>$grigno,"remi"=>$remi,"reste"=>$reste,"chan"=>$chan,"conso"=>$conso];
  1658.         for($i=0$i<=11;$i++){
  1659.                    
  1660.             switch ($mod) {
  1661.                 case "6m":
  1662.                     
  1663.                    // dd($dateinter);
  1664.                     if($moisanscol6[$i][0]==date('m',$dateinter) && $moisanscol6[$i][1]==date('y',$dateinter) ){
  1665.                         $day15=0;
  1666.                         $d=date('d',$dateinter);
  1667.                         //    echo $d." l ";
  1668.                         if(1<=$d && $d<=15){
  1669.         
  1670.                             $day15=1;
  1671.                         }elseif(16<=$d && $d<=31){
  1672.                             $day15=2;
  1673.                         }
  1674.                         //    echo $day15." l  ".$re['id']." ffff<br>";
  1675.         
  1676.                         if($moisanscol6[$i][2]==$day15){
  1677.                           
  1678.                                 $data1ya[$i]=$reste+$data1ya[$i];
  1679.                                 $data1yb[$i]=$grigno+$data1yb[$i];
  1680.                                 $data1yc[$i]=$remi+$data1yc[$i];
  1681.                          
  1682.                                 $data1yd[$i]=$chan+$data1yd[$i];
  1683.                                 $data1ye[$i]=$diver+$data1ye[$i];
  1684.                                 
  1685.         //echo $con1[$i];
  1686.                             $con1[$i]=$con1[$i]+$conso;
  1687.                         //    echo " + ".$conso." = ".$con1[$i]." - ".$i."<br>";
  1688.                                 }
  1689.                     }
  1690.                             
  1691.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  1692.                     if($plushaut<=$a){
  1693.                         $plushaut=$a;}
  1694.                     if($plushautli<=$con1[$i]){
  1695.                         $plushautli=$con1[$i];}
  1696.                     break;
  1697.                 case "an":
  1698.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  1699.                         
  1700.                         $data1ya[$i]=$reste+$data1ya[$i];
  1701.                         $data1yb[$i]=$grigno+$data1yb[$i];
  1702.                         $data1yc[$i]=$remi+$data1yc[$i];
  1703.                         
  1704.                         $data1yd[$i]=$chan+$data1yd[$i];
  1705.                         $data1ye[$i]=$diver+$data1ye[$i];
  1706.                         
  1707.         
  1708.                         $con1[$i]=$con1[$i]+$conso;
  1709.                     }
  1710.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  1711.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  1712.                     if($plushaut<=$a){
  1713.                         $plushaut=$a;}
  1714.                     if($plushautli<=$con1[$i]){
  1715.                         $plushautli=$con1[$i];}
  1716.                     break;
  1717.                 default:
  1718.                     //2 anx
  1719.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  1720.                         
  1721.                             $data1ya[$i]=$reste+$data1ya[$i];
  1722.                             $data1yb[$i]=$grigno+$data1yb[$i];
  1723.                             $data1yc[$i]=$remi+$data1yc[$i];
  1724.                         
  1725.                             $data1yd[$i]=$chan+$data1yd[$i];
  1726.                             $data1ye[$i]=$diver+$data1ye[$i];
  1727.                         
  1728.                         $con1[$i]=$con1[$i]+$conso;
  1729.         
  1730.                     }
  1731.                     if($moisanscolpres[$i][0]==date('m',$dateinter) && $moisanscolpres[$i][1]==date('y',$dateinter) ){
  1732.                         
  1733.                             $data2ya[$i]=$reste+$data2ya[$i];
  1734.                             $data2yb[$i]=$grigno+$data2yb[$i];
  1735.                             $data2yc[$i]=$remi+$data2yc[$i];
  1736.                         
  1737.                             $data2yd[$i]=$chan+$data2yd[$i];
  1738.                             $data2ye[$i]=$diver+$data2ye[$i];
  1739.                         
  1740.                             $con2[$i]=$con2[$i]+$conso;
  1741.                     }
  1742.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  1743.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  1744.                     if($plushaut<=$a){
  1745.                         $plushaut=$a;}
  1746.                     $a=$data2ya[$i]+$data2yb[$i]+$data2yc[$i]+$data2yd[$i]+$data2ye[$i];
  1747.                     if($plushaut<=$a){
  1748.                         $plushaut=$a;}
  1749.                 if($plushautli<=$con1[$i]){
  1750.                         $plushautli=$con1[$i];}
  1751.                     if($plushautli<=$con2[$i]){
  1752.                         $plushautli=$con2[$i];}
  1753.                     break;
  1754.             }
  1755.         
  1756.         
  1757.         //    echo $con1[$i]." h ".$con2[$i]." l ".$plushautli." id ".$re['id']."<br>";
  1758.         }
  1759.         $da++;
  1760. }
  1761. $datr[]=[$data1ya,$data1yb,$data1yc,$data1yd,$con1];
  1762. $datr[]=[$data2ya,$data2yb,$data2yc,$data2yd,$con2];
  1763. //dd($datr);
  1764. $plushautli=$plushautli+100;
  1765. $aacol=$servicedivers->grahi($plushautli);
  1766. $ak=$aacol*6;
  1767. //echo $aacol." b ";
  1768. //    echo $aacol2." ".$aava." <br>";
  1769. //echo $aacol."<br>".$aacol2;
  1770. $a3=array(0,0,0,0,0,0,0,0);
  1771. for($i=1;$i<=6;$i++){
  1772.     $a3[$i]=$aacol*$i;
  1773. }
  1774. $v=$plushaut/3;//valeur max
  1775. if($v>=1){
  1776. $vm=$plushautli/$v;//valeur divition
  1777. $con1[0]=$con1[0]/$vm;
  1778. $con1[1]=$con1[1]/$vm;
  1779. $con1[2]=$con1[2]/$vm;
  1780. $con1[3]=$con1[3]/$vm;
  1781. $con1[4]=$con1[4]/$vm;
  1782. $con1[5]=$con1[5]/$vm;
  1783. $con1[6]=$con1[6]/$vm;
  1784. $con1[7]=$con1[7]/$vm;
  1785. $con1[8]=$con1[8]/$vm;
  1786. $con1[9]=$con1[9]/$vm;
  1787. $con1[10]=$con1[10]/$vm;
  1788. $con1[11]=$con1[11]/$vm;
  1789. $con2[0]=$con2[0]/$vm;
  1790. $con2[1]=$con2[1]/$vm;
  1791. $con2[2]=$con2[2]/$vm;
  1792. $con2[3]=$con2[3]/$vm;
  1793. $con2[4]=$con2[4]/$vm;
  1794. $con2[5]=$con2[5]/$vm;
  1795. $con2[6]=$con2[6]/$vm;
  1796. $con2[7]=$con2[7]/$vm;
  1797. $con2[8]=$con2[8]/$vm;
  1798. $con2[9]=$con2[9]/$vm;
  1799. $con2[10]=$con2[10]/$vm;
  1800. $con2[11]=$con2[11]/$vm;
  1801. }
  1802. $plushaut=$plushaut+100;
  1803. $aacol=$servicedivers->grahi($plushaut);
  1804. $aacol2=$aacol/2;
  1805. //    echo $aacol2." ".$aava." <br>";
  1806. //echo $aacol."<br>".$aacol2;
  1807. $a1=array(0,0,0,0,0,0,0,0);
  1808. $a2=array($aacol2,0,0,0,0,0,0);
  1809. for($i=1;$i<=6;$i++){
  1810.     $a1[$i]=$aacol*$i;
  1811.     $a2[$i]=$aacol2+($aacol*($i-1));
  1812. }
  1813. // Create the graph.
  1814. $graph    = new Graph\Graph(700350);
  1815. $graph->SetScale('textlin');
  1816. $graph->SetMarginColor('white');
  1817. $graph->yaxis->SetTickPositions($a1,$a2);
  1818. //$graph->y2axis->SetTickPositions($a3);
  1819. $graph->SetBox(false);
  1820. // Setup title
  1821. $graph->title->Set($titre);
  1822. // Create the first bar
  1823. switch ($mod) {
  1824.        default:
  1825.        $bplotb = new Plot\BarPlot($data2ya);
  1826.        $bplotb->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  1827.        $bplotb->SetColor("#239B56");
  1828.        $bplotb->SetLegend("asia");
  1829.        
  1830.        // Create the second bar
  1831.        $bplot2b = new Plot\BarPlot($data2yb);
  1832.        $bplot2b->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  1833.        $bplot2b->SetColor("#C0392B");
  1834.        $bplot2b->SetLegend("euro ");
  1835.        $bplot3b = new Plot\BarPlot($data2yc);
  1836.        $bplot3b->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  1837.        $bplot3b->SetColor("#2874A6");
  1838.        $bplot3b->SetLegend("mouche");
  1839.        $bplot4b = new Plot\BarPlot($data2yd);
  1840.        $bplot4b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1841.        $bplot4b->SetColor("#717D7E");/**/
  1842.        $bplot4b->SetLegend("papillon");
  1843.        $bplot5b = new Plot\BarPlot($data2ye);
  1844.        $bplot5b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1845.        $bplot5b->SetColor("#717D7E");/**/
  1846.        $bplot5b->SetLegend("orien");
  1847.        
  1848.        
  1849.        
  1850.        // And join them in an accumulated bar
  1851.        
  1852.        // And join them in an accumulated bar
  1853.        $p2 = new Plot\LinePlot($con2);
  1854.        $p2->mark->SetType(MARK_FILLEDCIRCLE);
  1855.        $p2->mark->SetFillColor('green');
  1856.        $p2->mark->SetWidth(4);
  1857.        $p2->SetColor('yellow');
  1858.        $p2->SetCenter();
  1859.        $p2->SetLegend("prod");
  1860.        $bplot = new Plot\BarPlot($data1ya);
  1861.        $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  1862.        $bplot->SetColor("#239B56");
  1863.        $bplot->SetLegend("asia ");
  1864.        // Create the second bar
  1865.        $bplot2 = new Plot\BarPlot($data1yb);
  1866.        $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  1867.        $bplot2->SetColor("#C0392B");
  1868.        $bplot2->SetLegend("euro");
  1869.        $bplot3 = new Plot\BarPlot($data1yc);
  1870.        $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  1871.        $bplot3->SetColor("#2874A6");
  1872.        $bplot3->SetLegend("mouche");
  1873.        $bplot4 = new Plot\BarPlot($data1yd);
  1874.        $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1875.        $bplot4->SetColor("#717D7E");
  1876.        $bplot4->SetLegend("papillon");/**/
  1877.        $bplot5 = new Plot\BarPlot($data1ye);
  1878.        $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1879.        $bplot5->SetColor("#717D7E");
  1880.        $bplot5->SetLegend("orien");/**/
  1881.        
  1882.        $p1 = new Plot\LinePlot($con1);
  1883.        $p1->mark->SetType(MARK_FILLEDCIRCLE);
  1884.        $p1->mark->SetFillColor('blue');
  1885.        $p1->mark->SetWidth(4);
  1886.        $p1->SetColor('blue');
  1887.        $p1->SetCenter();
  1888.        $p1->SetLegend("prod");;
  1889.     
  1890.        
  1891. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  1892. $accbplotb = new Plot\AccBarPlot([ $bplot5b,$bplot4b,$bplot3b,$bplot2b,$bplotb]);
  1893. $bar = new plot\GroupBarPlot(array($accbplot,$accbplotb));
  1894. //$graph->Add($accbplot);
  1895. $graph->Add($bar);
  1896. $graph->Add($p1);
  1897. $graph->Add($p2);
  1898. break;
  1899.     case "6m":
  1900.         case "an":
  1901.             $bplot = new Plot\BarPlot($data1ya);
  1902.             $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  1903.             $bplot->SetColor("#239B56");
  1904.             $bplot->SetLegend("asia ");
  1905.             // Create the second bar
  1906.             $bplot2 = new Plot\BarPlot($data1yb);
  1907.             $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  1908.             $bplot2->SetColor("#C0392B");
  1909.             $bplot2->SetLegend("euro");
  1910.             $bplot3 = new Plot\BarPlot($data1yc);
  1911.             $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  1912.             $bplot3->SetColor("#2874A6");
  1913.             $bplot3->SetLegend("mouche");
  1914.             $bplot4 = new Plot\BarPlot($data1yd);
  1915.             $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1916.             $bplot4->SetColor("#717D7E");
  1917.             $bplot4->SetLegend("papillon");/**/
  1918.             $bplot5 = new Plot\BarPlot($data1ye);
  1919.             $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  1920.             $bplot5->SetColor("#717D7E");
  1921.             $bplot5->SetLegend("orien");/**/
  1922.             
  1923.             $p1 = new Plot\LinePlot($con1);
  1924.             $p1->mark->SetType(MARK_FILLEDCIRCLE);
  1925.             $p1->mark->SetFillColor('blue');
  1926.             $p1->mark->SetWidth(4);
  1927.             $p1->SetColor('blue');
  1928.             $p1->SetCenter();
  1929.             $p1->SetLegend("prod");;
  1930. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  1931. $graph->Add($accbplot);
  1932. $graph->Add($p1);
  1933. break;
  1934.         }
  1935. $graph->SetMargin(40,20,46,80);
  1936. $graph->xaxis->SetTickLabels($moisfini);
  1937. if($pdf=="oui"){
  1938.     switch ($mod) {
  1939.         case "6m":
  1940.             $fichiergrah=$this->getParameter('grapph_directory').$intervention->getId().uniqid()."donnergrapmoism.png";
  1941.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$intervention->getId().uniqid()."donnergrapmoism.png";
  1942.             break;
  1943.         case "an":
  1944.             $fichiergrah=$this->getParameter('grapph_directory').$intervention->getId().uniqid()."donnergrapanm.png";
  1945.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$intervention->getId().uniqid()."donnergrapanm.png";
  1946.             break;
  1947.         default:
  1948.             $fichiergrah=$this->getParameter('grapph_directory').$intervention->getId().uniqid()."donnergrap2anm.png";
  1949.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$intervention->getId().uniqid()."donnergrap2anm.png";
  1950.             break;
  1951.     }
  1952.     if(file_exists($fichiergrah)){
  1953.         unlink($fichiergrah) ;
  1954.     }
  1955.     $graph->Stroke($fichiergrah);
  1956.    // dd($fichiergrah);
  1957. return $fichiergrah;
  1958.     }else{
  1959.     $graph->Stroke();
  1960.     }
  1961. //$graph->Stroke();
  1962.       /*  return $this->render('graph_jpgraph/index.html.twig', [
  1963.             'controller_name' => 'GraphJpgraphController',
  1964.         ]);*/
  1965.     }
  1966.     
  1967.     #[Route('/facpro/{pdf}/{idfac}/{idproduit}'name'facpro')]
  1968.     public function produit(string $pdf,int $idfac,
  1969.     int $idproduit,FactuRepository $factuRepository,
  1970.     LieuRepository $lieuRepository,
  1971.     InterfaitRepository $interfaitRepository,
  1972.     ClientRepository $clientRepository,
  1973.     FaclieuRepository $faclieuRepository,
  1974.     InterventionRepository $interventionRepository)
  1975.     {
  1976.         
  1977.     $inter=[];
  1978.     if($idfac==0){
  1979.         $interf=$interventionRepository->touteinter();
  1980.     
  1981.         foreach ($interf as $k) {
  1982.            $inter[]=$k;
  1983.         }
  1984.   
  1985. }else{
  1986. $factu=$factuRepository->getidfactuform($idfac$clientRepository$lieuRepository$faclieuRepository);
  1987.         foreach ($factu['lieuinfo'] as $k) {
  1988.             # code...
  1989.         
  1990.         $interf=$interventionRepository->getInterventionIdcontrat($k['lieuid']);
  1991.     
  1992.         foreach ($interf as $k) {
  1993.             if($k->getFact()==$idfac){
  1994.            $inter[]=$k;}
  1995.         }
  1996.     }  
  1997.     }
  1998.     //dd($inter);
  1999.         $dateinitila=new Intervention;
  2000.     foreach ($inter as $k) {
  2001.        if($dateinitila->getDate()<=$k->getDate()){
  2002.         $dateinitila=$k;
  2003.        }
  2004.     }
  2005.        // dd($intervention);
  2006.        $factu=$factuRepository->find($idfac);
  2007.         $servicedivers= new servicedivers();
  2008.         $dateini=date_timestamp_get($dateinitila->getdate());
  2009.         $moiact=date('n',$dateini);
  2010.       
  2011.         $date=time();
  2012.            $d=[];
  2013.           //  $d[]=date('d/m/y',time());
  2014.             foreach ($inter as $k) {
  2015.                 $a=date_timestamp_get($k->getdate());
  2016.               //  $d[]=date('d/m/y',$a);
  2017.                 if($date>$a){
  2018.                     $date=$a;
  2019.                 }
  2020.             }
  2021.            // $d[]=date('d/m/y',$date);
  2022.            // $d[]=date('d/m/y',$dateini);
  2023.            //
  2024.             $moid=date('m',$dateini);
  2025.             $and=date('y',$dateini);
  2026.            // $d[]=$moid;
  2027.           //  $d[]=$and;
  2028.             $valdeb=$moid+($and*12);
  2029.            // $d[]=$valdeb;
  2030.         $moi=date('m',$date);
  2031.         $an=date('y',$date);
  2032.     //   $d[]=$moi;
  2033.       //  $d[]=$an;
  2034.             $valfin=$moi+($an*12);
  2035.             $moi=($valdeb-$valfin)+1;
  2036.             
  2037.            // $d[]=$valfin;
  2038.            // $d[]=$moi;
  2039.           $mod="deux";
  2040.             if($moi<=6){
  2041.                 $mod="6m";
  2042.             }elseif($moi<=12){
  2043.                 $mod="an";
  2044.             }
  2045.            
  2046.            // $d[]=$mod;
  2047.          //dd($d);
  2048. $anact=date('y',$dateini);
  2049. $anact++;
  2050. $anact--;
  2051.          
  2052. //$titre="intervention"." ".$numcontre;
  2053. $titre="dernier relever le ".date('d/m/y',date_timestamp_get($dateinitila->getdate()));
  2054. $mois=array("jan","fev","mars","avr","mai",'juin',"juil","aout","sept","oct","nov","dec");
  2055. $i=11;
  2056. //echo $moiact."  nnn";
  2057. $moiact--;
  2058. $moisanscol=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  2059. $moisanscol6=array(array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0));
  2060. $moisanscolpres=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  2061. $moisfini=array("","","","","","","","","","","","");
  2062. //$d[]=$moiact;
  2063. switch ($mod) {
  2064.     case "6m":
  2065.         while($i>=0){
  2066.             //    echo $mois[$moiact]."  nn";
  2067.             $moisfini[($i-1)]=$mois[$moiact];
  2068.             $a=$moiact+1;
  2069.             $moisanscol6[$i]=array($a,$anact,2);
  2070.             $moisanscol6[($i-1)]=array($a,$anact,1);
  2071.             $moiact--;
  2072.             if($moiact==-1){
  2073.                 $moiact=11;$anact--;
  2074.             }
  2075.             $i--;$i--;
  2076.         }
  2077.         break;
  2078.     case "an":
  2079. while($i>=0){
  2080.     //    echo $mois[$moiact]."  nn";
  2081.     $moisfini[$i]=$mois[$moiact];
  2082.     $a=$moiact+1;
  2083.     $moisanscol[$i]=array($a,$anact);
  2084.     $moiact--;
  2085.     if($moiact==-1){
  2086.         $moiact=11;$anact--;
  2087.     }
  2088.     $i--;
  2089. }
  2090.         break;
  2091.     default:
  2092.         //2 anx
  2093. while($i>=0){
  2094.     //    echo $mois[$moiact]."  nn";
  2095.     $moisfini[$i]=$mois[$moiact];
  2096.     $a=$moiact+1;
  2097.     $moisanscol[$i]=array($a,$anact);
  2098.     $moisanscolpres[$i]=array($a,($anact-1));
  2099.     $moiact--;
  2100.     if($moiact==-1){
  2101.         $moiact=11;$anact--;
  2102.     }
  2103.     $i--;
  2104. }
  2105.         break;
  2106. }
  2107. //$d[]=$moisfini;
  2108. //$d[]=$moisanscol;
  2109. //$d[]=$moisanscolpres;
  2110. //dd($d);
  2111. $data1ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  2112. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2113. $data1yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  2114. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2115. $data1yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  2116. $data1ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  2117. $data2ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  2118. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2119. $data2yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  2120. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2121. $data2yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  2122. $data2ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  2123. $con1=[0,0,0,0,0,0,0,0,0,0,0,0];
  2124. $con2=[0,0,0,0,0,0,0,0,0,0,0,0];
  2125. $grigno=0;$remi=0;$reste=0;$conso=0;$plushaut=0;$plushautli=0;$diver=0;
  2126. $produitser= new produitService();$datr=[];$da=0;
  2127. $int=[];
  2128. $int2=[];
  2129. foreach ($inter as $re) {
  2130.    // dd($re);$da
  2131. //$int[]=$re;
  2132.     $grigno=0;$remi=0;$reste=0;$chan=0;$conso=0;$diver=0;
  2133. $interfa=$interfaitRepository->getinterfait($re->getId());
  2134.     $datr[$da]=[];
  2135.     $datr[$da]['inter']=$re;
  2136.     $datr[$da]['interfait']=$interfa;$dat=[];
  2137. foreach ($interfa as $interfai) {
  2138.     if($interfai->getProdavan()==$idproduit) {
  2139. if($interfai->getClientfait()==0){}
  2140.     if($interfai->getinter()>=0){
  2141.         //$int2[]=$interfai;
  2142.    // $dat[]=["grigno"=>$interfai->getGrign(),"remi"=>$interfai->getRemit(),"reste"=>$interfai->getReste(),"chan"=>$interfai->getChan(),"conso"=>$interfai->getConso()];
  2143.   
  2144.    $grigno=$grigno+$interfai->getGrign();
  2145.     $remi=$remi+$interfai->getRemit();
  2146.     $reste=$reste+$interfai->getReste();
  2147.     $chan=$chan+$interfai->getChan();
  2148.     $diver=$diver+$interfai->getConso();
  2149. //$interfai->getProduit()
  2150.    
  2151. $conso=$conso+$produitser->getidvol($interfai->getProduit());
  2152.         $dat[]=["consot"=>$conso,"chan"=>$interfai->getChan(),"reste"=>$interfai->getReste(),"remi"=>$interfai->getRemit(),"conso"=>$interfai->getConso(),"prod"=>$interfai->getProduit(),"prod2"=>$produitser->getidvol($interfai->getProduit())];
  2153.         }
  2154.     }
  2155.     } $dateinter=date_timestamp_get($re->getdate());
  2156.     $datr[$da]['date']=date('d/m/y',$dateinter);
  2157.     $datr[$da]['retour1']=$dat;
  2158.     $datr[$da]['retour']=["grigno"=>$grigno,"remi"=>$remi,"reste"=>$reste,"chan"=>$chan,"conso"=>$conso];
  2159.         for($i=0$i<=11;$i++){
  2160.                    
  2161.             switch ($mod) {
  2162.                 case "6m":
  2163.                     
  2164.                    // dd($dateinter);
  2165.                     if($moisanscol6[$i][0]==date('m',$dateinter) && $moisanscol6[$i][1]==date('y',$dateinter) ){
  2166.                         $day15=0;
  2167.                         $d=date('d',$dateinter);
  2168.                         //    echo $d." l ";
  2169.                         if(1<=$d && $d<=15){
  2170.         
  2171.                             $day15=1;
  2172.                         }elseif(16<=$d && $d<=31){
  2173.                             $day15=2;
  2174.                         }
  2175.                         //    echo $day15." l  ".$re['id']." ffff<br>";
  2176.         
  2177.                         if($moisanscol6[$i][2]==$day15){
  2178.                           
  2179.                                 $data1ya[$i]=$reste+$data1ya[$i];
  2180.                                 $data1yb[$i]=$grigno+$data1yb[$i];
  2181.                                 $data1yc[$i]=$remi+$data1yc[$i];
  2182.                          
  2183.                                 $data1yd[$i]=$chan+$data1yd[$i];
  2184.                                 $data1ye[$i]=$diver+$data1ye[$i];
  2185.                                 
  2186.         //echo $con1[$i];
  2187.                             $con1[$i]=$con1[$i]+$conso;
  2188.                         //    echo " + ".$conso." = ".$con1[$i]." - ".$i."<br>";
  2189.                                 }
  2190.                     }
  2191.                             
  2192.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  2193.                     if($plushaut<=$a){
  2194.                         $plushaut=$a;}
  2195.                     if($plushautli<=$con1[$i]){
  2196.                         $plushautli=$con1[$i];}
  2197.                     break;
  2198.                 case "an":
  2199.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  2200.                         
  2201.                         $data1ya[$i]=$reste+$data1ya[$i];
  2202.                         $data1yb[$i]=$grigno+$data1yb[$i];
  2203.                         $data1yc[$i]=$remi+$data1yc[$i];
  2204.                         
  2205.                         $data1yd[$i]=$chan+$data1yd[$i];
  2206.                         $data1ye[$i]=$diver+$data1ye[$i];
  2207.                         
  2208.         
  2209.                         $con1[$i]=$con1[$i]+$conso;
  2210.                     }
  2211.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  2212.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  2213.                     if($plushaut<=$a){
  2214.                         $plushaut=$a;}
  2215.                     if($plushautli<=$con1[$i]){
  2216.                         $plushautli=$con1[$i];}
  2217.                     break;
  2218.                 default:
  2219.                     //2 anx
  2220.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  2221.                         
  2222.                             $data1ya[$i]=$reste+$data1ya[$i];
  2223.                             $data1yb[$i]=$grigno+$data1yb[$i];
  2224.                             $data1yc[$i]=$remi+$data1yc[$i];
  2225.                         
  2226.                             $data1yd[$i]=$chan+$data1yd[$i];
  2227.                             $data1ye[$i]=$diver+$data1ye[$i];
  2228.                         
  2229.                         $con1[$i]=$con1[$i]+$conso;
  2230.         
  2231.                     }
  2232.                     if($moisanscolpres[$i][0]==date('m',$dateinter) && $moisanscolpres[$i][1]==date('y',$dateinter) ){
  2233.                         
  2234.                             $data2ya[$i]=$reste+$data2ya[$i];
  2235.                             $data2yb[$i]=$grigno+$data2yb[$i];
  2236.                             $data2yc[$i]=$remi+$data2yc[$i];
  2237.                         
  2238.                             $data2yd[$i]=$chan+$data2yd[$i];
  2239.                             $data2ye[$i]=$diver+$data2ye[$i];
  2240.                         
  2241.                             $con2[$i]=$con2[$i]+$conso;
  2242.                     }
  2243.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  2244.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  2245.                     if($plushaut<=$a){
  2246.                         $plushaut=$a;}
  2247.                     $a=$data2ya[$i]+$data2yb[$i]+$data2yc[$i]+$data2yd[$i]+$data2ye[$i];
  2248.                     if($plushaut<=$a){
  2249.                         $plushaut=$a;}
  2250.                 if($plushautli<=$con1[$i]){
  2251.                         $plushautli=$con1[$i];}
  2252.                     if($plushautli<=$con2[$i]){
  2253.                         $plushautli=$con2[$i];}
  2254.                     break;
  2255.             }
  2256.         
  2257.         
  2258.         //    echo $con1[$i]." h ".$con2[$i]." l ".$plushautli." id ".$re['id']."<br>";
  2259.         }
  2260.         $da++;
  2261. }
  2262. //dd($int,$int2);
  2263. $datr[]=[$data1ya,$data1yb,$data1yc,$data1yd,$con1];
  2264. $datr[]=[$data2ya,$data2yb,$data2yc,$data2yd,$con2];
  2265. //dd($datr);
  2266. $plushautli=$plushautli+100;
  2267. $aacol=$servicedivers->grahi($plushautli);
  2268. $ak=$aacol*6;
  2269. //echo $aacol." b ";
  2270. //    echo $aacol2." ".$aava." <br>";
  2271. //echo $aacol."<br>".$aacol2;
  2272. $a3=array(0,0,0,0,0,0,0,0);
  2273. for($i=1;$i<=6;$i++){
  2274.     $a3[$i]=$aacol*$i;
  2275. }
  2276. $v=$plushaut/3;//valeur max
  2277. if($v>=1){
  2278. $vm=$plushautli/$v;//valeur divition
  2279. $con1[0]=$con1[0]/$vm;
  2280. $con1[1]=$con1[1]/$vm;
  2281. $con1[2]=$con1[2]/$vm;
  2282. $con1[3]=$con1[3]/$vm;
  2283. $con1[4]=$con1[4]/$vm;
  2284. $con1[5]=$con1[5]/$vm;
  2285. $con1[6]=$con1[6]/$vm;
  2286. $con1[7]=$con1[7]/$vm;
  2287. $con1[8]=$con1[8]/$vm;
  2288. $con1[9]=$con1[9]/$vm;
  2289. $con1[10]=$con1[10]/$vm;
  2290. $con1[11]=$con1[11]/$vm;
  2291. $con2[0]=$con2[0]/$vm;
  2292. $con2[1]=$con2[1]/$vm;
  2293. $con2[2]=$con2[2]/$vm;
  2294. $con2[3]=$con2[3]/$vm;
  2295. $con2[4]=$con2[4]/$vm;
  2296. $con2[5]=$con2[5]/$vm;
  2297. $con2[6]=$con2[6]/$vm;
  2298. $con2[7]=$con2[7]/$vm;
  2299. $con2[8]=$con2[8]/$vm;
  2300. $con2[9]=$con2[9]/$vm;
  2301. $con2[10]=$con2[10]/$vm;
  2302. $con2[11]=$con2[11]/$vm;
  2303. }
  2304. $plushaut=$plushaut+100;
  2305. $aacol=$servicedivers->grahi($plushaut);
  2306. $aacol2=$aacol/2;
  2307. //    echo $aacol2." ".$aava." <br>";
  2308. //echo $aacol."<br>".$aacol2;
  2309. $a1=array(0,0,0,0,0,0,0,0);
  2310. $a2=array($aacol2,0,0,0,0,0,0);
  2311. for($i=1;$i<=6;$i++){
  2312.     $a1[$i]=$aacol*$i;
  2313.     $a2[$i]=$aacol2+($aacol*($i-1));
  2314. }
  2315. // Create the graph.
  2316. $graph    = new Graph\Graph(700350);
  2317. $graph->SetScale('textlin');
  2318. $graph->SetMarginColor('white');
  2319. $graph->yaxis->SetTickPositions($a1,$a2);
  2320. //$graph->y2axis->SetTickPositions($a3);
  2321. $graph->SetBox(false);
  2322. // Setup title
  2323. $graph->title->Set($titre);
  2324. // Create the first bar
  2325. switch ($mod) {
  2326.        default:
  2327.        $bplotb = new Plot\BarPlot($data2ya);
  2328.        $bplotb->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  2329.        $bplotb->SetColor("#239B56");
  2330.        $bplotb->SetLegend("asia");
  2331.        
  2332.        // Create the second bar
  2333.        $bplot2b = new Plot\BarPlot($data2yb);
  2334.        $bplot2b->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  2335.        $bplot2b->SetColor("#C0392B");
  2336.        $bplot2b->SetLegend("euro ");
  2337.        $bplot3b = new Plot\BarPlot($data2yc);
  2338.        $bplot3b->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  2339.        $bplot3b->SetColor("#2874A6");
  2340.        $bplot3b->SetLegend("mouche");
  2341.        $bplot4b = new Plot\BarPlot($data2yd);
  2342.        $bplot4b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2343.        $bplot4b->SetColor("#717D7E");/**/
  2344.        $bplot4b->SetLegend("papillon");
  2345.        $bplot5b = new Plot\BarPlot($data2ye);
  2346.        $bplot5b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2347.        $bplot5b->SetColor("#717D7E");/**/
  2348.        $bplot5b->SetLegend("orien");
  2349.        
  2350.        
  2351.        
  2352.        // And join them in an accumulated bar
  2353.        
  2354.        // And join them in an accumulated bar
  2355.        $p2 = new Plot\LinePlot($con2);
  2356.        $p2->mark->SetType(MARK_FILLEDCIRCLE);
  2357.        $p2->mark->SetFillColor('green');
  2358.        $p2->mark->SetWidth(4);
  2359.        $p2->SetColor('yellow');
  2360.        $p2->SetCenter();
  2361.        $p2->SetLegend("prod");
  2362.        $bplot = new Plot\BarPlot($data1ya);
  2363.        $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  2364.        $bplot->SetColor("#239B56");
  2365.        $bplot->SetLegend("asia ");
  2366.        // Create the second bar
  2367.        $bplot2 = new Plot\BarPlot($data1yb);
  2368.        $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  2369.        $bplot2->SetColor("#C0392B");
  2370.        $bplot2->SetLegend("euro");
  2371.        $bplot3 = new Plot\BarPlot($data1yc);
  2372.        $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  2373.        $bplot3->SetColor("#2874A6");
  2374.        $bplot3->SetLegend("mouche");
  2375.        $bplot4 = new Plot\BarPlot($data1yd);
  2376.        $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2377.        $bplot4->SetColor("#717D7E");
  2378.        $bplot4->SetLegend("papillon");/**/
  2379.        $bplot5 = new Plot\BarPlot($data1ye);
  2380.        $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2381.        $bplot5->SetColor("#717D7E");
  2382.        $bplot5->SetLegend("orien");/**/
  2383.        
  2384.        $p1 = new Plot\LinePlot($con1);
  2385.        $p1->mark->SetType(MARK_FILLEDCIRCLE);
  2386.        $p1->mark->SetFillColor('blue');
  2387.        $p1->mark->SetWidth(4);
  2388.        $p1->SetColor('blue');
  2389.        $p1->SetCenter();
  2390.        $p1->SetLegend("prod");;
  2391.     
  2392.        
  2393. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  2394. $accbplotb = new Plot\AccBarPlot([ $bplot5b,$bplot4b,$bplot3b,$bplot2b,$bplotb]);
  2395. $bar = new plot\GroupBarPlot(array($accbplot,$accbplotb));
  2396. //$graph->Add($accbplot);
  2397. $graph->Add($bar);
  2398. $graph->Add($p1);
  2399. $graph->Add($p2);
  2400. break;
  2401.     case "6m":
  2402.         case "an":
  2403.             $bplot = new Plot\BarPlot($data1ya);
  2404.             $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  2405.             $bplot->SetColor("#239B56");
  2406.             $bplot->SetLegend("asia ");
  2407.             // Create the second bar
  2408.             $bplot2 = new Plot\BarPlot($data1yb);
  2409.             $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  2410.             $bplot2->SetColor("#C0392B");
  2411.             $bplot2->SetLegend("euro");
  2412.             $bplot3 = new Plot\BarPlot($data1yc);
  2413.             $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  2414.             $bplot3->SetColor("#2874A6");
  2415.             $bplot3->SetLegend("mouche");
  2416.             $bplot4 = new Plot\BarPlot($data1yd);
  2417.             $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2418.             $bplot4->SetColor("#717D7E");
  2419.             $bplot4->SetLegend("papillon");/**/
  2420.             $bplot5 = new Plot\BarPlot($data1ye);
  2421.             $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2422.             $bplot5->SetColor("#717D7E");
  2423.             $bplot5->SetLegend("orien");/**/
  2424.             
  2425.             $p1 = new Plot\LinePlot($con1);
  2426.             $p1->mark->SetType(MARK_FILLEDCIRCLE);
  2427.             $p1->mark->SetFillColor('blue');
  2428.             $p1->mark->SetWidth(4);
  2429.             $p1->SetColor('blue');
  2430.             $p1->SetCenter();
  2431.             $p1->SetLegend("prod");;
  2432. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  2433. $graph->Add($accbplot);
  2434. $graph->Add($p1);
  2435. break;
  2436.         }
  2437. //dd($con1);
  2438. $graph->SetMargin(40,20,46,80);
  2439. $graph->xaxis->SetTickLabels($moisfini);
  2440. if($pdf=="oui"){
  2441.     switch ($mod) {
  2442.         case "6m":
  2443.             $fichiergrah=$this->getParameter('grapph_directory').$dateinitila->getId().uniqid().uniqid()."produitgrapmoism.png";
  2444.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$dateinitila->getId().uniqid().uniqid()."produitgrapmoism.png";
  2445.             break;
  2446.         case "an":
  2447.             $fichiergrah=$this->getParameter('grapph_directory').$dateinitila->getId().uniqid().uniqid()."produitgrapanm.png";
  2448.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$dateinitila->getId().uniqid().uniqid()."produitgrapanm.png";
  2449.             break;
  2450.         default:
  2451.             $fichiergrah=$this->getParameter('grapph_directory').$dateinitila->getId().uniqid().uniqid()."produitgrap2anm.png";
  2452.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$dateinitila->getId().uniqid().uniqid()."produitgrap2anm.png";
  2453.             break;
  2454.     }
  2455.     if(file_exists($fichiergrah)){
  2456.         unlink($fichiergrah) ;
  2457.     }
  2458.     $graph->Stroke($fichiergrah);
  2459. return $fichiergrah;
  2460.     }else{
  2461.     $graph->Stroke();
  2462.     }
  2463. //$graph->Stroke();
  2464.       /*  return $this->render('graph_jpgraph/index.html.twig', [
  2465.             'controller_name' => 'GraphJpgraphController',
  2466.         ]);*/
  2467.     }
  2468.     #[Route('/facconte/{pdf}/{idfac}/{idproduit}'name'facconte')]
  2469.     public function conte(string $pdf,int $idfac,
  2470.     int $idproduit,FactuRepository $factuRepository,
  2471.     LieuRepository $lieuRepository,
  2472.     InterfaitRepository $interfaitRepository,
  2473.     ClientRepository $clientRepository,
  2474.     FaclieuRepository $faclieuRepository,
  2475.     InterventionRepository $interventionRepository)
  2476.     {
  2477.      /*   $factu=$factuRepository->getidfactuform($idfac, $clientRepository, $lieuRepository, $faclieuRepository);
  2478.     $inter=[];
  2479.         foreach ($factu['lieuinfo'] as $k) {
  2480.             # code...
  2481.         
  2482.         $interf=$interventionRepository->getInterventionIdcontrat($k['lieuid']);
  2483.     
  2484.         foreach ($interf as $k) {
  2485.             if($k->getFact()==$idfac){
  2486.            $inter[]=$k;}
  2487.         }
  2488.     }
  2489. */
  2490.     $inter=[];
  2491.     if($idfac==0){
  2492.         $interf=$interventionRepository->touteinter();
  2493.     
  2494.         foreach ($interf as $k) {
  2495.            $inter[]=$k;
  2496.         }
  2497.   
  2498. }else{
  2499. $factu=$factuRepository->getidfactuform($idfac$clientRepository$lieuRepository$faclieuRepository);
  2500.         foreach ($factu['lieuinfo'] as $k) {
  2501.             # code...
  2502.         
  2503.         $interf=$interventionRepository->getInterventionIdcontrat($k['lieuid']);
  2504.     
  2505.         foreach ($interf as $k) {
  2506.             if($k->getFact()==$idfac){
  2507.            $inter[]=$k;}
  2508.         }
  2509.     }  
  2510.     }
  2511.    // dd($inter);
  2512.         $dateinitila=new Intervention;
  2513.     foreach ($inter as $k) {
  2514.        if($dateinitila->getDate()<=$k->getDate()){
  2515.         $dateinitila=$k;
  2516.        }
  2517.     }
  2518.     //dd($inter);
  2519.        // dd($intervention);
  2520.        $factu=$factuRepository->find($idfac);
  2521.         $servicedivers= new servicedivers();
  2522.         $dateini=date_timestamp_get($dateinitila->getdate());
  2523.         $moiact=date('n',$dateini);
  2524.       
  2525.         $date=time();
  2526.            $d=[];
  2527.           //  $d[]=date('d/m/y',time());
  2528.             foreach ($inter as $k) {
  2529.                 $a=date_timestamp_get($k->getdate());
  2530.               //  $d[]=date('d/m/y',$a);
  2531.                 if($date>$a){
  2532.                     $date=$a;
  2533.                 }
  2534.             }
  2535.            // $d[]=date('d/m/y',$date);
  2536.            // $d[]=date('d/m/y',$dateini);
  2537.            //
  2538.             $moid=date('m',$dateini);
  2539.             $and=date('y',$dateini);
  2540.            // $d[]=$moid;
  2541.           //  $d[]=$and;
  2542.             $valdeb=$moid+($and*12);
  2543.            // $d[]=$valdeb;
  2544.         $moi=date('m',$date);
  2545.         $an=date('y',$date);
  2546.     //   $d[]=$moi;
  2547.       //  $d[]=$an;
  2548.             $valfin=$moi+($an*12);
  2549.             $moi=($valdeb-$valfin)+1;
  2550.             
  2551.            // $d[]=$valfin;
  2552.            // $d[]=$moi;
  2553.           $mod="deux";
  2554.             if($moi<=6){
  2555.                 $mod="6m";
  2556.             }elseif($moi<=12){
  2557.                 $mod="an";
  2558.             }
  2559.            
  2560.            // $d[]=$mod;
  2561.          //dd($d);
  2562. $anact=date('y',$dateini);
  2563. $anact++;
  2564. $anact--;
  2565.          
  2566. //$titre="intervention"." ".$numcontre;
  2567. $titre="dernier relever le ".date('d/m/y',date_timestamp_get($dateinitila->getdate()));
  2568. $mois=array("jan","fev","mars","avr","mai",'juin',"juil","aout","sept","oct","nov","dec");
  2569. $i=11;
  2570. //echo $moiact."  nnn";
  2571. $moiact--;
  2572. $moisanscol=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  2573. $moisanscol6=array(array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0),array(0,0,0));
  2574. $moisanscolpres=array(array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0),array(0,0));
  2575. $moisfini=array("","","","","","","","","","","","");
  2576. //$d[]=$moiact;
  2577. switch ($mod) {
  2578.     case "6m":
  2579.         while($i>=0){
  2580.             //    echo $mois[$moiact]."  nn";
  2581.             $moisfini[($i-1)]=$mois[$moiact];
  2582.             $a=$moiact+1;
  2583.             $moisanscol6[$i]=array($a,$anact,2);
  2584.             $moisanscol6[($i-1)]=array($a,$anact,1);
  2585.             $moiact--;
  2586.             if($moiact==-1){
  2587.                 $moiact=11;$anact--;
  2588.             }
  2589.             $i--;$i--;
  2590.         }
  2591.         break;
  2592.     case "an":
  2593. while($i>=0){
  2594.     //    echo $mois[$moiact]."  nn";
  2595.     $moisfini[$i]=$mois[$moiact];
  2596.     $a=$moiact+1;
  2597.     $moisanscol[$i]=array($a,$anact);
  2598.     $moiact--;
  2599.     if($moiact==-1){
  2600.         $moiact=11;$anact--;
  2601.     }
  2602.     $i--;
  2603. }
  2604.         break;
  2605.     default:
  2606.         //2 anx
  2607. while($i>=0){
  2608.     //    echo $mois[$moiact]."  nn";
  2609.     $moisfini[$i]=$mois[$moiact];
  2610.     $a=$moiact+1;
  2611.     $moisanscol[$i]=array($a,$anact);
  2612.     $moisanscolpres[$i]=array($a,($anact-1));
  2613.     $moiact--;
  2614.     if($moiact==-1){
  2615.         $moiact=11;$anact--;
  2616.     }
  2617.     $i--;
  2618. }
  2619.         break;
  2620. }
  2621. //$d[]=$moisfini;
  2622. //$d[]=$moisanscol;
  2623. //$d[]=$moisanscolpres;
  2624. //dd($d);
  2625. $data1ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  2626. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2627. $data1yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  2628. $data1yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2629. $data1yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  2630. $data1ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  2631. $data2ya=[0,0,0,0,0,0,0,0,0,0,0,0];
  2632. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2633. $data2yc=[0,0,0,0,0,0,0,0,0,0,0,0];
  2634. $data2yb=[0,0,0,0,0,0,0,0,0,0,0,0];
  2635. $data2yd=[0,0,0,0,0,0,0,0,0,0,0,0];
  2636. $data2ye=[0,0,0,0,0,0,0,0,0,0,0,0];
  2637. $con1=[0,0,0,0,0,0,0,0,0,0,0,0];
  2638. $con2=[0,0,0,0,0,0,0,0,0,0,0,0];
  2639. $grigno=0;$remi=0;$reste=0;$conso=0;$plushaut=0;$plushautli=0;$diver=0;
  2640. $produitser= new produitService();$datr=[];$da=0;
  2641. $int=[];
  2642. $int2=[];
  2643. foreach ($inter as $re) {
  2644.    // dd($re);$da
  2645.    $int[]=$re;
  2646.     $grigno=0;$remi=0;$reste=0;$chan=0;$conso=0;$diver=0;
  2647. $interfa=$interfaitRepository->getinterfait($re->getId());
  2648.     $datr[$da]=[];
  2649.     $datr[$da]['inter']=$re;
  2650.     $datr[$da]['interfait']=$interfa;$dat=[];
  2651. foreach ($interfa as $interfai) {
  2652.     if($interfai->getPiegeancien()==$idproduit) { 
  2653. if($interfai->getClientfait()==0){}
  2654.     if($interfai->getinter()>=0){
  2655.         $int2[]=$interfai;
  2656.    // $dat[]=["grigno"=>$interfai->getGrign(),"remi"=>$interfai->getRemit(),"reste"=>$interfai->getReste(),"chan"=>$interfai->getChan(),"conso"=>$interfai->getConso()];
  2657.   
  2658.    $grigno=$grigno+$interfai->getGrign();
  2659.     $remi=$remi+$interfai->getRemit();
  2660.     $reste=$reste+$interfai->getReste();
  2661.     $chan=$chan+$interfai->getChan();
  2662.     $diver=$diver+$interfai->getConso();
  2663. //$interfai->getProduit()
  2664.    
  2665. $conso=$conso+$produitser->getidvol($interfai->getProduit());
  2666.       //  $dat[]=["consot"=>$conso,"chan"=>$interfai->getChan(),"reste"=>$interfai->getReste(),"remi"=>$interfai->getRemit(),"conso"=>$interfai->getConso(),"prod"=>$interfai->getProduit(),"prod2"=>$produitser->getidvol($interfai->getProduit())];
  2667.         }
  2668.    }
  2669.     } $dateinter=date_timestamp_get($re->getdate());
  2670.    // $datr[$da]['date']=date('d/m/y',$dateinter);
  2671.    // $datr[$da]['retour1']=$dat;
  2672.    // $datr[$da]['retour']=["grigno"=>$grigno,"remi"=>$remi,"reste"=>$reste,"chan"=>$chan,"conso"=>$conso];
  2673.         for($i=0$i<=11;$i++){
  2674.                    
  2675.             switch ($mod) {
  2676.                 case "6m":
  2677.                     
  2678.                    // dd($dateinter);
  2679.                     if($moisanscol6[$i][0]==date('m',$dateinter) && $moisanscol6[$i][1]==date('y',$dateinter) ){
  2680.                         $day15=0;
  2681.                         $d=date('d',$dateinter);
  2682.                         //    echo $d." l ";
  2683.                         if(1<=$d && $d<=15){
  2684.         
  2685.                             $day15=1;
  2686.                         }elseif(16<=$d && $d<=31){
  2687.                             $day15=2;
  2688.                         }
  2689.                         //    echo $day15." l  ".$re['id']." ffff<br>";
  2690.         
  2691.                         if($moisanscol6[$i][2]==$day15){
  2692.                           
  2693.                                 $data1ya[$i]=$reste+$data1ya[$i];
  2694.                                 $data1yb[$i]=$grigno+$data1yb[$i];
  2695.                                 $data1yc[$i]=$remi+$data1yc[$i];
  2696.                          
  2697.                                 $data1yd[$i]=$chan+$data1yd[$i];
  2698.                                 $data1ye[$i]=$diver+$data1ye[$i];
  2699.                                 
  2700.         //echo $con1[$i];
  2701.                             $con1[$i]=$con1[$i]+$conso;
  2702.                         //    echo " + ".$conso." = ".$con1[$i]." - ".$i."<br>";
  2703.                                 }
  2704.                     }
  2705.                             
  2706.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  2707.                     if($plushaut<=$a){
  2708.                         $plushaut=$a;}
  2709.                     if($plushautli<=$con1[$i]){
  2710.                         $plushautli=$con1[$i];}
  2711.                     break;
  2712.                 case "an":
  2713.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  2714.                         
  2715.                         $data1ya[$i]=$reste+$data1ya[$i];
  2716.                         $data1yb[$i]=$grigno+$data1yb[$i];
  2717.                         $data1yc[$i]=$remi+$data1yc[$i];
  2718.                         
  2719.                         $data1yd[$i]=$chan+$data1yd[$i];
  2720.                         $data1ye[$i]=$diver+$data1ye[$i];
  2721.                         
  2722.         
  2723.                         $con1[$i]=$con1[$i]+$conso;
  2724.                     }
  2725.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  2726.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  2727.                     if($plushaut<=$a){
  2728.                         $plushaut=$a;}
  2729.                     if($plushautli<=$con1[$i]){
  2730.                         $plushautli=$con1[$i];}
  2731.                     break;
  2732.                 default:
  2733.                     //2 anx
  2734.                     if($moisanscol[$i][0]==date('m',$dateinter) && $moisanscol[$i][1]==date('y',$dateinter) ){
  2735.                         
  2736.                         $data1ya[$i]=$reste+$data1ya[$i];
  2737.                         $data1yb[$i]=$grigno+$data1yb[$i];
  2738.                         $data1yc[$i]=$remi+$data1yc[$i];
  2739.                         
  2740.                             $data1yd[$i]=$chan+$data1yd[$i];
  2741.                             $data1ye[$i]=$diver+$data1ye[$i];
  2742.                         
  2743.                         $con1[$i]=$con1[$i]+$conso;
  2744.         
  2745.                     }
  2746.                     if($moisanscolpres[$i][0]==date('m',$dateinter) && $moisanscolpres[$i][1]==date('y',$dateinter) ){
  2747.                         
  2748.                         $data2ya[$i]=$reste+$data2yc[$i];
  2749.                         $data2yb[$i]=$grigno+$data2yb[$i];
  2750.                         $data2yc[$i]=$remi+$data2ya[$i];
  2751.                         
  2752.                             $data2yd[$i]=$chan+$data2yd[$i];
  2753.                             $data2ye[$i]=$diver+$data2ye[$i];
  2754.                         
  2755.                             $con2[$i]=$con2[$i]+$conso;
  2756.                     }
  2757.                     //    echo $con1[$i]." b  ".$data1ya[$i]." f ".$remi." ".$grigno." ".$re['id']." ".$i." <br>";
  2758.                     $a=$data1ya[$i]+$data1yb[$i]+$data1yc[$i]+$data1yd[$i]+$data1ye[$i];
  2759.                     if($plushaut<=$a){
  2760.                         $plushaut=$a;}
  2761.                     $a=$data2ya[$i]+$data2yb[$i]+$data2yc[$i]+$data2yd[$i]+$data2ye[$i];
  2762.                     if($plushaut<=$a){
  2763.                         $plushaut=$a;}
  2764.                 if($plushautli<=$con1[$i]){
  2765.                         $plushautli=$con1[$i];}
  2766.                     if($plushautli<=$con2[$i]){
  2767.                         $plushautli=$con2[$i];}
  2768.                     break;
  2769.             }
  2770.         
  2771.         
  2772.         //    echo $con1[$i]." h ".$con2[$i]." l ".$plushautli." id ".$re['id']."<br>";
  2773.         }
  2774.         $da++;
  2775. }
  2776. //dd($int,$int2);
  2777. //dd($data1ya,$data1yb,$data1yc,$data1yd,$data1ye);
  2778. //$datr[]=[$data1ya,$data1yb,$data1yc,$data1yd,$con1];
  2779. //$datr[]=[$data2ya,$data2yb,$data2yc,$data2yd,$con2];
  2780. //dd($datr);
  2781. $plushautli=$plushautli+100;
  2782. $aacol=$servicedivers->grahi($plushautli);
  2783. $ak=$aacol*6;
  2784. //echo $aacol." b ";
  2785. //    echo $aacol2." ".$aava." <br>";
  2786. //echo $aacol."<br>".$aacol2;
  2787. $a3=array(0,0,0,0,0,0,0,0);
  2788. for($i=1;$i<=6;$i++){
  2789.     $a3[$i]=$aacol*$i;
  2790. }
  2791. $v=$plushaut/3;//valeur max
  2792. if($v>=1){
  2793. $vm=$plushautli/$v;//valeur divition
  2794. $con1[0]=$con1[0]/$vm;
  2795. $con1[1]=$con1[1]/$vm;
  2796. $con1[2]=$con1[2]/$vm;
  2797. $con1[3]=$con1[3]/$vm;
  2798. $con1[4]=$con1[4]/$vm;
  2799. $con1[5]=$con1[5]/$vm;
  2800. $con1[6]=$con1[6]/$vm;
  2801. $con1[7]=$con1[7]/$vm;
  2802. $con1[8]=$con1[8]/$vm;
  2803. $con1[9]=$con1[9]/$vm;
  2804. $con1[10]=$con1[10]/$vm;
  2805. $con1[11]=$con1[11]/$vm;
  2806. $con2[0]=$con2[0]/$vm;
  2807. $con2[1]=$con2[1]/$vm;
  2808. $con2[2]=$con2[2]/$vm;
  2809. $con2[3]=$con2[3]/$vm;
  2810. $con2[4]=$con2[4]/$vm;
  2811. $con2[5]=$con2[5]/$vm;
  2812. $con2[6]=$con2[6]/$vm;
  2813. $con2[7]=$con2[7]/$vm;
  2814. $con2[8]=$con2[8]/$vm;
  2815. $con2[9]=$con2[9]/$vm;
  2816. $con2[10]=$con2[10]/$vm;
  2817. $con2[11]=$con2[11]/$vm;
  2818. }
  2819. $plushaut=$plushaut+100;
  2820. $aacol=$servicedivers->grahi($plushaut);
  2821. $aacol2=$aacol/2;
  2822. //    echo $aacol2." ".$aava." <br>";
  2823. //echo $aacol."<br>".$aacol2;
  2824. $a1=array(0,0,0,0,0,0,0,0);
  2825. $a2=array($aacol2,0,0,0,0,0,0);
  2826. for($i=1;$i<=6;$i++){
  2827.     $a1[$i]=$aacol*$i;
  2828.     $a2[$i]=$aacol2+($aacol*($i-1));
  2829. }
  2830. // Create the graph.
  2831. $graph    = new Graph\Graph(700350);
  2832. $graph->SetScale('textlin');
  2833. $graph->SetMarginColor('white');
  2834. $graph->yaxis->SetTickPositions($a1,$a2);
  2835. //$graph->y2axis->SetTickPositions($a3);
  2836. $graph->SetBox(false);
  2837. // Setup title
  2838. $graph->title->Set($titre);
  2839. // Create the first bar
  2840. switch ($mod) {
  2841.        default:
  2842.        $bplotb = new Plot\BarPlot($data2ya);
  2843.        $bplotb->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  2844.        $bplotb->SetColor("#239B56");
  2845.        $bplotb->SetLegend("asia");
  2846.        
  2847.        // Create the second bar
  2848.        $bplot2b = new Plot\BarPlot($data2yb);
  2849.        $bplot2b->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  2850.        $bplot2b->SetColor("#C0392B");
  2851.        $bplot2b->SetLegend("euro ");
  2852.        $bplot3b = new Plot\BarPlot($data2yc);
  2853.        $bplot3b->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  2854.        $bplot3b->SetColor("#2874A6");
  2855.        $bplot3b->SetLegend("mouche");
  2856.        $bplot4b = new Plot\BarPlot($data2yd);
  2857.        $bplot4b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2858.        $bplot4b->SetColor("#717D7E");/**/
  2859.        $bplot4b->SetLegend("papillon");
  2860.        $bplot5b = new Plot\BarPlot($data2ye);
  2861.        $bplot5b->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2862.        $bplot5b->SetColor("#717D7E");/**/
  2863.        $bplot5b->SetLegend("orien");
  2864.        
  2865.        
  2866.        
  2867.        // And join them in an accumulated bar
  2868.        
  2869.        // And join them in an accumulated bar
  2870.        $p2 = new Plot\LinePlot($con2);
  2871.        $p2->mark->SetType(MARK_FILLEDCIRCLE);
  2872.        $p2->mark->SetFillColor('green');
  2873.        $p2->mark->SetWidth(4);
  2874.        $p2->SetColor('yellow');
  2875.        $p2->SetCenter();
  2876.        $p2->SetLegend("prod");
  2877.        $bplot = new Plot\BarPlot($data1ya);
  2878.        $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  2879.        $bplot->SetColor("#239B56");
  2880.        $bplot->SetLegend("asia ");
  2881.        // Create the second bar
  2882.        $bplot2 = new Plot\BarPlot($data1yb);
  2883.        $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  2884.        $bplot2->SetColor("#C0392B");
  2885.        $bplot2->SetLegend("euro");
  2886.        $bplot3 = new Plot\BarPlot($data1yc);
  2887.        $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  2888.        $bplot3->SetColor("#2874A6");
  2889.        $bplot3->SetLegend("mouche");
  2890.        $bplot4 = new Plot\BarPlot($data1yd);
  2891.        $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2892.        $bplot4->SetColor("#717D7E");
  2893.        $bplot4->SetLegend("papillon");/**/
  2894.        $bplot5 = new Plot\BarPlot($data1ye);
  2895.        $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2896.        $bplot5->SetColor("#717D7E");
  2897.        $bplot5->SetLegend("orien");/**/
  2898.        
  2899.        $p1 = new Plot\LinePlot($con1);
  2900.        $p1->mark->SetType(MARK_FILLEDCIRCLE);
  2901.        $p1->mark->SetFillColor('blue');
  2902.        $p1->mark->SetWidth(4);
  2903.        $p1->SetColor('blue');
  2904.        $p1->SetCenter();
  2905.        $p1->SetLegend("prod");;
  2906.     
  2907.        
  2908. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  2909. $accbplotb = new Plot\AccBarPlot([ $bplot5b,$bplot4b,$bplot3b,$bplot2b,$bplotb]);
  2910. $bar = new plot\GroupBarPlot(array($accbplot,$accbplotb));
  2911. //$graph->Add($accbplot);
  2912. $graph->Add($bar);
  2913. $graph->Add($p1);
  2914. $graph->Add($p2);
  2915. break;
  2916.     case "6m":
  2917.         case "an":
  2918.             $bplot = new Plot\BarPlot($data1ya);
  2919.             $bplot->SetFillGradient("#239B56""#239B56"GRAD_VERT);
  2920.             $bplot->SetColor("#239B56");
  2921.             $bplot->SetLegend("asia ");
  2922.             // Create the second bar
  2923.             $bplot2 = new Plot\BarPlot($data1yb);
  2924.             $bplot2->SetFillGradient("#C0392B""#C0392B"GRAD_VERT);
  2925.             $bplot2->SetColor("#C0392B");
  2926.             $bplot2->SetLegend("euro");
  2927.             $bplot3 = new Plot\BarPlot($data1yc);
  2928.             $bplot3->SetFillGradient("#2874A6""#2874A6"GRAD_VERT);
  2929.             $bplot3->SetColor("#2874A6");
  2930.             $bplot3->SetLegend("mouche");
  2931.             $bplot4 = new Plot\BarPlot($data1yd);
  2932.             $bplot4->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2933.             $bplot4->SetColor("#717D7E");
  2934.             $bplot4->SetLegend("papillon");/**/
  2935.             $bplot5 = new Plot\BarPlot($data1ye);
  2936.             $bplot5->SetFillGradient("#717D7E""#717D7E"GRAD_VERT);
  2937.             $bplot5->SetColor("#717D7E");
  2938.             $bplot5->SetLegend("orien");/**/
  2939.             
  2940.             $p1 = new Plot\LinePlot($con1);
  2941.             $p1->mark->SetType(MARK_FILLEDCIRCLE);
  2942.             $p1->mark->SetFillColor('blue');
  2943.             $p1->mark->SetWidth(4);
  2944.             $p1->SetColor('blue');
  2945.             $p1->SetCenter();
  2946.             $p1->SetLegend("prod");;
  2947. $accbplot = new Plot\AccBarPlot([$bplot5,$bplot4,$bplot3$bplot2,$bplot]);
  2948. $graph->Add($accbplot);
  2949. $graph->Add($p1);
  2950. break;
  2951.         }
  2952. //dd($con1);
  2953. $graph->SetMargin(40,20,46,80);
  2954. $graph->xaxis->SetTickLabels($moisfini);
  2955. if($pdf=="oui"){
  2956.     switch ($mod) {
  2957.         case "6m":
  2958.             $fichiergrah=$this->getParameter('grapph_directory').$dateinitila->getId().uniqid()."contegrapmoism.png";
  2959.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$dateinitila->getId().uniqid()."contegrapmoism.png";
  2960.             break;
  2961.         case "an":
  2962.             $fichiergrah=$this->getParameter('grapph_directory').$dateinitila->getId().uniqid()."contegrapanm.png";
  2963.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$dateinitila->getId().uniqid()."contegrapanm.png";
  2964.             break;
  2965.         default:
  2966.             $fichiergrah=$this->getParameter('grapph_directory').$dateinitila->getId().uniqid()."contegrap2anm.png";
  2967.             $fichiergrah2=$this->getParameter('grapph_directory_dos').$dateinitila->getId().uniqid()."contegrap2anm.png";
  2968.             break;
  2969.     }
  2970.     if(file_exists($fichiergrah)){
  2971.         unlink($fichiergrah) ;
  2972.     }
  2973.     $graph->Stroke($fichiergrah);
  2974.    
  2975. return $fichiergrah;
  2976.     }else{
  2977.     $graph->Stroke();
  2978.     }
  2979. //$graph->Stroke();
  2980.       /*  return $this->render('graph_jpgraph/index.html.twig', [
  2981.             'controller_name' => 'GraphJpgraphController',
  2982.         ]);*/
  2983.     }
  2984.    }