package br.com.ec.domain.service.notafiscal;
import java.util.Date;
import java.util.List;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.UploadedFile;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.ParametrosConsultaNotaFiscalDTO;
import br.com.ec.domain.model.Fornecedor;
import br.com.ec.domain.model.NotaFiscal;
import br.com.ec.domain.model.Pessoa;
import br.com.ec.domain.model.Venda;
import net.sf.jasperreports.engine.JasperPrint;
public interface NotaFiscalService
extends GenericService
<NotaFiscal
> {
NotaFiscal consultarPelaChaveEeTipo
(String chave,
String tipoNotaFiscal
);
NotaFiscal consultarPeloNumeroEeTipo
(Long numeroNotaFiscal,
String tipoNotaFiscal
);
NotaFiscal consultarPelaChave
(String chave
);
NotaFiscal detalhar
(NotaFiscal notaFiscal
);
NotaFiscal importarXml
(UploadedFile arquivo, Fornecedor fornecedor
);
NotaFiscal importarXml
(String textoXml, Fornecedor fornecedor
);
Long consultarProximoNumeroNotaFiscal
(String tipoNotaFiscal, Pessoa pessoaEmitente
);
List<NotaFiscal
> consultarNotasFiscais
(Venda venda
);
List<NotaFiscal
> consultarNotasFiscais
(ParametrosConsultaNotaFiscalDTO parametros
);
StreamedContent gerarCupom
(Venda venda
);
StreamedContent retornarCupomEmitido
(NotaFiscal notaFiscal
);
StreamedContent retornarCupomEmitidoEmPDF
(NotaFiscal notaFiscal
);
JasperPrint retornarRelatorio
(Venda venda
);
StreamedContent downloadXmls
(Date dataInicio,
Date dataFim,
String tipoNotaFiscal, Pessoa pessoaEmissor
);
Boolean verificarSeNotaFiscalJaVinculadaComVenda
(Venda venda,
String tipoModeloNotaFiscal,
String tipoNotaFiscal
);
}