X-Git-Url: https://git.llucax.com/mecon/intranet.git/blobdiff_plain/88b2594d2ff73f9cd7fe0f35c39c98eff1e50765..bd45c6ba4dc4b9b37580bdf3d8e6ea85428c7fa7:/sistema/www/servicios/bandas/banda_agente.php diff --git a/sistema/www/servicios/bandas/banda_agente.php b/sistema/www/servicios/bandas/banda_agente.php index ed15ab8..509d632 100644 --- a/sistema/www/servicios/bandas/banda_agente.php +++ b/sistema/www/servicios/bandas/banda_agente.php @@ -1,57 +1,88 @@ addTitle('Bandas Horarias'); +$m->addStyleSheet('../../css/servicios_bandas.css'); + +$agente =& new BandasNovedades_AgenteBanda($nrodoc,new date($fecha),$DB); + if(!$agente->buscarAgente($nrodoc)) { - echo "El agente no está en las bases de RRHH"; - die; + $HTML_Mensaje =& new HTML_Mensaje("alerta","El agente no está en las bases de RRHH",450); + $m->addStyleSheet($HTML_Mensaje->getCSS()); + $m->addBodyContent($HTML_Mensaje); + $m->display(); + exit; +} + + +/* Si el agente es un contratado entonces no muestro la info */ +if(preg_match('/^CON/',$agente->getTipo())) +{ + $HTML_Mensaje =& new HTML_Mensaje("alerta","Información no disponible",300); + $m->addStyleSheet($HTML_Mensaje->getCSS()); + $m->addBodyContent($HTML_Mensaje); + $m->display(); + exit; } -/* Instancio DietMarco que sirve para mostrar la pagina dentro del marco de Intranet*/ -$m = new HTML_DietMarco('servicios','Bandas Horarias'); -$m->addTitle('Bandas Horarias'); -$m->addStyleSheet('../../css/servicios_bandas.css'); /* Instancio un objeto Table para el cuerpo de la pagina*/ -$tabla_cuerpo = new HTML_Table(array('width'=>'760','border'=>'0','cellspacing'=>'0','cellpadding'=>'0')); +$tabla_cuerpo =& new HTML_Table(array('width'=>'760','border'=>'0','cellspacing'=>'0','cellpadding'=>'0')); /* Encabezado propio de la pagina */ -$imagen = new MECON_HTML_Image('../../images/servicios_imprimir1.gif', +$IMG_flecha_naranja =& new MECON_HTML_Image('../../images/servicios_flecha_naranja.gif', + '', + array('alt'=>'>>')); + +$IMG =& new MECON_HTML_Image('../../images/servicios_imprimir1.gif', '', array('width'=>'24','height'=>'24','alt'=>'imprimir')); -$row_cuerpo = array('Datos Personales', - 'Página de Impresión ', - $imagen->toHtml()); + + +$row_cuerpo = array( $IMG_flecha_naranja->toHtml().' '.$agente->getNombre(), + "Página de Impresión", + $IMG->toHtml()); $tabla_cuerpo->addRow($row_cuerpo,array('height'=>'24')); -$imagen = new MECON_HTML_Image('/MECON/images/blanco.gif', +$IMG =& new MECON_HTML_Image('/MECON/images/blanco.gif', '', array('width'=>'586','height'=>'1','alt'=>'blanco','align'=>'top')); -$imagen2 = new MECON_HTML_Image('/MECON/images/blanco.gif', +$IMG2 =& new MECON_HTML_Image('/MECON/images/blanco.gif', '', array('width'=>'150','height'=>'1','alt'=>'blanco','align'=>'top')); -$imagen3 = new MECON_HTML_Image('/MECON/images/blanco.gif', +$IMG3 =& new MECON_HTML_Image('/MECON/images/blanco.gif', '', array('width'=>'24','height'=>'1','alt'=>'blanco','align'=>'top')); -$row_cuerpo = array($imagen->toHtml(),$imagen2->toHtml(),$imagen3->toHtml()); +$row_cuerpo = array($IMG->toHtml(),$IMG2->toHtml(),$IMG3->toHtml()); $tabla_cuerpo->addRow($row_cuerpo,array('bgcolor'=>'#FF9900', 'height'=>'1')); @@ -87,362 +118,120 @@ con las referencias de cada color de las celdas /* Armo la tabla de la información personal */ -$tabla_info_personal_adentro = new HTML_Table(array('width'=>'360', - 'border'=>'0', - 'valign'=>'top', - 'cellspacing'=>'2', - 'cellpadding'=>'0')); -$row = array('Datos personales'); -$imagen = new MECON_HTML_Image('../../images/servicios_bandas_borde_tabla.gif',''); - -$tabla_info_personal_adentro->addRow($row, array('colspan'=>'2', 'class'=>'titulo_form', 'align'=>'left')); - -$row = array('Agente',$agente->getNombre()); -$tabla_info_personal_adentro->addRow($row); - -$row = array('N° de documento',$agente->agente); -$tabla_info_personal_adentro->addRow($row); +$tabla_info_personal =& new BandasNovedades_HTML_TablaInfoPersonal($agente,'oscuro'); +$m->addStyleSheet($tabla_info_personal->getCSS()); -$dep =& new MECON_Dependencia($agente->getDependencia()); -$row = array('Dependencia',$dep->getNombre()); -$tabla_info_personal_adentro->addRow($row); -$row = array('Código',$agente->getDependencia()); -$tabla_info_personal_adentro->addRow($row); - -$hora_desde =& new MECON_Tiempo_Hora($agente->datos['hora_desde']); -$hora_hasta =& new MECON_Tiempo_Hora($agente->datos['hora_hasta']); -$row = array('Horario oficial',$hora_desde->get().' - '.$hora_hasta->get()); -$tabla_info_personal_adentro->addRow($row); - -$tipo_ag = $agente->getTipo(); -if(preg_match('/^BEC/',$tipo_ag)) -{ - $tipo_ag = 'PASANTE'; -}elseif(preg_match('/^CON/',$tipo_ag)) -{ - $tipo_ag = 'CONTRATADO'; -}elseif(preg_match('/^ADS/',$tipo_ag)) -{ - $tipo_ag = 'ADSCRIPTO'; -}elseif(preg_match('/^TRA/',$tipo_ag)) -{ - $tipo_ag = 'PLANTA TRANSITORIA'; -}else -{ - $tipo_ag = 'PLANTA PERMANENTE'; -} - -$row = array('Categoría',$tipo_ag); -$tabla_info_personal_adentro->addRow($row); - -for($fila=1; $fila <= 6; $fila++) -{ - $tabla_info_personal_adentro->updateCellAttributes($fila,0,array('class'=>'titulo_columna', - 'width'=>'120', - 'background'=>$imagen->getSrc())); -} - -$tabla_info_personal_adentro->updateColAttributes(1,array('class'=>'txt_fila', - 'bgcolor'=>'#FFFFFF', - 'width'=>'180')); - -$tabla_info_personal = new HTML_Table(array('width'=>'360', - 'border'=>'0', - 'cellspacing'=>'0', - 'cellpadding'=>'0', - 'bgcolor'=>'#003366')); -$tabla_info_personal->addRow(array($tabla_info_personal_adentro)); - -/* Armo la tabla de referencias */ -$tabla_referencias_adentro = new HTML_Table(array('width'=>'360', - 'border'=>'0', - 'valign'=>'top', - 'cellspacing'=>'2', - 'cellpadding'=>'0')); -$row = array('Referencias'); -$tabla_referencias_adentro->addRow($row, array('colspan'=>'2', 'class'=>'titulo_form', 'align'=>'left')); - -$row = array(' ','Promedio diario'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FFFFFF')); -$row = array(' ','Sábados/Domingos/Feriados'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'lightblue')); -$row = array(' ','Lic. extraordinaria'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#009999')); -$row = array(' ','Otras inasistencias'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#CC66CC')); -$row = array(' ','Inasistencias'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FF9900')); -$row = array(' ','Lic. enfermedad'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#00CC33')); -$row = array(' ','Lic. anual ordinaria'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#3366FF')); -$row = array(' ','Ausentes sin informar'); -$tabla_referencias_adentro->addRow($row,array('bgcolor'=>'#FF0000')); - -$tabla_referencias_adentro->updateColAttributes(0,array('width'=>'20', - 'class'=>'titulo_columna')); - - -$tabla_referencias_adentro->updateColAttributes(1,array('bgcolor'=>'#FFFFFF', - 'width'=>'340', - 'class'=>'txt_fila')); - -$tabla_referencias = new HTML_Table(array('width'=>'360', - 'border'=>'0', - 'cellspacing'=>'0', - 'cellpadding'=>'0', - 'bgcolor'=>'#003366')); -$tabla_referencias->addRow(array($tabla_referencias_adentro)); - - -/* Agrego las tablas de referencia al cuerpo */ -$t = new HTML_Table(array('width'=>'760', +/* Agrego la tabla de información personal al cuerpo de la página*/ +$t =& new HTML_Table(array('width'=>'760', 'border'=>'0', 'cellspacing'=>'0', 'cellpadding'=>'0')); -$row = array(); -$imagen = new MECON_HTML_Image('/MECON/images/blanco.gif', - '', - array('width'=>'360','height'=>'1','alt'=>'blanco')); -array_push($row,$imagen); -array_push($row,''); -$imagen = new MECON_HTML_Image('/MECON/images/blanco.gif', - '', - array('width'=>'40','height'=>'1','alt'=>'blanco')); -array_push($row,$imagen); -$imagen = new MECON_HTML_Image('/MECON/images/blanco.gif', - '', - array('width'=>'360','height'=>'1','alt'=>'blanco')); -array_push($row,$imagen); -$t->addRow($row); -$t->updateCellAttributes(0,0,array('colspan'=>'2')); - -$row = array($tabla_info_personal,'',' ',$tabla_referencias); -$t->addRow($row,array('valign'=>'top')); -$t->updateCellAttributes(1,0,array('colspan'=>'2')); - -/* Esta fila contiene las referencias */ -$row_cuerpo = array($t); - -$m->addBodyContent($t); - -$m->addBodyContent('
'); - -/* Armo la tabla de información */ -$tabla_info_adentro = new HTML_Table(array('width'=>'760', - 'border'=>'0', - 'valign'=>'top', - 'cellspacing'=>'2', - 'cellpadding'=>'0')); -$row = array('Mes: '.$mes.' - Año: '.$fecha_spliteada[0]); -$tabla_info_adentro->addRow($row, array('colspan'=>'10', 'class'=>'titulo_form', 'align'=>'left')); +$t->addRow(array($tabla_info_personal),array('colspan'=>'3')); +$t->addRow(array(' '),array('colspan'=>'3')); +/* Agrego las tablas de referencia al cuerpo */ +$row = array(); -$horas=$agente->getHoras(); -for($i=1;$i<4;$i++) +if(BandasNovedades_AgenteBanda::tieneCredencial($DB,$_SESSION['documento'],new Date($fecha))) { - $aux=($i-1)*10; - $row=array(1+$aux,2+$aux,3+$aux,4+$aux,5+$aux,6+$aux,7+$aux,8+$aux,9+$aux,10+$aux); + /* Armo la tabla con la gilla horaria*/ + $tabla_info =& new BandasNovedades_HTML_TablaInfoMes($agente,'nov_dia.php','oscuro'); - $tabla_info_adentro->addRow($row,array('width'=>'76', - 'background'=>'../../images/servicios_bandas_borde_tabla.gif', - 'class'=>'titulo_columna')); - - $row=array(); - $celda_ASN=array(); - $celda_NOV=array(); - $celda_FER=array(); - for($j=1;$j<11;$j++) - { - if(isset($horas[$j+$aux]['tiempo'])) - { - array_push($row,$horas[$j+$aux]['tiempo']); - if($horas[$j+$aux]['tiempo']=='0:00') - { - if($horas[$j+$aux]['ASN']==1 || $horas[$j+$aux]['inconsistencia']==1) - { - array_push($celda_ASN,$j-1); - - } - if($horas[$j+$aux]['ASN']==0 && $horas[$j+$aux]['tipo']=='laborable') - { - array_push($celda_NOV,array($j-1,$horas[$j+$aux]['fecha'])); - $row[$j-1]="".$row[$j-1].""; - } - } - ($horas[$j+$aux]['ASN']==0 && $horas[$j+$aux]['tipo']=='no laborable')?array_push($celda_FER,$j-1):0; - }else - { - array_push($row,' '); - } - } - $tabla_info_adentro->addRow($row,array('bgcolor'=>'#FFFFFF', 'class'=>'txt_fila')); - $tabla_info_adentro->addRow(array(' '),array('colspan'=>'10', - 'bgcolor'=>'#FFFFFF', - 'class'=>'txt_fila')); - foreach ($celda_ASN as $c) - { - $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c,array('bgcolor'=>'red')); - } - - foreach ($celda_NOV as $c) - { - $novedad =& new MECON_NovedadesDia($nrodoc,new date($c[1])); - if(preg_match('/^13/',$novedad->novedades[0]->codigo)) - { - $color='#009999'; - }elseif(preg_match('/^15||^2606\/83$||^Adp$||^Com$||^Coms$||^FES\/REL$||^Fran$||^Grem$/',$novedad->novedades[0]->codigo)) - { - $color='#CC66CC'; - }elseif(preg_match('/^14||^Asa$||^Pap$||^Sus$/',$novedad->novedades[0]->codigo)) - { - $color='#FF9900'; - }elseif(preg_match('/^10||^Pat$/',$novedad->novedades[0]->codigo)) - { - $color='#00CC33'; - }elseif(preg_match('/^9/',$novedad->novedades[0]->codigo)) - { - $color='#3366FF'; - } - - $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c[0],array('bgcolor'=>$color)); - } + /* Armo la tabla de referencias */ + $tabla_referencias =& new BandasNovedades_HTML_TablaReferencias('oscuro'); - foreach ($celda_FER as $c) - { - $tabla_info_adentro->updateCellAttributes(($i-1)*3+2,$c,array('bgcolor'=>'lightblue')); - } - -} - -if(isset($horas[31]['tiempo'])) + $row = array($tabla_info,' ',$tabla_referencias); +}else { - $row = array(31,'Días Trabajados','','','Días Laborables Trabajados','','','Promedio','',''); - - $tabla_info_adentro->addRow($row,array('class'=>'titulo_columna', - 'background'=>'../../images/servicios_bandas_borde_tabla.gif')); - $row = array($horas[31]['tiempo'], - $agente->getDiasTrabajados(),'','', - $agente->getDiasLaborablesTrabajados(),'','', - $agente->getPromedioMensual(),'',''); - - if($horas[31]['tiempo']=='0:00' && $horas[31]['ASN']==0 && $horas[31]['tipo']=='laborable') - { - $row[0]=" - ".$horas[31]['tiempo'].""; - } - $tabla_info_adentro->addRow($row,array('class'=>'txt_fila', - 'bgcolor'=>'#FFFFFF')); - - if($horas[31]['tiempo']=='0:00') - { - if($horas[31]['ASN']==1) - { - $tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>'red')); - } - if($horas[31]['ASN']==0 && $horas[31]['tipo']=='laborable') - { - preg_replace('/(..)$/','31',$fecha); - $novedad =& new MECON_NovedadesDia($nrodoc,new date($fecha)); - if(preg_match('/^13/',$novedad->novedades[0]->codigo)) - { - $color='#009999'; - }elseif(preg_match('/^15||^2606\/83$||^Adp$||^Com$||^Coms$||^FES\/REL$||^Fran$||^Grem$/',$novedad->novedades[0]->codigo)) - { - $color='#CC66CC'; - }elseif(preg_match('/^14||^Asa$||^Pap$||^Sus$/',$novedad->novedades[0]->codigo)) - { - $color='#FF9900'; - }elseif(preg_match('/^10||^Pat$/',$novedad->novedades[0]->codigo)) - { - $color='#00CC33'; - }elseif(preg_match('/^9/',$novedad->novedades[0]->codigo)) - { - $color='#3366FF'; - } - $tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>$color)); - } - } - if($horas[31]['ASN']==0 && $horas[31]['tipo']=='no laborable') - { - $tabla_info_adentro->updateCellAttributes(11,0,array('bgcolor'=>'lightblue')); - } - - $tabla_info_adentro->updateCellAttributes(10,1,array('colspan'=>'3')); - $tabla_info_adentro->updateCellAttributes(10,4,array('colspan'=>'3')); - $tabla_info_adentro->updateCellAttributes(10,7,array('colspan'=>'3')); + $HTML_Mensaje =& new HTML_Mensaje("alerta","El agente no tiene credencial asignada en este mes",450); + $m->addStyleSheet($HTML_Mensaje->getCSS()); + $row = array($HTML_Mensaje); +} - $tabla_info_adentro->updateCellAttributes(11,1,array('colspan'=>'3')); - $tabla_info_adentro->updateCellAttributes(11,4,array('colspan'=>'3')); - $tabla_info_adentro->updateCellAttributes(11,7,array('colspan'=>'3')); +$t->addRow($row,array('valign'=>'top')); +if($agente->getReduccionHoraria()) +{ + $IMG_reduccion_horaria =& new MECON_HTML_Image('../../images/servicios_bandas_red_hs.gif', + '', + array('alt'=>'Agente con reducción horaria')); + $row = array('','',$IMG_reduccion_horaria->toHtml()); }else { - $row = array('Días Trabajados','','','','Días Laborables Trabajados','','','Promedio','',''); - $tabla_info_adentro->addRow($row,array('class'=>'titulo_columna', - 'background'=>'../../images/servicios_bandas_borde_tabla.gif')); - $tabla_info_adentro->updateCellAttributes(10,0,array('colspan'=>'4')); - $tabla_info_adentro->updateCellAttributes(10,4,array('colspan'=>'3')); - $tabla_info_adentro->updateCellAttributes(10,7,array('colspan'=>'3')); - - $row = array($agente->getDiasTrabajados(),'','','', - $agente->getDiasLaborablesTrabajados(),'','', - $agente->getPromedioMensual(),'',''); - - $tabla_info_adentro->addRow($row,array('class'=>'txt_fila', - 'bgcolor'=>'#FFFFFF')); - $tabla_info_adentro->updateCellAttributes(11,0,array('colspan'=>'4')); - $tabla_info_adentro->updateCellAttributes(11,4,array('colspan'=>'3')); - $tabla_info_adentro->updateCellAttributes(11,7,array('colspan'=>'3')); - + $row = array('','',''); } +$t->addRow($row,array('valign'=>'top','align'=>'center')); +$t->updateCellAttributes(2,0,array('rowspan'=>2)); +/* Esta fila contiene las referencias */ +$row_cuerpo = array($t); +$m->addBodyContent($t); -$tabla_info = new HTML_Table(array('width'=>'760', - 'border'=>'0', - 'cellspacing'=>'0', - 'cellpadding'=>'0', - 'bgcolor'=>'#003366')); - -$tabla_info->addRow(array($tabla_info_adentro)); -$m->addBodyContent($tabla_info); $m->addBodyContent('
'); /* Comienzo a mostrar los links con las notas, accesos y salidas autorizadas*/ -$tabla_notas = new HTML_Table(array('width'=>'760', +$tabla_notas =& new HTML_Table(array('width'=>'760', 'border'=>'0', 'cellspacing'=>'0', 'cellpadding'=>'0', 'bgcolor'=>'#003366')); -$imagen_notas = new MECON_HTML_Image('../../images/servicios_notas.gif', +$IMG_notas =& new MECON_HTML_Image('../../images/servicios_nota.gif', '', array('width'=>'24','height'=>'24','valign'=>'top')); -$imagen_anterior = new MECON_HTML_Image('../../images/servicios_bandas_anterior.gif', +$IMG_anterior =& new MECON_HTML_Image('../../images/servicios_bandas_anterior.gif', '', array('width'=>'16','height'=>'10','valign'=>'top')); -$imagen_visto = new MECON_HTML_Image('../../images/servicios_visto.gif', +$IMG_visto =& new MECON_HTML_Image('../../images/servicios_visto.gif', '', array('width'=>'16','height'=>'10','valign'=>'top')); -$link_volver = new MECON_HTML_LINK('./','volver'); +$link_volver =& new MECON_HTML_LINK('./','volver'); + +$MES_ACTUAL =& new date(); +$FECHA_PEDIDA =& new date($fecha); +if($MES_ACTUAL->getmonth()==$FECHA_PEDIDA->getmonth() && $MES_ACTUAL->getyear()==$FECHA_PEDIDA->getyear()) +{ + $sql = "Select fecha from FechaActualizacion where tipoActualizacion='DIARIO' + order by fecha desc limit 1"; + $result = $DB->query($sql); + + if (DB::isError($result)) + trigger_error($result->getMessage("Query mal hecho"), E_USER_ERROR); + + $FECHA_ACTUALIZACION=$result->fetchRow(DB_FETCHMODE_ASSOC); + + $FECHA=preg_replace('/(\d\d\d\d)(\d\d)(\d\d)(.*)/','$3/$2/$1',$FECHA_ACTUALIZACION['fecha']); + $row = array( $IMG_notas,'Nota: Fecha de actualización '.$FECHA, + $IMG_anterior->toHtml().' '.$link_volver->toHtml(), + $IMG_visto->toHtml()." accesos", + $IMG_visto->toHtml()." salidas autorizadas"); +}else +{ + $row = array( '','', + $IMG_anterior->toHtml().' '.$link_volver->toHtml(), + $IMG_visto->toHtml()." accesos", + $IMG_visto->toHtml()." salidas autorizadas"); + +} -$row = array($imagen_notas,'Nota: Fecha de último cruce con las novedades',$imagen_anterior->toHtml().' '.$link_volver->toHtml(),$imagen_visto->toHtml().' accesos',$imagen_visto->toHtml().' salidas autorizadas'); - $tabla_notas->addRow($row,array('class'=>'imprimir_bandas', 'bgcolor'=>'#FFFFFF')); -$tabla_notas->updateCellAttributes(0,0,array('width'=>'24','height'=>'24','class'=>'aclarar')); -$tabla_notas->updateCellAttributes(0,1,array('width'=>'370','height'=>'30','class'=>'aclarar')); -$tabla_notas->updateCellAttributes(0,2,array('width'=>'130','class'=>'imprimir_bandas')); -$tabla_notas->updateCellAttributes(0,3,array('width'=>'130','class'=>'imprimir_bandas')); -$tabla_notas->updateCellAttributes(0,4,array('width'=>'130','class'=>'imprimir_bandas')); +$tabla_notas->updateCellAttributes(0,0,array( 'width'=>'25','height'=>'30', + 'align'=>'left','class'=>'aclarar')); +$tabla_notas->updateCellAttributes(0,1,array( 'width'=>'325', + 'align'=>'right','class'=>'aclarar')); +$tabla_notas->updateCellAttributes(0,2,array( 'width'=>'145', + 'align'=>'right','class'=>'imprimir_bandas')); +$tabla_notas->updateCellAttributes(0,3,array( 'width'=>'80', + 'align'=>'right','class'=>'imprimir_bandas')); +$tabla_notas->updateCellAttributes(0,4,array( 'width'=>'125', + 'align'=>'right','class'=>'imprimir_bandas')); $m->addBodyContent($tabla_notas); $m->display();