]> git.llucax.com Git - mecon/intranet.git/blobdiff - sistema/local_lib/Servicios/Bandas/Agente.php
- Primera version semi-funcional de bandas. Otros cambios que no tengo idea de que...
[mecon/intranet.git] / sistema / local_lib / Servicios / Bandas / Agente.php
index 16a65a507f2126c848bdee03e5597dfb8df4075d..fae972c01f03aa521106e5391d5e15b5dea73e52 100644 (file)
@@ -47,47 +47,71 @@ class Servicios_Bandas_Agente extends MECON_Agente {
     var $_accesos = null;
 
     /**
-     * @var    int $credencial
+     * Número de ausentes sin aviso en el mes pedido
+     *
+     * @var    int $NASA
      * @access private
      */
-    var $_credencial;
+    var $_NASA;
 
-    // ~X2C
+    /**
+     * Promedio horario del agente en el mes pedido
+     *
+     * @var    int $promedio
+     * @access private
+     */
+    var $_promedio;
 
-    // +X2C Operation 194
     /**
-     * @param  date $fecha 
+     * Array con las horas por día trabajadas por el agente
      *
-     * @return void
-     * @access public
+     * @var    int $horas
+     * @access private
      */
-    function getCredencial($fecha = null) // ~X2C
-    {
-        trigger_error('Not implemented!', E_USER_WARNING);
-    }
-    // -X2C
+    var $_horas;
+
+    /**
+     * Cantidad de días trabajados por el agente en el mes pedido
+     *
+     * @var    int $diasTrabajados
+     * @access private
+     */
+    var $_diasTrabajados = 0;
+
+    /**
+     * Cantidad de días laborables trabajados por el agente en el mes pedido
+     *
+     * @var    int $diasLaborablesTrabajados
+     * @access private
+     */
+    var $_diasLaborablesTrabajados = 0;
+
+    // ~X2C
+
 
     // +X2C Operation 197
     /**
+     * Devuelve el promedio de horas del agente en el mes pedido
+     *
      * @return void
      * @access public
      */
     function getPromedioMensual() // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        return $this->_promedio;
     }
     // -X2C
 
     // +X2C Operation 198
     /**
-     * @param  date $dia La fecha que se desea consultar
+     * Devuelve un array con las horas de cada día
      *
      * @return void
      * @access public
      */
-    function getHoras($dia = null) // ~X2C
+    function getHoras() // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        return $this->_horas;
     }
     // -X2C
 
@@ -95,15 +119,12 @@ class Servicios_Bandas_Agente extends MECON_Agente {
     /**
      * Método que devuelve todos los accesos de una persona en un rango de fechas
      *
-     * @param  date $fecha_desde 
-     * @param  date $fecha_hasta 
-     *
      * @return void
      * @access public
      */
-    function getAccesos($fecha_desde, $fecha_hasta) // ~X2C
+    function getAccesos() // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        return $this->_accesos;
     }
     // -X2C
 
@@ -116,7 +137,7 @@ class Servicios_Bandas_Agente extends MECON_Agente {
      */
     function getDiasLaborablesTrabajados() // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        return $this->_diasLaborablesTrabajados;
     }
     // -X2C
 
@@ -129,7 +150,7 @@ class Servicios_Bandas_Agente extends MECON_Agente {
      */
     function getDiasTrabajados() // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        return $this->_diasTrabajados;
     }
     // -X2C
 
@@ -142,7 +163,7 @@ class Servicios_Bandas_Agente extends MECON_Agente {
      */
     function getNASA() // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        return $this->_NASA;
     }
     // -X2C
 
@@ -158,7 +179,56 @@ class Servicios_Bandas_Agente extends MECON_Agente {
      */
     function Servicios_Bandas_Agente($agente = null, $fecha = null) // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        Parent::MECON_Agente($agente);
+        $dsn = 'mysql://intranet:intranet@bal747f/bandas';
+        $db = DB::connect($dsn);
+        if (DB::isError($db)) 
+            die ($db->getMessage("No pudo conectarse a la base"));
+        if(is_null($fecha)) $fecha = new Date();
+        $mes = $fecha->format('%m');
+        $anio = $fecha->format('%Y');
+        $sql = "SELECT  AC.credencial, TA.tipo_acceso, A.fecha, A.hora
+                FROM    Acceso A, Agente_Credencial AC, Tipo_Acceso TA
+                WHERE   AC.credencial = A.credencial AND
+                        AC.agente = $agente AND
+                        MONTH(A.fecha) = $mes AND YEAR(A.fecha) = $anio AND
+                        TA.puerta = A.puerta AND
+                        AC.desde <= A.fecha AND 
+                        (  AC.hasta >= A.fecha OR  AC.hasta IS NULL)
+                ORDER BY A.fecha, A.hora";
+        $result = $db->query($sql);
+        if (DB::isError($result))
+            die ($result->getMessage("Query mal hecho"));
+        for ($fila = 0; $fila < $result->numRows(); $fila++) {
+            $this->_accesos[$fila] = $result->fetchRow(DB_FETCHMODE_ASSOC);
+        }
+
+        $sql = "SELECT  diasLaborablesTrabajados, diasTrabajados, promedio, NASN
+                FROM    PrecalculoMensual
+                WHERE   agente = $agente AND anio = $anio and mes  = $mes";
+        $result = $db->query($sql);
+        if (DB::isError($result))
+            die ($result->getMessage("Query mal hecho"));
+        if ( $result->numRows() > 0) {
+            $aux = $result->fetchRow(DB_FETCHMODE_ASSOC);
+            $this->_diasTrabajados = $aux['diasTrabajados'];
+            $this->_diasLaborablesTrabajados = $aux['diasLaborablesTrabajados'];
+            $this->_promedio = $aux['promedio'];
+            $this->_NASA = $aux['NASN'];
+        }
+        $sql = "SELECT  fecha, tiempo, ASN, inconsistencia
+                FROM    PrecalculoDiario
+                WHERE   agente = $agente AND
+                        MONTH(fecha) = $mes AND
+                        YEAR(fecha) = $anio
+                ORDER BY fecha";
+        $result = $db->query($sql);
+        if (DB::isError($result))
+            die ($result->getMessage("Query mal hecho"));
+        for ($fila = 1; $fila < ($result->numRows() + 1); $fila++) {
+            $this->_horas[$fila] = $result->fetchRow(DB_FETCHMODE_ASSOC);
+        }
+       
     }
     // -X2C