X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/97e3375caa48923b554fe437eee118b369836999..abc5189f77351f5ceb757555725e64210655ec01:/lib/MECON/Feriado.php?ds=sidebyside diff --git a/lib/MECON/Feriado.php b/lib/MECON/Feriado.php index 2ea14b2..442caf9 100644 --- a/lib/MECON/Feriado.php +++ b/lib/MECON/Feriado.php @@ -24,10 +24,8 @@ Autor: Leandro Lucarella $Id$ -----------------------------------------------------------------------------*/ -require_once 'MECON/DBO.php'; require_once 'Date.php'; -require_once 'Time/Span.php'; -require_once 'HE/DB.php'; +require_once 'Date/Span.php'; /** * Información sobre feriados. @@ -61,12 +59,8 @@ class MECON_Feriado extends Date { /// Descripción del feriado. var $descripcion; - function MECON_Feriado($date = null, $db = null) { - if (is_a($db, 'db')) { - $this->_db = $db; - } else { - $this->_db = DB::connect('mysql://intranet:intranet@intranet-db.mecon.ar/novedades'); - } + function MECON_Feriado($db, $date = null) { + $this->_db = $db; parent::Date($date); } @@ -82,11 +76,41 @@ class MECON_Feriado extends Date { $this->desde = $date->desde; $this->descripcion = $date->descripcion; } else { - $this->_updateDBInfo($date); + $this->_updateDBInfo(); } } - function _updateDBInfo($date = null, $db = null) { + function setYear($y) { + parent::setYear($y); + $this->_updateDBInfo(); + } + + function setMonth($m) { + parent::setMonth($m); + $this->_updateDBInfo(); + } + + function setDay($d) { + parent::setDay($d); + $this->_updateDBInfo(); + } + + function setHour($h) { + parent::setHour($h); + $this->_updateDBInfo(); + } + + function setMinute($m) { + parent::setMinute($m); + $this->_updateDBInfo(); + } + + function setSecond($s) { + parent::setSecond($s); + $this->_updateDBInfo(); + } + + function _updateDBInfo() { // Resetea valores. $this->desde = null; $this->descripcion = null; @@ -103,7 +127,7 @@ class MECON_Feriado extends Date { $this->_tipo = isset($tipo) ? $tipo : 'laborable'; // Verificamos si hay algo en la DB. $fecha = $this->getDate(); - $datos = $this->_db->getRow("SELECT * FROM novedades.feriado WHERE fecha = '$fecha'", null, DB_FETCH_ASSOC); + $datos = $this->_db->getRow("SELECT * FROM novedades.feriados WHERE fecha = '$fecha'", null, DB_FETCHMODE_ASSOC); // Si hay un error, lo pasamos a quien nos llama. if (DB::isError($datos)) { return $datos; @@ -128,8 +152,8 @@ class MECON_Feriado extends Date { */ function getTipo() { if ($this->_tipo == 'asueto') { - $desde = new Time_Span($this->desde); - $hora = new Time_Span($this->format('%H:%M')); + $desde = new Date_Span($this->desde); + $hora = new Date_Span($this->format('%H:%M')); if ($hora->greaterEqual($desde)) { return $this->_tipo; } else { @@ -145,60 +169,34 @@ class MECON_Feriado extends Date { /** * Indica si un día es laborable. * - * @param string $fecha Fecha de a verificar (el día actual por defecto). - * @param string $hora Hora en la que se quiere chequear si es laborable. - * * @return bool false si no es laborable (o hubo error). * * @access public */ - function esLaborable($fecha = '', $hora = '23:59') { - - if ( $this->_tipo( $fecha, $hora ) == 'laborable' ) - return true; - else - return false; - + function esLaborable() { + return $this->getTipo() == 'laborable'; } /** * Indica si un día es no laborable. * - * @param string $fecha Fecha de a chequear (el día actual por - * defecto). - * @param string $hora Hora en la que se quiere chequear. - * * @return bool false si no es no laborable (o hubo error). * * @access public */ - function esNoLaborable( $fecha = '', $hora = '23:59' ) { - - if ( $this->_tipo( $fecha, $hora ) == 'no laborable' ) - return true; - else - return false; - + function esNoLaborable() { + return $this->getTipo() == 'no laborable'; } /** * Indica si un día es feriado. * - * @param string $fecha Fecha de a chequear (el día actual por - * defecto). - * @param string $hora Hora en la que se quiere chequear. - * * @return bool false si no es feriado (o hubo error). * * @access public */ - function esFeriado( $fecha = '', $hora = '23:59' ) { - - if ( $this->_tipo( $fecha, $hora ) == 'feriado' ) - return true; - else - return false; - + function esFeriado() { + return $this->getTipo() == 'feriado'; } /** @@ -212,26 +210,24 @@ class MECON_Feriado extends Date { * * @access public */ - function esAsueto( $fecha = '', $hora = '23:59' ) { - - if ( $this->_tipo( $fecha, $hora ) == 'asueto' ) - return true; - else - return false; - + function esAsueto() { + return $this->getTipo() == 'asueto'; } /** * Busca feriados que se encuentren en un rango de fechas. * * Ejemplo: - * if ( $feriado->buscarRango( '2002/10/01', '2002/12/31' ) ) - * while ( $f = $feriado->siguiente() ) + * @code + * if ($feriado->buscarRango('2002/10/01', '2002/12/31')) { + * while ($f = $feriado->siguiente()) * var_dump( $f ); - * elseif ( $feriado->error() ) - * die( 'Errores: ' . $feriado->errores(); - * else - * print( 'No se encontraron feriados en ese rango de fechas' ); + * } elseif ($feriado->error()) { + * trigger_error('Errores: ' . $feriado->errores(), E_USER_ERROR); + * } else { + * echo 'No se encontraron feriados en ese rango de fechas'; + * } + * @endcode * * @param string $ini Fecha de inicio del rango en donde buscar (por * defecto el primer día del mes en curso). @@ -245,9 +241,9 @@ class MECON_Feriado extends Date { * * @return bool false si no se encontró nada (o hubo error). * - * @access public + * @todo Pasar a método estático y usar Date en vez de strings para las fechas. */ - function buscarRango( $ini = '', $fin = '', $orden = null ) { + function buscarRango($ini = '', $fin = '', $orden = null ) { $ini = empty( $ini ) ? strftime( '%Y/01/01', time() ) : $ini; $fin = empty( $fin ) ? strftime( '%Y/12/31', time() ) : $fin;