Bladeren bron

Agregado del parametro de la distancia en metros para levantar las naps en las onu

Filtrado de nap segun el parametro

Agregado del slot y link en la muestra de nap
gabriel 7 jaren geleden
bovenliggende
commit
17719841ae

+ 2 - 0
app/config/parameters.yml.dist

@@ -42,3 +42,5 @@ parameters:
     cookie_domain_client: '%env(CLIENT)%'
     cookie_domain: '%cookie_domain_client%.fd3.flowdat.com'
     session_names: [flowdat_base_session, flowdat_ftth_session, flowdat_mapas_session, flowdat_stats_session, flowdat_radius_session, flowdat_cablemodem_session]
+
+    onu.distance.nap: 0.2

+ 3 - 1
app/config/parameters.yml.docker

@@ -36,4 +36,6 @@ parameters:
 
     cookie_domain_client: '%env(CLIENT)%'
     cookie_domain: '%cookie_domain_client%.flowdat.com'
-    session_names: [flowdat_base_session, flowdat_ftth_session, flowdat_mapas_session, flowdat_stats_session, flowdat_radius_session, flowdat_cablemodem_session]
+    session_names: [flowdat_base_session, flowdat_ftth_session, flowdat_mapas_session, flowdat_stats_session, flowdat_radius_session, flowdat_cablemodem_session]
+
+    onu.distance.nap: 0.2

+ 22 - 6
src/FTTHBundle/Controller/ONUController.php

@@ -170,9 +170,10 @@ class ONUController extends Controller
     {
         $lat = $request->query->get('lat', '');
         $lng = $request->query->get('lng', '');
+        $napId = $request->query->get('napId', 0);
         if (isset($lat) && isset($lng)) {
             // calculo las distancias
-            $naps = $this->calculateDistance($lat, $lng);
+            $naps = $this->calculateDistance($lat, $lng, $napId);
             // ordeno las distancias con valores positivos
             usort($naps, array($this, "orderDistances"));
         } else {
@@ -211,7 +212,7 @@ class ONUController extends Controller
         // from miles
         $meterConversion = 1609;
         $geopointDistance = $dist * $meterConversion;
-
+        // divido por 1000 para pasarlo de metros a kilometros
         return round(($km ? ($geopointDistance / 1000) : $geopointDistance), 3, PHP_ROUND_HALF_UP);
     }
 
@@ -219,9 +220,10 @@ class ONUController extends Controller
      * Calcula la distancia de los NAP al punto pasado.
      * @param $lat
      * @param $lng
+     * @param $napId
      * @return array Retorna una array con los datos de los NAP y con las distancias calculadas.
      */
-    private function calculateDistance($lat, $lng)
+    private function calculateDistance($lat, $lng, $napId)
     {
         $naps = array();
         $em = $this->container->get("doctrine.orm.entity_manager");
@@ -236,10 +238,24 @@ class ONUController extends Controller
                 $nap->setContainer($this->container);
                 if (isset($extraData['lat']) && isset($extraData['lng'])) {
                     $distance = $this->distanceGeoPoints($lat, $lng, $extraData['lat'], $extraData['lng'], true);
-                    // divido por 1000 para pasarlo de metros a kilometros
-                    $naps[$nap->getId()] = ['id' => $nap->getId(), 'name' => $nap->getName(), 'distance' => $distance, 'freePort' => $nap->getFreePort(), 'address' => $extraData['Address']];
+                    if ($this->container->hasParameter('onu.distance.nap')) {
+                        if ($this->container->getParameter('onu.distance.nap') >= $distance ||
+                            $napId == $nap->getId()) {
+                            // controlo la distancia y el codigo de nap
+                            $naps[$nap->getId()] = ['id' => $nap->getId(), 'name' => $nap->getName(), 'distance' => $distance, 'freePort' => $nap->getFreePort(), 'address' => $extraData['Address'], 'slot' => $extraData['slot'], 'link' => $extraData['link']];
+                        }
+                    } else {
+                        if ($napId == $nap->getId()) {
+                            // si el codigo de napId coincide tengo que cargar la nap
+                            $naps[$nap->getId()] = ['id' => $nap->getId(), 'name' => $nap->getName(), 'distance' => $distance, 'freePort' => $nap->getFreePort(), 'address' => $extraData['Address'], 'slot' => $extraData['slot'], 'link' => $extraData['link']];
+                        }
+                    }
+
                 } else {
-                    $naps[$nap->getId()] = ['id' => $nap->getId(), 'name' => $nap->getName(), 'distance' => -1, 'freePort' => $nap->getFreePort(), 'address' => ''];
+                    if ($napId == $nap->getId()) {
+                        // si el codigo de napId coincide tengo que cargar la nap
+                        $naps[$nap->getId()] = ['id' => $nap->getId(), 'name' => $nap->getName(), 'distance' => -1, 'freePort' => $nap->getFreePort(), 'address' => '', 'slot' => $extraData['slot'], 'link' => $extraData['link']];
+                    }
                 }
             }
         }

+ 9 - 4
src/FTTHBundle/Resources/views/ONU/form.html.twig

@@ -99,7 +99,8 @@
                     type: "GET",
                     data: {
                         lat: origin.lat,
-                        lng: origin.lng
+                        lng: origin.lng,
+                        napId: modificacion ? $("select[id*='_nap']").val() : 0
                     }
                 }).done(function (res) {
                     var select = $("select[id*='_nap']");
@@ -113,7 +114,9 @@
                             if (obj[i].distance != -1) {
                                 var tmp = obj[i].name + " ({{ 'Free Port'|trans({}, 'FTTHBundle') }}: " + obj[i].freePort + " - " +
                                     "{{ 'Distance'|trans({}, 'FTTHBundle') }}: " + obj[i].distance + " KM. - " +
-                                    "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address + ")";
+                                    "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address + " - " +
+                                    "Slot: " + obj[i].slot + " - " +
+                                    "Link: " + obj[i].link + ")";
                                 select.append(
                                     '<option value="' + obj[i].id + '" >' + tmp +
                                     '</option>'
@@ -125,10 +128,12 @@
                         }
                         for (var i = 0; i < obj.length; i++) {
                             if (obj[i].distance == -1) {
-                                var tmp = obj[i].name + " ({{ 'Free Port'|trans({}, 'FTTHBundle') }}: " + obj[i].freePort;
+                                var tmp = obj[i].name + " ({{ 'Free Port'|trans({}, 'FTTHBundle') }}: " + obj[i].freePort + " - ";
                                 if (obj[i].address != null && obj[i].address.length > 0) {
-                                    tmp += " - " + "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address;
+                                    tmp += "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address + " - ";
                                 }
+                                tmp += "Slot: " + obj[i].slot + " - ";
+                                tmp += "Link: " + obj[i].link;
                                 tmp += ")";
                                 select.append(
                                     '<option value="' + obj[i].id + '" >' + tmp +