2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
5 // +--------------------------------------------------------------------+
6 // | Sistema de Horas Extra - Ministerio de EconomÃa - Argentina |
7 // +--------------------------------------------------------------------+
8 // | Creado: lun abr 22 16:05:33 ART 2002 |
9 // | Autor: Gonzalo Merayo <gmeray@mecon.gov.ar> |
10 // +--------------------------------------------------------------------+
12 // $URL: http://portal.mecon.ar/svn/he/tronco/src/lib/he/HE/NovedadesDia.php $
14 // $Date: 2003-05-08 18:40:47 -0300 (Thu, 08 May 2003) $
18 require_once 'DB.php';
19 require_once 'Date.php';
20 require_once 'MECON/Novedad.php';
21 require_once 'MECON/Tiempo/Hora.php';
24 * Representa un Intervalo entre 2 horas del mismo dia
28 * @version $Rev: 380 $
29 * @author Gonzalo Merayo <gmeray@mecon.gov.ar>
33 var $novedades = array();
44 function NovedadesDia($agente, $fecha)
46 #validar el tipo de $fecha
47 $this->agente = $agente;
48 $this->fecha = $fecha;
50 #Ver de donde sacar esto bonito...
51 $dsn = "mysql://intranet:intranet@localhost/novedades";
52 $this->_db = DB::connect( $dsn , true);
53 if(DB::isError($this->_db))
54 die($this->_db->getMessage());
55 #Carga las novedades del agente/fecha en la lista de novedades
56 $this->BuscarLicencia();
57 $this->BuscarNovedadesTemporales();
58 $this->BuscarNovedadDiaria();
63 foreach($this->novedades as $nov)
64 if($nov->codigo == 'com')
71 foreach($this->novedades as $nov)
72 if($nov->codigo == 'Fran')
80 echo $this->fecha->format("%Y%m%d")."=>".count($this->novedades)."\n";
81 foreach($this->novedades as $novedad)
83 if(!( preg_match("/^10/", $novedad->codigo)
84 or $novedad->codigo == 'Pat'
85 or $novedad->codigo == 'Adde'
86 or $novedad->codigo == 'Aden'
87 or $novedad->codigo == 'Ato'
88 or $novedad->codigo == 'Atp'))
97 foreach($this->novedades as $nov)
98 if($nov->codigo == 'ato')
99 array_push($atos, $nov);
103 function BuscarLicencia()
105 $fecha = $this->fecha->format("%Y%m%d");
106 $query = "SELECT codnov
108 WHERE docagente = $this->agente
109 AND diadesde <= $fecha
110 AND diahasta >= $fecha";
111 $result = $this->_db->query($query);
112 if(DB::isError($result))
113 die($result->getMessage());
114 while($r = $result->fetchRow())
116 $novedad = new Novedad();
117 $novedad->codigo = $r[0];
118 array_push($this->novedades, $novedad);
119 $this->licencia = $r[0];
123 function BuscarNovedadesTemporales()
125 $fecha = $this->fecha->getYear()."-".
126 $this->fecha->getMonth()."-".
127 $this->fecha->getDay();
128 $query = "SELECT novedad, desde, hasta
130 WHERE fecha = '$fecha'
131 AND nrodoc = $this->agente";
132 $result = $this->_db->query($query);
133 if(DB::isError($result))
134 die($result->getMessage());
135 while($r = $result->fetchRow())
137 $novedad = new Novedad();
138 $novedad->codigo = $r[0];
139 $novedad->intervalo = new Intervalo(new Hora($r[1]), new Hora($r[2]));
140 array_push($this->novedades, $novedad);
145 function BuscarNovedadDiaria()
147 $mes = $this->fecha->getMonth();
148 $dia = $this->fecha->getDay() + 0; //el +0 hace que tome al dia como numero
149 //y no le agregue un 0 si es < que 10
150 $ano = $this->fecha->getYear();
151 $query = "SELECT novedad
155 AND nrodoc = $this->agente
157 $result = $this->_db->query($query);
158 if($c = $result->fetchRow())
161 $novedad = new Novedad();
162 $novedad->codigo = $codigo;
163 array_push($this->novedades, $novedad);