package piezaServlet;

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

import javax.servlet.http.HttpSession;

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

/**
 * Inserte aquí la descripción del tipo.
 * Fecha de creación: (10/12/03)
 */
public class m05bGrabarPiezaServlet 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 sCodigo, sDescripcion, sPrecio,eDescripcion;
       	String sql = "", accion;
		java.sql.Connection conn=null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
        m05bComun miComun = new m05bComun();
        m05bFileLog miLog = new m05bFileLog();
        boolean finalizado = false;
       try {
			HttpSession session = request.getSession(true);
	        m05bPieza pieza = (m05bPieza)session.getAttribute("m05bPieza");
	        String persona = (String) session.getAttribute("persona");
			sCodigo = request.getParameter("Codigo");
			pieza.setPie_codigo(sCodigo);
			sDescripcion=request.getParameter("Pieza").toUpperCase();
			eDescripcion=request.getParameter("PiezaEu").toUpperCase();
			pieza.setPie_pieza(sDescripcion);
			pieza.setPie_piezaEu(eDescripcion);
			sPrecio=request.getParameter("Precio");
		    sPrecio= miComun.ImportesABasedatos(sPrecio);
			pieza.setPie_precio(Double.parseDouble(sPrecio));
			accion=request.getParameter("Accion");
			try{
				m05bConexion miConex = new m05bConexion();
				conn = miConex.getConnection();
				if (accion.equals(m05bConstantes.ACC_ACTUALIZAR))  {
					sql = "update	M0522T00 " + 
						"set	PIEZA_22 = '" + sDescripcion + "'" +
						" ,		EPIEZA_22 = '" + eDescripcion +"'"+
						" ,		PRECIO_U_22 = " + sPrecio +
						"where	COD_PIE_22 = '" + sCodigo + "'";
					pstmt = conn.prepareStatement(sql);
				}
				else if (accion.equals(m05bConstantes.ACC_INSERTAR))  {
				// Chequear si ya existe una pieza con ese codigo
				   sql = "select 1  from M0522T00 where COD_PIE_22 = '" + sCodigo + "'";
			       pstmt = conn.prepareStatement(sql);
				   rs = pstmt.executeQuery();
				   if (rs.next() == true){ 		
	       	    		response.sendRedirect("m05bPiezasJsp.jsp?Codigo=" + sCodigo + "&Mensaje=Existe");
	       	    		finalizado = true;
				   } 
				   else {
				   	    sql = "insert into	M0522T00 " + 
							"(COD_PIE_22, PIEZA_22, PRECIO_U_22,EPIEZA_22) " + 
							" values " + 
							"('" + sCodigo + "','" + sDescripcion + "'," + sPrecio + ",'" + eDescripcion + "')";
						pstmt = conn.prepareStatement(sql);
					}
				}
				else   {
					sql = "delete from 	M0522T00 " + 
						" where COD_PIE_22 =  '" + sCodigo + "'";
					pstmt = conn.prepareStatement(sql);
				}
				if(!finalizado){
					miLog.addTraza(persona, "Grabar piezas", "SQL: " + sql, m05bConstantes.LOG_NIVEL_BAJO);
					pstmt.executeUpdate();
					response.sendRedirect("m05bRelPiezasJsp.jsp");
					//response.sendRedirect("m05bPiezasJsp.jsp?Codigo="+ sCodigo + "&Mensaje=true");
				}
			} 	catch (SQLException ex) {
					if (ex.getErrorCode() == m05bConstantes.ERR_INTEGRIDAD)
						response.sendRedirect("m05bPiezasJsp.jsp?Codigo=" + sCodigo + "&Mensaje=" + m05bConstantes.MSG_INTEGRIDAD);
					else
						response.sendRedirect("m05bError.jsp");
					miLog.addTraza(ex);
			} 	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);
		}
	}
}


}