src/Controller/StatController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  8. use \PhpOffice\PhpSpreadsheet\Spreadsheet;
  9. use \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
  10. use \PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  11. use Symfony\Component\Filesystem\Filesystem;
  12. use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  15. class StatController  extends AbstractController
  16. {
  17.     /**
  18.      * @IsGranted("ROLE_CRUD")
  19.      * @Route("/stats/synthese-equipement", name="stats_synthese_equipement")
  20.      */
  21.     public function syntheseEquipmentAction(TranslatorInterface $translator)
  22.   {
  23.         ini_set("memory_limit""-1");
  24.         set_time_limit(0);
  25.         ini_set('default_socket_timeout'600);
  26.         // print " ";
  27.         $sites = @$this->getUsedPortCount();
  28.         return $this->render('Stat/synthese_equipment.html.twig', array(
  29.             "sites"=>$sites,
  30.             'page_title' => $translator->trans('Synthèse Equipements'),
  31.         ));
  32.     }
  33.     /**
  34.      * @IsGranted("ROLE_CRUD")
  35.      * @Route("/stats/synthese-armoire", name="stats_synthese_rack")
  36.      */
  37.     public function syntheseRackAction(TranslatorInterface $translator)
  38.   {
  39.         ini_set("memory_limit""-1");
  40.         set_time_limit(0);
  41.         ini_set('default_socket_timeout'600);
  42.         // print " ";
  43.         $sites = @$this->getUsedPortCount();
  44.         return $this->render('Stat/synthese_rack.html.twig', array(
  45.             "sites"=>$sites,
  46.             'page_title' => $translator->trans('Synthèse Armoires'),
  47.         ));
  48.     }
  49.     /**
  50.      * @IsGranted("ROLE_CRUD")
  51.      * @Route("/stats/synthese-equipement/excel", name="stats_synthese_equipement_excel")
  52.      */
  53.     public function syntheseEquipmentExcelAction(TranslatorInterface $translator)
  54.   {
  55.         ini_set("memory_limit""-1");
  56.         set_time_limit(0);
  57.         ini_set('default_socket_timeout'600);
  58.         // print " ";
  59.         $sites = @$this->getUsedPortCount();
  60.         $spreadsheet = new Spreadsheet();
  61.         $spreadsheet->getProperties()
  62.                       ->setCreator("FiberLink App")
  63.                       ->setLastModifiedBy("FiberLink App")
  64.                       ->setTitle("Synthèse Equipement")
  65.                       ->setSubject("Synthèse Equipement")
  66.                       ->setDescription("Synthèse Equipement")
  67.                       ->setKeywords("Synthèse Equipement")
  68.                       ->setCategory("Synthèse Equipement");
  69.         // Create a new worksheet called "My Data"
  70.         $myWorkSheet = new Worksheet($spreadsheet'Synthèse equipement');
  71.         // Attach the "My Data" worksheet as the first worksheet in the Spreadsheet object
  72.         $spreadsheet->addSheet($myWorkSheet0);
  73.         $spreadsheet->setActiveSheetIndex(0);
  74.         $spreadsheet->getActiveSheet()
  75.                         ->setCellValue('A1''Site');
  76.         $spreadsheet->getActiveSheet()
  77.                         ->setCellValue('B1''Salle');
  78.         $spreadsheet->getActiveSheet()
  79.                         ->setCellValue('C1''Armoire');
  80.         $spreadsheet->getActiveSheet()
  81.                         ->setCellValue('D1''Équipement');
  82.         $spreadsheet->getActiveSheet()
  83.                         ->setCellValue('E1''Module');
  84.         $spreadsheet->getActiveSheet()
  85.                         ->setCellValue('F1''Slot');
  86.         $spreadsheet->getActiveSheet()
  87.                         ->setCellValue('G1''Nombre de port libre');
  88.         $spreadsheet->getActiveSheet()
  89.                         ->setCellValue('H1''Capacité');
  90.         $spreadsheet->getActiveSheet()
  91.                         ->setCellValue('G2''MAX de nombre de port');
  92.         $spreadsheet->getActiveSheet()
  93.                         ->setCellValue('H2''SUM de Capacité');
  94.         $spreadsheet->getActiveSheet()->getStyle('G2:H2')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT);
  95.         $spreadsheet->getActiveSheet()->getRowDimension('1')->setRowHeight(50);
  96.         $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(25);
  97.         $spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(25);
  98.         $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(25);
  99.         $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(25);
  100.         $spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(25);
  101.         $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(25);
  102.         $spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(25);
  103.         $spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(25);
  104.         $styleArray = [
  105.           'font'=>['bold' => true,],
  106.           'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
  107.                           'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,],
  108.           'borders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,],
  109.           'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID'startColor'=>['argb' => 'FF9999FF',],],];
  110.         $spreadsheet->getActiveSheet()->getStyle('A1:H1')->applyFromArray($styleArray);
  111.         $siteColumnIndex 3;
  112.         $roomColumnIndex 3;
  113.         $rackColumnIndex 3;
  114.         $equipmentColumnIndex 3;
  115.         $moduleColumnIndex 3;
  116.         $interfaceColumnIndex 3;
  117.         $freePortColumnIndex 3;
  118.         $capacityColumnIndex 3;
  119.         foreach ($sites["sites"] as $site) {
  120.           $spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  121.           $spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  122.           $spreadsheet->getActiveSheet()
  123.                           ->setCellValue('A'.$siteColumnIndex++, $site["name"]);
  124.           foreach ($site["rooms"]["roomsArray"] as $room) {
  125.             $spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  126.             $spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  127.             $spreadsheet->getActiveSheet()
  128.                             ->setCellValue('B'.$roomColumnIndex++, $room["name"]);
  129.             foreach ($room["racks"]["racksArray"] as $rack) {
  130.               $spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  131.               $spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  132.               $spreadsheet->getActiveSheet()
  133.                               ->setCellValue('C'.$rackColumnIndex++, $rack["name"]);
  134.               foreach ($rack["equipments"]["equipmentsArray"] as $equipment) {
  135.                 $spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  136.                 $spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  137.                 $spreadsheet->getActiveSheet()
  138.                                 ->setCellValue('D'.$equipmentColumnIndex++, $equipment["name"]);
  139.                 if (count($equipment["modules"]["modulesArray"]) > 0) {
  140.                   foreach ($equipment["modules"]["modulesArray"] as $module) {
  141.                     $spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  142.                     $spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  143.                     $spreadsheet->getActiveSheet()
  144.                                     ->setCellValue('E'.$moduleColumnIndex++, $module["name"]);
  145.                     foreach ($module["interfaces"]["interfacesArray"] as $interface) {
  146.                       $spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  147.                       $spreadsheet->getActiveSheet()
  148.                                       ->setCellValue('F'.$interfaceColumnIndex++, $interface["name"]);
  149.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  150.                       $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  151.                       $spreadsheet->getActiveSheet()
  152.                                       ->setCellValue('G'.$freePortColumnIndex++, $interface["counterCapacity"] - $interface["counterUsed"]);
  153.                       $spreadsheet->getActiveSheet()
  154.                                       ->setCellValue('H'.$capacityColumnIndex++, $interface["counterCapacity"]);
  155.                     }
  156.                     $spreadsheet->getActiveSheet()
  157.                                     ->setCellValue('E'.$freePortColumnIndex"     Total pour "$module["name"]);
  158.                     $spreadsheet->getActiveSheet()->mergeCells('E'. ($moduleColumnIndex-1).':E'. ($freePortColumnIndex-1));
  159.                     $spreadsheet->getActiveSheet()->mergeCells('E'$freePortColumnIndex.':F'$freePortColumnIndex);
  160.                     $interfaceColumnIndex++;
  161.                     $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  162.                     $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  163.                     $spreadsheet->getActiveSheet()
  164.                                     ->setCellValue('G'.$freePortColumnIndex++, $module["counterCapacity"] - $module["counterUsed"]);
  165.                     $spreadsheet->getActiveSheet()
  166.                                     ->setCellValue('H'.$capacityColumnIndex++, $module["counterCapacity"]);
  167.                     $moduleColumnIndex $freePortColumnIndex;
  168.                     // $moduleColumnIndex = $interfaceColumnIndex;
  169.                   }
  170.                 }
  171.                 else {
  172.                   foreach ($equipment["interfaces"]["interfacesArray"] as $interface) {
  173.                     $spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  174.                     $spreadsheet->getActiveSheet()
  175.                                     ->setCellValue('F'.$interfaceColumnIndex++, $interface["name"]);
  176.                     $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  177.                     $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  178.                     $spreadsheet->getActiveSheet()
  179.                                     ->setCellValue('G'.$freePortColumnIndex++, $interface["counterCapacity"] - $interface["counterUsed"]);
  180.                     $spreadsheet->getActiveSheet()
  181.                                     ->setCellValue('H'.$capacityColumnIndex++, $interface["counterCapacity"]);
  182.                   }
  183.                 }
  184.                 $spreadsheet->getActiveSheet()
  185.                                 ->setCellValue('D'.$freePortColumnIndex"     Total pour "$equipment["name"]);
  186.                 $spreadsheet->getActiveSheet()->mergeCells('D'. ($equipmentColumnIndex-1).':D'. ($freePortColumnIndex-1));
  187.                 $spreadsheet->getActiveSheet()->mergeCells('D'$freePortColumnIndex.':F'$freePortColumnIndex);
  188.                 $interfaceColumnIndex++;
  189.                 $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  190.                 $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  191.                 $spreadsheet->getActiveSheet()
  192.                                 ->setCellValue('G'.$freePortColumnIndex++, $equipment["counterCapacity"] - $equipment["counterUsed"]);
  193.                 $spreadsheet->getActiveSheet()
  194.                                 ->setCellValue('H'.$capacityColumnIndex++, $equipment["counterCapacity"]);
  195.                 $equipmentColumnIndex $freePortColumnIndex;
  196.                 $moduleColumnIndex $freePortColumnIndex;
  197.               }
  198.               $spreadsheet->getActiveSheet()
  199.                               ->setCellValue('C'.$freePortColumnIndex"     Total pour "$rack["name"]);
  200.               $spreadsheet->getActiveSheet()->mergeCells('C'. ($rackColumnIndex-1).':C'. ($freePortColumnIndex-1));
  201.               $spreadsheet->getActiveSheet()->mergeCells('C'$freePortColumnIndex.':F'$freePortColumnIndex);
  202.               $interfaceColumnIndex++;
  203.               $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  204.               $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  205.               $spreadsheet->getActiveSheet()
  206.                               ->setCellValue('G'.$freePortColumnIndex++, $rack["counterCapacity"] - $rack["counterUsed"]);
  207.               $spreadsheet->getActiveSheet()
  208.                               ->setCellValue('H'.$capacityColumnIndex++, $rack["counterCapacity"]);
  209.               $rackColumnIndex $freePortColumnIndex;
  210.               $equipmentColumnIndex $freePortColumnIndex;
  211.               $moduleColumnIndex $freePortColumnIndex;
  212.             }
  213.             $spreadsheet->getActiveSheet()
  214.                             ->setCellValue('B'.$freePortColumnIndex"     Total pour "$room["name"]);
  215.             $spreadsheet->getActiveSheet()->mergeCells('B'. ($roomColumnIndex-1).':B'. ($freePortColumnIndex-1));
  216.             $spreadsheet->getActiveSheet()->mergeCells('B'$freePortColumnIndex.':F'$freePortColumnIndex);
  217.             $interfaceColumnIndex++;
  218.             $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  219.             $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  220.             $spreadsheet->getActiveSheet()
  221.                             ->setCellValue('G'.$freePortColumnIndex++, $room["counterCapacity"] - $room["counterUsed"]);
  222.             $spreadsheet->getActiveSheet()
  223.                             ->setCellValue('H'.$capacityColumnIndex++, $room["counterCapacity"]);
  224.             $roomColumnIndex $freePortColumnIndex;
  225.             $rackColumnIndex $freePortColumnIndex;
  226.             $equipmentColumnIndex $freePortColumnIndex;
  227.             $moduleColumnIndex $freePortColumnIndex;
  228.           }
  229.           $spreadsheet->getActiveSheet()
  230.                           ->setCellValue('A'.$freePortColumnIndex"     Total pour "$site["name"]);
  231.           $spreadsheet->getActiveSheet()->mergeCells('A'. ($siteColumnIndex-1).':A'. ($freePortColumnIndex-1));
  232.           $spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'$freePortColumnIndex);
  233.           $interfaceColumnIndex++;
  234.           $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  235.           $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  236.           $spreadsheet->getActiveSheet()
  237.                           ->setCellValue('G'.$freePortColumnIndex++, $site["counterCapacity"] - $site["counterUsed"]);
  238.           $spreadsheet->getActiveSheet()
  239.                           ->setCellValue('H'.$capacityColumnIndex++, $site["counterCapacity"]);
  240.           $siteColumnIndex $freePortColumnIndex;
  241.           $roomColumnIndex $freePortColumnIndex;
  242.           $rackColumnIndex $freePortColumnIndex;
  243.           $equipmentColumnIndex $freePortColumnIndex;
  244.           $moduleColumnIndex $freePortColumnIndex;
  245.         }
  246.         $spreadsheet->getActiveSheet()
  247.                         ->setCellValue('A'.$freePortColumnIndex"     Total Général ");
  248.         $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  249.         $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  250.         $spreadsheet->getActiveSheet()
  251.                         ->setCellValue('G'.$freePortColumnIndex$sites["counterCapacity"] - $sites["counterUsed"]);
  252.         $spreadsheet->getActiveSheet()
  253.                         ->setCellValue('H'.$capacityColumnIndex$sites["counterCapacity"]);
  254.         $spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'$freePortColumnIndex);
  255.         $writer = new Xlsx($spreadsheet);
  256.         $writer->save("Synthèse_equipement.xlsx");
  257.         // $excelPath = $this->getParameter('dir.downloads').'/synthèse_equipement.xlsx';
  258.         return $this->file("Synthèse_equipement.xlsx""Synthèse_equipement.xlsx");
  259.         // return new Response("hi");
  260.     }
  261.     /**
  262.      * @IsGranted("ROLE_CRUD")
  263.      * @Route("/stats/synthese-rack/excel", name="stats_synthese_rack_excel")
  264.      */
  265.     public function syntheseRackExcelAction(TranslatorInterface $translator)
  266.   {
  267.         ini_set("memory_limit""-1");
  268.         set_time_limit(0);
  269.         ini_set('default_socket_timeout'600);
  270.         // print " ";
  271.         $sites = @$this->getUsedPortCount();
  272.         $spreadsheet = new Spreadsheet();
  273.         $spreadsheet->getProperties()
  274.                       ->setCreator("FiberLink App")
  275.                       ->setLastModifiedBy("FiberLink App")
  276.                       ->setTitle("Synthèse Armoire")
  277.                       ->setSubject("Synthèse Armoire")
  278.                       ->setDescription("Synthèse Armoire")
  279.                       ->setKeywords("Synthèse Armoire")
  280.                       ->setCategory("Synthèse Armoire");
  281.         // Create a new worksheet called "My Data"
  282.         $myWorkSheet = new Worksheet($spreadsheet'Synthèse Armoire');
  283.         // Attach the "My Data" worksheet as the first worksheet in the Spreadsheet object
  284.         $spreadsheet->addSheet($myWorkSheet0);
  285.         $spreadsheet->setActiveSheetIndex(0);
  286.         $spreadsheet->getActiveSheet()
  287.                         ->setCellValue('A1''Site');
  288.         $spreadsheet->getActiveSheet()
  289.                         ->setCellValue('B1''Salle');
  290.         $spreadsheet->getActiveSheet()
  291.                         ->setCellValue('C1''Armoire');
  292.         $spreadsheet->getActiveSheet()
  293.                         ->setCellValue('D1''Équipement');
  294.         $spreadsheet->getActiveSheet()
  295.                         ->setCellValue('E1''Module');
  296.         $spreadsheet->getActiveSheet()
  297.                         ->setCellValue('F1''Slot');
  298.         $spreadsheet->getActiveSheet()
  299.                         ->setCellValue('G1''Taux d\'occupation');
  300.         $spreadsheet->getActiveSheet()
  301.                         ->setCellValue('H1''Capacité');
  302.         $spreadsheet->getActiveSheet()
  303.                         ->setCellValue('G2''MAX de nombre de port');
  304.         $spreadsheet->getActiveSheet()
  305.                         ->setCellValue('H2''SUM de Capacité');
  306.         $spreadsheet->getActiveSheet()->getStyle('G2:H2')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT);
  307.         $spreadsheet->getActiveSheet()->getRowDimension('1')->setRowHeight(50);
  308.         $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(25);
  309.         $spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(25);
  310.         $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(25);
  311.         $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(25);
  312.         $spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(25);
  313.         $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(25);
  314.         $spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(25);
  315.         $spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(25);
  316.         $styleArray = [
  317.           'font'=>['bold' => true,],
  318.           'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
  319.                           'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,],
  320.           'borders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,],
  321.           'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID'startColor'=>['argb' => 'FF9999FF',],],];
  322.         $spreadsheet->getActiveSheet()->getStyle('A1:H1')->applyFromArray($styleArray);
  323.         $siteColumnIndex 3;
  324.         $roomColumnIndex 3;
  325.         $rackColumnIndex 3;
  326.         $equipmentColumnIndex 3;
  327.         $moduleColumnIndex 3;
  328.         $interfaceColumnIndex 3;
  329.         $freePortColumnIndex 3;
  330.         $capacityColumnIndex 3;
  331.         foreach ($sites["sites"] as $site) {
  332.           $spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  333.           $spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  334.           $spreadsheet->getActiveSheet()
  335.                           ->setCellValue('A'.$siteColumnIndex++, $site["name"]);
  336.           foreach ($site["rooms"]["roomsArray"] as $room) {
  337.             $spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  338.             $spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  339.             $spreadsheet->getActiveSheet()
  340.                             ->setCellValue('B'.$roomColumnIndex++, $room["name"]);
  341.             foreach ($room["racks"]["racksArray"] as $rack) {
  342.               $spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  343.               $spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  344.               $spreadsheet->getActiveSheet()
  345.                               ->setCellValue('C'.$rackColumnIndex++, $rack["name"]);
  346.               foreach ($rack["equipments"]["equipmentsArray"] as $equipment) {
  347.                 $spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  348.                 $spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  349.                 $spreadsheet->getActiveSheet()
  350.                                 ->setCellValue('D'.$equipmentColumnIndex++, $equipment["name"]);
  351.                 if (count($equipment["modules"]["modulesArray"]) > 0) {
  352.                   foreach ($equipment["modules"]["modulesArray"] as $module) {
  353.                     $spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
  354.                     $spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  355.                     $spreadsheet->getActiveSheet()
  356.                                     ->setCellValue('E'.$moduleColumnIndex++, $module["name"]);
  357.                     foreach ($module["interfaces"]["interfacesArray"] as $interface) {
  358.                       $spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  359.                       $iName = isset($interface["name"]) ? $interface["name"]:"";
  360.                       $iCapacity = isset($interface["counterCapacity"]) ? $interface["counterCapacity"] : "";
  361.                       $spreadsheet->getActiveSheet()
  362.                                       ->setCellValue('F'.$interfaceColumnIndex++, $iName);
  363.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  364.                       $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  365.                       
  366.                       $tempOccupation = isset($interface["counterCapacity"]) ? number_format(($interface["counterUsed"]/$interface["counterCapacity"])*1002) : 100;
  367.                       $spreadsheet->getActiveSheet()
  368.                                       ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  369.                       if ($tempOccupation == 0) {
  370.                         $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  371.                                       ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  372.                                       ->getStartColor()->setARGB('FF00FF00');
  373.                       }
  374.                       elseif ($tempOccupation 1) {
  375.                         $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  376.                                       ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  377.                                       ->getStartColor()->setARGB('FFFFA500');
  378.                       }
  379.                       else {
  380.                         $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  381.                                       ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  382.                                       ->getStartColor()->setARGB('FFFF0000');
  383.                       }
  384.                       $spreadsheet->getActiveSheet()
  385.                                       ->setCellValue('H'.$capacityColumnIndex++, $iCapacity);
  386.                     }
  387.                     $spreadsheet->getActiveSheet()
  388.                                     ->setCellValue('E'.$freePortColumnIndex"     Total pour "$module["name"]);
  389.                     $spreadsheet->getActiveSheet()->mergeCells('E'. ($moduleColumnIndex-1).':E'. ($freePortColumnIndex-1));
  390.                     $spreadsheet->getActiveSheet()->mergeCells('E'$freePortColumnIndex.':F'$freePortColumnIndex);
  391.                     $interfaceColumnIndex++;
  392.                     $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  393.                     $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  394.                     $tempOccupation number_format(($module["counterUsed"]/$module["counterCapacity"])*1002);
  395.                     $spreadsheet->getActiveSheet()
  396.                                     ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  397.                     if ($tempOccupation == 0) {
  398.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  399.                                     ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  400.                                     ->getStartColor()->setARGB('FF00FF00');
  401.                     }
  402.                     elseif ($tempOccupation 1) {
  403.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  404.                                     ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  405.                                     ->getStartColor()->setARGB('FFFFA500');
  406.                     }
  407.                     else {
  408.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  409.                                     ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  410.                                     ->getStartColor()->setARGB('FFFF0000');
  411.                     }
  412.                     $spreadsheet->getActiveSheet()
  413.                                     ->setCellValue('H'.$capacityColumnIndex++, $module["counterCapacity"]);
  414.                     $moduleColumnIndex $freePortColumnIndex;
  415.                     // $moduleColumnIndex = $interfaceColumnIndex;
  416.                   }
  417.                 }
  418.                 else {
  419.                   foreach ($equipment["interfaces"]["interfacesArray"] as $interface) {
  420.                     $iName = isset($interface["name"]) ? $interface["name"]:"";
  421.                     $iCapacity = isset($interface["counterCapacity"]) ? $interface["counterCapacity"] : "";
  422.                     $spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  423.                     $spreadsheet->getActiveSheet()
  424.                                     ->setCellValue('F'.$interfaceColumnIndex++, $iName);
  425.                     $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  426.                     $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  427.                     $tempOccupation = isset($interface["counterCapacity"]) ? number_format(($interface["counterUsed"]/$interface["counterCapacity"])*1002) : 100;
  428.                     // $tempOccupation = number_format(($interface["counterUsed"]/$interface["counterCapacity"])*100, 2);
  429.                     $spreadsheet->getActiveSheet()
  430.                                     ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  431.                     if ($tempOccupation == 0) {
  432.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  433.                                     ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  434.                                     ->getStartColor()->setARGB('FF00FF00');
  435.                     }
  436.                     elseif ($tempOccupation 1) {
  437.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  438.                                     ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  439.                                     ->getStartColor()->setARGB('FFFFA500');
  440.                     }
  441.                     else {
  442.                       $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  443.                                     ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  444.                                     ->getStartColor()->setARGB('FFFF0000');
  445.                     }
  446.                     $spreadsheet->getActiveSheet()
  447.                                     ->setCellValue('H'.$capacityColumnIndex++, $iCapacity);
  448.                   }
  449.                 }
  450.                 $spreadsheet->getActiveSheet()
  451.                                 ->setCellValue('D'.$freePortColumnIndex"     Total pour "$equipment["name"]);
  452.                 $spreadsheet->getActiveSheet()->mergeCells('D'. ($equipmentColumnIndex-1).':D'. ($freePortColumnIndex-1));
  453.                 $spreadsheet->getActiveSheet()->mergeCells('D'$freePortColumnIndex.':F'$freePortColumnIndex);
  454.                 $interfaceColumnIndex++;
  455.                 $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  456.                 $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  457.                 $tempOccupation number_format(($equipment["counterUsed"]/$equipment["counterCapacity"])*1002);
  458.                 $spreadsheet->getActiveSheet()
  459.                                 ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  460.                 if ($tempOccupation == 0) {
  461.                   $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  462.                                 ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  463.                                 ->getStartColor()->setARGB('FF00FF00');
  464.                 }
  465.                 elseif ($tempOccupation 1) {
  466.                   $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  467.                                 ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  468.                                 ->getStartColor()->setARGB('FFFFA500');
  469.                 }
  470.                 else {
  471.                   $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  472.                                 ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  473.                                 ->getStartColor()->setARGB('FFFF0000');
  474.                 }
  475.                 $spreadsheet->getActiveSheet()
  476.                                 ->setCellValue('H'.$capacityColumnIndex++, $equipment["counterCapacity"]);
  477.                 $equipmentColumnIndex $freePortColumnIndex;
  478.                 $moduleColumnIndex $freePortColumnIndex;
  479.               }
  480.               $spreadsheet->getActiveSheet()
  481.                               ->setCellValue('C'.$freePortColumnIndex"     Total pour "$rack["name"]);
  482.               $spreadsheet->getActiveSheet()->mergeCells('C'. ($rackColumnIndex-1).':C'. ($freePortColumnIndex-1));
  483.               $spreadsheet->getActiveSheet()->mergeCells('C'$freePortColumnIndex.':F'$freePortColumnIndex);
  484.               $interfaceColumnIndex++;
  485.               $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  486.               $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  487.               $tempOccupation number_format(($rack["counterUsed"]/$rack["counterCapacity"])*1002);
  488.               $spreadsheet->getActiveSheet()
  489.                               ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  490.               if ($tempOccupation == 0) {
  491.                 $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  492.                               ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  493.                               ->getStartColor()->setARGB('FF00FF00');
  494.               }
  495.               elseif ($tempOccupation 1) {
  496.                 $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  497.                               ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  498.                               ->getStartColor()->setARGB('FFFFA500');
  499.               }
  500.               else {
  501.                 $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  502.                               ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  503.                               ->getStartColor()->setARGB('FFFF0000');
  504.               }
  505.               $spreadsheet->getActiveSheet()
  506.                               ->setCellValue('H'.$capacityColumnIndex++, $rack["counterCapacity"]);
  507.               $rackColumnIndex $freePortColumnIndex;
  508.               $equipmentColumnIndex $freePortColumnIndex;
  509.               $moduleColumnIndex $freePortColumnIndex;
  510.             }
  511.             $spreadsheet->getActiveSheet()
  512.                             ->setCellValue('B'.$freePortColumnIndex"     Total pour "$room["name"]);
  513.             $spreadsheet->getActiveSheet()->mergeCells('B'. ($roomColumnIndex-1).':B'. ($freePortColumnIndex-1));
  514.             $spreadsheet->getActiveSheet()->mergeCells('B'$freePortColumnIndex.':F'$freePortColumnIndex);
  515.             $interfaceColumnIndex++;
  516.             $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  517.             $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  518.             $tempOccupation number_format(($room["counterUsed"]/$room["counterCapacity"])*1002);
  519.             $spreadsheet->getActiveSheet()
  520.                             ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  521.             if ($tempOccupation == 0) {
  522.               $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  523.                             ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  524.                             ->getStartColor()->setARGB('FF00FF00');
  525.             }
  526.             elseif ($tempOccupation 1) {
  527.               $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  528.                             ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  529.                             ->getStartColor()->setARGB('FFFFA500');
  530.             }
  531.             else {
  532.               $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  533.                             ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  534.                             ->getStartColor()->setARGB('FFFF0000');
  535.             }
  536.             $spreadsheet->getActiveSheet()
  537.                             ->setCellValue('H'.$capacityColumnIndex++, $room["counterCapacity"]);
  538.             $roomColumnIndex $freePortColumnIndex;
  539.             $rackColumnIndex $freePortColumnIndex;
  540.             $equipmentColumnIndex $freePortColumnIndex;
  541.             $moduleColumnIndex $freePortColumnIndex;
  542.           }
  543.           $spreadsheet->getActiveSheet()
  544.                           ->setCellValue('A'.$freePortColumnIndex"     Total pour "$site["name"]);
  545.           $spreadsheet->getActiveSheet()->mergeCells('A'. ($siteColumnIndex-1).':A'. ($freePortColumnIndex-1));
  546.           $spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'$freePortColumnIndex);
  547.           $interfaceColumnIndex++;
  548.           $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  549.           $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  550.           $tempOccupation number_format(($site["counterUsed"]/$site["counterCapacity"])*100,2);
  551.           $spreadsheet->getActiveSheet()
  552.                           ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  553.           if ($tempOccupation == 0) {
  554.             $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  555.                           ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  556.                           ->getStartColor()->setARGB('FF00FF00');
  557.           }
  558.           elseif ($tempOccupation 1) {
  559.             $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  560.                           ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  561.                           ->getStartColor()->setARGB('FFFFA500');
  562.           }
  563.           else {
  564.             $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  565.                           ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  566.                           ->getStartColor()->setARGB('FFFF0000');
  567.           }
  568.           $spreadsheet->getActiveSheet()
  569.                           ->setCellValue('H'.$capacityColumnIndex++, $site["counterCapacity"]);
  570.           $siteColumnIndex $freePortColumnIndex;
  571.           $roomColumnIndex $freePortColumnIndex;
  572.           $rackColumnIndex $freePortColumnIndex;
  573.           $equipmentColumnIndex $freePortColumnIndex;
  574.           $moduleColumnIndex $freePortColumnIndex;
  575.         }
  576.         $spreadsheet->getActiveSheet()
  577.                         ->setCellValue('A'.$freePortColumnIndex"     Total Général ");
  578.         $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  579.         $spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  580.         $tempOccupation number_format(($sites["counterUsed"]/$sites["counterCapacity"])*1002);
  581.         $spreadsheet->getActiveSheet()
  582.                         ->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
  583.         if ($tempOccupation == 0) {
  584.           $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  585.                         ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  586.                         ->getStartColor()->setARGB('FF00FF00');
  587.         }
  588.         elseif ($tempOccupation 1) {
  589.           $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  590.                         ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  591.                         ->getStartColor()->setARGB('FFFFA500');
  592.         }
  593.         else {
  594.           $spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
  595.                         ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
  596.                         ->getStartColor()->setARGB('FFFF0000');
  597.         }
  598.         $spreadsheet->getActiveSheet()
  599.                         ->setCellValue('H'.$capacityColumnIndex$sites["counterCapacity"]);
  600.         $spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'$freePortColumnIndex);
  601.         $writer = new Xlsx($spreadsheet);
  602.         $writer->save("Synthèse_armoire.xlsx");
  603.         // $excelPath = $this->getParameter('dir.downloads').'/synthèse_equipement.xlsx';
  604.         return $this->file("Synthèse_armoire.xlsx""Synthèse_armoire.xlsx");
  605.         // return new Response("hi");
  606.     }
  607.     /**
  608.      * @IsGranted("ROLE_CRUD")
  609.      * @Route("/stats/diagramme/inter-site/trunk", name="stats_diagram_inter_site_trunk")
  610.      */
  611.     public function diagramTrunkInterSiteAction(TranslatorInterface $translator)
  612.   {
  613.         ini_set("memory_limit""-1");
  614.         set_time_limit(0);
  615.         ini_set('default_socket_timeout'600);
  616.         // print " ";
  617.         $portsAllTemp $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
  618.         $portsAll = array();
  619.         foreach ($portsAllTemp as $tempArray) {
  620.           foreach ($tempArray as $key => $value) {
  621.             $portsAll[] = $value;
  622.           }
  623.         }
  624.         $posXmax 1500;
  625.         $posYmax 700;
  626.         $posXinit 100;
  627.         $posX 0;
  628.         $posY 100;
  629.         $increment 200;
  630.         $elements = array();
  631.         $edges = array();
  632.         $sites $this->getDoctrine()->getRepository('App\Entity\Site')->findAll();
  633.         $counter = @$this->getUsedPortSiteRoomCount();
  634.         foreach ($sites as $site) {
  635.           $rooms = [];
  636.             $usedSite 0;
  637.             $usedRoom 0;
  638.             $capacitySite 0;
  639.             $capacityRoom 0;
  640.             if (isset($counter["sites"][$site->getId()])) {
  641.               $usedSite $counter["sites"][$site->getId()]["counterUsed"];
  642.               $capacitySite $counter["sites"][$site->getId()]["counterCapacity"];
  643.             }
  644.             $widthToAdd 0;
  645.             if ($capacitySite 1000) {
  646.                 $widthToAdd 5;
  647.             }
  648.             else if ($capacitySite 2000) {
  649.                 $widthToAdd 10;
  650.             }
  651.             else if ($capacitySite 3000) {
  652.                 $widthToAdd 15;
  653.             }
  654.             else if ($capacitySite 4000) {
  655.                 $widthToAdd 20;
  656.             }
  657.             else if ($capacitySite 5000) {
  658.                 $widthToAdd 25;
  659.             }
  660.             else if ($capacitySite 6000) {
  661.                 $widthToAdd 30;
  662.             }
  663.             else if ($capacitySite 7000) {
  664.                 $widthToAdd 35;
  665.             }
  666.             else if ($capacitySite 8000) {
  667.                 $widthToAdd 40;
  668.             }
  669.             else if ($capacitySite 9000) {
  670.                 $widthToAdd 45;
  671.             }
  672.             else {
  673.                 $widthToAdd 50;
  674.             }
  675.             if ($posX $posXmax) {
  676.                 $posX += $increment;
  677.             } else {
  678.                 $posX $posXinit;
  679.                 $posY += $increment;
  680.             }
  681.             $elements[] = ["id" => $site->getTitle(),
  682.                           "counterUsed" => ($capacitySite-$usedSite),
  683.                           "counterCapacity" => $capacitySite,
  684.                           "width" => 100$widthToAdd,
  685.                           "height" => 75$widthToAdd,
  686.                           // "width" => 100+ count($site->getRooms())*15,
  687.                           // "height" => 100+ count($site->getRooms())*10,
  688.                           "shape" => "ellipse",
  689.                           "positionX" => $site->getPositionX() ? $site->getPositionX() : $posX,
  690.                           "positionY" => $site->getPositionY() ? $site->getPositionY() : $posY
  691.                   ];
  692.         }
  693.         $trunks $this->getDoctrine()->getRepository('App\Entity\Trunk')->findAll();
  694.         foreach ($trunks as $trunk) {
  695.           $count 0;
  696.           $tempArray = array();
  697.           $element = array();
  698.           $tcfs $trunk->getCableFiber();
  699.           $ext $this->getDoctrine()->getRepository('App\Entity\LinkExtension')->findOneByTrunk($trunk);
  700.           foreach ($tcfs as $tcf) {
  701.               $exts $tcf->getExtensions();
  702.               $countExts count($exts);
  703.             if ($ext) {
  704.               if (in_array($tcf->getPortA()->getId(), $portsAll)) {
  705.                 $count++;
  706.               }
  707.               elseif (in_array($tcf->getPortB()->getId(), $portsAll)) {
  708.                 $count++;
  709.               }
  710.               else{
  711.                 // $exts = $tcf->getExtensions();
  712.                 // $countExts = count($exts);
  713.                 if ( $countExts 0) {
  714.                   if (in_array($exts[$countExts-1]->getPortB()->getId(), $portsAll)) {
  715.                     $count++;
  716.                   }
  717.                 }
  718.               }
  719.             }
  720.             //MODIFIED on 13 mars 2019
  721.             // $trunkSiteA = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
  722.             // $trunkSiteB = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
  723.             $target "";
  724.             $source $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
  725.             $target $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
  726.             if($source != $target){
  727.                 $element["id"] = $trunk->getTrunkID();
  728.                 $element["source"] = $source;
  729.                 $element["target"] = $target;
  730.                 $element["color"] = $trunk->getTypeCable()->getColor();
  731.                 $tempArray[$source "" $target] = $element;
  732.             }
  733.             foreach ($exts as $ext1) {
  734.                 $extSiteB $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
  735.                 $source $target;
  736.                 $target $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
  737.                 if($source != $target){
  738.                     $element = array();
  739.                     $element["id"] =$trunk->getTrunkID();
  740.                     $element["source"] = $source;
  741.                     $element["target"] = $target;
  742.                     $element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
  743.                     $tempArray[$source "" $target] = $element;
  744.                 }
  745.                 $trunkSiteB $extSiteB;
  746.             }
  747.             //old
  748.             // $element["id"] =$trunk->getTrunkID();
  749.             // $source = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
  750.             // $element["source"] = $source;
  751.             // $target = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
  752.             // if ($element["source"] != $target) {
  753.             //   $element["target"] = $target;
  754.             //   $element["color"] = $trunk->getTypeCable()->getColor();
  755.             //   $tempArray[$source . "" . $target] = $element;
  756.             //   $oldSource = $source;
  757.             //   $oldTarget = $target;
  758.             //   $gotIt = false;
  759.             //   foreach ($tcf->getExtensions() as $ext) {
  760.             //     if ($gotIt) {
  761.             //       $source = $tempArray[$source . "" . $target]["target"];
  762.             //       $oldSource = $source;
  763.             //       $oldTarget = $target;
  764.             //       $gotIt = false;
  765.             //     }
  766.             //     else {
  767.             //       $source = $tempArray[$oldSource . "" . $oldSarget]["target"];
  768.             //     }
  769.             //     $target = $ext->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
  770.             //     if ($source != $target) {
  771.             //       $element = array();
  772.             //       $element["id"] =$trunk->getTrunkID();
  773.             //       $element["source"] = $source;
  774.             //       $element["target"] = $target;
  775.             //       $element["color"] = ($ext->getTypeCable()) ? $ext->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
  776.             //       $tempArray[$source . "" . $target] = $element;
  777.             //       $gotIt = true;
  778.             //     }
  779.             //   }
  780.             // }
  781.             // else {
  782.             //   $added = false;
  783.             //   $oldSource = $element["source"];
  784.             //   foreach ($tcf->getExtensions() as $ext) {
  785.             //     if ($added) {
  786.             //       $source = $tempArray[$source . "" . $target]["target"];
  787.             //     }
  788.             //     else {
  789.             //       $source = $oldSource;
  790.             //     }
  791.             //     $target = $ext->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
  792.             //     if ($source != $target) {
  793.             //       $element = array();
  794.             //       $element["id"] =$trunk->getTrunkID();
  795.             //       $element["source"] = $source;
  796.             //       $element["target"] = $target;
  797.             //       $element["color"] = ($ext->getTypeCable()) ? $ext->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
  798.             //       $tempArray[$source . "" . $target] = $element;
  799.             //       $added = true;
  800.             //       $oldSource = $target;
  801.             //     }
  802.             //     else {
  803.             //       $added = false;
  804.             //     }
  805.             //   }
  806.             // }
  807.           }
  808.           $edgsArray = array();
  809.           foreach (array_values($tempArray) as $value) {
  810.             $capacity $trunk->getCapacity();
  811.             $value["id"] = $value["id"] . " (".($capacity-$count) ."/".$capacity.")";
  812.             //check if id exists
  813.             foreach ($edgsArray as $value1) {
  814.                 if($value1["id"] == $value["id"]){
  815.                     $value["id"] .= " ";
  816.                     break;
  817.                 }
  818.             }
  819.             $edgsArray[] = $value;
  820.           }
  821.           $edges array_merge($edges$edgsArray);
  822.           // $elements = array_merge($elements, array_values($tempArray));
  823.         }
  824.         // $fileSystem = new Filesystem();
  825.         // $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/assets/js/sigma/data.json';
  826.         // $fileSystem->dumpFile($upload_dir, json_encode($data));
  827.         return $this->render('Stat/diagram_trunk_inter-site.html.twig', array(
  828.             "sites"=>$sites,
  829.             'page_title' => $translator->trans('Diagramme Trunk Inter-site'),
  830.             'elements' => $elements,
  831.             'edges' => $edges
  832.         ));
  833.     }
  834.     /**
  835.      * @IsGranted("ROLE_CRUD")
  836.      * @Route("/stats/diagramme/intra-site/trunk/{id}", name="stats_diagram_intra_site_trunk")
  837.      */
  838.     public function diagramTrunkIntraSiteAction($idTranslatorInterface $translator)
  839.   {
  840.         ini_set("memory_limit""-1");
  841.         set_time_limit(0);
  842.         ini_set('default_socket_timeout'600);
  843.         // print " ";
  844.         $portsAllTemp $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
  845.         $portsAll = array();
  846.         foreach ($portsAllTemp as $temp) {
  847.           foreach ($temp as $key => $value) {
  848.             $portsAll[] = $value;
  849.           }
  850.         }
  851.         $posXmax 1500;
  852.         $posYmax 700;
  853.         $posXinit 100;
  854.         $posX 0;
  855.         $posY 100;
  856.         $increment 200;
  857.         $elements = array();
  858.         $edges = array();
  859.         $site $this->getDoctrine()->getRepository('App\Entity\Site')->findOneById($id);
  860.         $sites $this->getDoctrine()->getRepository('App\Entity\Site')->findAll();
  861.         $roomsSite $this->getDoctrine()->getRepository('App\Entity\Room')->findBySite($site);
  862.         $counter = @$this->getUsedPortSiteRoomCount();
  863.         $rooms = [];
  864.         foreach ($site->getRooms() as $room) {
  865.           $usedSite 0;
  866.           $usedRoom 0;
  867.           $capacitySite 0;
  868.           $capacityRoom 0;
  869.           if (isset($counter["sites"][$site->getId()])) {
  870.             $usedSite $counter["sites"][$site->getId()]["counterUsed"];
  871.             $capacitySite $counter["sites"][$site->getId()]["counterCapacity"];
  872.             if (isset($counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
  873.               $usedRoom $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"];
  874.               $capacityRoom $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"];
  875.             }
  876.           }
  877.           $widthToAdd 0;
  878.           if ($capacityRoom 1000) {
  879.               $widthToAdd 5;
  880.           }
  881.           else if ($capacityRoom 2000) {
  882.               $widthToAdd 10;
  883.           }
  884.           else if ($capacityRoom 3000) {
  885.               $widthToAdd 15;
  886.           }
  887.           else if ($capacityRoom 4000) {
  888.               $widthToAdd 20;
  889.           }
  890.           else if ($capacityRoom 5000) {
  891.               $widthToAdd 25;
  892.           }
  893.           else if ($capacityRoom 6000) {
  894.               $widthToAdd 30;
  895.           }
  896.           else if ($capacityRoom 7000) {
  897.               $widthToAdd 35;
  898.           }
  899.           else if ($capacityRoom 8000) {
  900.               $widthToAdd 40;
  901.           }
  902.           else if ($capacityRoom 9000) {
  903.               $widthToAdd 45;
  904.           }
  905.           else {
  906.               $widthToAdd 50;
  907.           }
  908.           if ($posX $posXmax) {
  909.               $posX += $increment;
  910.           } else {
  911.               $posX $posXinit;
  912.               $posY += $increment;
  913.           }
  914.           $rooms[] = ["id" => $room->getTitle(),
  915.                           "parent" => $site->getTitle(),
  916.                           "counterUsed" => ($capacityRoom-$usedRoom),
  917.                           "counterCapacity" => $capacityRoom,
  918.                           "width" => 100$widthToAdd,
  919.                           // "width" => 100+ count($room->getRacks())*40,
  920.                           "height" => 75$widthToAdd,
  921.                           // "height" => 100+ count($room->getRacks())*30,
  922.                           "shape" => "bottomroundrectangle",
  923.                           "positionX" => $room->getPositionX() ? $room->getPositionX() : $posX,
  924.                           "positionY" => $room->getPositionY() ? $room->getPositionY() : $posY
  925.                   ];
  926.         }
  927.         $elements[] = ["id" => $site->getTitle(),
  928.                         "counterUsed" => ($capacitySite-$usedSite),
  929.                         "counterCapacity" => $capacitySite,
  930.                         "width" => 100count($site->getRooms())*10,
  931.                         "height" => 100count($site->getRooms())*8,
  932.                         "shape" => "roundrectangle",
  933.                         "rooms" => $rooms
  934.                 ];
  935.         $trunks $this->getDoctrine()->getRepository('App\Entity\Trunk')->findAll();
  936.         foreach ($trunks as $trunk) {
  937.           $count 0;
  938.           $tempArray = array();
  939.           $element = array();
  940.           $tcfs $trunk->getCableFiber();
  941.           $ext $this->getDoctrine()->getRepository('App\Entity\LinkExtension')->findOneByTrunk($trunk);
  942.           foreach ($tcfs as $tcf) {
  943.                 $exts $tcf->getExtensions();
  944.                 $countExts count($exts);
  945.             if ($ext) {
  946.               if (in_array($tcf->getPortA()->getId(), $portsAll)) {
  947.                 $count++;
  948.               }
  949.               elseif (in_array($tcf->getPortB()->getId(), $portsAll)) {
  950.                 $count++;
  951.               }
  952.               else{
  953.                 if ( $countExts 0) {
  954.                   if (in_array($exts[$countExts-1]->getPortB()->getId(), $portsAll)) {
  955.                     $count++;
  956.                   }
  957.                 }
  958.               }
  959.             }
  960.             //MODIFIED on 28 fév 2019
  961.             $trunkSiteA $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
  962.             $trunkSiteB $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
  963.             $target "";
  964.             if($trunkSiteA == $id && $trunkSiteB == $id){
  965.                 $source $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  966.                 $target $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  967.                 if($source != $target){
  968.                     $element["id"] = $trunk->getTrunkID();
  969.                     $element["source"] = $source;
  970.                     $element["target"] = $target;
  971.                     $element["color"] = $trunk->getTypeCable()->getColor();
  972.                     $tempArray[$source "" $target] = $element;
  973.                 }
  974.             }
  975.             foreach ($exts as $ext1) {
  976.                 $extSiteB $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
  977.                 if($trunkSiteB == $id && $extSiteB == $id){
  978.                     $source $target;
  979.                     $target $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  980.                     if($source != $target){
  981.                         $element = array();
  982.                         $element["id"] =$trunk->getTrunkID();
  983.                         $element["source"] = $source;
  984.                         $element["target"] = $target;
  985.                         $element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
  986.                         $tempArray[$source "" $target] = $element;
  987.                     }
  988.                     $trunkSiteB $extSiteB;
  989.                 }
  990.                 else if($extSiteB == $id){
  991.                     $target $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  992.                     $trunkSiteB $extSiteB;
  993.                 }
  994.             }
  995.             // $element["id"] =$trunk->getTrunkID();
  996.             // $source = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  997.             // $element["source"] = $source;
  998.             //
  999.             // $target = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  1000.             // if ($element["source"] != $target) {
  1001.             //   $element["target"] = $target;
  1002.             //   $element["color"] = $trunk->getTypeCable()->getColor();
  1003.             //   $tempArray[$source . "" . $target] = $element;
  1004.             //   $oldSource = $source;
  1005.             //   $oldTarget = $target;
  1006.             //   $gotIt = false;
  1007.             //   foreach ($tcf->getExtensions() as $ext1) {
  1008.             //     if ($gotIt) {
  1009.             //       $source = $tempArray[$source . "" . $target]["target"];
  1010.             //       $oldSource = $source;
  1011.             //       $oldTarget = $target;
  1012.             //       $gotIt = false;
  1013.             //     }
  1014.             //     else {
  1015.             //       $source = $tempArray[$oldSource . "" . $oldSarget]["target"];
  1016.             //     }
  1017.             //     $target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  1018.             //     if ($source != $target) {
  1019.             //       $element = array();
  1020.             //       $element["id"] =$trunk->getTrunkID();
  1021.             //       $element["source"] = $source;
  1022.             //       $element["target"] = $target;
  1023.             //       $element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
  1024.             //       $tempArray[$source . "" . $target] = $element;
  1025.             //       $gotIt = true;
  1026.             //     }
  1027.             //   }
  1028.             // }
  1029.             // else {
  1030.             //   $added = false;
  1031.             //   $oldSource = $element["source"];
  1032.             //   foreach ($tcf->getExtensions() as $ext1) {
  1033.             //     if ($added) {
  1034.             //       $source = $tempArray[$source . "" . $target]["target"];
  1035.             //     }
  1036.             //     else {
  1037.             //       $source = $oldSource;
  1038.             //     }
  1039.             //     $target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
  1040.             //     if ($source != $target) {
  1041.             //       $element = array();
  1042.             //       $element["id"] =$trunk->getTrunkID();
  1043.             //       $element["source"] = $source;
  1044.             //       $element["target"] = $target;
  1045.             //       $element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
  1046.             //       $tempArray[$source . "" . $target] = $element;
  1047.             //       $added = true;
  1048.             //       $oldSource = $target;
  1049.             //     }
  1050.             //     else {
  1051.             //       $added = false;
  1052.             //     }
  1053.             //   }
  1054.             // }
  1055.           }
  1056.           $edgsArray = array();
  1057.           foreach (array_values($tempArray) as $value) {
  1058.             $capacity $trunk->getCapacity();
  1059.             $value["id"] = $value["id"] . " (".($capacity-$count) ."/".$capacity.")";
  1060.             foreach ($edgsArray as $value1) {
  1061.                 if($value1["id"] == $value["id"]){
  1062.                     $value["id"] .= " ";
  1063.                     break;
  1064.                 }
  1065.             }
  1066.             $edgsArray[] = $value;
  1067.           }
  1068.           $edges array_merge($edges$edgsArray);
  1069.           // $elements = array_merge($elements, array_values($tempArray));
  1070.         }
  1071.         // var_dump($edges);
  1072.         // $fileSystem = new Filesystem();
  1073.         // $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/assets/js/sigma/data.json';
  1074.         // $fileSystem->dumpFile($upload_dir, json_encode($data));
  1075.         $tempCap $elements[0]['counterCapacity'];
  1076.         $tempLib $elements[0]['counterCapacity'] - $elements[0]['counterUsed'];
  1077.         return $this->render('Stat/diagram_trunk_intra-site.html.twig', array(
  1078.             "sites"=>$sites,
  1079.             'page_title' => "Diagramme trunk intra-site: ".$site->getTitle()."(".$tempLib"/"$tempCap .")" ,
  1080.             'elements' => $elements,
  1081.             'edges' => $edges,
  1082.             'rooms' => $roomsSite,
  1083.             "site_id" => $id
  1084.         ));
  1085.     }
  1086.     /**
  1087.      * @IsGranted("ROLE_CRUD")
  1088.      * @Route("/stats/diagramme/intra-room/trunk/{id}", name="stats_diagram_intra_room_trunk")
  1089.      */
  1090.     public function diagramTrunkIntraRoomAction($idTranslatorInterface $translator)
  1091.   {
  1092.         ini_set("memory_limit""-1");
  1093.         set_time_limit(0);
  1094.         ini_set('default_socket_timeout'600);
  1095.         // print " ";
  1096.         $portsAllTemp $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
  1097.         $portsAll = array();
  1098.         foreach ($portsAllTemp as $temp) {
  1099.           foreach ($temp as $key => $value) {
  1100.             $portsAll[] = $value;
  1101.           }
  1102.         }
  1103.         $posXmax 1500;
  1104.         $posYmax 700;
  1105.         $posXinit 100;
  1106.         $posX 0;
  1107.         $posY 100;
  1108.         $increment 200;
  1109.         $elements = array();
  1110.         $edges = array();
  1111.         $room $this->getDoctrine()->getRepository('App\Entity\Room')->findOneById($id);
  1112.         $site $room->getSite();
  1113.         $rooms $this->getDoctrine()->getRepository('App\Entity\Room')->findBySite($site);
  1114.         $counter = @$this->getUsedPortSiteRoomCount();
  1115.         $racks = [];
  1116.         foreach ($room->getRacks() as $rack) {
  1117.           $usedSite 0;
  1118.           $usedRoom 0;
  1119.           $usedRack 0;
  1120.           $capacitySite 0;
  1121.           $capacityRoom 0;
  1122.           $capacityRack 0;
  1123.           if (isset($counter["sites"][$site->getId()])) {
  1124.             // $usedSite = $counter["sites"][$site->getId()]["counterUsed"];
  1125.             // $capacitySite = $counter["sites"][$site->getId()]["counterCapacity"];
  1126.             if (isset($counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
  1127.               $usedRoom $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"];
  1128.               $capacityRoom $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"];
  1129.               if (isset($counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"])) {
  1130.                 try{
  1131.                   $usedRack $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"];
  1132.                   $capacityRack $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterCapacity"];
  1133.                 }
  1134.                 catch(Exception $ex){}
  1135.                 
  1136.               }
  1137.             }
  1138.           }
  1139.           $widthToAdd 0;
  1140.           if ($capacityRack 100) {
  1141.               $widthToAdd 5;
  1142.           }
  1143.           else if ($capacityRack 200) {
  1144.               $widthToAdd 10;
  1145.           }
  1146.           else if ($capacityRack 300) {
  1147.               $widthToAdd 15;
  1148.           }
  1149.           else if ($capacityRack 400) {
  1150.               $widthToAdd 20;
  1151.           }
  1152.           else if ($capacityRack 500) {
  1153.               $widthToAdd 25;
  1154.           }
  1155.           else if ($capacityRack 600) {
  1156.               $widthToAdd 30;
  1157.           }
  1158.           else if ($capacityRack 700) {
  1159.               $widthToAdd 35;
  1160.           }
  1161.           else if ($capacityRack 800) {
  1162.               $widthToAdd 40;
  1163.           }
  1164.           else if ($capacityRack 900) {
  1165.               $widthToAdd 45;
  1166.           }
  1167.           else {
  1168.               $widthToAdd 50;
  1169.           }
  1170.           if ($posX $posXmax) {
  1171.               $posX += $increment;
  1172.           } else {
  1173.               $posX $posXinit;
  1174.               $posY += $increment;
  1175.           }
  1176.           $racks[] = ["id" => $rack->getTitle(),
  1177.                           "parent" => $room->getTitle(),
  1178.                           "counterUsed" => ($capacityRack-$usedRack),
  1179.                           "counterCapacity" => $capacityRack $capacityRack 0,
  1180.                           "width" => 50$widthToAdd,
  1181.                           // "width" => 100+ count($room->getRacks())*40,
  1182.                           "height" => 100$widthToAdd,
  1183.                           // "height" => 100+ count($room->getRacks())*30,
  1184.                           "shape" => "rectangle",
  1185.                           "positionX" => $rack->getPositionX() ? $rack->getPositionX() : $posX,
  1186.                           "positionY" => $rack->getPositionY() ? $rack->getPositionY() : $posY
  1187.                   ];
  1188.         }
  1189.         $elements[] = [
  1190.                         "counterUsed" => ($capacityRoom-$usedRoom),
  1191.                         "counterCapacity" => $capacityRoom,
  1192.                         "racks" => $racks
  1193.                 ];
  1194.         $trunks $this->getDoctrine()->getRepository('App\Entity\Trunk')->findAll();
  1195.         foreach ($trunks as $trunk) {
  1196.           $count 0;
  1197.           $tempArray = array();
  1198.           $element = array();
  1199.           $tcfs $trunk->getCableFiber();
  1200.           $ext $this->getDoctrine()->getRepository('App\Entity\LinkExtension')->findOneByTrunk($trunk);
  1201.           foreach ($tcfs as $tcf) {
  1202.                 $exts $tcf->getExtensions();
  1203.                 $countExts count($exts);
  1204.             if ($ext) {
  1205.               if (in_array($tcf->getPortA()->getId(), $portsAll)) {
  1206.                 $count++;
  1207.               }
  1208.               elseif (in_array($tcf->getPortB()->getId(), $portsAll)) {
  1209.                 $count++;
  1210.               }
  1211.               else{
  1212.                 if ( $countExts 0) {
  1213.                   if (in_array($exts[$countExts-1]->getPortB()->getId(), $portsAll)) {
  1214.                     $count++;
  1215.                   }
  1216.                 }
  1217.               }
  1218.             }
  1219.             //MODIFIED on 28 fév 2019
  1220.             $trunkRoomA $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getId();
  1221.             $trunkRoomB $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getId();
  1222.             $target "";
  1223.             if($trunkRoomA == $id && $trunkRoomB == $id){
  1224.                 $source $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
  1225.                 $target $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
  1226.                 if($source != $target){
  1227.                     $element["id"] = $trunk->getTrunkID();
  1228.                     $element["source"] = $source;
  1229.                     $element["target"] = $target;
  1230.                     $element["color"] = $trunk->getTypeCable()->getColor();
  1231.                     $tempArray[$source "" $target] = $element;
  1232.                 }
  1233.             }
  1234.             foreach ($exts as $ext1) {
  1235.                 $extRoomB $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getId();
  1236.                 if($trunkRoomB == $id && $extRoomB == $id){
  1237.                     $source $target;
  1238.                     $target $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
  1239.                     if($source != $target){
  1240.                         $element = array();
  1241.                         $element["id"] =$trunk->getTrunkID();
  1242.                         $element["source"] = $source;
  1243.                         $element["target"] = $target;
  1244.                         $element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
  1245.                         $tempArray[$source "" $target] = $element;
  1246.                     }
  1247.                     $trunkRoomB $extRoomB;
  1248.                 }
  1249.                 else if($extRoomB == $id){
  1250.                     $target $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
  1251.                     $trunkRoomB $extRoomB;
  1252.                 }
  1253.             }
  1254.           }
  1255.           $edgsArray = array();
  1256.           foreach (array_values($tempArray) as $value) {
  1257.             $capacity $trunk->getCapacity();
  1258.             $value["id"] = $value["id"] . " (".($capacity-$count) ."/".$capacity.")";
  1259.             foreach ($edgsArray as $value1) {
  1260.                 if($value1["id"] == $value["id"]){
  1261.                     $value["id"] .= " ";
  1262.                     break;
  1263.                 }
  1264.             }
  1265.             $edgsArray[] = $value;
  1266.           }
  1267.           $edges array_merge($edges$edgsArray);
  1268.           // $elements = array_merge($elements, array_values($tempArray));
  1269.         }
  1270.         // var_dump($rooms);
  1271.         // $fileSystem = new Filesystem();
  1272.         // $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/assets/js/sigma/data.json';
  1273.         // $fileSystem->dumpFile($upload_dir, json_encode($data));
  1274.         $tempCap $elements[0]['counterCapacity'];
  1275.         $tempLib $elements[0]['counterCapacity'] - $elements[0]['counterUsed'];
  1276.         return $this->render('Stat/diagram_trunk_intra-room.html.twig', array(
  1277.             "rooms"=>$rooms,
  1278.             'page_title' => "Diagramme trunk intra-room: ".$room->getTitle()."(".$tempLib"/"$tempCap .")" ,
  1279.             'elements' => $elements,
  1280.             'edges' => $edges,
  1281.             "room_id" => $id
  1282.         ));
  1283.     }
  1284.     /**
  1285.      * @IsGranted("ROLE_CRUD")
  1286.      * @Route("/stats/diagramme/link", name="stats_diagram_link")
  1287.      */
  1288.     public function diagramLinkAction(TranslatorInterface $translator)
  1289.   {
  1290.         // print " ";
  1291.         return $this->render('Stat/diagram_link.html.twig', array(
  1292.             "sites"=>$sites,
  1293.             'page_title' => $translator->trans('Synthèse Equipements'),
  1294.         ));
  1295.     }
  1296.     public function getUsedPortCount()
  1297.     {
  1298.       ini_set("memory_limit""-1");
  1299.       set_time_limit(0);
  1300.       $sites = array();
  1301.       $sites["counterUsed"] = 0;
  1302.       $sites["counterCapacity"] = 0;
  1303.       $sites["sites"] = array();
  1304.       $portsAllTemp $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
  1305.       $portsAll = array();
  1306.       foreach ($portsAllTemp as $tempArray) {
  1307.         foreach ($tempArray as $key => $value) {
  1308.           $portsAll[] = $value;
  1309.         }
  1310.       }
  1311.       $ports $this->getDoctrine()->getRepository('App\Entity\Port')->findAll();
  1312.        foreach ($ports as $port) {
  1313.          try {
  1314.            $interfaceSpecific $port->getInterfaceSpecific();
  1315.            $intTypeLink $interfaceSpecific->getInterfaceGeneric()->getTypeLink()->getTitle();
  1316.            $equipmentSpecificTemp $interfaceSpecific->getEquipmentSpecific();
  1317.            $module null;
  1318.            $equipmentSpecific null;
  1319.            if(!isset($equipmentSpecificTemp)){
  1320.                $interfaceSpecificPortExterne $port->getInterfaceSpecificPortExterne();
  1321.                if(isset($interfaceSpecificPortExterne)){
  1322.                    $equipmentSpecificTemp $interfaceSpecificPortExterne->getEquipmentSpecific();
  1323.                    if ($equipmentSpecificTemp->isModule()) {
  1324.                      $module $equipmentSpecificTemp;
  1325.                      $equipmentSpecific $equipmentSpecificTemp->getParent();
  1326.                    }
  1327.                    else{
  1328.                        $equipmentSpecific $equipmentSpecificTemp;
  1329.                    }
  1330.                }
  1331.            }
  1332.            elseif ($equipmentSpecificTemp->isModule()) {
  1333.              $module $equipmentSpecificTemp;
  1334.              $equipmentSpecific $equipmentSpecificTemp->getParent();
  1335.            }
  1336.            // if (isset($equipmentSpecificTemp) && $equipmentSpecificTemp->isModule()) {
  1337.            //   $module = $equipmentSpecificTemp;
  1338.            //   $equipmentSpecific = $equipmentSpecificTemp->getParent();
  1339.            // }
  1340.            else {
  1341.              $equipmentSpecific $equipmentSpecificTemp;
  1342.            }
  1343.            if(!isset($equipmentSpecific)) continue;
  1344.            $rack $equipmentSpecific->getRack();
  1345.            $room $rack->getRoom();
  1346.            $site $room->getSite();
  1347.          } catch (\Exception $e) {
  1348.            continue;
  1349.          }
  1350.          // print " ";
  1351.          if ($intTypeLink == "Simplex" || $intTypeLink == "Duplex" || ($intTypeLink == "Port Externe" && $port->getPortExterne())) {
  1352.            $sites["counterCapacity"] = $sites["counterCapacity"] + 1;
  1353.            if (isset($sites["sites"][$site->getId()])) {
  1354.               $sites["sites"][$site->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["counterCapacity"] + 1;
  1355.               $sites["sites"][$site->getId()]["rooms"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["counterCapacity"] + 1;
  1356.               if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
  1357.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] + 1;
  1358.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] + 1;
  1359.                 if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()])) {
  1360.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterCapacity"] + 1;
  1361.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterCapacity"] + 1;
  1362.                   if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()])) {
  1363.                     $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterCapacity"] + 1;
  1364.                     if ($module) {
  1365.                       $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterCapacity"] + 1;
  1366.                       if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()])) {
  1367.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterCapacity"] + 1;
  1368.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterCapacity"] + 1;
  1369.                         if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()])) {
  1370.                           $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterCapacity"] + 1;
  1371.                         }
  1372.                       }
  1373.                       else {
  1374.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
  1375.                                                                                                                                                                                                             "counterCapacity"=>1,
  1376.                                                                                                                                                                                                             "name"=>$module->getEquipmentSpecificName(),
  1377.                                                                                                                                                                                                             "interfaces"=>array("counterUsed"=>0,
  1378.                                                                                                                                                                                                                                 "counterCapacity"=>1,
  1379.                                                                                                                                                                                                                                 "interfacesArray"=>array()));
  1380.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1381.                                                                                                                                                                                                                                                                                                                         "counterCapacity"=>1,
  1382.                                                                                                                                                                                                                                                                                                                         "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1383.                       }
  1384.                     }
  1385.                     else {
  1386.                       $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterCapacity"] + 1;
  1387.                       if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()])) {
  1388.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterCapacity"] + 1;
  1389.                       }
  1390.                       else {
  1391.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1392.                                                                                                                                                                                                                               "counterCapacity"=>1,
  1393.                                                                                                                                                                                                                               "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1394.                       }
  1395.                     }
  1396.                   }
  1397.                   else {
  1398.                     $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
  1399.                                                                                                                                                                     "counterCapacity"=>1,
  1400.                                                                                                                                                                     "name"=>$equipmentSpecific->getEquipmentSpecificName(),
  1401.                                                                                                                                                                       "modules"=>array("counterUsed"=>0,
  1402.                                                                                                                                                                                         "counterCapacity"=>1,
  1403.                                                                                                                                                                                         "modulesArray"=>array()),
  1404.                                                                                                                                                                       "interfaces"=>array("counterUsed"=>0,
  1405.                                                                                                                                                                                            "counterCapacity"=>1,
  1406.                                                                                                                                                                                           "interfacesArray"=>array()));
  1407.                     if ($module) {
  1408.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
  1409.                                                                                                                                                                                                             "counterCapacity"=>1,
  1410.                                                                                                                                                                                                             "name"=>$module->getEquipmentSpecificName(),
  1411.                                                                                                                                                                                                             "interfaces"=>array("counterUsed"=>0,
  1412.                                                                                                                                                                                                                                 "counterCapacity"=>1,
  1413.                                                                                                                                                                                                                                 "interfacesArray"=>array()));
  1414.                         $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1415.                                                                                                                                                                                                                                                                                                                         "counterCapacity"=>1,
  1416.                                                                                                                                                                                                                                                                                                                         "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1417.                     }
  1418.                     $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1419.                                                                                                                                                                                                                           "counterCapacity"=>1,
  1420.                                                                                                                                                                                                                           "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1421.                   }
  1422.                 }
  1423.                 else {
  1424.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
  1425.                                                                                                               "counterCapacity"=>1,
  1426.                                                                                                               "name"=>$rack->getTitle(),
  1427.                                                                                                               "equipments"=>array("counterUsed"=>0,
  1428.                                                                                                                                     "counterCapacity"=>1,
  1429.                                                                                                                                     "equipmentsArray"=>array()
  1430.                                                                                                                                     ));
  1431.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
  1432.                                                                                                                                                                   "counterCapacity"=>1,
  1433.                                                                                                                                                                   "name"=>$equipmentSpecific->getEquipmentSpecificName(),
  1434.                                                                                                                                                                     "modules"=>array("counterUsed"=>0,
  1435.                                                                                                                                                                                       "counterCapacity"=>1,
  1436.                                                                                                                                                                                       "modulesArray"=>array()),
  1437.                                                                                                                                                                     "interfaces"=>array("counterUsed"=>0,
  1438.                                                                                                                                                                                          "counterCapacity"=>1,
  1439.                                                                                                                                                                                         "interfacesArray"=>array()));
  1440.                   if ($module) {
  1441.                       $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
  1442.                                                                                                                                                                                                           "counterCapacity"=>1,
  1443.                                                                                                                                                                                                           "name"=>$module->getEquipmentSpecificName(),
  1444.                                                                                                                                                                                                           "interfaces"=>array("counterUsed"=>0,
  1445.                                                                                                                                                                                                                               "counterCapacity"=>1,
  1446.                                                                                                                                                                                                                               "interfacesArray"=>array()));
  1447.                       $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1448.                                                                                                                                                                                                                                                                                                                       "counterCapacity"=>1,
  1449.                                                                                                                                                                                                                                                                                                                       "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1450.                   }
  1451.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1452.                                                                                                                                                                                                                         "counterCapacity"=>1,
  1453.                                                                                                                                                                                                                         "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1454.                 }
  1455.               }
  1456.               else {
  1457.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
  1458.                                                                   "counterCapacity"=>1,
  1459.                                                                   "name"=>$room->getTitle(),
  1460.                                                                   "racks"=>array("counterUsed"=>0,
  1461.                                                                                   "counterCapacity"=>1,
  1462.                                                                                   "racksArray"=>array()));
  1463.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
  1464.                                                                                                             "counterCapacity"=>1,
  1465.                                                                                                             "name"=>$rack->getTitle(),
  1466.                                                                                                             "equipments"=>array("counterUsed"=>0,
  1467.                                                                                                                                   "counterCapacity"=>1,
  1468.                                                                                                                                   "equipmentsArray"=>array()
  1469.                                                                                                                                   ));
  1470.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
  1471.                                                                                                                                                                 "counterCapacity"=>1,
  1472.                                                                                                                                                                 "name"=>$equipmentSpecific->getEquipmentSpecificName(),
  1473.                                                                                                                                                                   "modules"=>array("counterUsed"=>0,
  1474.                                                                                                                                                                                     "counterCapacity"=>1,
  1475.                                                                                                                                                                                     "modulesArray"=>array()),
  1476.                                                                                                                                                                   "interfaces"=>array("counterUsed"=>0,
  1477.                                                                                                                                                                                        "counterCapacity"=>1,
  1478.                                                                                                                                                                                       "interfacesArray"=>array()));
  1479.                 if ($module) {
  1480.                     $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
  1481.                                                                                                                                                                                                         "counterCapacity"=>1,
  1482.                                                                                                                                                                                                         "name"=>$module->getEquipmentSpecificName(),
  1483.                                                                                                                                                                                                         "interfaces"=>array("counterUsed"=>0,
  1484.                                                                                                                                                                                                                             "counterCapacity"=>1,
  1485.                                                                                                                                                                                                                             "interfacesArray"=>array()));
  1486.                     $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1487.                                                                                                                                                                                                                                                                                                                     "counterCapacity"=>1,
  1488.                                                                                                                                                                                                                                                                                                                     "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1489.                 }
  1490.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1491.                                                                                                                                                                                                                       "counterCapacity"=>1,
  1492.                                                                                                                                                                                                                       "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1493.               }
  1494.             }
  1495.             else {
  1496.               $sites["sites"][$site->getId()] = array("counterUsed"=>0,
  1497.                                               "counterCapacity"=>1,
  1498.                                               "name"=>$site->getTitle(),
  1499.                                               "rooms"=>array("counterUsed"=>0,
  1500.                                                               "counterCapacity"=>1,
  1501.                                                               "roomsArray"=>array()));
  1502.               $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
  1503.                                                                 "counterCapacity"=>1,
  1504.                                                                 "name"=>$room->getTitle(),
  1505.                                                                 "racks"=>array("counterUsed"=>0,
  1506.                                                                                 "counterCapacity"=>1,
  1507.                                                                                 "racksArray"=>array()));
  1508.               $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
  1509.                                                                                                           "counterCapacity"=>1,
  1510.                                                                                                           "name"=>$rack->getTitle(),
  1511.                                                                                                           "equipments"=>array("counterUsed"=>0,
  1512.                                                                                                                                 "counterCapacity"=>1,
  1513.                                                                                                                                 "equipmentsArray"=>array()
  1514.                                                                                                                                 ));
  1515.               $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
  1516.                                                                                                                                                               "counterCapacity"=>1,
  1517.                                                                                                                                                               "name"=>$equipmentSpecific->getEquipmentSpecificName(),
  1518.                                                                                                                                                                 "modules"=>array("counterUsed"=>0,
  1519.                                                                                                                                                                                   "counterCapacity"=>1,
  1520.                                                                                                                                                                                   "modulesArray"=>array()),
  1521.                                                                                                                                                                 "interfaces"=>array("counterUsed"=>0,
  1522.                                                                                                                                                                                      "counterCapacity"=>1,
  1523.                                                                                                                                                                                     "interfacesArray"=>array()));
  1524.               if ($module) {
  1525.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
  1526.                                                                                                                                                                                                       "counterCapacity"=>1,
  1527.                                                                                                                                                                                                       "name"=>$module->getEquipmentSpecificName(),
  1528.                                                                                                                                                                                                       "interfaces"=>array("counterUsed"=>0,
  1529.                                                                                                                                                                                                                           "counterCapacity"=>1,
  1530.                                                                                                                                                                                                                           "interfacesArray"=>array()));
  1531.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1532.                                                                                                                                                                                                                                                                                                                   "counterCapacity"=>1,
  1533.                                                                                                                                                                                                                                                                                                                   "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1534.               }
  1535.               $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
  1536.                                                                                                                                                                                                                     "counterCapacity"=>1,
  1537.                                                                                                                                                                                                                     "name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
  1538.             }
  1539.           //check for nports
  1540.            $nPorts $interfaceSpecific->getInterfaceGeneric()->getNPorts();
  1541.            if ($nPorts){
  1542.                $nPorts json_decode($nPorts);
  1543.            } else {
  1544.                $nPorts = [];
  1545.            }
  1546.            if (!in_array($port->getOrderNo(), $nPorts)){
  1547.              if (in_array($port->getId(), $portsAll)) {
  1548.                $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1549.                $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1550.                $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1551.                $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1552.                $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1553.                $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1554.                $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] + 1;
  1555.                $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] + 1;
  1556.                if ($module) {
  1557.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] + 1;
  1558.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] + 1;
  1559.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] + 1;
  1560.                  try{
  1561.                     $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1562.                  }
  1563.                  catch(\Exception $ex){}
  1564.                }
  1565.                else {
  1566.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] + 1;
  1567.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1568.                }
  1569.              }
  1570.              else {
  1571.                $tcfsB $this->getDoctrine()->getRepository('App\Entity\TrunkCableFiber')->findOneByPortB($port);
  1572.                if ($tcfsB && count($tcfsB->getExtensions()) > 0) {
  1573.                  $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1574.                  $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1575.                  $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1576.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1577.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1578.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1579.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] + 1;
  1580.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] + 1;
  1581.                  if ($module) {
  1582.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] + 1;
  1583.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] + 1;
  1584.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] + 1;
  1585.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1586.                  }
  1587.                  else {
  1588.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] + 1;
  1589.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1590.                  }
  1591.                  continue;
  1592.                }
  1593.                $usedExt $this->getDoctrine()->getRepository('App\Entity\TrunkExtension')->findOneByPortB($port);
  1594.                if ($usedExt) {
  1595.                  $tcf $usedExt->getTrunkCableFiber();
  1596.                  $len count($tcf->getExtensions());
  1597.                  if ($len != $usedExt->getSequenceNo()) {
  1598.                    $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1599.                    $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1600.                    $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1601.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1602.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1603.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1604.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] + 1;
  1605.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] + 1;
  1606.                    if ($module) {
  1607.                      $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] + 1;
  1608.                      $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] + 1;
  1609.                      $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] + 1;
  1610.                      $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1611.                    }
  1612.                    else {
  1613.                      $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] + 1;
  1614.                      $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1615.                    }
  1616.                    continue;
  1617.                  }
  1618.                }
  1619.                if (count($port->getExtensionOrder()) > ) {
  1620.                  $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1621.                  $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1622.                  $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1623.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1624.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1625.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1626.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["counterUsed"] + 1;
  1627.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["counterUsed"] + 1;
  1628.                  if ($module) {
  1629.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["counterUsed"] + 1;
  1630.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["counterUsed"] + 1;
  1631.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["counterUsed"] + 1;
  1632.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1633.                  }
  1634.                  else {
  1635.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["counterUsed"] + 1;
  1636.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()]["counterUsed"] + 1;
  1637.                  }
  1638.                  continue;
  1639.                }
  1640.              }
  1641.            }
  1642.          }
  1643.        }
  1644.        return $sites;
  1645.     }
  1646.     public function getUsedPortSiteRoomCount()
  1647.     {
  1648.       ini_set("memory_limit""-1");
  1649.       set_time_limit(0);
  1650.       $sites = array();
  1651.       $sites["counterUsed"] = 0;
  1652.       $sites["counterCapacity"] = 0;
  1653.       $sites["sites"] = array();
  1654.       $portsAllTemp $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
  1655.       $portsAll = array();
  1656.       foreach ($portsAllTemp as $tempArray) {
  1657.         foreach ($tempArray as $key => $value) {
  1658.           $portsAll[] = $value;
  1659.         }
  1660.       }
  1661.       $ports $this->getDoctrine()->getRepository('App\Entity\Port')->findAll();
  1662.        foreach ($ports as $port) {
  1663.          try {
  1664.            $interfaceSpecific $port->getInterfaceSpecific();
  1665.            $intTypeLink $interfaceSpecific->getInterfaceGeneric()->getTypeLink()->getTitle();
  1666.            $equipmentSpecificTemp $interfaceSpecific->getEquipmentSpecific();
  1667.            $module null;
  1668.            $equipmentSpecific null;
  1669.            if(!isset($equipmentSpecificTemp)){
  1670.                $interfaceSpecificPortExterne $port->getInterfaceSpecificPortExterne();
  1671.                if(isset($interfaceSpecificPortExterne)){
  1672.                    $equipmentSpecificTemp $interfaceSpecificPortExterne->getEquipmentSpecific();
  1673.                    if ($equipmentSpecificTemp->isModule()) {
  1674.                      $module $equipmentSpecificTemp;
  1675.                      $equipmentSpecific $equipmentSpecificTemp->getParent();
  1676.                    }
  1677.                    else{
  1678.                        $equipmentSpecific $equipmentSpecificTemp;
  1679.                    }
  1680.                }
  1681.            }
  1682.            elseif ($equipmentSpecificTemp->isModule()) {
  1683.              $module $equipmentSpecificTemp;
  1684.              $equipmentSpecific $equipmentSpecificTemp->getParent();
  1685.            }
  1686.            else {
  1687.              $equipmentSpecific $equipmentSpecificTemp;
  1688.            }
  1689.            if(!isset($equipmentSpecific)) continue;
  1690.            $rack $equipmentSpecific->getRack();
  1691.            $room $rack->getRoom();
  1692.            $site $room->getSite();
  1693.          } catch (\Exception $e) {
  1694.            continue;
  1695.          }
  1696.         // print " ";
  1697.          if ($intTypeLink == "Simplex" || $intTypeLink == "Duplex" || ($intTypeLink == "Port Externe" && $port->getPortExterne())) {
  1698.            $sites["counterCapacity"] = $sites["counterCapacity"] + 1;
  1699.            if (isset($sites["sites"][$site->getId()])) {
  1700.               $sites["sites"][$site->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["counterCapacity"] + 1;
  1701.               $sites["sites"][$site->getId()]["rooms"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["counterCapacity"] + 1;
  1702.               if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
  1703.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] + 1;
  1704.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] + 1;
  1705.                 if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()])) {
  1706.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterCapacity"] + 1;
  1707.                 }
  1708.                 else {
  1709.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
  1710.                                                                                                               "counterCapacity"=>1,
  1711.                                                                                                               "name"=>$rack->getTitle());
  1712.                 }
  1713.               }
  1714.               else {
  1715.                 $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
  1716.                                                                   "counterCapacity"=>1,
  1717.                                                                   "name"=>$room->getTitle());
  1718.               }
  1719.             }
  1720.             else {
  1721.               $sites["sites"][$site->getId()] = array("counterUsed"=>0,
  1722.                                               "counterCapacity"=>1,
  1723.                                               "name"=>$site->getTitle(),
  1724.                                               "rooms"=>array("counterUsed"=>0,
  1725.                                                               "counterCapacity"=>1,
  1726.                                                               "roomsArray"=>array()));
  1727.               $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
  1728.                                                                 "counterCapacity"=>1,
  1729.                                                                 "name"=>$room->getTitle());
  1730.             }
  1731.           //check for nports
  1732.            $nPorts $interfaceSpecific->getInterfaceGeneric()->getNPorts();
  1733.            if ($nPorts){
  1734.                $nPorts json_decode($nPorts);
  1735.            } else {
  1736.                $nPorts = [];
  1737.            }
  1738.            if (!in_array($port->getOrderNo(), $nPorts)){
  1739.              if (in_array($port->getId(), $portsAll)) {
  1740.                $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1741.                $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1742.                $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1743.                $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1744.                try{
  1745.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1746.                   $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1747.                }
  1748.                catch(Exception $ex){
  1749.                }
  1750.                
  1751.              }
  1752.              else {
  1753.                $tcfsB $this->getDoctrine()->getRepository('App\Entity\TrunkCableFiber')->findOneByPortB($port);
  1754.                if ($tcfsB && count($tcfsB->getExtensions()) > 0) {
  1755.                  $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1756.                  $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1757.                  $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1758.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1759.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1760.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1761.                  continue;
  1762.                }
  1763.                $usedExt $this->getDoctrine()->getRepository('App\Entity\TrunkExtension')->findOneByPortB($port);
  1764.                if ($usedExt) {
  1765.                  $tcf $usedExt->getTrunkCableFiber();
  1766.                  $len count($tcf->getExtensions());
  1767.                  if ($len != $usedExt->getSequenceNo()) {
  1768.                    $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1769.                    $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1770.                    $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1771.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1772.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1773.                    $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1774.                    continue;
  1775.                  }
  1776.                }
  1777.                if (count($port->getExtensionOrder()) > ) {
  1778.                  $sites["counterUsed"] = $sites["counterUsed"] + 1;
  1779.                  $sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
  1780.                  $sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
  1781.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
  1782.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
  1783.                  $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"] + 1;
  1784.                  continue;
  1785.                }
  1786.              }
  1787.            }
  1788.          }
  1789.        }
  1790.        return $sites;
  1791.     }
  1792. }