function ListadoASPEvalConsEfic($strUsuario, $get)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     $lngIdEmpleado = $_SESSION['usuario'];
     $strSQL = "\r\n                    SELECT lngPermiso FROM tbusuarios WHERE strUsuario LIKE '" . $_SESSION['strUsuario'] . "'\r\n                   ";
     logger('traza', 'clsCADFor.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ListadoASPEvalConsEfic()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     if (!$stmt) {
         //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
         $db->desconectar();
         logger('traza', 'clsCADFor.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ListadoASPEvalConsEfic()<FALSE");
         return false;
     }
     $row = mysql_fetch_array($stmt);
     $permiso = $row['lngPermiso'];
     if ($permiso === '2') {
         $strSQL = "\r\n                        SELECT F.lngId, F.strCurso, CONCAT(E.strNombre , ' ' , E.strApellidos) AS Empleado,\r\n                        D.strDescripcion AS Departamento, DATE_FORMAT(F.datFecha,'%d/%m/%Y') AS datFecha , F.strCentro , F.strObjetivos, EF.lngEficaz\r\n                        FROM tbformacion F, tbevalformacion EF, tbdepartamentos D, tbempleados E\r\n                        WHERE F.lngIdEmpleado = E.lngIdEmpleado AND F.lngIdDepartamento = D.lngId\r\n                        AND F.lngId = EF.lngIdFormacion AND F.lngStatus = 1\r\n                      ";
     } else {
         $strSQL = "\r\n                        SELECT F.lngId, F.strCurso, CONCAT(E.strNombre , ' ' , E.strApellidos) AS Empleado,\r\n                        D.strDescripcion AS Departamento, DATE_FORMAT(F.datFecha,'%d/%m/%Y') AS datFecha , F.strCentro , F.strObjetivos, EF.lngEficaz\r\n                        FROM tbformacion F, tbevalformacion EF, tbdepartamentos D, tbempleados E, tbusuarios U\r\n                        WHERE F.lngIdEmpleado = E.lngIdEmpleado AND F.lngIdDepartamento = D.lngId\r\n                        AND U.strUsuario='{$strUsuario}' AND U.lngIdEmpleado = F.lngIdEmpleado\r\n                        AND F.lngId = EF.lngIdFormacion AND F.lngStatus = 1\r\n                      ";
     }
     //añado los filtros
     if (isset($get['datAltaDesde']) && $get['datAltaDesde'] !== '') {
         $strSQL = $strSQL . " AND F.datFecha >= '" . fecha_to_DATETIME($get['datAltaDesde']) . "'";
     }
     if (isset($get['datAltaHasta']) && $get['datAltaHasta'] !== '') {
         $strSQL = $strSQL . " AND F.datFecha <= '" . fecha_to_DATETIME($get['datAltaHasta']) . "'";
     }
     if (isset($get['strNombre']) && $get['strNombre'] !== '') {
         $strSQL = $strSQL . " AND E.strNombre LIKE '%" . $get['strNombre'] . "%'";
     }
     if (isset($get['strApellidos']) && $get['strApellidos'] !== '') {
         $strSQL = $strSQL . " AND E.strApellidos LIKE '%" . $get['strApellidos'] . "%'";
     }
     if (isset($get['strDepartamento']) && $get['strDepartamento'] !== '') {
         $strSQL = $strSQL . " AND D.strDescripcion LIKE '%" . $get['strDepartamento'] . "%'";
     }
     if (isset($get['strCurso']) && $get['strCurso'] !== '') {
         $strSQL = $strSQL . " AND F.strCurso LIKE '%" . $get['strCurso'] . "%'";
     }
     //filtrado por defecto sabiendo de donde vengo
     //opmenu=eval (vengo de GR>RH>Eficacia>Evaluar
     //opmenu=mod  (vengo de GR>RH>Eficacia>Modificacion/Consulta
     if (isset($get['opmenu'])) {
         if ($get['opmenu'] === 'eval') {
             $strSQL = $strSQL . " AND EF.lngEficaz = 0";
         } else {
             if ($get['opmenu'] === 'mod') {
                 $strSQL = $strSQL . " AND (EF.lngEficaz = 1 OR EF.lngEficaz = 2)";
             }
         }
     } else {
         //el filtro optEstado por defecto leemos las eficacias Eficaz(2) y No Eficaz(1)
         //Los datos que vienen por optEstado son:
         // 0 = Sin Revisar
         // 1 = No Eficaces
         // 2 = Eficaces
         // 3 = Todos
         if (isset($get['optEstado'])) {
             if ($get['optEstado'] === '') {
                 $strSQL = $strSQL . " AND (EF.lngEficaz = 1 OR EF.lngEficaz = 2)";
             } else {
                 if ($get['optEstado'] === '1') {
                     $strSQL = $strSQL . " AND EF.lngEficaz = 1";
                 } else {
                     if ($get['optEstado'] === '2') {
                         $strSQL = $strSQL . " AND EF.lngEficaz = 2";
                     } else {
                         if ($get['optEstado'] === '0') {
                             $strSQL = $strSQL . " AND EF.lngEficaz = 0";
                         } else {
                             if ($get['optEstado'] === '3') {
                                 //no ponemos ningun filtro
                             }
                         }
                     }
                 }
             }
         } else {
             $strSQL = $strSQL . " AND (EF.lngEficaz = 1 OR EF.lngEficaz = 2)";
         }
     }
     logger('traza', 'clsCADFor.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ListadoASPEvalConsEfic()|| 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', 'clsCADFor.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ListadoASPEvalConsEfic()<FALSE");
         $resultado = 'false';
     }
     return $resultado;
 }
 $ahora = date("Y-n-j H:i:s");
 $tiempo_transcurrido = strtotime(fecha_to_DATETIME($datosEncuesta['datFechaFin'])) - strtotime($ahora);
 //comparamos el tiempo transcurrido fecha del fin
 if ($tiempo_transcurrido < 0) {
     //si es menor es que la fecha esta sobrepasada
     //escribo en el log
     $ddf = fopen('../log/' . $_SESSION['base'] . '/' . $nombre, 'a');
     date_default_timezone_set('Europe/Madrid');
     $texto = "IdEncuesta: " . $id . " - IdCliente:" . $_SESSION['idCliente'] . " -> Está fuera de plazo para contestar a esta encuesta";
     fwrite($ddf, "[" . date("r") . "] {$texto}\n");
     fclose($ddf);
     //vamos a error
     echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=../vista/exito_encuesta.php?Id=Está fuera de plazo para contestar a esta encuesta.">';
     die;
 }
 $tiempo_transcurrido = strtotime($ahora) - strtotime(fecha_to_DATETIME($datosEncuesta['datFechaIni']));
 //comparamos el tiempo transcurrido fecha del inicio
 if ($tiempo_transcurrido < 0) {
     //si es menor es que todavia no se puede contestar a esta encuesta
     //escribo en el log
     $ddf = fopen('../log/' . $_SESSION['base'] . '/' . $nombre, 'a');
     date_default_timezone_set('Europe/Madrid');
     $texto = "IdEncuesta: " . $id . " - IdCliente:" . $_SESSION['idCliente'] . " -> No estas en plazo para contestar a esta encuesta";
     fwrite($ddf, "[" . date("r") . "] {$texto}\n");
     fclose($ddf);
     //vamos a error
     echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=../vista/exito_encuesta.php?Id=No estas en plazo para contestar a esta encuesta.">';
     die;
 }
 //    //comprobar que el cliente exista
 //    if(!$clsCNEnc->ExisteCliente($_SESSION['idCliente'])){
 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 editarAuditoria($post)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //var_dump($post);die;
     //como voy a realizar varias operaciones contra la BBDD
     //lo hare utilizando las transacciones en MySQL
     $db->ejecutar("START TRANSACTION");
     //hacemos tres pasos
     //1º editamos los datos de la tabla tbauditorias
     $strSQL = "\r\n                    UPDATE tbauditorias\r\n                    SET datFecha = '" . fecha_to_DATETIME($post['datFecha']) . "',\r\n                        strLugar = '" . $post['strLugar'] . "',\r\n                        lngTipo = " . $post['lngTipo'] . ",\r\n                        strNorma = '" . mysql_real_escape_string($post['strNorma']) . "',\r\n                        txtAuditores = '" . mysql_real_escape_string($post['txtAuditores']) . "',\r\n                        lngIdAprobado = " . $_SESSION['usuario'] . ",\r\n                        datFechaAprob = now()\r\n                    WHERE lngId = " . $post['cmdAlta'] . "\r\n                   ";
     logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     if (!$stmt) {
         //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
         $db->ejecutar("ROLLBACK");
         $db->desconectar();
         logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()<FALSE");
         return false;
     }
     //2º en la tabla tbareaauditoria borramos los datos de esta auditoria 'lngIdAuditoria' (campo borrado=0)
     $strSQL = "\r\n                    UPDATE tbareaauditoria\r\n                    SET Borrado = 0\r\n                    WHERE lngIdAuditoria = " . $post['cmdAlta'] . "\r\n                   ";
     logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     if (!$stmt) {
         //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
         $db->ejecutar("ROLLBACK");
         $db->desconectar();
         logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()<FALSE");
         return false;
     }
     //3º en la tabla tbareaauditoria inserto los nuevos datos en la nueva lista de departamentos
     //estos datos se insertaran tantas veces como departamentos del listado vengan
     //recojo en un array estos departamentos
     $listadoDepartamentos = '';
     foreach ($post as $key => $value) {
         if (substr($key, 0, 2) === 'id') {
             $listadoDepartamentos[] = substr($key, 2);
         }
     }
     //ahora hago un bucle para las inserciones
     for ($i = 0; $i < count($listadoDepartamentos); $i++) {
         $strSQL = "\r\n                        SELECT IF(ISNULL(MAX(lngId)),1,MAX(lngId)+1) AS lngId FROM tbareaauditoria\r\n                       ";
         logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()|| SQL : " . $strSQL);
         $stmt = $db->ejecutar($strSQL);
         if (!$stmt) {
             //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
             $db->ejecutar("ROLLBACK");
             $db->desconectar();
             logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()<FALSE");
             return false;
         }
         $row = mysql_fetch_array($stmt);
         $IdNuevoA = $row['lngId'];
         $strSQL = "\r\n                       INSERT INTO tbareaauditoria (lngId,lngIdAuditoria,lngIdDepartamento,txtAlcance,Borrado,datFechaStatus)\r\n                       VALUES ({$IdNuevoA}," . $post['cmdAlta'] . "," . $listadoDepartamentos[$i] . ",'" . mysql_real_escape_string($post['txtAlcance']) . "',1,now())\r\n                       ";
         logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()|| SQL : " . $strSQL);
         $stmt = $db->ejecutar($strSQL);
         if (!$stmt) {
             //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
             $db->ejecutar("ROLLBACK");
             $db->desconectar();
             logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()<FALSE");
             return false;
         }
     }
     //-------------------------------------------------------------
     //si todas las operaciones contra la BBDD se han efectuado correctamente se hace COMMIT y devolvemos el numero incidencia insertado
     $db->ejecutar("COMMIT");
     $db->desconectar();
     logger('traza', 'clsCADAud.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADAud->editarAuditoria()<COMMIT");
     return true;
 }
 function Modificar($lngId, $datFechaAlta, $strReclamacion, $strClienteNombre, $strClienteApellidos, $strEmpresa, $strDireccion, $strPoblacion, $strProvincia, $lngCP, $strTelefono, $strEmail, $strServAfect, $datFechaServicio, $lngFactura, $lngExpediente, $strOficina, $strTipReclamacion, $strDepartamento, $strDescripcion, $datFechaReclamacion, $optCri013, $lngRecibidoPor)
 {
     require_once '../general/funcionesGenerales.php';
     //pasamos las fechas si existen a formato DATETIME
     if ($datFechaAlta != '') {
         $datFechaAlta = fecha_to_DATETIME($datFechaAlta);
     }
     if ($datFechaServicio != '') {
         $datFechaServicio = fecha_to_DATETIME($datFechaServicio);
     }
     if ($datFechaReclamacion != '') {
         $datFechaReclamacion = fecha_to_DATETIME($datFechaReclamacion);
     }
     //pasamos la oficina solo al codigo oficina y comprobamos si existe o si el campo esta vacio,
     // guardamos la oficina del ususario
     $oficina = explode('.', $strOficina);
     $strCodigoOficina = $oficina[0];
     //comprobamos que el numero de oficina exista en la tabla tboficina
     //sino existe asigno false a la variable de control $existeOficina
     $existeOficina = $this->existeOficina($strCodigoOficina);
     //si el dato de la oficina viene vacio o no existe la oficina le asigno la oficina del usuario
     $datos = array();
     if (isset($strOficina) && $strOficina == '' || $existeOficina == 'NO') {
         require_once '../CN/clsCNUsu.php';
         $clsCNUsu = new clsCNUsu();
         $clsCNUsu->setStrBD($this->getStrBD());
         $datos = $clsCNUsu->ObtieneOficinaDep_usuario($_SESSION['usuario']);
         $ofi = explode('.', $datos['strOficina']);
         $strCodigoOficina = $ofi[0];
     }
     //Control del departamento
     //si el dato del departamento viene vacio o no existe en la tabla tbdepartamentos, le asigno el departamento del usuario
     $lngDepartamento = 0;
     $existeDpto = $this->existeDpto($strDepartamento);
     if (isset($strDepartamento) && $strDepartamento == '' || $existeDpto == 'NO') {
         $lngDepartamento = $datos['lngDepartamento'];
     } else {
         //sino busco el $lngDepartamento
         require_once '../CN/clsCNDep.php';
         $clsCNDep = new clsCNDep();
         $clsCNDep->setStrBD($this->getStrBD());
         $lngDepartamento = $clsCNDep->ObtieneIdDep($strDepartamento);
     }
     //        //pasamos el codigo del departamento
     //        require_once '../CN/clsCNDep.php';
     //        $clsCNDep=new clsCNDep();
     //        $clsCNDep->setStrBD($this->getStrBD());
     //        $lngDepartamento=$clsCNDep->ObtieneIdDep($strDepartamento);
     require_once '../CAD/clsCADRecl.php';
     $clsCADRecl = new clsCADRecl();
     $clsCADRecl->setStrBD($this->getStrBD());
     return $clsCADRecl->Modificar($lngId, $datFechaAlta, $strReclamacion, $strClienteNombre, $strClienteApellidos, $strEmpresa, $strDireccion, $strPoblacion, $strProvincia, $lngCP, $strTelefono, $strEmail, $strServAfect, $datFechaServicio, $lngFactura, $lngExpediente, $strCodigoOficina, $strTipReclamacion, $lngDepartamento, $strDescripcion, $datFechaReclamacion, $optCri013, $lngRecibidoPor);
 }
 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 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 '';
     }
 }
 function ModEvalCumplimiento($post)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //controlo que si viene $post['legislacion']>= '' (vacio) le indico un null
     //        if($post['legislacion'] === ''){
     //            $post['legislacion'] = 'null';
     //        }
     //var_dump($post);die;
     $noAplica = 0;
     if ($post['noAplica'] === 'on') {
         $noAplica = 1;
     }
     //actualizo los datos del requisito
     $strSQL = "\r\n                    UPDATE tbevalcumplimiento C\r\n                    SET C.FechaProxEval = '" . fecha_to_DATETIME($post['datFechaProxEval']) . "',\r\n                    C.Responsable = '" . mysql_real_escape_string($post['strAsigEmpl']) . "',\r\n                    C.Comentario = '" . mysql_real_escape_string($post['comentario']) . "',\r\n                    C.lngIdEmpleadoStatus = " . $_SESSION['usuario'] . ",\r\n                    C.noAplica = {$noAplica}\r\n                    WHERE C.IdEval = " . $post['cmdAlta'] . "\r\n                ";
     logger('traza', 'clsCADDoc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADDoc->ModEvalCumplimiento(): Consulta SQL: " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     if ($stmt) {
         //la consulta ha sido correcta, DEVOLVEMOS true
         logger('traza', 'clsCADDoc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADDoc->ModEvalCumplimiento()<TRUE");
         return true;
     } else {
         //si ha fallado la consulta DEVOLVEMOS false
         logger('traza', 'clsCADDoc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADDoc->ModEvalCumplimiento()<FALSE");
         return false;
     }
 }
 function ObjetivoGuardarEditado($post)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //actualizo en la tabla tbobjetivos los datos del formulario
     $strSQL = "\n                    UPDATE tbobjetivos O\n                    SET O.txtDescripcion='" . mysql_real_escape_string($post['txtDescripcion']) . "',\n                    O.lngIdEmpleado=" . $_SESSION['usuario'] . ",\n                    O.strOficina='" . $post['strOficina'] . "',\n                    O.lngIdDepartamento=" . $post['strDepartamento'] . ",\n                    O.lngIdResponsable=" . $post['lngIdResponsable'] . ",\n                    O.datFechaConsecucion='" . fecha_to_DATETIME($post['datFechaConsecucion']) . "',\n                    O.strRecursos='" . $post['strRecursosAsig'] . "',\n                    O.lngInd=" . $post['optIND'] . "\n                    WHERE O.lngId=" . $post['cmdAlta'] . "\n                   ";
     logger('traza', 'clsCADObj.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ObjetivoGuardarEditado()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     if ($stmt) {
         logger('traza', 'clsCADObj.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ObjetivoGuardarEditado()|| <TRUE ");
         return true;
     } else {
         logger('traza', 'clsCADObj.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ObjetivoGuardarEditado()|| <FALSE ");
         return false;
     }
 }
 function ListadoASPEvalEsp($get)
 {
     require_once '../CAD/clsCADProv.php';
     $clsCADProv = new clsCADProv();
     $clsCADProv->setStrBD($this->getStrBD());
     $listado = $clsCADProv->ListadoASPEvalEsp($get);
     //ahora recorro el listado para añadir las incidencias (Baja+Media+Alta)
     $listadoFinal = "";
     for ($i = 0; $i < count($listado); $i++) {
         //busco la fecha de la ultima evaluacion (si viene vacio es que no tiene ninguna evaluacion)
         $fecha = $clsCADProv->fechaUltimaEvaluacionProveedor($listado[$i]['lngId']);
         //ahora paso el filtro de las fechas
         $incluido = 'SI';
         if (isset($get['datAltaDesde']) && $get['datAltaDesde'] !== '') {
             $fechaCOMP = new DateTime($fecha);
             $fechaAlta = fecha_to_DATETIME($get['datAltaDesde']);
             $datAltaDesdeCOMP = new DateTime($fechaAlta);
             if ($fechaCOMP >= $datAltaDesdeCOMP) {
                 //cumple, salgo del bucle
             } else {
                 $incluido = 'NO';
             }
         }
         if (isset($get['datAltaHasta']) && $get['datAltaHasta'] !== '') {
             $fechaCOMP = new DateTime($fecha);
             $fechaAlta = fecha_to_DATETIME($get['datAltaHasta']);
             $datAltaDesdeCOMP = new DateTime($fechaAlta);
             if ($fechaCOMP <= $datAltaDesdeCOMP) {
                 //cumple, salgo del bucle
             } else {
                 $incluido = 'NO';
             }
         }
         //compruebo si quito o no este elemento del array
         if ($incluido === 'SI') {
             if ($fecha === '') {
                 $listado[$i]['fechaUltimaEvaluacion'] = '';
             } else {
                 $listado[$i]['fechaUltimaEvaluacion'] = date("d/m/Y", strtotime($fecha));
             }
             //extraigo los datos del campo tbincidencias.lngRelevancia contados
             $incidencias = $clsCADProv->incidenciasDelProveedor($listado[$i]['lngId'], $fecha);
             //ahora incluyo estos datos en el array
             $listado[$i]['incidencias'] = $incidencias;
             $listadoFinal[] = $listado[$i];
         }
     }
     return $listadoFinal;
 }
 function ListadoASPIncCons($get)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //primero buscamos el permiso del usuario
     //$lngIdUsuario = $_SESSION['usuario'];
     //        $strSQL = "
     //                    SELECT lngPermiso FROM tbusuarios WHERE strUsuario LIKE '".$_SESSION['strUsuario']."'
     //                   ";
     //
     //        logger('traza','clsCADEqu.php-' ,"Usuario: ".$_SESSION['strUsuario'].', Empresa: '.$_SESSION['strBD'].', SesionID: '.  session_id().
     //               " clsCADEqu->ListadoModPlan()|| SQL : ".$strSQL);
     //
     //        $stmt = $db->ejecutar ( $strSQL );
     //
     //        if(!$stmt){
     //            //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
     //            $db->desconectar ();
     //            logger('traza','clsCADEqu.php-' ,"Usuario: ".$_SESSION['strUsuario'].', Empresa: '.$_SESSION['strBD'].', SesionID: '.  session_id().
     //                    " clsCADEqu->ListadoModPlan()<FALSE");
     //            return false;
     //        }
     //
     //        $row =  mysql_fetch_array($stmt);
     //        $permiso = $row['lngPermiso'];
     //busco los datos de los equipos
     $strSQL = "\r\n                    SELECT P.lngId AS IdProv, P.lngCodigo, P.strProveedor,P.lngEstado,I.lngId AS IdInc,I.lngRelevancia,\r\n                    (SELECT strTipoIncidencia FROM tbtipoincidencias TI WHERE I.lngIdTipo = TI.lngId) AS strTipo,\r\n                    DATE_FORMAT(I.datFecha,'%d/%m/%Y') AS datFecha\r\n                    FROM tbproveedores P, tbempleados E, tbincidencias I\r\n                    WHERE P.lngIdEvaluador = E.lngIdEmpleado AND P.lngId = I.lngIdProveedor\r\n                   ";
     //ahora veo el permiso, si es 2 lista todo, sino lo filtra a los suyos
     //        if($permiso !== '2'){
     //            $strSQL = $strSQL . " AND E.lngIdEmpleado = '$strUsuario'";
     //        }
     if (isset($get['datAltaDesde']) && $get['datAltaDesde'] !== '') {
         $strSQL = $strSQL . " AND I.datFecha >= '" . fecha_to_DATETIME($get['datAltaDesde']) . "'";
     }
     if (isset($get['datAltaHasta']) && $get['datAltaHasta'] !== '') {
         $strSQL = $strSQL . " AND I.datFecha <= '" . fecha_to_DATETIME($get['datAltaHasta']) . "'";
     }
     if (isset($get['strNumDesde']) && $get['strNumDesde'] !== '') {
         $strSQL = $strSQL . " AND P.lngId >= '" . $get['strNumDesde'] . "'";
     }
     if (isset($get['strNumHasta']) && $get['strNumHasta'] !== '') {
         $strSQL = $strSQL . " AND P.lngId <= '" . $get['strNumHasta'] . "'";
     }
     if (isset($get['optEstado']) && $get['optEstado'] !== '') {
         if ($get['optEstado'] !== '3') {
             $strSQL = $strSQL . " AND P.lngEstado = " . $get['optEstado'] . "";
         }
     }
     logger('traza', 'clsCADProv.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADProv->ListadoASPIncCons()|| 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', 'clsCADProv.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADProv->ListadoASPIncCons()<FALSE");
         $resultado = 'false';
     }
     return $resultado;
 }
 function altaCalibracionEquipo($post)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //var_dump($post);die;
     //como realizamos varias operaciones cotra la BBDD, hacemos transacciones
     $db->ejecutar("START TRANSACTION");
     //1º recojo los datos del mantenimiento actual que pasa al histórico
     $strSQL = "\r\n                    SELECT E.lngCal, E.strPeriodicidadCal, \r\n                    DATE_FORMAT(E.datFechaIntervencionCal,'%d/%m/%Y') AS datFechaIntervencionCal, E.txtCriterio\r\n                    FROM tbequipos E\r\n                    WHERE E.lngId = " . $post['cmdAlta'] . "\r\n                   ";
     logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     $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 hacemos ROLLBACK Y DEVOLVEMOS false
         $db->ejecutar("ROLLBACK");
         $db->desconectar();
         logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()<FALSE");
         return false;
     }
     //2º paso los datos al historico (tbequipocal)
     $strSQL = "\r\n                    SELECT IF(ISNULL(MAX(lngId)),1,MAX(lngId)+1) AS lngId FROM tbequipocal\r\n                   ";
     logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     if (!$stmt) {
         //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
         $db->ejecutar("ROLLBACK");
         $db->desconectar();
         logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()<FALSE");
         return false;
     }
     $row = mysql_fetch_array($stmt);
     $IdNuevo = $row['lngId'];
     $strSQL = "\r\n                    INSERT INTO tbequipocal (lngId, lngIdEquipo, datFechaIntervencion, txtObservaciones,\r\n                    datFecha, lngIdResponsable)\r\n                    VALUES({$IdNuevo}," . $post['cmdAlta'] . ",'" . fecha_to_DATETIME($resultado['datFechaIntervencionCal']) . "','" . mysql_real_escape_string($resultado['txtCriterio']) . "',now()," . $_SESSION['usuario'] . ")\r\n                   ";
     logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     if (!$stmt) {
         //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
         $db->ejecutar("ROLLBACK");
         $db->desconectar();
         logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()<FALSE");
         return false;
     }
     //3º ahora actualizo los datos en la tabla tbequipos
     $strSQL = "\r\n                    UPDATE tbequipos\r\n                    SET txtCriterio = '" . mysql_real_escape_string($post['txtCriterio']) . "',\r\n                        strPeriodicidadCal = '" . mysql_real_escape_string($post['strPeriodicidadCal']) . "',\r\n                        datFechaIntervencionCal = '" . fecha_to_DATETIME($post['datFechaIntervencionCal']) . "',\r\n                        txtParametros = '" . mysql_real_escape_string($post['txtParametros']) . "'\r\n                    WHERE lngId=" . $post['cmdAlta'] . "\r\n                   ";
     $stmt = $db->ejecutar($strSQL);
     if (!$stmt) {
         //si ha fallado la consulta hacemos ROLLBACK Y DEVOLVEMOS false
         $db->ejecutar("ROLLBACK");
         $db->desconectar();
         logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()<FALSE");
         return false;
     }
     //-------------------------------------------------------------
     //si todas las operaciones contra la BBDD se han efectuado correctamente se hace COMMIT y devolvemos true
     $db->ejecutar("COMMIT");
     $db->desconectar();
     logger('traza', 'clsCADEqu.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADEqu->altaCalibracionEquipo()<COMMIT");
     return true;
 }
 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 ModRetiradaResiduos($post, $nombre)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //indico en la tabla tbdefinindi el campo IdObjetivo
     $strSQL = "\r\n                    UPDATE tbresiduosretirada R\r\n                    SET R.fechaRetirada = '" . fecha_to_DATETIME($post['fechaRetirada']) . "',\r\n                    R.referencia = '" . mysql_real_escape_string($post['referencia']) . "',\r\n                    R.codigoReferencia = '" . mysql_real_escape_string($post['codigoReferencia']) . "',\r\n                    R.cantidad = " . $post['cantidad'] . ",\r\n                    R.gestionRetirada = '" . mysql_real_escape_string($post['gestionRetirada']) . "',\r\n                    R.gestionNumAutorizado = '" . mysql_real_escape_string($post['gestionNumAutorizado']) . "',\r\n                    R.albaran = '" . mysql_real_escape_string($post['albaran']) . "',\r\n                    R.transportista = '" . mysql_real_escape_string($post['transportista']) . "',\r\n                    R.transportistaNumAutorizado = '" . mysql_real_escape_string($post['transportistaNumAutorizado']) . "',\r\n                    R.datFechaStatus = now()\r\n                    WHERE R.IdRetirada = " . $post['opcion'] . "\r\n                   ";
     logger('traza', 'clsCADMAM.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADMAM->ModRetiradaResiduos()|| SQL : " . $strSQL);
     $stmt = $db->ejecutar($strSQL);
     $db->desconectar();
     if ($stmt) {
         logger('traza', 'clsCADMAM.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADMAM->ModRetiradaResiduos()|| <TRUE ");
         return true;
     } else {
         logger('traza', 'clsCADMAM.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADMAM->ModRetiradaResiduos()|| <FALSE ");
         return false;
     }
 }
 function ListadoASPConsIndic($get)
 {
     require_once '../general/' . $_SESSION['mapeo'];
     $db = new Db();
     $db->conectar($this->getStrBD());
     //extraigo el listado de los indicadores
     $strSQL = "\r\n                    SELECT F.lngIndicador, F.strNomIndicador, CONCAT(E.strNombre , ' ' , E.strApellidos) AS Empleado,\r\n                    F.strDepartamento, DATE_FORMAT(F.datFecha,'%d/%m/%Y') AS datFecha, DATE_FORMAT(F.datFechaVenci,'%d/%m/%Y') AS datFechaVenci , F.strPeriodicidad\r\n                    FROM tbdefinindi F, tbempleados E\r\n                    WHERE F.strUsuario = E.lngIdEmpleado \r\n                   ";
     if (isset($get['datAltaDesde']) && $get['datAltaDesde'] !== '') {
         $strSQL = $strSQL . " AND F.datFecha >= '" . fecha_to_DATETIME($get['datAltaDesde']) . "'";
     }
     if (isset($get['datAltaHasta']) && $get['datAltaHasta'] !== '') {
         $strSQL = $strSQL . " AND F.datFecha <= '" . fecha_to_DATETIME($get['datAltaHasta']) . "'";
     }
     if (isset($get['strNombre']) && $get['strNombre'] !== '') {
         $strSQL = $strSQL . " AND F.strNombre = '" . $get['strNombre'] . "'";
     }
     if (isset($get['strApellidos']) && $get['strApellidos'] !== '') {
         $strSQL = $strSQL . " AND F.strApellidos = '" . $get['strApellidos'] . "'";
     }
     if (isset($get['strDepartamento']) && $get['strDepartamento'] !== '') {
         $strSQL = $strSQL . " AND F.strDepartamento = '" . $get['strDepartamento'] . "'";
     }
     if (isset($get['strIndicador']) && $get['strIndicador'] !== '') {
         $strSQL = $strSQL . " AND F.strNomIndicador LIKE '" . $get['strIndicador'] . "'";
     }
     logger('traza', 'clsCADIndi.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ListadoASPModIndic()|| 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', 'clsCADIndi.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADFor->ListadoASPModIndic()<FALSE");
         $resultado = 'false';
     }
     return $resultado;
 }
 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;
 }