B23 - Não permitir excluir uma empresa quando tiver cadastros associados a ela (fixed bug #5253)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@35226 d1611594-4594-4d17-8e1d-87c2c4800839
master
leonardo 2014-05-01 19:58:18 +00:00
parent f42cd48c25
commit dcb78d243b
11 changed files with 75 additions and 18 deletions

View File

@ -5,6 +5,7 @@
package com.rjconsultores.ventaboletos.dao; package com.rjconsultores.ventaboletos.dao;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional; import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
@ -23,6 +24,8 @@ public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo); public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo);
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo, Ruta ruta, ClaseServicio claseServicio); public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo, Ruta ruta, ClaseServicio claseServicio);
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra); public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);

View File

@ -4,6 +4,9 @@
*/ */
package com.rjconsultores.ventaboletos.dao; package com.rjconsultores.ventaboletos.dao;
import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa; import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
/** /**
@ -11,4 +14,6 @@ import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
* @author Administrador * @author Administrador
*/ */
public interface RutaEmpresaDAO extends GenericDAO<RutaEmpresa, Integer> { public interface RutaEmpresaDAO extends GenericDAO<RutaEmpresa, Integer> {
public List<RutaEmpresa> obtenerPorEmpresa(Empresa empresa);
} }

View File

@ -21,6 +21,8 @@ import com.rjconsultores.ventaboletos.dao.EmpresaDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual; import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
/** /**
* *
@ -77,21 +79,6 @@ public class EmpresaHibernateDAO extends GenericHibernateDAO<Empresa, Integer>
} }
// public List<Empresa> obtenerIndTipo1(Usuario usuario) {
// Criteria c = getSession().createCriteria(getPersistentClass());
// c.add(Restrictions.eq("activo", Boolean.TRUE));
// c.add(Restrictions.eq("indTipo", new Short("1")));
//
// //Nao Buscar Empresa todas
// c.add(Restrictions.ne("empresaId", -1));
//
// c.addOrder(Order.asc("nombempresa"));
//
// return c.list();
// }
public List<Empresa> obtenerIndTipo2() { public List<Empresa> obtenerIndTipo2() {
Criteria c = getSession().createCriteria(getPersistentClass()); Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("activo", Boolean.TRUE));

View File

@ -19,6 +19,7 @@ import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO; import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional; import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
@ -47,6 +48,15 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list(); return c.list();
} }
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa){
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("empresaCorrida", empresa));
c.add(Restrictions.eq("activo", Boolean.TRUE));
return c.list();
}
public List<EsquemaCorrida> buscarPorEsquemaOperacional( public List<EsquemaCorrida> buscarPorEsquemaOperacional(
EsquemaOperacional eo) { EsquemaOperacional eo) {
Criteria c = getSession().createCriteria(getPersistentClass()); Criteria c = getSession().createCriteria(getPersistentClass());

View File

@ -4,13 +4,19 @@
*/ */
package com.rjconsultores.ventaboletos.dao.hibernate; package com.rjconsultores.ventaboletos.dao.hibernate;
import com.rjconsultores.ventaboletos.dao.RutaEmpresaDAO; import java.util.List;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.RutaEmpresaDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
/** /**
* *
* @author Administrador * @author Administrador
@ -23,4 +29,11 @@ public class RutaEmpresaHibernateDAO extends GenericHibernateDAO<RutaEmpresa, In
public RutaEmpresaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { public RutaEmpresaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory); setSessionFactory(factory);
} }
public List<RutaEmpresa> obtenerPorEmpresa(Empresa empresa){
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("empresa", empresa));
return c.list();
}
} }

View File

@ -25,6 +25,8 @@ public interface EmpresaService {
public void borrar(Empresa entidad); public void borrar(Empresa entidad);
public boolean puedeBorrar(Empresa entidad);
public List<Empresa> buscar(String nombempresa, Boolean indExterna, Short indTipo); public List<Empresa> buscar(String nombempresa, Boolean indExterna, Short indTipo);
public List<Empresa> buscarTodosExceto(List<Empresa> empresa, Integer... idEmpresa); public List<Empresa> buscarTodosExceto(List<Empresa> empresa, Integer... idEmpresa);

View File

@ -9,6 +9,7 @@ import java.util.List;
import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO; import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional; import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
@ -25,6 +26,8 @@ public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, In
public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo); public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo);
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo,Ruta ruta, ClaseServicio claseServicio); public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo,Ruta ruta, ClaseServicio claseServicio);
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra); public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);

View File

@ -4,6 +4,9 @@
*/ */
package com.rjconsultores.ventaboletos.service; package com.rjconsultores.ventaboletos.service;
import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa; import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
/** /**
@ -11,4 +14,6 @@ import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
* @author Administrador * @author Administrador
*/ */
public interface RutaEmpresaService extends GenericService<RutaEmpresa, Integer> { public interface RutaEmpresaService extends GenericService<RutaEmpresa, Integer> {
public List<RutaEmpresa> obtenerPorEmpresa(Empresa empresa);
} }

View File

@ -15,8 +15,11 @@ import com.rjconsultores.ventaboletos.dao.EmpresaDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual; import com.rjconsultores.ventaboletos.entidad.InscricaoEstadual;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.service.EsquemaCorridaService;
import com.rjconsultores.ventaboletos.service.RutaEmpresaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
/** /**
@ -29,6 +32,12 @@ public class EmpresaServiceImpl implements EmpresaService {
@Autowired @Autowired
private EmpresaDAO empresaDAO; private EmpresaDAO empresaDAO;
@Autowired
private RutaEmpresaService rutaEmpresaService;
@Autowired
private EsquemaCorridaService esquemaCorridaService;
public List<Empresa> obtenerTodos() { public List<Empresa> obtenerTodos() {
return empresaDAO.obtenerTodos(); return empresaDAO.obtenerTodos();
} }
@ -71,6 +80,12 @@ public class EmpresaServiceImpl implements EmpresaService {
empresaDAO.actualizacion(entidad); empresaDAO.actualizacion(entidad);
} }
@Override
public boolean puedeBorrar(Empresa entidad){
return (rutaEmpresaService.obtenerPorEmpresa(entidad).size() <= 0) &&
(esquemaCorridaService.buscarPorEmpresaCorrida(entidad).size() <= 0);
}
public List<Empresa> buscar(String nombempresa, Boolean indExterna, Short indTipo) { public List<Empresa> buscar(String nombempresa, Boolean indExterna, Short indTipo) {
return empresaDAO.buscar(nombempresa, indExterna, indTipo); return empresaDAO.buscar(nombempresa, indExterna, indTipo);
} }

View File

@ -16,6 +16,7 @@ import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO;
import com.rjconsultores.ventaboletos.dao.EsquemaTramoDAO; import com.rjconsultores.ventaboletos.dao.EsquemaTramoDAO;
import com.rjconsultores.ventaboletos.dao.RutaCombinacionDAO; import com.rjconsultores.ventaboletos.dao.RutaCombinacionDAO;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento; import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional; import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional;
@ -52,6 +53,11 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService {
return esquemaCorridaDAO.obtenerID(id); return esquemaCorridaDAO.obtenerID(id);
} }
@Override
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa){
return esquemaCorridaDAO.buscarPorEmpresaCorrida(empresa);
}
@Transactional @Transactional
public EsquemaCorrida suscribir(EsquemaCorrida entidad) { public EsquemaCorrida suscribir(EsquemaCorrida entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());

View File

@ -5,11 +5,14 @@
package com.rjconsultores.ventaboletos.service.impl; package com.rjconsultores.ventaboletos.service.impl;
import com.rjconsultores.ventaboletos.dao.RutaEmpresaDAO; import com.rjconsultores.ventaboletos.dao.RutaEmpresaDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa; import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
import com.rjconsultores.ventaboletos.service.RutaEmpresaService; import com.rjconsultores.ventaboletos.service.RutaEmpresaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import java.util.Calendar; import java.util.Calendar;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -58,4 +61,9 @@ public class RutaEmpresaServiceImpl implements RutaEmpresaService {
rutaEmpresaDAO.actualizacion(entidad); rutaEmpresaDAO.actualizacion(entidad);
} }
@Override
public List<RutaEmpresa> obtenerPorEmpresa(Empresa empresa) {
return rutaEmpresaDAO.obtenerPorEmpresa(empresa);
}
} }