Incam_Intranet/Objects/ListaPartesActividad.php

90 lines
2.3 KiB
PHP
Raw Normal View History

<?php
/*
* Clase ListaPartesActividad
*
* Contiene una lista de partes de actividad de un mes de todos los empleados.
*
*/
include_once("ParteActividad.php");
include_once("BD.php");
class ListaPartesActividad{
//Atributos:
/* Una lista de partes. */
protected $partes = null;
/* Usuario que posee activa la sesi<73>n. */
protected $usuario;
/* Mes del calendario a considerar. */
private $mes;
/* A<>o del calendario a considerar. */
private $anio;
/* modo de b<>squeda */
private $order_by = "";
/* Idioma */
private $locale;
//Constructor:
/**
* Crea un objeto Parte de Actividad para un empleado para un mes y a<EFBFBD>o concreto.
* @param usuario - Due<EFBFBD>o de la sesi<EFBFBD>n.
* @param mes - Mes que contempla el parte.
* @param anio - A<EFBFBD>o que contempla el parte.
* @param orden - Orden de ordenaci<EFBFBD>n de la lista.
* @param locale - Contenido del fichero de idioma.
*/
function ListaPartesActividad($usuario,$mes,$anio, $orden, $locale){
$this->usuario=$usuario;
if(($this->usuario->tieneRol(1)) || ($this->usuario->tieneRol(4))){
if($mes < 10){
//Me aseguro de que no tenga cero delante
$mes = $mes + 0;
//Y le pongo el cero delante.
$mes = "0".$mes;
}
$this->mes=$mes;
$this->anio=$anio;
$this->locale = $locale;
if($orden != ""){
$this->order_by = $orden;
}
}else{
$error = $this->locale['3024'];
throw new Exception($error);
return false;
exit;
}
}
/**
* Acceso a los partes de todos los empleados del mes.
*/
function getPartes(){
if($this->partes == null){
$this->partes = array();
$consulta = "SELECT pa.oid,CONCAT(usu.nombre,' ',usu.apellidos) as nombre,sum(dato) as horas,count(*) as jornadas FROM partes_actividad pa,usuarios usu WHERE usu.oid=pa.oid AND fecha like '".$this->anio."-".$this->mes."%' AND dato > 0 AND dato < 25 GROUP BY pa.oid ORDER BY jornadas DESC";
$bd = new BD();
if($resultado = $bd->execQuery($consulta)){
while($rows = mysql_fetch_array($resultado)){
$p = new ParteActividad($this->usuario,$rows["oid"],$this->mes,$this->anio, $this->locale);
$p->setHoras($rows["horas"]);
$p->setJornadas($rows["jornadas"]);
$p->setNombreCompleto($rows["nombre"]);
$this->partes[] = $p;
}
}
}
return $this->partes;
}
}
?>