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