<%@page import="java.util.*,javax.sql.*,java.sql.*,javax.naming.*,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"%> 
<%  } %>
<%@ include file="/m05bIdioma.inc"%>			
<HTML>
<head>
		<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
		<script language="javascript1.2" src="<%=m05bConstantesPaginas.PATH_SCRIPTS%>/formateador.js"></script>	
		<script>
		   function Matricula (marca,modelo,color,kmsalida,fkmact) {
			     //top.formAsignaciones.Matricula.value = matricula;
			     top.formAsignaciones.Marca.value = marca;
			     top.formAsignaciones.Modelo.value = modelo;
			     top.formAsignaciones.Color.value = color;
			     top.formAsignaciones.Kmsalida.value = kmsalida;
			     top.formAsignaciones.Kmsal.value = kmsalida;
				 top.formAsignaciones.FKmAct.value = fkmact;
				 top.formAsignaciones.KmAct.value = kmsalida;
				 formatNumero(top.formAsignaciones.Kmsalida);
				 formatNumero(top.formAsignaciones.KmAct);
		   }  // Fin funcion Matricula
		   
		   function fncRestricciones (texto) {
				  alert(dameAlerta(idioma, 89) + texto );
				  top.formAsignaciones.Dni.value="";
		   }// Fin  funcion fncRestricciones

		   function fncAvisos (texto) {
				  alert(dameAlerta(idioma, 90) +  texto  );
		   }// Fin  funcion Avisos
		   	   
		</script>
</head>

<%	  
	  java.sql.Connection conn=null;
	  PreparedStatement pstmt = null;
	  ResultSet rs = null;
	  m05bComun comun = new m05bComun();
	  m05bCampos miCampo = new m05bCampos();
	  m05bFileLog miLog = new m05bFileLog();
	  m05bConexion miConex = new m05bConexion();
	  conn = miConex.getConnection();
	  miLog.addTraza("Anabel","Asig Frame", "INICIO", m05bConstantes.LOG_NIVEL_BAJO);
	  String strRecarga = request.getParameter("Recargar");
	  String strfDesde = request.getParameter("Desde");
	  String strhDesde = request.getParameter("HoraDesde");
   	  strfDesde=comun.FechaBD(strfDesde,strhDesde);
	  String strfHasta = request.getParameter("Hasta");
	  String strhHasta = request.getParameter("HoraHasta");
	  String strRango = request.getParameter("Rango");
	  String permanente = request.getParameter("Perm")==null?"N":request.getParameter("Perm");
  	  miLog.addTraza("", "Coches Libres Asig", "PERMANENTE: " + permanente, m05bConstantes.LOG_NIVEL_BAJO);	  
      if (strfHasta!=null && !strfHasta.equals("")){
         	strfHasta=comun.FechaBD(strfHasta,strhHasta);
      } else { 
            strfHasta="";
      }
        
	  if (strRecarga==null) {
	      strRecarga="";
	  }
	  String strMatricula="", strDni="", txtRestriccion="";
	  String sql="";
	  String aux1="", aux2="", aux3="", aux4="", aux5="";
      strMatricula=request.getParameter("Matricula");
      if (strMatricula != null)
      	  strMatricula = strMatricula.toUpperCase();
      

  if ((strMatricula != null) && ((strfDesde == "") || (strfHasta == "")))  {  %>
           <script>
                    alert(dameAlerta(idioma, 221));
                    top.formAsignaciones.Matricula.value="";
					top.formAsignaciones.Color.value="";
                    top.formAsignaciones.Marca.value="";
					top.formAsignaciones.Modelo.value="";
					top.formAsignaciones.Kmsal.value="";
					top.formAsignaciones.Kmsalida.value="";
           </script>
  <% 		aux5="error";
  } else if ( strRecarga.equals("Matricula") ) {
	  	  miLog.addTraza("","", "Matricula: " + strMatricula, m05bConstantes.LOG_NIVEL_BAJO);
	      sql = "select M." + m05bConstantes.COL_99_DESCRIPCION + ", C." + m05bConstantes.COL_99_DESCRIPCION +
	          "," + m05bConstantes.COL_34_KMACTUALES + "," + m05bConstantes.COL_34_FKMACT + 
	          "," + m05bConstantes.COL_17_DESCRIP + 
	          " FROM " + m05bConstantes.TAB_VEHICULOS + "," + m05bConstantes.TAB_DESCRIPCIONES +
	          " M,  " + m05bConstantes.TAB_DESCRIPCIONES + " C ," + m05bConstantes.TAB_MODELOS + 
	          " where " + m05bConstantes.COL_34_MATRICULA + "='" + strMatricula +  "'" +	
			  " AND " + m05bConstantes.COL_34_SITUACION + " = '" + m05bConstantes.VEH_ALTA + "'" +	          
			  " AND " + m05bConstantes.COL_34_RANGO + " = '" + strRango + "'" +	          
			  " AND " + m05bConstantes.COL_34_MODELO + " = " + m05bConstantes.COL_17_CODMOD +
	          " AND ((M." + m05bConstantes.COL_99_CODTABLA + " = " + m05bConstantes.DESC_MARCAS + 
	          " AND M." + m05bConstantes.COL_99_CODDESC + " = " + m05bConstantes.COL_34_MARCA + ") AND (C." + m05bConstantes.COL_99_CODTABLA +
	          " (+) =" + m05bConstantes.DESC_COLORES + " AND C." + m05bConstantes.COL_99_CODDESC + " (+) = " + m05bConstantes.COL_34_COLOR + "))";
	  miLog.addTraza("","", "SQL: " +  sql, m05bConstantes.LOG_NIVEL_BAJO);
  } else if ( strRecarga.equals("Dni") ) {
	      strDni=request.getParameter("Dni").toUpperCase();
	   	  	// 20140925 - INIGO
		  	// Chequear si ya existe una persona con ese dni con o sin letra
			String sDniSinLetra = strDni;
			if (strDni.length() > 0) {
				if (!Character.isDigit(strDni.charAt(strDni.length() - 1))) {
					sDniSinLetra = sDniSinLetra.substring(0, strDni.length() - 1);
				}
			}
	  	  miLog.addTraza("","", "Dni: " + strDni, m05bConstantes.LOG_NIVEL_BAJO);
	      sql="select " + m05bConstantes.COL_99_DESCRIPCION +   ","  + m05bConstantes.COL_04_DESCCARG +
	          "," + m05bConstantes.COL_21_CODDPTO + "," + m05bConstantes.COL_21_NOMBRE + 
	          " FROM " + m05bConstantes.TAB_PERSONAL + "," + m05bConstantes.TAB_DEPARTAMENTOS + 
	          "," + m05bConstantes.TAB_CARGOS + "," + m05bConstantes.TAB_DESCRIPCIONES +
			  " WHERE (" + m05bConstantes.COL_21_DNI + " = '" + strDni + "' OR " + m05bConstantes.COL_21_DNI + " LIKE '" + sDniSinLetra + "%')"
	          " AND " + m05bConstantes.COL_21_CODCARGO + " = " + m05bConstantes.COL_04_CODCARGO + "(+) " +
	          " AND " + m05bConstantes.COL_99_CODTABLA + " = " + m05bConstantes.DESC_RANGOS + 
	          " AND " + m05bConstantes.COL_99_CODDESC + " = " + m05bConstantes.COL_21_RANGO ;
  }  // Fin else if
  try {
	     if ( !sql.equals("") ) {
				   pstmt = conn.prepareStatement(sql.toString());
				   rs = pstmt.executeQuery();
			       if (rs.next()){
			           if (strRecarga.equals("Matricula")) {
				               aux1=rs.getString(m05bConstantes.COL_17_DESCRIP);
				               aux3=rs.getString(m05bConstantes.COL_34_KMACTUALES)==null?"0":rs.getString(m05bConstantes.COL_34_KMACTUALES);
				               aux2=rs.getString(2)==null?"":rs.getString(2);
				               aux4=rs.getString(1)==null?"":rs.getString(1);
				               aux5=rs.getString(m05bConstantes.COL_34_FKMACT);
			           }  // Fin if
			           else {
			                    aux1=rs.getString(m05bConstantes.COL_21_NOMBRE);
			                    aux2=rs.getString(m05bConstantes.COL_21_CODDPTO);
			                    aux3=rs.getString(m05bConstantes.COL_04_DESCCARG);
			                    aux4=rs.getString(m05bConstantes.COL_99_DESCRIPCION);
			                    //aux5=rs.getString(m05bConstantes.COL_99_DESCRIPCION);
			           }  // Fin else
			       }  // Fin if  next
	     }  // Fin if sql
	    if ( (!aux1.equals("") ) && (!aux5.equals("error")) ) {
		         if ( strRecarga.equals("Matricula") ) { 
		         	   // Comprobar si el vehículo está libre en las fechas indicadas
				  	  miLog.addTraza("","", "Chequear si vehiculo esta libre", m05bConstantes.LOG_NIVEL_BAJO);
		         	   	   if (miCampo.vehiculoLibre(strMatricula, strfDesde, strfHasta, permanente))  {
						  	  miLog.addTraza("","", "Libre", m05bConstantes.LOG_NIVEL_BAJO);
		         	   		// Mostrar aviso asociado si existe
	       	  	  	  			String txtAviso=miCampo.getAviso(strMatricula, m05bConstantes.COL_02_ASIGNACION,campoTexto);
 					  			miLog.addTraza("","", "AVISO: " + txtAviso, m05bConstantes.LOG_NIVEL_BAJO);
	       	  	  	  			if (txtAviso != "") { %>
									<script language="javascript">
										fncAvisos('<%=txtAviso%>');
									</script>
	       	  	  	  			<% }  %>
					           <script>
						                 Matricula ("<%=aux4%>","<%=aux1%>","<%=aux2%>","<%=aux3%>","<%=aux5%>");
					           </script>
		         	   	   <% }
		         	   	   else {  
						  	  miLog.addTraza("","", "Ocupado", m05bConstantes.LOG_NIVEL_BAJO);
		         	   	   	   %>
				                <script>
					                    alert(dameAlerta(idioma, 222));
					                    top.formAsignaciones.Matricula.value="";
										top.formAsignaciones.Color.value="";
					                    top.formAsignaciones.Marca.value="";
										top.formAsignaciones.Modelo.value="";
				                </script>
		         <% 		}
		         } else {
			             aux2=aux2.trim();
					  	 miLog.addTraza("","", "Chequear si persona tiene restricciones", m05bConstantes.LOG_NIVEL_BAJO);
	       	  	  	 	 txtRestriccion=miCampo.getRestriccion(strDni);
		       	  	  	 if (txtRestriccion != "") { 
						  	 miLog.addTraza("","", "Tiene restricciones-1", m05bConstantes.LOG_NIVEL_BAJO);
		       	  	  	 	 %>
								<script language="javascript">
										fncRestricciones('<%=txtRestriccion%>');
								</script>
						  <% miLog.addTraza("","", "Tiene restricciones-2", m05bConstantes.LOG_NIVEL_BAJO);
						  	}  %>
			             <script>
				                 var doc=top.formAsignaciones.NSolicitud;
				                 var aux="";
				                 //top.formAsignaciones.Dni.value="<%=strDni%>";
				                 top.formAsignaciones.dniIncorrecto.value = "no";
				                 top.formAsignaciones.Nombre.value="<%=aux1%>";
				                 top.formAsignaciones.Cargo.value="<%=aux3%>";
								 top.formAsignaciones.CodDpto.value="<%=aux2%>";				                 
				                 //top.formAsignaciones.DescDpto.value="<%//=aux5%>";
				                 for (i=0;i<doc.length;i++) {
				                      aux=doc.options[i].value;
				                      aux=aux.substring(aux.lastIndexOf("-")+1,aux.length);
				                      if (aux.indexOf(" ")+1==aux.length)
					                        aux=aux;
				                      else
					                        aux=aux.substring(aux.indexOf(" ")+1,aux.length);
				                      if (aux=="<%=aux2%>"){
					                         doc.options[i].selected="true";
					                         break;
				                      }
				                 }  // Fin for
				                 top.formAsignaciones.Rang.value="<%=aux4%>";
			             </script>
		         <% }  // Fin else
	    }  else if ( !aux5.equals("error") ) {
		          if (strRecarga.equals("Matricula")){ %>
		                 <script>
			                    alert(dameAlerta(idioma, 220));
			                    top.formAsignaciones.Matricula.value="";
								top.formAsignaciones.Color.value="";
					            top.formAsignaciones.Marca.value="";
								top.formAsignaciones.Modelo.value="";
		                 </script>
		          <%} else if (strRecarga.equals("Dni")) {%>
		                 <script>
			                    alert(dameAlerta(idioma, 223));
			                    //top.formAsignaciones.Dni.value="";
			                    top.formAsignaciones.dniIncorrecto.value = "si";
				                top.formAsignaciones.Nombre.value="";
				                top.formAsignaciones.Cargo.value="";
								top.formAsignaciones.CodDpto.value="";
				                top.formAsignaciones.Rang.value="";
		                 </script>
		         <%}
	    }  // Fin else aux
  } catch (Exception ex1){
	  
   		miLog.addTraza(ex1);
  } finally {
				if (rs != null)
					rs.close();
				if (pstmt != null)
					pstmt.close();
				if (conn != null)
					conn.close();
  } %>
<BODY bgcolor="white" onkeydown="cancelaEnter();">
</BODY>
</HTML>