%--
Document : frm_ver_anual_declarantes
Created on : 24/01/2013, 09:17:35 AM
Author : martha
--%>
<%@page import="javax.swing.text.html.HTMLEditorKit.Parser"%>
<%@page import="sun.misc.Perf.GetPerfAction"%>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page
import = "conexion.*"
import = "dates.*"
import = "java.sql.*"
import = "general.Config"
import = "general.Permisos"
import = "own.codec.*"
import = "java.util.Date"
import = "java.text.SimpleDateFormat"
import = "java.text.NumberFormat"
%>
Desplegar Información de las Declaraciones
<%
/****** Despliega la lista de cines del sistema filtrados por el texto de búsqueda de buscar_cines.jsp (no obligatorio)***********/
/********************************************creado por: Ing. Martha*******************************************************/
out.println(" ");
String nompag[] = request.getRequestURI().split("/");
%>
<%
// Conexion c = null;
//Connection lcnt_con = null;
ResultSet lrs_res = null;
ResultSet lrs_res1 = null;
Statement lst_stm = null;
Statement lst_stm1 = null;
String ls_query = new String("");
/*INICIO. Segunda Conexión*/
ConexionDeclaranet cd = null;
Connection lcd_connection = null;
//Statement lstg_conecta=null;
/*FIN. SEGUNDA CONEXIÓN*/
String emergent_error = new String("");
boolean lb_connection = false;
String debug = new String("si");
//String id_tipodeclaracion = "";
String id_dep = "";
//String fecha_desde = new String("");
//String fecha_hasta = new String("");
boolean elementos_encontrados = false;
String status = "";
String AWhere = "";
int total_declaracion = 0;
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formato1 = new SimpleDateFormat("yyyy");
Dates_minus suma = new Dates_minus();
java.sql.Date fechaSesenta = null;
//Date fechaActual = new Date();
Date fechafinal = new Date();
Date fechadeclaracion = new Date();
Date fechaalta = new Date();
Date actual = new Date();
String actualF = formato.format(actual);
String fechaActual = formato1.format(actual)+"-01-01";
String fechaActualFinal = formato1.format(actual)+"-04-30";
Integer beforeyear = Integer.parseInt(formato1.format(actual))-1;
String FechaOmisos = formato1.format(fechaalta)+"-05-31";
String FechaComparar = formato1.format(fechaalta)+"-05-01";
Date fechabefore = formato.parse(formato1.format(fechaalta)+"-01-01");
//Date
//Integer dias = 0, diaslimite=0;
String funcionarios = "";
String funcionariosOmisos = "";
String funcionariosExentos = "";
String funcionariosTodos = "";
String funcionariosOblidagos = "";
/********* INICIO. Conexión a la base de datos ********/
try {
if (!Config.getParametro("debug").equals("si")) {
debug = "no";
}
cd = new ConexionDeclaranet();
lcd_connection = cd.getConnection();
lst_stm = lcd_connection.createStatement();
lst_stm1 = lcd_connection.createStatement();
lb_connection = true;
}catch (Exception e) {
emergent_error = "Error al conectarse a la base de datos 2 ";
if (debug.equals("si")) {
emergent_error += "Trace: " + e.toString();
}
lb_connection = false;
}
/**********FIN. CONEXIÓN A LA BASE DE DATOS*******/
//********* Validación fundamental para evitar ejecución de código sin privilegios suficientes **********//
try {
if (!Permisos.PermisoModulo(nompag[nompag.length - 1].toString(), Integer.parseInt(session.getAttribute("id_user").toString()))) {
if (lb_connection) {
lst_stm.close();
lst_stm1.close();
lcd_connection.close();
}
emergent_error += " Privilegios insuficientes. ";
lb_connection = false;
}
} catch (Exception e) {
emergent_error += " Privilegios insuficientes. ";
if (debug.equals("si")) {
emergent_error += "Trace: " + e.toString();
}
lb_connection = false;
}
//*******************************************************************************************************//
if (lb_connection) {
try {
//id_tipodeclaracion = request.getParameter("id_tipodeclaracion");
id_dep = request.getParameter("id_dep");
status = request.getParameter("status");
if(!id_dep.equals("")){
if(id_dep.equals("0")){
AWhere ="where ";
}
else{
AWhere = " WHERE pf.id_dependencia="+id_dep+" and ";
}
}
/*Obligados porque presentaron su declaración en el año de la declaración Anual*/
ls_query="select DISTINCT id_altabaja "
+ "from altabaja a "
+ "left join puesto_funcionario pf ON pf.id_puesto_funcionario=a.id_puesto_funcionario "
+ AWhere
+ "a.fecha_alta<'"+fechaActual+"' "
+ "and a.status=1 and "
+ "EXISTS (select * from declaration d where "
+ "(fecha_declaracion>='"+fechaActual+"' and fecha_declaracion<='"+fechaActualFinal+"')"
+ " and d.id_tipodeclaracion=1 and d.id_altabaja=a.id_altabaja) "
+ " and NOT EXISTS (select * from declaration d where d.id_tipodeclaracion=3 and d.id_altabaja=a.id_altabaja)"
+ " order by a.id_altabaja desc"+";";
//ls_query="select id_altabaja from altabaja where status=1";
lrs_res = lst_stm.executeQuery(ls_query);
while (lrs_res.next()) {
if(funcionariosOblidagos.equals("")){
funcionariosOblidagos+=" a.id_altabaja="+lrs_res.getInt("id_altabaja");
}else{
funcionariosOblidagos+=" or a.id_altabaja="+lrs_res.getInt("id_altabaja");
}
}
/**/
ls_query="select DISTINCT id_altabaja "
+ "from altabaja a "
+ "left join puesto_funcionario pf ON pf.id_puesto_funcionario=a.id_puesto_funcionario "
+ AWhere
+ "a.fecha_alta<'"+fechaActual+"' "
+ "and a.status=1 and "
+ "EXISTS (select * from declaration d where "
+ "fecha_declaracion<'"+fechaActual+"' and "
+ "d.id_tipodeclaracion=1 and d.id_altabaja=a.id_altabaja) "
+ " and NOT EXISTS (select * from declaration d where d.id_tipodeclaracion=3 and d.id_altabaja=a.id_altabaja)"
+ " order by a.id_altabaja desc"+";";
//ls_query="select id_altabaja from altabaja where status=1";
lrs_res = lst_stm.executeQuery(ls_query);
while (lrs_res.next()) {
if(funcionariosTodos.equals("")){
funcionariosTodos+="a.id_altabaja="+lrs_res.getInt("id_altabaja");
}else{
funcionariosTodos+=" or a.id_altabaja="+lrs_res.getInt("id_altabaja");
}
}
//AWhere+=" "+id_dep;
if(!funcionariosTodos.equals("")){
AWhere =" WHERE "+funcionariosTodos;
ls_query="SELECT * from (select d.id_tipodeclaracion, a.fecha_alta, d.fecha_declaracion, a.id_altabaja "
+ "from altabaja a "
+ "LEFT JOIN declaration d ON d.id_altabaja=a.id_altabaja "
+ "LEFT JOIN puesto_funcionario pf ON pf.id_puesto_funcionario=a.id_puesto_funcionario "
//+ "where d.id_tipodeclaracion=1 and d.fecha_declaracion>'0000-00-00'"
+ AWhere +" "
+ " order by d.fecha_declaracion desc ) as t "
+ " group by t.id_altabaja"+";";
lrs_res = lst_stm.executeQuery(ls_query);
//out.println(ls_query);
while (lrs_res.next()) {
fechaSesenta = suma.suma_dias(formato.parse(lrs_res.getString("fecha_alta")), 61);
fechafinal = new java.util.Date(fechaSesenta.getTime());
fechaalta = formato.parse(lrs_res.getString("fecha_alta"));
fechadeclaracion = formato.parse(lrs_res.getString("fecha_declaracion"));
/*if(fechadeclaracion.after(fechaalta) && fechadeclaracion.before(fechafinal)){
funcionarios+= " and a.id_altabaja <>"+lrs_res.getString("id_altabaja");
funcionariosExentos+="or a.id_altabaja="+lrs_res.getString("id_altabaja");
}*/
if(fechadeclaracion.before(fechabefore)){
if(funcionarios.equals("")){
funcionarios= " a.id_altabaja ="+lrs_res.getString("id_altabaja");
}else{
funcionarios+= " or a.id_altabaja ="+lrs_res.getString("id_altabaja");
}
}else if(fechadeclaracion.after(fechaalta) && fechadeclaracion.before(fechafinal)){
if(funcionariosExentos.equals("")){
funcionariosExentos=" a.id_altabaja="+lrs_res.getString("id_altabaja");
}else{
funcionariosExentos+="or a.id_altabaja="+lrs_res.getString("id_altabaja");
}
}else{
if(funcionarios.equals("")){
funcionarios= " a.id_altabaja ="+lrs_res.getString("id_altabaja");
}else{
funcionarios+= " or a.id_altabaja ="+lrs_res.getString("id_altabaja");
}
}
}
/* if(!id_dep.equals("")){
if(id_dep.equals("0")){
AWhere ="";
}
else{
AWhere = " WHERE pf.id_dependencia="+id_dep;
}
} */
if (status.equals("1")){
//if(AWhere.equals("")){
if(!funcionarios.equals("")){
AWhere=" where ( "+funcionarios+" )";
}
if(!funcionariosOblidagos.equals("")){
if(AWhere.equals("") ){
AWhere=" where ( "+funcionariosOblidagos+" )";
}else{
AWhere+="or ( "+funcionariosOblidagos +")";
}
}
}else if(status.equals("2")){
if(!funcionarios.equals("")){
AWhere=" WHERE ("+funcionarios+")";
}
if(!funcionariosOblidagos.equals("")){
if(AWhere.equals("") ){
AWhere=" where ( "+funcionariosOblidagos+" )";
}else{
AWhere+="or ( "+funcionariosOblidagos +")";
}
}
/*if(actual.getMonth()>=11 && actual.getMonth()<=12){
if(!AWhere.equals("")){
AWhere+=" and YEAR(fecha_declaracion)=YEAR(NOW()) ";
}
}else if(actual.getMonth()>=1 && actual.getMonth()<=9){
AWhere+=" and (YEAR(d.fecha_declaracion)=YEAR(NOW()) or (YEAR(d.fecha_declaracion)="+beforeyear+"))";
}*/
ls_query="SELECT * from (select a.id_altabaja, a.id_funcionario, d.id_declaracion "
+ "from altabaja a "
+ "LEFT JOIN declaration d ON d.id_altabaja=a.id_altabaja "
+ "LEFT JOIN puesto_funcionario pf ON pf.id_puesto_funcionario=a.id_puesto_funcionario "
//+ "where d.id_tipodeclaracion=1 and d.fecha_declaracion>'0000-00-00'"
+ AWhere +" "
+ " order by d.fecha_declaracion desc ) as t "
+ " group by id_altabaja"+";";
/*ls_query="SELECT * from (select a.id_altabaja, a.id_funcionario, d.id_declaracion "
+ "from altabaja a "
+ "LEFT JOIN declaration d ON d.id_altabaja=a.id_altabaja "
+ "LEFT JOIN puesto_funcionario pf ON pf.id_puesto_funcionario=a.id_puesto_funcionario "
//+ "where a.status=1 and d.id_tipodeclaracion=1 "
+ AWhere +" "
+ " order by a.fecha_alta"+";";*/
lrs_res = lst_stm.executeQuery(ls_query);
while (lrs_res.next()) {
ls_query="select * "
+ "from declaration d "
+ "where id_tipodeclaracion=2 "
+ "and (fecha_declaracion<='"+actualF+ "' and fecha_declaracion>='"+ FechaComparar+ "' ) "
//+ " and id_altabaja="+lrs_res.getString("id_altabaja")+""
+ " and id_declaracion="+lrs_res.getString("id_declaracion")+""
+ " order by fecha_declaracion DESC;";
lrs_res1 = lst_stm1.executeQuery(ls_query);
if(lrs_res1.next()){
}else{
if(funcionariosOmisos.equals("")){
funcionariosOmisos= " a.id_altabaja="+lrs_res.getString("id_altabaja")+" ";
}else{
funcionariosOmisos+= " or a.id_altabaja="+lrs_res.getString("id_altabaja")+" ";
}
}
}
if(!funcionariosOmisos.equals("")){
//if(!AWhere.equals("")){
AWhere=" WHERE ("+funcionariosOmisos+")";
/*AWhere="a.status=1 and d.id_tipodeclaracion=1 and ("+funcionariosOmisos+")";*/
/*}else{
AWhere=" where ("+funcionariosOmisos+")";
}*/
}else{
AWhere="WHERE a.id_funcionario<0";
}
}
ls_query="select count(a.id_altabaja) as total "
+ " from altabaja a "
//+ " LEFT JOIN puesto_funcionario pf ON pf.id_puesto_funcionario=a.id_puesto_funcionario "
//+ " LEFT JOIN dependencias de ON de.id_cat_dep_estatales=pf.id_dependencia "+ " "
+ AWhere +" ;";
//+ "group by id_altabaja;";
//out.println(ls_query);
lrs_res = lst_stm.executeQuery(ls_query);
if (lrs_res.next()) {
total_declaracion = lrs_res.getInt("total");
}
}else{
AWhere ="";
}
%>
Listado de Declaraciones
Total de Declaraciones <%=total_declaracion%>
<%
} catch (Exception e) {
emergent_error += "Error: " + e.toString() + " Ultimo query: " + ls_query;
%>
<%=emergent_error%>
<%
} finally {
lst_stm.close();
lst_stm1.close();
lcd_connection.close();
}
} else {
%>
<%=emergent_error%>
<%
}
if (!elementos_encontrados) {
%>
<%= "No se encontraron Declaraciones que coincidan con los criterios de búsqueda. "%>
<%
}
//Registrar en la bitácora
try {
String mensaje_log = new String("");
mensaje_log = "Usuario -" + session.getAttribute("username").toString() + "- desplegó lista de Declaraciones del sistema del tipo -" + request.getParameter("id_tipodeclaracion") + "- desde reportes;";
Config.GuardarLog(Integer.parseInt(session.getAttribute("id_user").toString()), mensaje_log, 3);
} catch (Exception e) {
}
%>