123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- require_once 'Fechas.php';
- class Evento {
- public $evento_id, $periodo_id, $insignia_id, $titulo, $detalle, $shortname, $dia, $fecha, $hora_ini, $hora_fin, $inscripciones, $periodicidad;
- public $fechasArr;
- function __construct($evento_id, $periodo_id, $insignia_id, $titulo, $detalle, $shortname, $fecha, $hora_ini, $hora_fin, $inscripciones){
- $this->evento_id = $evento_id;
- $this->periodo_id = $periodo_id;
- $this->insignia_id = $insignia_id;
- $this->titulo = $titulo;
- $this->detalle = $detalle;
- $this->shortname = $shortname;
- $this->fecha = Fechas::validaFormatoFecha($fecha);
- $this->hora_ini = $hora_ini;
- $this->hora_fin = $hora_fin;
- $this->inscripciones = $inscripciones;
- $this->fechasArr = array();
- }
-
- //Fecha normal
- function addFecha($fecha){
- $fecha = Fechas::validaFormatoFecha($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, '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] = Fechas::validaFormatoFecha($fecha_busca[0]);
- $fecha_new = Fechas::validaFormatoFecha($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 = Fechas::validaFormatoFecha($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 = Fechas::validaFormatoFecha($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(
- 'evento_id' => $this->evento_id,
- 'titulo' => $this->titulo,
- 'detalle' => $this->detalle,
- 'periodo_id' => $this->periodo_id,
- 'shortname' => $this->shortname,
- 'dia' => $this->dia,
- 'inscripciones' => $this->inscripciones,
- 'insignia_id' => $this->insignia_id,
- 'periodicidad' => $this->periodicidad,
- 'fechas' => array()
- );
- $key_values = array_column($this->fechasArr, 'fecha');
- array_multisort($key_values, SORT_ASC, $this->fechasArr);
- foreach($this->fechasArr as $fecha){
- //if(intval(date("n", strtotime($fecha["fecha"]))) == intval($mes) && intval(date("Y", strtotime($fecha["fecha"]))) == intval($anho) ){
- array_push($arr['fechas'], array('fecha_orig' => $fecha['fecha_orig'],'fecha' => $fecha['fecha'], 'dia' => intval(date("j", strtotime($fecha['fecha']))),
- '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)));
- //}
- }
- return $arr;
- }
- }
|