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>
31 class MECON_NovedadesDia {
33 var $novedades = array();
42 function MECON_NovedadesDia(&$db, $agente, $fecha) {
43 #validar el tipo de $fecha
44 $this->agente = $agente;
45 $this->fecha = $fecha;
47 #Ver de donde sacar esto bonito...
50 if(DB::isError($this->_db))
51 trigger_error($this->_db->getMessage(), E_USER_ERROR);
52 #Carga las novedades del agente/fecha en la lista de novedades
54 $this->BuscarLicencia();
55 $this->BuscarNovedadesTemporales();
56 $this->BuscarNovedadDiaria();
59 function deLicencia() {
60 $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');
61 $anti_licencias = array('Interr/13a','Interr/9');
62 foreach($this->novedades as $nov) {
63 if(in_array($nov->codigo, $anti_licencias))
65 if(in_array($nov->codigo, $licencias))
71 function enComicion() {
72 foreach($this->novedades as $nov)
73 if($nov->codigo == 'com')
79 foreach($this->novedades as $nov)
80 if($nov->codigo == 'Fran')
85 function debioVenir() {
87 foreach($this->novedades as $novedad) {
88 if(!($novedad->codigo == 'adde'
89 or $novedad->codigo == 'aden'
90 or $novedad->codigo == 'adden'
91 or $novedad->codigo == 'ahp'
92 or $novedad->codigo == 'anul'
93 or $novedad->codigo == 'ato'
94 or $novedad->codigo == 'atp'
95 or $novedad->codigo == 'interr/13a'
96 or $novedad->codigo == 'interr/9'
97 or $novedad->codigo == 'interrup'
98 or $novedad->codigo == 'lta'
99 or $novedad->codigo == 'sinnov'
100 or $novedad->codigo == 'tsj'
101 or $novedad->codigo == '10a/c'
102 or $novedad->codigo == '10b'
103 or $novedad->codigo == '10e'
104 or $novedad->codigo == '15a'
105 or $novedad->codigo == '15b'
114 foreach($this->novedades as $nov)
115 if($nov->codigo == 'ato')
116 array_push($atos, $nov);
120 function BuscarLicencia() {
121 $fecha = $this->fecha->format("%Y%m%d");
122 $query = "SELECT codnov,descripcion
123 FROM novedades.web018,novedades.webnov
124 WHERE docagente = $this->agente
125 AND diadesde <= $fecha
126 AND diahasta >= $fecha
127 AND codnov = codigo";
128 $result = $this->_db->query($query);
129 if(DB::isError($result))
130 trigger_error($result->getMessage(), E_USER_ERROR);
131 while($r = $result->fetchRow()) {
132 $novedad = new MECON_Novedad();
133 $novedad->codigo = $r[0];
134 $novedad->descripcion = $r[1];
135 array_push($this->novedades, $novedad);
139 function BuscarNovedadesTemporales() {
140 $fecha = $this->fecha->getYear()."-".
141 $this->fecha->getMonth()."-".
142 $this->fecha->getDay();
143 $query = "SELECT novedad, desde, hasta, descripcion
144 FROM novedades.parciales,novedades.webnov
145 WHERE fecha = '$fecha'
146 AND nrodoc = $this->agente
147 AND novedad = codigo";
148 $result = $this->_db->query($query);
149 if(DB::isError($result))
150 trigger_error($result->getMessage(), E_USER_ERROR);
151 while($r = $result->fetchRow()) {
152 $novedad = new MECON_Novedad();
153 $novedad->codigo = $r[0];
154 $novedad->descripcion = $r[3];
155 $novedad->intervalo = new MECON_Tiempo_Intervalo(new MECON_Tiempo_Hora($r[1]), new MECON_Tiempo_Hora($r[2]));
156 array_push($this->novedades, $novedad);
161 function BuscarNovedadDiaria() {
162 $mes = $this->fecha->getMonth();
163 $dia = $this->fecha->getDay() + 0; //el +0 hace que tome al dia como numero
164 //y no le agregue un 0 si es < que 10
165 $ano = $this->fecha->getYear();
166 $query = "SELECT novedad,descripcion
167 FROM novedades.web020,novedades.webnov
170 AND nrodoc = $this->agente
172 AND novedad = codigo";
173 $result = $this->_db->query($query);
174 if(DB::isError($result))
175 trigger_error($result->getMessage(), E_USER_ERROR);
176 if($c = $result->fetchRow()) {
178 $descripcion = $c[1];
179 $novedad = new MECON_Novedad();
180 $novedad->codigo = $codigo;
181 $novedad->descripcion = $descripcion;
182 array_push($this->novedades, $novedad);