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($agente, $fecha) {
43 #validar el tipo de $fecha
44 $this->agente = $agente;
45 $this->fecha = $fecha;
47 #Ver de donde sacar esto bonito...
49 $dsn = "mysql://intranet:intranet@intranet-db.mecon.ar/novedades";
50 $this->_db = DB::connect( $dsn , true);
51 if(DB::isError($this->_db))
52 die($this->_db->getMessage());
53 #Carga las novedades del agente/fecha en la lista de novedades
55 $this->BuscarLicencia();
56 $this->BuscarNovedadesTemporales();
57 $this->BuscarNovedadDiaria();
60 function deLicencia() {
61 $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');
62 $anti_licencias = array('Interr/13a','Interr/9');
63 foreach($this->novedades as $nov) {
64 if(in_array($nov->codigo, $anti_licencias))
66 if(in_array($nov->codigo, $licencias))
72 function enComicion() {
73 foreach($this->novedades as $nov)
74 if($nov->codigo == 'com')
80 foreach($this->novedades as $nov)
81 if($nov->codigo == 'Fran')
86 function debioVenir() {
88 foreach($this->novedades as $novedad) {
89 if(!($novedad->codigo == 'adde'
90 or $novedad->codigo == 'aden'
91 or $novedad->codigo == 'ato'
92 or $novedad->codigo == 'atp'))
100 foreach($this->novedades as $nov)
101 if($nov->codigo == 'ato')
102 array_push($atos, $nov);
106 function BuscarLicencia() {
107 $fecha = $this->fecha->format("%Y%m%d");
108 $query = "SELECT codnov,descripcion
110 WHERE docagente = $this->agente
111 AND diadesde <= $fecha
112 AND diahasta >= $fecha
113 AND codnov = codigo";
114 $result = $this->_db->query($query);
115 if(DB::isError($result))
116 die($result->getMessage());
117 while($r = $result->fetchRow()) {
118 $novedad = new MECON_Novedad();
119 $novedad->codigo = $r[0];
120 $novedad->descripcion = $r[1];
121 array_push($this->novedades, $novedad);
125 function BuscarNovedadesTemporales() {
126 $fecha = $this->fecha->getYear()."-".
127 $this->fecha->getMonth()."-".
128 $this->fecha->getDay();
129 $query = "SELECT novedad, desde, hasta, descripcion
130 FROM parciales,webnov
131 WHERE fecha = '$fecha'
132 AND nrodoc = $this->agente
133 AND novedad = codigo";
134 $result = $this->_db->query($query);
135 if(DB::isError($result))
136 die($result->getMessage());
137 while($r = $result->fetchRow()) {
138 $novedad = new MECON_Novedad();
139 $novedad->codigo = $r[0];
140 $novedad->descripcion = $r[3];
141 $novedad->intervalo = new MECON_Tiempo_Intervalo(new MECON_Tiempo_Hora($r[1]), new MECON_Tiempo_Hora($r[2]));
142 array_push($this->novedades, $novedad);
147 function BuscarNovedadDiaria() {
148 $mes = $this->fecha->getMonth();
149 $dia = $this->fecha->getDay() + 0; //el +0 hace que tome al dia como numero
150 //y no le agregue un 0 si es < que 10
151 $ano = $this->fecha->getYear();
152 $query = "SELECT novedad,descripcion
156 AND nrodoc = $this->agente
158 AND novedad = codigo";
159 $result = $this->_db->query($query);
160 if(DB::isError($result))
161 die($result->getMessage());
162 if($c = $result->fetchRow()) {
164 $descripcion = $c[1];
165 $novedad = new MECON_Novedad();
166 $novedad->codigo = $codigo;
167 $novedad->descripcion = $descripcion;
168 array_push($this->novedades, $novedad);