/*
 * Created on 02-mar-2011
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package itourbaskDAO;

import itourbaskBeans.q53NotificacionBean;
import itourbaskBeans.q53RespuestaBean;
import q53_util.q53LogEstadisticas;
import q53_util.q53Util;

import com.cidat.proclets.PSP;
import com.cidat.proclets.ProcletException;
import com.cidat.proclets.ProcletServiceData;

/**
 * q53RespuestaBean que se autorellena desde procletservicedatas
 */
public class q53RespuestaDAO extends q53RespuestaBean {
   
   /** Rellena los valores de el Bean necesarios para buscar los resultados de una busqueda
    * Como una busqueda no muestra todos los resultado no sera necesario añadir todos los valores
    * @param sd procletservicedata sobre el que se ha ejecutado una busqueda
    * @param prefijoCampos prefijo de todas las llamadas al psd, por ejemplo, si para obtener el
    * valor de el codigo de respuesta se usa sd.gOS("encuestas[" + i + "].m0_cod_respuesta") el valor 
    * de prefijoCampos sera "encuestas[" + i + "]".
    * 
    * NO RECOGE el estado ni la descripcion (m4_texto) pq en el codigo viejo se hacian cosas diferentes
    * que aun no entiendo.
    * 
    * @param codOficina El codigo de oficina
    * @param tipo "pres" para presencial y "nopres" para no presencial
    * @throws ProcletException
    */
   public void rellenarBeanParaBusquedas(ProcletServiceData sd, String prefijoCampos, String codOficina, String tipo) throws ProcletException{
   	setCodEncuesta("0");                                
     String cod_respuesta=sd.gOS(prefijoCampos + ".m0_cod_respuesta");
     setCodRespuesta(sd.gOS(prefijoCampos + ".m0_cod_respuesta"));
     setCodOficina(codOficina);
     setFechaCreacionRespuesta(sd.gOS(prefijoCampos + ".m0_fecha"));
     setCodPersona(sd.gOS(prefijoCampos + ".m0_cod_persona"));
    	setNombrePersona(sd.gOS(prefijoCampos + ".t03_nousu"));
    	setCodVersion("1");
     setFechaRespuesta(sd.gOS(prefijoCampos + ".m0_fecha_resp"));
     setTipoEncuesta(sd.gOS(prefijoCampos + ".m0_tipo_encuesta"));
     setNumPersonas(sd.gOS(prefijoCampos + ".m0_personas"));
     if(!tipo.equals("pres")){
       setMedioRecepEnc(q53CommonQueries.getOpcionName(sd, getCodRespuesta(), "3"));
       meterNotificacion(sd,cod_respuesta);
       }
     }
	/**
	 * Método para insertar en el bean de la respuesta la parte de notificaciones en el caso de tenerlas.
	 *
	 * @param respuestaBean El bean con los datos de la respuesta a la que añadiremos la parte de notificaciones
	 * @param cod_respuesta El codigo de la respuesta 
	 * 
	 * @throws ProcletException
	 */
   private void meterNotificacion(ProcletServiceData sd ,String cod_respuesta) throws ProcletException {
		String select_notificacion="SELECT * FROM Q53M7T00 WHERE M7_COD_RESPUESTA="+cod_respuesta;
		PSP.sqlProclet(sd, "notificacion[]=" + select_notificacion);
		if(sd.gI("notificacion.length")>0){
			setTiene_notificacion("si");
			String tipo_envio= sd.gOS("notificacion[0].m7_tipo_envio");
			q53LogEstadisticas.printLog("El tipo de envio de la notificacion es : "+tipo_envio);
			q53NotificacionBean notificacionBean = new q53NotificacionBean();
			notificacionBean.setTipo_envio(tipo_envio);
			notificacionBean.setNombre(sd.gOS("notificacion[0].m7_nombre"));
			notificacionBean.setDireccion(sd.gOS("notificacion[0].m7_direccion"));
			notificacionBean.setLocalidad(sd.gOS("notificacion[0].m7_localidad"));
			if (!"".equals(sd.gOS("notificacion[0].m7_codpostal")))
				notificacionBean.setCodPostal(q53Util.padL((new Integer(sd.gI("notificacion[0].m7_codpostal"))).toString(), 5, '0'));  		
			notificacionBean.setEmail(sd.gOS("notificacion[0].m7_email"));    		
			notificacionBean.setFax(sd.gOS("notificacion[0].m7_fax"));		
			if (!"".equals(sd.gOS("notificacion[0].m7_fecha")))
				notificacionBean.setFecha(q53Util.convertirFecha(sd.gOS("notificacion[0].m7_fecha")));
			notificacionBean.setNhojas(sd.gOS("notificacion[0].m7_nhojas"));
			notificacionBean.setRemitente(sd.gOS("notificacion[0].m7_remitente"));
			notificacionBean.setDestinatario(sd.gOS("notificacion[0].m7_destinatario"));
			notificacionBean.setInformacion_envio(sd.gOS("notificacion[0].m7_informacion_envio"));
			setNotificacionBean(notificacionBean);
		}else{
			setTiene_notificacion("no");
		}
		return;
	}
	
}