/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rjconsultores.ventaboletos.service.impl; import java.util.Calendar; import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.EmpresaDAO; import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO; import com.rjconsultores.ventaboletos.dao.RutaEmpresaDAO; 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.Marca; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.LogAuditoriaService; import com.rjconsultores.ventaboletos.service.MarcaService; import com.rjconsultores.ventaboletos.utilerias.RegistroConDependenciaException; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; /** * * @author Administrador */ @Service("empresaService") public class EmpresaServiceImpl implements EmpresaService { @Autowired private EmpresaDAO empresaDAO; @Autowired private MarcaService marcaService; @Autowired private RutaEmpresaDAO rutaEmpresaDAO; @Autowired private EsquemaCorridaDAO esquemaCorridaDAO; @Autowired private LogAuditoriaService logAuditoriaService; private static final Logger log = LogManager.getLogger(EmpresaServiceImpl.class); public List obtenerTodos() { return empresaDAO.obtenerTodos(); } public Empresa obtenerID(Integer id) { Empresa empresa = empresaDAO.obtenerID(id); try { empresa.clonar(); } catch (Exception e) { log.error(e.getMessage(), e); } return empresa; } @Transactional public Empresa suscribirActualizacion(Empresa entidad) throws BusinessException { ComEmpConferencia comEmpConferencia = null; if (entidad.getComEmpConferencias() != null && !entidad.getComEmpConferencias().isEmpty()) { comEmpConferencia = entidad.getComEmpConferencias().iterator().next(); } entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.TRUE); if (entidad.getEmpresaId() == null) { entidad = empresaDAO.suscribir(entidad); logAuditoriaService.auditar(null, entidad, null); gerarMarca(entidad); } else { try { Empresa empresaClone = entidad.getCloneObject(); entidad = empresaDAO.actualizacion(entidad); logAuditoriaService.auditar(empresaClone, entidad, entidad.getEmpresaId()); } catch (Exception e) { log.error(e); } } if (comEmpConferencia != null) { comEmpConferencia.setEmpresa(entidad); suscribirOrActualizacion(comEmpConferencia); } return entidad; } private void gerarMarca(Empresa empresa) { Marca marca = new Marca(); marca.setEmpresa(empresa); marca.setDescmarca(empresa.getNombempresa()); marcaService.suscribir(marca); } @Transactional public void borrar(Empresa entidad) throws RegistroConDependenciaException { if ((rutaEmpresaDAO.obtenerPorEmpresa(entidad).size() > 0) || (esquemaCorridaDAO.buscarPorEmpresaCorrida(entidad).size() > 0)) { throw new RegistroConDependenciaException(); } entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.FALSE); empresaDAO.actualizacion(entidad); logAuditoriaService.auditarExclusao(entidad,null); } public List buscar(String nombempresa, Boolean indExterna, Short indTipo) { return empresaDAO.buscar(nombempresa, indExterna, indTipo); } public List buscarTodosExceto(List empresa, Integer... idEmpresa) { return empresaDAO.buscarTodosExceto(empresa, idEmpresa); } public List obtenerIndExternoFalse() { return empresaDAO.obtenerIndExternoFalse(); } public List obtenerIndTipo2() { return empresaDAO.obtenerIndTipo2(); } /* * (non-Javadoc) * * @see com.rjconsultores.ventaboletos.service.EmpresaService#buscarNotInPuntoVtaComissao(com.rjconsultores.ventaboletos.entidad.PuntoVenta) */ @Override public List buscarNotInPuntoVtaComissao(PuntoVenta puntoVenta) { return empresaDAO.buscarNotInPuntoVtaComissao(puntoVenta); } @Override public List buscaInscricoesEstaduais(Empresa empresa) { return empresaDAO.buscaInscricoesEstaduais(empresa); } @Override public void actualizaInscEstadual(InscricaoEstadual inscricaoEstadual) { empresaDAO.actualizaInscEstadual(inscricaoEstadual); } @Override public List buscaLike(String nombempresa) { return empresaDAO.buscaLike(nombempresa); } @Override public ComEmpCategoria adicionarComissaoCategoria(ComEmpCategoria comEmpCategoria) { comEmpCategoria.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); comEmpCategoria.setFecmodif(Calendar.getInstance().getTime()); comEmpCategoria.setActivo(Boolean.TRUE); return empresaDAO.adicionarComissaoCategoria(comEmpCategoria); } @Override public void removerComissaoCategoria(ComEmpCategoria comEmpCategoria) { comEmpCategoria.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); comEmpCategoria.setFecmodif(Calendar.getInstance().getTime()); comEmpCategoria.setActivo(Boolean.FALSE); empresaDAO.removerComissaoCategoria(comEmpCategoria); } @Override public ComEmpFormapago adicionarComissaoFormapago(ComEmpFormapago comEmpFormapago) { comEmpFormapago.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); comEmpFormapago.setFecmodif(Calendar.getInstance().getTime()); comEmpFormapago.setActivo(Boolean.TRUE); return empresaDAO.adicionarComissaoFormapago(comEmpFormapago); } @Override public void removerComissaoFormapago(ComEmpFormapago comEmpFormapago) { comEmpFormapago.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); comEmpFormapago.setFecmodif(Calendar.getInstance().getTime()); comEmpFormapago.setActivo(Boolean.FALSE); empresaDAO.removerComissaoFormapago(comEmpFormapago); } @Override public ComEmpTipoEventoExtra adicionarComissaoTipoEventoExtra(ComEmpTipoEventoExtra comEmpTipoEventoExtra) { comEmpTipoEventoExtra.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); comEmpTipoEventoExtra.setFecmodif(Calendar.getInstance().getTime()); comEmpTipoEventoExtra.setActivo(Boolean.TRUE); return empresaDAO.adicionarComissaoTipoEventoExtra(comEmpTipoEventoExtra); } @Override public void removerComissaoTipoEventoExtra(ComEmpTipoEventoExtra comEmpTipoEventoExtra) { comEmpTipoEventoExtra.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); comEmpTipoEventoExtra.setFecmodif(Calendar.getInstance().getTime()); comEmpTipoEventoExtra.setActivo(Boolean.FALSE); empresaDAO.removerComissaoTipoEventoExtra(comEmpTipoEventoExtra); } @Override public List obtenerTodosIncluindoEmpresaTodas() { return empresaDAO.obtenerTodosIncluindoEmpresaTodas(); } @Override @Transactional public ComEmpConferencia suscribirOrActualizacion(ComEmpConferencia comEmpConferencia) { comEmpConferencia.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); comEmpConferencia.setFecmodif(Calendar.getInstance().getTime()); comEmpConferencia.setActivo(Boolean.TRUE); if (comEmpConferencia.getComempconferenciaId() == null) { return empresaDAO.suscribir(comEmpConferencia); } else { return empresaDAO.actualizacion(comEmpConferencia); } } @Override public List buscarEmpresaPtoVtaComissao() { return empresaDAO.buscarEmpresaPtoVtaComissao(); } }