/**
* @access public
*/
-class Servicios_Bandas_Agente extends Agente {
+class Servicios_Bandas_Agente extends MECON_Agente {
/**
* Todos los accesos del agente en el mes pedido
*
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
/**
* 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
*/
function getDiasLaborablesTrabajados() // ~X2C
{
- trigger_error('Not implemented!', E_USER_WARNING);
+ return $this->_diasLaborablesTrabajados;
}
// -X2C
*/
function getDiasTrabajados() // ~X2C
{
- trigger_error('Not implemented!', E_USER_WARNING);
+ return $this->_diasTrabajados;
}
// -X2C
*/
function getNASA() // ~X2C
{
- trigger_error('Not implemented!', E_USER_WARNING);
+ return $this->_NASA;
}
// -X2C
*/
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