| // +--------------------------------------------------------------------+ // // $URL: http://portal.mecon.ar/svn/he/tronco/src/lib/he/HE/NovedadesDia.php $ // $Rev: 380 $ // $Date: 2003-05-08 18:40:47 -0300 (Thu, 08 May 2003) $ // $Author: gmeray $ // require_once 'DB.php'; require_once 'Date.php'; require_once 'MECON/Novedad.php'; require_once 'MECON/Tiempo/Hora.php'; /** * Representa un Intervalo entre 2 horas del mismo dia * * @package HE * @abstract * @version $Rev: 380 $ * @author Gonzalo Merayo */ class NovedadesDia { var $novedades = array(); var $licencia = null; var $agente = null; var $fecha = null; var $_db = null; function NovedadesDia($agente, $fecha) { #validar el tipo de $fecha $this->agente = $agente; $this->fecha = $fecha; #Ver de donde sacar esto bonito... $dsn = "mysql://intranet:intranet@localhost/novedades"; $this->_db = DB::connect( $dsn , true); if(DB::isError($this->_db)) die($this->_db->getMessage()); #Carga las novedades del agente/fecha en la lista de novedades $this->BuscarLicencia(); $this->BuscarNovedadesTemporales(); $this->BuscarNovedadDiaria(); } function enComicion() { foreach($this->novedades as $nov) if($nov->codigo == 'com') return true; return false; } function esFranco() { foreach($this->novedades as $nov) if($nov->codigo == 'Fran') return true; return false; } function debioVenir() { $ret = true; foreach($this->novedades as $novedad) { if(!( preg_match("/^10/", $novedad->codigo) or $novedad->codigo == 'Pat' or $novedad->codigo == 'Adde' or $novedad->codigo == 'Aden' or $novedad->codigo == 'Ato' or $novedad->codigo == 'Atp')) $ret = false; } return $ret; } function getAtos() { $atos = array(); foreach($this->novedades as $nov) if($nov->codigo == 'ato') array_push($atos, $nov); return $atos; } function BuscarLicencia() { $fecha = $this->fecha->format("%Y%m%d"); $query = "SELECT codnov FROM web018 WHERE docagente = $this->agente AND diadesde <= $fecha AND diahasta >= $fecha"; $result = $this->_db->query($query); if(DB::isError($result)) die($result->getMessage()); while($r = $result->fetchRow()) { $novedad = new Novedad(); $novedad->codigo = $r[0]; array_push($this->novedades, $novedad); $this->licencia = $r[0]; } } function BuscarNovedadesTemporales() { $fecha = $this->fecha->getYear()."-". $this->fecha->getMonth()."-". $this->fecha->getDay(); $query = "SELECT novedad, desde, hasta FROM parciales WHERE fecha = '$fecha' AND nrodoc = $this->agente"; $result = $this->_db->query($query); if(DB::isError($result)) die($result->getMessage()); while($r = $result->fetchRow()) { $novedad = new Novedad(); $novedad->codigo = $r[0]; $novedad->intervalo = new Intervalo(new Hora($r[1]), new Hora($r[2])); array_push($this->novedades, $novedad); } } function BuscarNovedadDiaria() { $mes = $this->fecha->getMonth(); $dia = $this->fecha->getDay() + 0; //el +0 hace que tome al dia como numero //y no le agregue un 0 si es < que 10 $ano = $this->fecha->getYear(); $query = "SELECT novedad FROM web020 WHERE anio = $ano AND mes = $mes AND nrodoc = $this->agente AND dia$dia = 1"; $result = $this->_db->query($query); if($c = $result->fetchRow()) { $codigo = $c[0]; $novedad = new Novedad(); $novedad->codigo = $codigo; array_push($this->novedades, $novedad); } } }