function ListadoConsulta($strNumDesde, $strNumDesdeAnio, $strNumHasta, $strNumHastaAnio, $datFechaAltaDesde, $datFechaAltaHasta, $datFechaMaxCierreDesde, $datFechaMaxCierreHasta, $optTipoAccion, $optEstado, $strOficina, $strDepartamento)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     require_once '../CAD/clsCADUsu.php';
     $clsCADUsu = new clsCADUsu();
     //extraigo la oficina y departamento del usuario
     $OficinaDepartamento = $clsCADUsu->ObtieneOficinaDep_usuario($_SESSION['usuario']);
     $codOficina = explode('.', $OficinaDepartamento['strOficina']);
     $codOficina = $codOficina[0];
     $codDepartamento = $OficinaDepartamento['lngDepartamento'];
     $permiso = $clsCADUsu->ObtienePermisoUsuario($_SESSION['strUsuario']);
     $strSQL = "SELECT DISTINCT A.lngId AS Numero,A.strAccionCorrPrev,T.strDescripcion,DATE_FORMAT(A.datFechaAlta,'%d/%m/%Y') AS datFechaAlta,OA.strDescripcion as Origen, A.strNumDocOrigen,DATE_FORMAT(A.datFechaMaxCierre,'%d/%m/%Y') AS datFechaMaxCierre,concat(E.strNombre, ' ',E.strApellidos) as Responsable\r\n                from tbaccioncorrprev A, tbempleados E, tbtipoaccioncp T, tborigenaccioncp OA, tboficinas O\r\n\t\t\t\t\t where A.lngTipoAccion = T.lngId and A.lngIdTipoOrigen = OA.lngId and E.lngIdEmpleado = A.lngIdResponsable ";
     //        //veo si tiene permiso 2 o no
     //        if($permiso !== '2'){
     //            //por defecto filtro por oficina y departamento del usuario
     //            if((!isset($datFechaAltaDesde) || $datFechaAltaDesde === '') &&
     //               (!isset($datFechaAltaHasta) || $datFechaAltaHasta === '') &&
     //               (!isset($datFechaMaxCierreDesde) || $datFechaMaxCierreDesde === '') &&
     //               (!isset($datFechaMaxCierreHasta) || $datFechaMaxCierreHasta === '') &&
     //               (!isset($strOficina) || $strOficina === '') &&
     //               (!isset($strDepartamento) || $strDepartamento === '') &&
     //               (!isset($optTipoAccion) || $optTipoAccion === '')){
     //                $strSQL = $strSQL . " AND (A.strCodigoOficina = '$codOficina' OR A.lngIdDepartamento = $codDepartamento)";
     //            }
     //        }
     //si no hubiese datos de fechas se filtra por los del año actual
     if ($datFechaAltaDesde == '' && $datFechaAltaHasta == '') {
         date_default_timezone_set('Europe/Madrid');
         $datFechaAltaDesde = '01/01/' . date("Y");
     }
     if ($datFechaAltaDesde != '') {
         $strSQL = $strSQL . " AND A.datFechaAlta >= '" . fecha_to_DATETIME($datFechaAltaDesde) . "'";
     }
     if ($datFechaAltaHasta != '') {
         $strSQL = $strSQL . " AND A.datFechaAlta <= '" . fecha_to_DATETIME_F($datFechaAltaHasta) . "'";
     }
     //        if($datFechaAltaDesde=='' && $datFechaAltaHasta==''){
     //            date_default_timezone_set('Europe/Madrid');
     //            $datFechaAltaDesde='01/01/'.date ("Y");
     //        }
     if ($datFechaMaxCierreDesde != '') {
         $strSQL = $strSQL . " AND A.datFechaMaxCierre >= '" . fecha_to_DATETIME($datFechaMaxCierreDesde) . "'";
     }
     if ($datFechaMaxCierreHasta != '') {
         $strSQL = $strSQL . "  AND A.datFechaMaxCierre <= '" . fecha_to_DATETIME_F($datFechaMaxCierreHasta) . "'";
     }
     if ($strOficina != '' && $strDepartamento != '') {
         $strSQL = $strSQL . " AND (A.strCodigoOficina = '" . $strOficina . "' OR A.lngIdDepartamento = " . $strDepartamento . ")";
     } else {
         if ($strOficina != '') {
             $strSQL = $strSQL . " AND A.strCodigoOficina = '" . $strOficina . "'";
         } else {
             if ($strDepartamento != '') {
                 $strSQL = $strSQL . " AND A.lngIdDepartamento = " . $strDepartamento . "";
             }
         }
     }
     if ($optTipoAccion == '1') {
         //Pdte. Analisis
         $strSQL = $strSQL . " AND A.lngTipoAccion=1";
     } else {
         if ($optTipoAccion == '0') {
             //Pdte. cierre
             $strSQL = $strSQL . " AND A.lngTipoAccion=0 ";
         }
     }
     if ($optEstado != 3) {
         if ($optEstado == 4) {
             //Sin Verificar
             $strSQL = $strSQL . " AND A.lngVerificacion=0";
         } else {
             if ($optEstado == 5) {
                 //Verif. Sin Cerrar
                 $strSQL = $strSQL . " AND A.lngVerificacion=1 AND A.estadoCierre=0";
             } else {
                 if ($optEstado == 6) {
                     //Verificadas
                     $strSQL = $strSQL . " AND A.lngVerificacion=1";
                 } else {
                     if ($optEstado == 7) {
                         //Cerradas
                         $strSQL = $strSQL . " AND A.estadoCierre<>0";
                     } else {
                         if ($optEstado == 8) {
                             //Cerradas Fuera
                             $strSQL = $strSQL . " AND A.estadoCierre=2";
                         }
                     }
                 }
             }
         }
     }
     $strSQL = $strSQL . " ORDER BY A.datFechaAlta DESC, A.strAccionCorrPrev DESC";
     logger('traza', 'clsCADacp.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['mapeo'] . ', SesionID: ' . session_id() . " clsCADacp->ListadoConsulta() : SQL: " . $strSQL);
     //para el filtro de Nº Reclamaciones como por consulta es complicado de resolver lo hago al guardar los datos
     //hago la consulta que llevo en este momento (con o sin fechas)
     $db = new Db();
     $db->conectar($_SESSION['mapeo']);
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     //ahora guardo en un array los datos de la consulta
     //al guardar ahora compruebo si tengo datos en los filtros de reclamacion y antes de guardar compruebo si
     //cumple esos filtros, sino no los guardo, sino hay filtro guardo la consulta tal cual
     if ($stmt) {
         $this->filtrarArray($arcDoc, $stmt, $strNumDesde, $strNumDesdeAnio, $strNumHasta, $strNumHastaAnio);
         //devuelvo el listado
         return $arcDoc;
     } else {
         //no hay datos
         return '';
     }
 }
 function ObteneListaCons($strNumDesde, $strNumDesdeAnio, $strNumHasta, $strNumHastaAnio, $datAltaDesde, $datAltaHasta, $strProductos2, $optEstado, $strOficina, $strDepartamento)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     require_once '../general/funcionesGenerales.php';
     require_once '../CAD/clsCADUsu.php';
     $clsCADUsu = new clsCADUsu();
     //extraigo la oficina y departamento del usuario
     $OficinaDepartamento = $clsCADUsu->ObtieneOficinaDep_usuario($_SESSION['usuario']);
     $codOficina = explode('.', $OficinaDepartamento['strOficina']);
     $codOficina = $codOficina[0];
     $codDepartamento = $OficinaDepartamento['lngDepartamento'];
     $permiso = $clsCADUsu->ObtienePermisoUsuario($_SESSION['strUsuario']);
     //	logger('traza','clsCAD.php-', 'clsCADRecl->ObtieneLista('.$strUsuario.','.$strNumDesde.','.$strNumDesdeAnio.','.$strNumHasta.','.$strNumHastaAnio.','.$datAltaDesde.','.$datAltaHasta.','.$strProductos2.','.$optEstado.')');
     $strSQL = "SELECT N.lngId as Numero, N.strPropuestaMejora,DATE_FORMAT(N.datFechaAlta,'%d/%m/%Y') AS datFechaAlta, Left(N.strReqIncumplido, 50) as ReqIncumplido, \r\n                D.strDescripcion as Departamento, N.lngAccion ,N.strContrato\r\n                from tbpropmej N,tbdepartamentos D\r\n                Where N.lngIdDepartamento = D.lngId AND N.lngStatus=1";
     //veo si tiene permiso 2 o no
     if ($permiso !== '2') {
         //por defecto filtro por oficina y departamento del usuario
         if ((!isset($datAltaDesde) || $datAltaDesde === '') && (!isset($datAltaHasta) || $datAltaHasta === '') && (!isset($strOficina) || $strOficina === '') && (!isset($strDepartamento) || $strDepartamento === '') && (!isset($strProductos2) || $strProductos2 === '')) {
             $strSQL = $strSQL . " AND (N.strCodigoOficina = '{$codOficina}' OR N.lngIdDepartamento = {$codDepartamento})";
         }
     }
     //si no hubiese datos de fechas se filtra por los del año actual
     if ($datAltaDesde == '' && $datAltaHasta == '') {
         date_default_timezone_set('Europe/Madrid');
         $datAltaDesde = '01/01/' . date("Y");
     }
     //veo si hay datos en las fechas y añado los filtros
     if ($datAltaDesde != '') {
         $strSQL = $strSQL . " AND N.datFechaAlta >= '" . fecha_to_DATETIME($datAltaDesde) . "'";
     }
     if ($datAltaHasta != '') {
         $strSQL = $strSQL . " AND N.datFechaAlta <= '" . fecha_to_DATETIME_F($datAltaHasta) . "'";
     }
     if ($strOficina != '' && $strDepartamento != '') {
         $strSQL = $strSQL . " AND (N.strCodigoOficina = '" . $strOficina . "' OR N.lngIdDepartamento = " . $strDepartamento . ")";
     } else {
         if ($strOficina != '') {
             $strSQL = $strSQL . " AND N.strCodigoOficina = '" . $strOficina . "'";
         } else {
             if ($strDepartamento != '') {
                 $strSQL = $strSQL . " AND N.lngIdDepartamento = " . $strDepartamento . "";
             }
         }
     }
     if ($optEstado == 1) {
         //Pdte. Analisis
         $strSQL = $strSQL . " AND ISNULL(N.datFechaAceptadoResponsable) ";
     } else {
         if ($optEstado == 2) {
             //Pdte. cierre
             $strSQL = $strSQL . " AND NOT ISNULL(N.datFechaAceptadoResponsable) AND N.lngCerrado = 0 ";
         } else {
             if ($optEstado == 3) {
                 //Cierre
                 $strSQL = $strSQL . " AND N.lngCerrado = 1 ";
             }
         }
     }
     if ($strProductos2 != '') {
         $strSQL = $strSQL . " AND N.strContrato = '" . $strProductos2 . "' ";
     }
     $strSQL = $strSQL . " ORDER BY N.datFechaAlta DESC, N.strPropuestaMejora DESC";
     //para el filtro de Nº Reclamaciones como por consulta es complicado de resolver lo hago al guardar los datos
     //hago la consulta que llevo en este momento (con o sin fechas)
     $db = new Db();
     $db->conectar($_SESSION['mapeo']);
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     //ahora guardo en un array los datos de la consulta
     //al guardar ahora compruebo si tengo datos en los filtros de reclamacion y antes de guardar compruebo si
     //cumple esos filtros, sino no los guardo, sino hay filtro guardo la consulta tal cual
     if ($stmt) {
         $this->filtrarArray($arcDoc, $stmt, $strNumDesde, $strNumDesdeAnio, $strNumHasta, $strNumHastaAnio);
         //devuelvo el listado
         return $arcDoc;
     } else {
         //no hay datos
         return '';
     }
 }
 private function generarDatosSQL($Id, $IdPunto)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     switch ($IdPunto) {
         //PUNTO 1
         //se recogen los datos del Punto 29 de la revision Id anterior, si los hay
         //sino se escribe un texto
         case '1':
             $strSQL = "\r\n                            SELECT D.texto\r\n                            FROM tbrevpuntosdatos D\r\n                            WHERE D.IdRevision = " . ($Id - 1) . "\r\n                            AND D.IdPunto = 29\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             $respuesta = 'Sin puntos pendientes del acta anterior';
             if ($stmt) {
                 $row = mysql_fetch_array($stmt);
                 if (!empty($row['texto'])) {
                     $respuesta = $row['texto'];
                 }
             }
             break;
             //PUNTO 2
             //se recogen los datos del Punto 2 de la revision Id anterior, si los hay
             //sino se escribe un texto
         //PUNTO 2
         //se recogen los datos del Punto 2 de la revision Id anterior, si los hay
         //sino se escribe un texto
         case '2':
             $strSQL = "\r\n                            SELECT D.texto\r\n                            FROM tbrevpuntosdatos D\r\n                            WHERE D.IdRevision = " . ($Id - 1) . "\r\n                            AND D.IdPunto = 2\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             $respuesta = 'Sin cambios que podrían afectar al sistema del acta anterior';
             if ($stmt) {
                 $row = mysql_fetch_array($stmt);
                 if (!empty($row['texto'])) {
                     $respuesta = $row['texto'];
                 }
             }
             break;
             //PUNTO 3
             //se recogen los datos del Punto 3 de la revision Id anterior, si los hay
             //sino se escribe un texto
         //PUNTO 3
         //se recogen los datos del Punto 3 de la revision Id anterior, si los hay
         //sino se escribe un texto
         case '3':
             $strSQL = "\r\n                            SELECT D.texto\r\n                            FROM tbrevpuntosdatos D\r\n                            WHERE D.IdRevision = " . ($Id - 1) . "\r\n                            AND D.IdPunto = 3\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             $respuesta = 'Sin revisión de políticas de gestión del acta anterior';
             if ($stmt) {
                 $row = mysql_fetch_array($stmt);
                 if (!empty($row['texto'])) {
                     $respuesta = $row['texto'];
                 }
             }
             break;
             //PUNTO 4
             //ESTO NO ESTA BIEN, CREO, SE HA PREGUNTADO A JM 22/11/2016
             //se recogen los datos del Punto 3 de la revision Id anterior, si los hay
             //sino se escribe un texto
         //PUNTO 4
         //ESTO NO ESTA BIEN, CREO, SE HA PREGUNTADO A JM 22/11/2016
         //se recogen los datos del Punto 3 de la revision Id anterior, si los hay
         //sino se escribe un texto
         case '4':
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $row = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT CASE F.Tipo WHEN 'D' THEN 'Debilidad' WHEN 'A' THEN 'Amenaza' WHEN 'F' THEN 'Fortaleza' WHEN 'O' THEN 'Oportunidad' END AS Tipo, F.Factor, F.Clasificacion, DATE_FORMAT(F.Fecha,'%d/%m/%Y') AS Fecha\r\n                            FROM tbfactores F\r\n                            WHERE F.Fecha BETWEEN '" . fecha_to_DATETIME($row['Desde']) . "' AND '" . fecha_to_DATETIME_F($row['Hasta']) . "'\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             $resultado = '';
             if ($stmt) {
                 while ($row = mysql_fetch_array($stmt)) {
                     $reg = '';
                     foreach ($row as $propiedad => $valor) {
                         if (!is_numeric($propiedad)) {
                             $reg[$propiedad] = $valor;
                         }
                     }
                     $resultado[] = $reg;
                 }
             }
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = "Datos de los factores en el análisis de contexto<br/><table>";
                 $respuesta = $respuesta . "<tr><td><b>Tipo</b></td><td><b>Factor</b></td><td><b>Clasificación</b></td><td><b>Fecha</b></td></tr>";
                 for ($i = 0; $i < count($resultado); $i++) {
                     $respuesta = $respuesta . "<tr>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Tipo'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Factor'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Clasificacion'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Fecha'] . "</td></tr>";
                 }
                 $respuesta = $respuesta . "</table><br/><br/>";
             }
             break;
             //PUNTO 5
             //1º Aquí deberíamos mostrar todas las partes interesadas que tengan alguna valoración en el período seleccionado.
             //El resultado debería ser el Id y el nombre de la parte interesada y las valoraciones del período
         //PUNTO 5
         //1º Aquí deberíamos mostrar todas las partes interesadas que tengan alguna valoración en el período seleccionado.
         //El resultado debería ser el Id y el nombre de la parte interesada y las valoraciones del período
         case '5':
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $row = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //ahora las PI con las valoraciones
             $strSQL = "\r\n                            SELECT PI.IdPI, PI.Parte, V.responsabilidad, V.influencia, V.cercania, V.dependencia, \r\n                            V.representacion, V.total, CONCAT(E.strNombre,' ',E.strApellidos) AS Empleado, DATE_FORMAT(V.Fecha,'%d/%m/%Y') AS Fecha\r\n                            FROM tbpi_pi_interesadas PI, tbpi_valor V, tbempleados E\r\n                            WHERE PI.IdPI=V.IdParte\r\n                            AND V.Empleado=E.lngIdEmpleado\r\n                            AND V.Fecha BETWEEN '" . fecha_to_DATETIME($row['Desde']) . "' AND '" . fecha_to_DATETIME_F($row['Hasta']) . "'\r\n                            AND V.borrado = 1\r\n                           ";
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             $respuesta = '';
             if ($stmt) {
                 while ($row = mysql_fetch_array($stmt)) {
                     $reg = '';
                     foreach ($row as $propiedad => $valor) {
                         if (!is_numeric($propiedad)) {
                             $reg[$propiedad] = $valor;
                         }
                     }
                     $resultado[] = $reg;
                 }
             }
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = "Datos de las valoraciones de las partes Interesadas<br/><table>";
                 $respuesta = $respuesta . "<tr><td>Id</td><td><b>Parte</b></td><td><b>Responsabilidad</b></td><td><b>Influencia</b></td><td><b>Cercania</b></td><td><b>Dependencia</b></td><td><b>Representación</b></td><td><b>Total</b></td><td><b>Empleado</b></td><td><b>Fecha</b></td></tr>";
                 for ($i = 0; $i < count($resultado); $i++) {
                     $respuesta = $respuesta . "<tr>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['IdPI'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Parte'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['responsabilidad'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['influencia'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['cercania'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['dependencia'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['representacion'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['total'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Empleado'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Fecha'] . "</td></tr>";
                 }
                 $respuesta = $respuesta . "</table>";
             }
             //2º todas las partes interesadas que tengan acciones dadas de alta en el período seleccionado
             $strSQL = "\r\n                            SELECT PI.IdPI, PI.Parte, A.Compromisos\r\n                            FROM tbpi_pi_interesadas PI, tbpi_acciones A\r\n                            WHERE PI.IdPI=A.IdParte\r\n                            AND A.Fecha BETWEEN '" . fecha_to_DATETIME($row['Desde']) . "' AND '" . fecha_to_DATETIME_F($row['Hasta']) . "'\r\n                            AND A.borrado = 1\r\n                           ";
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             if ($stmt) {
                 while ($row = mysql_fetch_array($stmt)) {
                     $reg = '';
                     foreach ($row as $propiedad => $valor) {
                         if (!is_numeric($propiedad)) {
                             $reg[$propiedad] = $valor;
                         }
                     }
                     $resultado[] = $reg;
                 }
             }
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = $respuesta . "Datos de las acciones de las partes Interesadas<br/><table>";
                 $respuesta = $respuesta . "<tr><td>Id</td><td><b>Parte</b></td><td><b>Compromisos</b></td></tr>";
                 for ($i = 0; $i < count($resultado); $i++) {
                     $respuesta = $respuesta . "<tr>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['IdPI'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Parte'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Compromisos'] . "</td></tr>";
                 }
                 $respuesta = $respuesta . "</table>";
             }
             break;
             //PUNTO 6
             //Aquí deberíamos mostrar encuestas dadas de alta y aprobadas, y en cada una de ellas el numero de respuestas y lo que han respondido.
         //PUNTO 6
         //Aquí deberíamos mostrar encuestas dadas de alta y aprobadas, y en cada una de ellas el numero de respuestas y lo que han respondido.
         case '6':
             require_once '../CN/clsCNEnc.php';
             $clsCNEnc = new clsCNEnc();
             $clsCNEnc->setStrBD($_SESSION['mapeo']);
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $fecha = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //ahora los datos de las encuestas
             $strSQL = "\r\n                            SELECT E.lngId, E.strNombre, DATE_FORMAT(E.datFecha,'%d/%m/%Y') AS datFecha, concat_ws(' ', E1.strNombre, E1.strApellidos) as responsable, E.numPreguntas, E.lngEstado, E.datFechaIni, E.datFechaFin\r\n                            FROM cabeceraencuesta E, tbempleados E1\r\n                            WHERE E.lngIdEmpleado = E1.lngIdEmpleado AND E.lngEstado = 1\r\n                            AND E.datFechaAprobado BETWEEN '" . fecha_to_DATETIME($fecha['Desde']) . "' AND '" . fecha_to_DATETIME_F($fecha['Hasta']) . "'\r\n                           ";
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             $resultado = '';
             if ($stmt) {
                 while ($row = mysql_fetch_array($stmt)) {
                     $reg = '';
                     foreach ($row as $propiedad => $valor) {
                         if (!is_numeric($propiedad)) {
                             $reg[$propiedad] = $valor;
                         }
                     }
                     $resultado[] = $reg;
                 }
             }
             //ahora añadimos las preguntas con el numero de respuestas
             $encuestas = '';
             if (is_array($resultado)) {
                 for ($i = 0; $i < count($resultado); $i++) {
                     $strSQL = "\r\n                                    SELECT DISTINCT L.lngNumPregunta,L.lngTipo,L.strPreguntas\r\n                                    FROM lineasencuesta L, tbresultados_esp E, tbrespuestas RE\r\n                                    WHERE L.lngIdEncuesta = " . $resultado[$i]['lngId'] . "\r\n                                    AND L.lngIdEncuesta = E.lngIdEncuesta\r\n                                    AND L.lngNumPregunta = E.lngNumPregunta\r\n                                    AND RE.lngIdEncuesta = E.lngIdEncuesta\r\n                                    AND RE.lngIdRespuesta = E.lngNumResp\r\n                                    AND RE.datFecha BETWEEN '" . fecha_to_DATETIME($fecha['Desde']) . "' AND '" . fecha_to_DATETIME_F($fecha['Hasta']) . "'\r\n                                   ";
                     $db->conectar($this->getStrBD());
                     $stmt = $db->ejecutar($strSQL);
                     $db->desconectar();
                     if (!$stmt) {
                         return false;
                     }
                     $respuestasEncuesta = '';
                     while ($row = mysql_fetch_array($stmt)) {
                         $reg = '';
                         foreach ($row as $propiedad => $valor) {
                             if (!is_numeric($propiedad)) {
                                 $reg[$propiedad] = $valor;
                             }
                         }
                         $respuestasEncuesta[] = $reg;
                     }
                     //ahora preparo un array con los calculos sobre estos datos
                     $datosEncuesta['IdEncuesta'] = $resultado[$i]['lngId'];
                     $datosEncuesta['Nombre'] = $resultado[$i]['strNombre'];
                     $datosEncuesta['datos'] = '';
                     if (is_array($respuestasEncuesta)) {
                         for ($ii = 0; $ii < count($respuestasEncuesta); $ii++) {
                             $lngIdEncuesta = $resultado[$i]['lngId'];
                             $lngNumPregunta = $respuestasEncuesta[$ii]['lngNumPregunta'];
                             $desde = $fecha['Desde'];
                             $hasta = $fecha['Hasta'];
                             if ($respuestasEncuesta[$ii]['lngTipo'] === '1' || $respuestasEncuesta[$ii]['lngTipo'] === '4') {
                                 //extraigo los resultados de esta pregunta tipo 1 o 4
                                 $listadoPregunta = $clsCNEnc->listadoTipo1($lngIdEncuesta, $lngNumPregunta, $desde, $hasta);
                                 $preguntaNueva['Pregunta'] = $respuestasEncuesta[$ii]['strPreguntas'];
                                 $preguntaNueva['Respuesta'] = $listadoPregunta;
                                 $preguntaNueva['Tipo'] = '1';
                                 $datosEncuesta['datos'][] = $preguntaNueva;
                             } else {
                                 if ($respuestasEncuesta[$ii]['lngTipo'] === '2') {
                                     //extraigo los resultados de esta pregunta tipo 2
                                     $listadoPregunta = $clsCNEnc->listadoTipo2($lngIdEncuesta, $lngNumPregunta, $desde, $hasta);
                                     //var_dump($listadoPregunta);die;
                                     $preguntaNueva['Pregunta'] = $respuestasEncuesta[$ii]['strPreguntas'];
                                     $preguntaNueva['Respuesta'] = $listadoPregunta;
                                     $preguntaNueva['Tipo'] = '2';
                                     $datosEncuesta['datos'][] = $preguntaNueva;
                                 } else {
                                     if ($respuestasEncuesta[$ii]['lngTipo'] === '3') {
                                         //extraigo los resultados de esta pregunta tipo 3
                                         //listado de opciones
                                         $listado = $clsCNEnc->listadoOpcionesPreguntaTipo3($lngIdEncuesta, $lngNumPregunta);
                                         $datos = '';
                                         for ($ii2 = 1; $ii2 <= count($listado); $ii2++) {
                                             $listadoPregunta = $clsCNEnc->listadoTipo3($lngIdEncuesta, $lngNumPregunta, $ii2, $listado[$ii2]['max'], $desde, $hasta);
                                             $opciones['opcion'] = $listado[$ii2]['descripcion'];
                                             $opciones['resultado'] = $listadoPregunta;
                                             $opciones['max'] = $listado[$ii2]['max'];
                                             $datos[] = $opciones;
                                         }
                                         $preguntaNueva['Pregunta'] = $respuestasEncuesta[$ii]['strPreguntas'];
                                         $preguntaNueva['Respuesta'] = $datos;
                                         $preguntaNueva['Tipo'] = '3';
                                         $datosEncuesta['datos'][] = $preguntaNueva;
                                     }
                                 }
                             }
                         }
                         //ahora presento los datos de los campos "Nombre Cliente" y "Observaciones"
                         $listadoSugerencias = $clsCNEnc->Sugerencias($resultado[$i]['lngId'], $fecha['Desde'], $fecha['Hasta']);
                         $datosEncuesta['Sugerencias'] = $listadoSugerencias;
                         $encuestas[] = $datosEncuesta;
                     }
                 }
             }
             //echo "voila";
             //var_dump($encuestas[0]['datos'][2]['Respuesta'][0]);die;
             //ahora vamos a generar el html que se insertará, se hara un cuadro por cada encuesta
             $respuesta = "<p>Listado de las encuestas aprobadas</p><br/>";
             if (is_array($encuestas)) {
                 for ($i = 0; $i < count($encuestas); $i++) {
                     $respuesta = $respuesta . "<h3>Nº: " . $encuestas[$i]['IdEncuesta'] . " - Nombre: " . $encuestas[$i]['Nombre'] . "</h3>";
                     //extraigo el numero de envio (tabla tbencuestasenvios)
                     $numeroEnvios = $clsCNEnc->EncuestaEnvios($encuestas[$i]['IdEncuesta']);
                     $respuesta = $respuesta . "Número de respuestas: " . count($encuestas[$i]['Sugerencias']) . "<br/><br/>";
                     $respuesta = $respuesta . "Número de Envíos: " . $numeroEnvios . "<br/><br/>";
                     //ahora recorro las preguntas
                     for ($k = 0; $k < count($encuestas[$i]['datos']); $k++) {
                         $respuesta = $respuesta . "<b>" . ($k + 1) . " - " . $encuestas[$i]['datos'][$k]['Pregunta'] . "</b><br/>";
                         //ahora veo que tipo de pregunta es y preparo las respuesta
                         if ($encuestas[$i]['datos'][$k]['Tipo'] === '1') {
                             //listo todas las respuestas
                             for ($z = 0; $z < count($encuestas[$i]['datos'][$k]['Respuesta']); $z++) {
                                 $respuesta = $respuesta . "<li>" . $encuestas[$i]['datos'][$k]['Respuesta'][$z]['strValor'] . "</li>";
                             }
                             $respuesta = $respuesta . "<br/><br/>";
                         } else {
                             if ($encuestas[$i]['datos'][$k]['Tipo'] === '2') {
                                 $respuesta = $respuesta . "<table>";
                                 for ($z = 0; $z < count($encuestas[$i]['datos'][$k]['Respuesta']); $z++) {
                                     if ($encuestas[$i]['datos'][$k]['Respuesta'][$z]['Descripcion'] !== '') {
                                         $respuesta = $respuesta . "<tr><td>" . $encuestas[$i]['datos'][$k]['Respuesta'][$z]['Descripcion'] . "</td>";
                                         $respuesta = $respuesta . "<td>" . $encuestas[$i]['datos'][$k]['Respuesta'][$z]['Cantidad'] . "</td></tr>";
                                     }
                                 }
                                 $respuesta = $respuesta . "</table><br/><br/>";
                             } else {
                                 if ($encuestas[$i]['datos'][$k]['Tipo'] === '3') {
                                     for ($z = 0; $z < count($encuestas[$i]['datos'][$k]['Respuesta']); $z++) {
                                         $respuesta = $respuesta . "<b>" . $encuestas[$i]['datos'][$k]['Respuesta'][$z]['opcion'] . "</b>";
                                         $ordinales = '';
                                         $cantidades = '';
                                         //ordinales
                                         $respuesta = $respuesta . "<table><tr>";
                                         $respuesta = $respuesta . "<td>Valoración</td>";
                                         for ($zz = 0; $zz <= $encuestas[$i]['datos'][$k]['Respuesta'][$z]['max']; $zz++) {
                                             $valoracion = $zz;
                                             if ($zz === 0) {
                                                 $valoracion = 'SC';
                                             }
                                             $respuesta = $respuesta . "<td>" . $valoracion . "</td>";
                                         }
                                         $respuesta = $respuesta . "</tr><tr>";
                                         $respuesta = $respuesta . "<td>Cantidad</td>";
                                         for ($zz = 0; $zz <= $encuestas[$i]['datos'][$k]['Respuesta'][$z]['max']; $zz++) {
                                             $respuesta = $respuesta . "<td>" . $encuestas[$i]['datos'][$k]['Respuesta'][$z]['resultado'][$zz] . "</td>";
                                         }
                                         $respuesta = $respuesta . "</tr></table><br/><br/>";
                                     }
                                 }
                             }
                         }
                     }
                     //por ultimo preparo la tabla de las sugerencias
                     $respuesta = $respuesta . "<b>Sugerencias</b><br/>";
                     $respuesta = $respuesta . "<table><tr>";
                     $respuesta = $respuesta . "<td>Nombre</td><td>Sugerencia</td></tr>";
                     for ($t = 0; $t < count($encuestas[$i]['Sugerencias']); $t++) {
                         //var_dump($encuestas[$i]['Sugerencias'][$t]);die;
                         $respuesta = $respuesta . "<tr><td>" . $encuestas[$i]['Sugerencias'][$t]['txtNombre'] . "</td>";
                         $respuesta = $respuesta . "<td>" . $encuestas[$i]['Sugerencias'][$t]['txtObservaciones'] . "</td></tr>";
                     }
                     $respuesta = $respuesta . "</tr></table><br/><br/>";
                 }
             }
             break;
             //PUNTO 7
             //Aquí podríamos sacar todos los aspectos que están VIGENTES (creo que son los que no tienen fechaEliminado) indicando el nombre del aspecto la ubicación y la fecha de alta.
         //PUNTO 7
         //Aquí podríamos sacar todos los aspectos que están VIGENTES (creo que son los que no tienen fechaEliminado) indicando el nombre del aspecto la ubicación y la fecha de alta.
         case '7':
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $fecha = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //listo los aspectos ambientales
             $strSQL = "\r\n                            SELECT A.aspecto, A.ubicacion, DATE_FORMAT(A.fechaAlta,'%d/%m/%Y') AS fechaAlta\r\n                            FROM tbmaaspectos A\r\n                            WHERE A.fechaAlta BETWEEN '" . fecha_to_DATETIME($fecha['Desde']) . "' AND '" . fecha_to_DATETIME_F($fecha['Hasta']) . "'\r\n                            AND (ISNULL(A.fechaEliminado) OR A.fechaEliminado = '0000-00-00 00:00:00') \r\n                           ";
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             if (!$stmt) {
                 return false;
             }
             $resultado = '';
             while ($row = mysql_fetch_array($stmt)) {
                 $reg = '';
                 foreach ($row as $propiedad => $valor) {
                     if (!is_numeric($propiedad)) {
                         $reg[$propiedad] = $valor;
                     }
                 }
                 $resultado[] = $reg;
             }
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = $respuesta . "Datos de los aspectos ambientales<br/><table>";
                 $respuesta = $respuesta . "<tr><td><b>Aspecto</b></td><td><b>Ubicación</b></td><td><b>Fecha Alta</b></td></tr>";
                 for ($i = 0; $i < count($resultado); $i++) {
                     $respuesta = $respuesta . "<tr>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['aspecto'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['ubicacion'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['fechaAlta'] . "</td></tr>";
                 }
                 $respuesta = $respuesta . "</table>";
             }
             break;
             //PUNTO 8
             //Riesgos y oportunidades  PENDIENTE
         //PUNTO 8
         //Riesgos y oportunidades  PENDIENTE
         case '8':
             break;
             //PUNTO 9
             //Listado de seguimiento de Objetivos
         //PUNTO 9
         //Listado de seguimiento de Objetivos
         case '9':
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $fecha = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //listo los aspectos ambientales
             $strSQL = "\r\n                            SELECT O.lngId, O.txtDescripcion, D.strDescripcion,\r\n                            DATE_FORMAT(O.datFechaAlta,'%d/%m/%Y') AS datFechaAlta,\r\n                            DATE_FORMAT(O.datFechaConsecucion,'%d/%m/%Y') AS datFechaConsecucion, O.lngEstado, O.lngInd\r\n                            FROM tbobjetivos O, tbdepartamentos D\r\n                            WHERE D.lngId = O.lngIdDepartamento\r\n                            AND O.datFechaAlta <= '" . fecha_to_DATETIME_F($fecha['Hasta']) . "'\r\n                            AND O.datFechaConsecucion >= '" . fecha_to_DATETIME($fecha['Desde']) . "'\r\n                           ";
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             //echo $strSQL;die;
             if (!$stmt) {
                 return false;
             }
             $resultado = '';
             while ($row = mysql_fetch_array($stmt)) {
                 $reg = '';
                 foreach ($row as $propiedad => $valor) {
                     if (!is_numeric($propiedad)) {
                         $reg[$propiedad] = $valor;
                     }
                 }
                 $resultado[] = $reg;
             }
             //var_dump($resultado);die;
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = $respuesta . "Datos de los aspectos ambientales<br/><table>";
                 $respuesta = $respuesta . "<tr><td><b>Aspecto</b></td><td><b>Ubicación</b></td><td><b>Fecha Alta</b></td><td><b>Fecha Consecución</b></td></tr>";
                 for ($i = 0; $i < count($resultado); $i++) {
                     $respuesta = $respuesta . "<tr>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['txtDescripcion'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['strDescripcion'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['datFechaAlta'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['datFechaConsecucion'] . "</td></tr>";
                 }
                 $respuesta = $respuesta . "</table>";
             }
             break;
             //PUNTO 10
             //Aquí mostraremos todas las mediciones de indicadores que tengan fecha dentro del período indicado
             //https://www.qualidad.es/qualidad1/vista/IndicSegMed.php?id=28
         //PUNTO 10
         //Aquí mostraremos todas las mediciones de indicadores que tengan fecha dentro del período indicado
         //https://www.qualidad.es/qualidad1/vista/IndicSegMed.php?id=28
         case '10':
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $fecha = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //ahora listo todos los indicadores que tengan mediciones en este periodo
             $strSQL = "\r\n                            SELECT I.lngIndicador, I.strNomIndicador, DATE_FORMAT(I.datFecha,'%d/%m/%Y') AS datFecha, DATE_FORMAT(I.datFechaVenci,'%d/%m/%Y') AS datFechaVenci, I.strDepartamento,\r\n                            CONCAT(E.strNombre, ' ', E.strApellidos) AS Empleado, I.strUsuario, I.strProceso, I.strFichProceso,\r\n                            I.strDescripcion, I.strNombreA, I.strNombreB, I.strNombreC, I.strOperando1, I.strOperando2,\r\n                            I.strOperando3, I.strOperacion, I.strOperacion1, I.lngValorObj, I.lngValorMin, I.strPeriodicidad\r\n                            FROM tbdefinindi I, tbempleados E\r\n                            WHERE I.strUsuario=E.lngIdEmpleado\r\n                           ";
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             //echo $strSQL;die;
             if (!$stmt) {
                 return false;
             }
             $resultado = '';
             while ($row = mysql_fetch_array($stmt)) {
                 $reg = '';
                 foreach ($row as $propiedad => $valor) {
                     if (!is_numeric($propiedad)) {
                         $reg[$propiedad] = $valor;
                     }
                 }
                 $resultado[] = $reg;
             }
             $respuesta = '';
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = $respuesta . "Datos del Desempeño de los procesos y conformidad del producto o servicio<br/>";
                 for ($ii = 0; $ii < count($resultado); $ii++) {
                     //ahora saco los datos de las mediciones de este indicador que esten dentro del periodo indicado
                     $strSQL = "\r\n                                    SELECT F.lngMedicion,CONCAT(E.strNombre , ' ' , E.strApellidos) AS Empleado,F.lngOperando1, F.lngOperando2, lngOperando3, \r\n                                    DATE_FORMAT(F.datFecha,'%d/%m/%Y') AS datFecha,F.lngValorObj,\r\n                                    F.lngValorMin , F.resultado, F.correcta, F.strObservaciones\r\n                                    FROM tbmedicionindi F, tbempleados E, tbdefinindi D, tbusuarios U\r\n                                    WHERE F.lngIndicador = D.lngIndicador AND U.strUsuario = F.strUsuario\r\n                                    AND U.lngIdEmpleado = E.lngIdEmpleado AND F.lngIndicador = " . $resultado[$ii]['lngIndicador'] . "\r\n                                    AND F.datFecha BETWEEN '" . fecha_to_DATETIME($fecha['Desde']) . "' AND '" . fecha_to_DATETIME_F($fecha['Hasta']) . "'\r\n                                   ";
                     //echo $strSQL;die;
                     $db->conectar($this->getStrBD());
                     $stmt = $db->ejecutar($strSQL);
                     $db->desconectar();
                     if (!$stmt) {
                         return false;
                     }
                     $resultadoDatosIndicadorMediciones = '';
                     while ($row = mysql_fetch_array($stmt)) {
                         $reg = '';
                         foreach ($row as $propiedad => $valor) {
                             if (!is_numeric($propiedad)) {
                                 $reg[$propiedad] = $valor;
                             }
                         }
                         $resultadoDatosIndicadorMediciones[] = $reg;
                     }
                     //preparar la tabla por cada indicador
                     if (is_array($resultadoDatosIndicadorMediciones)) {
                         $respuesta = $respuesta . "<p>Nº: <b>" . $resultado[$ii]['lngIndicador'] . " - Nombre: <b>" . $resultado[$ii]['strNomIndicador'] . "</b></p>";
                         //indico los nombres de OP1, OP2 y OP3
                         $strNombreA = '';
                         if ($resultado[$ii]['strOperando1'] === 'Operando A') {
                             $strNombreA = $resultado[$ii]['strNombreA'];
                         } else {
                             if ($resultado[$ii]['strOperando1'] === 'Operando B') {
                                 $strNombreA = $resultado[$ii]['strNombreB'];
                             } else {
                                 if ($resultado[$ii]['strOperando1'] === 'Operando C') {
                                     $strNombreA = $resultado[$ii]['strNombreC'];
                                 }
                             }
                         }
                         $strNombreB = '';
                         if ($resultado[$ii]['strOperando2'] === 'Operando A') {
                             $strNombreB = $resultado[$ii]['strNombreA'];
                         } else {
                             if ($resultado[$ii]['strOperando2'] === 'Operando B') {
                                 $strNombreB = $resultado[$ii]['strNombreB'];
                             } else {
                                 if ($resultado[$ii]['strOperando2'] === 'Operando C') {
                                     $strNombreB = $resultado[$ii]['strNombreC'];
                                 }
                             }
                         }
                         $strNombreC = '';
                         if ($resultado[$ii]['strOperando3'] === 'Operando A') {
                             $strNombreC = $resultado[$ii]['strNombreA'];
                         } else {
                             if ($resultado[$ii]['strOperando3'] === 'Operando B') {
                                 $strNombreC = $resultado[$ii]['strNombreB'];
                             } else {
                                 if ($resultado[$ii]['strOperando3'] === 'Operando C') {
                                     $strNombreC = $resultado[$ii]['strNombreC'];
                                 }
                             }
                         }
                         $respuesta = $respuesta . "<table>";
                         $respuesta = $respuesta . "<tr>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 5%;background: #BDC2C4;\\'>Nº Med</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 30%;background: #BDC2C4;\\'>Usuario</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 10%;background: #BDC2C4;\\'>" . $strNombreA . "</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 10%;background: #BDC2C4;\\'>" . $strNombreB . "</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 10%;background: #BDC2C4;\\'>" . $strNombreC . "</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 10%;background: #BDC2C4;\\'>Fecha</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 5%;background: #BDC2C4;\\'>Objetivo</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 5%;background: #BDC2C4;\\'>Referencia</th>";
                         $respuesta = $respuesta . "<th class=\\'medicionTxt\\' style=\\'width: 10%;background: #BDC2C4;\\'>Resultado</th>";
                         $respuesta = $respuesta . "</tr>";
                         for ($i = 0; $i < count($resultadoDatosIndicadorMediciones); $i++) {
                             //compruebo si esta dentro del rango OK (naranja), si es menos de ValorMin (Rojo) y ValorObj (Verde)
                             $resultado = (double) round($resultadoDatosIndicadorMediciones[$i]['resultado'], 4);
                             $valorObj = (double) $resultadoDatosIndicadorMediciones[$i]['lngValorObj'];
                             $valorRef = (double) $resultadoDatosIndicadorMediciones[$i]['lngValorMin'];
                             $comp = $valorObj - $valorRef;
                             //es creciente
                             $color = '#efe4a7';
                             if ($comp > 0) {
                                 if ($resultado > $valorObj) {
                                     //si es mayor es verde
                                     $color = '#9df39f';
                                 } else {
                                     if ($resultado < $valorRef) {
                                         //si es menor es rojo
                                         $color = '#e58282';
                                     }
                                 }
                             } else {
                                 if ($comp < 0) {
                                     if ($resultado < $valorObj) {
                                         //si es menor es verde
                                         $color = '#9df39f';
                                     } else {
                                         if ($resultado > $valorRef) {
                                             //si es mayor es rojo
                                             $color = '#e58282';
                                         }
                                     }
                                 }
                             }
                             //                                //veo si hay observaciones, si las hay las presento en un jquery.baloon
                             //                                $observaciones = '';
                             //                                if(trim($resultadoDatosIndicadorMediciones[$i]['strObservaciones']) !== ""){//he puesto trim porque hay registro con un espacio en blanco
                             //                                    $observaciones = "<a class=\'observaciones\' title=\'".$resultadoDatosIndicadorMediciones[$i]['strObservaciones']."\'>Ver</a>";
                             //                                }
                             $respuesta = $respuesta . "<tr>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['lngMedicion'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['Empleado'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['lngOperando1'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['lngOperando2'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['lngOperando3'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['datFecha'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['lngValorObj'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\'>" . $resultadoDatosIndicadorMediciones[$i]['lngValorMin'] . "</td>";
                             $respuesta = $respuesta . "<td class=\\'medicionTxt\\' style=\\'background:{$color};\\'>" . round($resultadoDatosIndicadorMediciones[$i]['resultado'], 4) . "</font></td>";
                             $respuesta = $respuesta . "</tr>";
                         }
                         $respuesta = $respuesta . "</table><br/><br/>";
                     }
                 }
             }
             break;
             //PUNTO 11
             //Aquí mostraríamos lo mismo que en el punto 10 pero de aquellos indicadores que están relacionados con un aspecto ambiental
             //PENDIENTE
         //PUNTO 11
         //Aquí mostraríamos lo mismo que en el punto 10 pero de aquellos indicadores que están relacionados con un aspecto ambiental
         //PENDIENTE
         case '11':
             break;
             //PUNTO 12
             //Las consultas de las NCs
         //PUNTO 12
         //Las consultas de las NCs
         case '12':
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $fecha = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //No Conformidades abiertas
             $strSQL = "\r\n                            SELECT N.lngId AS Numero, N.strNoConfServ,DATE_FORMAT(N.datFechaAlta,'%d/%m/%Y') AS datFechaAlta, N.strReqIncumplido AS ReqIncumplido, \r\n                            (D.strDescripcion) AS Departamento, N.lngAccion ,N.strContrato\r\n                            FROM tbnoconfserv N,tbdepartamentos D\r\n                            WHERE N.lngIdDepartamento = D.lngId AND N.lngStatus=1\r\n                            AND N.datFechaAlta BETWEEN '" . fecha_to_DATETIME($fecha['Desde']) . "' AND '" . fecha_to_DATETIME_F($fecha['Hasta']) . "'\r\n                           ";
             //echo $strSQL;die;
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             if (!$stmt) {
                 return false;
             }
             $resultado = '';
             while ($row = mysql_fetch_array($stmt)) {
                 $reg = '';
                 foreach ($row as $propiedad => $valor) {
                     if (!is_numeric($propiedad)) {
                         $reg[$propiedad] = $valor;
                     }
                 }
                 //ahora buscamos si tiene una accion correctiva asociada
                 $strSQL = "\r\n                                SELECT A.lngId, A.strAccionCorrPrev\r\n                                FROM tbaccioncorrprev A, tborigenaccioncp O\r\n                                WHERE O.lngId = A.lngIdTipoOrigen\r\n                                AND A.strNumDocOrigen = '" . $reg['strNoConfServ'] . "' AND A.lngIdTipoOrigen = 2\r\n                               ";
                 $stmt2 = $db->ejecutar($strSQL);
                 if ($stmt2) {
                     $row2 = mysql_fetch_array($stmt2);
                     $reg['NumACP'] = $row2['strAccionCorrPrev'];
                 } else {
                     $reg['NumACP'] = 'NO';
                 }
                 $resultado[] = $reg;
             }
             $db->desconectar();
             //var_dump($resultado);die;
             //para posteriores calculos
             $Num_NC_Abiertas = count($resultado);
             $respuesta = '<p>Datos de las No Conformidades</p><br/>';
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = $respuesta . "No Conformidades Abiertas<br/>";
                 $respuesta = $respuesta . "<table>";
                 $respuesta = $respuesta . "<tr>";
                 $respuesta = $respuesta . "<th>Número</th>";
                 $respuesta = $respuesta . "<th>Fecha Alta</th>";
                 $respuesta = $respuesta . "<th>Req. Incumplido</th>";
                 $respuesta = $respuesta . "<th>Area Afectada</th>";
                 $respuesta = $respuesta . "<th>Tipificación</th>";
                 $respuesta = $respuesta . "<th>Acción C/P</th>";
                 $respuesta = $respuesta . "</tr>";
                 for ($i = 0; $i < count($resultado); $i++) {
                     $respuesta = $respuesta . "<tr>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['strNoConfServ'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['datFechaAlta'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['ReqIncumplido'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Departamento'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['strContrato'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['NumACP'] . "</td>";
                     $respuesta = $respuesta . "</tr>";
                 }
                 $respuesta = $respuesta . "</table><br/><br/>";
             }
             //No Conformidades pendientes de cierre
             $strSQL = "\r\n                            SELECT N.lngId AS Numero, N.strNoConfServ,DATE_FORMAT(N.datFechaAlta,'%d/%m/%Y') AS datFechaAlta, N.strReqIncumplido AS ReqIncumplido, \r\n                            (D.strDescripcion) AS Departamento, N.lngAccion ,N.strContrato\r\n                            FROM tbnoconfserv N,tbdepartamentos D\r\n                            WHERE N.lngIdDepartamento = D.lngId AND N.lngStatus=1\r\n                            AND NOT ISNULL(N.datFechaAceptadoResponsable) AND N.lngCerrado = 0\r\n                            ORDER BY N.datFechaAlta\r\n                           ";
             //echo $strSQL;die;
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             if (!$stmt) {
                 return false;
             }
             $resultado = '';
             while ($row = mysql_fetch_array($stmt)) {
                 $reg = '';
                 foreach ($row as $propiedad => $valor) {
                     if (!is_numeric($propiedad)) {
                         $reg[$propiedad] = $valor;
                     }
                 }
                 //ahora buscamos si tiene una accion correctiva asociada
                 $strSQL = "\r\n                                SELECT A.lngId, A.strAccionCorrPrev\r\n                                FROM tbaccioncorrprev A, tborigenaccioncp O\r\n                                WHERE O.lngId = A.lngIdTipoOrigen\r\n                                AND A.strNumDocOrigen = '" . $reg['strNoConfServ'] . "' AND A.lngIdTipoOrigen = 2\r\n                               ";
                 $stmt2 = $db->ejecutar($strSQL);
                 if ($stmt2) {
                     $row2 = mysql_fetch_array($stmt2);
                     $reg['NumACP'] = $row2['strAccionCorrPrev'];
                 } else {
                     $reg['NumACP'] = 'NO';
                 }
                 $resultado[] = $reg;
             }
             $db->desconectar();
             //para posteriores calculos
             $Num_NC_Pend_Cerrar = count($resultado);
             //var_dump($resultado);die;
             if (!empty($resultado)) {
                 //es un array con el listado, preparo una tabla en html
                 $respuesta = $respuesta . "No Conformidades Pendientes de Cerrar<br/>";
                 $respuesta = $respuesta . "<table>";
                 $respuesta = $respuesta . "<tr>";
                 $respuesta = $respuesta . "<th>Número</th>";
                 $respuesta = $respuesta . "<th>Fecha Alta</th>";
                 $respuesta = $respuesta . "<th>Req. Incumplido</th>";
                 $respuesta = $respuesta . "<th>Area Afectada</th>";
                 $respuesta = $respuesta . "<th>Tipificación</th>";
                 $respuesta = $respuesta . "<th>Acción C/P</th>";
                 $respuesta = $respuesta . "</tr>";
                 for ($i = 0; $i < count($resultado); $i++) {
                     $respuesta = $respuesta . "<tr>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['strNoConfServ'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['datFechaAlta'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['ReqIncumplido'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['Departamento'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['strContrato'] . "</td>";
                     $respuesta = $respuesta . "<td>" . $resultado[$i]['NumACP'] . "</td>";
                     $respuesta = $respuesta . "</tr>";
                 }
                 $respuesta = $respuesta . "</table><br/><br/>";
             }
             //Nº NCs abiertas , pendientes de cerrar y % sobre total
             //calculo numero NCs totales
             $strSQL = "\r\n                            SELECT COUNT(*) AS Numero\r\n                            FROM tbnoconfserv N\r\n                            WHERE N.lngStatus = 1\r\n                           ";
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             if (!$stmt) {
                 return false;
             }
             $row = mysql_fetch_array($stmt);
             $NumeroNCs = $row['Numero'];
             //tiempo medio de cierre (nº de días desde apertura a cierre de cada NC / nº de NCs cerradas)
             //restar los campos datFechaConformeCalidad - datFechaAlta (dias)
             // campo lngCerrado=0 (abierto), lngCerrado=1 (cerrado)
             $strSQL = "\r\n                            SELECT N.lngId,N.datFechaConformeCalidad, N.datFechaAlta\r\n                            FROM tbnoconfserv N\r\n                            WHERE N.lngCerrado = 1\r\n                           ";
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             if (!$stmt) {
                 return false;
             }
             $resultado = '';
             while ($row = mysql_fetch_array($stmt)) {
                 $reg = '';
                 foreach ($row as $propiedad => $valor) {
                     if (!is_numeric($propiedad)) {
                         $reg[$propiedad] = $valor;
                     }
                 }
                 $resultado[] = $reg;
             }
             $mediaDias = 0;
             $sumaDias = 0;
             if (!empty($resultado)) {
                 for ($i = 0; $i < count($resultado); $i++) {
                     $cerrado = date_create($resultado[$i]['datFechaConformeCalidad']);
                     $abierto = date_create($resultado[$i]['datFechaAlta']);
                     $interval = date_diff($abierto, $cerrado);
                     $dif = $interval->format('%a');
                     $sumaDias = $sumaDias + $dif;
                 }
                 $mediaDias = round($sumaDias / count($resultado), 2);
             }
             //porcentaje de NCs tienen una AC.
             $strSQL = "\r\n                            SELECT COUNT(A.lngId) AS Cantidad\r\n                            FROM tbaccioncorrprev A\r\n                            WHERE A.lngIdTipoOrigen = 2\r\n                            AND A.lngStatus = 1\r\n                           ";
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             if (!$stmt) {
                 return false;
             }
             $row = mysql_fetch_array($stmt);
             $NumeroNCs_con_AC = $row['Cantidad'];
             //presento estos datos
             $respuesta = $respuesta . "<table>";
             $respuesta = $respuesta . "<tr><td>No Conformidades Abiertas</td><td>" . $Num_NC_Abiertas . "</td><td>" . round($Num_NC_Abiertas / $NumeroNCs * 100, 2) . " %</td></tr>";
             $respuesta = $respuesta . "<tr><td>No Conformidades Pendientes de Cerrar</td><td>" . $Num_NC_Pend_Cerrar . "</td><td>" . round($Num_NC_Pend_Cerrar / $NumeroNCs * 100, 2) . " %</td></tr>";
             $respuesta = $respuesta . "<tr><td>TOTAL No Conformidades</td><td>" . $NumeroNCs . "</td><td></td></tr>";
             $respuesta = $respuesta . "</table><br/>";
             $respuesta = $respuesta . "<table>";
             $respuesta = $respuesta . "<tr><td>Tiempo medio de Cierre</td><td>" . $mediaDias . " dias</td></tr>";
             $respuesta = $respuesta . "</table><br/>";
             $respuesta = $respuesta . "<table>";
             $respuesta = $respuesta . "<tr><td>No Conformidades tienen Acción C/P</td><td>" . $NumeroNCs_con_AC . "</td><td>" . $NumeroNCs . "</td><td>" . round($NumeroNCs_con_AC / $NumeroNCs * 100, 2) . " %</td></tr>";
             $respuesta = $respuesta . "</table><br/><br/>";
             break;
             //PUNTO 13
             //Quejas, sugerencias y reclamaciones
             //Quejas : lngTipologia=3 o 13 en tborigenaccioncp
             //Sugerencia : lngTipologia=2 o 12 en tborigenaccioncp
             //Felicitacion : lngTipologia=1 o 11 en tborigenaccioncp
         //PUNTO 13
         //Quejas, sugerencias y reclamaciones
         //Quejas : lngTipologia=3 o 13 en tborigenaccioncp
         //Sugerencia : lngTipologia=2 o 12 en tborigenaccioncp
         //Felicitacion : lngTipologia=1 o 11 en tborigenaccioncp
         case '13':
             //extraigo las fechas de la revision por el $Id
             $strSQL = "\r\n                            SELECT DATE_FORMAT(R.datFechaDesde,'%d/%m/%Y') AS Desde, DATE_FORMAT(R.datFechaHasta,'%d/%m/%Y') AS Hasta\r\n                            FROM tbrevisiones R\r\n                            WHERE R.lngId = {$Id}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $stmt = $db->ejecutar($strSQL);
             if ($stmt) {
                 $fecha = mysql_fetch_array($stmt);
             } else {
                 return false;
             }
             //Quejas
             //======
             //Quejas abiertas
             $strSQL = "\r\n                            SELECT R.lngId as Id, R.strReclamacion,DATE_FORMAT(R.datFechaAlta,'%d/%m/%Y') AS datFechaAlta,R.strEmpresa,R.strServAfect AS strNombreServicio, R.strDescripcion AS Causa,\r\n                            R.strTelefono2 AS Tipificacion, R.lngTipologia \r\n                            FROM tbreclamaciones R \r\n                            WHERE R.lngCerrado = 0 AND R.lngStatus = 1\r\n                            AND R.datFechaAlta BETWEEN '" . fecha_to_DATETIME($fecha['Desde']) . "' AND '" . fecha_to_DATETIME_F($fecha['Hasta']) . "'\r\n                           ";
             //echo $strSQL;die;
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             if (!$stmt) {
                 return false;
             }
             $resultado = '';
             while ($row = mysql_fetch_array($stmt)) {
                 $reg = '';
                 foreach ($row as $propiedad => $valor) {
                     if (!is_numeric($propiedad)) {
                         $reg[$propiedad] = $valor;
                     }
                 }
                 $resultado[] = $reg;
             }
             $db->desconectar();
             var_dump($resultado);
             die;
             break;
         default:
             //no es ninguno de los puntos, dev false
             return false;
     }
     //var_dump($respuesta);
     //ahora compruebo si existe este punto de esta revision
     //si es asi, actualizo los datos, sino lo inserto
     $strSQL = "\r\n                    SELECT D.Id\r\n                    FROM tbrevpuntosdatos D\r\n                    WHERE D.IdRevision = {$Id}\r\n                    AND D.IdPunto = {$IdPunto}\r\n                   ";
     logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
     $db->conectar($this->getStrBD());
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     if ($stmt) {
         $num = mysql_num_rows($stmt);
         if ($num > 0) {
             //actualizo los datos
             $strSQL = "\r\n                            UPDATE tbrevpuntosdatos D\r\n                            SET D.datosconsulta = '" . $respuesta . "'\r\n                            WHERE D.IdRevision = {$Id}\r\n                            AND D.IdPunto = {$IdPunto}\r\n                           ";
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             if ($stmt) {
                 return true;
             } else {
                 return false;
             }
         } else {
             //inserto un dato nuevo en la tabla "tbrevpuntosdatos"
             $strSQL = "\r\n                            INSERT INTO tbrevpuntosdatos (IdRevision, IdPunto, datosconsulta) VALUES\r\n                            ({$Id},{$IdPunto},'" . $respuesta . "')\r\n                           ";
             //echo $strSQL;die;
             logger('traza', 'clsCADSist.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADSist->generarDatosSQL()|| SQL : " . $strSQL);
             $db->conectar($this->getStrBD());
             $stmt = $db->ejecutar($strSQL);
             $db->desconectar();
             if ($stmt) {
                 return true;
             } else {
                 return false;
             }
         }
     } else {
         return false;
     }
 }
 function ObtieneLista($strUsuario, $strNumDesde, $strNumDesdeAnio, $strNumHasta, $strNumHastaAnio, $datAltaDesde, $datAltaHasta, $tipologiaRecl, $strTipologia, $strOficina, $strDepartamento)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     require_once '../general/funcionesGenerales.php';
     require_once '../CAD/clsCADUsu.php';
     $clsCADUsu = new clsCADUsu();
     logger('traza', 'clsCADRecl.php-', 'clsCADRecl->ObtieneLista()');
     //extraigo la oficina y departamento del usuario
     $OficinaDepartamento = $clsCADUsu->ObtieneOficinaDep_usuario($_SESSION['usuario']);
     $codOficina = explode('.', $OficinaDepartamento['strOficina']);
     $codOficina = $codOficina[0];
     $codDepartamento = $OficinaDepartamento['lngDepartamento'];
     $permiso = $clsCADUsu->ObtienePermisoUsuario($strUsuario);
     //Para llamara a la función hay que pasar 0-> Sí sólo queremos la visbilidad sobre los departamento, 1  si queremos la visibilidad sobre las oficinas
     //        $visibilidad = DameVisibilidad($strUsuario, 1);
     //echo $visibilidad;
     //echo "<br>";
     //        $strSQL = "SELECT R.lngId as Id, R.strReclamacion, DATE_FORMAT(R.datFechaAlta,'%d/%m/%Y') AS datFechaAlta,CONCAT(R.strClienteNombre,' ',R.strClienteApellidos) AS strNombreYApellidos, " .
     //                "LEFT(R.strDescripcion, 30) AS Causa,R.strEmpresa,R.strServAfect AS strNombreServicio, " .
     //                "CONCAT(ERecib.strNombre , ' ' , ERecib.strApellidos) AS RegistradoPor, IF(R.lngAccion=1,'Si','No') AS lngAccion,R.lngTipo,R.lngTipologia " .
     //                "FROM tbreclamaciones R, tbempleados ERecib, tbempleados EResp, tbusuarios U,tboficinas O " .
     //                "WHERE R.lngIdEmpleado = ERecib.lngIdEmpleado AND ";
     //
     //        if ($visibilidad <> NULL) {
     //            $strSQL = $strSQL . " (U.lngPermiso = 2 OR U.lngPermiso = 1 OR R.strCodigoOficina = O.strCodigo OR R.strCodigoOficina IN (" . $visibilidad . ")) AND EResp.lngIdOficina = O.lngId ";
     //        } else {
     //            $strSQL = $strSQL . " (U.lngPermiso = 2 OR U.lngPermiso = 1 OR R.strCodigoOficina = O.strCodigo OR R.strCodigoOficina IN (SELECT lngVisibilidad FROM tbvisibilidad2 WHERE lngidEmpleado = U.lngIdEmpleado)) AND EResp.lngIdOficina = O.lngId ";
     //        }
     //        $strSQL = $strSQL . " AND U.lngIdEmpleado = EResp.lngIdEmpleado AND U.strUsuario = '" . $strUsuario . "'  AND R.lngStatus<>0";
     $strSQL = "\r\n                    SELECT R.lngId as Id, R.strReclamacion, DATE_FORMAT(R.datFechaAlta,'%d/%m/%Y') AS datFechaAlta,CONCAT(R.strClienteNombre,' ',R.strClienteApellidos) AS strNombreYApellidos,\r\n                    LEFT(R.strDescripcion,50) AS Causa,R.strEmpresa,R.strServAfect AS strNombreServicio,\r\n                    CONCAT(E.strNombre , ' ' , E.strApellidos) AS RegistradoPor, IF(R.lngAccion=1,'Si','No') AS lngAccion,R.lngTipo,R.lngTipologia,R.strTelefono2\r\n                    FROM tbreclamaciones R, tbempleados E WHERE R.lngIdEmpleado = E.lngIdEmpleado AND R.lngStatus<>0\r\n                    ";
     //veo si tiene permiso 2 o no
     if ($permiso !== '2') {
         //por defecto filtro por oficina y departamento del usuario
         if ((!isset($datAltaDesde) || $datAltaDesde === '') && (!isset($datAltaHasta) || $datAltaHasta === '') && (!isset($strOficina) || $strOficina === '') && (!isset($strDepartamento) || $strDepartamento === '') && (!isset($strTipologia) || $strTipologia === '')) {
             $strSQL = $strSQL . " AND (R.strCodigoOficina = '{$codOficina}' OR R.lngIdDepartamento = {$codDepartamento})";
         }
     }
     //condiciones de filtros
     if ($tipologiaRecl != 0) {
         if ($tipologiaRecl == 1) {
             //Pdte. Analisis
             $strSQL = $strSQL . " AND ISNULL(R.datFechaAceptadoResponsable) ";
         } else {
             if ($tipologiaRecl == 2) {
                 //Pdte. cierre
                 $strSQL = $strSQL . " AND NOT ISNULL(R.datFechaAceptadoResponsable) AND R.lngCerrado = 0 ";
             } else {
                 if ($tipologiaRecl == 3) {
                     //cerrado
                     $strSQL = $strSQL . " AND R.lngCerrado = 1 ";
                 }
             }
         }
     }
     //si no hubiese datos de fechas se filtra por los del año actual
     if ($datAltaDesde == '' && $datAltaHasta == '') {
         date_default_timezone_set('Europe/Madrid');
         $datAltaDesde = '01/01/' . date("Y");
     }
     //veo si hay datos en las fechas y añado los filtros
     if ($datAltaDesde != '') {
         $strSQL = $strSQL . " AND R.datFechaAlta >= '" . fecha_to_DATETIME($datAltaDesde) . "'";
     }
     if ($datAltaHasta != '') {
         $strSQL = $strSQL . " AND R.datFechaAlta <= '" . fecha_to_DATETIME_F($datAltaHasta) . "'";
     }
     if ($strOficina != '' && $strDepartamento != '') {
         $strSQL = $strSQL . " AND (R.strCodigoOficina = '" . $strOficina . "' OR R.lngIdDepartamento = " . $strDepartamento . ")";
     } else {
         if ($strOficina != '') {
             $strSQL = $strSQL . " AND R.strCodigoOficina = '" . $strOficina . "'";
         } else {
             if ($strDepartamento != '') {
                 $strSQL = $strSQL . " AND R.lngIdDepartamento = " . $strDepartamento . "";
             }
         }
     }
     if ($strTipologia === '1' || $strTipologia === '2' || $strTipologia === '3') {
         $strSQL = $strSQL . " AND R.lngTipologia =" . $strTipologia;
     }
     logger('traza', 'clsCADRecl.php-', 'clsCADRecl->ObtieneLista() : SQL : ' . $strSQL);
     //para el filtro de Nº Reclamaciones como por consulta es complicado de resolver lo hago al guardar los datos
     //hago la consulta que llevo en este momento (con o sin fechas)
     $db = new Db();
     $db->conectar($_SESSION['mapeo']);
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     //ahora guardo en un array los datos de la consulta
     //al guardar ahora compruebo si tengo datos en los filtros de reclamacion y antes de guardar compruebo si
     //cumple esos filtros, sino no los guardo, sino hay filtro guardo la consulta tal cual
     $arcDoc = '';
     if ($stmt) {
         //preparamos los numeros ordenados de 'desde' y 'hasta'
         $desdeOrd = $strNumDesdeAnio . $strNumDesde;
         $hastaOrd = $strNumHastaAnio . $strNumHasta;
         //recoremos la consulta y vamos incluyendo o descartando los resultados segun si cumplen o no el filtro
         while ($row = mysql_fetch_array($stmt, MYSQL_ASSOC)) {
             //extraemos el numero de reclamacion para poder comprobar que cumple los filtros
             $numRecl = explode('/', $row['strReclamacion']);
             //preparamos el numero ordenado primero el año y despues el numero
             $numRecOrdenado = $numRecl[1] . $numRecl[0];
             //ahora comprobamos si tenemos datos en 'desde', 'hasta' o 'desde' y 'hasta'
             //hay datos de 'desde' y 'hasta'
             if ($strNumDesde != '' && $strNumDesdeAnio != '' && $strNumHasta != '' && $strNumHastaAnio != '') {
                 //comprobamos si el nº reclamacion esta entre estos los numeros
                 if ($desdeOrd <= $numRecOrdenado && $hastaOrd >= $numRecOrdenado) {
                     //si lo cumple lo incluimos en el listado
                     $this->guardarArrayListar($arcDoc, $row);
                 }
             } else {
                 if ($strNumDesde != '' && $strNumDesdeAnio != '' && $strNumHasta == '' && $strNumHastaAnio == '') {
                     //comprobamos si el nº reclamacion es igual o mayor que el 'desde'
                     if ($desdeOrd <= $numRecOrdenado) {
                         //si lo cumple lo incluimos en el listado
                         $this->guardarArrayListar($arcDoc, $row);
                     }
                 } else {
                     if ($strNumDesde == '' && $strNumDesdeAnio == '' && $strNumHasta != '' && $strNumHastaAnio != '') {
                         //comprobamos si el nº reclamacion es igual o menor que el 'hasta'
                         if ($hastaOrd >= $numRecOrdenado) {
                             //si lo cumple lo incluimos en el listado
                             $this->guardarArrayListar($arcDoc, $row);
                         }
                     } else {
                         //se incluye tal cual en el listado
                         $this->guardarArrayListar($arcDoc, $row);
                     }
                 }
             }
         }
         //devuelvo el listado
         logger('traza', 'clsCADRecl.php-', 'clsCADRecl->ObtieneLista(' . $strUsuario . ',' . $strNumDesde . ',' . $strNumDesdeAnio . ',' . $strNumHasta . ',' . $strNumHastaAnio . ',' . $datAltaDesde . ',' . $datAltaHasta . ',' . $tipologiaRecl . ',' . $strTipologia . '): Hay listado datos');
         return $arcDoc;
     } else {
         //no hay datos
         logger('traza', 'clsCADRecl.php-', 'clsCADRecl->ObtieneLista(' . $strUsuario . ',' . $strNumDesde . ',' . $strNumDesdeAnio . ',' . $strNumHasta . ',' . $strNumHastaAnio . ',' . $datAltaDesde . ',' . $datAltaHasta . ',' . $tipologiaRecl . ',' . $strTipologia . '): Esta vacio, no hay datos');
         return '';
     }
 }
 function Sugerencias($id, $desde, $hasta)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //consulta primaria
     $strSQL = "\r\n                SELECT R.txtNombre,R.txtObservaciones\r\n                FROM tbrespuestas R\r\n                WHERE R.lngIdEncuesta = {$id} \r\n                AND R.lngIdRespuesta NOT IN (SELECT D.NumResp FROM encuestasdescartadas D)\r\n                ";
     if (!empty($desde)) {
         $strSQL = $strSQL . " AND R.datFecha >= '" . fecha_to_DATETIME($desde) . "'";
     }
     if (!empty($hasta)) {
         $strSQL = $strSQL . " AND R.datFecha <= '" . fecha_to_DATETIME_F($hasta) . "'";
     }
     logger('traza', 'clsCADEnc.php-', "clsCADEnc->Sugerencias(): SQL: " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     $resultado = '';
     if ($stmt) {
         while ($row = mysql_fetch_array($stmt)) {
             $reg = '';
             foreach ($row as $propiedad => $valor) {
                 if (!is_numeric($propiedad)) {
                     $reg[$propiedad] = $valor;
                 }
             }
             $resultado[] = $reg;
         }
     } else {
         //si ha fallado la consulta DEVOLVEMOS false
         logger('traza', 'clsCADEnc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEnc->Sugerencias()<FALSE");
         return 'false';
     }
     return $resultado;
 }