<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use \PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
class StatController extends AbstractController
{
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/synthese-equipement", name="stats_synthese_equipement")
*/
public function syntheseEquipmentAction(TranslatorInterface $translator)
{
ini_set("memory_limit", "-1");
set_time_limit(0);
ini_set('default_socket_timeout', 600);
// print " ";
$sites = @$this->getUsedPortCount();
return $this->render('Stat/synthese_equipment.html.twig', array(
"sites"=>$sites,
'page_title' => $translator->trans('Synthèse Equipements'),
));
}
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/synthese-armoire", name="stats_synthese_rack")
*/
public function syntheseRackAction(TranslatorInterface $translator)
{
ini_set("memory_limit", "-1");
set_time_limit(0);
ini_set('default_socket_timeout', 600);
// print " ";
$sites = @$this->getUsedPortCount();
return $this->render('Stat/synthese_rack.html.twig', array(
"sites"=>$sites,
'page_title' => $translator->trans('Synthèse Armoires'),
));
}
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/synthese-equipement/excel", name="stats_synthese_equipement_excel")
*/
public function syntheseEquipmentExcelAction(TranslatorInterface $translator)
{
ini_set("memory_limit", "-1");
set_time_limit(0);
ini_set('default_socket_timeout', 600);
// print " ";
$sites = @$this->getUsedPortCount();
$spreadsheet = new Spreadsheet();
$spreadsheet->getProperties()
->setCreator("FiberLink App")
->setLastModifiedBy("FiberLink App")
->setTitle("Synthèse Equipement")
->setSubject("Synthèse Equipement")
->setDescription("Synthèse Equipement")
->setKeywords("Synthèse Equipement")
->setCategory("Synthèse Equipement");
// Create a new worksheet called "My Data"
$myWorkSheet = new Worksheet($spreadsheet, 'Synthèse equipement');
// Attach the "My Data" worksheet as the first worksheet in the Spreadsheet object
$spreadsheet->addSheet($myWorkSheet, 0);
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()
->setCellValue('A1', 'Site');
$spreadsheet->getActiveSheet()
->setCellValue('B1', 'Salle');
$spreadsheet->getActiveSheet()
->setCellValue('C1', 'Armoire');
$spreadsheet->getActiveSheet()
->setCellValue('D1', 'Équipement');
$spreadsheet->getActiveSheet()
->setCellValue('E1', 'Module');
$spreadsheet->getActiveSheet()
->setCellValue('F1', 'Slot');
$spreadsheet->getActiveSheet()
->setCellValue('G1', 'Nombre de port libre');
$spreadsheet->getActiveSheet()
->setCellValue('H1', 'Capacité');
$spreadsheet->getActiveSheet()
->setCellValue('G2', 'MAX de nombre de port');
$spreadsheet->getActiveSheet()
->setCellValue('H2', 'SUM de Capacité');
$spreadsheet->getActiveSheet()->getStyle('G2:H2')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT);
$spreadsheet->getActiveSheet()->getRowDimension('1')->setRowHeight(50);
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(25);
$styleArray = [
'font'=>['bold' => true,],
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,],
'borders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,],
'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor'=>['argb' => 'FF9999FF',],],];
$spreadsheet->getActiveSheet()->getStyle('A1:H1')->applyFromArray($styleArray);
$siteColumnIndex = 3;
$roomColumnIndex = 3;
$rackColumnIndex = 3;
$equipmentColumnIndex = 3;
$moduleColumnIndex = 3;
$interfaceColumnIndex = 3;
$freePortColumnIndex = 3;
$capacityColumnIndex = 3;
foreach ($sites["sites"] as $site) {
$spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('A'.$siteColumnIndex++, $site["name"]);
foreach ($site["rooms"]["roomsArray"] as $room) {
$spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('B'.$roomColumnIndex++, $room["name"]);
foreach ($room["racks"]["racksArray"] as $rack) {
$spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('C'.$rackColumnIndex++, $rack["name"]);
foreach ($rack["equipments"]["equipmentsArray"] as $equipment) {
$spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('D'.$equipmentColumnIndex++, $equipment["name"]);
if (count($equipment["modules"]["modulesArray"]) > 0) {
foreach ($equipment["modules"]["modulesArray"] as $module) {
$spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('E'.$moduleColumnIndex++, $module["name"]);
foreach ($module["interfaces"]["interfacesArray"] as $interface) {
$spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('F'.$interfaceColumnIndex++, $interface["name"]);
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $interface["counterCapacity"] - $interface["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $interface["counterCapacity"]);
}
$spreadsheet->getActiveSheet()
->setCellValue('E'.$freePortColumnIndex, " Total pour ". $module["name"]);
$spreadsheet->getActiveSheet()->mergeCells('E'. ($moduleColumnIndex-1).':E'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('E'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $module["counterCapacity"] - $module["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $module["counterCapacity"]);
$moduleColumnIndex = $freePortColumnIndex;
// $moduleColumnIndex = $interfaceColumnIndex;
}
}
else {
foreach ($equipment["interfaces"]["interfacesArray"] as $interface) {
$spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('F'.$interfaceColumnIndex++, $interface["name"]);
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $interface["counterCapacity"] - $interface["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $interface["counterCapacity"]);
}
}
$spreadsheet->getActiveSheet()
->setCellValue('D'.$freePortColumnIndex, " Total pour ". $equipment["name"]);
$spreadsheet->getActiveSheet()->mergeCells('D'. ($equipmentColumnIndex-1).':D'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('D'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $equipment["counterCapacity"] - $equipment["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $equipment["counterCapacity"]);
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('C'.$freePortColumnIndex, " Total pour ". $rack["name"]);
$spreadsheet->getActiveSheet()->mergeCells('C'. ($rackColumnIndex-1).':C'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('C'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $rack["counterCapacity"] - $rack["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $rack["counterCapacity"]);
$rackColumnIndex = $freePortColumnIndex;
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('B'.$freePortColumnIndex, " Total pour ". $room["name"]);
$spreadsheet->getActiveSheet()->mergeCells('B'. ($roomColumnIndex-1).':B'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('B'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $room["counterCapacity"] - $room["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $room["counterCapacity"]);
$roomColumnIndex = $freePortColumnIndex;
$rackColumnIndex = $freePortColumnIndex;
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('A'.$freePortColumnIndex, " Total pour ". $site["name"]);
$spreadsheet->getActiveSheet()->mergeCells('A'. ($siteColumnIndex-1).':A'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $site["counterCapacity"] - $site["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $site["counterCapacity"]);
$siteColumnIndex = $freePortColumnIndex;
$roomColumnIndex = $freePortColumnIndex;
$rackColumnIndex = $freePortColumnIndex;
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('A'.$freePortColumnIndex, " Total Général ");
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex, $sites["counterCapacity"] - $sites["counterUsed"]);
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex, $sites["counterCapacity"]);
$spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'. $freePortColumnIndex);
$writer = new Xlsx($spreadsheet);
$writer->save("Synthèse_equipement.xlsx");
// $excelPath = $this->getParameter('dir.downloads').'/synthèse_equipement.xlsx';
return $this->file("Synthèse_equipement.xlsx", "Synthèse_equipement.xlsx");
// return new Response("hi");
}
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/synthese-rack/excel", name="stats_synthese_rack_excel")
*/
public function syntheseRackExcelAction(TranslatorInterface $translator)
{
ini_set("memory_limit", "-1");
set_time_limit(0);
ini_set('default_socket_timeout', 600);
// print " ";
$sites = @$this->getUsedPortCount();
$spreadsheet = new Spreadsheet();
$spreadsheet->getProperties()
->setCreator("FiberLink App")
->setLastModifiedBy("FiberLink App")
->setTitle("Synthèse Armoire")
->setSubject("Synthèse Armoire")
->setDescription("Synthèse Armoire")
->setKeywords("Synthèse Armoire")
->setCategory("Synthèse Armoire");
// Create a new worksheet called "My Data"
$myWorkSheet = new Worksheet($spreadsheet, 'Synthèse Armoire');
// Attach the "My Data" worksheet as the first worksheet in the Spreadsheet object
$spreadsheet->addSheet($myWorkSheet, 0);
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()
->setCellValue('A1', 'Site');
$spreadsheet->getActiveSheet()
->setCellValue('B1', 'Salle');
$spreadsheet->getActiveSheet()
->setCellValue('C1', 'Armoire');
$spreadsheet->getActiveSheet()
->setCellValue('D1', 'Équipement');
$spreadsheet->getActiveSheet()
->setCellValue('E1', 'Module');
$spreadsheet->getActiveSheet()
->setCellValue('F1', 'Slot');
$spreadsheet->getActiveSheet()
->setCellValue('G1', 'Taux d\'occupation');
$spreadsheet->getActiveSheet()
->setCellValue('H1', 'Capacité');
$spreadsheet->getActiveSheet()
->setCellValue('G2', 'MAX de nombre de port');
$spreadsheet->getActiveSheet()
->setCellValue('H2', 'SUM de Capacité');
$spreadsheet->getActiveSheet()->getStyle('G2:H2')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT);
$spreadsheet->getActiveSheet()->getRowDimension('1')->setRowHeight(50);
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(25);
$spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(25);
$styleArray = [
'font'=>['bold' => true,],
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,],
'borders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,],
'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor'=>['argb' => 'FF9999FF',],],];
$spreadsheet->getActiveSheet()->getStyle('A1:H1')->applyFromArray($styleArray);
$siteColumnIndex = 3;
$roomColumnIndex = 3;
$rackColumnIndex = 3;
$equipmentColumnIndex = 3;
$moduleColumnIndex = 3;
$interfaceColumnIndex = 3;
$freePortColumnIndex = 3;
$capacityColumnIndex = 3;
foreach ($sites["sites"] as $site) {
$spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('A'.$siteColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('A'.$siteColumnIndex++, $site["name"]);
foreach ($site["rooms"]["roomsArray"] as $room) {
$spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('B'.$roomColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('B'.$roomColumnIndex++, $room["name"]);
foreach ($room["racks"]["racksArray"] as $rack) {
$spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('C'.$rackColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('C'.$rackColumnIndex++, $rack["name"]);
foreach ($rack["equipments"]["equipmentsArray"] as $equipment) {
$spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('D'.$equipmentColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('D'.$equipmentColumnIndex++, $equipment["name"]);
if (count($equipment["modules"]["modulesArray"]) > 0) {
foreach ($equipment["modules"]["modulesArray"] as $module) {
$spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);
$spreadsheet->getActiveSheet()->getStyle('E'.$moduleColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('E'.$moduleColumnIndex++, $module["name"]);
foreach ($module["interfaces"]["interfacesArray"] as $interface) {
$spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$iName = isset($interface["name"]) ? $interface["name"]:"";
$iCapacity = isset($interface["counterCapacity"]) ? $interface["counterCapacity"] : "";
$spreadsheet->getActiveSheet()
->setCellValue('F'.$interfaceColumnIndex++, $iName);
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = isset($interface["counterCapacity"]) ? number_format(($interface["counterUsed"]/$interface["counterCapacity"])*100, 2) : 100;
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $iCapacity);
}
$spreadsheet->getActiveSheet()
->setCellValue('E'.$freePortColumnIndex, " Total pour ". $module["name"]);
$spreadsheet->getActiveSheet()->mergeCells('E'. ($moduleColumnIndex-1).':E'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('E'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = number_format(($module["counterUsed"]/$module["counterCapacity"])*100, 2);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $module["counterCapacity"]);
$moduleColumnIndex = $freePortColumnIndex;
// $moduleColumnIndex = $interfaceColumnIndex;
}
}
else {
foreach ($equipment["interfaces"]["interfacesArray"] as $interface) {
$iName = isset($interface["name"]) ? $interface["name"]:"";
$iCapacity = isset($interface["counterCapacity"]) ? $interface["counterCapacity"] : "";
$spreadsheet->getActiveSheet()->getStyle('F'.$interfaceColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()
->setCellValue('F'.$interfaceColumnIndex++, $iName);
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = isset($interface["counterCapacity"]) ? number_format(($interface["counterUsed"]/$interface["counterCapacity"])*100, 2) : 100;
// $tempOccupation = number_format(($interface["counterUsed"]/$interface["counterCapacity"])*100, 2);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $iCapacity);
}
}
$spreadsheet->getActiveSheet()
->setCellValue('D'.$freePortColumnIndex, " Total pour ". $equipment["name"]);
$spreadsheet->getActiveSheet()->mergeCells('D'. ($equipmentColumnIndex-1).':D'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('D'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = number_format(($equipment["counterUsed"]/$equipment["counterCapacity"])*100, 2);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $equipment["counterCapacity"]);
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('C'.$freePortColumnIndex, " Total pour ". $rack["name"]);
$spreadsheet->getActiveSheet()->mergeCells('C'. ($rackColumnIndex-1).':C'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('C'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = number_format(($rack["counterUsed"]/$rack["counterCapacity"])*100, 2);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $rack["counterCapacity"]);
$rackColumnIndex = $freePortColumnIndex;
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('B'.$freePortColumnIndex, " Total pour ". $room["name"]);
$spreadsheet->getActiveSheet()->mergeCells('B'. ($roomColumnIndex-1).':B'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('B'. $freePortColumnIndex.':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = number_format(($room["counterUsed"]/$room["counterCapacity"])*100, 2);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $room["counterCapacity"]);
$roomColumnIndex = $freePortColumnIndex;
$rackColumnIndex = $freePortColumnIndex;
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('A'.$freePortColumnIndex, " Total pour ". $site["name"]);
$spreadsheet->getActiveSheet()->mergeCells('A'. ($siteColumnIndex-1).':A'. ($freePortColumnIndex-1));
$spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'. $freePortColumnIndex);
$interfaceColumnIndex++;
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = number_format(($site["counterUsed"]/$site["counterCapacity"])*100,2);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex++, $site["counterCapacity"]);
$siteColumnIndex = $freePortColumnIndex;
$roomColumnIndex = $freePortColumnIndex;
$rackColumnIndex = $freePortColumnIndex;
$equipmentColumnIndex = $freePortColumnIndex;
$moduleColumnIndex = $freePortColumnIndex;
}
$spreadsheet->getActiveSheet()
->setCellValue('A'.$freePortColumnIndex, " Total Général ");
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$spreadsheet->getActiveSheet()->getStyle('H'.$capacityColumnIndex)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$tempOccupation = number_format(($sites["counterUsed"]/$sites["counterCapacity"])*100, 2);
$spreadsheet->getActiveSheet()
->setCellValue('G'.$freePortColumnIndex++, $tempOccupation);
if ($tempOccupation == 0) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FF00FF00');
}
elseif ($tempOccupation < 1) {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFFA500');
}
else {
$spreadsheet->getActiveSheet()->getStyle('G'.$freePortColumnIndex)->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('FFFF0000');
}
$spreadsheet->getActiveSheet()
->setCellValue('H'.$capacityColumnIndex, $sites["counterCapacity"]);
$spreadsheet->getActiveSheet()->mergeCells('A'. ($freePortColumnIndex).':F'. $freePortColumnIndex);
$writer = new Xlsx($spreadsheet);
$writer->save("Synthèse_armoire.xlsx");
// $excelPath = $this->getParameter('dir.downloads').'/synthèse_equipement.xlsx';
return $this->file("Synthèse_armoire.xlsx", "Synthèse_armoire.xlsx");
// return new Response("hi");
}
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/diagramme/inter-site/trunk", name="stats_diagram_inter_site_trunk")
*/
public function diagramTrunkInterSiteAction(TranslatorInterface $translator)
{
ini_set("memory_limit", "-1");
set_time_limit(0);
ini_set('default_socket_timeout', 600);
// print " ";
$portsAllTemp = $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
$portsAll = array();
foreach ($portsAllTemp as $tempArray) {
foreach ($tempArray as $key => $value) {
$portsAll[] = $value;
}
}
$posXmax = 1500;
$posYmax = 700;
$posXinit = 100;
$posX = 0;
$posY = 100;
$increment = 200;
$elements = array();
$edges = array();
$sites = $this->getDoctrine()->getRepository('App\Entity\Site')->findAll();
$counter = @$this->getUsedPortSiteRoomCount();
foreach ($sites as $site) {
$rooms = [];
$usedSite = 0;
$usedRoom = 0;
$capacitySite = 0;
$capacityRoom = 0;
if (isset($counter["sites"][$site->getId()])) {
$usedSite = $counter["sites"][$site->getId()]["counterUsed"];
$capacitySite = $counter["sites"][$site->getId()]["counterCapacity"];
}
$widthToAdd = 0;
if ($capacitySite < 1000) {
$widthToAdd = 5;
}
else if ($capacitySite < 2000) {
$widthToAdd = 10;
}
else if ($capacitySite < 3000) {
$widthToAdd = 15;
}
else if ($capacitySite < 4000) {
$widthToAdd = 20;
}
else if ($capacitySite < 5000) {
$widthToAdd = 25;
}
else if ($capacitySite < 6000) {
$widthToAdd = 30;
}
else if ($capacitySite < 7000) {
$widthToAdd = 35;
}
else if ($capacitySite < 8000) {
$widthToAdd = 40;
}
else if ($capacitySite < 9000) {
$widthToAdd = 45;
}
else {
$widthToAdd = 50;
}
if ($posX < $posXmax) {
$posX += $increment;
} else {
$posX = $posXinit;
$posY += $increment;
}
$elements[] = ["id" => $site->getTitle(),
"counterUsed" => ($capacitySite-$usedSite),
"counterCapacity" => $capacitySite,
"width" => 100+ $widthToAdd,
"height" => 75+ $widthToAdd,
// "width" => 100+ count($site->getRooms())*15,
// "height" => 100+ count($site->getRooms())*10,
"shape" => "ellipse",
"positionX" => $site->getPositionX() ? $site->getPositionX() : $posX,
"positionY" => $site->getPositionY() ? $site->getPositionY() : $posY
];
}
$trunks = $this->getDoctrine()->getRepository('App\Entity\Trunk')->findAll();
foreach ($trunks as $trunk) {
$count = 0;
$tempArray = array();
$element = array();
$tcfs = $trunk->getCableFiber();
$ext = $this->getDoctrine()->getRepository('App\Entity\LinkExtension')->findOneByTrunk($trunk);
foreach ($tcfs as $tcf) {
$exts = $tcf->getExtensions();
$countExts = count($exts);
if ($ext) {
if (in_array($tcf->getPortA()->getId(), $portsAll)) {
$count++;
}
elseif (in_array($tcf->getPortB()->getId(), $portsAll)) {
$count++;
}
else{
// $exts = $tcf->getExtensions();
// $countExts = count($exts);
if ( $countExts > 0) {
if (in_array($exts[$countExts-1]->getPortB()->getId(), $portsAll)) {
$count++;
}
}
}
}
//MODIFIED on 13 mars 2019
// $trunkSiteA = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
// $trunkSiteB = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
$target = "";
$source = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
$target = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
if($source != $target){
$element["id"] = $trunk->getTrunkID();
$element["source"] = $source;
$element["target"] = $target;
$element["color"] = $trunk->getTypeCable()->getColor();
$tempArray[$source . "" . $target] = $element;
}
foreach ($exts as $ext1) {
$extSiteB = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
$source = $target;
$target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
if($source != $target){
$element = array();
$element["id"] =$trunk->getTrunkID();
$element["source"] = $source;
$element["target"] = $target;
$element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
$tempArray[$source . "" . $target] = $element;
}
$trunkSiteB = $extSiteB;
}
//old
// $element["id"] =$trunk->getTrunkID();
// $source = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
// $element["source"] = $source;
// $target = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
// if ($element["source"] != $target) {
// $element["target"] = $target;
// $element["color"] = $trunk->getTypeCable()->getColor();
// $tempArray[$source . "" . $target] = $element;
// $oldSource = $source;
// $oldTarget = $target;
// $gotIt = false;
// foreach ($tcf->getExtensions() as $ext) {
// if ($gotIt) {
// $source = $tempArray[$source . "" . $target]["target"];
// $oldSource = $source;
// $oldTarget = $target;
// $gotIt = false;
// }
// else {
// $source = $tempArray[$oldSource . "" . $oldSarget]["target"];
// }
// $target = $ext->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
// if ($source != $target) {
// $element = array();
// $element["id"] =$trunk->getTrunkID();
// $element["source"] = $source;
// $element["target"] = $target;
// $element["color"] = ($ext->getTypeCable()) ? $ext->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
// $tempArray[$source . "" . $target] = $element;
// $gotIt = true;
// }
// }
// }
// else {
// $added = false;
// $oldSource = $element["source"];
// foreach ($tcf->getExtensions() as $ext) {
// if ($added) {
// $source = $tempArray[$source . "" . $target]["target"];
// }
// else {
// $source = $oldSource;
// }
// $target = $ext->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getTitle();
// if ($source != $target) {
// $element = array();
// $element["id"] =$trunk->getTrunkID();
// $element["source"] = $source;
// $element["target"] = $target;
// $element["color"] = ($ext->getTypeCable()) ? $ext->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
// $tempArray[$source . "" . $target] = $element;
// $added = true;
// $oldSource = $target;
// }
// else {
// $added = false;
// }
// }
// }
}
$edgsArray = array();
foreach (array_values($tempArray) as $value) {
$capacity = $trunk->getCapacity();
$value["id"] = $value["id"] . " (".($capacity-$count) ."/".$capacity.")";
//check if id exists
foreach ($edgsArray as $value1) {
if($value1["id"] == $value["id"]){
$value["id"] .= " ";
break;
}
}
$edgsArray[] = $value;
}
$edges = array_merge($edges, $edgsArray);
// $elements = array_merge($elements, array_values($tempArray));
}
// $fileSystem = new Filesystem();
// $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/assets/js/sigma/data.json';
// $fileSystem->dumpFile($upload_dir, json_encode($data));
return $this->render('Stat/diagram_trunk_inter-site.html.twig', array(
"sites"=>$sites,
'page_title' => $translator->trans('Diagramme Trunk Inter-site'),
'elements' => $elements,
'edges' => $edges
));
}
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/diagramme/intra-site/trunk/{id}", name="stats_diagram_intra_site_trunk")
*/
public function diagramTrunkIntraSiteAction($id, TranslatorInterface $translator)
{
ini_set("memory_limit", "-1");
set_time_limit(0);
ini_set('default_socket_timeout', 600);
// print " ";
$portsAllTemp = $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
$portsAll = array();
foreach ($portsAllTemp as $temp) {
foreach ($temp as $key => $value) {
$portsAll[] = $value;
}
}
$posXmax = 1500;
$posYmax = 700;
$posXinit = 100;
$posX = 0;
$posY = 100;
$increment = 200;
$elements = array();
$edges = array();
$site = $this->getDoctrine()->getRepository('App\Entity\Site')->findOneById($id);
$sites = $this->getDoctrine()->getRepository('App\Entity\Site')->findAll();
$roomsSite = $this->getDoctrine()->getRepository('App\Entity\Room')->findBySite($site);
$counter = @$this->getUsedPortSiteRoomCount();
$rooms = [];
foreach ($site->getRooms() as $room) {
$usedSite = 0;
$usedRoom = 0;
$capacitySite = 0;
$capacityRoom = 0;
if (isset($counter["sites"][$site->getId()])) {
$usedSite = $counter["sites"][$site->getId()]["counterUsed"];
$capacitySite = $counter["sites"][$site->getId()]["counterCapacity"];
if (isset($counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
$usedRoom = $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"];
$capacityRoom = $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"];
}
}
$widthToAdd = 0;
if ($capacityRoom < 1000) {
$widthToAdd = 5;
}
else if ($capacityRoom < 2000) {
$widthToAdd = 10;
}
else if ($capacityRoom < 3000) {
$widthToAdd = 15;
}
else if ($capacityRoom < 4000) {
$widthToAdd = 20;
}
else if ($capacityRoom < 5000) {
$widthToAdd = 25;
}
else if ($capacityRoom < 6000) {
$widthToAdd = 30;
}
else if ($capacityRoom < 7000) {
$widthToAdd = 35;
}
else if ($capacityRoom < 8000) {
$widthToAdd = 40;
}
else if ($capacityRoom < 9000) {
$widthToAdd = 45;
}
else {
$widthToAdd = 50;
}
if ($posX < $posXmax) {
$posX += $increment;
} else {
$posX = $posXinit;
$posY += $increment;
}
$rooms[] = ["id" => $room->getTitle(),
"parent" => $site->getTitle(),
"counterUsed" => ($capacityRoom-$usedRoom),
"counterCapacity" => $capacityRoom,
"width" => 100+ $widthToAdd,
// "width" => 100+ count($room->getRacks())*40,
"height" => 75+ $widthToAdd,
// "height" => 100+ count($room->getRacks())*30,
"shape" => "bottomroundrectangle",
"positionX" => $room->getPositionX() ? $room->getPositionX() : $posX,
"positionY" => $room->getPositionY() ? $room->getPositionY() : $posY
];
}
$elements[] = ["id" => $site->getTitle(),
"counterUsed" => ($capacitySite-$usedSite),
"counterCapacity" => $capacitySite,
"width" => 100+ count($site->getRooms())*10,
"height" => 100+ count($site->getRooms())*8,
"shape" => "roundrectangle",
"rooms" => $rooms
];
$trunks = $this->getDoctrine()->getRepository('App\Entity\Trunk')->findAll();
foreach ($trunks as $trunk) {
$count = 0;
$tempArray = array();
$element = array();
$tcfs = $trunk->getCableFiber();
$ext = $this->getDoctrine()->getRepository('App\Entity\LinkExtension')->findOneByTrunk($trunk);
foreach ($tcfs as $tcf) {
$exts = $tcf->getExtensions();
$countExts = count($exts);
if ($ext) {
if (in_array($tcf->getPortA()->getId(), $portsAll)) {
$count++;
}
elseif (in_array($tcf->getPortB()->getId(), $portsAll)) {
$count++;
}
else{
if ( $countExts > 0) {
if (in_array($exts[$countExts-1]->getPortB()->getId(), $portsAll)) {
$count++;
}
}
}
}
//MODIFIED on 28 fév 2019
$trunkSiteA = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
$trunkSiteB = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
$target = "";
if($trunkSiteA == $id && $trunkSiteB == $id){
$source = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
$target = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
if($source != $target){
$element["id"] = $trunk->getTrunkID();
$element["source"] = $source;
$element["target"] = $target;
$element["color"] = $trunk->getTypeCable()->getColor();
$tempArray[$source . "" . $target] = $element;
}
}
foreach ($exts as $ext1) {
$extSiteB = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getSite()->getId();
if($trunkSiteB == $id && $extSiteB == $id){
$source = $target;
$target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
if($source != $target){
$element = array();
$element["id"] =$trunk->getTrunkID();
$element["source"] = $source;
$element["target"] = $target;
$element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
$tempArray[$source . "" . $target] = $element;
}
$trunkSiteB = $extSiteB;
}
else if($extSiteB == $id){
$target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
$trunkSiteB = $extSiteB;
}
}
// $element["id"] =$trunk->getTrunkID();
// $source = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
// $element["source"] = $source;
//
// $target = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
// if ($element["source"] != $target) {
// $element["target"] = $target;
// $element["color"] = $trunk->getTypeCable()->getColor();
// $tempArray[$source . "" . $target] = $element;
// $oldSource = $source;
// $oldTarget = $target;
// $gotIt = false;
// foreach ($tcf->getExtensions() as $ext1) {
// if ($gotIt) {
// $source = $tempArray[$source . "" . $target]["target"];
// $oldSource = $source;
// $oldTarget = $target;
// $gotIt = false;
// }
// else {
// $source = $tempArray[$oldSource . "" . $oldSarget]["target"];
// }
// $target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
// if ($source != $target) {
// $element = array();
// $element["id"] =$trunk->getTrunkID();
// $element["source"] = $source;
// $element["target"] = $target;
// $element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
// $tempArray[$source . "" . $target] = $element;
// $gotIt = true;
// }
// }
// }
// else {
// $added = false;
// $oldSource = $element["source"];
// foreach ($tcf->getExtensions() as $ext1) {
// if ($added) {
// $source = $tempArray[$source . "" . $target]["target"];
// }
// else {
// $source = $oldSource;
// }
// $target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getTitle();
// if ($source != $target) {
// $element = array();
// $element["id"] =$trunk->getTrunkID();
// $element["source"] = $source;
// $element["target"] = $target;
// $element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
// $tempArray[$source . "" . $target] = $element;
// $added = true;
// $oldSource = $target;
// }
// else {
// $added = false;
// }
// }
// }
}
$edgsArray = array();
foreach (array_values($tempArray) as $value) {
$capacity = $trunk->getCapacity();
$value["id"] = $value["id"] . " (".($capacity-$count) ."/".$capacity.")";
foreach ($edgsArray as $value1) {
if($value1["id"] == $value["id"]){
$value["id"] .= " ";
break;
}
}
$edgsArray[] = $value;
}
$edges = array_merge($edges, $edgsArray);
// $elements = array_merge($elements, array_values($tempArray));
}
// var_dump($edges);
// $fileSystem = new Filesystem();
// $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/assets/js/sigma/data.json';
// $fileSystem->dumpFile($upload_dir, json_encode($data));
$tempCap = $elements[0]['counterCapacity'];
$tempLib = $elements[0]['counterCapacity'] - $elements[0]['counterUsed'];
return $this->render('Stat/diagram_trunk_intra-site.html.twig', array(
"sites"=>$sites,
'page_title' => "Diagramme trunk intra-site: ".$site->getTitle()."(".$tempLib. "/". $tempCap .")" ,
'elements' => $elements,
'edges' => $edges,
'rooms' => $roomsSite,
"site_id" => $id
));
}
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/diagramme/intra-room/trunk/{id}", name="stats_diagram_intra_room_trunk")
*/
public function diagramTrunkIntraRoomAction($id, TranslatorInterface $translator)
{
ini_set("memory_limit", "-1");
set_time_limit(0);
ini_set('default_socket_timeout', 600);
// print " ";
$portsAllTemp = $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
$portsAll = array();
foreach ($portsAllTemp as $temp) {
foreach ($temp as $key => $value) {
$portsAll[] = $value;
}
}
$posXmax = 1500;
$posYmax = 700;
$posXinit = 100;
$posX = 0;
$posY = 100;
$increment = 200;
$elements = array();
$edges = array();
$room = $this->getDoctrine()->getRepository('App\Entity\Room')->findOneById($id);
$site = $room->getSite();
$rooms = $this->getDoctrine()->getRepository('App\Entity\Room')->findBySite($site);
$counter = @$this->getUsedPortSiteRoomCount();
$racks = [];
foreach ($room->getRacks() as $rack) {
$usedSite = 0;
$usedRoom = 0;
$usedRack = 0;
$capacitySite = 0;
$capacityRoom = 0;
$capacityRack = 0;
if (isset($counter["sites"][$site->getId()])) {
// $usedSite = $counter["sites"][$site->getId()]["counterUsed"];
// $capacitySite = $counter["sites"][$site->getId()]["counterCapacity"];
if (isset($counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
$usedRoom = $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"];
$capacityRoom = $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"];
if (isset($counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"])) {
try{
$usedRack = $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterUsed"];
$capacityRack = $counter["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["counterCapacity"];
}
catch(Exception $ex){}
}
}
}
$widthToAdd = 0;
if ($capacityRack < 100) {
$widthToAdd = 5;
}
else if ($capacityRack < 200) {
$widthToAdd = 10;
}
else if ($capacityRack < 300) {
$widthToAdd = 15;
}
else if ($capacityRack < 400) {
$widthToAdd = 20;
}
else if ($capacityRack < 500) {
$widthToAdd = 25;
}
else if ($capacityRack < 600) {
$widthToAdd = 30;
}
else if ($capacityRack < 700) {
$widthToAdd = 35;
}
else if ($capacityRack < 800) {
$widthToAdd = 40;
}
else if ($capacityRack < 900) {
$widthToAdd = 45;
}
else {
$widthToAdd = 50;
}
if ($posX < $posXmax) {
$posX += $increment;
} else {
$posX = $posXinit;
$posY += $increment;
}
$racks[] = ["id" => $rack->getTitle(),
"parent" => $room->getTitle(),
"counterUsed" => ($capacityRack-$usedRack),
"counterCapacity" => $capacityRack ? $capacityRack : 0,
"width" => 50+ $widthToAdd,
// "width" => 100+ count($room->getRacks())*40,
"height" => 100+ $widthToAdd,
// "height" => 100+ count($room->getRacks())*30,
"shape" => "rectangle",
"positionX" => $rack->getPositionX() ? $rack->getPositionX() : $posX,
"positionY" => $rack->getPositionY() ? $rack->getPositionY() : $posY
];
}
$elements[] = [
"counterUsed" => ($capacityRoom-$usedRoom),
"counterCapacity" => $capacityRoom,
"racks" => $racks
];
$trunks = $this->getDoctrine()->getRepository('App\Entity\Trunk')->findAll();
foreach ($trunks as $trunk) {
$count = 0;
$tempArray = array();
$element = array();
$tcfs = $trunk->getCableFiber();
$ext = $this->getDoctrine()->getRepository('App\Entity\LinkExtension')->findOneByTrunk($trunk);
foreach ($tcfs as $tcf) {
$exts = $tcf->getExtensions();
$countExts = count($exts);
if ($ext) {
if (in_array($tcf->getPortA()->getId(), $portsAll)) {
$count++;
}
elseif (in_array($tcf->getPortB()->getId(), $portsAll)) {
$count++;
}
else{
if ( $countExts > 0) {
if (in_array($exts[$countExts-1]->getPortB()->getId(), $portsAll)) {
$count++;
}
}
}
}
//MODIFIED on 28 fév 2019
$trunkRoomA = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getId();
$trunkRoomB = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getId();
$target = "";
if($trunkRoomA == $id && $trunkRoomB == $id){
$source = $tcf->getPortA()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
$target = $tcf->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
if($source != $target){
$element["id"] = $trunk->getTrunkID();
$element["source"] = $source;
$element["target"] = $target;
$element["color"] = $trunk->getTypeCable()->getColor();
$tempArray[$source . "" . $target] = $element;
}
}
foreach ($exts as $ext1) {
$extRoomB = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getRoom()->getId();
if($trunkRoomB == $id && $extRoomB == $id){
$source = $target;
$target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
if($source != $target){
$element = array();
$element["id"] =$trunk->getTrunkID();
$element["source"] = $source;
$element["target"] = $target;
$element["color"] = ($ext1->getTypeCable()) ? $ext1->getTypeCable()->getColor() : $trunk->getTypeCable()->getColor();
$tempArray[$source . "" . $target] = $element;
}
$trunkRoomB = $extRoomB;
}
else if($extRoomB == $id){
$target = $ext1->getPortB()->getInterfaceSpecific()->getEquipmentSpecific()->getRack()->getTitle();
$trunkRoomB = $extRoomB;
}
}
}
$edgsArray = array();
foreach (array_values($tempArray) as $value) {
$capacity = $trunk->getCapacity();
$value["id"] = $value["id"] . " (".($capacity-$count) ."/".$capacity.")";
foreach ($edgsArray as $value1) {
if($value1["id"] == $value["id"]){
$value["id"] .= " ";
break;
}
}
$edgsArray[] = $value;
}
$edges = array_merge($edges, $edgsArray);
// $elements = array_merge($elements, array_values($tempArray));
}
// var_dump($rooms);
// $fileSystem = new Filesystem();
// $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/assets/js/sigma/data.json';
// $fileSystem->dumpFile($upload_dir, json_encode($data));
$tempCap = $elements[0]['counterCapacity'];
$tempLib = $elements[0]['counterCapacity'] - $elements[0]['counterUsed'];
return $this->render('Stat/diagram_trunk_intra-room.html.twig', array(
"rooms"=>$rooms,
'page_title' => "Diagramme trunk intra-room: ".$room->getTitle()."(".$tempLib. "/". $tempCap .")" ,
'elements' => $elements,
'edges' => $edges,
"room_id" => $id
));
}
/**
* @IsGranted("ROLE_CRUD")
* @Route("/stats/diagramme/link", name="stats_diagram_link")
*/
public function diagramLinkAction(TranslatorInterface $translator)
{
// print " ";
return $this->render('Stat/diagram_link.html.twig', array(
"sites"=>$sites,
'page_title' => $translator->trans('Synthèse Equipements'),
));
}
public function getUsedPortCount()
{
ini_set("memory_limit", "-1");
set_time_limit(0);
$sites = array();
$sites["counterUsed"] = 0;
$sites["counterCapacity"] = 0;
$sites["sites"] = array();
$portsAllTemp = $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
$portsAll = array();
foreach ($portsAllTemp as $tempArray) {
foreach ($tempArray as $key => $value) {
$portsAll[] = $value;
}
}
$ports = $this->getDoctrine()->getRepository('App\Entity\Port')->findAll();
foreach ($ports as $port) {
try {
$interfaceSpecific = $port->getInterfaceSpecific();
$intTypeLink = $interfaceSpecific->getInterfaceGeneric()->getTypeLink()->getTitle();
$equipmentSpecificTemp = $interfaceSpecific->getEquipmentSpecific();
$module = null;
$equipmentSpecific = null;
if(!isset($equipmentSpecificTemp)){
$interfaceSpecificPortExterne = $port->getInterfaceSpecificPortExterne();
if(isset($interfaceSpecificPortExterne)){
$equipmentSpecificTemp = $interfaceSpecificPortExterne->getEquipmentSpecific();
if ($equipmentSpecificTemp->isModule()) {
$module = $equipmentSpecificTemp;
$equipmentSpecific = $equipmentSpecificTemp->getParent();
}
else{
$equipmentSpecific = $equipmentSpecificTemp;
}
}
}
elseif ($equipmentSpecificTemp->isModule()) {
$module = $equipmentSpecificTemp;
$equipmentSpecific = $equipmentSpecificTemp->getParent();
}
// if (isset($equipmentSpecificTemp) && $equipmentSpecificTemp->isModule()) {
// $module = $equipmentSpecificTemp;
// $equipmentSpecific = $equipmentSpecificTemp->getParent();
// }
else {
$equipmentSpecific = $equipmentSpecificTemp;
}
if(!isset($equipmentSpecific)) continue;
$rack = $equipmentSpecific->getRack();
$room = $rack->getRoom();
$site = $room->getSite();
} catch (\Exception $e) {
continue;
}
// print " ";
if ($intTypeLink == "Simplex" || $intTypeLink == "Duplex" || ($intTypeLink == "Port Externe" && $port->getPortExterne())) {
$sites["counterCapacity"] = $sites["counterCapacity"] + 1;
if (isset($sites["sites"][$site->getId()])) {
$sites["sites"][$site->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["counterCapacity"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["counterCapacity"] + 1;
if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] + 1;
if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()])) {
$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;
$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;
if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()])) {
$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;
if ($module) {
$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;
if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()])) {
$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;
$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;
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()])) {
$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;
}
}
else {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$module->getEquipmentSpecificName(),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
$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,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
}
else {
$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;
if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()])) {
$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;
}
else {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
}
}
else {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$equipmentSpecific->getEquipmentSpecificName(),
"modules"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"modulesArray"=>array()),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
if ($module) {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$module->getEquipmentSpecificName(),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
$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,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
}
else {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$rack->getTitle(),
"equipments"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"equipmentsArray"=>array()
));
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$equipmentSpecific->getEquipmentSpecificName(),
"modules"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"modulesArray"=>array()),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
if ($module) {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$module->getEquipmentSpecificName(),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
$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,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
}
else {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$room->getTitle(),
"racks"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"racksArray"=>array()));
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$rack->getTitle(),
"equipments"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"equipmentsArray"=>array()
));
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$equipmentSpecific->getEquipmentSpecificName(),
"modules"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"modulesArray"=>array()),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
if ($module) {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$module->getEquipmentSpecificName(),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
$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,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
}
else {
$sites["sites"][$site->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$site->getTitle(),
"rooms"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"roomsArray"=>array()));
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$room->getTitle(),
"racks"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"racksArray"=>array()));
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$rack->getTitle(),
"equipments"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"equipmentsArray"=>array()
));
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$equipmentSpecific->getEquipmentSpecificName(),
"modules"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"modulesArray"=>array()),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
if ($module) {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["modules"]["modulesArray"][$module->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$module->getEquipmentSpecificName(),
"interfaces"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"interfacesArray"=>array()));
$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,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()]["equipments"]["equipmentsArray"][$equipmentSpecific->getId()]["interfaces"]["interfacesArray"][$interfaceSpecific->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$interfaceSpecific->getInterfaceGeneric()->getInterfaceNumber());
}
//check for nports
$nPorts = $interfaceSpecific->getInterfaceGeneric()->getNPorts();
if ($nPorts){
$nPorts = json_decode($nPorts);
} else {
$nPorts = [];
}
if (!in_array($port->getOrderNo(), $nPorts)){
if (in_array($port->getId(), $portsAll)) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
$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;
$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;
if ($module) {
$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;
$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;
$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;
try{
$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;
}
catch(\Exception $ex){}
}
else {
$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;
$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;
}
}
else {
$tcfsB = $this->getDoctrine()->getRepository('App\Entity\TrunkCableFiber')->findOneByPortB($port);
if ($tcfsB && count($tcfsB->getExtensions()) > 0) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
$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;
$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;
if ($module) {
$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;
$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;
$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;
$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;
}
else {
$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;
$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;
}
continue;
}
$usedExt = $this->getDoctrine()->getRepository('App\Entity\TrunkExtension')->findOneByPortB($port);
if ($usedExt) {
$tcf = $usedExt->getTrunkCableFiber();
$len = count($tcf->getExtensions());
if ($len != $usedExt->getSequenceNo()) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
$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;
$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;
if ($module) {
$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;
$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;
$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;
$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;
}
else {
$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;
$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;
}
continue;
}
}
if (count($port->getExtensionOrder()) > 1 ) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
$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;
$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;
if ($module) {
$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;
$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;
$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;
$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;
}
else {
$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;
$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;
}
continue;
}
}
}
}
}
return $sites;
}
public function getUsedPortSiteRoomCount()
{
ini_set("memory_limit", "-1");
set_time_limit(0);
$sites = array();
$sites["counterUsed"] = 0;
$sites["counterCapacity"] = 0;
$sites["sites"] = array();
$portsAllTemp = $this->getDoctrine()->getRepository('App\Entity\Port')->findAllUsedPorts();
$portsAll = array();
foreach ($portsAllTemp as $tempArray) {
foreach ($tempArray as $key => $value) {
$portsAll[] = $value;
}
}
$ports = $this->getDoctrine()->getRepository('App\Entity\Port')->findAll();
foreach ($ports as $port) {
try {
$interfaceSpecific = $port->getInterfaceSpecific();
$intTypeLink = $interfaceSpecific->getInterfaceGeneric()->getTypeLink()->getTitle();
$equipmentSpecificTemp = $interfaceSpecific->getEquipmentSpecific();
$module = null;
$equipmentSpecific = null;
if(!isset($equipmentSpecificTemp)){
$interfaceSpecificPortExterne = $port->getInterfaceSpecificPortExterne();
if(isset($interfaceSpecificPortExterne)){
$equipmentSpecificTemp = $interfaceSpecificPortExterne->getEquipmentSpecific();
if ($equipmentSpecificTemp->isModule()) {
$module = $equipmentSpecificTemp;
$equipmentSpecific = $equipmentSpecificTemp->getParent();
}
else{
$equipmentSpecific = $equipmentSpecificTemp;
}
}
}
elseif ($equipmentSpecificTemp->isModule()) {
$module = $equipmentSpecificTemp;
$equipmentSpecific = $equipmentSpecificTemp->getParent();
}
else {
$equipmentSpecific = $equipmentSpecificTemp;
}
if(!isset($equipmentSpecific)) continue;
$rack = $equipmentSpecific->getRack();
$room = $rack->getRoom();
$site = $room->getSite();
} catch (\Exception $e) {
continue;
}
// print " ";
if ($intTypeLink == "Simplex" || $intTypeLink == "Duplex" || ($intTypeLink == "Port Externe" && $port->getPortExterne())) {
$sites["counterCapacity"] = $sites["counterCapacity"] + 1;
if (isset($sites["sites"][$site->getId()])) {
$sites["sites"][$site->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["counterCapacity"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["counterCapacity"] + 1;
if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()])) {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterCapacity"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterCapacity"] + 1;
if (isset($sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()])) {
$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;
}
else {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["racksArray"][$rack->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$rack->getTitle());
}
}
else {
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$room->getTitle());
}
}
else {
$sites["sites"][$site->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$site->getTitle(),
"rooms"=>array("counterUsed"=>0,
"counterCapacity"=>1,
"roomsArray"=>array()));
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()] = array("counterUsed"=>0,
"counterCapacity"=>1,
"name"=>$room->getTitle());
}
//check for nports
$nPorts = $interfaceSpecific->getInterfaceGeneric()->getNPorts();
if ($nPorts){
$nPorts = json_decode($nPorts);
} else {
$nPorts = [];
}
if (!in_array($port->getOrderNo(), $nPorts)){
if (in_array($port->getId(), $portsAll)) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
try{
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
}
catch(Exception $ex){
}
}
else {
$tcfsB = $this->getDoctrine()->getRepository('App\Entity\TrunkCableFiber')->findOneByPortB($port);
if ($tcfsB && count($tcfsB->getExtensions()) > 0) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
continue;
}
$usedExt = $this->getDoctrine()->getRepository('App\Entity\TrunkExtension')->findOneByPortB($port);
if ($usedExt) {
$tcf = $usedExt->getTrunkCableFiber();
$len = count($tcf->getExtensions());
if ($len != $usedExt->getSequenceNo()) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
continue;
}
}
if (count($port->getExtensionOrder()) > 1 ) {
$sites["counterUsed"] = $sites["counterUsed"] + 1;
$sites["sites"][$site->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["counterUsed"] + 1;
$sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] = $sites["sites"][$site->getId()]["rooms"]["roomsArray"][$room->getId()]["racks"]["counterUsed"] + 1;
$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;
continue;
}
}
}
}
}
return $sites;
}
}