package com.ejie.ab63.service.procedimientos;

import java.util.HashMap;
import java.util.Map;

import com.ejie.ab63.comun.Constantes;
import com.ejie.ab63.model.Establecimiento;
import com.ejie.ab63.model.inicio.InitForm;
import com.ejie.ab63.model.terceros.DatosDirecciones;
import com.ejie.ab63.service.expedientes.DetailExpedienteService;

/**
 * 
 *  
 *
 */
public class DefaultProcedureActions extends BaseProcedureActions {

	protected DefaultProcedureActions(DetailExpedienteService detailExpedienteService) {
		super(Constantes.PROCEDIMIENTO_DESCONOCIDO, detailExpedienteService);
	}

	@Override
	public Establecimiento findEstablecimiento(InitForm form) {
		// recuperar el establecimiento buscando por el idExpediente
		Establecimiento establecimiento = this.getDetailExpedienteService().getEstablecimientoService()
				.findEstablecimientoByIdExpediente(form.getIdExpediente());

		// Si no se encuentra por id expediente, ya ha sido procesado
		if (establecimiento == null || establecimiento.getIdEstablecimiento() == null) {
			DatosDirecciones datosDirecciones = findDireccioneEstablecimiento(form);
			establecimiento = this.getDetailExpedienteService().getEstablecimientoService()
					.findByIdenticadorEstablecimiento(datosDirecciones.getIdentificadorEstablecimiento());
		}
		return establecimiento;
	}

	@Override
	public DatosDirecciones findDireccioneEstablecimiento(InitForm form) {
		return this.getDetailExpedienteService().getDatosDireccionesService()
				.findEstablecimientoExpediente(form.getIdExpediente());
	}

	@Override
	public Boolean isEnableSaveExpediente(InitForm initForm) {
		return false;
	}

	@Override
	public Boolean isEnableExecuteAction(InitForm form) {
		return false;
	}

	@Override
	public Boolean isEnableAccessCenso(InitForm form) {
		return false;
	}

	@Override
	public Boolean isEnableInspect(InitForm form) {
		return false;
	}

	@Override
	public Map<String, String> executeAction(InitForm form) {
		return new HashMap<String, String>();
	}

	@Override
	public String getButtonsText(InitForm form) {
		return Constantes.PROCEDIMIENTO_DESCONOCIDO;
	}

}
