package amortizacionesServlet;

import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Locale;

import javax.servlet.http.HttpSession;

import m05bBD.m05bAmortizaciones;
import m05bClasses.m05bComun;
import m05bClasses.m05bConexion;
import m05bClasses.m05bConstantes;
import m05bClasses.m05bFileLog;


 /**
 * Inserte aquí la descripción del tipo.
 * Fecha de creación: (23/07/04)
 */

public class m05bGrabarAmortizacionesServlet extends javax.servlet.http.HttpServlet{


    /**
     * 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
     */
    public void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {

        performTask(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

    }
    /**
     * 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) {

           String sCodigo;
           String sMatricula;
           String sFecha;
           String sFechaAux="";
           String sRango;
           String sAmortiza;
           String sImporte;
           String accion;
           String sql="";
	       m05bComun miComun = new m05bComun();
		   m05bFileLog miLog = new m05bFileLog(); 
           try

        {
            java.sql.Connection conn;

            PreparedStatement pstmt = null;
            HttpSession session = request.getSession(true);
	        ResultSet rs = null;
	      	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";
	         }
            m05bComun comun = new m05bComun();
            m05bAmortizaciones amortiza = (m05bAmortizaciones)session.getAttribute("m05bAmortizaciones");
            sCodigo=request.getParameter("Codigo");
            amortiza.setAmo_codigo(sCodigo);
            sMatricula = request.getParameter("Matricula");
            amortiza.setAmo_matricula(sMatricula);
            sFecha=request.getParameter("Fecha");
            /*if (sFecha!=null)
            sFecha=comun.FechaBD(sFecha,"00:00");*/
            amortiza.setAmo_fecha(sFecha);
            sRango=request.getParameter("Rango");
            amortiza.setAmo_rango(sRango);
            sAmortiza=request.getParameter("Acumulado");
            if (sAmortiza==null || sAmortiza.equals("NULL") || sAmortiza.equals(""))
            	sAmortiza="0";
            sAmortiza=miComun.ImportesABasedatos(sAmortiza);
            miLog.addTraza("Bego" , "m05b - Grabar Amortizacion:  " , "sAmortiza: " + sAmortiza,m05bConstantes.LOG_NIVEL_BAJO);
                        
            amortiza.setAmo_amortiz(sAmortiza);
            sImporte=request.getParameter("Importe");
            if (sImporte==null || sImporte.equals("NULL") || sImporte.equals(""))
            	sImporte="0";
            sImporte=miComun.ImportesABasedatos(sImporte);
            miLog.addTraza("Bego" , "m05b - Grabar Amortizacion:  " , "sImporte: " + sImporte,m05bConstantes.LOG_NIVEL_BAJO);
                        
            amortiza.setAmo_importe(sImporte);
            accion=request.getParameter("Accion");
            //System.out.println("ACCION: " + accion);
            m05bConexion miConex = new m05bConexion();
                conn = miConex.getConnection();
            try{
                if (accion.equals(m05bConstantes.ACC_ACTUALIZAR))  {
                         sql = "SELECT TO_CHAR(" +m05bConstantes.COL_39_FECHA + ",'"+formatoFecha+"') FROM  " + m05bConstantes.TAB_AMORTIZACION +
                               " WHERE " + m05bConstantes.COL_39_MATRICULA +"='" + sMatricula+"' AND TO_CHAR(" +m05bConstantes.COL_39_FECHA + ",'"+formatoFecha+"')='"+ sFecha +"' AND " +
                               m05bConstantes.COL_39_CODIGO +" != '"+sCodigo+"'";
		                 //System.out.println("m05b - Grabar Cambio rango SQL transferencias: " + sql );
		                 pstmt = conn.prepareStatement(sql);
		                 rs = pstmt.executeQuery();
		                 if (rs.next()){  
		                 	 rs.getString(1);
		                 	conn.rollback();
                            response.sendRedirect("m05bAmortizaJsp.jsp?Matricula="+sMatricula+ "&Mensaje=Existe");}
                	     else {
         			       sql = "update " +m05bConstantes.TAB_AMORTIZACION+
	                             " set "+m05bConstantes.COL_39_RANGO+" = '" +sRango+
	                             "' , "+m05bConstantes.COL_39_IMPORTE+" =  "+ sImporte+
	                             " , "+m05bConstantes.COL_39_FECHA+" =  TO_DATE('"+sFecha+"','"+formatoFecha+"')" +
	                             " , "+m05bConstantes.COL_39_AMORTIZA+" = "+sAmortiza+
	                             " , "+m05bConstantes.COL_39_MATRICULA+" =  '"+sMatricula+
						         "' where	"+m05bConstantes.COL_39_CODIGO+" = "+sCodigo;
			             miLog.addTraza("Bego" , "m05bGrabarTasasServlet" , "sql1: " + sql ,m05bConstantes.LOG_NIVEL_BAJO);			       
			            pstmt = conn.prepareStatement(sql);
					    pstmt.executeUpdate();
				    	conn.commit();
	     				if (pstmt != null)
	 	    				pstmt.close();                	   	
	                    response.sendRedirect("m05bAmortizaJsp.jsp?Matricula="+sMatricula);
                }}
                else if (accion.equals(m05bConstantes.ACC_INSERTAR))  {
                         sql = "SELECT TO_CHAR(" +m05bConstantes.COL_39_FECHA + ",'"+formatoFecha+"') FROM  " + m05bConstantes.TAB_AMORTIZACION +
                               " WHERE " + m05bConstantes.COL_39_MATRICULA +"='" + sMatricula+"' AND TO_CHAR(" +m05bConstantes.COL_39_FECHA + ",'"+formatoFecha+"')='"+ sFecha +"' order by " + m05bConstantes.COL_39_CODIGO +" desc";
		                 pstmt = conn.prepareStatement(sql);
		                 rs = pstmt.executeQuery();
		                 if (rs.next()){  
		                 	 rs.getString(1);
		                 	 conn.rollback();
                             response.sendRedirect("m05bAmortizaJsp.jsp?Matricula="+sMatricula+ "&Mensaje=Existe");}
	                    else{
	        				sql="insert into	 " +m05bConstantes.TAB_AMORTIZACION+
							"("+m05bConstantes.COL_39_RANGO+","+m05bConstantes.COL_39_MATRICULA+","+m05bConstantes.COL_39_IMPORTE+
		                     ","+m05bConstantes.COL_39_FECHA+","+m05bConstantes.COL_39_AMORTIZA+","+m05bConstantes.COL_39_CODIGO+
		                     ") " +
							" values ('"+sRango+"','"+sMatricula+"',"+sImporte+
						    ",TO_DATE('"+sFecha+"','"+formatoFecha+"'),"+sAmortiza+","+sCodigo+")";
	        			     miLog.addTraza("Bego" , "m05b - Grabar Amortizacion:  " , "sql: " + sql,m05bConstantes.LOG_NIVEL_BAJO);
	        	            pstmt = conn.prepareStatement(sql);
						    pstmt.executeUpdate();
					    	 conn.commit();
		     				if (pstmt != null)
		 	    				pstmt.close();  
		                    response.sendRedirect("m05bAmortizaJsp.jsp?Matricula="+sMatricula);		     				
	        				
                        }}
                else   {
                    sql=   "delete from  " +m05bConstantes.TAB_AMORTIZACION+
                        " where "+m05bConstantes.COL_39_CODIGO+" = " + sCodigo;
    	            pstmt = conn.prepareStatement(sql);
				    pstmt.executeUpdate();
			    	conn.commit();
     				if (pstmt != null)
 	    				pstmt.close();
                    response.sendRedirect("m05bAmortizaJsp.jsp?Matricula="+sMatricula);     				
                }
         
             } catch (Exception SQLException) {
             
            	miLog.addTraza(SQLException);
                response.sendRedirect("m05bError.jsp");
            } finally {
                if (rs != null)
                    rs.close();
                if (pstmt != null)
                    pstmt.close();
                if (conn != null)
                    conn.close();
            }
        }
        catch(Throwable theException)
        {
            // uncomment the following line when unexpected exceptions
            // are occuring to aid in debugging the problem.
        	miLog.addTraza(theException);
            try {
				response.sendRedirect("m05bError.jsp");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				miLog.addTraza(e);
			}
        }
    }
}