package com.ejie.ab79.control.busquedaInspecciones;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;

import com.ejie.ab79.clientesWS.ab61WebService.Usuario;
import com.ejie.ab79.comun.Constantes;
import com.ejie.ab79.comun.SeguridadAplicacion;
import com.ejie.ab79.comun.UtilUsuario;
import com.ejie.ab79.comun.UtilsConfig;
import com.ejie.ab79.model.Inspectores;
import com.ejie.ab79.model.plantillas.ParametrosConfig;
import com.ejie.ab79.service.InspectoresService;
import com.ejie.ab79.service.plantillas.ParametrosConfigService;

/**
 * CampainasInspeccionController  
 * 
 *  
 */
@SessionAttributes("usuario")
@Controller
@RequestMapping(value = "/busquedainspecciones")

public class BusquedaInspeccionesController {

	private static final Logger logger = LoggerFactory.getLogger(BusquedaInspeccionesController.class);

	@Autowired
	private InspectoresService inspectoresService;

	@Autowired
	private ParametrosConfigService parametrosConfigService;

	/**
	 * Metodo de presentacion del RUP_TABLE.
	 * 
	 * @param model
	 *            Model
	 * @return String
	 */
	@RequestMapping(value = "/maint", method = RequestMethod.GET)
	public String getFormEdit(HttpServletRequest httpRequest, Model model) {

		// Obtenemos los datos del Usuario logeado
		Authentication aut = SecurityContextHolder.getContext().getAuthentication();

		logger.info("Autotenticación : getAuthentication: " + aut);

		Usuario usuario = UtilUsuario.getUsuario(aut, httpRequest);

		model.addAttribute("usuario", usuario);

		Inspectores inspectores = new Inspectores();
		inspectores.setUsuarioXlnets(usuario.getUsuario());

		if (SeguridadAplicacion.instanciaTecnico()) {
			Inspectores inspectoresAux = this.inspectoresService.findByUsuarioXLNETS(inspectores);

			if (inspectoresAux != null && inspectoresAux.getIdInspector() != null) {
				model.addAttribute("idInspector", inspectoresAux.getIdInspector());
			}
		}

		ParametrosConfig parametrosConfigMovilidad = new ParametrosConfig();
		parametrosConfigMovilidad.setDescripcion(Constantes.CONFIGURACION_MOVILIDAD);
		parametrosConfigMovilidad = this.parametrosConfigService.find(parametrosConfigMovilidad);

		if (parametrosConfigMovilidad != null) {
			model.addAttribute("parametroMovilidad", parametrosConfigMovilidad.getValor());
		}

		model.addAttribute("urlAB59", UtilsConfig.getAppProperties().getProperty("URLAB59"));

		return "busquedaInspecciones";
	}
}
