]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/NovedadesDia.php
Cambio el atributo licencia por un metodo deLicencia
[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 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 NovedadesDia($agente, $fecha)
43   {
44     #validar el tipo de $fecha
45     $this->agente = $agente;
46     $this->fecha = $fecha;
47     
48     #Ver de donde sacar esto bonito...
49     $dsn = "mysql://intranet:intranet@localhost/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     $this->BuscarLicencia();
55     $this->BuscarNovedadesTemporales();
56     $this->BuscarNovedadDiaria();
57   }
58
59   function deLicencia()
60   {
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 = ('Interr/13a','Interr/9');
63     foreach($this->novedades as $nov)
64     {
65       if(in_array($nov->codigo, $anti_licencias))
66         return false;
67       if(in_array($nov->codigo, $licencias))
68         return true;
69     }
70     return false;
71   }
72   
73   function enComicion()
74   {
75     foreach($this->novedades as $nov)
76       if($nov->codigo == 'com')
77         return true;
78     return false;
79   }
80
81   function esFranco()
82   {
83     foreach($this->novedades as $nov)
84       if($nov->codigo == 'Fran')
85         return true;
86     return false;
87   }
88
89   function debioVenir()
90   {
91     $ret = true;
92     foreach($this->novedades as $novedad)
93     {
94       if(!($novedad->codigo == 'Adde'
95          or $novedad->codigo == 'Aden'
96          or $novedad->codigo == 'Ato'
97          or $novedad->codigo == 'Atp'))
98          $ret = false;         
99     }
100     return $ret;
101   }
102
103   function getAtos()
104   {
105     $atos = array();
106     foreach($this->novedades as $nov)
107       if($nov->codigo == 'ato')
108         array_push($atos, $nov);
109     return $atos;
110   }
111
112   function BuscarLicencia()
113   {
114     $fecha = $this->fecha->format("%Y%m%d");
115     $query = "SELECT codnov
116               FROM web018
117               WHERE docagente = $this->agente
118               AND diadesde <= $fecha
119               AND diahasta >= $fecha";
120     $result = $this->_db->query($query);
121     if(DB::isError($result))
122       die($result->getMessage());
123     while($r = $result->fetchRow())
124     {
125       $novedad = new Novedad();
126       $novedad->codigo = $r[0];
127       array_push($this->novedades, $novedad);
128     }
129   }
130   
131   function BuscarNovedadesTemporales()
132   {
133     $fecha = $this->fecha->getYear()."-".
134              $this->fecha->getMonth()."-".
135              $this->fecha->getDay();
136     $query = "SELECT novedad, desde, hasta
137               FROM parciales
138               WHERE fecha = '$fecha'
139               AND  nrodoc = $this->agente";
140     $result = $this->_db->query($query);
141     if(DB::isError($result))
142       die($result->getMessage());
143     while($r = $result->fetchRow())
144     {
145       $novedad = new Novedad();
146       $novedad->codigo = $r[0];
147       $novedad->intervalo = new Intervalo(new Hora($r[1]), new Hora($r[2]));
148       array_push($this->novedades, $novedad);
149     }
150
151   }
152
153   function BuscarNovedadDiaria()
154   {
155     $mes = $this->fecha->getMonth();
156     $dia = $this->fecha->getDay() + 0; //el +0 hace que tome al dia como numero
157                                        //y no le agregue un 0 si es < que 10
158     $ano = $this->fecha->getYear();
159     $query = "SELECT novedad 
160               FROM web020
161               WHERE anio = $ano
162               AND   mes  = $mes
163               AND nrodoc = $this->agente
164               AND dia$dia = 1";
165     $result = $this->_db->query($query);
166     if($c = $result->fetchRow())
167     {
168       $codigo = $c[0];
169       $novedad = new Novedad();
170       $novedad->codigo = $codigo;
171       array_push($this->novedades, $novedad);
172     }
173   }
174
175 }