git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk/src@1 e2b1556b-49f8-d141-9351-52d6861a72d9
90 lines
2.3 KiB
PHP
90 lines
2.3 KiB
PHP
<?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ó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ño concreto.
|
|
* @param usuario - Dueño de la sesión.
|
|
* @param mes - Mes que contempla el parte.
|
|
* @param anio - Año que contempla el parte.
|
|
* @param orden - Orden de ordenació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;
|
|
}
|
|
|
|
}
|
|
?>
|