/*
 * XXXX 
 *
 * Fecha 08/05/2007
 * 
 *  
 */
 
package com.ejie.p06b.servlet.test;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ejie.p06b.datatype.logic.P06BNumeracionesComp;
import com.ejie.p06b.datatype.model.P06BA1T00Datatype;
import com.ejie.p06b.general.P06BConstantes;
import com.ejie.p06b.general.P06BPaginas;
import com.ejie.p06b.manager.P06BTestManager;
import com.ejie.p06b.p06bMediadoresSegurosEJB.P06BMediadoresSegurosEJB;
import com.ejie.p06b.p06bMediadoresSegurosEJB.P06BMediadoresSegurosEJBHome;

import com.ejie.p06b.servlet.P06BServletGenerico;
import com.ejie.p06b.util.P06BParametros;
import com.ejie.p06b.xlnet.P06BPerfilUsuario;




/**
 *  Esta clase gestiona las peticiones HTTP de la aplicación.
 */
public class P06BTestManagerServlet extends P06BServletGenerico 
{

	//Cambia de idioma en la sesión -> Perfil
	public void ejecutar(HttpServletRequest request, HttpServletResponse response) {
		try {
			if(request.getParameter("tipo")==null){
				P06BPerfilUsuario lPerfil = (P06BPerfilUsuario) getObjetoSesion (P06BConstantes.P06B_VAR_PERFIL_USUARIO,request,response);
				P06BNumeracionesComp registro = P06BTestManager.getInstance().select(request.getParameter("codigo"),lPerfil.getIdIdioma());
				
				//Vamos a la página de inicio de la aplicación
				String resultado = registro.toString();
				forward (request, response, P06BPaginas.P06B_JSP_TEST+"?resultado="+resultado);
			}else if(request.getParameter("tipo").equals("pruebaEJB")){
				String resultadoEJB = "El proceso se ha realizado correctamente";
				boolean conError = false;
				if(request.getParameter("error").equals("true")){
					conError = true;
				}
				//Creo el objeto que voy a insertar
				P06BNumeracionesComp obj = new P06BNumeracionesComp();
				P06BA1T00Datatype datatype = new P06BA1T00Datatype();
				datatype.setCodigo(request.getParameter("codigo"));
				datatype.setDescripcion("Ejemplo de Test");
				datatype.setValor("Valor test");
				obj.setNumeracion(datatype);
				//Llamo al EJB de sesión
				//Se permite crear el ctx de invocación mediante una factoria
				//Por si queremos probar en local un EJB de desarrollo por ejm. (Ver factoría)
				//Context context = P06BFactoryEJB.getContextMediadoresSegurosEJB();
				Context context =new InitialContext();
				Object objRef = context.lookup(P06BParametros.get("mediadoresSeguros.ejb.jndiName"));
				P06BMediadoresSegurosEJBHome home = (P06BMediadoresSegurosEJBHome)javax.rmi.PortableRemoteObject.narrow(
		                		  objRef, P06BMediadoresSegurosEJBHome.class);
				P06BMediadoresSegurosEJB mediadoresSeguroEJB = home.create();
				mediadoresSeguroEJB.testEJB(obj,conError);
				//Fin Llamo al EJB de sesión
				forward (request, response, P06BPaginas.P06B_JSP_TEST+"?resultadoEJB="+resultadoEJB+"&error="+request.getParameter("error"));
			}
		}catch (Exception e){
	      	manejarErrores (request, response, e);
	        return;
	    }
	}
	
}