// +--------------------------------------------------------------------+ // // $Id$ // // +X2C includes require_once 'MECON/Agente.php'; // ~X2C // +X2C Class 183 :Servicios_Bandas_Agente /** * @access public */ class Servicios_Bandas_Agente extends MECON_Agente { /** * Todos los accesos del agente en el mes pedido * * @var int $accesos * @access private */ var $_accesos = null; /** * Número de ausentes sin aviso en el mes pedido * * @var int $NASA * @access private */ var $_NASA; /** * Promedio horario del agente en el mes pedido * * @var int $promedio * @access private */ var $_promedio; /** * Array con las horas por día trabajadas por el agente * * @var int $horas * @access private */ 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 { return $this->_promedioMensual; } // -X2C // +X2C Operation 198 /** * Devuelve un array con las horas de cada día * * @return void * @access public */ function getHoras() // ~X2C { return $this->_horas; } // -X2C // +X2C Operation 205 /** * Método que devuelve todos los accesos de una persona en un rango de fechas * * @return void * @access public */ function getAccesos() // ~X2C { return $this->_accesos; } // -X2C // +X2C Operation 207 /** * Devuelve la cantidad de días laborales trabajados por el agente en el mes considerado * * @return void * @access public */ function getDiasLaborablesTrabajados() // ~X2C { return $this->_diasLaborablesTrabajados; } // -X2C // +X2C Operation 208 /** * Devuelve la cantidad de días trabajados por el agente en el mes considerado * * @return void * @access public */ function getDiasTrabajados() // ~X2C { 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 { return $this->_NASA; } // -X2C // +X2C Operation 213 /** * Constructor de la clase * * @param int $agente Número de documento del agente a instanciar * @param date $fecha Fecha utilizada para determinar el mes a mostrar * * @return void * @access public */ function Servicios_Bandas_Agente($agente = null, $fecha = null) // ~X2C { 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 } // -X2C Class :Servicios_Bandas_Agente ?>