Example #1
0
 public function exportarExcelHorarios($datos)
 {
     $oLRrhh = new LRrhh();
     //        $nDias = intval(date("t", $datos["mes"]));
     $mes = mktime(0, 0, 0, $datos["mes"], 1, $datos["anio"]);
     setlocale('LC_ALL', 'fr_FR');
     $nDias = date("t", $mes);
     $fechax = $nDias . "/" . $datos["mes"] . "/" . $datos["anio"];
     $empleados = $oLRrhh->empleadoXarea($datos["idSedeEmpresaArea"], $fechax, $datos["cboTipoContrato"], $datos["idSubArea"]);
     // Se recupera a todos los empleados que pertenecen a una area especifica
     $cboTESA = $oLRrhh->listaTurnoSedeEmpresaArea($datos);
     // Se recupera los turnos que pertenecen al area de una sede
     $leyendaTESA = $cboTESA;
     $datosEmpleadoProg = $oLRrhh->listaTurnoProgramado("", $datos["iIdProgramacionpersonal"], $datos["mes"], $datos["anio"], 'empleadoProgramado', "", $datos["idSEACC"], $datos["cboTipoContrato"]);
     // se recupera a todos los empleados que ya fueron programados, tambien puede retornar null
     $idEmpleadoProgramado = $datosEmpleadoProg;
     /* =========================== Set datos a la cabecera =========================== */
     $arrayCabecera = array(0 => "CODIGO", 1 => "EMPLEADOS PROGRAMADOS");
     /* ========================== 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] = $empleados[$i][0];
                     $arrayFilas[$filx + $r][1] = $empleados[$i][1] . " " . $empleados[$i][2] . " " . $empleados[$i][3];
                     //------------------------------------------------------
                     $datosEmpleados[$filx + $r][0] = $empleados[$i][0];
                     $datosEmpleados[$filx + $r][1] = $datosEmpleadoProg[$j][2];
                     //------------------------------------------------------
                     $r++;
                     $filx = $filx + $r - 1;
                     if ($r == $datosEmpleadoProg[$j][1]) {
                         for ($p = 0; $p < $r; $p++) {
                             unset($datosEmpleadoProg[$j - $p]);
                         }
                         break;
                     }
                 } else {
                     $arrayFilas[$filx][0] = $empleados[$i][0];
                     $arrayFilas[$filx][1] = $empleados[$i][1] . " " . $empleados[$i][2] . " " . $empleados[$i][3];
                     //------------------------------------------------------
                     $datosEmpleados[$filx][0] = $empleados[$i][0];
                     $datosEmpleados[$filx][1] = "1";
                     //$datosEmpleadoProg[$j][2];
                     //------------------------------------------------------
                 }
             }
         } else {
             $arrayFilas[$filx][0] = $empleados[$i][0];
             $arrayFilas[$filx][1] = $empleados[$i][1] . " " . $empleados[$i][2] . " " . $empleados[$i][3];
             // es el nombre del empleado
             //------------------------------------------------------
             $datosEmpleados[$filx][0] = $empleados[$i][0];
             $datosEmpleados[$filx][1] = "1";
             //------------------------------------------------------
         }
         $filx++;
     }
     $arrayHidden = array(0 => "false", 1 => "false");
     $arrayAling = array(0 => "left", 1 => "left");
     //        $arrayCombo=array();
     /* =================  fin Set datos para las columnas fijas ====================== */
     //        print_r($datosEmpleados);
     /* =============================   Manejo de fechas   ============================ */
     $diasSem = array('Monday' => 'L', 'Tuesday' => 'M', 'Wednesday' => 'M', 'Thursday' => 'J', 'Friday' => 'V', 'Saturday' => 'S', 'Sunday' => 'D');
     $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));
     $mes1 = mktime(0, 0, 0, $datos["mes"], 1, $datos["anio"]);
     setlocale('LC_ALL', 'fr_FR');
     $númeroDeDias = date("t", $mes1);
     /* =============================   Fin Manejo de fechas   ============================ */
     /* ============  Set de la cabecera de las horas programadas existentes  ============= */
     $diaMes = 0;
     for ($coln = 2; $coln < $númeroDeDias + 2; $coln++) {
         if ($diaMes < $ultimoDia) {
             $diaMes++;
             $diaInicial = date("l", mktime(0, 0, 0, $mes, $diaMes, $anio));
             $arrayCabecera[$coln] = $diasSem[$diaInicial] . " - " . $diaMes;
             // es la cabecera
             $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";
     //================================================================================================
     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"]);
                     $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";
         }
         for ($coln = 2; $coln < $númeroDeDias + 2; $coln++) {
             if ($diaMes < $ultimoDia) {
                 $diaMes++;
                 if ($flag == "NO") {
                     $arrayFilas[$i][$coln] = "";
                 } 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];
                                         ////// aqui modifique para que se note el turno Jorge Hernandez
                                         unset($turnoProgramado[$n]);
                                         break;
                                     } else {
                                         if ($cboTESA[$s][0] == $turnoProgramado[$n][2] && $turnoProgramado[$n][2] != null) {
                                             $arrayFilas[$i][$coln] = "";
                                         }
                                     }
                                     //----------------------------------------------------------------
                                     if ($turnoProgramado[$n][2] == null) {
                                         $arrayFilas[$i][$coln] = "";
                                         //es nulo
                                         unset($turnoProgramado[$n]);
                                         break;
                                     }
                                     //---------------------------------------------------------------
                                 }
                                 break;
                             } else {
                                 $arrayFilas[$i][$coln] = "";
                             }
                         }
                     } else {
                         $arrayFilas[$i][$coln] = "";
                     }
                 }
             }
         }
         $arrayFilas[$i][$númeroDeDias + 3] = $totalHoras;
     }
     //================================================================================================
     /* ===============  Fin set datos de las horas programadas existentes  =============== */
     $arrayCabecera[$númeroDeDias + 3] = "Horas Totales";
     $arrayHidden[$númeroDeDias + 3] = "false";
     $arrayAling[$númeroDeDias + 3] = "center";
     $descSucursal = $datos["descSucursal"];
     $descArea = $datos["descArea"];
     require_once '../../cvista/rrhh/cronogramaHorariosExcel.php';
 }