package bancoServlet;

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

import javax.servlet.http.HttpSession;

import m05bBD.m05bBanco;
import m05bClasses.m05bConexion;
import m05bClasses.m05bConstantes;
import m05bClasses.m05bFileLog;

/**
 * Inserte aquí la descripción del tipo.
 * Fecha de creación: (19/09/03)
 */
public class m05bGrabarBancoServlet 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
 */
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 sCuenta="", sNombre="", sDireccion="", sTelefono="";
       String sql = "", accion="";
       boolean finalizado = false;
       try  {
				java.sql.Connection conn=null;
				PreparedStatement pstmt = null;
				ResultSet rs = null;
				
				HttpSession session = request.getSession(true);

				m05bBanco banco = (m05bBanco)session.getAttribute("m05bBanco");
				sCuenta = request.getParameter("Cuenta").toUpperCase();
				banco.setBan_cuenta(sCuenta);
				sNombre=request.getParameter("Nombre").toUpperCase();
				banco.setBan_nombre(sNombre);
				sDireccion=request.getParameter("Direccion").toUpperCase();
				banco.setBan_nombre(sDireccion);
				sTelefono=request.getParameter("Telefono").toUpperCase();
				banco.setBan_nombre(sTelefono);
				accion=request.getParameter("Accion");

				try{
							m05bConexion miConex = new m05bConexion();
							conn = miConex.getConnection();
							if (accion.equals(m05bConstantes.ACC_ACTUALIZAR))  {
								sql = "update	M0503T00" + 
										" set	NOMBRE_03 = '" + sNombre + "', DIREC_03 = " + sDireccion + 
										", TELEF_03 = '" + sTelefono + "'" +
										" where	NCUENTA_03 = '" + sCuenta + "'";
								pstmt = conn.prepareStatement(sql);	
							}
							else if (accion.equals(m05bConstantes.ACC_INSERTAR))  {
							// Chequear si ya existe un banco con ese codigo
							   sql = "select 1  from M0503T00 where NCUENTA_03 = '" + sCuenta + "'";
						       pstmt = conn.prepareStatement(sql);
							   rs = pstmt.executeQuery();
							   if (rs.next() == true){ 		
				       	    			response.sendRedirect("m05bBancosJsp.jsp?Cuenta=" + sCuenta + "&Mensaje=" + m05bConstantes.MSG_EXISTE);
				       	    			finalizado = true;
							   } 
							   else {
							   	   sql = "insert into	M0503T00 " + 
										"(NCUENTA_03, NOMBRE_03, DIREC_03 , TELEF_03) " +
										"VALUES " + 
										"('"+sCuenta+"', '"+sNombre+"', "+sDireccion+", '"+sTelefono+"')";
									pstmt = conn.prepareStatement(sql);
							//System.out.println("m05b - Grabar Bancos: SQL : " + sql);
									
								}
							}
							else   {
								pstmt = conn.prepareStatement(
									"delete from 	M0503T00 " + 
									" where NCUENTA_03 =  ? " );
								pstmt.setString(1, sCuenta);
							}
							if(!finalizado){
								pstmt.executeUpdate();
								response.sendRedirect("m05bRelBancosJsp.jsp");
							}
		} 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
			m05bFileLog miLog = new m05bFileLog();
			miLog.addTraza(e);
		}
	}
}
}