* @version $Rev: 380 $
* @author Gonzalo Merayo <gmeray@mecon.gov.ar>
*/
-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;
- echo $this->fecha->format("%Y%m%d")."=>".count($this->novedades)."\n";
- 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);
+ }
}
- }
}