package com.ejie.ab63.control.expedientes;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.ejie.ab63.comun.Constantes;
import com.ejie.ab63.model.DispensaEstablecimiento;
import com.ejie.ab63.model.inicio.InitForm;
import com.ejie.ab63.model.usuario.Usuario;
import com.ejie.ab63.service.DispensaEstablecimientoService;

/**
 * Ab6301s00Controller  
 * 
 *  
 */

@Controller
@RequestMapping(value = "/fichaExpediente/observaciones")
public class ObservacionesFichaExpedienteController extends ExpedienteBaseContoller {

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

	@Autowired
	private DispensaEstablecimientoService dispensaService;

	@Override
	protected String getCurrentPage() {
		return Constantes.PESTANA_OBSERVACIONES;
	}

	@Override
	protected String getTilesPage() {
		return "observacionesEstablecimiento";
	}

	@Override
	protected void setCurrentPageModel(Model model, InitForm initForm) {

		if ("".equals(initForm.getObservaciones()) || "###".equalsIgnoreCase(initForm.getObservaciones())) {
			DispensaEstablecimiento dispensa = new DispensaEstablecimiento();
			dispensa.setFolderId(initForm.getFolderId());
			if (dispensaService.existsDispensaForExp(initForm.getFolderId())) {
				dispensa = dispensaService.findByExpediente(dispensa);
			}

			String descs = "{0}###{1}"
					.replace("{0}", dispensa.getObservacionesDescEs() == null ? "" : dispensa.getObservacionesDescEs())
					.replace("{1}", dispensa.getObservacionesDescEu() == null ? "" : dispensa.getObservacionesDescEu());
			initForm.setObservaciones(descs);
			initForm.setDispensado(dispensa.getDispensado());
		}

	}

	/**
	 * Metodo de presentacion del RUP_TABLE.
	 * 
	 * @param model
	 *            Model
	 * @return String
	 * @throws Exception
	 */
	@RequestMapping(value = "/maint", method = RequestMethod.POST)
	public ModelAndView getFormEdit(Model model, @ModelAttribute("initForm") InitForm initForm, Usuario usuario)
			throws Exception {
		ObservacionesFichaExpedienteController.logger.info("[GET - View] : ab6301s00");

		return mostrar(model, initForm, usuario);
	}

}
