<%@ page import="java.util.*,javax.sql.*,java.sql.*,javax.naming.*,java.text.*,m05bClasses.*" %>
<%
	// _______________________________XLNETs______________________________________
	// Evaluar variable de session que indica si esta conectado a XLNets
	if ((session.getAttribute("objetoSeguridad")) == null)  { 
		// Verificar que no ha transcurrido el tiempo de sesion (web.xml) %>
			<%@ include file="/m05bControlAcceso.inc"%>
<%
	} 
	String sUsuario = (String) session.getAttribute("persona");
%>
  
<%@ include file="/m05bIdioma.inc"%>
<HTML>
<HEAD>
<title><%= resTit.getString("titLstKilometrajesYConsumos")%></title>
	<link rel="stylesheet" href="<%=m05bConstantesPaginas.PATH_ESTILOS%>/m05bestilos.css" type="text/css">
	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
</HEAD>	
<%	 
    m05bFileLog miLog = new m05bFileLog();
    m05bConexion miConex = new m05bConexion();
	m05bComun miComun = new m05bComun();
	String sConsumos = miComun.leerPropiedad("PDF.Consumos"); 
%>

<BODY style="cursor: wait" onload="document.body.style.cursor='default';document.all['general'].style.cursor='default';" onunload="document.body.style.cursor='wait';document.all['general'].style.cursor='wait';">
<div  id="general" style="POSITION: absolute; cursor: wait">	
<form NAME="formSolicitud" METHOD="POST">
<%
      	 //Recogemos la situacion
	   String sSituacion = request.getParameter("SituacionTexto");
         //Recogemos el Grupo Rango
	   String sGRango = request.getParameter("GRango");
       if ((sGRango==null)||(sGRango.equals(""))||(sGRango.equals("***"))){
					sGRango="";}	   	   
	   String sGRango2 = request.getParameter("GRango");
       if ((sGRango2==null)||(sGRango2.equals(""))||(sGRango2.equals("***"))){
					sGRango2="";}			   
	   
	   String sRango2 = request.getParameter("CodRango");
	   String sRango="";
         //Recogemos la Marca Modelo
	   String sMarca = request.getParameter("CodMarca");
       if ((sMarca==null)||(sMarca.equals(""))||(sMarca.equals("***"))){
					sMarca="";}	   
	   String sMarca2 = request.getParameter("CodMarca");
	   if ((sMarca2==null)||(sMarca2.equals(""))||(sMarca2.equals("***"))){
					sMarca2="";}
	   //String sModelo2 = request.getParameter("CodModelo");
	   String sModelo2 = request.getParameter("ModeloTexto");
	   	  //miLog.addTraza(sUsuario , "m05bConsumosPdf" , "sModelo2: " + sModelo2, m05bConstantes.LOG_NIVEL_BAJO);
	   String sModelo="";
	   String sModelo3="";									   
         //Recogemos Matricula
         String sMatriculaAnt="";
         String sRangoAnt="";
         String sMatricula=request.getParameter("Matricula");
            	if ((sMatricula==null)||(sMatricula.equals(""))){
					sMatricula="";}
		 String sMatricula2=sMatricula;
         long DifDiasDesdeHasta=0;
	   //Recogemos Fecha Desde:
         String sFecDesde=request.getParameter("FecDesde");
         String sFecDesde2=sFecDesde;
         String AnoDesde=sFecDesde.split("/")[2];
         String MesDesde=sFecDesde.split("/")[1];
         if (MesDesde.length()==1)
         {MesDesde="0"+MesDesde;}
         
         String DiaDesde=sFecDesde.split("/")[0];
         if (DiaDesde.length()==1)
         {DiaDesde="0"+DiaDesde;}
         
         sFecDesde=AnoDesde+ MesDesde+	 DiaDesde;
             
	     //Recogemos Fecha Hasta:
         String sFecHasta=request.getParameter("FecHasta");
         
         String sFecHasta2=sFecHasta;
         
         String AnoHasta=sFecHasta.split("/")[2];
         String MesHasta=sFecHasta.split("/")[1];
         if (MesHasta.length()==1)
         {MesHasta="0"+MesHasta;}
         
         String DiaHasta=sFecHasta.split("/")[0];
         if (DiaHasta.length()==1)
         {DiaHasta="0"+DiaHasta;}
         
         sFecHasta=AnoHasta+ MesHasta+DiaHasta;
	     String srcPDF = sConsumos + "?Situacion="+sSituacion+"&GRango="+sGRango+"&Rango="+sRango2+"&FecDesde="+sFecDesde2+"&FecHasta="+sFecHasta2+"&Matricula="+sMatricula+"&CodMarca="+sMarca+"&CodModelo="+sModelo2;	     
         DifDiasDesdeHasta=miComun.getDiasEntreFechas(sFecDesde,sFecHasta);
         DifDiasDesdeHasta=DifDiasDesdeHasta / 2;
         String sDifDiasDesdeHasta=""+DifDiasDesdeHasta;
         ///////////////////////////////////
         String fFechaInicioRango="";
         String fFechaInicioKm="";
         String fFechaInicioKmAnt="";         
         ////////////////////////////////////
	     String sFIniKm="";
	     String sFIniKm2="";
	     
	     String sIniKm="";
	     
	     String sFFinKm="";
	     String sFFinKm2="";
	     
	     String sFinKm="";
         String sDifDias ="";
         String sDifKms ="";
         String sMediaKmsDias ="";
         String FechaBd="";
         String FechaBdComparar ="";  
         String FechaBdCompararAntInicio ="";        
         String FechaBdCompararAntFin ="";    
             
         long DifKms = 0, DifDias=0, MediaKmsDias=0, KmsFin = 0, KmsInicio = 0, KmsInicio2 = 0,
         		diasdiffInicioMin=1000, diasdiffFinMin=1000, diasdiffInicio=0, diasdiffFin=0,lDifFechaInicio=0,lDifFechaFin=0;
         double dLitros=0.0,dLitrosTotal=0.0,dLitros2=0.0,dLitros3=0.0;
         String sSituacionBD="ALTA";
         String Fecha="";

	   java.sql.Connection conn=null;
	   PreparedStatement pstmt = null, pstmt2 = null, pstmt3 = null, pstmt4 = null,pstmtUpdate = null,pstmtBucle = null,pstmtBucle2 = null; 
	   ResultSet rs = null, rs2 = null, rs3 = null, rs4 = null, rsUpdate = null,rsBucle=null, rsBucle2=null;
String bVehiculoTransferido="false";
String bExisteVehiculo="false";	   
String bExisteVehiculoImporte="false";	   
String sBdMatriculaVeh="" ,sBdFecMatricVeh="", sBdPrecioVeh="", sBdVidaUtil="", sBdFecBajaVeh="", 
       sBdRangoVeh="",sBdSituacionVeh="";
String sBdFecDesdeTrans="" ,sBdFecHastaTrans="", sBdImporteTrans="", sBdRangoTrans="" ,sImporteUlt="";
String sMatriculaAplic="",sRangoApli="",sFechaInicioRangoApli="",sFechaFinRangoApli="";
String sMatriculaTrans="",sRangoTrans="",sFechaInicioRangoTrans="",sFechaFinRangoTrans="";
//String sUsuario=persona;
String sFecDesdeC=sFecDesde2,sFecHastaC=sFecHasta2;
int contador=0;
long nDiasRangoApli=0;
long nDiasRango=0;

long lDifDias=0;

long nDiasEnRangoTrans=0;

long lDifDiasDesdeTransDesde=0;
long lDifDiasDesdeHastaTrans=0;
               
long lDifDiasDesdeTransHasta=0;
long lDifDiasHastaHastaTrans=0;

long lDifDiasDesdeDesdeTrans=0;
//java.sql.Connection conn=null;
PreparedStatement pstmtVehiculos = null, pstmtTransferencias=null, pstmtTmp = null; 
ResultSet rsVehiculos = null, rsTmp = null,rsTransferencias=null;
	   

      try { 
	  conn = miConex.getConnection();
	  
        //BORRAR LA TABLA TEMPORAL DE CONSUMOS POR USUARIO
        String sqlDeleteTemporal = "DELETE  " + m05bConstantes.TAB_TMPVEHICULOS +" WHERE " + m05bConstantes.COL_90_USUARIO+ " = '" + sUsuario+"'";
        String sWhere="";
       //1 TABLA 1 de la join 
        String sqlVehiculos=" SELECT "+
        m05bConstantes.COL_34_MATRICULA+",TO_CHAR("+ 
        m05bConstantes.COL_34_FMATRIC+",'dd/mm/yyyy'),"+ 
        m05bConstantes.COL_34_PRECIO+","+ 
        m05bConstantes.COL_34_VIDAUTIL+",TO_CHAR("+ 
        m05bConstantes.COL_34_FBAJA+",'dd/mm/yyyy'),"+ 
        m05bConstantes.COL_34_RANGO+","+
        m05bConstantes.COL_34_SITUACION+
        " FROM "+
        m05bConstantes.TAB_VEHICULOS;
        
//if (!(sSituacion.equals(""))){
//        sSituacion=miComun.ListaCaracteres(sSituacion);
//        if (!(sWhere.equals(""))){
//    	      sWhere= sWhere + " AND " + m05bConstantes.COL_34_SITUACION+ " in ("+sSituacion+")";
//    	}else{
    	      //sWhere= sWhere  + " WHERE " + m05bConstantes.COL_34_SITUACION+ " in ("+sSituacion+")";}      
 //}
//if (!(sRango2.equals(""))){
//        if (!(sWhere.equals(""))){
//    	      sWhere= sWhere + " AND " + m05bConstantes.COL_34_RANGO+ " = '"+sRango2+"'" ;
//    	}else{
//    	      sWhere= sWhere  + " WHERE "+ m05bConstantes.COL_34_RANGO+ " = '"+sRango2+"'" ;}      
    	
//}
//else if (!(sGRango2.equals(""))){
//    	String sSentenciaGrupo=" SELECT "+ m05bConstantes.COL_36_RANGOS+
//    	                " FROM " + m05bConstantes.TAB_GRUPOS + 
//    	                " WHERE " + m05bConstantes.COL_36_CODIGO + " = '" +sGRango2+"'";
//    	pstmt = conn.prepareStatement(sSentenciaGrupo);
//		rs = pstmt.executeQuery();
//        if (rs.next()){
//		    sGRango=rs.getString(1)==null ? "":rs.getString(1);	
//            sGRango=miComun.ListaCaracteres(sGRango);
//        if (!(sWhere.equals(""))){
//    	      sWhere= sWhere + " AND " + m05bConstantes.COL_34_RANGO+ " in ( "+sGRango + ")";
//    	}else{
//    	      sWhere= sWhere  + " WHERE "+ m05bConstantes.COL_34_RANGO+ " in ( "+sGRango + ")";     
//            }
//        }
//}
if (!(sModelo2.equals(""))){
        sModelo3=miComun.ListaCaracteres(sModelo2);
        if (!(sWhere.equals(""))){        
    	  sWhere= sWhere + " AND " + m05bConstantes.COL_34_MODELO+ " in ("+sModelo3+")";
    	}else{
    	  sWhere= sWhere + " WHERE " + m05bConstantes.COL_34_MODELO+ " in ("+sModelo3+")";}}
else if (!(sMarca2.equals(""))){
        if (!(sWhere.equals(""))){        
    	 sWhere= sWhere + " AND " + m05bConstantes.COL_34_MARCA+ " = '"+sMarca+"'";
    	}else{
    	sWhere= sWhere + " WHERE " + m05bConstantes.COL_34_MARCA+ " = '"+sMarca+"'"  ;
}}
    	
if (!(sMatricula2.equals(""))){
        if (!(sWhere.equals(""))){
    	      sWhere= sWhere + " AND " + m05bConstantes.COL_34_MATRICULA+ " = '"+sMatricula2+"'" ;
    	}else{
    	      sWhere= sWhere  + " WHERE "+ m05bConstantes.COL_34_MATRICULA+ " = '"+sMatricula2+"'" ;  
            }
  }  
  sqlVehiculos=sqlVehiculos+sWhere +  " ORDER BY "+
        m05bConstantes.COL_34_MATRICULA;
	  //miLog.addTraza(sUsuario , "m05bConsumosPdf" , "sqlVehiculos: " + sqlVehiculos, m05bConstantes.LOG_NIVEL_BAJO);
        
       //2 TABLA 2 de la join 
        String sqlTransferencias2="";
        String sqlTransferencias="  SELECT "+
        "TO_CHAR("+ 
        m05bConstantes.COL_40_FDESDE+",'dd/mm/yyyy'),TO_CHAR("+ 
        m05bConstantes.COL_40_FHASTA+",'dd/mm/yyyy'),"+ 
        m05bConstantes.COL_40_IMPORTE+","+ 
        m05bConstantes.COL_40_RANGO+
        " FROM "+
        m05bConstantes.TAB_TRANSFERENCIAS+
        " WHERE "+
        m05bConstantes.COL_40_MATRICULA+" = ";
       
        
       //Definicion de la primera parte de la insert en la tabla temporal 90        
       String  sqlInsertTmp2="";      
       String sqlInsertTmp="INSERT into " + 
                     m05bConstantes.TAB_TMPVEHICULOS+"("+
                     m05bConstantes.COL_90_USUARIO+","+ 
                     m05bConstantes.COL_90_MATRICULA+","+ 
                     m05bConstantes.COL_90_FINIRANGO+","+
                     m05bConstantes.COL_90_FFINRANGO+","+
                     m05bConstantes.COL_90_RANGO+","+
                     m05bConstantes.COL_90_DIAS+
                     ") VALUES (" ;
        
        //eJECUTAMOS EL BORRADO DE LA TABLA TEMPORAL
        pstmt = conn.prepareStatement(sqlDeleteTemporal);
        rs = pstmt.executeQuery();
        //Vamosrecuperando los datos de la tabla 34
         //miLog.addTraza(sUsuario , "sqlVehiculos" , "sqlVehiculos: " + sqlVehiculos, m05bConstantes.LOG_NIVEL_BAJO);               
 
        pstmtVehiculos = conn.prepareStatement(sqlVehiculos);
        rsVehiculos = pstmtVehiculos.executeQuery();
        while (rsVehiculos.next()){
        	bExisteVehiculo="true";
        	bVehiculoTransferido="false";
            sBdMatriculaVeh="";
           	sBdFecMatricVeh="";
            sBdPrecioVeh="";
            sBdVidaUtil="";
            sBdFecBajaVeh=""; 
            sBdRangoVeh="";
            sBdSituacionVeh="";
            sBdMatriculaVeh=rsVehiculos.getString(1);
            sBdFecMatricVeh=rsVehiculos.getString(2);
            sBdPrecioVeh=rsVehiculos.getString(3);
            sBdVidaUtil=rsVehiculos.getString(4);
            sBdFecBajaVeh=rsVehiculos.getString(5);
            sBdRangoVeh=rsVehiculos.getString(6);
            sBdSituacionVeh=rsVehiculos.getString(7);
            if (((sMarca2==null) || (sMarca2.equals(""))) && ((sModelo2==null) || (sModelo2.equals("")))){
        	sqlTransferencias2=sqlTransferencias+ "'"+sBdMatriculaVeh+"'"+
                               " ORDER BY "+ m05bConstantes.COL_40_FDESDE;
                  //miLog.addTraza(sUsuario , "sqlTransferencias2" , "sqlTransferencias2: " + sqlTransferencias2, m05bConstantes.LOG_NIVEL_BAJO);                                                  
            	pstmtTransferencias = conn.prepareStatement(sqlTransferencias2);
            	rsTransferencias = pstmtTransferencias.executeQuery();
            	sBdFecDesdeTrans="";
            	sBdFecHastaTrans=""; 
            	sBdImporteTrans="";
            sBdRangoTrans="";
            while (rsTransferencias.next()){
               bVehiculoTransferido="true";
               sBdFecDesdeTrans=rsTransferencias .getString(1);
               
               sBdFecHastaTrans=rsTransferencias .getString(2);
               
               sBdImporteTrans=rsTransferencias .getString(3);
               
               sBdRangoTrans=rsTransferencias .getString(4);
               
               sFechaInicioRangoApli=sBdFecDesdeTrans;
               sFechaFinRangoApli=sBdFecHastaTrans;
               nDiasRangoApli=miComun.getDiasEntreFechas3(sFechaInicioRangoApli,sFechaFinRangoApli);

               nDiasRangoApli=nDiasRangoApli+1;
               lDifDiasDesdeTransDesde=miComun.getDiasEntreFechas3(sBdFecDesdeTrans,sFecDesdeC);
               // if (sMatriculaAplic.equals("BI-7857-BK")){
                 //    miLog.addTraza(sUsuario , "lDifDiasDesdeTransDesde" , "lDifDiasDesdeTransDesde: " + lDifDiasDesdeTransDesde, m05bConstantes.LOG_NIVEL_BAJO);               
 
                
                 //}               
               lDifDiasDesdeHastaTrans=miComun.getDiasEntreFechas3(sFecDesdeC,sBdFecHastaTrans);
                //if (sMatriculaAplic.equals("BI-7857-BK")){
                  //miLog.addTraza(sUsuario , "lDifDiasDesdeHastaTrans" , "lDifDiasDesdeHastaTrans: " + lDifDiasDesdeHastaTrans, m05bConstantes.LOG_NIVEL_BAJO);               
 
                
                 //}                       
               lDifDiasDesdeTransHasta=miComun.getDiasEntreFechas3(sBdFecDesdeTrans,sFecHastaC);
               //if (sMatriculaAplic.equals("BI-7857-BK")){
                 // miLog.addTraza(sUsuario , "lDifDiasDesdeTransHasta" , "lDifDiasDesdeTransHasta: " + lDifDiasDesdeTransHasta, m05bConstantes.LOG_NIVEL_BAJO);               
 
               
                                               //}                         
               lDifDiasHastaHastaTrans=miComun.getDiasEntreFechas3(sFecHastaC,sBdFecHastaTrans);
              //if (sMatriculaAplic.equals("BI-7857-BK")){

                 // miLog.addTraza(sUsuario , "lDifDiasHastaHastaTrans" , "lDifDiasHastaHastaTrans: " + lDifDiasHastaHastaTrans, m05bConstantes.LOG_NIVEL_BAJO);               
 

                 //}                         
 
               if (((lDifDiasDesdeTransDesde >= 0) &&  (lDifDiasDesdeHastaTrans>=0)) ||
                  ((lDifDiasDesdeTransHasta >=0) && (lDifDiasHastaHastaTrans>=0)) ||
                  ((lDifDiasDesdeTransDesde <=0) && (lDifDiasHastaHastaTrans<=0))){

                                                                                                                  
                  sRangoApli=sBdRangoTrans;
                  //lDifDias=miComun.getDiasEntreFechas3(sFecDesdeC,sBdFecDesdeTrans);
                  //if (lDifDias>0){
                     sFechaInicioRangoApli=sBdFecDesdeTrans;
                  //}else{
                    // sFechaInicioRangoApli=sFecDesdeC;
                  //}
                  
                  //lDifDias=miComun.getDiasEntreFechas3(sFecHastaC,sBdFecHastaTrans);
                  //if (lDifDias>0){
                     //sFechaFinRangoApli=sFecHastaC;
                  //}else{
                     sFechaFinRangoApli=sBdFecHastaTrans;
                  //}
                  
                  nDiasRangoApli=miComun.getDiasEntreFechas3(sFechaInicioRangoApli,sFechaFinRangoApli);
                  nDiasRangoApli=nDiasRangoApli+1;
                  if (nDiasRangoApli>0){         
                     sqlInsertTmp2=sqlInsertTmp+"'"+ sUsuario+"','"+
                     sBdMatriculaVeh+"',"+
                     " TO_DATE('"+sFechaInicioRangoApli+"', 'dd/mm/YYYY'),"+
                     " TO_DATE('"+sFechaFinRangoApli+"', 'dd/mm/YYYY'),'"+
                     sRangoApli+"',"+nDiasRangoApli+")";
              //if (sMatriculaAplic.equals("BI-7857-BK")){

                //  miLog.addTraza(sUsuario , "sqlInsertTmp2" , "sqlInsertTmp2: " + sqlInsertTmp2, m05bConstantes.LOG_NIVEL_BAJO);               
 

                 //}                         
                      
                    pstmtTmp = conn.prepareStatement(sqlInsertTmp2);
                    rsTmp = pstmtTmp .executeQuery();
        	        if (pstmtTmp != null)
		            pstmtTmp .close();
                    if (rsTmp != null)
                    rsTmp .close();
		            }
                  }
               } 
                     
            }//Fin While Transferencias
            if (pstmtTransferencias != null)
            pstmtTransferencias .close();
            if (rsTransferencias != null)
            rsTransferencias.close();
            
            if  ((bVehiculoTransferido.equals("false"))&& (bExisteVehiculo.equals("true"))){
            	 
                 sMatriculaAplic=sBdMatriculaVeh;
                 
                 sRangoApli=sBdRangoVeh;
                 lDifDias=miComun.getDiasEntreFechas3(sFecDesdeC,sBdFecMatricVeh);
                 if (lDifDias>0){
                     sFechaInicioRangoApli=sBdFecMatricVeh;
                 }else{
                     sFechaInicioRangoApli=sFecDesdeC;
                 }
                 
                 if (sBdFecBajaVeh==null || sBdFecBajaVeh.equals("NULL"))
                     sBdFecBajaVeh="31/12/9999";
                 
                 lDifDias=miComun.getDiasEntreFechas3(sFecHastaC,sBdFecBajaVeh);

                 if (lDifDias>0){
                     sFechaFinRangoApli=sFecHastaC;
                 }else{
                     sFechaFinRangoApli=sBdFecBajaVeh;
                 }
                 
                 nDiasRangoApli=miComun.getDiasEntreFechas3(sFechaInicioRangoApli,sFechaFinRangoApli);
                 nDiasRangoApli=nDiasRangoApli+1;

                  if (nDiasRangoApli>0){         
                     sqlInsertTmp2=sqlInsertTmp+"'"+ sUsuario+"','"+
                     sBdMatriculaVeh+"',"+
                     " TO_DATE('"+sFechaInicioRangoApli+"', 'dd/mm/YYYY'),"+
                     " TO_DATE('"+sFechaFinRangoApli+"', 'dd/mm/YYYY'),'"+
                     sRangoApli+"',"+nDiasRangoApli+")";
                  //if (sMatriculaAplic.equals("BI-7857-BK")){
                  //miLog.addTraza(sUsuario , "sqlInsertTmpNoTransferido" , "sqlInsertTmp2: " + sqlInsertTmp2, m05bConstantes.LOG_NIVEL_BAJO);               
                 //}
                     pstmtTmp = conn.prepareStatement(sqlInsertTmp2);
                     rsTmp = pstmtTmp .executeQuery();
        	        if (pstmtTmp != null)
		            pstmtTmp .close();
                    if (rsTmp != null)
                    rsTmp .close();
                  }
            } else if (bVehiculoTransferido.equals("true")){ //if vehiculo ha tenido transferencias.
                     sRangoTrans = sBdRangoVeh;
                     //lDifDias=miComun.getDiasEntreFechas3(sFecDesdeC,sBdFecHastaTrans);
                     
                     //if (lDifDias>0){
                         sFechaInicioRangoTrans= sBdFecHastaTrans;
                     //}else{
                         //sFechaInicioRangoTrans = sFecDesdeC;
                     //}
                     if (sBdFecBajaVeh==null || sBdFecBajaVeh.equals("NULL"))
                         sBdFecBajaVeh="31/12/9999";
                     lDifDias=miComun.getDiasEntreFechas3(sFecHastaC,sBdFecBajaVeh);
                     //if (lDifDias>0){
                       //  sFechaFinRangoTrans = sFecHastaC;
                     //}else{
                         sFechaFinRangoTrans = sBdFecBajaVeh;
                     //}
                     nDiasEnRangoTrans =miComun.getDiasEntreFechas3(sFechaInicioRangoTrans,sFechaFinRangoTrans);
                     nDiasEnRangoTrans=nDiasEnRangoTrans+1; 
                     if (nDiasEnRangoTrans >0){
                         sqlInsertTmp2=sqlInsertTmp+"'"+ sUsuario+"','"+
                         sBdMatriculaVeh+"',"+
                         " TO_DATE('"+sFechaInicioRangoTrans+"', 'dd/mm/YYYY'),"+
                         " TO_DATE('"+sFechaFinRangoTrans +"', 'dd/mm/YYYY'),'"+
                         sRangoTrans +"',"+nDiasEnRangoTrans +")";
                  //if (sMatriculaAplic.equals("BI-7857-BK")){
                  //miLog.addTraza(sUsuario , "sqlInsertTmp2" , "sqlInsertTmp2: " + sqlInsertTmp2, m05bConstantes.LOG_NIVEL_BAJO);               
                 //}                         
                         pstmtTmp = conn.prepareStatement(sqlInsertTmp2);
                         rsTmp = pstmtTmp .executeQuery();
        	        if (pstmtTmp != null)
		            pstmtTmp .close();
                    if (rsTmp != null)
                    rsTmp .close();
                     }
            }//Fin Else                     
        }//Fin While Vehiculos      
				if (rsVehiculos != null)
					rsVehiculos.close();
				if (pstmtVehiculos != null)
					pstmtVehiculos.close();	  
        //BORRAR LA TABLA TEMPORAL DE CONSUMOS POR USUARIO
        //sqlDeleteTemporal = "DELETE  " + m05bConstantes.TAB_TMPKILOMETROS +" WHERE " + m05bConstantes.COL_94_USUARIO+ " = '" + sUsuario+"'";
        String sqlMedia ="";
        String sqlUpdate="";
       //0
     if (bExisteVehiculo.equals("true")){
       String sqlConsultaConsumos="SELECT MATRICULA,FECHA,KM,FECHA2,"+
       m05bConstantes.COL_90_RANGO+","+m05bConstantes.COL_90_DIAS+",TO_CHAR("+
       m05bConstantes.COL_90_FINIRANGO+",'dd/mm/yyyy'),abs(TO_DATE(TO_CHAR(FECHA3,'dd/mm/yyyy'),'dd/mm/yyyy')-TO_DATE('"+
       sFecDesde2+"','dd/mm/yyyy')) as DifFechaInicio,TO_CHAR("+
       m05bConstantes.COL_90_FFINRANGO+",'dd/mm/yyyy'),abs(TO_DATE(TO_CHAR(FECHA3,'dd/mm/yyyy'),'dd/mm/yyyy')-TO_DATE('"+
       sFecHasta2+"','dd/mm/yyyy')) as DifFechaFin,TO_CHAR("+
       m05bConstantes.COL_90_FINIRANGO+",'yyyymmdd') from(";
       //1
       sqlConsultaConsumos=sqlConsultaConsumos+"SELECT " + 
       m05bConstantes.COL_09_MATRICULA+" as MATRICULA,TO_CHAR("+ 
       m05bConstantes.COL_09_FECHA + ",'yyyymmdd') as FECHA,TO_NUMBER(" +
       m05bConstantes.COL_09_KMGASTO+") as KM,TO_CHAR("+ 
       m05bConstantes.COL_09_FECHA + ",'dd/mm/yyyy') as FECHA2, "+ 
       m05bConstantes.COL_09_FECHA  +" as FECHA3  FROM "+
       m05bConstantes.TAB_GASTOS+" WHERE ((("+
       m05bConstantes.COL_09_FECHA+") Is Not Null) AND"  +" ((" +
       m05bConstantes.COL_09_KMGASTO+") Is Not Null) AND"+" ((" +
       m05bConstantes.COL_09_LITROS+") Is Not Null) AND (" +
       m05bConstantes.COL_09_LITROS+" <> '0,00') AND (" +
       m05bConstantes.COL_09_KMGASTO+" <> '0')";
       if (!(sMatricula2.equals(""))){
        	sqlConsultaConsumos= sqlConsultaConsumos + " AND " + 
        	m05bConstantes.COL_09_MATRICULA+ " = '"+sMatricula2+"'" ;
       }
       //2	   
       sqlConsultaConsumos=sqlConsultaConsumos+") UNION SELECT " +
       //sqlConsultaConsumos=sqlConsultaConsumos+"SELECT " + 
       m05bConstantes.COL_18_MATRICULA+" as MATRICULA,TO_CHAR("+  
       m05bConstantes.COL_18_FECHA+ ",'yyyymmdd') as FECHA," +
       m05bConstantes.COL_18_KM+" as KM,TO_CHAR("+ 
       m05bConstantes.COL_18_FECHA+ ",'dd/mm/yyyy') as FECHA2, "+ 
       m05bConstantes.COL_18_FECHA  +" as FECHA3  FROM "+
       m05bConstantes.TAB_OPEBANCOS+" WHERE ((("+
       m05bConstantes.COL_18_FECHA+") Is Not Null) AND" +" (( "+
       m05bConstantes.COL_18_KM+") Is Not Null) AND" + " (("+
       m05bConstantes.COL_18_LITROS+") Is Not Null) AND (" +
       m05bConstantes.COL_18_LITROS+" <> 0) AND ("+ m05bConstantes.COL_18_KM+"<>0)";
       if (!(sMatricula2.equals(""))){
        	sqlConsultaConsumos= sqlConsultaConsumos + " AND " + 
        	m05bConstantes.COL_18_MATRICULA+ " = '"+sMatricula2+"'" ;
       }

      sqlConsultaConsumos=sqlConsultaConsumos+")),"+m05bConstantes.TAB_TMPVEHICULOS+
	  " where MATRICULA="+m05bConstantes.COL_90_MATRICULA+ " AND "+ m05bConstantes.COL_90_USUARIO+"='"+sUsuario+
	  "' AND  fecha3>= "+ m05bConstantes.COL_90_FINIRANGO +" and  fecha3<="+m05bConstantes.COL_90_FFINRANGO+
	  " ORDER BY MATRICULA,FECHA,"+m05bConstantes.COL_90_FINIRANGO+","+m05bConstantes.COL_90_RANGO;	
	  //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlConsultaConsumosBB: " + sqlConsultaConsumos, m05bConstantes.LOG_NIVEL_BAJO);

        //eJECUTAMOS EL BORRADO DE LA TABLA TEMPORAL
        int cont=0;
        int cont2=0;
        pstmtBucle = conn.prepareStatement(sqlConsultaConsumos);
        rsBucle = pstmtBucle.executeQuery();
        
              diasdiffInicioMin = 10000;
              diasdiffFinMin = 10000;

              //KmsInicio2=0;
        while (rsBucle.next()){
          bExisteVehiculoImporte="true";
          cont=cont+1;
          sMatricula = rsBucle.getString(1);
          sRango = rsBucle.getString(m05bConstantes.COL_90_RANGO);
          if ((sMatriculaAnt!="") && (!(sMatricula.equals(sMatriculaAnt)))) {
           contador=0; }
          
          if (((sMatriculaAnt!="") && (!(sMatricula.equals(sMatriculaAnt)))) || 
             (((sMatriculaAnt!="") && (sMatricula.equals(sMatriculaAnt))) &&
             ((sRangoAnt!="") && (!(sRango.equals(sRangoAnt)))))){ 
          if (((sMatriculaAnt!="") && (sMatricula.equals(sMatriculaAnt))) &&
             ((sRangoAnt!="") && (!(sRango.equals(sRangoAnt))))) {
               contador=contador+1;}
               //if (contador >1){
                    //KmsInicio=KmsInicio2;
               //}           	 
                sqlUpdate = "UPDATE " + m05bConstantes.TAB_TMPVEHICULOS + 
                " SET "   + m05bConstantes.COL_90_FINIKM + " = TO_DATE(" + sFIniKm + ",'yyyymmdd')"+
                "," + m05bConstantes.COL_90_INIKM	 + " = " + KmsInicio +
                "," + m05bConstantes.COL_90_FFINKM + " = TO_DATE(" + sFFinKm + ",'yyyymmdd')"+
                "," + m05bConstantes.COL_90_FINKM + " = " + KmsFin+
                "," + m05bConstantes.COL_90_DIFKM + " = " +KmsFin+"-("+KmsInicio+
                ") WHERE (("+m05bConstantes.COL_90_MATRICULA+")='" +sMatriculaAnt + "') AND (TO_CHAR("+
             m05bConstantes.COL_90_FINIRANGO+ ",'dd/mm/yyyy') = '" + fFechaInicioRango +"') AND " +m05bConstantes.COL_90_USUARIO+"='"+
             sUsuario+"'";
             KmsInicio2=KmsFin;	 
	  //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlUpdate: " + sqlUpdate, m05bConstantes.LOG_NIVEL_BAJO);
                
		   	 //actualizar temporal de vehiculos	     
             pstmtUpdate = conn.prepareStatement(sqlUpdate);
             rsUpdate = pstmtUpdate.executeQuery();
				if (rsUpdate != null)
					rsUpdate.close();
				if (pstmtUpdate != null)
					pstmtUpdate.close();
              diasdiffInicioMin = 10000;
              diasdiffFinMin = 10000;
          }
          //Recojo la diferencia en dias con la fecha Inicio
          
          lDifFechaInicio=rsBucle.getLong(8)==0 ? 0:rsBucle.getLong(8);
          lDifFechaFin=rsBucle.getLong(10)==0 ? 0:rsBucle.getLong(10);
          //Recojo la fecha en formato DD/MM/YYYY
          FechaBd=rsBucle.getString(2)==null ? "":rsBucle.getString(2);
          //FechaBdComparar=rsBucle.getString(2)==null ? "":rsBucle.getString(2);
          
          	  if ((lDifFechaInicio < diasdiffInicioMin)||((lDifFechaInicio == diasdiffInicioMin) && (!(FechaBd.equals(FechaBdCompararAntInicio))))){
                   sFIniKm =rsBucle.getString(2)==null ? "":rsBucle.getString(2);
                   sIniKm=rsBucle.getString(3)==null ? "0":rsBucle.getString(3);
                   KmsInicio=Long.valueOf(sIniKm).longValue();
                   
              diasdiffInicioMin = lDifFechaInicio;

             }
              FechaBdCompararAntInicio=FechaBd;
          	  if (lDifFechaFin <= diasdiffFinMin){
              diasdiffFinMin = lDifFechaFin;
              sFFinKm = FechaBd;
              
              sFinKm=rsBucle.getString(3)==null ? "0":rsBucle.getString(3);
              
              KmsFin=Long.valueOf(sFinKm).longValue();
              
              }
            if (((sMatriculaAnt!="") && (sMatricula.equals(sMatriculaAnt))) &&
               ((sRangoAnt!="") && (!(sRango.equals(sRangoAnt))))) {
                 contador=contador+1;}
             
             fFechaInicioRango = rsBucle.getString(7);
             nDiasRango = rsBucle.getLong(6);
             sMatriculaAnt = sMatricula;
             sRangoAnt = sRango;
             
          
        }
               //if (contador >1){
                    //KmsInicio=KmsInicio2;
               //}           	 
        
        if (bExisteVehiculoImporte.equals("true")){
             sqlUpdate = "UPDATE " + m05bConstantes.TAB_TMPVEHICULOS + 
                     " SET "   + m05bConstantes.COL_90_FINIKM + " = TO_DATE(" + sFIniKm + ",'yyyymmdd')"+
                     "," + m05bConstantes.COL_90_INIKM	 + " = " + KmsInicio +
                     "," + m05bConstantes.COL_90_FFINKM + " = TO_DATE(" + sFFinKm + ",'yyyymmdd')"+
                     "," + m05bConstantes.COL_90_FINKM + " = " + KmsFin+
                     "," + m05bConstantes.COL_90_DIFKM + " = " +KmsFin+"-("+KmsInicio+
                     ") WHERE (("+m05bConstantes.COL_90_MATRICULA+")='" +sMatriculaAnt + "') AND (TO_CHAR("+
             m05bConstantes.COL_90_FINIRANGO+ ",'dd/mm/yyyy') = '" + fFechaInicioRango +"') AND " +m05bConstantes.COL_90_USUARIO+"='"+
             sUsuario+"'";
             	  //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlUpdate2: " + sqlUpdate, m05bConstantes.LOG_NIVEL_BAJO);
              
	         //miLog.addTraza(sUsuario , "m05bConsumosVehiculos" , "sqlUpdate: " + sqlUpdate, m05bConstantes.LOG_NIVEL_BAJO);
             pstmtUpdate = conn.prepareStatement(sqlUpdate);
             rsUpdate = pstmtUpdate.executeQuery();
     	 
				if (pstmtUpdate != null)
					pstmtUpdate.close();
				if (rsUpdate != null)
					rsUpdate.close();
		}		
				if (pstmtBucle != null)
					pstmtBucle.close();
				if (rsBucle != null)
					rsBucle.close();
				
            //Acutalizar a Null todos los datos de Kms que tengan diferencia de 
            //días encontrado cero o menor
     sqlUpdate ="DELETE "+ m05bConstantes.TAB_TMPVEHICULOS + " WHERE (" +m05bConstantes.COL_90_DIFKM+ "<1 OR "+m05bConstantes.COL_90_DIFKM +" is NULL) AND " +m05bConstantes.COL_90_USUARIO+"='"+
             sUsuario+"'";
	 //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlDelete: " + sqlUpdate, m05bConstantes.LOG_NIVEL_BAJO);	  
     
             pstmtUpdate = conn.prepareStatement(sqlUpdate);
             rsUpdate = pstmtUpdate.executeQuery();
     	 
				if (pstmtUpdate != null)
					pstmtUpdate.close();
				if (rsUpdate != null)
					rsUpdate.close();
    
//***************************************************




       String sLitros="";		      
       String sqlConsultasModelo="";
       String sqlConsultaConsumos2="";
      if (((sMarca!=null) && (!(sMarca.equals("")))) || ((sModelo!=null) && (!(sModelo.equals(""))))){
        sqlConsultasModelo=" SELECT MATRICULA, TO_CHAR("+m05bConstantes.COL_90_FINIKM+",'yyyymmdd'),MIN("+
                             m05bConstantes.COL_90_RANGO+
                             "), sum(LI) from ( SELECT "+ m05bConstantes.COL_18_MATRICULA+" as MATRICULA,TO_CHAR("+
                             m05bConstantes.COL_18_FECHA+",'yyyymmdd') as FECHA,"+
                             m05bConstantes.COL_18_LITROS+"  as LI ,"+m05bConstantes.COL_18_FECHA+" as FECHA3 FROM "+
                             m05bConstantes.TAB_OPEBANCOS+" WHERE ((("+m05bConstantes.COL_18_FECHA+") Is Not Null) AND (( "+
                             m05bConstantes.COL_18_LITROS+") Is Not Null) AND ("+m05bConstantes.COL_18_LITROS +") <> 0 ) ";
                            if (!(sMatricula2.equals(""))){
        	                 sqlConsultasModelo= sqlConsultasModelo + " AND " + 
        	                 m05bConstantes.COL_18_MATRICULA+ " = '"+sMatricula2+"'" ;  }     
        	                 
       sqlConsultasModelo=sqlConsultasModelo+ " UNION SELECT "+
                            m05bConstantes.COL_09_MATRICULA +" as MATRICULA,TO_CHAR("+m05bConstantes.COL_09_FECHA+",'yyyymmdd') as FECHA,"+
                            "TO_NUMBER("+m05bConstantes.COL_09_LITROS+",'999999D99',' NLS_NUMERIC_CHARACTERS = '',.''') as LI,"+m05bConstantes.COL_09_FECHA+" as FECHA3 FROM "+
                            m05bConstantes.TAB_GASTOS+" WHERE ((("+m05bConstantes.COL_09_FECHA+") Is Not Null) AND (("+
                            m05bConstantes.COL_09_LITROS+") Is Not Null) AND ("+ m05bConstantes.COL_09_LITROS +"<> '0,00')" +
                            " ) ";
                            if (!(sMatricula2.equals(""))){
        	                sqlConsultasModelo= sqlConsultasModelo + " AND " + 
        	                m05bConstantes.COL_09_MATRICULA+ " = '"+sMatricula2+"'" ;}
            	                        	                 
		sqlConsultasModelo=  sqlConsultasModelo+"),"+m05bConstantes.TAB_TMPVEHICULOS+" where MATRICULA="+
                             m05bConstantes.COL_90_MATRICULA+" AND "+m05bConstantes.COL_90_USUARIO+"='"+sUsuario+"' AND TO_CHAR(FECHA3,'yyyymmdd') >= to_char( "+
                             m05bConstantes.COL_90_FINIKM +",'yyyymmdd') AND TO_CHAR(FECHA3,'yyyymmdd') < to_char(" + m05bConstantes.COL_90_FFINKM+",'yyyymmdd') GROUP BY MATRICULA,"+m05bConstantes.COL_90_FINIKM;                              
        }else{                             
       sqlConsultaConsumos=" SELECT MATRICULA, TO_CHAR("+m05bConstantes.COL_90_FINIKM+",'yyyymmdd'),"+
                             m05bConstantes.COL_90_RANGO+" ,sum(LI) from ( SELECT "+ m05bConstantes.COL_18_MATRICULA+" as MATRICULA,TO_CHAR("+
                             m05bConstantes.COL_18_FECHA+",'yyyymmdd') as FECHA,"+
                             m05bConstantes.COL_18_LITROS+"  as LI ,"+m05bConstantes.COL_18_FECHA+" as FECHA3 FROM "+
                             m05bConstantes.TAB_OPEBANCOS+" WHERE ((("+m05bConstantes.COL_18_FECHA+") Is Not Null) AND (( "+
                             m05bConstantes.COL_18_LITROS+") Is Not Null) AND ("+m05bConstantes.COL_18_LITROS +") <> 0 ) ";
                            if (!(sMatricula2.equals(""))){
        	                 sqlConsultaConsumos= sqlConsultaConsumos + " AND " + 
        	                 m05bConstantes.COL_18_MATRICULA+ " = '"+sMatricula2+"'" ;  } 
     
     sqlConsultaConsumos2="SELECT LI FROM( SELECT "+ m05bConstantes.COL_18_MATRICULA+" as MATRICULA,TO_CHAR("+
                             m05bConstantes.COL_18_FECHA+",'yyyymmdd') as FECHA,"+
                             m05bConstantes.COL_18_LITROS+"  as LI ,"+m05bConstantes.COL_18_FECHA+" as FECHA3 FROM "+
                             m05bConstantes.TAB_OPEBANCOS+" WHERE ((("+m05bConstantes.COL_18_FECHA+") Is Not Null) AND (( "+
                             m05bConstantes.COL_18_LITROS+") Is Not Null) AND ("+m05bConstantes.COL_18_LITROS +") <> 0 ) ";
                            if (!(sMatricula2.equals(""))){
        	                 sqlConsultaConsumos= sqlConsultaConsumos + " AND " + 
        	                 m05bConstantes.COL_18_MATRICULA+ " = '"+sMatricula2+"'" ;  } 
        
     sqlConsultaConsumos=sqlConsultaConsumos+" UNION SELECT "+
                            m05bConstantes.COL_09_MATRICULA +" as MATRICULA,TO_CHAR("+m05bConstantes.COL_09_FECHA+",'yyyymmdd') as FECHA,"+
                            "TO_NUMBER("+m05bConstantes.COL_09_LITROS+",'999999D99',' NLS_NUMERIC_CHARACTERS = '',.''') as LI,"+m05bConstantes.COL_09_FECHA+" as FECHA3 FROM "+
                            m05bConstantes.TAB_GASTOS+" WHERE ((("+m05bConstantes.COL_09_FECHA+") Is Not Null) AND (("+
                            m05bConstantes.COL_09_LITROS+") Is Not Null) AND ("+ m05bConstantes.COL_09_LITROS +"<> '0,00')" +
                            " ) ";
                            if (!(sMatricula2.equals(""))){
        	                sqlConsultaConsumos= sqlConsultaConsumos + " AND " + 
        	                m05bConstantes.COL_09_MATRICULA+ " = '"+sMatricula2+"'" ;}  
        	                
     sqlConsultaConsumos2= sqlConsultaConsumos2+" UNION SELECT "+
                            m05bConstantes.COL_09_MATRICULA +" as MATRICULA,TO_CHAR("+m05bConstantes.COL_09_FECHA+",'yyyymmdd') as FECHA,"+
                            "TO_NUMBER("+m05bConstantes.COL_09_LITROS+",'999999D99',' NLS_NUMERIC_CHARACTERS = '',.''') as LI,"+m05bConstantes.COL_09_FECHA+" as FECHA3 FROM "+
                            m05bConstantes.TAB_GASTOS+" WHERE ((("+m05bConstantes.COL_09_FECHA+") Is Not Null) AND (("+
                            m05bConstantes.COL_09_LITROS+") Is Not Null) AND ("+ m05bConstantes.COL_09_LITROS +"<> '0,00')" +
                            " ) ";
                            if (!(sMatricula2.equals(""))){
        	                sqlConsultaConsumos= sqlConsultaConsumos + " AND " + 
        	                m05bConstantes.COL_09_MATRICULA+ " = '"+sMatricula2+"'" ;}  
           	                 
       sqlConsultaConsumos2= sqlConsultaConsumos2+"),"+m05bConstantes.TAB_TMPVEHICULOS+" where MATRICULA="+
                             m05bConstantes.COL_90_MATRICULA+" AND "+m05bConstantes.COL_90_USUARIO+"='"+sUsuario+"' AND TO_CHAR(FECHA3,'yyyymmdd') >= to_char( "+
                             m05bConstantes.COL_90_FINIKM +",'yyyymmdd') AND TO_CHAR(FECHA3,'yyyymmdd') = to_char(" + m05bConstantes.COL_90_FFINKM+",'yyyymmdd')";
           	                                  
       	                 
       sqlConsultaConsumos= sqlConsultaConsumos+"),"+m05bConstantes.TAB_TMPVEHICULOS+" where MATRICULA="+
                             m05bConstantes.COL_90_MATRICULA+" AND "+m05bConstantes.COL_90_USUARIO+"='"+sUsuario+"' AND TO_CHAR(FECHA3,'yyyymmdd') >= to_char( "+
                             m05bConstantes.COL_90_FINIKM +",'yyyymmdd') AND TO_CHAR(FECHA3,'yyyymmdd') <= to_char(" + m05bConstantes.COL_90_FFINKM+",'yyyymmdd') GROUP BY MATRICULA,"+m05bConstantes.COL_90_FINIKM+
                             ","+
                             m05bConstantes.COL_90_RANGO ;
       }

                              




      //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlConsultaConsumos: " + sqlConsultasModelo, m05bConstantes.LOG_NIVEL_BAJO);
	  String sLitrosTotal="";
     //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlConsultaConsumos: " + sqlConsultaConsumos, m05bConstantes.LOG_NIVEL_BAJO);	  
      if (((sMarca!=null) && (!(sMarca.equals("")))) || ((sModelo!=null) && (!(sModelo.equals(""))))){
                pstmtBucle = conn.prepareStatement(sqlConsultasModelo);
      }else{
      		pstmtBucle = conn.prepareStatement(sqlConsultaConsumos);
            
      }
     //miLog.addTraza(sUsuario , "m05bVehiculos" , "PrepareStatement: " + sqlConsultaConsumos, m05bConstantes.LOG_NIVEL_BAJO);                                    
     
      rsBucle = pstmtBucle.executeQuery();
      //miLog.addTraza(sUsuario , "m05bVehiculos" , "executeQuery: " + sqlConsultaConsumos, m05bConstantes.LOG_NIVEL_BAJO);                                          
      String sqlConsultaConsumos3="";
      while (rsBucle.next()){
          sqlConsultaConsumos3="";
          cont=cont+1;
          sMatricula = rsBucle.getString(1);
          //miLog.addTraza(sUsuario , "m05bVehiculos" , "sMatricula: " + sMatricula, m05bConstantes.LOG_NIVEL_BAJO);                              
          sRango = rsBucle.getString(3);
          //miLog.addTraza("pepa" , "m05bVehiculos" , "sRango: " + sRango, m05bConstantes.LOG_NIVEL_BAJO);                    
          dLitros=rsBucle.getDouble(4);
          //miLog.addTraza(sUsuario , "m05bVehiculos" , "sLitros: " + dLitros, m05bConstantes.LOG_NIVEL_BAJO);          
          //dLitros = Double.valueOf(sLitros).doubleValue();
          fFechaInicioKm=rsBucle.getString(2)==null ? "0":rsBucle.getString(2);
          //dLitrosTotal=dLitrosTotal+dLitros;
          
     
     	if (((sMarca==null) || (sMarca.equals(""))) && ((sModelo==null) || (sModelo.equals("")))){                                
          sqlConsultaConsumos3=sqlConsultaConsumos2+" AND (TO_CHAR("+
             m05bConstantes.COL_90_FINIKM+ ",'yyyymmdd') = '" + fFechaInicioKm +"') AND "+
            m05bConstantes.COL_90_RANGO+"='"+sRango+"' AND MATRICULA='"+sMatricula+"'"  ;  
	     // miLog.addTraza(sUsuario , "m05bVehiculos" , "PrepareStatement: " + sqlConsultaConsumos3, m05bConstantes.LOG_NIVEL_BAJO);
          pstmtBucle2= conn.prepareStatement(sqlConsultaConsumos3);
          rsBucle2 = pstmtBucle2.executeQuery(); 

          if  (rsBucle2.next()){
          if ((sRangoAnt.equals(sRango))&&(sMatriculaAnt.equals(sMatricula))){
            dLitros2=rsBucle2.getDouble(1);
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "1sLitros2: " + dLitros2, m05bConstantes.LOG_NIVEL_BAJO);          
            dLitros3=rsBucle2.getDouble(1);
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "1sLitros3: " + dLitros3, m05bConstantes.LOG_NIVEL_BAJO);          
            dLitros=dLitros-dLitros2;
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "1sLitros: " + dLitros, m05bConstantes.LOG_NIVEL_BAJO);          
            sMatriculaAnt=sMatricula;
            sRangoAnt=sRango;  
          }else if ((!(sMatriculaAnt.equals(sMatricula)))){
             dLitros2=rsBucle2.getDouble(1);
             //miLog.addTraza(sUsuario , "m05bVehiculos" , "2sLitros2: " + dLitros2, m05bConstantes.LOG_NIVEL_BAJO);          
             dLitros=dLitros-dLitros2;
             //miLog.addTraza(sUsuario , "m05bVehiculos" , "2sLitros: " + dLitros, m05bConstantes.LOG_NIVEL_BAJO);                       
             dLitros3=rsBucle2.getDouble(1);
             //miLog.addTraza(sUsuario , "m05bVehiculos" , "2sLitros: " + dLitros3, m05bConstantes.LOG_NIVEL_BAJO);                                    
             sMatriculaAnt=sMatricula;
             sRangoAnt=sRango;
          } else if ((!(sRangoAnt.equals(sRango)))&&(sMatriculaAnt.equals(sMatricula))){
            dLitros2=rsBucle2.getDouble(1);
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "3sLitros: " + dLitros3, m05bConstantes.LOG_NIVEL_BAJO);                                               
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "3sLitros: " + dLitros2, m05bConstantes.LOG_NIVEL_BAJO);                                               
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "3sLitros: " + dLitros, m05bConstantes.LOG_NIVEL_BAJO);                                                           
            dLitros=dLitros-dLitros2+dLitros3; 
            
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "sLitros: " + dLitros, m05bConstantes.LOG_NIVEL_BAJO);                                   
            dLitros3=rsBucle2.getDouble(1);      
            //miLog.addTraza(sUsuario , "m05bVehiculos" , "3sLitros: " + dLitros3, m05bConstantes.LOG_NIVEL_BAJO);                       
            sMatriculaAnt=sMatricula;
            sRangoAnt=sRango;
            }
            	if (rsBucle2 != null)
					rsBucle2.close();
				if (pstmtBucle2 != null)
					pstmtBucle2.close();
            }
             //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlUpdate1: 1" , m05bConstantes.LOG_NIVEL_BAJO);             
             sqlUpdate = "UPDATE " + m05bConstantes.TAB_TMPVEHICULOS + 
                         " SET "   + m05bConstantes.COL_90_SUMALITROS + " = "  + dLitros+  " WHERE (("+m05bConstantes.COL_90_MATRICULA+")='" +sMatricula + "') AND (TO_CHAR("+
             m05bConstantes.COL_90_FINIKM+ ",'yyyymmdd') = '" + fFechaInicioKm +"') AND " +m05bConstantes.COL_90_USUARIO+"='"+
             sUsuario+"' AND "+m05bConstantes.COL_90_RANGO+"='"+sRango+"'";
             //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlUpdateu: " + sqlUpdate, m05bConstantes.LOG_NIVEL_BAJO);             
             }else{
                     //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlUpdate2: 2" , m05bConstantes.LOG_NIVEL_BAJO);                      
                     sqlUpdate = "UPDATE " + m05bConstantes.TAB_TMPVEHICULOS + 
                         " SET "   + m05bConstantes.COL_90_SUMALITROS + " = "  + dLitros+  " WHERE (("+m05bConstantes.COL_90_MATRICULA+")='" +sMatricula + "') AND (TO_CHAR("+
             m05bConstantes.COL_90_FINIKM+ ",'yyyymmdd') = '" + fFechaInicioKm +"') AND " +m05bConstantes.COL_90_USUARIO+"='"+
             sUsuario+"'  ";
             //miLog.addTraza(sUsuario , "m05bVehiculos" , "sqlUpdateu: " + sqlUpdate, m05bConstantes.LOG_NIVEL_BAJO);                          
             }             

             pstmtUpdate = conn.prepareStatement(sqlUpdate);
             rsUpdate = pstmtUpdate.executeQuery();
				if (rsUpdate != null)
					rsUpdate.close();
				if (pstmtUpdate != null)
					pstmtUpdate.close();
			    if (rsBucle2 != null)
					rsBucle2.close();
				if (pstmtBucle2 != null)
					pstmtBucle2.close();
		   	 dLitrosTotal=0.0; 
		   	 dLitros=0.0; 

		 }  
 
       }   
          
   
	  
	 
//********************************************	  

String sSentencia=" SELECT 1 "+
" FROM "+
    m05bConstantes.TAB_DESCRIPCIONES+"  R,"+
    m05bConstantes.TAB_VEHICULOS+","+
    m05bConstantes.TAB_TMPVEHICULOS+
" WHERE " +
    m05bConstantes.COL_34_MATRICULA+"="+m05bConstantes.COL_90_MATRICULA+ " AND "+ 
    m05bConstantes.COL_99_CODTABLA+"='"+m05bConstantes.DESC_RANGOS + "' AND "+ 		
    m05bConstantes.COL_34_RANGO+"= R."+m05bConstantes.COL_99_CODDESC +" AND "+
    m05bConstantes.COL_90_USUARIO+"='"+sUsuario + "'";		 
    //miLog.addTraza(sUsuario , "HaySentencia" , "sSentencia: " + sSentencia, m05bConstantes.LOG_NIVEL_BAJO);              	     
if (!(sSituacion.equals(""))){
        sSituacion=miComun.ListaCaracteres(sSituacion);
    	sSentencia= sSentencia + " AND " + m05bConstantes.COL_34_SITUACION+ " in ("+sSituacion+")";}
//miLog.addTraza(sUsuario , "HaySentenciaS" , "sSentencia: " + sSentencia, m05bConstantes.LOG_NIVEL_BAJO);              	         	
if (!(sRango2.equals(""))){
    	sSentencia= sSentencia + " AND " + m05bConstantes.COL_90_RANGO+ " = '"+sRango2+"'" ;
    	//miLog.addTraza(sUsuario , "HaySentenciaR" , "sSentencia: " + sSentencia, m05bConstantes.LOG_NIVEL_BAJO); 
    	}
             	         	    	
else if (!(sGRango2.equals(""))){
    	String sSentenciaGrupo=" SELECT "+ m05bConstantes.COL_36_RANGOS+
    	                " FROM " + m05bConstantes.TAB_GRUPOS + 
    	                " WHERE " + m05bConstantes.COL_36_CODIGO + " = '" +sGRango2+"'";
    	pstmt = conn.prepareStatement(sSentenciaGrupo);
		rs = pstmt.executeQuery();
        if (rs.next()){
		    sGRango=rs.getString(1)==null ? "":rs.getString(1);	
            sGRango=miComun.ListaCaracteres(sGRango);
    	sSentencia= sSentencia + " AND " + m05bConstantes.COL_90_RANGO+ " in ( "+sGRango + ")";
            }
//miLog.addTraza(sUsuario , "HaySentenciaGR" , "sSentencia: " + sSentencia, m05bConstantes.LOG_NIVEL_BAJO);               
}
if (!(sModelo2.equals(""))){
        sModelo2=miComun.ListaCaracteres(sModelo2);
    	sSentencia= sSentencia + " AND " + m05bConstantes.COL_34_MODELO+ " in ("+sModelo2+")";}
else if (!(sMarca2.equals(""))){
    	sSentencia= sSentencia + " AND " + m05bConstantes.COL_34_MARCA+ " = '"+sMarca+"'"  ;
}
if (!(sMatricula2.equals(""))){
    	sSentencia= sSentencia + " AND " + m05bConstantes.COL_34_MATRICULA+ " = '"+sMatricula2+"'" ;}
//miLog.addTraza(sUsuario , "HaySentenciaM" , "sSentencia: " + sSentencia, m05bConstantes.LOG_NIVEL_BAJO);              	
    pstmt2 = conn.prepareStatement(sSentencia);
    rs2 = pstmt2.executeQuery();
        
        
%>
    	
<TABLE class="general">
  <tr>
       <td width="90%" align="right">
       		<input type="button" class="boton" name="<%= res.getString("etBOT_RETORNAR")%>" value="<%= res.getString("etBOT_RETORNAR")%>" ONCLICK="JavaScript:fncRetornar();" onMouseOver="top.status='<%= res.getString("etBOT_STATUSRETORNAR")%>'; return false" onMouseOut="top.status=''; return false" />
       </td>
  </tr>
  <tr>
    <td colspan="2">
    <% if (rs2.next() == true){ %>
      
		<embed name='pdfKilometros' src='<%=srcPDF%>' type="application/pdf" width='736' height='500'></embed>
    <%} else {%>
		<embed name='pdfKilometros' src='/parquemovil/SinDatos.pdf' type="application/pdf" width='736' height='500'></embed>
    <%}%>
	<%	} catch (Exception SQLException) {
			miLog.addTraza(SQLException);
			//miLog.addTraza(sUsuario , "HayError" , "SQLException.getCause();: " + SQLException.getCause(), m05bConstantes.LOG_NIVEL_BAJO);              	
			//miLog.addTraza(sUsuario , "HayError" , "SQLException.getLocalizedMessage(): " + SQLException.getLocalizedMessage(), m05bConstantes.LOG_NIVEL_BAJO);              	
			SQLException.getLocalizedMessage();
		} finally {
				if (rsTmp != null)
					rsTmp.close();
				if (pstmtTmp != null)
					pstmtTmp.close();
				if (rsVehiculos != null)
					rsVehiculos.close();
				if (pstmtVehiculos != null)
					pstmtVehiculos.close();
				if (rsTransferencias != null)
					rsTransferencias.close();
				if (pstmtTransferencias != null)
					pstmtTransferencias.close();
				if (rsBucle != null)
					rsBucle.close();
				if (pstmtBucle != null)
					pstmtBucle.close();
				if (rsBucle2 != null)
					rsBucle2.close();
				if (pstmtBucle2 != null)
					pstmtBucle2.close();				
				if (rsUpdate != null)
					rsUpdate.close();
				if (pstmtUpdate != null)
					pstmtUpdate .close();
				if (rs != null)
					rs.close();
				if (pstmt != null)
					pstmt.close();
				if (rs2 != null)
					rs2.close();
				if (pstmt2 != null)
					pstmt2.close();
				if (rs3 != null)
					rs3.close();
				if (pstmt3 != null)
					pstmt3.close();
				if (rs4 != null)
					rs4.close();
				if (pstmt4 != null)
					pstmt4.close();
				if (conn != null)
					conn.close();}%>
  	</td>
  </tr>
</TABLE>
</form>
<script type="text/javascript" src="<%=m05bConstantesPaginas.PATH_SCRIPTS%>/m05bMsControl.js"></script>
 
</div>		
</body>
<SCRIPT language=JavaScript>
	function fncRetornar() {
		var docu = document.formSolicitud;
		docu.action="/m05bParqueMovilWar/m05bImpKmYConsumoJsp.jsp" ;
		docu.submit();
	}
</SCRIPT>
</html>