]> git.llucax.com Git - mecon/intranet.git/blob - sistema/www/servicios/bandas/banda_agente.php
2ebf4a9c537365250bbea69df02a82149e2cb604
[mecon/intranet.git] / sistema / www / servicios / bandas / banda_agente.php
1 <?
2 require_once '../../../local_lib/HTML_DietMarco.php';
3 require_once 'MECON/HTML/Image.php';
4 require_once 'MECON/HTML/Tabla.php';
5 require_once 'MECON/Dependencia.php';
6 require_once 'MECON/NovedadesDia.php';
7 require_once '../../../local_lib/Servicios/Bandas/Agente.php';
8 require_once 'HTML/Table.php';
9
10 //$nrodoc = $_SESSION['documento'];
11
12 /* Instancio DietMarco que sirve para mostrar la pagina dentro del marco de Intranet*/
13 $m = new HTML_DietMarco('servicios');
14 $m->addTitle('Bandas Horarias');
15 $m->addStyleSheet('/MECON/css/general_estilos.css');
16 $m->addStyleSheet('../../css/servicios_bandas.css');
17
18 /* Instancio un objeto Table para el cuerpo de la pagina*/
19 $tabla_cuerpo = new HTML_Table(array('width'=>'760','border'=>'0','cellspacing'=>'0','cellpadding'=>'0'));
20
21 /* Encabezado propio de la pagina */
22 $row_cuerpo = array();
23 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
24                                                  '',
25                                                 array('width'=>'24','height'=>'1','alt'=>'blanco'));
26 array_push($row_cuerpo,$imagen);
27 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
28                                                  '',
29                                                 array('width'=>'135','height'=>'1','alt'=>'blanco'));
30 array_push($row_cuerpo,$imagen);
31 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
32                                                  '',
33                                                 array('width'=>'20','height'=>'1','alt'=>'blanco'));
34 array_push($row_cuerpo,$imagen);
35 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
36                                                  '',
37                                                 array('width'=>'160','height'=>'1','alt'=>'blanco'));
38 array_push($row_cuerpo,$imagen);
39 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
40                                                  '',
41                                                 array('width'=>'20','height'=>'1','alt'=>'blanco'));
42 array_push($row_cuerpo,$imagen);
43 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
44                                                  '',
45                                                 array('width'=>'190','height'=>'1','alt'=>'blanco'));
46 array_push($row_cuerpo,$imagen);
47 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
48                                                  '',
49                                                 array('width'=>'20','height'=>'1','alt'=>'blanco'));
50 array_push($row_cuerpo,$imagen);
51 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
52                                                  '',
53                                                 array('width'=>'166','height'=>'1','alt'=>'blanco'));
54 array_push($row_cuerpo,$imagen);
55 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
56                                                  '',
57                                                 array('width'=>'24','height'=>'1','alt'=>'blanco'));
58 array_push($row_cuerpo,$imagen);
59 $tabla_cuerpo->addRow($row_cuerpo, array('height'=>'1'));
60
61 $imagen = new MECON_HTML_Image('../../images/servicios_bandas_imprimir1.gif',
62                                                  '',
63                                                 array('width'=>'24','height'=>'24','alt'=>'imprimir'));
64 $row_cuerpo = array('Bandas Horarias',
65                                         '',
66                                         '',
67                                         '',
68                                         '',
69                                         '',
70                                         '',
71                                         'P&aacute;gina de Impresi&oacute;n ',
72                                         $imagen->toHtml());
73 $tabla_cuerpo->addRow($row_cuerpo,array('height'=>'24'));
74 $tabla_cuerpo->updateCellAttributes($tabla_cuerpo->getRowCount() - 1,
75                                                                         0,
76                                                                         array('colspan'=>'7','class'=>'titulo_tres'));
77 $tabla_cuerpo->updateCellAttributes($tabla_cuerpo->getRowCount() - 1,
78                                                                         7,
79                                                                         array('class'=>'imprimir'));
80 $row_cuerpo = array();
81 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
82                                                 '',
83                                                 array('width'=>'760','height'=>'1','alt'=>'blanco'));
84 array_push($row_cuerpo,$imagen);
85 $tabla_cuerpo->addRow($row_cuerpo,array('colspan'=>'9', 
86                                                                                 'bgcolor'=>'#FF9900',
87                                                                                 'height'=>'1'));
88 $tabla_cuerpo->addRow($row_cuerpo,array('colspan'=>'9', 
89                                                                                 'height'=>'10',
90                                                                                 'width'=>'1'));
91
92 /* Fin del encabezado propio de la pagina*/
93 /* 
94 Aca empieza las tablas con la informacion personal del agente y
95 con las referencias de cada color de las celdas
96 */
97 setlocale (LC_ALL, 'es_AR');
98 $nrodoc = $_SESSION['login'];
99 $fecha = $_POST['fecha'];
100
101 $fecha_spliteada = split('-',$fecha);
102 $mes = strftime("%B", mktime(0,0,0,$fecha_spliteada[1],1,$fecha_spliteada[0]));
103 $agente =& new Servicios_Bandas_Agente($nrodoc,new date($fecha));
104
105 if(!$agente->buscarAgente($nrodoc))
106 {
107         echo "El agente no está en las bases de RRHH";
108         die;
109 }
110 /* Armo la tabla de la información personal */
111
112 $tabla_info_personal_adentro = new HTML_Table(array('width'=>'360',
113                                                                                         'border'=>'0',
114                                                                                         'valign'=>'top',
115                                                                                         'cellspacing'=>'2',
116                                                                                         'cellpadding'=>'0'));
117 $row = array('Datos personales');
118 $imagen = new MECON_HTML_Image('../../images/servicios_bandas_borde_tabla.gif','');
119
120 $tabla_info_personal_adentro->addRow($row, array('colspan'=>'2', 'class'=>'titulo_form', 'align'=>'left'));
121
122 $row = array('Agente',$agente->getNombre());
123 $tabla_info_personal_adentro->addRow($row);
124
125 $row = array('N° de documento',$agente->agente);
126 $tabla_info_personal_adentro->addRow($row);
127
128 $dep =& new MECON_Dependencia($agente->getDependencia());
129 $row = array('Dependencia',$dep->getNombre());
130 $tabla_info_personal_adentro->addRow($row);
131
132 $row = array('Código',$agente->getDependencia());
133 $tabla_info_personal_adentro->addRow($row);
134
135 $hora_desde =& new MECON_Tiempo_Hora($agente->datos['hora_desde']);
136 $hora_hasta =& new MECON_Tiempo_Hora($agente->datos['hora_hasta']);
137 $row = array('Horario oficial',$hora_desde->get().' - '.$hora_hasta->get());
138 $tabla_info_personal_adentro->addRow($row);
139
140 $tipo_ag = $agente->getTipo();
141 if(preg_match('/^BEC/',$tipo_ag))
142 {
143         $tipo_ag = 'PASANTE';
144 }elseif(preg_match('/^CON/',$tipo_ag))
145 {
146         $tipo_ag = 'CONTRATADO';
147 }elseif(preg_match('/^ADS/',$tipo_ag))
148 {
149         $tipo_ag = 'ADSCRIPTO';
150 }elseif(preg_match('/^TRA/',$tipo_ag))
151 {
152         $tipo_ag = 'PLANTA TRANSITORIA';
153 }else
154 {
155         $tipo_ag = 'PLANTA PERMANENTE';
156 }
157
158 $row = array('Categoría',$tipo_ag);
159 $tabla_info_personal_adentro->addRow($row);
160
161 for($fila=1; $fila <= 6; $fila++)
162 {
163         $tabla_info_personal_adentro->updateCellAttributes($fila,0,array('class'=>'titulo_columna', 
164                                                                                                                                         'width'=>'120',
165                                                                                                                                         'background'=>$imagen->getSrc()));
166 }
167
168 $tabla_info_personal_adentro->updateColAttributes(1,array('class'=>'txt_fila', 
169                                                                                                         'bgcolor'=>'#FFFFFF',
170                                                                                                         'width'=>'180'));
171
172 $tabla_info_personal = new HTML_Table(array('width'=>'360',
173                                                                                         'border'=>'0',
174                                                                                         'cellspacing'=>'0',
175                                                                                         'cellpadding'=>'0',
176                                                                                         'bgcolor'=>'#003366'));
177 $tabla_info_personal->addRow(array($tabla_info_personal_adentro));
178
179 /* Armo la tabla de referencias */
180 $tabla_referencias_adentro = new HTML_Table(array('width'=>'360',
181                                                                                         'border'=>'0',
182                                                                                         'valign'=>'top',
183                                                                                         'cellspacing'=>'2',
184                                                                                         'cellpadding'=>'0'));
185 $row = array('Referencias');
186 $tabla_referencias_adentro->addRow($row, array('colspan'=>'2', 'class'=>'titulo_form', 'align'=>'left'));
187
188 $row = array('&nbsp;','Promedio diario');
189 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FFFFFF'));
190 $row = array('&nbsp;','Sábados/Domingos/Feriados');
191 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'lightblue'));
192 $row = array('&nbsp;','Lic. extraordinaria');
193 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#009999'));
194 $row = array('&nbsp;','Otras inasistencias');
195 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#CC66CC'));
196 $row = array('&nbsp;','Inasistencias');
197 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FF9900'));
198 $row = array('&nbsp;','Lic. enfermedad');
199 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#00CC33'));
200 $row = array('&nbsp;','Lic. anual ordinaria');
201 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#3366FF'));
202 $row = array('&nbsp;','Ausentes sin informar');
203 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FF0000'));
204
205 $tabla_referencias_adentro->updateColAttributes(0,array('width'=>'20',
206                                                                                                                 'class'=>'titulo_columna'));
207
208
209 $tabla_referencias_adentro->updateColAttributes(1,array('bgcolor'=>'#FFFFFF',
210                                                                                                                 'width'=>'340',
211                                                                                                                 'class'=>'txt_fila'));
212
213 $tabla_referencias = new HTML_Table(array('width'=>'360',
214                                                                                         'border'=>'0',
215                                                                                         'cellspacing'=>'0',
216                                                                                         'cellpadding'=>'0',
217                                                                                         'bgcolor'=>'#003366'));
218 $tabla_referencias->addRow(array($tabla_referencias_adentro));
219
220
221 /* Agrego las tablas de referencia al cuerpo */
222 $t = new HTML_Table(array('width'=>'760',
223                                                         'border'=>'0',
224                                                         'cellspacing'=>'0',
225                                                         'cellpadding'=>'0'));
226 $row = array();
227 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
228                                                 '',
229                                                 array('width'=>'360','height'=>'1','alt'=>'blanco'));
230 array_push($row,$imagen);
231 array_push($row,'');
232 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
233                                                 '',
234                                                 array('width'=>'40','height'=>'1','alt'=>'blanco'));
235 array_push($row,$imagen);
236 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
237                                                 '',
238                                                 array('width'=>'360','height'=>'1','alt'=>'blanco'));
239 array_push($row,$imagen);
240
241 $t->addRow($row);
242 $t->updateCellAttributes(0,0,array('colspan'=>'2'));
243
244 $row = array($tabla_info_personal,'','&nbsp;',$tabla_referencias);
245 $t->addRow($row,array('valign'=>'top'));
246 $t->updateCellAttributes(1,0,array('colspan'=>'2'));
247
248 /* Esta fila contiene las referencias */
249 $row_cuerpo = array($t);
250 $tabla_cuerpo->addRow($row_cuerpo,array('colspan'=>'9', 'class'=>'imprimir'));
251
252 $m->addBodyContent($tabla_cuerpo);
253
254 $m->addBodyContent('<BR>');
255
256 /* Armo la tabla de información */
257 $tabla_info_adentro = new HTML_Table(array('width'=>'760',
258                                                                                         'border'=>'0',
259                                                                                         'valign'=>'top',
260                                                                                         'cellspacing'=>'2',
261                                                                                         'cellpadding'=>'0'));
262 $row = array('Mes: '.$mes.' - Año: '.$fecha_spliteada[0]);
263 $tabla_info_adentro->addRow($row, array('colspan'=>'10', 'class'=>'titulo_form', 'align'=>'left'));
264
265
266 $horas=$agente->getHoras();
267 for($i=1;$i<4;$i++)
268 {
269         $aux=($i-1)*10;
270         $row=array(1+$aux,2+$aux,3+$aux,4+$aux,5+$aux,6+$aux,7+$aux,8+$aux,9+$aux,10+$aux);
271
272         $tabla_info_adentro->addRow($row,array('width'=>'76',
273                                                                                         'background'=>'../../images/servicios_bandas_borde_tabla.gif',
274                                                                                         'class'=>'titulo_columna'));
275         
276         $row=array();
277         $celda_ASN=array();
278         $celda_NOV=array();
279         $celda_FER=array();
280         for($j=1;$j<11;$j++)
281         {
282                 if(isset($horas[$j+$aux]['tiempo']))
283                 {
284                         array_push($row,$horas[$j+$aux]['tiempo']);
285                         if($horas[$j+$aux]['tiempo']=='0:00')
286                         {
287                                 ($horas[$j+$aux]['ASN']==1)?array_push($celda_ASN,$j-1):0;
288                                 ($horas[$j+$aux]['ASN']==0 && $horas[$j+$aux]['tipo']=='laborable')?array_push($celda_NOV,array($j-1,$horas[$j+$aux]['fecha'])):0;
289                         }
290                         ($horas[$j+$aux]['ASN']==0 && $horas[$j+$aux]['tipo']=='no laborable')?array_push($celda_FER,$j-1):0;
291                 }else
292                 {
293                         array_push($row,'&nbsp');
294                 }
295         }
296         
297         $tabla_info_adentro->addRow($row,array('bgcolor'=>'#FFFFFF', 'class'=>'txt_fila'));
298         $tabla_info_adentro->addRow(array('&nbsp;'),array('colspan'=>'10',
299                                                                                                                 'bgcolor'=>'#FFFFFF',
300                                                                                                                 'class'=>'txt_fila'));
301         foreach ($celda_ASN as $c)
302         {
303                 $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c,array('bgcolor'=>'red'));
304         }
305
306         foreach ($celda_NOV as $c)
307         {
308                 $novedad =& new MECON_NovedadesDia($nrodoc,new date($c[1]));
309                 if(preg_match('/^13/',$novedad->novedades[0]->codigo))
310                 {
311                         $color='#009999';
312                 }elseif(preg_match('/^15||^2606\/83$||^Adp$||^Com$||^Coms$||^FES\/REL$||^Fran$||^Grem$/',$novedad->novedades[0]->codigo))
313                 {
314                         $color='#CC66CC';
315                 }elseif(preg_match('/^14||^Asa$||^Pap$||^Sus$/',$novedad->novedades[0]->codigo))
316                 {
317                         $color='#FF9900';
318                 }elseif(preg_match('/^10||^Pat$/',$novedad->novedades[0]->codigo))
319                 {
320                         $color='#00CC33';
321                 }elseif(preg_match('/^9/',$novedad->novedades[0]->codigo))
322                 {
323                         $color='#3366FF';
324                 }
325
326                 $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c[0],array('bgcolor'=>$color));
327         }
328         
329         foreach ($celda_FER as $c)
330         {
331                 $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c,array('bgcolor'=>'lightblue'));
332         }
333
334 }
335
336 if(isset($horas[31]['tiempo']))
337 {
338         $row = array(31,'Días Trabajados','','','Días Laborables Trabajados','','','Promedio','','');
339         
340         $tabla_info_adentro->addRow($row,array('class'=>'titulo_columna',
341                                                                                         'background'=>'../../images/servicios_bandas_borde_tabla.gif'));
342         
343         
344         $row = array($horas[31]['tiempo'],
345                                 $agente->getDiasTrabajados(),'','',
346                                 $agente->getDiasLaborablesTrabajados(),'','',
347                                 $agente->getPromedioMensual(),'','');
348         $tabla_info_adentro->addRow($row,array('class'=>'txt_fila',
349                                                                                         'bgcolor'=>'#FFFFFF'));
350         if($horas[31]['tiempo']=='0:00')
351         {
352                 ($horas[31]['ASN']==1)?$tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>'red')):0;
353                 if($horas[31]['ASN']==0 && $horas[31]['tipo']=='laborable')
354                 {
355                         preg_replace('/(..)$/','31',$fecha);
356                         $novedad =& new MECON_NovedadesDia($nrodoc,new date($fecha));
357                         if(preg_match('/^13/',$novedad->novedades[0]->codigo))
358                         {
359                                 $color='#009999';
360                         }elseif(preg_match('/^15||^2606\/83$||^Adp$||^Com$||^Coms$||^FES\/REL$||^Fran$||^Grem$/',$novedad->novedades[0]->codigo))
361                         {
362                                 $color='#CC66CC';
363                         }elseif(preg_match('/^14||^Asa$||^Pap$||^Sus$/',$novedad->novedades[0]->codigo))
364                         {
365                                 $color='#FF9900';
366                         }elseif(preg_match('/^10||^Pat$/',$novedad->novedades[0]->codigo))
367                         {
368                                 $color='#00CC33';
369                         }elseif(preg_match('/^9/',$novedad->novedades[0]->codigo))
370                         {
371                                 $color='#3366FF';
372                         }
373                         $tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>$color));
374                 }
375         }
376         ($horas[31]['ASN']==0 && $horas[31]['tipo']=='no laborable')?$tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>'#666666')):0;
377         
378         $tabla_info_adentro->updateCellAttributes(10,1,array('colspan'=>'3'));
379         $tabla_info_adentro->updateCellAttributes(10,4,array('colspan'=>'3'));
380         $tabla_info_adentro->updateCellAttributes(10,7,array('colspan'=>'3'));
381
382         $tabla_info_adentro->updateCellAttributes(11,1,array('colspan'=>'3'));
383         $tabla_info_adentro->updateCellAttributes(11,4,array('colspan'=>'3'));
384         $tabla_info_adentro->updateCellAttributes(11,7,array('colspan'=>'3'));
385
386 }else
387 {
388         $row = array('Días Trabajados','','','','Días Laborables Trabajados','','','Promedio','','');
389         $tabla_info_adentro->addRow($row,array('class'=>'titulo_columna',
390                                                                                         'background'=>'../../images/servicios_bandas_borde_tabla.gif'));
391         $tabla_info_adentro->updateCellAttributes(10,0,array('colspan'=>'4'));
392         $tabla_info_adentro->updateCellAttributes(10,4,array('colspan'=>'3'));
393         $tabla_info_adentro->updateCellAttributes(10,7,array('colspan'=>'3'));
394         
395         $row = array($agente->getDiasTrabajados(),'','','',
396                                 $agente->getDiasLaborablesTrabajados(),'','',
397                                 $agente->getPromedioMensual(),'','');
398
399         $tabla_info_adentro->addRow($row,array('class'=>'txt_fila',
400                                                                                         'bgcolor'=>'#FFFFFF'));
401         $tabla_info_adentro->updateCellAttributes(11,0,array('colspan'=>'4'));
402         $tabla_info_adentro->updateCellAttributes(11,4,array('colspan'=>'3'));
403         $tabla_info_adentro->updateCellAttributes(11,7,array('colspan'=>'3'));
404
405 }
406
407
408 $tabla_info = new HTML_Table(array('width'=>'760',
409                                                                         'border'=>'0',
410                                                                         'cellspacing'=>'0',
411                                                                         'cellpadding'=>'0',
412                                                                         'bgcolor'=>'#003366'));
413
414 $tabla_info->addRow(array($tabla_info_adentro));
415 $m->addBodyContent($tabla_info);
416
417 $m->addBodyContent('<BR>');
418
419 /* Comienzo a mostrar los links con las notas, accesos y salidas autorizadas*/
420 $tabla_notas = new HTML_Table(array('width'=>'760',
421                                                                         'border'=>'0',
422                                                                         'cellspacing'=>'0',
423                                                                         'cellpadding'=>'0',
424                                                                         'bgcolor'=>'#003366'));
425
426 $imagen_notas = new MECON_HTML_Image('../../images/servicios_bandas_notas.gif',
427                                                          '',
428                                                         array('width'=>'24','height'=>'24'));
429
430 $imagen_anterior = new MECON_HTML_Image('../../images/servicios_bandas_anterior.gif',
431                                                                 '',
432                                                                 array('width'=>'16','height'=>'10'));
433                                                                 
434 $imagen_visto = new MECON_HTML_Image('../../images/servicios_bandas_visto.gif',
435                                                                 '',
436                                                                 array('width'=>'16','height'=>'10'));
437
438 $row = array($imagen_notas,'Nota: Fecha de último cruce con las novedades',$imagen_anterior->toHtml().' volver',$imagen_visto->toHtml().' accesos',$imagen_visto->toHtml().' salidas autorizadas');
439                         
440 $tabla_notas->addRow($row,array('class'=>'imprimir',
441                                                                                 'bgcolor'=>'#FFFFFF'));
442
443 $tabla_notas->updateCellAttributes(0,0,array('width'=>'24','height'=>'24','class'=>'aclarar'));
444 $tabla_notas->updateCellAttributes(0,1,array('width'=>'370','height'=>'30','class'=>'aclarar'));
445 $tabla_notas->updateCellAttributes(0,2,array('width'=>'130','class'=>'imprimir'));
446 $tabla_notas->updateCellAttributes(0,3,array('width'=>'130','class'=>'imprimir'));
447 $tabla_notas->updateCellAttributes(0,4,array('width'=>'130','class'=>'imprimir'));
448 $m->addBodyContent($tabla_notas);
449 $m->display();
450 ?>
451