Jelajahi Sumber

FD3-640 se muestra el externalId en listado de onu

Espinoza Guillermo 6 tahun lalu
induk
melakukan
2a65a341bc

+ 4 - 4
composer.lock

@@ -1946,7 +1946,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/BaseAdmin.git",
-                "reference": "5e106af264ba35db3b246d1d506e666369d4b091"
+                "reference": "d6dfe3b8c1b961c64766680c4a58db45af7e684d"
             },
             "type": "library",
             "autoload": {
@@ -1961,7 +1961,7 @@
                 "bootstrap",
                 "sonata"
             ],
-            "time": "2018-07-12T13:01:01+00:00"
+            "time": "2018-07-27T16:52:57+00:00"
         },
         {
             "name": "ik/device-bundle",
@@ -2178,7 +2178,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/Webservice.git",
-                "reference": "4fb907804f45b182cda4c48551adf5240386111a"
+                "reference": "c17a870fa8f24a00b0660b62c20704443c0b032f"
             },
             "require": {
                 "ext-curl": "*",
@@ -2191,7 +2191,7 @@
                 }
             },
             "description": "The Flowdat3 Webservice Rest",
-            "time": "2018-07-03T12:59:44+00:00"
+            "time": "2018-07-31T18:33:39+00:00"
         },
         {
             "name": "ik/workflow-bundle",

+ 2 - 0
src/FTTHBundle/Admin/ONUAdmin.php

@@ -59,6 +59,8 @@ class ONUAdmin extends WorkflowBaseAdmin
     protected function configureListFields(ListMapper $listMapper)
     {
         $listMapper
+            // src/FTTHBundle/Controller/ONUCRUDController.php L43-L55
+            // Se consulta una sola vez y se traen todos los clientes por id
             ->add('client', 'string', array(
                 'template' => 'FTTHBundle:ONU:base_list_field_client.html.twig'
             ))

+ 8 - 4
src/FTTHBundle/Controller/ONUCRUDController.php

@@ -40,16 +40,20 @@ class ONUCRUDController extends CRUDController
         }
 
         $_clients = array();
-        if($this->container->hasParameter('client') && $clientsIds) {
+        if ($this->container->hasParameter('client') && $clientsIds) {
             $clientApi = $this->getParameter('client');
             $webservice = $this->get("webservice");
             $filters = array("qb-ids" => implode(",",$clientsIds), 'qb-criteria' => true);
             $clients = $webservice->getData($clientApi, $filters);
-            if(is_array($clients) && !empty($clients))
-                foreach($clients as $client) {
-                    if(isset($client['id']) && isset($client['name']))
+            if (is_array($clients) && !empty($clients)) {
+                foreach ($clients as $client) {
+                    if (isset($client['externalId']) && isset($client['id']) && isset($client['name'])) {
+                        $_clients[$client['id']] = "{$client['externalId']} - {$client['name']} ({$client['id']})";
+                    } elseif (isset($client['id']) && isset($client['name'])) {
                         $_clients[$client['id']] = "{$client['id']} - {$client['name']}";
+                    }
                 }
+            }
         }
 
         if($_clients) {

+ 17 - 8
src/FTTHBundle/EventListener/ClientFilterListListener.php

@@ -44,24 +44,32 @@ class ClientFilterListListener
      */
     public function configureDatagridFilters(ConfigureEvent $event)
     {
-        if ($event->getMapper()->has('clientId')) {
-            $order = $event->getMapper()->keys();
-            $event->getMapper()->remove('clientId');
-            $event->getMapper()
-                ->add('clientId', CallbackFilter::class,
-                    array(
+        $mapper = $event->getMapper();
+        if ($mapper->has('clientId')) {
+            $translator = $this->container->get('translator');
+            $order = $mapper->keys();
+            $mapper->remove('clientId');
+            $mapper->add('clientId', CallbackFilter::class, array(
                         'callback' => array($this, 'getClientFilter'),
-                        'field_type' => 'text'));
-            $event->getMapper()->reorder($order);
+                        'field_type' => 'text'
+                    ), null, [
+                            'attr' => [
+                                'placeholder' => $translator->trans('client_filter_help', [], 'FTTHBundle'),
+                            ],
+                        ]
+                    );
+            $mapper->reorder($order);
         }
     }
 
     /**
      * Filtra las ONU por el filtro de clientes.
+     *
      * @param $queryBuilder
      * @param $alias
      * @param $field
      * @param $value
+     *
      * @return bool
      */
     public function getClientFilter($queryBuilder, $alias, $field, $value)
@@ -70,6 +78,7 @@ class ClientFilterListListener
         if ($value['value']) {
             $resp = $this->getContainer()->get('webservice')->getClientFilter($queryBuilder, $alias, $field, $value);
         }
+        
         return $resp;
     }
 }

+ 3 - 1
src/FTTHBundle/Resources/translations/FTTHBundle.es.yml

@@ -163,7 +163,7 @@ list:
     label_pon_serial_number: Identificador
     label_pon_serial_number_aux: Número Serie Pon
     label_client_id: Cliente
-    label_client: Cliente
+    label_client: ExtID - Cliente (ID)
     label_current_state: Estado
     label__action: Acciones
     label_created: Creado
@@ -326,3 +326,5 @@ sonata.filter.onu_id: Ingrese Identificador|Nro serie|Nro serie PON
 action_use_template: Usar
 action_no_use_template: Deshabilitar base
 msg_use_template_onu_in_create_onu_ftth: Se encuentra en uso una plantilla de ONU y algunos campos se encuentran preseleccionados. Para crear una ONU sin campos preseleccionados acceda a FTTH > Plantilla ONU > Acciones > Deshabilitar Base.
+
+client_filter_help: Ingresar nombre de cliente, ID o externalID