diff --git a/src/com/rjconsultores/ventaboletos/dao/PeajeDao.java b/src/com/rjconsultores/ventaboletos/dao/PeajeDao.java new file mode 100644 index 000000000..187593527 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/PeajeDao.java @@ -0,0 +1,8 @@ +package com.rjconsultores.ventaboletos.dao; + +import com.rjconsultores.ventaboletos.entidad.Peaje; + +public interface PeajeDao extends GenericDAO { + + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java b/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java index 399aa6b50..ecf55a549 100644 --- a/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java @@ -1,8 +1,10 @@ package com.rjconsultores.ventaboletos.dao; +import java.math.BigDecimal; import java.util.List; import com.rjconsultores.ventaboletos.constantes.TipoSeguro; +import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Marca; @@ -13,6 +15,7 @@ import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TarifaOficial; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.service.TarifaOficialService; +import com.rjconsultores.ventaboletos.vo.comissao.TarifaOficialComComposicaoDoPedagioVo; import com.rjconsultores.ventaboletos.vo.comissao.TarifaOficialVO; public interface TarifaOficialDAO extends GenericDAO { @@ -98,4 +101,8 @@ public interface TarifaOficialDAO extends GenericDAO { public long obtenerCount(List lsEmpresaSelected); public List obterTarifaOficialPorFiltroVO(Moneda moneda, Marca marca,List lsMarcas,Parada origem, Parada destino, ClaseServicio claseServicio, Ruta ruta, String numRuta, Boolean vende); + + public List oberTarifaOficialComComposicaoDoPedagioVo(); + + public void atualizarPedagioComFiltroDePracaDePedagio(Integer tarifaOficialId, BigDecimal importePedagio, String composicaoPedagio ); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/PeajeHibernateDao.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/PeajeHibernateDao.java new file mode 100644 index 000000000..0f5423fbc --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/PeajeHibernateDao.java @@ -0,0 +1,20 @@ +package com.rjconsultores.ventaboletos.dao.hibernate; + +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Repository; + +import com.rjconsultores.ventaboletos.dao.PeajeDao; +import com.rjconsultores.ventaboletos.entidad.Peaje; + + +@Repository("peajeDao") +public class PeajeHibernateDao extends GenericHibernateDAO implements PeajeDao { + + @Autowired + public PeajeHibernateDao(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java index fee5d58b2..f09a5e060 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/RutaHibernateDAO.java @@ -470,7 +470,7 @@ public class RutaHibernateDAO extends GenericHibernateDAO impleme } @Override - public List buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje){ + public List buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje,Empresa empresa){ Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("indRutaCancelada", Boolean.FALSE)); @@ -485,6 +485,9 @@ public class RutaHibernateDAO extends GenericHibernateDAO impleme crietriaOrgaoConcendente.add(Restrictions.eq("activo", Boolean.TRUE)); crietriaOrgaoConcendente.add(Restrictions.eq("orgaoConcedenteId", orgao.getOrgaoConcedenteId())); } + if (empresa != null && empresa.getEmpresaId() != -1) { + c.createCriteria("lsRutaEmpresa").add(Restrictions.eq("empresa", empresa)); + } c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); return c.list(); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java index 12f06f4b7..9ea5f56aa 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java @@ -1,8 +1,10 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.math.BigDecimal; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; +import java.util.Date; import java.util.List; import java.util.Map; @@ -31,6 +33,8 @@ import com.rjconsultores.ventaboletos.entidad.TarifaOficial; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; import com.rjconsultores.ventaboletos.utilerias.CustomEnum; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.vo.comissao.TarifaOficialComComposicaoDoPedagioVo; import com.rjconsultores.ventaboletos.vo.comissao.TarifaOficialVO; @Repository("tarifaOficialDAO") @@ -369,7 +373,7 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO= TO_DATE(:dataFinal,'DD/MM/YYYY hh24:mi')"); + sql.append(" INNER JOIN PEAJE p"); + sql.append(" ON p.ORGAOCONCEDENTE_ID = tof.ORGAOCONCEDENTE_ID"); + sql.append(" AND p.ruta_id= tof.ruta_id"); + sql.append(" AND p.ORIGEN_ID = tof.ORIGEN_ID"); + sql.append(" AND p.DESTINO_ID = tof.DESTINO_ID"); + sql.append(" AND p.activo = 1"); + sql.append(" group by ta.tarifa_id,tof.tarifaoficial_id,ta.tarifa_id,ta.COMPOSICAO_DO_PEAJE"); + + Query query = getSession().createSQLQuery(sql.toString()); + + Query qr = getSession().createSQLQuery(sql.toString()).addScalar("tarifaOficialId", Hibernate.INTEGER).addScalar("composicaoDoPedagioNaTarifa", Hibernate.STRING).addScalar("composicaoDoPedagioNaTarifaOficialComPeaje", Hibernate.STRING).setResultTransformer(Transformers.aliasToBean(TarifaOficialComComposicaoDoPedagioVo.class)); + + qr.setParameter("dataInicial", DateUtil.getStringDate(DateUtil.inicioFecha(new Date()), "dd/MM/yyyy HH:mm")); + qr.setParameter("dataFinal", DateUtil.getStringDate(DateUtil.fimFecha(new Date()), "dd/MM/yyyy HH:mm")); + + return (List) qr.list(); + + + + + } + + @Override + public void atualizarPedagioComFiltroDePracaDePedagio(Integer tarifaOficialId, BigDecimal importePedagio, String composicaoPedagio) { + StringBuilder sb = new StringBuilder(""); + sb.append("update tarifa_oficial set IMPORTEPEDAGIO =:importePedagio, "); + sb.append("COMPOSICAO_DO_PEAJE =:composicaoDoPedagio "); + sb.append("WHERE tarifaoficial_id=:tarifaOficialId"); + + Query query = getSession().createSQLQuery(sb.toString()); + query.setBigDecimal("importePedagio", importePedagio); + query.setString("composicaoDoPedagio", composicaoPedagio); + query.setInteger("tarifaOficialId", tarifaOficialId); + + query.executeUpdate(); + + } + } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java index 96f8e1784..78419233a 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java @@ -768,6 +768,7 @@ public class SQLBuilderOracle implements SQLBuilder { StringBuilder sb = new StringBuilder(""); sb.append("SELECT tao.IMPORTEPEDAGIO AS \"taoimportepedagio\", "); + sb.append(" tao.COMPOSICAO_DO_PEAJE AS \"taocomposicaodopeaje\", "); sb.append(" tao.PRECIO AS \"taoprecio\", "); sb.append(" tao.PRECIOORIGINAL AS \"taopreciooriginal\", "); sb.append(" tao.IMPORTETAXAEMBARQUE AS \"taoimportetaxaembarque\", "); @@ -809,6 +810,7 @@ public class SQLBuilderOracle implements SQLBuilder { if (calculaPegagio) { sb.append("IMPORTEPEDAGIO=").append(dados.get("taoimportepedagio")).append(","); + sb.append(" COMPOSICAO_DO_PEAJE='").append(dados.get("taocomposicaodopeaje")).append("',"); } if (calculaTarifa) { sb.append("PRECIO=").append(dados.get("taoprecio")).append(",PRECIOORIGINAL=").append(dados.get("taopreciooriginal")).append(","); @@ -839,7 +841,7 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" MARCA_ID, CLASESERVICIO_ID, PRECIOORIGINAL, MONEDA_ID, "); sb.append(" VIGENCIATARIFA_ID, STATUSTARIFA, ACTIVO, FECMODIF, "); sb.append(" USUARIO_ID, IMPORTETAXAEMBARQUE, IMPORTEPEDAGIO, IMPORTEOUTROS, "); - sb.append(" IMPORTESEGURO, IMPORTETPP, ORGAOCONCEDENTE_ID, RUTA_ID, ORIGEN_ID, DESTINO_ID ) "); + sb.append(" IMPORTESEGURO, IMPORTETPP, ORGAOCONCEDENTE_ID, RUTA_ID, ORIGEN_ID, DESTINO_ID, COMPOSICAO_DO_PEAJE ) "); sb.append(" select "); sb.append(" TARIFA_SEQ.nextval, "); sb.append(" tao.PRECIO , "); @@ -862,7 +864,8 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" tao.ORGAOCONCEDENTE_ID , "); sb.append(" tao.RUTA_ID , "); sb.append(" tao.ORIGEN_ID , "); - sb.append(" tao.DESTINO_ID "); + sb.append(" tao.DESTINO_ID, "); + sb.append(" tao.COMPOSICAO_DO_PEAJE "); sb.append(" from "); sb.append(" TARIFA_OFICIAL tao, "); sb.append(" VIGENCIA_TARIFA v, "); diff --git a/src/com/rjconsultores/ventaboletos/entidad/Tarifa.java b/src/com/rjconsultores/ventaboletos/entidad/Tarifa.java index 16be316b4..8e7729292 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Tarifa.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Tarifa.java @@ -162,6 +162,11 @@ public class Tarifa implements Serializable, Auditavel, AuditavelTelaAlt @Transient private String telaAlternativa; + + @Column(name = "COMPOSICAO_DO_PEAJE") + @NaoAuditar + private String composicaoDoPeaje; + public Tarifa() { } @@ -407,6 +412,16 @@ public class Tarifa implements Serializable, Auditavel, AuditavelTelaAlt public void setImporteseguro(BigDecimal importeseguro) { this.importeseguro = importeseguro; } + + + + public String getComposicaoDoPeaje() { + return composicaoDoPeaje; + } + + public void setComposicaoDoPeaje(String composicaoDoPeaje) { + this.composicaoDoPeaje = composicaoDoPeaje; + } @Override public void clonar() throws CloneNotSupportedException { diff --git a/src/com/rjconsultores/ventaboletos/entidad/TarifaOficial.java b/src/com/rjconsultores/ventaboletos/entidad/TarifaOficial.java index 5e60613f4..eca037ef2 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/TarifaOficial.java +++ b/src/com/rjconsultores/ventaboletos/entidad/TarifaOficial.java @@ -138,6 +138,10 @@ public class TarifaOficial implements Serializable, Auditavel { @Transient private Integer empresaId; + + @Column(name = "COMPOSICAO_DO_PEAJE") + @NaoAuditar + private String composicaoDoPeaje; public TarifaOficial() { } @@ -285,6 +289,16 @@ public class TarifaOficial implements Serializable, Auditavel { public void setDestino(Parada destino) { this.destino = destino; } + + + + public String getComposicaoDoPeaje() { + return composicaoDoPeaje; + } + + public void setComposicaoDoPeaje(String composicaoDoPeaje) { + this.composicaoDoPeaje = composicaoDoPeaje; + } @Override public int hashCode() { diff --git a/src/com/rjconsultores/ventaboletos/service/PeajeService.java b/src/com/rjconsultores/ventaboletos/service/PeajeService.java new file mode 100644 index 000000000..358eeed78 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/PeajeService.java @@ -0,0 +1,9 @@ +package com.rjconsultores.ventaboletos.service; + +import com.rjconsultores.ventaboletos.entidad.Peaje; + +public interface PeajeService { + + public Peaje buscarPeajePorId(Integer peajeId); + +} diff --git a/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java b/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java index e72a67eb8..ed71bfafa 100644 --- a/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java +++ b/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java @@ -4,6 +4,7 @@ import java.util.List; import com.rjconsultores.ventaboletos.constantes.TipoSeguro; import com.rjconsultores.ventaboletos.dao.TarifaOficialDAO; +import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Marca; @@ -148,5 +149,7 @@ public interface TarifaOficialService { public List obterTarifaOficialPorFiltro(Moneda moneda, Marca marca,List lsMarcas,Parada origem, Parada destino, ClaseServicio claseServicio, Ruta ruta, String numRuta, Boolean vende); + public void atualizarPedagioPorListaDePracaDePagio(List lsCasetaPeaje); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/PeajeServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/PeajeServiceImpl.java new file mode 100644 index 000000000..364139ef5 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/PeajeServiceImpl.java @@ -0,0 +1,20 @@ +package com.rjconsultores.ventaboletos.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.rjconsultores.ventaboletos.dao.PeajeDao; +import com.rjconsultores.ventaboletos.entidad.Peaje; +import com.rjconsultores.ventaboletos.service.PeajeService; + +@Service("peajeService") +public class PeajeServiceImpl implements PeajeService{ + + @Autowired + private PeajeDao peajeDao; + + + public Peaje buscarPeajePorId(Integer peajeId) { + return peajeDao.obtenerID(peajeId); + } +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java index af4450585..ee29bcecf 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java @@ -1,7 +1,12 @@ package com.rjconsultores.ventaboletos.service.impl; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,12 +19,14 @@ import com.rjconsultores.ventaboletos.dao.OrgaoConcedenteDAO; import com.rjconsultores.ventaboletos.dao.SeguroKmDAO; import com.rjconsultores.ventaboletos.dao.SeguroTarifaDAO; import com.rjconsultores.ventaboletos.dao.TarifaOficialDAO; +import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Moneda; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.Peaje; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TarifaOficial; import com.rjconsultores.ventaboletos.entidad.Tramo; @@ -27,8 +34,10 @@ import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.LogAuditoriaService; +import com.rjconsultores.ventaboletos.service.PeajeService; import com.rjconsultores.ventaboletos.service.TarifaOficialService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.vo.comissao.TarifaOficialComComposicaoDoPedagioVo; import com.rjconsultores.ventaboletos.vo.comissao.TarifaOficialVO; @Service("tarifaOficialService") @@ -47,6 +56,10 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Autowired private LogAuditoriaService logAuditoriaService; + + + @Autowired + private PeajeService peajeService; @Override @Transactional @@ -340,5 +353,118 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { } return lsTarifa; } + + + public void atualizarPedagioPorListaDePracaDePagio(List lsCasetaPeaje) { + try { + List lsTarifaOficialComComposicaoDoPedagioVo = tarifaOficialDAO.oberTarifaOficialComComposicaoDoPedagioVo(); + + if (!lsTarifaOficialComComposicaoDoPedagioVo.isEmpty()) { + + + for (TarifaOficialComComposicaoDoPedagioVo tarifaOficialComComposicaoDoPedagioVo : lsTarifaOficialComComposicaoDoPedagioVo) { + log.info("tarifaOficiald:" + tarifaOficialComComposicaoDoPedagioVo.getTarifaOficialId() + " | composicao do pedágio no cálculo:" + tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifaOficialComPeaje() + " | composicao do pedágio na tarifa:" + tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifa()); + + if (tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifa() == null) { + HashMap mapComposicaoDoPedagioNaTarifaOficialComPeaje = new HashMap(); + String[] parDeChavePeajeMaisCasetaPeaje1 = tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifaOficialComPeaje().replace(" ", "").split(","); + montaMapComposicao(mapComposicaoDoPedagioNaTarifaOficialComPeaje, parDeChavePeajeMaisCasetaPeaje1); + BigDecimal valorPedagio = montarObterValorImportePedagio(mapComposicaoDoPedagioNaTarifaOficialComPeaje); + String stringComposicaoDoPedagio = tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifaOficialComPeaje(); + + atualizarPedagioComFiltroDePracaDePedagio(tarifaOficialComComposicaoDoPedagioVo, valorPedagio, stringComposicaoDoPedagio); + + } else { + HashMap mapComposicaoDoPedagioNaTarifa = new HashMap(); + String[] parDeChavePeajeMaisCasetaPeaje = tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifa().replace(" ", "").split(","); + montaMapComposicao(mapComposicaoDoPedagioNaTarifa, parDeChavePeajeMaisCasetaPeaje); + + HashMap mapComposicaoDoPedagioNaTarifaOficialComPeaje = new HashMap(); + String[] parDeChavePeajeMaisCasetaPeaje1 = tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifaOficialComPeaje().replace(" ", "").split(","); + montaMapComposicao(mapComposicaoDoPedagioNaTarifaOficialComPeaje, parDeChavePeajeMaisCasetaPeaje1); + + atualizarComposicaoDoPedagioNaTarifa(lsCasetaPeaje, mapComposicaoDoPedagioNaTarifa, mapComposicaoDoPedagioNaTarifaOficialComPeaje); + + BigDecimal valorPedagio = montarObterValorImportePedagio(mapComposicaoDoPedagioNaTarifa); + + String stringComposicaoDoPedagio = ""; + stringComposicaoDoPedagio = remontarAStringDeComposicaoDoPedagio(mapComposicaoDoPedagioNaTarifa, stringComposicaoDoPedagio); + + atualizarPedagioComFiltroDePracaDePedagio(tarifaOficialComComposicaoDoPedagioVo, valorPedagio, stringComposicaoDoPedagio); + + } + + } + } else { + log.info("Não retornou nenhum registro da consulta oberTarifaOficialComComposicaoDoPedagioVo "); + } + }catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + } + + } + + private void atualizarPedagioComFiltroDePracaDePedagio(TarifaOficialComComposicaoDoPedagioVo tarifaOficialComComposicaoDoPedagioVo, BigDecimal valorPedagio, String stringComposicaoDoPedagio) { + log.info("tarifaOficiald:"+tarifaOficialComComposicaoDoPedagioVo.getTarifaOficialId()+" | composicao do pedágio na tarifa oficial:" + tarifaOficialComComposicaoDoPedagioVo.getComposicaoDoPedagioNaTarifaOficialComPeaje() +" | importePedagio:"+valorPedagio); + + tarifaOficialDAO.atualizarPedagioComFiltroDePracaDePedagio(tarifaOficialComComposicaoDoPedagioVo.getTarifaOficialId(), valorPedagio, stringComposicaoDoPedagio); + } + + private String remontarAStringDeComposicaoDoPedagio(HashMap mapComposicaoDoPedagioNaTarifa, String stringComposicaoDoPedagio) { + Boolean inicio =true; + + for(Entry map : mapComposicaoDoPedagioNaTarifa.entrySet()) { + if(!inicio) { + stringComposicaoDoPedagio += ","; + } + stringComposicaoDoPedagio += map.getKey()+";"+map.getValue(); + inicio=false; + } + return stringComposicaoDoPedagio; + } + + private BigDecimal montarObterValorImportePedagio(HashMap mapComposicaoDoPedagioNaTarifa) { + BigDecimal valorPedagio = new BigDecimal("0.0"); + for(Entry map : mapComposicaoDoPedagioNaTarifa.entrySet()) { + Peaje peaje = peajeService.buscarPeajePorId(map.getValue()); + valorPedagio=valorPedagio.add(peaje.getImportePeaje()); + + } + return valorPedagio.setScale(2,RoundingMode.HALF_EVEN); + + } + + private void atualizarComposicaoDoPedagioNaTarifa(List lsCasetaPeaje, HashMap mapComposicaoDoPedagioNaTarifa, Map mapComposicaoDoPedagioNaTarifaOficialComPeaje) { + for(CasetaPeaje casetaPeaje : lsCasetaPeaje) { + if(mapComposicaoDoPedagioNaTarifa.containsKey(casetaPeaje.getCasetaPeajeId())) { + mapComposicaoDoPedagioNaTarifa.remove(casetaPeaje.getCasetaPeajeId()); + } + + if(mapComposicaoDoPedagioNaTarifaOficialComPeaje.containsKey(casetaPeaje.getCasetaPeajeId())) { + mapComposicaoDoPedagioNaTarifa.put(casetaPeaje.getCasetaPeajeId(),mapComposicaoDoPedagioNaTarifaOficialComPeaje.get(casetaPeaje.getCasetaPeajeId())); + } + + } + } + + private void montaMapComposicao(Map mapComposicaoDoPedagioNaTarifa, String[] parDeChavePeajeMaisCasetaPeaje) { + for(String chavePeajeMaisCasetaPeaje:parDeChavePeajeMaisCasetaPeaje) { + String[] composicao = chavePeajeMaisCasetaPeaje.split(";"); + Integer casetaPeaje = Integer.parseInt(composicao[0].trim()); + Integer peaje = Integer.parseInt(composicao[1].trim()); + mapComposicaoDoPedagioNaTarifa.put(casetaPeaje,peaje); + } + } + + public static void main(String[] args) { + String teste="284;19004, 284;19005,425;18994"; +// String testeEspacoReemovido=teste.tri; + String[] parDeChavePeajeMaisCasetaPeaje = teste.replace(" ", "").split(","); + + for(String chavePeajeMaisCasetaPeaje:parDeChavePeajeMaisCasetaPeaje) { + System.out.println(chavePeajeMaisCasetaPeaje); + } + } } diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/TarifaOficialComComposicaoDoPedagioVo.java b/src/com/rjconsultores/ventaboletos/vo/comissao/TarifaOficialComComposicaoDoPedagioVo.java new file mode 100644 index 000000000..7c4d18958 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/TarifaOficialComComposicaoDoPedagioVo.java @@ -0,0 +1,29 @@ +package com.rjconsultores.ventaboletos.vo.comissao; + +public class TarifaOficialComComposicaoDoPedagioVo { + private Integer tarifaOficialId; + private String composicaoDoPedagioNaTarifa; + private String composicaoDoPedagioNaTarifaOficialComPeaje; + + public Integer getTarifaOficialId() { + return tarifaOficialId; + } + public void setTarifaOficialId(Integer tarifaOficialId) { + this.tarifaOficialId = tarifaOficialId; + } + public String getComposicaoDoPedagioNaTarifa() { + return composicaoDoPedagioNaTarifa; + } + public void setComposicaoDoPedagioNaTarifa(String composicaoDoPedagioNaTarifa) { + this.composicaoDoPedagioNaTarifa = composicaoDoPedagioNaTarifa; + } + public String getComposicaoDoPedagioNaTarifaOficialComPeaje() { + return composicaoDoPedagioNaTarifaOficialComPeaje; + } + public void setComposicaoDoPedagioNaTarifaOficialComPeaje(String composicaoDoPedagioNaTarifaOficialComPeaje) { + this.composicaoDoPedagioNaTarifaOficialComPeaje = composicaoDoPedagioNaTarifaOficialComPeaje; + } + + + +}