X-Git-Url: https://git.llucax.com/mecon/intranet.git/blobdiff_plain/a62240244930f98eb0b360c7bace17f5fbdb428e..20d4a7ba7b9c030db66d4f655caa4cc481a509ae:/sistema/local_lib/Servicios/Bandas/Agente.php diff --git a/sistema/local_lib/Servicios/Bandas/Agente.php b/sistema/local_lib/Servicios/Bandas/Agente.php index 389436f..fae972c 100644 --- a/sistema/local_lib/Servicios/Bandas/Agente.php +++ b/sistema/local_lib/Servicios/Bandas/Agente.php @@ -37,7 +37,7 @@ require_once 'MECON/Agente.php'; /** * @access public */ -class Servicios_Bandas_Agente extends Agente { +class Servicios_Bandas_Agente extends MECON_Agente { /** * Todos los accesos del agente en el mes pedido * @@ -47,47 +47,71 @@ class Servicios_Bandas_Agente extends 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 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 Agente { */ function getDiasLaborablesTrabajados() // ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this->_diasLaborablesTrabajados; } // -X2C @@ -129,7 +150,7 @@ class Servicios_Bandas_Agente extends Agente { */ function getDiasTrabajados() // ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this->_diasTrabajados; } // -X2C @@ -142,7 +163,7 @@ class Servicios_Bandas_Agente extends Agente { */ function getNASA() // ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this->_NASA; } // -X2C @@ -158,7 +179,56 @@ class Servicios_Bandas_Agente extends 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