| // +--------------------------------------------------------------------+ // // $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 MECON_NovedadesDia { var $novedades = array(); var $agente = null; var $fecha = null; var $_db = null; function MECON_NovedadesDia($agente, $fecha) { #validar el tipo de $fecha $this->agente = $agente; $this->fecha = $fecha; #Ver de donde sacar esto bonito... $dsn = "mysql://intranet:intranet@intranet-db.mecon.ar/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 deLicencia() { $licencias = array('Adp','Asa','Fal','Fran','FES/REL','Grem','Interrup','Sus','10a','10a/d','10c','10d','10g','10h','10i','10j','10j/c','13Ia','13Ia/s','13Ia/u','13Ib','13Ic','13Id','13Id/a','13Id/h','13Ie','13Ig','13IIa','13IIb','13IIc','13IId', '13IIe','1363/97-2','14a','14b','14b1','14b2','14c','14d','14f','14g','14h','15a', '15b','15c','9'); $anti_licencias = array('Interr/13a','Interr/9'); foreach($this->novedades as $nov) { if(in_array($nov->codigo, $anti_licencias)) return false; if(in_array($nov->codigo, $licencias)) return true; } return false; } 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(!($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 MECON_Novedad(); $novedad->codigo = $r[0]; array_push($this->novedades, $novedad); } } 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 MECON_Novedad(); $novedad->codigo = $r[0]; $novedad->intervalo = new MECON_Tiempo_Intervalo(new MECON_Tiempo_Hora($r[1]), new MECON_Tiempo_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 MECON_Novedad(); $novedad->codigo = $codigo; array_push($this->novedades, $novedad); } } }