| // +--------------------------------------------------------------------+ // // $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(&$db, $agente, $fecha) { #validar el tipo de $fecha $this->agente = $agente; $this->fecha = $fecha; #Ver de donde sacar esto bonito... $this->_db = $db; if(DB::isError($this->_db)) trigger_error($this->_db->getMessage(), E_USER_ERROR); #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 == 'adden' or $novedad->codigo == 'ahp' or $novedad->codigo == 'anul' or $novedad->codigo == 'ato' or $novedad->codigo == 'atp' or $novedad->codigo == 'interr/13a' or $novedad->codigo == 'interr/9' or $novedad->codigo == 'interrup' or $novedad->codigo == 'lta' or $novedad->codigo == 'sinnov' or $novedad->codigo == 'tsj' or $novedad->codigo == '10a/c' or $novedad->codigo == '10b' or $novedad->codigo == '10e' or $novedad->codigo == '15a' or $novedad->codigo == '15b' )) $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,descripcion FROM web018,webnov WHERE docagente = $this->agente AND diadesde <= $fecha AND diahasta >= $fecha AND codnov = codigo"; $result = $this->_db->query($query); if(DB::isError($result)) trigger_error($result->getMessage(), E_USER_ERROR); while($r = $result->fetchRow()) { $novedad = new MECON_Novedad(); $novedad->codigo = $r[0]; $novedad->descripcion = $r[1]; array_push($this->novedades, $novedad); } } function BuscarNovedadesTemporales() { $fecha = $this->fecha->getYear()."-". $this->fecha->getMonth()."-". $this->fecha->getDay(); $query = "SELECT novedad, desde, hasta, descripcion FROM parciales,webnov WHERE fecha = '$fecha' AND nrodoc = $this->agente AND novedad = codigo"; $result = $this->_db->query($query); if(DB::isError($result)) trigger_error($result->getMessage(), E_USER_ERROR); while($r = $result->fetchRow()) { $novedad = new MECON_Novedad(); $novedad->codigo = $r[0]; $novedad->descripcion = $r[3]; $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,descripcion FROM web020,webnov WHERE anio = $ano AND mes = $mes AND nrodoc = $this->agente AND dia$dia = 1 AND novedad = codigo"; $result = $this->_db->query($query); if(DB::isError($result)) trigger_error($result->getMessage(), E_USER_ERROR); if($c = $result->fetchRow()) { $codigo = $c[0]; $descripcion = $c[1]; $novedad = new MECON_Novedad(); $novedad->codigo = $codigo; $novedad->descripcion = $descripcion; array_push($this->novedades, $novedad); } } }