public function listTablaHorarios($datos) { /* * Permisos */ $oLRrhh = new LRrhh(); $fechasP = $oLRrhh->fechaProgramacion($datos["iIdProgramacionpersonal"]); $btnGrabarComoHidden = true; if (isset($_SESSION["permiso_formulario_servicio"][232]["GRABAR_HOR_PROG_MEN_EMP"]) && $_SESSION["permiso_formulario_servicio"][232]["GRABAR_HOR_PROG_MEN_EMP"] == 1) { $btnGrabarComoHidden = false; } $btnTotalHorasComoHidden = true; if (isset($_SESSION["permiso_formulario_servicio"][232]["VER_HORAS_PROG_MEN_EMP"]) && $_SESSION["permiso_formulario_servicio"][232]["VER_HORAS_PROG_MEN_EMP"] == 1) { $btnTotalHorasComoHidden = false; } $btnAgregarOtroTurnoComoHidden = true; if (isset($_SESSION["permiso_formulario_servicio"][232]["AGREGAR_OTRO_TURNO_PROG_MEN_EMP"]) && $_SESSION["permiso_formulario_servicio"][232]["AGREGAR_OTRO_TURNO_PROG_MEN_EMP"] == 1) { $btnAgregarOtroTurnoComoHidden = false; } /* * Proceso */ $o_TablaHtmlx = new tablaDHTMLX(); $m = intval($datos["mes"]); $y = $datos["anio"]; $mes = mktime(0, 0, 0, $m, 1, $y); $nDias = intval(date("t", $mes)); $fechax = $nDias . "/" . $datos["mes"] . "/" . $datos["anio"]; /* Lista de personas que pertenecen al area seleccionada y además estan con un tipo de contrato vigente hasta este mes */ $empleados = $oLRrhh->empleadoXarea($datos["idSedeEmpresaArea"], $fechax, $datos["cboTipoContrato"], $datos["idSubArea"]); // Se recupera a todos los empleados que pertenecen a una area especifica /* Lista por Turnos con codigo estandarizado y areas */ $cboTESA = $oLRrhh->listaTurnoSedeEmpresaArea($datos); // Se recupera los turnos que pertenecen al area de una sede /* Se recupera a todos los empleados que ya fueron programados, tambien puede retornar null */ $datosEmpleadoProg = $oLRrhh->listaTurnoProgramado("", $datos["iIdProgramacionpersonal"], $datos["mes"], $datos["anio"], 'empleadoProgramado', "", $datos["idSEACC"], $datos["cboTipoContrato"]); $idEmpleadoProgramado = $datosEmpleadoProg; /* =========================== Set datos a la cabecera =========================== */ $arrayCabecera = array(0 => "Accion", 1 => "Hr.", 2 => "+", 3 => "idEmpleado", 4 => "EMPLEADOS A PROGRAMAR", 5 => "Total de Horas"); /* ========================== fin datos cabecera ================================= */ /* ================= Set datos para las columnas fijas =========================== */ $arrayFilas = array(); $datosEmpleados = array(); $filx = 0; foreach ($empleados as $i => $value) { if ($datosEmpleadoProg) { $r = 0; foreach ($datosEmpleadoProg as $j => $val) { if ($empleados[$i][0] == $datosEmpleadoProg[$j][0]) { $arrayFilas[$filx + $r][0] = "../../../imagen/icono/editar.png ^ Editar"; $arrayFilas[$filx + $r][1] = "../../../imagen/icono/timer.png ^ Ver"; $arrayFilas[$filx + $r][2] = "../../../imagen/icono/abrir16.png ^ Agregar otro turno"; $arrayFilas[$filx + $r][3] = $empleados[$i][0]; $arrayFilas[$filx + $r][4] = $empleados[$i][1] . " " . $empleados[$i][2] . " " . $empleados[$i][3]; //--$arrayFilas[$filx+$r][5]="0.00"; //este dato se inserta mas abajo //------------------------------------------------------ $datosEmpleados[$filx + $r][0] = $empleados[$i][0]; $datosEmpleados[$filx + $r][1] = $datosEmpleadoProg[$j][2]; $numProg = $datosEmpleadoProg[$j][1]; //------------------------------------------------------ $r++; $filx = $filx + $r - 1; if ($r == $numProg) { for ($p = 0; $p < $r; $p++) { if ($p > 0) { $arrayFilas[$filx - $p][2] = "../../../imagen/icono/no_add.png ^ ..."; } unset($datosEmpleadoProg[$j - $p]); } break; } } else { $arrayFilas[$filx][0] = "../../../imagen/icono/grabar.png ^ Grabar"; $arrayFilas[$filx][1] = "../../../imagen/icono/timer.png ^ Ver"; $arrayFilas[$filx][2] = "../../../imagen/icono/abrir16.png ^ Agregar otro turno"; $arrayFilas[$filx][3] = $empleados[$i][0]; $arrayFilas[$filx][4] = $empleados[$i][1] . " " . $empleados[$i][2] . " " . $empleados[$i][3]; //--$arrayFilas[$filx][5]="0.00"; //este dato se inserta mas abajo //------------------------------------------------------ $datosEmpleados[$filx][0] = $empleados[$i][0]; $datosEmpleados[$filx][1] = "1"; //$datosEmpleadoProg[$j][2]; //------------------------------------------------------ } } } else { $arrayFilas[$filx][0] = "../../../imagen/icono/grabar.png ^ Grabar"; $arrayFilas[$filx][1] = "../../../imagen/icono/timer.png ^ Ver"; $arrayFilas[$filx][2] = "../../../imagen/icono/abrir16.png ^ Agregar otro turno"; $arrayFilas[$filx][3] = $empleados[$i][0]; $arrayFilas[$filx][4] = $empleados[$i][1] . " " . $empleados[$i][2] . " " . $empleados[$i][3]; //--$arrayFilas[$filx][5]="0.00"; //este dato se inserta mas abajo //------------------------------------------------------ $datosEmpleados[$filx][0] = $empleados[$i][0]; $datosEmpleados[$filx][1] = "1"; //------------------------------------------------------ } $filx++; } $arrayTamano = array(0 => "45", 1 => "30", 2 => "30", 3 => "20", 4 => "220", 5 => "80"); $arrayTipo = array(0 => "img", 1 => "img", 2 => "img", 3 => "ro", 4 => "ro", 5 => "ro"); $arrayCursor = array(0 => "pointer", 1 => "pointer", 2 => "pointer", 3 => "default", 4 => "default", 5 => "default"); $arrayHidden = array(0 => $btnGrabarComoHidden, 1 => $btnTotalHorasComoHidden, 2 => $btnAgregarOtroTurnoComoHidden, 3 => "true", 4 => "false", 5 => "false"); $arrayAling = array(0 => "center", 1 => "center", 2 => "center", 3 => "left", 4 => "left", 5 => "center"); $arrayCombo = array(); /* ================= fin Set datos para las columnas fijas ====================== */ // print_r($datosEmpleados); /* ============================= Manejo de fechas ============================ */ $diasSem = array('Monday' => 'Lunes', 'Tuesday' => 'Martes', 'Wednesday' => 'Miercoles', 'Thursday' => 'Jueves', 'Friday' => 'Viernes', 'Saturday' => 'Sabado', 'Sunday' => 'Domingo'); $fecha = getdate(time()); if ($datos["mes"] != "") { $mes = $datos["mes"]; } else { $mes = $fecha['mon']; } if ($datos["anio"] != "") { $anio = $datos["anio"]; } else { $anio = $fecha['year']; } $fecha = mktime(0, 0, 0, $mes, 1, $anio); $fechaInicioMes = mktime(0, 0, 0, $mes, 1, $anio); $fechaInicioMes = date("w", $fechaInicioMes); $ultimoDia = date('t', $fecha); $númeroDeDias = intval(date("t", $mes)); /* ============================= Fin Manejo de fechas ============================ */ /* ============ Set de la cabecera de las horas programadas existentes ============= */ $diaMes = 0; for ($coln = 6; $coln < $númeroDeDias + 6; $coln++) { if ($diaMes < $ultimoDia) { $diaMes++; $diaInicial = date("l", mktime(0, 0, 0, $mes, $diaMes, $anio)); $arrayCabecera[$coln] = $diasSem[$diaInicial] . " - " . $diaMes; $arrayTamano[$coln] = "130"; $arrayTipo[$coln] = "co"; $arrayCursor[$coln] = "pointer"; $arrayHidden[$coln] = "false"; $arrayAling[$coln] = "center"; } } /* ========== Fin set de la cabecera de las horas programadas existentes ============ */ /* ================== set datos de las horas programadas existentes ================= */ $turnoProgramado = array(); $flag = "NO"; $totalHoras = "0.0"; //================================================================================================ // print_r($datosEmpleados); foreach ($datosEmpleados as $i => $valor) { $diaMes = 0; if ($idEmpleadoProgramado) { //verificar que haya empleados programados foreach ($idEmpleadoProgramado as $j => $valx) { if ($datosEmpleados[$i][0] == $idEmpleadoProgramado[$j][0]) { $oLRrhh = new LRrhh(); $turnoProgramado = $oLRrhh->listaTurnoProgramado($idEmpleadoProgramado[$j][0], $datos["iIdProgramacionpersonal"], $datos["mes"], $datos["anio"], 'listaTurnoProgramado', $datosEmpleados[$i][1], $datos["idSEACC"], $datos["cboTipoContrato"]); if ($turnoProgramado && $turnoProgramado[0][2] == null) { $arrayFilas[$i][0] = "../../../imagen/icono/adicionar.png ^ Adicionar"; } $flag = "SI"; unset($idEmpleadoProgramado[$j]); break; } else { $turnoProgramado = null; $flag = "NO"; } } $totalHoras = "0"; if ($flag == "SI") { foreach ($turnoProgramado as $r => $value) { $totalHoras = $totalHoras + $value[5]; } } } else { $totalHoras = "0"; } $cadenaHid = ""; for ($coln = 6; $coln < $númeroDeDias + 6; $coln++) { if ($diaMes < $ultimoDia) { $diaMes++; if ($flag == "NO") { $arrayFilas[$i][$coln] = "Doble Click"; } else { if ($turnoProgramado) { foreach ($turnoProgramado as $n => $value) { if ($turnoProgramado[$n][4] == $diaMes) { foreach ($cboTESA as $s => $val) { if ($cboTESA[$s][0] == $turnoProgramado[$n][2]) { $arrayFilas[$i][$coln] = "( " . $cboTESA[$s][0] . " ) " . $cboTESA[$s][1]; if ($cadenaHid == "") { $cadenaHid .= $turnoProgramado[$n][0] . "_" . $diaMes . "_" . $turnoProgramado[$n][5]; } else { $cadenaHid .= "|" . $turnoProgramado[$n][0] . "_" . $diaMes . "_" . $turnoProgramado[$n][5]; } unset($turnoProgramado[$n]); break; } else { if ($cboTESA[$s][0] == $turnoProgramado[$n][2] && $turnoProgramado[$n][2] != null) { $arrayFilas[$i][$coln] = "Doble Click"; } } //---------------------------------------------------------------- if ($turnoProgramado[$n][2] == null) { $arrayFilas[$i][$coln] = "Doble Click"; //es nulo if ($cadenaHid == "") { $cadenaHid .= $turnoProgramado[$n][0] . "_" . $diaMes . "_" . $turnoProgramado[$n][5]; } else { $cadenaHid .= "|" . $turnoProgramado[$n][0] . "_" . $diaMes . "_" . $turnoProgramado[$n][5]; } unset($turnoProgramado[$n]); break; } //--------------------------------------------------------------- } break; } else { $arrayFilas[$i][$coln] = "Doble Click"; } } } else { $arrayFilas[$i][$coln] = "Doble Click"; } } } } $arrayFilas[$i][$númeroDeDias + 6] = $cadenaHid; //la concadenacion del idTurnoSedeEmpresaArea y dia $arrayFilas[$i][$númeroDeDias + 7] = $totalHoras; $arrayFilas[$i][$númeroDeDias + 8] = $datosEmpleados[$i][1]; //numero de programacioones: 1 o 2 $arrayFilas[$i][5] = $totalHoras; } //================================================================================================ /* =============== Fin set datos de las horas programadas existentes =============== */ /* ========================= Cabecera de los hidden ocultos ========================= */ $arrayCabecera[$númeroDeDias + 6] = "idTSEADia"; $arrayTamano[$númeroDeDias + 6] = "100"; $arrayTipo[$númeroDeDias + 6] = "ro"; $arrayCursor[$númeroDeDias + 6] = "default"; $arrayHidden[$númeroDeDias + 6] = "true"; $arrayAling[$númeroDeDias + 6] = "center"; $arrayCabecera[$númeroDeDias + 7] = "totalHoras"; $arrayTamano[$númeroDeDias + 7] = "50"; $arrayTipo[$númeroDeDias + 7] = "ro"; $arrayCursor[$númeroDeDias + 7] = "default"; $arrayHidden[$númeroDeDias + 7] = "true"; $arrayAling[$númeroDeDias + 7] = "center"; $arrayCabecera[$númeroDeDias + 8] = "nroProg"; $arrayTamano[$númeroDeDias + 8] = "50"; $arrayTipo[$númeroDeDias + 8] = "ro"; $arrayCursor[$númeroDeDias + 8] = "default"; $arrayHidden[$númeroDeDias + 8] = "true"; $arrayAling[$númeroDeDias + 8] = "center"; /* ==================== Fin de la cabecera de los hidden ocultos =================== */ /* ================================================================================= */ /* =============================== Llenado del Combo =============================== */ $arrayCombo = array(); if ($cboTESA) { foreach ($cboTESA as $i => $value) { $arrayCombo[$i][0] = $value[0] . "|" . $value[2]; $arrayCombo[$i][1] = "( " . $value[0] . " ) " . $value[1]; } } else { $arrayCombo[0][0] = ""; $arrayCombo[0][1] = "No hay data"; } /* ============================ Fin Llenado del Combo ============================ */ /* ================================================================================ */ return $o_TablaHtmlx->generaTablaFullCombo($arrayCabecera, $arrayFilas, $arrayTamano, $arrayTipo, $arrayCursor, $arrayHidden, $arrayAling, $arrayCombo); }