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';
10 //$nrodoc = $_SESSION['documento'];
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');
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'));
21 /* Encabezado propio de la pagina */
22 $row_cuerpo = array();
23 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
25 array('width'=>'24','height'=>'1','alt'=>'blanco'));
26 array_push($row_cuerpo,$imagen);
27 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
29 array('width'=>'135','height'=>'1','alt'=>'blanco'));
30 array_push($row_cuerpo,$imagen);
31 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
33 array('width'=>'20','height'=>'1','alt'=>'blanco'));
34 array_push($row_cuerpo,$imagen);
35 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
37 array('width'=>'160','height'=>'1','alt'=>'blanco'));
38 array_push($row_cuerpo,$imagen);
39 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
41 array('width'=>'20','height'=>'1','alt'=>'blanco'));
42 array_push($row_cuerpo,$imagen);
43 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
45 array('width'=>'190','height'=>'1','alt'=>'blanco'));
46 array_push($row_cuerpo,$imagen);
47 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
49 array('width'=>'20','height'=>'1','alt'=>'blanco'));
50 array_push($row_cuerpo,$imagen);
51 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
53 array('width'=>'166','height'=>'1','alt'=>'blanco'));
54 array_push($row_cuerpo,$imagen);
55 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
57 array('width'=>'24','height'=>'1','alt'=>'blanco'));
58 array_push($row_cuerpo,$imagen);
59 $tabla_cuerpo->addRow($row_cuerpo, array('height'=>'1'));
61 $imagen = new MECON_HTML_Image('../../images/servicios_bandas_imprimir1.gif',
63 array('width'=>'24','height'=>'24','alt'=>'imprimir'));
64 $row_cuerpo = array('Bandas Horarias',
71 'Página de Impresión ',
73 $tabla_cuerpo->addRow($row_cuerpo,array('height'=>'24'));
74 $tabla_cuerpo->updateCellAttributes($tabla_cuerpo->getRowCount() - 1,
76 array('colspan'=>'7','class'=>'titulo_tres'));
77 $tabla_cuerpo->updateCellAttributes($tabla_cuerpo->getRowCount() - 1,
79 array('class'=>'imprimir'));
80 $row_cuerpo = array();
81 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
83 array('width'=>'760','height'=>'1','alt'=>'blanco'));
84 array_push($row_cuerpo,$imagen);
85 $tabla_cuerpo->addRow($row_cuerpo,array('colspan'=>'9',
88 $tabla_cuerpo->addRow($row_cuerpo,array('colspan'=>'9',
92 /* Fin del encabezado propio de la pagina*/
94 Aca empieza las tablas con la informacion personal del agente y
95 con las referencias de cada color de las celdas
97 setlocale (LC_ALL, 'es_AR');
98 $nrodoc = $_SESSION['login'];
99 $fecha = $_POST['fecha'];
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));
105 if(!$agente->buscarAgente($nrodoc))
107 echo "El agente no está en las bases de RRHH";
110 /* Armo la tabla de la información personal */
112 $tabla_info_personal_adentro = new HTML_Table(array('width'=>'360',
116 'cellpadding'=>'0'));
117 $row = array('Datos personales');
118 $imagen = new MECON_HTML_Image('../../images/servicios_bandas_borde_tabla.gif','');
120 $tabla_info_personal_adentro->addRow($row, array('colspan'=>'2', 'class'=>'titulo_form', 'align'=>'left'));
122 $row = array('Agente',$agente->getNombre());
123 $tabla_info_personal_adentro->addRow($row);
125 $row = array('N° de documento',$agente->agente);
126 $tabla_info_personal_adentro->addRow($row);
128 $dep =& new MECON_Dependencia($agente->getDependencia());
129 $row = array('Dependencia',$dep->getNombre());
130 $tabla_info_personal_adentro->addRow($row);
132 $row = array('Código',$agente->getDependencia());
133 $tabla_info_personal_adentro->addRow($row);
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);
140 $tipo_ag = $agente->getTipo();
141 if(preg_match('/^BEC/',$tipo_ag))
143 $tipo_ag = 'PASANTE';
144 }elseif(preg_match('/^CON/',$tipo_ag))
146 $tipo_ag = 'CONTRATADO';
147 }elseif(preg_match('/^ADS/',$tipo_ag))
149 $tipo_ag = 'ADSCRIPTO';
150 }elseif(preg_match('/^TRA/',$tipo_ag))
152 $tipo_ag = 'PLANTA TRANSITORIA';
155 $tipo_ag = 'PLANTA PERMANENTE';
158 $row = array('Categoría',$tipo_ag);
159 $tabla_info_personal_adentro->addRow($row);
161 for($fila=1; $fila <= 6; $fila++)
163 $tabla_info_personal_adentro->updateCellAttributes($fila,0,array('class'=>'titulo_columna',
165 'background'=>$imagen->getSrc()));
168 $tabla_info_personal_adentro->updateColAttributes(1,array('class'=>'txt_fila',
169 'bgcolor'=>'#FFFFFF',
172 $tabla_info_personal = new HTML_Table(array('width'=>'360',
176 'bgcolor'=>'#003366'));
177 $tabla_info_personal->addRow(array($tabla_info_personal_adentro));
179 /* Armo la tabla de referencias */
180 $tabla_referencias_adentro = new HTML_Table(array('width'=>'360',
184 'cellpadding'=>'0'));
185 $row = array('Referencias');
186 $tabla_referencias_adentro->addRow($row, array('colspan'=>'2', 'class'=>'titulo_form', 'align'=>'left'));
188 $row = array(' ','Promedio diario');
189 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FFFFFF'));
190 $row = array(' ','Sábados/Domingos/Feriados');
191 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'lightblue'));
192 $row = array(' ','Lic. extraordinaria');
193 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#009999'));
194 $row = array(' ','Otras inasistencias');
195 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#CC66CC'));
196 $row = array(' ','Inasistencias');
197 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FF9900'));
198 $row = array(' ','Lic. enfermedad');
199 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#00CC33'));
200 $row = array(' ','Lic. anual ordinaria');
201 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#3366FF'));
202 $row = array(' ','Ausentes sin informar');
203 $tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FF0000'));
205 $tabla_referencias_adentro->updateColAttributes(0,array('width'=>'20',
206 'class'=>'titulo_columna'));
209 $tabla_referencias_adentro->updateColAttributes(1,array('bgcolor'=>'#FFFFFF',
211 'class'=>'txt_fila'));
213 $tabla_referencias = new HTML_Table(array('width'=>'360',
217 'bgcolor'=>'#003366'));
218 $tabla_referencias->addRow(array($tabla_referencias_adentro));
221 /* Agrego las tablas de referencia al cuerpo */
222 $t = new HTML_Table(array('width'=>'760',
225 'cellpadding'=>'0'));
227 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
229 array('width'=>'360','height'=>'1','alt'=>'blanco'));
230 array_push($row,$imagen);
232 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
234 array('width'=>'40','height'=>'1','alt'=>'blanco'));
235 array_push($row,$imagen);
236 $imagen = new MECON_HTML_Image('/MECON/images/blanco.gif',
238 array('width'=>'360','height'=>'1','alt'=>'blanco'));
239 array_push($row,$imagen);
242 $t->updateCellAttributes(0,0,array('colspan'=>'2'));
244 $row = array($tabla_info_personal,'',' ',$tabla_referencias);
245 $t->addRow($row,array('valign'=>'top'));
246 $t->updateCellAttributes(1,0,array('colspan'=>'2'));
248 /* Esta fila contiene las referencias */
249 $row_cuerpo = array($t);
250 $tabla_cuerpo->addRow($row_cuerpo,array('colspan'=>'9', 'class'=>'imprimir'));
252 $m->addBodyContent($tabla_cuerpo);
254 $m->addBodyContent('<BR>');
256 /* Armo la tabla de información */
257 $tabla_info_adentro = new HTML_Table(array('width'=>'760',
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'));
266 $horas=$agente->getHoras();
270 $row=array(1+$aux,2+$aux,3+$aux,4+$aux,5+$aux,6+$aux,7+$aux,8+$aux,9+$aux,10+$aux);
272 $tabla_info_adentro->addRow($row,array('width'=>'76',
273 'background'=>'../../images/servicios_bandas_borde_tabla.gif',
274 'class'=>'titulo_columna'));
282 if(isset($horas[$j+$aux]['tiempo']))
284 array_push($row,$horas[$j+$aux]['tiempo']);
285 if($horas[$j+$aux]['tiempo']=='0:00')
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;
290 ($horas[$j+$aux]['ASN']==0 && $horas[$j+$aux]['tipo']=='no laborable')?array_push($celda_FER,$j-1):0;
293 array_push($row,' ');
297 $tabla_info_adentro->addRow($row,array('bgcolor'=>'#FFFFFF', 'class'=>'txt_fila'));
298 $tabla_info_adentro->addRow(array(' '),array('colspan'=>'10',
299 'bgcolor'=>'#FFFFFF',
300 'class'=>'txt_fila'));
301 foreach ($celda_ASN as $c)
303 $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c,array('bgcolor'=>'red'));
306 foreach ($celda_NOV as $c)
308 $novedad =& new MECON_NovedadesDia($nrodoc,new date($c[1]));
309 if(preg_match('/^13/',$novedad->novedades[0]->codigo))
312 }elseif(preg_match('/^15||^2606\/83$||^Adp$||^Com$||^Coms$||^FES\/REL$||^Fran$||^Grem$/',$novedad->novedades[0]->codigo))
315 }elseif(preg_match('/^14||^Asa$||^Pap$||^Sus$/',$novedad->novedades[0]->codigo))
318 }elseif(preg_match('/^10||^Pat$/',$novedad->novedades[0]->codigo))
321 }elseif(preg_match('/^9/',$novedad->novedades[0]->codigo))
326 $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c[0],array('bgcolor'=>$color));
329 foreach ($celda_FER as $c)
331 $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c,array('bgcolor'=>'lightblue'));
336 if(isset($horas[31]['tiempo']))
338 $row = array(31,'Días Trabajados','','','Días Laborables Trabajados','','','Promedio','','');
340 $tabla_info_adentro->addRow($row,array('class'=>'titulo_columna',
341 'background'=>'../../images/servicios_bandas_borde_tabla.gif'));
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')
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')
355 preg_replace('/(..)$/','31',$fecha);
356 $novedad =& new MECON_NovedadesDia($nrodoc,new date($fecha));
357 if(preg_match('/^13/',$novedad->novedades[0]->codigo))
360 }elseif(preg_match('/^15||^2606\/83$||^Adp$||^Com$||^Coms$||^FES\/REL$||^Fran$||^Grem$/',$novedad->novedades[0]->codigo))
363 }elseif(preg_match('/^14||^Asa$||^Pap$||^Sus$/',$novedad->novedades[0]->codigo))
366 }elseif(preg_match('/^10||^Pat$/',$novedad->novedades[0]->codigo))
369 }elseif(preg_match('/^9/',$novedad->novedades[0]->codigo))
373 $tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>$color));
376 ($horas[31]['ASN']==0 && $horas[31]['tipo']=='no laborable')?$tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>'#666666')):0;
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'));
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'));
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'));
395 $row = array($agente->getDiasTrabajados(),'','','',
396 $agente->getDiasLaborablesTrabajados(),'','',
397 $agente->getPromedioMensual(),'','');
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'));
408 $tabla_info = new HTML_Table(array('width'=>'760',
412 'bgcolor'=>'#003366'));
414 $tabla_info->addRow(array($tabla_info_adentro));
415 $m->addBodyContent($tabla_info);
417 $m->addBodyContent('<BR>');
419 /* Comienzo a mostrar los links con las notas, accesos y salidas autorizadas*/
420 $tabla_notas = new HTML_Table(array('width'=>'760',
424 'bgcolor'=>'#003366'));
426 $imagen_notas = new MECON_HTML_Image('../../images/servicios_bandas_notas.gif',
428 array('width'=>'24','height'=>'24'));
430 $imagen_anterior = new MECON_HTML_Image('../../images/servicios_bandas_anterior.gif',
432 array('width'=>'16','height'=>'10'));
434 $imagen_visto = new MECON_HTML_Image('../../images/servicios_bandas_visto.gif',
436 array('width'=>'16','height'=>'10'));
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');
440 $tabla_notas->addRow($row,array('class'=>'imprimir',
441 'bgcolor'=>'#FFFFFF'));
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);