/*
// * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.dao;

import java.util.List;

import com.rjconsultores.ventaboletos.entidad.ComEmpCategoria;
import com.rjconsultores.ventaboletos.entidad.ComEmpConferencia;
import com.rjconsultores.ventaboletos.entidad.ComEmpFormapago;
import com.rjconsultores.ventaboletos.entidad.ComEmpTipoEventoExtra;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;

/**
 *
 * @author Administrador
 */
public interface EmpresaDAO {
	
	public List<Empresa> obtenerTodos();

    public Empresa obtenerID(Integer id);

    public Empresa suscribir(Empresa entidad);

    public Empresa actualizacion(Empresa entidad);
    
    public Long count(String campo,Object o);

    public List<Empresa> buscarTodosExceto(List<Empresa> empresa,Integer... idEmpresa);

    public List<Empresa> obtenerIndExternoFalse();

    public List<Empresa> buscar(String nombempresa, Boolean indExterna, Short indTipo);

    public List<Empresa> obtenerIndTipo2();
    
    public List<Empresa> buscarNotInPuntoVtaComissao(PuntoVenta puntoVenta);
    
    public List<InscricaoEstadual> buscaInscricoesEstaduais(Empresa empresa);
    
    public void actualizaInscEstadual(InscricaoEstadual inscricaoEstadual);
    
    public List<Empresa> buscaLike(String nombempresa);
    
    public List<Empresa> obtenerTodosIncluindoEmpresaTodas();
    
	public ComEmpCategoria adicionarComissaoCategoria(ComEmpCategoria comEmpCategoria);
	
	public void removerComissaoCategoria(ComEmpCategoria comEmpCategoria);
	
	public ComEmpFormapago adicionarComissaoFormapago(ComEmpFormapago comEmpFormapago);
	
	public void removerComissaoFormapago(ComEmpFormapago comEmpFormapago);
	
	public ComEmpTipoEventoExtra adicionarComissaoTipoEventoExtra(ComEmpTipoEventoExtra comEmpTipoEventoExtra);
	
	public void removerComissaoTipoEventoExtra(ComEmpTipoEventoExtra comEmpTipoEventoExtra);
	
	public ComEmpConferencia suscribir(ComEmpConferencia comEmpConferencia);
	
	public ComEmpConferencia actualizacion(ComEmpConferencia comEmpConferencia);

	/**
	 * Gera o folio sistema do estado e empresa
	 * @param idEmpresa
	 * @param cveEstado
	 * @throws RuntimeException
	 */
	public void gerarSeqNumFolioSistema(Integer idEmpresa, String cveEstado) throws RuntimeException;

	public List<Empresa> buscarEmpresaPtoVtaComissao();

	public boolean isPrimeiraVezLicenca();

	public String buscarNomeEmpresa(Integer empresaId);
    
}
