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

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;
import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.utilerias.RegistroConDependenciaException;

/**
 * 
 * @author Administrador
 */
public interface EmpresaService {

	public List<Empresa> obtenerTodos();

	public Empresa obtenerID(Integer id);

	public Empresa suscribirActualizacion(Empresa entidad) throws BusinessException;

	public void borrar(Empresa entidad) throws RegistroConDependenciaException;
	
	public List<Empresa> buscar(String nombempresa, Boolean indExterna, Short indTipo);

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

	public List<Empresa> obtenerIndExternoFalse();

	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 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 List<Empresa> obtenerTodosIncluindoEmpresaTodas();
	
	public ComEmpConferencia suscribirOrActualizacion(ComEmpConferencia comEmpConferencia);

	public List<Empresa> buscarEmpresaPtoVtaComissao();

	public Integer atualizarLicencaEmpresasPrimeiraVez();

	public List<Empresa> filtrarApenasEmpresasLicencaValida(List<Empresa> lsEmpresa);

	public String token(Empresa empresa);

	public String validarTokenLicensa(Empresa empresa, String tokenLicenca);

	public String buscarNomeEmpresa(Integer empresaId);
	
}
