123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- <?php
- /*
- * Clase que contiene todas las fechas finales que se pueden generar a partir de los datos de la BD
- * y que serán pintadas en el calendario.
- * Las validaciones se ahcen previamente.
- */
- define("PERIODO_COLOR", "#4F647D");
- define("EXTRAS_COLOR", "#E470C0");
- class Evento {
- public $id_db, $titulo, $desc, $fecha, $todo_dia, $hora_ini, $hora_fin, $inscripciones, $editable, $insigniasTotal;
- public $periodo, $perfilesArr, $insigniaArr, $inscripcionesArr;
- public $fechasArr, $atributosArr;
-
- function __construct($id_db, $titulo, $desc, $periodo, $fecha, $todo_dia = true, $hora_ini = "", $hora_fin = "", $editable = true){
- $this->id_db = $id_db;
- $this->titulo = $titulo;
- $this->desc = $desc;
- $this->fecha = fechaGuion($fecha);
- $this->todo_dia = $todo_dia;
- $this->hora_ini = $hora_ini;
- $this->hora_fin = $hora_fin;
-
- //$this->inscripciones = $inscripciones;
- $this->editable = $editable;
- $this->periodo = $periodo;
- $this->fechasArr = array();
- $this->perfilesArr = array();
- $this->atributosArr = array();
- $this->insigniasTotal = 0;
- $this->inscripcionesArr = array();
- }
-
- function addInsignia($id, $tipo, $tipo_desc, $tipo_color, $puesto, $puesto_desc, $tiene_evidencia, $evidencia, $insc_ini, $insc_fin){
- $this->inscripciones = ($insc_ini!="")?true:false;
- $this->insigniaArr = array(
- "insignia_id"=>$id,
- "tipo"=>$tipo,
- "tipo_desc"=>$tipo_desc,
- "tipo_color"=>$tipo_color,
- "puesto"=>$puesto,
- "puesto_desc"=>$puesto_desc,
- "tiene_evidencia"=>$tiene_evidencia,
- "evidencia"=>$evidencia,
- "insc_ini"=>fechaSlash($insc_ini),
- "insc_fin"=>date("d/m/Y", strtotime($insc_fin)),
- "insc_hora_fin"=>date("H:i", strtotime($insc_fin)),
- );
- }
- function addPerfil($perf_rs){
- $this->perfilesArr[] = array("id"=>$perf_rs["CalendarioPerfil_id"], "desc"=>$perf_rs["CalendarioPerfil_desc"]);
- }
-
- function addAtributo($atr_rs){
- $this->atributosArr[] = array("id"=>$atr_rs["AtributoEgresoGeneral_id"], "nivel"=>$atr_rs["AtributoNivel_id"]);
- }
- function addTotalInsignias($total){
- $this->insigniasTotal = $total;
- }
- function addInscripciones($fechaI, $fechaF, $evidencias){
- $this->inscripcionesArr = array(
- "fecha_inicio"=>fechaSlash($fechaI),
- "fecha_final"=>fechaSlash($fechaF),
- "evidencia"=>$evidencias
- );
- }
-
- //Fecha normal
- function addFecha($fecha){
- $fecha = fechaGuion($fecha);
- if(strtotime($fecha)>= strtotime($this->fecha))//solo si la fecha es mayor a la fecha inicial
- $this->fechasArr[] = array("fecha_orig"=> $fecha, "fecha"=> $fecha, "todo_dia"=>$this->todo_dia, "hora_ini"=>$this->hora_ini, "hora_fin"=>$this->hora_fin);
- }
-
- //Fechas modificadas
- function replaceFecha($fecha_orig, $fecha_new, $hora_ini, $hora_fin){//fecha_orig en formato yyyy-mm-dd hh:mm:ss
- $fecha_busca = explode(" ", $fecha_orig);//quita horas
- $fecha_busca[0] = fechaGuion($fecha_busca[0]);
- $fecha_new = fechaGuion($fecha_new);
-
- for($i=0; $i< count($this->fechasArr); $i++){
- if($this->fechasArr[$i]["fecha_orig"] == $fecha_busca[0]){
- $this->fechasArr[$i]["fecha"] = $fecha_new;
- $this->fechasArr[$i]["hora_ini"] = $hora_ini;
- $this->fechasArr[$i]["hora_fin"] = $hora_fin;
- break;//solo 1 por fecha
- }
- }
- }
-
- //Excepciones
- function removeFecha($fecha_busca){
- $tmp = explode(" ", $fecha_busca);//quita horas
- $fecha_busca = fechaGuion($tmp[0]);
- for($i=0; $i< count($this->fechasArr); $i++){
- if($this->fechasArr[$i]["fecha_orig"] == $fecha_busca){
- array_splice($this->fechasArr, $i, 1);
- break;
- }
- }
- }
-
- function hasFecha($fecha){
- $fecha = fechaGuion($fecha);
- foreach($this->fechasArr as $fechaArr){
- if($fechaArr["fecha"] == $fecha)
- return true;
- }
- return false;
- }
-
- //Obtiene listado de fechas y cada una con la descripicón del evento.
- //Filtra las fechas generadas por el mes y el año
- function getEventList($mes, $anho){
- $arr = array();
- foreach($this->fechasArr as $fecha){
- if(intval(date("n", strtotime($fecha["fecha"]))) == intval($mes) && intval(date("Y", strtotime($fecha["fecha"]))) == intval($anho) ){
- $arr[] = array(
- "id_db"=>$this->id_db,
- "titulo"=>$this->titulo,
- "desc"=>nl2br($this->desc),
- "fechas_total"=> count($this->fechasArr),
- "fecha_orig"=> fechaSlash($fecha["fecha_orig"]),
- "fecha"=> fechaSlash($fecha["fecha"]),
- "dia"=>intval(date("j", strtotime($fecha["fecha"]))),//solo para pintarlo
- "todo_dia"=>$this->todo_dia,
- "hora_ini_orig"=> substr($fecha["hora_ini"],0,5),
- "hora_ini"=> substr($fecha["hora_ini"],0,5),
- "hora_fin"=>substr($fecha["hora_fin"],0,5),
- "inscripciones"=>$this->inscripciones,
- "editable"=>$this->editable,
- "periodo"=>$this->periodo,
- "perfiles"=>$this->perfilesArr,
- "insignia"=>$this->insigniaArr,
- "atributos"=>$this->atributosArr,
- "insignias_total"=>$this->insigniasTotal,
- );
- }
- }
- return $arr;
- }
-
- function getEventList_All($fecha_ini, $fecha_fin){
- $arr = array();
- foreach($this->fechasArr as $fecha){
- if(strtotime($fecha["fecha"]) >= strtotime($fecha_ini) && strtotime($fecha["fecha"]) <= strtotime($fecha_fin)){
- $arr[] = array(
- "id_db"=>$this->id_db,
- "titulo"=>$this->titulo,
- "desc"=>nl2br($this->desc),
- //"fechas_total"=> count($this->fechasArr),
- //"fecha_orig"=> fechaSlash($fecha["fecha_orig"]),
- "fecha"=> fechaSlash($fecha["fecha"]),
- //"dia"=>intval(date("j", strtotime($fecha["fecha"]))),//solo para pintarlo
- "todo_dia"=>$this->todo_dia,
- //"hora_ini_orig"=> substr($fecha["hora_ini"],0,5),
- "hora_ini"=> substr($fecha["hora_ini"],0,5),
- "hora_fin"=>substr($fecha["hora_fin"],0,5),
- "inscripciones"=>$this->inscripciones,
- "editable"=>$this->editable,
- "periodo"=>$this->periodo,
- "perfiles"=>$this->perfilesArr,
- "insignia"=>$this->insigniaArr,
- "atributos"=>$this->atributosArr,
- "insignias_total"=>$this->insigniasTotal,
- );
- }
- }
- return $arr;
- }
- }
|