package com.ejie.ab79.service;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ejie.ab79.clientesWS.ab61WebService.Ab61Exception;
import com.ejie.ab79.clientesWS.ab61WebService.DocumentoExpediente;
import com.ejie.ab79.dao.expedientes.ExpedientesDao;
import com.ejie.ab79.model.expedientes.Expedientes;
import com.ejie.ab79.webservice.adaptadores.ab61WebServiceAdaptador;
import com.ejie.x38.dto.TableRequestDto;
import com.ejie.x38.dto.TableResponseDto;

/**
 * VReateDocumentosServiceImpl  
 * 
 *  
 */

@Service(value = "documentoExpedienteService")
public class DocumentoExpedienteServiceImpl implements DocumentoExpedienteService {

	@Autowired
	private ExpedientesDao expedientesDao;

	@Autowired
	private ab61WebServiceAdaptador ab61WebServiceAdaptadorService;

	@Override
	public TableResponseDto<DocumentoExpediente> filterDocumentoExpediente(
			DocumentoExpediente filterDocumentosExpediente, TableRequestDto tableRequestDto, boolean startsWith)
			throws Ab61Exception {

		Expedientes expediente = new Expedientes();
		expediente.setIdExpediente(filterDocumentosExpediente.getIdExpediente());
		expediente = this.expedientesDao.findByExpedienteIdExpediente(expediente);

		List<DocumentoExpediente> listaDocumentosExpediente = ab61WebServiceAdaptadorService
				.obtenerDocumentosExpediente(expediente.getFolderId(),
						expediente.getProcedimientos().getCodProcedureId(), 3);

		Long recordNum = (long) listaDocumentosExpediente.size();
		TableResponseDto<DocumentoExpediente> tablaResultados = new TableResponseDto<DocumentoExpediente>(
				tableRequestDto, recordNum, listaDocumentosExpediente);

		List<DocumentoExpediente> listAux = new ArrayList<DocumentoExpediente>();
		for (DocumentoExpediente documentoExpediente : listaDocumentosExpediente) {
			listAux.add(documentoExpediente);
		}
		tablaResultados.setRows(listAux);

		return tablaResultados;
	}

}
