X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/29c3aacc96b54b91f072e7413ec04f5d2c766a9d..06cd54ffd3f4a2641a10db316fb08d42c3b8b5ea:/lib/MECON/NovedadesDia.php?ds=sidebyside diff --git a/lib/MECON/NovedadesDia.php b/lib/MECON/NovedadesDia.php index e1ce6e3..e652584 100644 --- a/lib/MECON/NovedadesDia.php +++ b/lib/MECON/NovedadesDia.php @@ -28,148 +28,159 @@ require_once 'MECON/Tiempo/Hora.php'; * @version $Rev: 380 $ * @author Gonzalo Merayo */ -class NovedadesDia { - - var $novedades = array(); - - 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 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 = ('Interr/13a','Interr/9'); - foreach($this->novedades as $nov) - { - if(in_array($nov->codigo, $anti_licencias)) +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; - 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; + + 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; } - 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); + + 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 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 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 novedades.web018,novedades.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 novedades.parciales,novedades.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 - 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 novedades.web020,novedades.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); + } } - } }