package gastostarjetaServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;

import m05bBD.m05bGastosTarjeta;
import m05bClasses.m05bComun;
import m05bClasses.m05bConexion;
import m05bClasses.m05bConstantes;
import m05bClasses.m05bFileLog;
import m05bClasses.m05bGenerarClave;



/**
 * Inserte aquí la descripción del tipo.
 * Fecha de creación: (17/06/05)
 */
public class m05bGastosTarjNuevoServlet extends javax.servlet.http.HttpServlet {m05bFileLog miLog = new m05bFileLog();
/**
 * Process incoming HTTP POST requests
 *
 * @param request Object that encapsulates the request to the servlet
 * @param response Object that encapsulates the response from the servlet
 */

	   

	
    String persona = "";
	m05bComun Comun = new m05bComun();
	String sMatricula ="";
	String sTotMatricula ="";
	String sTipo="";
	String sOrden ="";
	//String sConceptos="";
	//String sNumeroConceptos="";
	String sRango="";
    
public void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {

	performTask(request, response);

}

public void doGet (javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)throws javax.servlet.ServletException, java.io.IOException {
 
doPost (request, response);
}

/**
 * Returns the servlet info string.
 */
public String getServletInfo() {

	return super.getServletInfo();

}
/**
 * Initializes the servlet.
 */
public void init() {
	// insert code to initialize the servlet here
}


public void ejecutar(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response){

    sMatricula = request.getParameter("Matricula");
    //miLog.addTraza(persona, "Verificar Gastos Tarjeta", "MATRICULA: " + sMatricula, m05bConstantes.LOG_NIVEL_BAJO);

      
    sTipo = request.getParameter("Tipo")== null?"T":request.getParameter("Tipo");
    //miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "LISTA: " + sLista, m05bConstantes.LOG_NIVEL_BAJO);
    //miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "TIPO: " + sTipo, m05bConstantes.LOG_NIVEL_BAJO);
    sOrden = request.getParameter("Orden")==null?"ASC":request.getParameter("Orden");
    //sConceptos = request.getParameter("Conceptos")==null?"":request.getParameter("Conceptos");
    sTotMatricula=request.getParameter("CCMatricula")==null?"":request.getParameter("CCMatricula");
    //sNumeroConceptos=request.getParameter("NConceptos")==null?"":request.getParameter("NConceptos");
    sRango = request.getParameter("Rango")== null?"":request.getParameter("Rango");

    String sURL="";
	response.setHeader("Cache-Control", "no-cache");
	response.setHeader("Expires", "-1");
	response.setContentType("text/xml");
	String result="";
	if(request.getParameter("accion")!=null && request.getParameter("accion").equals("ANADIR")){
    	recuperar(request, response,"1");
	}else if(request.getParameter("accion")!=null && request.getParameter("accion").equals("GUARDAR")){
		 result = guardar(request,response);
 		if(result.equals("")){
 		    sURL = response.encodeRedirectURL("m05bVehGastosExtNuevoJsp.jsp?resultadoGuardar=OK&CCMatricula="+sTotMatricula+"&Tipo"+sTipo+"&Orden"+sOrden);
            RequestDispatcher rd;
            rd = request.getRequestDispatcher(sURL);
            try{
             rd.forward(request, response);
            }
            catch (ServletException e){
              System.err.println("Exception: OutletMaintenanceS.service: " + e);
              try {
				response.sendRedirect("m05bError.jsp");
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				miLog.addTraza(e1);
			}
            } catch (IOException e) {
				// TODO Auto-generated catch block
				miLog.addTraza(e);
			}
	   }else if (result.equals("ERROR")){
		    sURL = response.encodeRedirectURL("m05bVehGastosExtNuevoJsp.jsp?resultadoGuardar=ERROR&CCMatricula="+sTotMatricula+"&Tipo"+sTipo+"&Orden"+sOrden);
            RequestDispatcher rd;
           rd = request.getRequestDispatcher(sURL);
        try{
           try {
			rd.forward(request, response);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			miLog.addTraza(e);
		}
        }
        catch (ServletException e){
          System.err.println("Exception: OutletMaintenanceS.service: " + e);
          try {
			response.sendRedirect("m05bError.jsp");
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			miLog.addTraza(e1);
		}
        }

	}}   else if(request.getParameter("accion")!=null && request.getParameter("accion").equals("RECUPERAR2")){
		//obtener(request,response);
		recuperarNuevo(request, response,"2");

	}else if(request.getParameter("accion")!=null && request.getParameter("accion").equals("RECUPERAR")){
		obtener(request,response);
		

	}

}

/**
 * Actualiza la ubicacion del vehículo.
 */






private void recuperar(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response,String tipo){
	java.sql.Connection conn=null;
	m05bConexion miConex = new m05bConexion();
	

	LinkedHashMap  listaGastos = (LinkedHashMap )request.getSession().getAttribute("listaGastos");
	if(listaGastos!=null)
		request.getSession().removeAttribute("listaGastos");
	    listaGastos = null;
	if(listaGastos==null)
		listaGastos = new LinkedHashMap ();
    String sql;
	PreparedStatement pstmt = null;	
	ResultSet rs = null;

    boolean existeExp = false;
    PrintWriter wr = null;
 
    try {
    	wr = (PrintWriter)response.getWriter();
    	 HttpSession session = request.getSession(true);
  	   	Locale idiomaLocal = (Locale)session.getAttribute("Local");
  			String idiomaSes = ((idiomaLocal.getLanguage()==null)?"es":idiomaLocal.getLanguage());	
  			String campoTexto="";
  		  
  	      if(!idiomaSes.equals("es")){
  		campoTexto="E";
  			
  	      }	
   		sql = this.queryObtenerExp(sMatricula,sTipo,sOrden,idiomaSes);
 

    	conn = miConex.getConnection();
		pstmt = conn.prepareStatement(sql);
		rs = pstmt.executeQuery();
		String Tarjeta="", TipoG="", Control="", Concepto="", Nombre="";
		String Fecha="",  Importe="", Km="", Litros="", Ver="", Cargabon="";
		
        while (rs.next()) {
        	existeExp = true;
            Tarjeta=rs.getString(m05bConstantes.COL_18_TARJETA);
            TipoG=rs.getString(m05bConstantes.COL_18_TIPO);
            Concepto=rs.getString(campoTexto+"DESCRIP_99");
            if (Concepto.equals("PEAJE AUTOPISTAS")) {
					Concepto = "PEAJE";
            }
            Nombre=rs.getString(m05bConstantes.COL_18_NCOMERCIO)==null?"":rs.getString(m05bConstantes.COL_18_NCOMERCIO);
            Fecha=rs.getString(5);
            Control=rs.getString(m05bConstantes.COL_18_CONTROL);

            if (Fecha==null || Fecha.equals("")){
                Fecha="";
                //Hora="";
            }
            //else{
                //Hora=Comun.Hora(Fecha);
                //Hora=Comun.formatearHora(Hora);
                //Fecha=Comun.Mes(Fecha);

            //}
            Importe=rs.getString(m05bConstantes.COL_18_IMPORTE);
            Km=rs.getString(m05bConstantes.COL_18_KM);
            Litros=rs.getString(m05bConstantes.COL_18_LITROS);
            if (Km==null || Km.equals(""))
                Km="";
            if (Litros==null || Litros.equals(""))
                Litros="";

            Ver=rs.getString(m05bConstantes.COL_18_VERIFIC);
            Cargabon=rs.getString(m05bConstantes.COL_18_CARGO);
            
         	String CLAVE = Control;
        	m05bGastosTarjeta gasto = new m05bGastosTarjeta();
        	

         	
        	gasto.setGastar_tarjeta(Tarjeta);
        	gasto.setGastar_cargo(Cargabon);
        	gasto.setGastar_concepto(Concepto);
        	gasto.setGastar_ncomercio(Nombre);
        	gasto.setGastar_fecha(Fecha);
        	gasto.getGastar_fecha();
        	gasto.setGastar_importe(Importe);
        	gasto.setGastar_km(Km);
        	gasto.setGastar_litros(Litros);
        	gasto.setGastar_tipo(TipoG);
        	gasto.setGastar_verifi(Ver);
        	gasto.setGastar_control(Control);
          	if(!listaGastos.containsKey(CLAVE))
        		listaGastos.put(CLAVE, gasto);
        }    
        if(!existeExp)
        	//forward(request, response, r76bCPaginas.LIST_ACUSE_RECIBO+"?error=noExp");
        	wr.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?><resultado><tipo>ERROR-noExp</tipo></resultado>");
        else{
        	//TODO OK
        	request.getSession().setAttribute("listaGastos",listaGastos);
        	//forward(request, response, r76bCPaginas.LIST_ACUSE_RECIBO);	
        	wr.println(obtenerXmlFromGastosR(listaGastos,conn,tipo,idiomaSes));
        }
        
    } catch (SQLException e) {
     	try {rs.close();}         catch (Exception rse) {}
        try {pstmt.close();}         catch (Exception sse) {}
        try {conn.close();} catch (Exception cse) {}
        //forward(request, response, r76bCPaginas.LIST_ACUSE_RECIBO+"?error="+e2.getMessage());
        wr.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?><resultado><tipo>ERROR-"+e.getMessage()+"</tipo></resultado>");
        
    }catch (Exception e2) {	
 
    	try {rs.close();}         catch (Exception rse) {}
        try {pstmt.close();}         catch (Exception sse) {}
        try {conn.close();} catch (Exception cse) {}
        //forward(request, response, r76bCPaginas.LIST_ACUSE_RECIBO+"?error="+e2.getMessage());
        wr.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?><resultado><tipo>ERROR-"+e2.getMessage()+"</tipo></resultado>");
        
    }finally {
    	try {rs.close();}         catch (Exception rse) {}
    	try {pstmt.close();}         catch (Exception sse) {}
    	try {conn.close();} catch (Exception cse) {}
    }
}

private void recuperarNuevo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response,String tipo){
	java.sql.Connection conn=null;
	m05bConexion miConex = new m05bConexion();
	

	LinkedHashMap  listaGastos = (LinkedHashMap )request.getSession().getAttribute("listaGastos");
	if(listaGastos!=null)
		request.getSession().removeAttribute("listaGastos");
	    listaGastos = null;
	if(listaGastos==null)
		listaGastos = new LinkedHashMap ();
    String sql;
	PreparedStatement pstmt = null;	
	ResultSet rs = null;

    boolean existeExp = false;
    PrintWriter wr = null;
 
    try {
    	wr = (PrintWriter)response.getWriter();
    	 HttpSession session = request.getSession(true);
 	   	Locale idiomaLocal = (Locale)session.getAttribute("Local");
 			String idiomaSes = ((idiomaLocal.getLanguage()==null)?"es":idiomaLocal.getLanguage());	
 			String campoTexto="";
 			if(!idiomaSes.equals("es")){
 		  		campoTexto="E";
 		  			
 		  	      }	
   		sql = this.queryObtenerExp(sMatricula,sTipo,sOrden,idiomaSes);
 
   	
    	conn = miConex.getConnection();
		pstmt = conn.prepareStatement(sql);
		rs = pstmt.executeQuery();
		String Tarjeta="", TipoG="", Control="", Concepto="", Nombre="";
		String Fecha="",  Importe="", Km="", Litros="", Ver="", Cargabon="";
		
        while (rs.next()) {
            Tarjeta=rs.getString(m05bConstantes.COL_18_TARJETA);
            TipoG=rs.getString(m05bConstantes.COL_18_TIPO);
            Concepto=rs.getString(campoTexto+"DESCRIP_99");
            if (Concepto.equals("PEAJE AUTOPISTAS")) {
					Concepto = "PEAJE";
            }
            Nombre=rs.getString(m05bConstantes.COL_18_NCOMERCIO)==null?"":rs.getString(m05bConstantes.COL_18_NCOMERCIO);
            Fecha=rs.getString(5);
            Control=rs.getString(m05bConstantes.COL_18_CONTROL);

            if (Fecha==null || Fecha.equals("")){
                Fecha="";
                //Hora="";
            }
            //else{
                //Hora=Comun.Hora(Fecha);
                //Hora=Comun.formatearHora(Hora);
                //Fecha=Comun.Mes(Fecha);

            //}
            Importe=rs.getString(m05bConstantes.COL_18_IMPORTE);
            Km=rs.getString(m05bConstantes.COL_18_KM);
            Litros=rs.getString(m05bConstantes.COL_18_LITROS);
            if (Km==null || Km.equals(""))
                Km="";
            if (Litros==null || Litros.equals(""))
                Litros="";

            Ver=rs.getString(m05bConstantes.COL_18_VERIFIC);
            Cargabon=rs.getString(m05bConstantes.COL_18_CARGO);
            
         	String CLAVE = Control;
        	m05bGastosTarjeta gasto = new m05bGastosTarjeta();
        	

         	
        	gasto.setGastar_tarjeta(Tarjeta);
        	gasto.setGastar_cargo(Cargabon);
        	gasto.setGastar_concepto(Concepto);
        	gasto.setGastar_ncomercio(Nombre);
        	gasto.setGastar_fecha(Fecha);
        	gasto.getGastar_fecha();
        	gasto.setGastar_importe(Importe);
        	gasto.setGastar_km(Km);
        	gasto.setGastar_litros(Litros);
        	gasto.setGastar_tipo(TipoG);
        	gasto.setGastar_verifi(Ver);
        	gasto.setGastar_control(Control);
          	if(!listaGastos.containsKey(CLAVE))
        		listaGastos.put(CLAVE, gasto);
        }    

        	//TODO OK
        	request.getSession().setAttribute("listaGastos",listaGastos);
        	//forward(request, response, r76bCPaginas.LIST_ACUSE_RECIBO);	
        	wr.println(obtenerXmlFromGastosR(listaGastos,conn,tipo,idiomaSes));
        
    } catch (SQLException e) {
     	try {rs.close();}         catch (Exception rse) {}
        try {pstmt.close();}         catch (Exception sse) {}
        try {conn.close();} catch (Exception cse) {}
        //forward(request, response, r76bCPaginas.LIST_ACUSE_RECIBO+"?error="+e2.getMessage());
        wr.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?><resultado><tipo>ERROR-"+e.getMessage()+"</tipo></resultado>");
        
    }catch (Exception e2) {	
 
    	try {rs.close();}         catch (Exception rse) {}
        try {pstmt.close();}         catch (Exception sse) {}
        try {conn.close();} catch (Exception cse) {}
        //forward(request, response, r76bCPaginas.LIST_ACUSE_RECIBO+"?error="+e2.getMessage());
        wr.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?><resultado><tipo>ERROR-"+e2.getMessage()+"</tipo></resultado>");
        
    }finally {
    	try {rs.close();}         catch (Exception rse) {}
    	try {pstmt.close();}         catch (Exception sse) {}
    	try {conn.close();} catch (Exception cse) {}
    }
}



private String guardar(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response){
	String numReg = request.getParameter("numeroTotReg");
	//String sRango= request.getParameter("Rango");
	java.sql.Connection conn=null;
	m05bConexion miConex = new m05bConexion();
String control,chkgrabar,chkbaja,km,verificado,fecha="",hora="",tarjeta="",matricula="";

	HashMap errores = new HashMap();
	String erroresResult = "";
	try {
		conn = miConex.getConnection();
		conn.setAutoCommit(false);
    	for(int i=0;i<Integer.parseInt(numReg);i++){
    		control = request.getParameter("Codigo"+(i));
    		chkgrabar=request.getParameter("chGrabar"+(i));
    		chkbaja=request.getParameter("chBaja"+(i));
    		tarjeta=request.getParameter("Tarjeta"+(i));
    		matricula=request.getParameter("Matricula");
    		//String anoExp = exp.substring(exp.length()-4,exp.length());
    		//String numeroExp = exp.substring(1,exp.length()-5);
    		//fecha=request.getParameter("Fecha"+(i));
    		km = request.getParameter("Km"+(i));
    		//litros = request.getParameter("Litros"+(i));
    		verificado = request.getParameter("chVerif"+(i));
    		if (verificado!=null){
    			verificado="S";
    		}else{
    			verificado="N";    			
    		}
    		fecha = request.getParameter("Fecha"+(i));
    		if (fecha==null){
    			fecha="";	
    		}
    		
    		hora=request.getParameter("Hora"+(i));
    		if (hora==null){
    			hora="00:00";
    		}
    		if (chkgrabar!=null){
    		    //if (sRango.equals("D1")){
    		      //inserta(conn,request);
    		    //}
    			if (chkbaja!=null){
    				eliminar(conn,control,request);
    			}else{
    			  if (!(fecha.equals("")) ) {
    		         actualiza(conn,control,tarjeta,km,fecha,hora,verificado,matricula,request);
    			   }
    			}
    		}
    		//Lo de victor
    	}
	    	conn.commit();
    	//Creo el mensaje a visualizar en la pantalla de salidas no actualizadas
    	Iterator it = errores.entrySet().iterator();
    	while (it.hasNext()) {
    	    Map.Entry e = (Map.Entry)it.next();
    	    if(erroresResult.equals("")){
    	    	erroresResult=(String)e.getValue();;
    	    }else{
    	    	erroresResult= erroresResult+"#"+(String)e.getValue();
    	    }
    	}
    	return erroresResult;
	} catch (Exception e) {
		// TODO Auto-generated catch block
		miLog.addTraza(e);
		try {
			conn.rollback();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			miLog.addTraza(e1);
		}
		return "ERROR";
	} finally{
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				miLog.addTraza(e1);
			}
		}
	}
}



private void actualiza(java.sql.Connection lconConexion, String control,String tarjeta,String Km, String Fecha,String Hora,String Verificado, String matricula,javax.servlet.http.HttpServletRequest request) throws Exception{

	
	String sql = "";
	String Km2="",Km3="";
	PreparedStatement pstmt = null;
	ResultSet rs = null;
    String centro="";

	


	Km2=Km;
	if (!((Km2.equals("null"))||(Km2.equals(""))))
	 	
    Km2=Comun.ImportesABasedatos(Km2);
	long idOpeBancos = 0;
	
	LinkedHashMap  listaGastos = (LinkedHashMap )request.getSession().getAttribute("listaGastos");  
   try {
		 HttpSession session = request.getSession(true);
	 	   	Locale idiomaLocal = (Locale)session.getAttribute("Local");
	 			String idiomaSes = ((idiomaLocal.getLanguage()==null)?"es":idiomaLocal.getLanguage());	
	 			String campoTexto="";
	 			String formatoFecha="dd/MM/yyyy";
	 			if(!idiomaSes.equals("es")){
	 		  		campoTexto="E";
	 		  		formatoFecha="yyyy/MM/dd";
	 		  			
	 		  	      }	
		String CLAVE = control;
		if ((!(listaGastos.containsKey(CLAVE))) && (!(CLAVE.equals("")))){
			
			sql=" SELECT " + m05bConstantes.COL_31_CENTRO+ " FROM " + 
		 	 m05bConstantes.TAB_TARJETAS +
		 	 " WHERE "+ m05bConstantes.COL_31_MATRICULA + " = '"+sMatricula+"' AND " +
		 	 m05bConstantes.COL_31_TARJETA+"='"+tarjeta+"'";
			pstmt = lconConexion.prepareStatement(sql);
			rs = pstmt.executeQuery();
		    if (rs.next()) {
		    	 centro=rs.getString(m05bConstantes.COL_31_CENTRO);
		    	 if (centro==null){
		    		 centro="";
		    	 }
		    }
			m05bGenerarClave miId = new m05bGenerarClave();
			idOpeBancos = miId.getNextId(m05bConstantes.TAB_OPEBANCOS, m05bConstantes.COL_18_CONTROL);
	        sql = " insert into " + m05bConstantes.TAB_OPEBANCOS  +
	   	   	" ( " + m05bConstantes.COL_18_TARJETA + ",  " + m05bConstantes.COL_18_TIPO + ",  " + m05bConstantes.COL_18_CONCEPTO + 
	   	    ",  " + m05bConstantes.COL_18_ESTAB + ",  " + m05bConstantes.COL_18_FECHA + ",  " + m05bConstantes.COL_18_IMPORTE + 
	   	    ",  " + m05bConstantes.COL_18_VERIFIC + ",  " + m05bConstantes.COL_18_CARGO + ",  " + m05bConstantes.COL_18_MATRICULA + 
	   	    ",  " + m05bConstantes.COL_18_CONTROL + ",  " + m05bConstantes.COL_18_ESTCIF + ",  " + m05bConstantes.COL_18_CENTRO +
	   	    ",  " + m05bConstantes.COL_18_UECONO + ",  " + m05bConstantes.COL_18_NCOMERCIO +","+m05bConstantes.COL_18_KM+","+m05bConstantes.COL_18_LITROS+")" +
			" values ('" + tarjeta + "', 'C', 'COMBUSTIBLE', 'X', TO_DATE('" + Fecha +" "+Hora + "','"+formatoFecha+" HH24:mi'), null" +
	 		", '"+Verificado+"', 'C', '" + sMatricula +
	 		"', " + control + ", '', '" + centro + "', '1', '',TO_NUMBER("+Km2+"),null)"; 
			miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "sql " + sql, m05bConstantes.LOG_NIVEL_BAJO);				
			pstmt = lconConexion.prepareStatement(sql);
			pstmt.executeUpdate();	
         	CLAVE = ""+idOpeBancos;
        	m05bGastosTarjeta gasto = new m05bGastosTarjeta();
        	gasto.setGastar_tarjeta(tarjeta);
        	gasto.setGastar_cargo("C");
        	gasto.setGastar_concepto("COMBUSTIBLE");
        	gasto.setGastar_ncomercio("");
        	gasto.setGastar_fecha(Fecha+" "+Hora);
        	gasto.setGastar_importe("");
        	gasto.setGastar_km(Km2);
        	gasto.setGastar_litros("");
        	gasto.setGastar_tipo("C");
        	gasto.setGastar_verifi(Verificado);
        	gasto.setGastar_control(""+idOpeBancos);
          	if(!listaGastos.containsKey(CLAVE))
        		listaGastos.put(CLAVE, gasto);
		}else{
		if ((Km2.equals("null"))||(Km2.equals("")))		
			Km2=null;
			sql = "update " + m05bConstantes.TAB_OPEBANCOS +
					" set " + m05bConstantes.COL_18_KM + " = " + Km2 +
					//" , " + m05bConstantes.COL_18_LITROS + " = " + Litros2 + 
					" , " + m05bConstantes.COL_18_VERIFIC + " = '" + Verificado + "'" +
					" , " + m05bConstantes.COL_18_FECHA + " = TO_DATE('" + Fecha+" "+Hora + "','"+formatoFecha+"  hh24:mi')" +
					" where "+ m05bConstantes.COL_18_CONTROL +" = '" + control + "'" ;
			miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "sql " + sql, m05bConstantes.LOG_NIVEL_BAJO);				
			pstmt = lconConexion.prepareStatement(sql);
			pstmt.executeUpdate();
			// Actualizar los km y la fecha actuales del vehiculo


		}
		 if ((Km2.equals("null"))||(Km2.equals("")))		
			Km2=null;
		 if ((Km2==null)||(Km2.equals(""))){
		 	 Km3 = "0";
		     Km3=Comun.ImportesABasedatos(Km3);
         }else{
      	    Km3=Km2;
          }
		    sql="update	" + m05bConstantes.TAB_VEHICULOS +
					" set " + m05bConstantes.COL_34_KMACTUALES + " = " + Km3 + 
					" ,  " + m05bConstantes.COL_34_FKMACT + "= TO_DATE ('" + Fecha + "','"+formatoFecha+"') " +
					" where " + m05bConstantes.COL_34_MATRICULA + " = '" + sMatricula + "' AND TO_CHAR("+
		            m05bConstantes.COL_34_FKMACT+",'"+formatoFecha+"')<=TO_CHAR(TO_DATE('"+Fecha+"','"+formatoFecha+"'),'"+formatoFecha+" ') AND  "+m05bConstantes.COL_34_KMACTUALES +
			        "<='"+Km3+"'";
            miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC , "sqlUpdate Vedhiculos: " + sql,m05bConstantes.LOG_NIVEL_BAJO);
			
			pstmt = lconConexion.prepareStatement(sql);
			pstmt.executeUpdate();
   } catch (Exception ex) {
   	   		//miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "fncVerificar - EXCEPTION: " + ex.toString(), m05bConstantes.LOG_NIVEL_BAJO);
  			throw new Exception(ex);
   } 	finally{
		if (rs != null)
			rs.close();				   
			if (pstmt != null)
				pstmt.close();

   }

	//Ahora lo cambiamos en sesión

	if(listaGastos==null)
		listaGastos = new LinkedHashMap ();
	String CLAVE = control;
	if(listaGastos.containsKey(CLAVE)){
		m05bGastosTarjeta gasto = (m05bGastosTarjeta)listaGastos.get(CLAVE);
		gasto.setGastar_km(Km);
		//gasto.setGastar_litros(Litros);
		gasto.setGastar_verifi(Verificado);
		gasto.setGastar_fecha(Fecha+" "+Hora );
		//gasto.setGastar_hora(Verificado);
	}
	request.getSession().setAttribute("listaGastos",listaGastos);
}


private void eliminar(java.sql.Connection lconConexion, String control, javax.servlet.http.HttpServletRequest request) throws Exception{

	String sql = "";
	

    PreparedStatement pstmt = null;

   try {
  			sql = "DELETE " + m05bConstantes.TAB_OPEBANCOS +
   				  " where "+ m05bConstantes.COL_18_CONTROL +" = '" + control + "'" ;
			miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "sql " + sql, m05bConstantes.LOG_NIVEL_BAJO);				
			pstmt = lconConexion.prepareStatement(sql);
			pstmt.executeUpdate();
			// Actualizar los km y la fecha actuales del vehiculo

   } catch (Exception ex) {
   	   		//miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "fncVerificar - EXCEPTION: " + ex.toString(), m05bConstantes.LOG_NIVEL_BAJO);
  			throw new Exception(ex);
   } 	finally{
			if (pstmt != null)
				pstmt.close();
   }

	LinkedHashMap  listaGastos = (LinkedHashMap )request.getSession().getAttribute("listaGastos");
	if(listaGastos==null)
		listaGastos = new LinkedHashMap ();
	String CLAVE = control;
	if(listaGastos.containsKey(CLAVE)){
		listaGastos.remove(CLAVE);

	}
	request.getSession().setAttribute("listaGastos",listaGastos);
}




private String queryObtenerExp(String matricula,String tipo,String orden,String idiomaSes) throws Exception{

	StringBuffer sql2= new StringBuffer();
	//String anoExp = expediente.substring(expediente.length()-4,expediente.length());
	//String numeroExp = expediente.substring(0,expediente.length()-5);
	//try{
		//long numExp = new Long(numeroExp).longValue();
	//}catch(Exception e){
		//throw new Exception("numExpNoNum");
	//}
	 String formatoFecha="dd/mm/YYYY HH24:mi";
	  String campoTexto="";
	  
     if(!idiomaSes.equals("es")){
	campoTexto="E";
			formatoFecha="YYYY/mm/dd HH24:mi";
     }
	sql2.append("SELECT ").append(m05bConstantes.COL_18_TARJETA).append(",");
	sql2.append(m05bConstantes.COL_18_TIPO).append(",");
	sql2.append("NVL(");
	sql2.append(campoTexto).append("DESCRIP_99");
	sql2.append(",DESCRIP_99) AS ");
	sql2.append(campoTexto).append("DESCRIP_99");
	sql2.append(",").append(m05bConstantes.COL_18_NCOMERCIO).append(",TO_CHAR(");
	sql2.append(m05bConstantes.COL_18_FECHA).append(",'"+formatoFecha+"'),").append(m05bConstantes.COL_18_IMPORTE);
	sql2.append(",").append(m05bConstantes.COL_18_KM).append(",").append(m05bConstantes.COL_18_LITROS);
	sql2.append(",").append(m05bConstantes.COL_18_VERIFIC).append(",").append(m05bConstantes.COL_18_CARGO);
	sql2.append(",").append(m05bConstantes.COL_18_CONTROL);
	sql2.append(",").append(m05bConstantes.COL_18_CARGO);
	sql2.append(" FROM ").append(m05bConstantes.TAB_OPEBANCOS).append(" inner join m0599t00 on tipo_18=COD_DESC_99 and COD_TAB_99=2");
	sql2.append(" WHERE ").append(m05bConstantes.COL_18_MATRICULA);
	sql2.append("='").append(matricula).append("'");
	if (tipo.equals("NV")) {
		sql2.append(" AND ").append(m05bConstantes.COL_18_VERIFIC).append("='N'");
	}
	sql2.append(" AND ").append(m05bConstantes.COL_18_ESTAB).append("='X'");
	//if (!(sConceptos.equals(""))){
		//sql2.append(" AND ").append(m05bConstantes.COL_18_TIPO).append(" in (").append(sConceptos).append(")");
	//}
	//sql2.append(" AND ").append(m05bConstantes.COL_18_CONCEPTO).append(" in (").append(concepto).append(")");
	sql2.append(" 	ORDER BY  ").append(m05bConstantes.COL_18_FECHA).append(" ").append(orden).append(", ").append(m05bConstantes.COL_18_TARJETA);
    miLog.addTraza(persona , "m05bVehGastos" , "sql: " + sql2.toString(), m05bConstantes.LOG_NIVEL_BAJO);
	return sql2.toString();
}



private StringBuffer obtenerXmlFromGastos(LinkedHashMap  lista,java.sql.Connection lconConexion,String idioma)throws Exception{
	//String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
	
	String Fecha2="";
	StringBuffer str = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
	str.append("<resultado>");
	str.append("<tipo>OK</tipo>");
	str.append("<datos>");
	   String sql = "";
	   PreparedStatement pstmt = null;
	   ResultSet rs = null;
	   try {
		   
           //miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "LITROS: " + Litros, m05bConstantes.LOG_NIVEL_BAJO);
	long idOpeBancos = 0;
	m05bGenerarClave miId = new m05bGenerarClave();
	idOpeBancos = miId.getNextId(m05bConstantes.TAB_OPEBANCOS, m05bConstantes.COL_18_CONTROL);
   
	String  verificado=m05bConstantes.VERIFICADO_NO;
	   
	sql=" SELECT " + m05bConstantes.COL_31_TARJETA +" FROM " + 
	 	m05bConstantes.TAB_TARJETAS +","+m05bConstantes.TAB_VEHICULOS+
	 	" WHERE "+ m05bConstantes.COL_31_MATRICULA + " = '"+sMatricula+"'" +
	 	" AND "+ m05bConstantes.COL_31_MATRICULA + " = "+m05bConstantes.COL_34_MATRICULA +
	 	" AND "+ m05bConstantes.COL_31_TIPO + " = '"+m05bConstantes.TAR_GASTO+"'";

	   miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "sql " + sql, m05bConstantes.LOG_NIVEL_BAJO);		
	   pstmt = lconConexion.prepareStatement(sql);
	   rs = pstmt.executeQuery();
      if (rs.next()) {
       str.append("<gasto>");
	    str.append("<tarjeta>" + rs.getString(m05bConstantes.COL_31_TARJETA)+ "</tarjeta>");
	    str.append("<cargo>" + "C" + "</cargo>");
	    str.append("<tipog>" + "C" + "</tipog>");
	     if(idioma.equals("es"))
			    str.append("<concepto>" + "COMBUSTIBLE" + "</concepto>");
			    else
			    	str.append("<concepto>" + "ERREGAIA" + "</concepto>");
	    str.append("<ncomercio>" + "-"+ "</ncomercio>");
	    str.append("<fecha>" + "-" + "</fecha>");
	    str.append("<hora>" + "-" + "</hora>");
	    str.append("<km>" + "-" + "</km>");
	    str.append("<litros>" + "-" + "</litros>");
		str.append("<importe>" +"-"+ "</importe>");
		str.append("<verifi>" + rs.getString(m05bConstantes.COL_31_TARJETA) + "</verifi>");
		str.append("<control>" + idOpeBancos+ "</control>");
		str.append("</gasto>");
      }
  } catch (Exception ex) {
	   		//miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "fncVerificar - EXCEPTION: " + ex.toString(), m05bConstantes.LOG_NIVEL_BAJO);
		throw new Exception(ex);
} 	finally{
		if (pstmt != null)
			pstmt.close();
		if (rs != null)
			rs.close();
}	
	Iterator it = lista.entrySet().iterator();


	while (it.hasNext()) {
	    Map.Entry e = (Map.Entry)it.next();
	    m05bGastosTarjeta gasto = (m05bGastosTarjeta)e.getValue();
	    if (!(sTipo.equals("T"))){
    	 if (gasto.getGastar_verifi().equals("N")){	
    		 str.append("<gasto>");
	    //xml += "<tarjeta>" + (String)e.getKey()+ "</tarjeta>";


    		 str.append("<tarjeta>" + gasto.getGastar_tarjeta()+ "</tarjeta>");
    		 str.append("<cargo>" + gasto.getGastar_cargo() + "</cargo>");
    		 str.append("<tipog>" + gasto.getGastar_tipo() + "</tipog>");
    		 str.append("<concepto>" + gasto.getGastar_concepto() + "</concepto>");
    		 str.append("<ncomercio>" + ((gasto.getGastar_ncomercio()==null||gasto.getGastar_ncomercio().trim().equals(""))?"-":gasto.getGastar_ncomercio()) + "</ncomercio>");
	    //xml += "<fecha>" + gasto.getGastar_fecha() + "</fecha>";
	    Fecha2=gasto.getGastar_fecha();
	    //if (!(Fecha2.equals(""))){
            //Hora=Comun.Hora(gasto.getGastar_fecha());
            //Hora=Comun.formatearHora(Hora);	   
            //Fecha2=Comun.Mes(Fecha2);
 
        //}
	    //}
	    str.append("<fecha>" + Comun.Fecha2(Fecha2) + "</fecha>");
	    str.append("<hora>" + Comun.Hora(Fecha2) + "</hora>");
	    str.append("<km>" + ((gasto.getGastar_km()==null||gasto.getGastar_km().trim().equals(""))?"-":gasto.getGastar_km()) + "</km>");
	    str.append( "<litros>" + ((gasto.getGastar_litros()==null||gasto.getGastar_litros().trim().equals(""))?"-":gasto.getGastar_litros()) + "</litros>");
	    str.append("<importe>" + ((gasto.getGastar_importe()==null||gasto.getGastar_importe().trim().equals(""))?"-":gasto.getGastar_importe()) + "</importe>");
	    str.append("<verifi>" + ((gasto.getGastar_verifi()==null||gasto.getGastar_verifi().trim().equals(""))?"nbsp;":gasto.getGastar_verifi()) + "</verifi>");
	    str.append("<control>" + ((gasto.getGastar_control()==null||gasto.getGastar_control().trim().equals(""))?"nbsp;":gasto.getGastar_control()) + "</control>");
	    str.append("</gasto>");
	    	}

	    }else{
	    	str.append("<gasto>");
			    //xml += "<tarjeta>" + (String)e.getKey()+ "</tarjeta>";


	    	str.append("<tarjeta>" + gasto.getGastar_tarjeta()+ "</tarjeta>");
	    	str.append("<cargo>" + gasto.getGastar_cargo() + "</cargo>");
	    	str.append("<tipog>" + gasto.getGastar_tipo() + "</tipog>");
	    	str.append( "<concepto>" + gasto.getGastar_concepto() + "</concepto>");
	    	str.append("<ncomercio>" + ((gasto.getGastar_ncomercio()==null||gasto.getGastar_ncomercio().trim().equals(""))?"-":gasto.getGastar_ncomercio()) + "</ncomercio>");
			    //xml += "<fecha>" + gasto.getGastar_fecha() + "</fecha>";
			    Fecha2=gasto.getGastar_fecha();
			    //if (!(Fecha2.equals(""))){
		            //Hora=Comun.Hora(gasto.getGastar_fecha());
		            //Hora=Comun.formatearHora(Hora);	   
		            //Fecha2=Comun.Mes(Fecha2);
		 
		        //}
			    //}
			    str.append("<fecha>" + Comun.Fecha2(Fecha2) + "</fecha>");
			    str.append("<hora>" + Comun.Hora(Fecha2) + "</hora>");
			    str.append("<km>" + ((gasto.getGastar_km()==null||gasto.getGastar_km().trim().equals(""))?"-":gasto.getGastar_km()) + "</km>");
			    str.append("<litros>" + ((gasto.getGastar_litros()==null||gasto.getGastar_litros().trim().equals(""))?"-":gasto.getGastar_litros()) + "</litros>");
			    str.append("<importe>" + ((gasto.getGastar_importe()==null||gasto.getGastar_importe().trim().equals(""))?"-":gasto.getGastar_importe())  + "</importe>");
			    str.append("<verifi>" + ((gasto.getGastar_verifi()==null||gasto.getGastar_verifi().trim().equals(""))?"nbsp;":gasto.getGastar_verifi()) + "</verifi>");
			    str.append("<control>" + ((gasto.getGastar_control()==null||gasto.getGastar_control().trim().equals(""))?"nbsp;":gasto.getGastar_control()) + "</control>");
			    str.append("</gasto>");
	    }

	}



	str.append("</datos>");
	str.append("</resultado>");
	return str;
}


private StringBuffer obtenerXmlFromGastosR(LinkedHashMap  lista,java.sql.Connection lconConexion,String tipo2,String idioma)throws Exception{
	//String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
	StringBuffer str = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
	String Fecha2="";
	str.append("<resultado>");
	str.append("<tipo>OK</tipo>");
	str.append("<datos>");
	if (tipo2.equals("2")){
		   String sql = "";
		   PreparedStatement pstmt = null;
		   ResultSet rs = null;
		   try {
			   
	           //miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "LITROS: " + Litros, m05bConstantes.LOG_NIVEL_BAJO);
		long idOpeBancos = 0;
		m05bGenerarClave miId = new m05bGenerarClave();
		idOpeBancos = miId.getNextId(m05bConstantes.TAB_OPEBANCOS, m05bConstantes.COL_18_CONTROL);
	  	String verificado=m05bConstantes.VERIFICADO_NO;
		   
		sql=" SELECT " + m05bConstantes.COL_31_TARJETA +" FROM " + 
		 	m05bConstantes.TAB_TARJETAS +","+m05bConstantes.TAB_VEHICULOS+
		 	" WHERE "+ m05bConstantes.COL_31_MATRICULA + " = '"+sMatricula+"'" +
		 	" AND "+ m05bConstantes.COL_31_MATRICULA + " = "+m05bConstantes.COL_34_MATRICULA +
		 	" AND "+ m05bConstantes.COL_31_TIPO + " = '"+m05bConstantes.TAR_GASTO+"'";

		   miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "sql " + sql, m05bConstantes.LOG_NIVEL_BAJO);		
		   pstmt = lconConexion.prepareStatement(sql);
		   rs = pstmt.executeQuery();
	      if (rs.next()) {
	       str.append("<gasto>");
		    str.append("<tarjeta>" + rs.getString(m05bConstantes.COL_31_TARJETA)+ "</tarjeta>");
		    str.append("<cargo>" + "C" + "</cargo>");
		    str.append("<tipog>" + "C" + "</tipog>");
		     if(idioma.equals("es"))
		    str.append("<concepto>" + "COMBUSTIBLE" + "</concepto>");
		    else
		    	str.append("<concepto>" + "ERREGAIA" + "</concepto>");
		    str.append("<ncomercio>" + "-"+ "</ncomercio>");
		    str.append("<fecha>" + "-" + "</fecha>");
		    str.append("<hora>" + "-" + "</hora>");
		    str.append("<km>" + "-" + "</km>");
		    str.append("<litros>" + "-" + "</litros>");
			str.append("<importe>" +"-"+ "</importe>");
			str.append("<verifi>" + verificado + "</verifi>");
			str.append("<control>" + idOpeBancos+ "</control>");
			str.append("</gasto>");
	      }
	  } catch (Exception ex) {
		   		//miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "fncVerificar - EXCEPTION: " + ex.toString(), m05bConstantes.LOG_NIVEL_BAJO);
			throw new Exception(ex);
	} 	finally{
			if (pstmt != null)
				pstmt.close();
			if (rs != null)
				rs.close();
	}	
		
	}
	
	Iterator it = lista.entrySet().iterator();


	while (it.hasNext()) {
	    Map.Entry e = (Map.Entry)it.next();
	    m05bGastosTarjeta gasto = (m05bGastosTarjeta)e.getValue();
	    str.append("<gasto>");
	    str.append("<tarjeta>" + gasto.getGastar_tarjeta()+ "</tarjeta>");
	    str.append("<cargo>" + gasto.getGastar_cargo() + "</cargo>");
	    str.append("<tipog>" + gasto.getGastar_tipo() + "</tipog>");
	    str.append("<concepto>" + gasto.getGastar_concepto() + "</concepto>");
	    str.append("<ncomercio>" + ((gasto.getGastar_ncomercio()==null||gasto.getGastar_ncomercio().trim().equals(""))?"-":gasto.getGastar_ncomercio()) + "</ncomercio>");
			    Fecha2=gasto.getGastar_fecha();

			    str.append("<fecha>" + Comun.Fecha2(Fecha2) + "</fecha>");
			    str.append("<hora>" + Comun.Hora(Fecha2) + "</hora>");
			    str.append("<km>" + ((gasto.getGastar_km()==null||gasto.getGastar_km().trim().equals(""))?"-":gasto.getGastar_km()) + "</km>");
			    str.append("<litros>" + ((gasto.getGastar_litros()==null||gasto.getGastar_litros().trim().equals(""))?"-":gasto.getGastar_litros()) + "</litros>");
			    str.append("<importe>" +((gasto.getGastar_importe()==null||gasto.getGastar_importe().trim().equals(""))?"-":gasto.getGastar_importe())+ "</importe>");
			    str.append("<verifi>" + ((gasto.getGastar_verifi()==null||gasto.getGastar_verifi().trim().equals(""))?"nbsp;":gasto.getGastar_verifi()) + "</verifi>");
			    str.append("<control>" + ((gasto.getGastar_control()==null||gasto.getGastar_control().trim().equals(""))?"nbsp;":gasto.getGastar_control()) + "</control>");
			    str.append("</gasto>");
	    }

	   /*String sql = "";
	   PreparedStatement pstmt = null;
	   ResultSet rs = null;*/

	   /*try {
		   
	            //miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "LITROS: " + Litros, m05bConstantes.LOG_NIVEL_BAJO);
		long idOpeBancos = 0;
		m05bGenerarClave miId = new m05bGenerarClave();
		idOpeBancos = miId.getNextId(m05bConstantes.TAB_OPEBANCOS, m05bConstantes.COL_18_CONTROL);
	    long control = 0;
		String ueconomica="", centro="", mege="", tarjeta="", tipo="", sqlConcepto="",
		cif="", comercio="", descrip="", hora="",fecha="",Control="",Km="",Lt="",
		importe="", cargabon="", matricula="", verificado=m05bConstantes.VERIFICADO_SI;
		   
		sql=" SELECT " + m05bConstantes.COL_31_TARJETA +" FROM " + 
		 	m05bConstantes.TAB_TARJETAS +","+m05bConstantes.TAB_VEHICULOS+
		 	" WHERE "+ m05bConstantes.COL_31_MATRICULA + " = '"+sMatricula+"'" +
		 	" AND "+ m05bConstantes.COL_31_MATRICULA + " = "+m05bConstantes.COL_34_MATRICULA +
		 	" AND "+ m05bConstantes.COL_31_TIPO + " = '"+m05bConstantes.TAR_GASTO+"'";

		   miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "sql " + sql, m05bConstantes.LOG_NIVEL_BAJO);		
		   pstmt = lconConexion.prepareStatement(sql);
		   rs = pstmt.executeQuery();
	       if (rs.next()) {
	        str.append("<gasto>");
		    str.append("<tarjeta>" + rs.getString(m05bConstantes.COL_31_TARJETA)+ "</tarjeta>");
		    str.append("<cargo>" + "C" + "</cargo>");
		    str.append("<tipog>" + "C" + "</tipog>");
		    str.append("<concepto>" + "COMBUSTIBLE" + "</concepto>");
		    str.append("<ncomercio>" + "-"+ "</ncomercio>");
		    str.append("<fecha>" + "-" + "</fecha>");
		    str.append("<hora>" + "-" + "</hora>");
		    str.append("<km>" + "-" + "</km>");
		    str.append("<litros>" + "-" + "</litros>");
			str.append("<importe>" +"-"+ "</importe>");
			str.append("<verifi>" + verificado + "</verifi>");
			str.append("<control>" + idOpeBancos+ "</control>");
			str.append("</gasto>");
	       }
	   } catch (Exception ex) {
  	   		//miLog.addTraza(m05bConstantes.LOG_NO_USER, m05bConstantes.LOG_NO_SRC, "fncVerificar - EXCEPTION: " + ex.toString(), m05bConstantes.LOG_NIVEL_BAJO);
 			throw new Exception(ex);
  } 	finally{
			if (pstmt != null)
				pstmt.close();
			if (rs != null)
				rs.close();
  }*/
	str.append("</datos>");
	str.append("</resultado>");
	return str;
}
private void obtener(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response){
	java.sql.Connection conn=null;
	m05bConexion miConex = new m05bConexion();
	PrintWriter wr =null;
	String erroresResult = "";
	try {
		 HttpSession session = request.getSession(true);
	 	   	Locale idiomaLocal = (Locale)session.getAttribute("Local");
	 			String idiomaSes = ((idiomaLocal.getLanguage()==null)?"es":idiomaLocal.getLanguage());	
	 			
		conn = miConex.getConnection();
		conn.setAutoCommit(false);
		wr = (PrintWriter)response.getWriter();
		LinkedHashMap  listaGastos = (LinkedHashMap )request.getSession().getAttribute("listaGastos");
		if(listaGastos==null)
			listaGastos = new LinkedHashMap ();
      	request.getSession().setAttribute("listaGastos",listaGastos);		
		wr.println(obtenerXmlFromGastos(listaGastos,conn,idiomaSes));
	} catch (Exception e) {
		// TODO Auto-generated catch block
		miLog.addTraza(e);
		try {
			conn.rollback();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			miLog.addTraza(e1);
		}

	} finally{
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				miLog.addTraza(e1);
			}
		}
	}
}



/**
 * Process incoming requests for information
 *
 * @param request Object that encapsulates the request to the servlet
 * @param response Object that encapsulates the response from the servlet
 */
public void performTask(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) {

    ejecutar(request,response);
    HttpSession session = request.getSession(true);

    //miLog.addTraza(persona , "m05bVehGastos" , "sql: " + "Perform Task", m05bConstantes.LOG_NIVEL_BAJO);
	
}  // Fin performTask
	
}// Fin m05bModificarGastosTarjetaServlet