package sancionesServlet;

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

import javax.servlet.http.HttpSession;

import m05bBD.m05bSanciones;
import m05bClasses.m05bCampos;
import m05bClasses.m05bComun;
import m05bClasses.m05bConexion;
import m05bClasses.m05bConstantes;
import m05bClasses.m05bFileLog;

public class m05bGrabarSancionesServlet 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, sTipo, sCodOrg, sDescOrg, sDni;
       String Matricula, accion;
       String sFecRec, sFecDen, sHorDen, sHorSan,sFecSan, sFecNot, sFecNotCon,sFecResolucion,sFecApremio, sFecRecDat;
       String sExpDen, sExpSan;
       String persona="";
	   java.sql.Connection conn=null;
	   PreparedStatement pstmt = null;
	   String sSentencia="";
      
       try

	{
			HttpSession session = request.getSession(true);

	        m05bComun comun = new m05bComun();
	        m05bCampos campos = new m05bCampos();
            m05bFileLog miLog = new m05bFileLog(); 
            persona = (String) session.getAttribute("persona");	 
	        
	        m05bSanciones sanciones = (m05bSanciones)session.getAttribute("m05bSanciones");
	        Matricula=request.getParameter("Matricula")==null?"":request.getParameter("Matricula").toUpperCase();
	  		/*if (Matricula == null)
	  			Matricula="";
	  		else
				Matricula=Matricula.toUpperCase();*/
			sCodigo = request.getParameter("Codigo")==null?"":request.getParameter("Codigo").toUpperCase();
	  		/*if (sCodigo == null)
	  			sCodigo="";
	  		else
				sCodigo=sCodigo.toUpperCase();*/
			sanciones.setSan_codigo(sCodigo);
			sTipo=request.getParameter("Tipo")==null?"":request.getParameter("Tipo").toUpperCase();
	  		if (sTipo == null)
	  			sTipo="";
	  		else
				sTipo=sTipo.toUpperCase();
			sanciones.setSan_fsancion(sTipo);
            miLog.addTraza(persona , "Grabar Sanciones:  " , "sTipo: " + sTipo,m05bConstantes.LOG_NIVEL_BAJO);
			
			sCodOrg=request.getParameter("CodOrg")==null?"":request.getParameter("CodOrg").toUpperCase();
			sanciones.setSan_codorg(sCodOrg);
			sDescOrg=request.getParameter("DescOrg")==null?"":request.getParameter("DescOrg").toUpperCase();
	        sanciones.setSan_descorg(sDescOrg);
			sExpDen=request.getParameter("ExpDen")==null?"":request.getParameter("ExpDen").toUpperCase();
			sanciones.setSan_nexdenuncia(sExpDen);
	        sExpSan=request.getParameter("ExpSan")==null?"":request.getParameter("ExpSan").toUpperCase();
			sanciones.setSan_nexsancion(sExpSan);
            
	        sFecDen=request.getParameter("FecDen");
	        sHorDen=request.getParameter("HorDen");
	        //sFecDen=comun.FechaBD(sFecDen,sHorDen);
	        sFecDen=comun.FechaObj(sFecDen,sHorDen);
	        sanciones.setSan_fdenuncia(sFecDen);
            miLog.addTraza(m05bConstantes.LOG_NO_USER , m05bConstantes.LOG_NO_SRC , "sFecDen: HorDen" + sFecDen+"@@"+sHorDen,m05bConstantes.LOG_NIVEL_BAJO);
	        
	        sFecSan=request.getParameter("FecSan");
	        sHorSan=request.getParameter("HorSan");
	        //sFecSan=comun.FechaBD(sFecSan,sHorSan);
	        sFecSan=comun.FechaObj(sFecSan,sHorSan);
	        
			sanciones.setSan_fsancion(sFecSan);
			sFecRec=request.getParameter("FecRec");
	        //sFecRec=comun.FechaBD(sFecRec,"00:00");
   	        sFecRec=comun.FechaObj(sFecRec,"00:00");

			sanciones.setSan_frecep(sFecRec);
	        sFecNot=request.getParameter("FecNot");
	        //sFecNot=comun.FechaBD(sFecNot,"00:00");
   	        sFecNot=comun.FechaObj(sFecNot,"00:00");
	        
			sanciones.setSan_fnotdatos(sFecNot);
	        sFecNotCon=request.getParameter("FecNotCon");
	        //sFecNotCon=comun.FechaBD(sFecNotCon,"00:00");
   	        sFecNotCon=comun.FechaObj(sFecNotCon,"00:00");
	        
			sanciones.setSan_fnotcon(sFecNotCon);
			sFecResolucion=request.getParameter("FecResolucion");
	        //sFecResolucion=comun.FechaBD(sFecResolucion,"00:00");
   	        sFecResolucion=comun.FechaObj(sFecResolucion,"00:00");
	        
			sanciones.setSan_fresolucion(sFecResolucion);			
			sFecApremio=request.getParameter("FecApremio");
	        //sFecApremio=comun.FechaBD(sFecApremio,"00:00");
   	        sFecApremio=comun.FechaObj(sFecApremio,"00:00");
	        
			sanciones.setSan_fapremio(sFecApremio);			
	        sFecRecDat=request.getParameter("FecRecDat");
	        //sFecRecDat=comun.FechaBD(sFecRecDat,"00:00");
   	        sFecRecDat=comun.FechaObj(sFecRecDat,"00:00");
	        
	        sanciones.setSan_frecdatos(sFecRecDat);
	        sDni=request.getParameter("Dni")==null?"":request.getParameter("Dni").toUpperCase();
	        sanciones.setSan_dni(sDni);
			accion=request.getParameter("Accion");

			try{
					m05bConexion miConex = new m05bConexion();
					conn = miConex.getConnection();
					if (accion.equals(m05bConstantes.ACC_ACTUALIZAR))  {
					       pstmt = conn.prepareStatement("update " +m05bConstantes.TAB_SANCIONES+
							" set "+m05bConstantes.COL_45_TIPO+" = ? " +
							" ,	"+m05bConstantes.COL_45_COD_ORG+" = ? " +
							" ,	"+m05bConstantes.COL_45_DESC_ORG+" = ? " +
							" ,	"+m05bConstantes.COL_45_FNOTIF_DPTO+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
							" ,	"+m05bConstantes.COL_45_FRECEPC+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
		                    " ,	"+m05bConstantes.COL_45_FDENUNCIA+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
							" ,	"+m05bConstantes.COL_45_NEXP_DENUNCIA+" = ? " +
							" ,	"+m05bConstantes.COL_45_FSANCION+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
							" ,	"+m05bConstantes.COL_45_NEXP_SANCION+" = ? " +
		                    " ,	"+m05bConstantes.COL_45_DNI+" = ? " +
		                    " ,	"+m05bConstantes.COL_45_FNOTIF_COND+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
		                    " ,	"+m05bConstantes.COL_45_FREC_DATOS+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
		                    " ,	"+m05bConstantes.COL_45_FRESOLUCION+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
		                    " ,	"+m05bConstantes.COL_45_FAPREMIO+" = TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') " +
							" where	"+m05bConstantes.COL_45_CODIGO+" = ?");
						pstmt.setString(1, sTipo);
						pstmt.setString(2, sCodOrg);
						pstmt.setString(3, sDescOrg);
						pstmt.setString(4, sFecNot);
						pstmt.setString(5, sFecRec);
		                pstmt.setString(6, sFecDen);
						pstmt.setString(7, sExpDen);
						pstmt.setString(8, sFecSan);
						pstmt.setString(9, sExpSan);
						pstmt.setString(10, sDni);
		                pstmt.setString(11, sFecNotCon);
		                pstmt.setString(12, sFecRecDat);
						pstmt.setString(13, sFecResolucion);
						pstmt.setString(14, sFecApremio);
						pstmt.setString(15, sCodigo);
						
					}
					else if (accion.equals(m05bConstantes.ACC_INSERTAR))  {
						pstmt = conn.prepareStatement(
							"insert into  " +m05bConstantes.TAB_SANCIONES+
							"("+m05bConstantes.COL_45_CODIGO+", "+m05bConstantes.COL_45_COD_ORG+
		                    ","+m05bConstantes.COL_45_DESC_ORG+","+m05bConstantes.COL_45_TIPO+","+m05bConstantes.COL_45_DNI+","
		                    +m05bConstantes.COL_45_NEXP_SANCION+","+m05bConstantes.COL_45_NEXP_DENUNCIA+","+m05bConstantes.COL_45_FSANCION+
		                    ","+m05bConstantes.COL_45_FDENUNCIA+","+m05bConstantes.COL_45_MATRICULA+","+m05bConstantes.COL_45_FNOTIF_DPTO+
		                    ","+m05bConstantes.COL_45_FNOTIF_COND+","+m05bConstantes.COL_45_FRECEPC+","+m05bConstantes.COL_45_FREC_DATOS+
		                    ","+m05bConstantes.COL_45_FRESOLUCION+","+m05bConstantes.COL_45_FAPREMIO+")"+
							" values " +
							"(? ,?, ?, ? ,?, ?, ?, TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'), ?, TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') )" );
						pstmt.setString(1, sCodigo);
						pstmt.setString(2, sCodOrg);
						pstmt.setString(3, sDescOrg);
						pstmt.setString(4, sTipo);
						pstmt.setString(5, sDni);
						pstmt.setString(6, sExpSan);
		                pstmt.setString(7, sExpDen);
						pstmt.setString(8, sFecSan);
						pstmt.setString(9, sFecDen);
						pstmt.setString(10, Matricula);
						pstmt.setString(11, sFecNot);
						pstmt.setString(12, sFecNotCon);
		                pstmt.setString(13, sFecRec);
		                pstmt.setString(14, sFecRecDat);
						pstmt.setString(15, sFecResolucion);
						pstmt.setString(16, sFecApremio);
		                
					}
					else   {
						pstmt = conn.prepareStatement(
							"delete from 	"+m05bConstantes.TAB_SANCIONES+
							" where "+m05bConstantes.COL_45_CODIGO+" =  ? " );
						pstmt.setString(1, sCodigo);
					}
					pstmt.executeUpdate();
					
		       /*     String sURL;
					m05SancionesPK primaryKey = new m05SancionesPK();
					primaryKey.san_codigo = sCodigo;
					
					InitialContext ctx2 = new InitialContext();
					m05SancionesHome sancionesEBHome = (m05SancionesHome) ctx2.lookup("m05Sanciones");
					
					m05Sanciones sancionesEB = sancionesEBHome.findByPrimaryKey(primaryKey);
					m05bSanciones san = sancionesEB.getSanciones();

					session.setAttribute("m05bSanciones", san);*/
					session.setAttribute("m05bSanciones", sanciones);
					response.sendRedirect("m05bVehSancionesJsp.jsp?Matricula=" + Matricula);
			} 	catch (SQLException ex1) {
					if (ex1.getErrorCode() == m05bConstantes.ERR_DUPLICADOS)
						response.sendRedirect("m05bSancionesJsp.jsp?Matricula=" + Matricula + "&Mensaje=Existe&Accion="+accion);
					
					else
						response.sendRedirect("m05bError.jsp");
					miLog.addTraza(ex1);
			} 	finally{
					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);
			}
}
}
}
