Evento.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. require_once 'Fechas.php';
  3. class Evento {
  4. public $evento_id, $periodo_id, $insignia_id, $titulo, $detalle, $shortname, $dia, $fecha, $hora_ini, $hora_fin, $inscripciones, $periodicidad;
  5. public $fechasArr;
  6. function __construct($evento_id, $periodo_id, $insignia_id, $titulo, $detalle, $shortname, $fecha, $hora_ini, $hora_fin, $inscripciones){
  7. $this->evento_id = $evento_id;
  8. $this->periodo_id = $periodo_id;
  9. $this->insignia_id = $insignia_id;
  10. $this->titulo = $titulo;
  11. $this->detalle = $detalle;
  12. $this->shortname = $shortname;
  13. $this->fecha = Fechas::validaFormatoFecha($fecha);
  14. $this->hora_ini = $hora_ini;
  15. $this->hora_fin = $hora_fin;
  16. $this->inscripciones = $inscripciones;
  17. $this->fechasArr = array();
  18. }
  19. //Fecha normal
  20. function addFecha($fecha){
  21. $fecha = Fechas::validaFormatoFecha($fecha);
  22. if(strtotime($fecha)>= strtotime($this->fecha))//solo si la fecha es mayor a la fecha inicial
  23. $this->fechasArr[] = array('fecha_orig' => $fecha, 'fecha' => $fecha, 'hora_ini' => $this->hora_ini, 'hora_fin' => $this->hora_fin);
  24. }
  25. //Fechas modificadas
  26. function replaceFecha($fecha_orig, $fecha_new, $hora_ini, $hora_fin){//fecha_orig en formato yyyy-mm-dd hh:mm:ss
  27. $fecha_busca = explode(" ", $fecha_orig);//quita horas
  28. $fecha_busca[0] = Fechas::validaFormatoFecha($fecha_busca[0]);
  29. $fecha_new = Fechas::validaFormatoFecha($fecha_new);
  30. for($i=0; $i< count($this->fechasArr); $i++){
  31. if($this->fechasArr[$i]['fecha_orig'] == $fecha_busca[0]){
  32. $this->fechasArr[$i]['fecha'] = $fecha_new;
  33. $this->fechasArr[$i]['hora_ini'] = $hora_ini;
  34. $this->fechasArr[$i]['hora_fin'] = $hora_fin;
  35. break;//solo 1 por fecha
  36. }
  37. }
  38. }
  39. //Excepciones
  40. function removeFecha($fecha_busca){
  41. $tmp = explode(' ', $fecha_busca);//quita horas
  42. $fecha_busca = Fechas::validaFormatoFecha($tmp[0]);
  43. for($i=0; $i< count($this->fechasArr); $i++){
  44. if($this->fechasArr[$i]['fecha_orig'] == $fecha_busca){
  45. array_splice($this->fechasArr, $i, 1);
  46. break;
  47. }
  48. }
  49. }
  50. function hasFecha($fecha){
  51. $fecha = Fechas::validaFormatoFecha($fecha);
  52. foreach($this->fechasArr as $fechaArr){
  53. if($fechaArr['fecha'] == $fecha)
  54. return true;
  55. }
  56. return false;
  57. }
  58. //Obtiene listado de fechas y cada una con la descripicón del evento.
  59. //Filtra las fechas generadas por el mes y el año
  60. function getEventList($mes, $anho){
  61. $arr = array(
  62. 'evento_id' => $this->evento_id,
  63. 'titulo' => $this->titulo,
  64. 'detalle' => $this->detalle,
  65. 'periodo_id' => $this->periodo_id,
  66. 'shortname' => $this->shortname,
  67. 'dia' => $this->dia,
  68. 'inscripciones' => $this->inscripciones,
  69. 'insignia_id' => $this->insignia_id,
  70. 'periodicidad' => $this->periodicidad,
  71. 'fechas' => array()
  72. );
  73. $key_values = array_column($this->fechasArr, 'fecha');
  74. array_multisort($key_values, SORT_ASC, $this->fechasArr);
  75. foreach($this->fechasArr as $fecha){
  76. //if(intval(date("n", strtotime($fecha["fecha"]))) == intval($mes) && intval(date("Y", strtotime($fecha["fecha"]))) == intval($anho) ){
  77. array_push($arr['fechas'], array('fecha_orig' => $fecha['fecha_orig'],'fecha' => $fecha['fecha'], 'dia' => intval(date("j", strtotime($fecha['fecha']))),
  78. '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)));
  79. //}
  80. }
  81. return $arr;
  82. }
  83. }