]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/NovedadesDia.php
Se corrige un bug.
[mecon/meconlib.git] / lib / MECON / NovedadesDia.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                          HORAS EXTRA                               |
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 // +--------------------------------------------------------------------+
11 //
12 // $URL: http://portal.mecon.ar/svn/he/tronco/src/lib/he/HE/NovedadesDia.php $
13 // $Rev: 380 $
14 // $Date: 2003-05-08 18:40:47 -0300 (Thu, 08 May 2003) $
15 // $Author: gmeray $
16 //
17
18 require_once 'DB.php';
19 require_once 'Date.php';
20 require_once 'MECON/Novedad.php';
21 require_once 'MECON/Tiempo/Hora.php';
22
23 /**
24  * Representa un Intervalo entre 2 horas del mismo dia
25  *
26  * @package HE
27  * @abstract
28  * @version $Rev: 380 $
29  * @author  Gonzalo Merayo <gmeray@mecon.gov.ar>
30  */
31 class MECON_NovedadesDia {
32
33     var $novedades = array();
34
35     var $agente = null;
36
37     var $fecha = null;
38
39     var $_db = null;
40
41
42     function MECON_NovedadesDia($agente, $fecha) {
43 #validar el tipo de $fecha
44         $this->agente = $agente;
45         $this->fecha = $fecha;
46
47 #Ver de donde sacar esto bonito...
48
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
54
55         $this->BuscarLicencia();
56         $this->BuscarNovedadesTemporales();
57         $this->BuscarNovedadDiaria();
58     }
59
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))
65                 return false;
66             if(in_array($nov->codigo, $licencias))
67                 return true;
68         }
69         return false;
70     }
71
72     function enComicion() {
73         foreach($this->novedades as $nov)
74         if($nov->codigo == 'com')
75             return true;
76         return false;
77     }
78
79     function esFranco() {
80         foreach($this->novedades as $nov)
81         if($nov->codigo == 'Fran')
82             return true;
83         return false;
84     }
85
86     function debioVenir() {
87         $ret = true;
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'))
93                 $ret = false;
94         }
95         return $ret;
96     }
97
98     function getAtos() {
99         $atos = array();
100         foreach($this->novedades as $nov)
101         if($nov->codigo == 'ato')
102             array_push($atos, $nov);
103         return $atos;
104     }
105
106     function BuscarLicencia() {
107         $fecha = $this->fecha->format("%Y%m%d");
108         $query = "SELECT codnov,descripcion
109                  FROM web018,webnov
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);
122         }
123     }
124
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);
143         }
144
145     }
146
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
153                  FROM web020,webnov
154                  WHERE anio = $ano
155                  AND   mes  = $mes
156                  AND nrodoc = $this->agente
157                  AND dia$dia = 1
158                  AND novedad = codigo";
159         $result = $this->_db->query($query);
160         if(DB::isError($result))
161             die($result->getMessage());
162         if($c = $result->fetchRow()) {
163             $codigo = $c[0];
164                         $descripcion = $c[1];
165             $novedad = new MECON_Novedad();
166             $novedad->codigo = $codigo;
167             $novedad->descripcion = $descripcion;
168             array_push($this->novedades, $novedad);
169         }
170     }
171
172 }