/**
 * 
 */
package com.ejie.ab63.adaptadores;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ejie.ab63.adaptadores.service.ab61WebServiceService;
import com.ejie.ab63.clientesWS.ab61WebService.Ab61Exception;
import com.ejie.ab63.clientesWS.ab61WebService.BusquedasWS;
import com.ejie.ab63.clientesWS.ab61WebService.DatosInicioOficio;
import com.ejie.ab63.clientesWS.ab61WebService.InicioOficioWS;

/**
 *  
 * 
 */
@Service(value = "ab61WebServiceAdaptadorServiceImpl")
public class ab61WebServiceAdaptadorServiceImpl implements ab61WebServiceAdaptadorService {

	public static final Logger logger = LoggerFactory.getLogger(ab61WebServiceAdaptadorServiceImpl.class);

	@Autowired()
	private ab61WebServiceService ab61WebServiceService;

	public String generarExcelListados(int idListado, List<BusquedasWS> listaBusquedas, String codAplic)
			throws Ab61Exception {
		ab61WebServiceAdaptadorServiceImpl.logger
				.info("ab61WebServiceAdaptadorServiceImpl.generarExcelListados - Inicio");
		String respuesta = this.ab61WebServiceService.generarExcelListados(idListado, listaBusquedas, codAplic);

		ab61WebServiceAdaptadorServiceImpl.logger
				.debug("ab61WebServiceAdaptadorServiceImpl.generarExcelListados - Return: " + respuesta);
		return respuesta;
	}

	@Override
	public String descargarDocumento(Integer idPlantilla, String procedureId, String foderId, String codAplic)
			throws Ab61Exception {
		ab61WebServiceAdaptadorServiceImpl.logger
				.info("ab61WebServiceAdaptadorServiceImpl.descargarDocumento - Inicio");
		return this.ab61WebServiceService.descargarDocumento(idPlantilla, procedureId, foderId, codAplic);
	}

	@Override
	public String generarDocumento(Integer idPlantilla, String procedureId, String foderId, String usuario)
			throws Ab61Exception {
		ab61WebServiceAdaptadorServiceImpl.logger.info("ab61WebServiceAdaptadorServiceImpl.generarDocumento - Inicio");
		return this.ab61WebServiceService.generarDocumento(idPlantilla, procedureId, foderId, usuario);
	}

	@Override
	public String modificarDocumento(Integer idPlantilla, String procedureId, String foderId, String usuario)
			throws Ab61Exception {
		ab61WebServiceAdaptadorServiceImpl.logger
				.info("ab61WebServiceAdaptadorServiceImpl.modificarDocumento - Inicio");
		String respuesta = this.ab61WebServiceService.modificarDocumento(idPlantilla, procedureId, foderId, usuario);

		ab61WebServiceAdaptadorServiceImpl.logger
				.debug("ab61WebServiceAdaptadorServiceImpl.modificarDocumento - Return: " + respuesta);
		return respuesta;
	}

	/**
	 * llama al webService que realiza la tarea indicada
	 * 
	 * @param idPlantilla
	 *            Integer
	 * @param procedureId
	 *            String
	 * @param folderId
	 *            String
	 * @param n38Login
	 *            String
	 * @return String
	 * @throws Ab61Exception
	 */
	@Override
	public String aportarDocumento(Integer idPlantilla, String procedureId, String folderId, String n38Login,
			String usuario) throws Ab61Exception {
		ab61WebServiceAdaptadorServiceImpl.logger.info("ab61WebServiceAdaptadorServiceImpl.aportarDocumento - Inicio");
		String respuesta = this.ab61WebServiceService.aportarDocumento(idPlantilla, procedureId, folderId, n38Login,
				usuario);

		ab61WebServiceAdaptadorServiceImpl.logger
				.debug("ab61WebServiceAdaptadorServiceImpl.aportarDocumento - Return: " + respuesta);
		return respuesta;
	}

	public String eliminarDocumento(Integer idPlantilla, String folderId, String procedureId) throws Ab61Exception {
		ab61WebServiceAdaptadorServiceImpl.logger.info("ab61WebServiceAdaptadorServiceImpl.eliminarDocumento - Inicio");
		String respuesta = this.ab61WebServiceService.eliminarDocumento(idPlantilla, folderId, procedureId);

		ab61WebServiceAdaptadorServiceImpl.logger
				.debug("ab61WebServiceAdaptadorServiceImpl.eliminarDocumento - Return: " + respuesta);
		return respuesta;
	}

	public DatosInicioOficio generarInicioOficio(InicioOficioWS inicioOficioWS) throws Ab61Exception {
		ab61WebServiceAdaptadorServiceImpl.logger
				.info("ab61WebServiceAdaptadorServiceImpl.generarInicioOficio - Inicio");

		DatosInicioOficio respuesta = this.ab61WebServiceService.generarInicioOficio(inicioOficioWS);

		ab61WebServiceAdaptadorServiceImpl.logger
				.debug("ab61WebServiceAdaptadorServiceImpl.generarInicioOficio - Return: " + respuesta != null
						? "NEW FOLDERID: " + respuesta.getFolderID() : "ERROR");
		return respuesta;
	}

}
