package com.ejie.ad74a.ws.client.prestadorWS.operaciones;

import java.math.BigDecimal;
import javax.xml.datatype.DatatypeConfigurationException;

import com.ejie.ad74a.model.DocumentosInfSocial;
import com.ejie.ad74a.model.Expedientes;
import com.ejie.ad74a.model.Solicitantes;
import com.ejie.ad74a.util.comun.UtilidadesFecha;
import com.ejie.ad74a.ws.client.prestadorWS.data.DatosBeneficiario;
import com.ejie.ad74a.ws.client.prestadorWS.data.DatosModificacionType;
import com.ejie.ad74a.ws.client.prestadorWS.data.InformeMedicoType;
import com.ejie.ad74a.ws.client.prestadorWS.service.ParseUtils;

public class OpActualizacionDatosDss extends OpComunes {

	public static DatosModificacionType getDatosModificacionType(Solicitantes solicitante, Expedientes expediente,
			DocumentosInfSocial informeSocial, String rutaPIFInformeMedico) throws DatatypeConfigurationException {
		DatosModificacionType datosModificacionType = new DatosModificacionType();
		// datosBeneficiario
		DatosBeneficiario datosBeneficiario = new DatosBeneficiario();
		// fNacimiento
		datosBeneficiario
				.setFNacimiento(UtilidadesFecha.parseDate2XMLGregorianCalendar(solicitante.getfNacimiento01()));
		// sexo
		datosBeneficiario.setSexo(solicitante.getSexo01());
		// idiomaPrestServicio
		if (solicitante.getIdiomaServicio01() != null) {
			datosBeneficiario.setIdiomaPrestServicio(new BigDecimal(solicitante.getIdiomaServicio01()));
		} else if (solicitante.getIdiomaSolicitante01() != null) {
			datosBeneficiario.setIdiomaPrestServicio(new BigDecimal(solicitante.getIdiomaSolicitante01()));
		}
		// gradoDependencia
		datosBeneficiario.setGradoDependencia(solicitante.getDependencia() == null ? null
				: ParseUtils.parseInt2GradoDependenciaEnum(
						solicitante.getDependencia().getIdGradoDependencia04().intValue()));
		// tis
		datosBeneficiario.setTis(solicitante.getNumtis01());
		// nss
		datosBeneficiario.setNss(solicitante.getNumss01());
		// urgente: esto no es un dato que se tenga que enviar en la actualización de
		// datos. No lo enviamos
//		datosBeneficiario.setUrgente(ParseUtils.parseInt2BinarioEnum(expediente.getIsurgencia()));
		// nombre
		datosBeneficiario.setNombre(solicitante.getNombre01());
		// ape1
		datosBeneficiario.setApe1(solicitante.getApellido101());
		// ape2
		datosBeneficiario.setApe2(solicitante.getApellido201());

		datosModificacionType.setDatosBeneficiario(datosBeneficiario);

		// De momento no los vamos a informar
//		// informeSocial
//		datosModificacionType.setInformeSocial(rellenarDatosInformeSocialType(informeSocial));
//		// informeMedico
//		InformeMedicoType informeMedico = new InformeMedicoType();
//		informeMedico.setRutaFichero(rutaPIFInformeMedico);
//		datosModificacionType.setInformeMedico(informeMedico);
		return datosModificacionType;
	}
}
