package com.ejie.ad74a.validacion;

import java.util.List;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.stereotype.Component;

import com.ejie.ad74a.exceptions.Ad74aException;
import com.ejie.ad74a.exceptions.ErrorField;
import com.ejie.ad74a.model.BandejaPapel0;
import com.ejie.ad74a.util.comun.UtilLiterales;
import com.ejie.ad74a.util.comun.UtilValidaciones;
import com.ejie.ad74a.util.comun.Utilidades;
import com.ejie.ad74a.util.constantes.Constantes;
import com.ejie.ad74a.util.constantes.ProcedimientosEnum;
import com.ejie.ad74a.util.constantes.TipoAportacionEnum;
import com.ejie.ad74a.util.constantes.TipoProcesoEnum;

@Component(value = "SolicitudesPapel0Validator")
public class SolicitudesPapel0Validator {
	private static final Logger LOGGER = LoggerFactory.getLogger(SolicitudesPapel0Validator.class);

	private static final String LABEL_EXPEDIENTE = "bandejas.papel0.numExpediente";
	private static final String LABEL_PRESENTADOR_SOLICITUD = "bandeja.papel0.presentaSol00";
	private static final String LABEL_SOLICITANTE_APELLIDO1 = "bandeja.papel0.apellido1";
	private static final String LABEL_SOLICITANTE_NOMBRE1 = "bandeja.papel0.nombre1";
	private static final String LABEL_SOLICITANTE_SEXO1 = "bandeja.papel0.sexo1";
	private static final String LABEL_SOLICITANTE_TIPOIDENTIFICADOR1 = "bandeja.papel0.tipoidentificador1";
	private static final String LABEL_SOLICITANTE_IDENTIFICADOR1 = "bandeja.papel0.identificador1";
	private static final String LABEL_SOLICITANTE_FNACIMIENTO1 = "bandeja.papel0.fnacimiento1";
	private static final String LABEL_DIRECCIONES_CP6 = "bandeja.papel0.cp6";
	private static final String LABEL_DIRECCIONES_IDPROVINCIA6 = "bandeja.papel0.idprovincia6";
	private static final String LABEL_DIRECCIONES_IDMUNICIPIO6 = "bandeja.papel0.idmunicipio6";
	private static final String LABEL_DIRECCIONES_IDLOCALIDAD6 = "bandeja.papel0.idlocalidad6";
	private static final String LABEL_DIRECCIONES_IDCALLE6 = "bandeja.papel0.idcalle6";
	private static final String LABEL_DIRECCIONES_IDPORTAL6 = "bandeja.papel0.idportal6";
	private static final String LABEL_DIRECCIONES_IDPISO6 = "bandeja.papel0.piso6";
	private static final String LABEL_SOLICITANTES_TLFNOSERVICIO1 = "bandeja.papel0.tlfnoservicio1";
	private static final String LABEL_SOLICITANTES_EMAIL1 = "bandeja.papel0.email1";
	private static final String LABEL_PERFILES_PISOTUTELADO7 = "bandeja.papel0.pisotutelado7";
	private static final String LABEL_PRESENTADOR_TIPOREP0 = "bandeja.papel0.tiporep0";
	private static final String LABEL_PRESENTADOR_SEXO0 = "bandeja.papel0.sexo0";
	private static final String LABEL_PRESENTADOR_TIPOIDENTIFICADORREP0 = "bandeja.papel0.tipoidentificadorrep0";
	private static final String LABEL_PRESENTADOR_RAZONSOCIALREP0 = "bandeja.papel0.razonSocialRep0";
	private static final String LABEL_PRESENTADOR_IDENTIFICADORREP0 = "bandeja.papel0.identificadorrep0";
	private static final String LABEL_PRESENTADOR_IDTIPONOT0 = "bandeja.papel0.idtiponot0";
	private static final String LABEL_PRESENTADOR_IDIOMANOT0 = "bandeja.papel0.idiomanot0";
	private static final String LABEL_PRESENTADOR_CANALNOT0 = "bandeja.papel0.canalnot0";
	private static final String LABEL_PRESENTADOR_TFNONOT0 = "bandeja.papel0.tfnonot0";
	private static final String LABEL_PRESENTADOR_EMAILNOT0 = "bandeja.papel0.emailnot0";
	private static final String LABEL_PRESENTADOR_EXENCIONSOL0 = "bandeja.papel0.exencionsol0";
	private static final String LABEL_CUENTAS_CODTIPOIDENTITULAR5 = "bandeja.papel0.codtipoodentitular5";
	private static final String LABEL_CUENTAS_CODIDENTITULAR5 = "bandeja.papel0.codidentitular5";
	private static final String LABEL_CUENTAS_NUMCUENTAS5 = "bandeja.papel0.numcuentas5";
	private static final String LABEL_MOTIVO_BAJA = "bandeja.papel0.motivoBaja00";
	private static final String LABEL_SOLICITANTE_FNACIMIENTO = "bandeja.papel0.fecNacimiento01";
	private static final String LABEL_DIRECCION_NOTIF_IDCALLE6 = "bandeja.papel0.direccionNotif.idCalle";
	private static final String LABEL_DIRECCION_NOTIF_IDLOCALIDAD6 = "bandeja.papel0.direccionNotif.idLocalidad";
	private static final String LABEL_DIRECCION_NOTIF_IDMUNICIPIO6 = "bandeja.papel0.direccionNotif.idMunicipio";
	private static final String LABEL_DIRECCION_NOTIF_IDPROVINCIA6 = "bandeja.papel0.direccionNotif.idProvincia";
	private static final String LABEL_DIRECCION_NOTIF_CP6 = "bandej.papel0.direccionNotif.cp06";

	// Label de campos para mensajes de error.

	@Resource
	private ReloadableResourceBundleMessageSource appMessageSource;

	public void validateEntradaPapel0(List<ErrorField> errorFields, BandejaPapel0 bandejaPapel0) {
		SolicitudesPapel0Validator.LOGGER.info("EntradasValidator: validateEntradaPapel0 ");

		if (bandejaPapel0 == null) {
			throw new Ad74aException(UtilLiterales.getLiteralMessage(appMessageSource, Constantes.ERROR_GENERICO));
		}

		String tipo = TipoProcesoEnum.getNuevoTipoByTipo(bandejaPapel0.getTipoProceso12());

		// ############################
		// ###### NO SOLICITUDES ######
		// ############################

		if (!TipoAportacionEnum.SOLICITUD.getTipo().equals(tipo)) {

			// # Expediente no vacío #

			if (Utilidades.esNulo(bandejaPapel0.getExpediente())
					|| Utilidades.esNulo(bandejaPapel0.getExpediente().getPresentaSol00())) {
				errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_SOLICITUD,
						UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
			}

			if (bandejaPapel0.getExpediente().getPresentaSol00() != null
					&& bandejaPapel0.getExpediente().getPresentaSol00() == 1) {
				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getTipoRep00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_TIPOREP0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}

				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getSexoRep00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_SEXO0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}
				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getTipoIdentificadorRep00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_TIPOIDENTIFICADORREP0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}

				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getRazonSocialRep00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_RAZONSOCIALREP0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}
				// Darle una vuelta despues cuando este el tema de cif
				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getTipoIdentificadorRep00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_TIPOIDENTIFICADORREP0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
					if (Utilidades.esNulo(bandejaPapel0.getExpediente().getIdentificadorRep00())) {
						errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_IDENTIFICADORREP0,
								UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
					}
				}
			}
			if (Utilidades.esNulo(bandejaPapel0.getExpediente())
					|| Utilidades.esNulo(bandejaPapel0.getExpediente().getIdiomaNot00())) {
				errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_IDIOMANOT0,
						UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
			}
			if (Utilidades.esNulo(bandejaPapel0.getExpediente())
					|| Utilidades.esNulo(bandejaPapel0.getExpediente().getIdTipoNot00())) {
				errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_IDTIPONOT0,
						UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
			}
			if (!Utilidades.esNulo(bandejaPapel0.getExpediente())
					&& !Utilidades.esNulo(bandejaPapel0.getExpediente().getIdTipoNot00())
					&& bandejaPapel0.getExpediente().getIdTipoNot00().equals("2")) {

				validateDireccionNotif(errorFields, bandejaPapel0);
			}

			if (Utilidades.esNulo(bandejaPapel0.getExpediente())
					|| Utilidades.esNulo(bandejaPapel0.getExpediente().getCanalNot00())) {
				errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_CANALNOT0,
						UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
			}
			if (bandejaPapel0.getExpediente().getCanalNot00() != null && (bandejaPapel0.getExpediente().getCanalNot00()
					.equals(Constantes.CanalNotificacion.CANAL_NOTIF_SMS)
					|| bandejaPapel0.getExpediente().getCanalNot00()
							.equals(Constantes.CanalNotificacion.CANAL_NOTIF_ALL))) {
				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getTfnoNot00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_TFNONOT0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}
			}
			if (bandejaPapel0.getExpediente().getCanalNot00() != null && (bandejaPapel0.getExpediente().getCanalNot00()
					.equals(Constantes.CanalNotificacion.CANAL_NOTIF_MAIL)
					|| bandejaPapel0.getExpediente().getCanalNot00()
							.equals(Constantes.CanalNotificacion.CANAL_NOTIF_ALL))) {
				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getEmailNot00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_EMAILNOT0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}
			}

			if (ProcedimientosEnum.ALTA.getId()
					.equalsIgnoreCase(bandejaPapel0.getExpediente().getIdProcedimiento00())) {

				validateEntradaPapel0Solicitantes(errorFields, bandejaPapel0);
				validateEntradaPapel0Perfiles(errorFields, bandejaPapel0);
				validateEntradaPapel0Direcciones(errorFields, bandejaPapel0);
				validateEntradaPapel0Cuentas(errorFields, bandejaPapel0);
				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getExencionSol00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_EXENCIONSOL0,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}

			} else if (ProcedimientosEnum.BAJA.getId()
					.equalsIgnoreCase(bandejaPapel0.getExpediente().getIdProcedimiento00())) {
				validateEntradaPapel0Solicitantes(errorFields, bandejaPapel0);

				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getIdMotivoBaja00())) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_MOTIVO_BAJA,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}

				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
						|| (Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes()) || Utilidades
								.esNulo(bandejaPapel0.getExpediente().getSolicitantes().getfNacimiento01()))) {
					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTE_FNACIMIENTO,
							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
				}

			} else if (ProcedimientosEnum.INFORME.getId()
					.equalsIgnoreCase(bandejaPapel0.getExpediente().getIdProcedimiento00())) {
				validateEntradaPapel0Solicitantes(errorFields, bandejaPapel0);

			} else if (ProcedimientosEnum.MODIFICACION.getId()
					.equalsIgnoreCase(bandejaPapel0.getExpediente().getIdProcedimiento00())) {
				validateEntradaPapel0Direcciones(errorFields, bandejaPapel0);
				validateEntradaPapel0Solicitantes(errorFields, bandejaPapel0);
				validateEntradaPapel0Perfiles(errorFields, bandejaPapel0);
			}
			// No existe este check ya en la solicitud de inicio de oficio
//			else if (ProcedimientosEnum.REVISION_PRECIO.getId()
//					.equalsIgnoreCase(bandejaPapel0.getExpediente().getIdProcedimiento00())) {
//				if (Utilidades.esNulo(bandejaPapel0.getExpediente())
//						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getExencionSol00())) {
//					errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PRESENTADOR_EXENCIONSOL0,
//							UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
//				}
//			}
		}

	}

	public void validateEntradaPapel0Solicitantes(List<ErrorField> errorFields, BandejaPapel0 bandejaPapel0) {
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| (Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes().getApellido101()))) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTE_APELLIDO1,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| (Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes().getNombre01()))) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTE_NOMBRE1,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| (Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes().getSexo01()))) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTE_SEXO1,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| (Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes()) || Utilidades
						.esNulo(bandejaPapel0.getExpediente().getSolicitantes().getTipoIdentificador01()))) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTE_TIPOIDENTIFICADOR1,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| (Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes())
						|| Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes().getIdentificador01()))) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTE_IDENTIFICADOR1,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}

		/*
		 * if (Utilidades.esNulo(bandejaPapel0.getExpediente()) ||
		 * Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes().
		 * getfNacimiento01())) { errorFields.add(new
		 * ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTE_FNACIMIENTO1,
		 * UtilValidaciones.LABEL_ERROR_OBLIGATORIO)); }
		 */
		/*
		 * if (Utilidades.esNulo(bandejaPapel0.getExpediente()) || Boolean.TRUE
		 * .equals(Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes().
		 * getTlfnoMovil01()))) { errorFields.add(new
		 * ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTES_TLFNOSERVICIO1,
		 * UtilValidaciones.LABEL_ERROR_OBLIGATORIO)); } /* if
		 * (Utilidades.esNulo(bandejaPapel0.getExpediente()) || Boolean.TRUE
		 * .equals(Utilidades.esNulo(bandejaPapel0.getExpediente().getSolicitantes().
		 * getEmail01()))) { errorFields.add(new
		 * ErrorField(SolicitudesPapel0Validator.LABEL_SOLICITANTES_EMAIL1,
		 * UtilValidaciones.LABEL_ERROR_OBLIGATORIO)); }
		 */
	}

	public void validateEntradaPapel0Direcciones(List<ErrorField> errorFields, BandejaPapel0 bandejaPapel0) {

		if (null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDirecciones()
				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().getCp06())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCIONES_CP6,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}

		if (!Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones())) {
			if (Utilidades.esNulo(bandejaPapel0.getExpediente())
					|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().getIdProvincia06())) {
				errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCIONES_IDPROVINCIA6,
						UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
			}
		}

		if (null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDirecciones()
				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().getIdMunicipio06())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCIONES_IDMUNICIPIO6,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}

		if (null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDirecciones()
				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().getIdLocalidad06())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCIONES_IDLOCALIDAD6,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));

		}

		if ((null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDirecciones()
				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().getIdCalle06()))
				&& null == bandejaPapel0.getExpediente().getDirecciones().getCalle06()) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCIONES_IDCALLE6,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}

		/*
		 * if (null == bandejaPapel0.getExpediente() || null ==
		 * bandejaPapel0.getExpediente().getDirecciones() ||
		 * Utilidades.esNulo(bandejaPapel0.getExpediente()) ||
		 * Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().
		 * getIdPortal06())) { errorFields.add(new
		 * ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCIONES_IDPORTAL6,
		 * UtilValidaciones.LABEL_ERROR_OBLIGATORIO)); }
		 */

		/*
		 * if (null == bandejaPapel0.getExpediente() || null ==
		 * bandejaPapel0.getExpediente().getDirecciones() ||
		 * Utilidades.esNulo(bandejaPapel0.getExpediente()) ||
		 * Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().getPiso06())
		 * ) { errorFields.add(new
		 * ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCIONES_IDPISO6,
		 * UtilValidaciones.LABEL_ERROR_OBLIGATORIO)); }
		 */

	}

	public void validateDireccionNotif(List<ErrorField> errorFields, BandejaPapel0 bandejaPapel0) {

		if (null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDireccionNotif()
				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDireccionNotif().getCp06())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCION_NOTIF_CP6,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}

		if (!Utilidades.esNulo(bandejaPapel0.getExpediente().getDireccionNotif())) {
			if (Utilidades.esNulo(bandejaPapel0.getExpediente())
					|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDireccionNotif().getIdProvincia06())) {
				errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCION_NOTIF_IDPROVINCIA6,
						UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
			}
		}

		if (null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDireccionNotif()
				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDireccionNotif().getIdMunicipio06())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCION_NOTIF_IDMUNICIPIO6,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}

//		if (null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDireccionNotif()
//				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
//				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDirecciones().getIdLocalidad06())) {
//			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCION_NOTIF_IDLOCALIDAD6,
//					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
//
//		}

		if ((null == bandejaPapel0.getExpediente() || null == bandejaPapel0.getExpediente().getDireccionNotif()
				|| Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getDireccionNotif().getIdCalle06()))) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_DIRECCION_NOTIF_IDCALLE6,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}

	}

	public void validateEntradaPapel0Perfiles(List<ErrorField> errorFields, BandejaPapel0 bandejaPapel0) {
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getPerfiles())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getPerfiles().getPisoTutelado07())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_PERFILES_PISOTUTELADO7,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
	}

	public void validateEntradaPapel0Cuentas(List<ErrorField> errorFields, BandejaPapel0 bandejaPapel0) {
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getCuentas())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getCuentas().getCodTipoIdenTitular05())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_CUENTAS_CODTIPOIDENTITULAR5,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getCuentas())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getCuentas().getIdenTitular05())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_CUENTAS_CODIDENTITULAR5,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
		if (Utilidades.esNulo(bandejaPapel0.getExpediente())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getCuentas())
				|| Utilidades.esNulo(bandejaPapel0.getExpediente().getCuentas().getNumCuenta05())) {
			errorFields.add(new ErrorField(SolicitudesPapel0Validator.LABEL_CUENTAS_NUMCUENTAS5,
					UtilValidaciones.LABEL_ERROR_OBLIGATORIO));
		}
	}

}
