package com.rjconsultores.ventaboletos.service;

import java.io.File;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FiscalRdi;
import com.rjconsultores.ventaboletos.utilerias.impressaormd.vo.ImpressaoRMD;

public interface FiscalService {

	public int gerarRegistroP2_F2(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) throws SQLException;

	public HashMap<String, Object> importacionFiscalECFValidaReducaoZ(Date inicio, Date fim, Empresa empresa, Estado estado, boolean isBoletoHist);

	public File importacionFiscalECF(Date inicio, Date fim, Empresa empresa, Estado estado, boolean isBoletoHist);

	public File importacionFiscalReducaoZ(Date inicio, Date fim, Empresa empresa, Estado estado);

	public File importacionFiscalReducaoZPendencia(Date inicio, Date fim, Empresa empresa, Estado estado);

	public File importacionFiscalECFManual(Date inicio, Date fim, Empresa empresa, Estado estado, boolean isBoletoHist);

	public File importacionNaoFiscal(Date inicio, Date fim, Empresa empresa, Estado estado);

	public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa, Estado estado, boolean isBoletoHist);

	public File importacionFiscalECFXls(Empresa empresa, File arquivoTxt);

	public File importacionFiscalReducaoZXls(Empresa empresa, File arquivoTxt);

	public File importacionFiscalECFManualXls(Empresa empresa, File arquivoTxt);

	public File importacionNaoFiscalXls(Empresa empresa, File arquivoTxt);

	public File importacionFiscalECFCanceladosXls(Empresa empresa, File arquivoTxt);

	public File importacionFiscalECFPendencias(Date inicio, Date fim, Empresa empresa, Estado estado);

	public File buscarArquivoExportacaoECF(Date value, Date value2, Empresa empresa, Estado estado, String nomeArquivo);

	public File buscarArquivoExportacaoRMD(Date value, Date value2, Empresa empresa, Estado estado, String nomeArquivo);

	public List<ImpressaoRMD> getRegistroImpressaoRMDTipoBPR(Date inicio, Date fim, Empresa empresa, Estado estado, String rmd, String folio);

	public List<ImpressaoRMD> getRegistroImpressaoRMDTipoECF(Date inicio, Date fim, Empresa empresa, Estado estado, String rmd, String folio);

	public void gravarRMDBoleto(List<ImpressaoRMD> rmds, Aidf aidf, String folio, Empresa empresa, Estado estado, boolean isECF, boolean isBPR);

	public void cancelarRMDBoleto(Date inicio, Date fim, Empresa empresa, Estado estado, Aidf aidf, String folioInicial, String folioFinal, boolean isCancela, boolean isInativa, boolean isECF, boolean isBPR);

	public List<FiscalRdi> buscarRelatorioRDI(Date inicio, Date fim, Empresa empresa, List<Estado> estados, boolean isReceitaTerceiros);
}
