daniel.zauli 2015-12-10 12:03:04 +00:00
parent b834202afb
commit 9ad180f7af
1 changed files with 169 additions and 0 deletions

View File

@ -1,5 +1,6 @@
package com.rjconsultores.ventaboletos.service.impl; package com.rjconsultores.ventaboletos.service.impl;
import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.List; import java.util.List;
@ -19,6 +20,8 @@ public class ConfRestricaoCanalVentaServiceImpl implements ConfRestricaoCanalVen
@Autowired @Autowired
private ConfRestricaoCanalVentaDAO confRestricaoCanalVentaDAO; private ConfRestricaoCanalVentaDAO confRestricaoCanalVentaDAO;
private List<ConfRestricaoCanalVenta> lsConfRestricaoCanalVenta;
public List<ConfRestricaoCanalVenta> obtenerTodos() { public List<ConfRestricaoCanalVenta> obtenerTodos() {
return confRestricaoCanalVentaDAO.obtenerTodos(); return confRestricaoCanalVentaDAO.obtenerTodos();
} }
@ -48,6 +51,12 @@ public class ConfRestricaoCanalVentaServiceImpl implements ConfRestricaoCanalVen
throw new BusinessException("confRestricaoCanalVentaService.MSG.oriDestObliga"); throw new BusinessException("confRestricaoCanalVentaService.MSG.oriDestObliga");
} }
lsConfRestricaoCanalVenta = obtenerTodos();
if(isBloqueoExistente(entidad, lsConfRestricaoCanalVenta)){
throw new BusinessException("editarConfRestricaoCanalVentaController.MSG.bloqueoExistente");
}
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setFecmodif(Calendar.getInstance().getTime());
entidad.setActivo(Boolean.TRUE); entidad.setActivo(Boolean.TRUE);
@ -67,4 +76,164 @@ public class ConfRestricaoCanalVentaServiceImpl implements ConfRestricaoCanalVen
confRestricaoCanalVentaDAO.actualizacion(entidad); confRestricaoCanalVentaDAO.actualizacion(entidad);
} }
private boolean isBloqueoExistente(ConfRestricaoCanalVenta c , List<ConfRestricaoCanalVenta> confRestricaoCanalVentaList){
List<ConfRestricaoCanalVenta> ls = new ArrayList<ConfRestricaoCanalVenta>() ;
for (int i = 0; i < confRestricaoCanalVentaList.size(); i++){
ConfRestricaoCanalVenta elementList = (ConfRestricaoCanalVenta)confRestricaoCanalVentaList.get(i);
if(c.getConfRestricaoCanalVentaId() == null){
if(isConfRestricaoCanalVentasEquivalentes(c , elementList)){
return true;
}
}else{
if(!c.getConfRestricaoCanalVentaId().equals(elementList.getConfRestricaoCanalVentaId())){
isConfRestricaoCanalVentasEquivalentes(c , elementList);
}else{
continue;
}
}
}
return false;
}
private boolean isConfRestricaoCanalVentasEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if(isRutasTipoPvCorridaIdOrigemDestinoEquivalentes(a,b)
&& (((a.getFecCorrida() != null) != (b.getFecCorrida() != null)) ? false : true)
&& ((a.getFecCorrida() != null ) && (b.getFecCorrida() != null) ? true : false )
&& ((((a.getFecCorrida().compareTo(b.getFecCorrida())) == 0)) ? true : false )
&& isIntercessaoDiasSemana(a,b)
){
return true;
}else if(isRutasTipoPvCorridaIdOrigemDestinoEquivalentes(a,b)
&& (a.getFecCorrida() == null) == (b.getFecCorrida() == null) == (true)
&& isIntercessaoDiasSemana(a,b)
){
return true;
}
return false;
}
private boolean isRutasTipoPvCorridaIdOrigemDestinoEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if(isRutasEquivalentes(a,b)
&& isTipoPVEquivalentes(a,b)
&& isCorridaIdEquivalentes(a,b)
&& isOrigemEquivalentes(a,b)
&& isDestinoEquivalentes(a,b)){
return true;
}else{
return false;
}
}
private boolean isRutasEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if(a.getRuta() == null && b.getRuta() == null ){
return true;
}
if(a.getRuta() == null && b.getRuta() != null ){
return false;
}
if(a.getRuta() != null && b.getRuta() == null ){
return false;
}
if(a.getRuta() != null && b.getRuta() != null ){
return a.getRuta().equals(b.getRuta());
}
return false;
}
private boolean isTipoPVEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if(a.getTipoPuntoVenta() == null && b.getTipoPuntoVenta() == null ){
return true;
}
if(a.getTipoPuntoVenta() == null && b.getTipoPuntoVenta() != null ){
return false;
}
if(a.getTipoPuntoVenta() != null && b.getTipoPuntoVenta() == null ){
return false;
}
if(a.getTipoPuntoVenta() != null && b.getTipoPuntoVenta() != null ){
return a.getTipoPuntoVenta().equals(b.getTipoPuntoVenta());
}
return false;
}
private boolean isCorridaIdEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if(a.getCorridaId() == null && b.getCorridaId() == null ){
return true;
}
if(a.getCorridaId() == null && b.getCorridaId() != null ){
return false;
}
if(a.getCorridaId() != null && b.getCorridaId() == null ){
return false;
}
if(a.getCorridaId() != null && b.getCorridaId() != null ){
return a.getCorridaId().equals(b.getCorridaId());
}
return false;
}
private boolean isOrigemEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if(a.getOrigem() == null && b.getOrigem() == null ){
return true;
}
if(a.getOrigem() == null && b.getOrigem() != null ){
return false;
}
if(a.getOrigem() != null && b.getOrigem() == null ){
return false;
}
if(a.getOrigem() != null && b.getOrigem() != null ){
return a.getOrigem().equals(b.getOrigem());
}
return false;
}
private boolean isDestinoEquivalentes(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if(a.getDestino() == null && b.getDestino() == null ){
return true;
}
if(a.getDestino() == null && b.getDestino() != null ){
return false;
}
if(a.getDestino() != null && b.getDestino() == null ){
return false;
}
if(a.getDestino() != null && b.getDestino() != null ){
return a.getDestino().equals(b.getDestino());
}
return false;
}
private boolean isIntercessaoDiasSemana(ConfRestricaoCanalVenta a , ConfRestricaoCanalVenta b){
if( ((a.getDomingo() != null ? a.getDomingo() : false) && (b.getDomingo() != null ? b.getDomingo() : false ))
|| (a.getSegunda()!= null ? a.getSegunda() : false) && (b.getSegunda() != null ? b.getSegunda() : false)
|| (a.getTerca() != null ? a.getTerca() : false ) && (b.getTerca() != null ? b.getTerca() : false)
|| (a.getQuarta()!= null ? a.getQuarta() : false ) && (b.getQuarta() != null ? b.getQuarta() : false)
|| (a.getQuinta() != null ? a.getQuinta() : false) && (b.getQuinta() != null ? b.getQuinta() : false)
|| (a.getSexta() != null ? a.getSexta() : false) && (b.getSexta() != null ? b.getSexta() : false )
|| (a.getSabado() != null ? a.getSabado() : false ) && (b.getSabado() != null ? b.getSabado() : false) ){
return true;
}
if(null == a.getSegunda()
&& null == b.getSegunda()
&& null == a.getTerca()
&& null == b.getTerca()
&& null == a.getQuarta()
&& null == b.getQuarta()
&& null == a.getQuinta()
&& null == b.getQuinta()
&& null == a.getSexta()
&& null == b.getSexta()
&& null == a.getSabado()
&& null == b.getSabado()
&& null == a.getDomingo()
&& null == b.getDomingo()){
return true;
}
return false;
}
} }