X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/1c9fce37bfdaa2ded2b32051ebb12d104419cc2b..1aa774a935f76496935ec5b00c00dcef4cd7288e:/lib/MECON/NovedadesDia.php?ds=sidebyside diff --git a/lib/MECON/NovedadesDia.php b/lib/MECON/NovedadesDia.php index 7012005..3c20f19 100644 --- a/lib/MECON/NovedadesDia.php +++ b/lib/MECON/NovedadesDia.php @@ -28,139 +28,145 @@ require_once 'MECON/Tiempo/Hora.php'; * @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; +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; } - 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 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 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 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,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)) + die($result->getMessage()); + 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)) + die($result->getMessage()); + 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 - 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); + 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)) + die($result->getMessage()); + 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); + } } - } }