X-Git-Url: https://git.llucax.com/mecon/intranet.git/blobdiff_plain/a62240244930f98eb0b360c7bace17f5fbdb428e..051a61896eceaa43618c6c61c85502a74d7910b4:/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..7ba4e13 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,77 @@ 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; + + /** + * @var array $ASA + * @access private + */ + var $_ASA = null; + + // ~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 +125,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 +143,7 @@ class Servicios_Bandas_Agente extends Agente { */ function getDiasLaborablesTrabajados() // ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this->_diasLaborablesTrabajados; } // -X2C @@ -129,22 +156,10 @@ class Servicios_Bandas_Agente extends Agente { */ function getDiasTrabajados() // ~X2C { - trigger_error('Not implemented!', E_USER_WARNING); + return $this->_diasTrabajados; } // -X2C - // +X2C Operation 212 - /** - * Devuelve la cantidad de ausentes sin aviso del agente en el mes considerado - * - * @return int - * @access public - */ - function getNASA() // ~X2C - { - trigger_error('Not implemented!', E_USER_WARNING); - } - // -X2C // +X2C Operation 213 /** @@ -158,7 +173,83 @@ 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 P.fecha, tiempo, ASN, inconsistencia, tipo + FROM PrecalculoDiario AS P, Dia AS D + WHERE agente = $agente AND + P.fecha = D.fecha AND + MONTH(P.fecha) = $mes AND + YEAR(P.fecha) = $anio + ORDER BY P.fecha"; + $result = $db->query($sql); + if (DB::isError($result)) + die ($result->getMessage("Query mal hecho")); + $this->_ASA = array(); + for ($fila = 1; $fila < ($result->numRows() + 1); $fila++) { + $this->_horas[$fila] = $result->fetchRow(DB_FETCHMODE_ASSOC); + ($this->_horas[$fila]['ASN']==1)?array_push($this->_ASA,$this->_horas[$fila]['fecha']):0; + } + + } + // -X2C + + // +X2C Operation 229 + /** + * Devuelve las fechas dentro del mes pedido en que el agente faltó y no se pasó ninguna novedad que lo justifique + * + * @return array + * @access public + */ + function getASA() // ~X2C + { + return $this->_ASA; + } + // -X2C + + // +X2C Operation 230 + /** + * @return int + * @access public + */ + function getNASA() // ~X2C + { + return $this->_NASA; } // -X2C