package com.rjconsultores.ventaboletos.service;

import java.sql.Connection;
import java.util.List;

import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.AidfEspecie;
import com.rjconsultores.ventaboletos.entidad.AidfTipo;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.vo.aidf.AidfVo;

public interface AidfService {

	public List<Aidf> obtenerTodos();

	public Aidf obtenerID(Long id);

	public Aidf suscribir(Aidf entidad);

	public Aidf actualizacion(Aidf entidad);

	public void borrar(Aidf entidad);

	public List<AidfEspecie> obtenerTodosAdifEspecie();

	public List<AidfTipo> obtenerTodosAdifTipo();

	public List<Aidf> buscaAidfsPorEmpresas(List<Empresa> empresas);
	
	public List<Aidf> buscaAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta pontoVenda);

	public Long validarDocFiscalSerieFormInicialFinal(Aidf entidad, Connection conn);
	
	public Long validarSerieFormInicialFinal(Aidf entidad, Connection conn);

	public Boolean validarDocFiscalPorEstado(Long idAidf, Integer especieId, String docFiscal, Estado estado);

	public Boolean validarTipoVenda(String tipoVenda, String serie, Integer idTipo);

	public Boolean validarVendaManual(Integer idTipo, String serie);

	public List<Aidf> buscaAidfEstadoEmpresa(Integer empresaId, Integer estadoId, Boolean isRMD);

	public String buscaUltimoAidfRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId);

	public boolean vaidaRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId, String folio);

	public Boolean validarDocFiscalPorEstadoAgencia(Long idAidf, Integer especieId, String docFiscal, String formInicial, String formFinal,Estado estado, PuntoVenta puntoVenta);

	public List<AidfVo> obtenerAidfFromSerieDocfiscal(String serie, String subSerie, String docfiscal, Connection conn,
			Integer empresaId);
}
