diff --git a/pom.xml b/pom.xml index 8ea869bc4..8ce4b5dc0 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores modelWeb - 1.0.0 + 1.0.3 diff --git a/src/com/rjconsultores/ventaboletos/dao/HistoricoFormaPagoPuntoVentaDAO.java b/src/com/rjconsultores/ventaboletos/dao/HistoricoFormaPagoPuntoVentaDAO.java new file mode 100644 index 000000000..75966b2f0 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/HistoricoFormaPagoPuntoVentaDAO.java @@ -0,0 +1,20 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.dao; + +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.HistoricoFormaPagoPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; + +/** + * + * @author Wallace + */ +public interface HistoricoFormaPagoPuntoVentaDAO extends GenericDAO { + + List obtenerTodosPorPuntoVenta(PuntoVenta puntoVenta); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/PeajeDao.java b/src/com/rjconsultores/ventaboletos/dao/PeajeDao.java new file mode 100644 index 000000000..7f0415b31 --- /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/RutaDAO.java b/src/com/rjconsultores/ventaboletos/dao/RutaDAO.java index 6af7ce7ed..0e34d5ade 100644 --- a/src/com/rjconsultores/ventaboletos/dao/RutaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/RutaDAO.java @@ -76,5 +76,5 @@ public interface RutaDAO extends GenericDAO { public List buscarPorIds(Integer[] rutaIds); - public List buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje); + public List buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje, Empresa empresa); } diff --git a/src/com/rjconsultores/ventaboletos/dao/SapDAO.java b/src/com/rjconsultores/ventaboletos/dao/SapDAO.java index 473bfcc86..112a0a26e 100644 --- a/src/com/rjconsultores/ventaboletos/dao/SapDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/SapDAO.java @@ -10,9 +10,9 @@ import com.rjconsultores.ventaboletos.vo.integracao.FechamentoCntCorrenteVO; public interface SapDAO extends GenericDAO { - public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar); + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status); - public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar, PuntoVenta puntoVenta); + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status, PuntoVenta puntoVenta); public boolean atualizaFechamento(Long fechamentocntcorrenteId, int status) throws Exception; diff --git a/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java b/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java index 66e61eef2..c1c0bc3b3 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 { @@ -23,7 +26,7 @@ public interface TarifaOficialDAO extends GenericDAO { * @param orgaoConcedenteId TODO * @return TODO */ - public Integer gerarTarifaPorCoeficiente(Integer ruta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas); + public Integer gerarTarifaPorCoeficiente(Integer ruta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas,Integer[] lsCasetaPeaje); public Integer gerarTarifaArtesp(Integer ruta, Integer usuarioId, Integer orgaoConcedenteId, List idsEmpresas); @@ -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(Integer empresaId); + + public void atualizarPedagioComFiltroDePracaDePedagio(Integer tarifaOficialId, BigDecimal importePedagio, String composicaoPedagio ); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/HistoricoFormaPagoPuntoVentaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/HistoricoFormaPagoPuntoVentaHibernateDAO.java new file mode 100644 index 000000000..29201ff13 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/HistoricoFormaPagoPuntoVentaHibernateDAO.java @@ -0,0 +1,49 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.dao.hibernate; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.SessionFactory; +import org.hibernate.criterion.Restrictions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Repository; + +import com.rjconsultores.ventaboletos.dao.HistoricoFormaPagoPuntoVentaDAO; +import com.rjconsultores.ventaboletos.entidad.HistoricoFormaPagoPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; + +/** + * + * @author Administrador + */ +@Repository("historicoFormaPagoPuntoVentaDAO") +public class HistoricoFormaPagoPuntoVentaHibernateDAO extends GenericHibernateDAO implements HistoricoFormaPagoPuntoVentaDAO { + + @Autowired + public HistoricoFormaPagoPuntoVentaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + + @Override + public List obtenerTodos() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return c.list(); + } + + @Override + public List obtenerTodosPorPuntoVenta(PuntoVenta puntoVenta) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("puntoVenta", puntoVenta)); + + return c.list(); + } + +} 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..a4d293e69 --- /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/SapHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/SapHibernateDAO.java index 74cb6f8f2..6a9a3ef45 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/SapHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/SapHibernateDAO.java @@ -7,19 +7,20 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import com.rjconsultores.ventaboletos.dao.SapDAO; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.FechamentoCntcorrente; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.enums.StatusIntegracaoSap; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.vo.integracao.FechamentoCntCorrenteVO; + import org.hibernate.Query; 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.SapDAO; -import com.rjconsultores.ventaboletos.entidad.Empresa; -import com.rjconsultores.ventaboletos.entidad.FechamentoCntcorrente; -import com.rjconsultores.ventaboletos.entidad.PuntoVenta; -import com.rjconsultores.ventaboletos.utilerias.DateUtil; -import com.rjconsultores.ventaboletos.vo.integracao.FechamentoCntCorrenteVO; - @Repository("sapDAO") public class SapHibernateDAO extends GenericHibernateDAO implements SapDAO { @@ -29,13 +30,13 @@ public class SapHibernateDAO extends GenericHibernateDAO obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) { - return obtenerTodosParaRemessa(empresa, dataDe, dataAte, reenviar, null); + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status) { + return obtenerTodosParaRemessa(empresa, dataDe, dataAte, status, null); } @SuppressWarnings("unchecked") @Override - public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar, PuntoVenta puntoVenta) { + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status, PuntoVenta puntoVenta) { StringBuilder sb = new StringBuilder(); sb.append(" SELECT "); @@ -76,8 +77,8 @@ public class SapHibernateDAO extends GenericHibernateDAO idsEmpresas) { + public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas, Integer[] lsCasetaPeaje) { - String sql = sqlBuilder.getSQLGerarTarifaOficial(rutaId, usuarioId, orgaoConcedente, idsEmpresas); + String sql = sqlBuilder.getSQLGerarTarifaOficial(rutaId, usuarioId, orgaoConcedente, idsEmpresas,lsCasetaPeaje); int qtd = getSession().createSQLQuery(sql).executeUpdate(); @@ -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(" AND m.empresa_id=:empresaId "); + 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("empresaId", empresaId); + 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/SQLBuilder.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java index 93847780c..deac6d043 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java @@ -21,7 +21,7 @@ import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; */ public interface SQLBuilder { - public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas); + public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas, Integer[] listCasetaPeaje); public String getSQLGerarTabelaZerada(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId, List idsEmpresas, List lsParadaId); diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java index d189be441..b14c162e8 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java @@ -5,6 +5,8 @@ import java.util.Date; import java.util.List; import java.util.Map; +import org.apache.commons.lang.StringUtils; + import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.constantes.TipoSeguro; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; @@ -245,7 +247,7 @@ public class SQLBuilderOracle implements SQLBuilder { @Override public String getSQLGerarTarifaOficial(final Integer codRuta, final Integer usuarioId, - final OrgaoConcedente orgaoConcedente, final List idsEmpresas) { + final OrgaoConcedente orgaoConcedente, final List idsEmpresas,Integer[] listCasetaPeaje) { StringBuilder sb = new StringBuilder(); sb.append(" INSERT "); @@ -374,8 +376,12 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" inner join estado e on e.estado_id = c.estado_id "); sb.append(" inner join MARCA_CLASESERVICIO mc on "); sb.append(" mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and ma.marca_id = mc.marca_id "); + if(null !=listCasetaPeaje) { + sb.append(" inner join peaje p on p.ruta_id=r.ruta_id and p.origen_id=po.parada_id and p.destino_id=pd.parada_id and p.orgaoconcedente_id =oc.orgaoconcedente_id "); + } sb.append(" inner join CLASE_SERVICIO cl on cl.claseservicio_id = r.CLASESERVICIO_ID, "); sb.append(" moneda m "); + sb.append(" "); sb.append("where "); sb.append(" rc.activo = 1 "); @@ -406,7 +412,11 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" oc.orgaoconcedente_id, r.ruta_id) "); sb.append(" not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID, "); sb.append(" tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id "); - sb.append(" from tarifa_oficial tao where tao.activo = 1) "); + sb.append(" from tarifa_oficial tao where tao.activo = 1) "); + if(null !=listCasetaPeaje) { + sb.append(" and p.activo=1 "); + sb.append(" and p.casetapeaje_id in ( " + StringUtils.join(listCasetaPeaje,",") + ") "); + } return sb.toString(); } @@ -768,6 +778,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 +820,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 +851,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 +874,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/Categoria.java b/src/com/rjconsultores/ventaboletos/entidad/Categoria.java index 584566217..2d27484e2 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Categoria.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Categoria.java @@ -102,6 +102,9 @@ public class Categoria implements Serializable { @Column(name = "INDVENDEAPI") private Boolean indvendeapi; + @Column(name = "INDEXIGEIDENTIDADE") + private Boolean indExigeIdentidade; + public Categoria() { } @@ -292,4 +295,14 @@ public class Categoria implements Serializable { public void setIndvendeapi(Boolean indvendeapi) { this.indvendeapi = indvendeapi; } + + public Boolean getIndExigeIdentidade() { + return indExigeIdentidade; + + } + + public void setIndExigeIdentidade(Boolean indExigeIdentidade) { + this.indExigeIdentidade = indExigeIdentidade; + + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/HistoricoFormaPagoPuntoVenta.java b/src/com/rjconsultores/ventaboletos/entidad/HistoricoFormaPagoPuntoVenta.java new file mode 100644 index 000000000..167a6fe74 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/HistoricoFormaPagoPuntoVenta.java @@ -0,0 +1,183 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.Basic; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; +import javax.persistence.Transient; + +import org.hibernate.Hibernate; + +import br.com.rjconsultores.auditador.annotations.AuditarClasse; +import br.com.rjconsultores.auditador.annotations.NaoAuditar; +import br.com.rjconsultores.auditador.interfaces.Auditavel; + +@AuditarClasse(nome = "HistoricoFormaPagoPuntoVenta", tela = "Alteracao Forma Pago Ponto de Venda/Historico") +@Entity +@SequenceGenerator(name = "HIST_FORMAPAGOPUNTOVENTA_SEQ", sequenceName = "HIST_FORMAPAGOPUNTOVENTA_SEQ", allocationSize = 1) +@Table(name = "HIST_FORMAPAGO_PUNTOVENTA") +public class HistoricoFormaPagoPuntoVenta implements Serializable, Auditavel { + + private static final long serialVersionUID = 1L; + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "HIST_FORMAPAGOPUNTOVENTA_SEQ") + @Column(name = "HIST_FORMAPAGO_PUNTOVENTA_ID") + private Integer historicoFormaPagoPuntoVentaId; + + @Column(name = "IND_INCLUSAO") + private Boolean indInclusao; + + @Column(name = "MOTIVO") + private String motivo; + + @Column(name = "FEC_ALTERACAO") + @Temporal(TemporalType.TIMESTAMP) + private Date fecAlteracao; + + @NaoAuditar + @ManyToOne + @JoinColumn(name = "PUNTOVENTA_ID") + private PuntoVenta puntoVenta; + + @Column(name = "FORMAPAGO_ID") + private Integer formaPagoId; + + @Column(name = "ACTIVO") + private Boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + @Column(name = "EMPRESA_ID") + private Integer empresaId; + + @Transient + @NaoAuditar + private HistoricoFormaPagoPuntoVenta historicoPuntoVentaClone; + + + public Integer getHistoricoFormaPagoPuntoVentaId() { + return historicoFormaPagoPuntoVentaId; + } + + public void setHistoricoFormaPagoPuntoVentaId(Integer historicoFormaPagoPuntoVentaId) { + this.historicoFormaPagoPuntoVentaId = historicoFormaPagoPuntoVentaId; + } + + public Boolean getIndInclusao() { + return indInclusao; + } + + public void setIndInclusao(Boolean indInclusao) { + this.indInclusao = indInclusao; + } + + public Date getFecAlteracao() { + return fecAlteracao; + } + + public void setFecAlteracao(Date fecAlteracao) { + this.fecAlteracao = fecAlteracao; + } + + public HistoricoFormaPagoPuntoVenta getHistoricoPuntoVentaClone() { + return historicoPuntoVentaClone; + } + + public void setHistoricoPuntoVentaClone(HistoricoFormaPagoPuntoVenta historicoPuntoVentaClone) { + this.historicoPuntoVentaClone = historicoPuntoVentaClone; + } + + public PuntoVenta getPuntoVenta() { + return puntoVenta; + } + + public void setPuntoVenta(PuntoVenta puntoVenta) { + this.puntoVenta = puntoVenta; + } + + public Boolean getActivo() { + return activo; + } + + public void setActivo(Boolean activo) { + this.activo = activo; + } + + public Date getFecmodif() { + return fecmodif; + } + + public void setFecmodif(Date fecmodif) { + this.fecmodif = fecmodif; + } + + public Integer getUsuarioId() { + return usuarioId; + } + + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } + + public Integer getEmpresaId() { + return empresaId; + } + + public void setEmpresaId(Integer empresaId) { + this.empresaId = empresaId; + } + + public String getMotivo() { + return motivo; + } + + public void setMotivo(String motivo) { + this.motivo = motivo; + } + + public Integer getFormaPagoId() { + return formaPagoId; + } + + public void setFormaPagoId(Integer formaPagoId) { + this.formaPagoId = formaPagoId; + } + + @Override + public void clonar() throws CloneNotSupportedException { + historicoPuntoVentaClone = new HistoricoFormaPagoPuntoVenta(); + historicoPuntoVentaClone = (HistoricoFormaPagoPuntoVenta) this.clone(); + Hibernate.initialize(historicoPuntoVentaClone.getPuntoVenta()); + + } + + @Override + public HistoricoFormaPagoPuntoVenta getCloneObject() throws CloneNotSupportedException { + return historicoPuntoVentaClone; + } + + @Override + public String getTextoInclusaoExclusao() { + return String.format("ID [%s]", getHistoricoFormaPagoPuntoVentaId()); + } + + + +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java index c1a85bd6a..d77961506 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java +++ b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java @@ -52,7 +52,7 @@ import br.com.rjconsultores.auditador.interfaces.Auditavel; */ @Entity @SequenceGenerator(name = "PUNTO_VENTA_SEQ", sequenceName = "PUNTO_VENTA_SEQ", allocationSize = 1) -@AuditarClasse(nome = "PuntoVenta", tela = "Alteração de Ponto de Venda") +@AuditarClasse(nome = "PuntoVenta", tela = "Altera��o de Ponto de Venda") @Table(name = "PUNTO_VENTA") public class PuntoVenta implements Serializable, Auditavel { @@ -259,6 +259,11 @@ public class PuntoVenta implements Serializable, Auditavel { @LazyCollection(LazyCollectionOption.FALSE) private List historicoPuntoVentaList; + @NaoAuditar + @OneToMany(cascade = CascadeType.ALL, mappedBy = "puntoVenta") + @LazyCollection(LazyCollectionOption.FALSE) + private List historicoFormaPagoPuntoVentaList; + @AuditarLista(auditarEntidades = true, nome = "CategoriaBloqueioImpPosterior") @OneToMany(cascade = CascadeType.ALL, mappedBy = "puntoventa") @LazyCollection(LazyCollectionOption.FALSE) @@ -326,6 +331,12 @@ public class PuntoVenta implements Serializable, Auditavel { @Column(name = "INDBLOQCANCBILHETEIMPRESSO ") private Boolean indBloqueiaCancelamentoBilheteImpresso; + @Column(name = "LATITUDE ") + private Double latitude; + + @Column(name = "LONGITUDE ") + private Double longitude; + public List getCobrancaAdicionalList() { return cobrancaAdicionalList; } @@ -424,6 +435,7 @@ public class PuntoVenta implements Serializable, Auditavel { this.ptovtaCatIndList = new ArrayList(); this.ptovtaEmpresaBloqueadaList = new ArrayList(); this.historicoPuntoVentaList = new ArrayList(); + this.historicoFormaPagoPuntoVentaList = new ArrayList(); } public PuntoVenta(Integer puntoventaId) { @@ -1093,6 +1105,14 @@ public class PuntoVenta implements Serializable, Auditavel { this.historicoPuntoVentaList = historicoPuntoVentaList; } + public List getHistoricoFormaPagoPuntoVentaList() { + return historicoFormaPagoPuntoVentaList; + } + + public void setHistoricoFormaPagoPuntoVentaList(List historicoFormaPagoPuntoVentaList) { + this.historicoFormaPagoPuntoVentaList = historicoFormaPagoPuntoVentaList; + } + public List getCategoriaBloqImpPosteriorList() { return categoriaBloqImpPosteriorList; } @@ -1280,6 +1300,22 @@ public class PuntoVenta implements Serializable, Auditavel { this.ptovtaExcecaoMultaCancList = ptovtaExcecaoMultaCanc; } + public Double getLatitude() { + return latitude; + } + + public void setLatitude(Double latitude) { + this.latitude = latitude; + } + + public Double getLongitude() { + return longitude; + } + + public void setLongitude(Double longitude) { + this.longitude = longitude; + } + @Override public void clonar() throws CloneNotSupportedException { 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 06dc2a4b4..2d1c8b244 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/enums/StatusIntegracaoSap.java b/src/com/rjconsultores/ventaboletos/enums/StatusIntegracaoSap.java index d72837cdf..e45dbc58d 100644 --- a/src/com/rjconsultores/ventaboletos/enums/StatusIntegracaoSap.java +++ b/src/com/rjconsultores/ventaboletos/enums/StatusIntegracaoSap.java @@ -1,7 +1,35 @@ package com.rjconsultores.ventaboletos.enums; +import java.util.Arrays; +import java.util.List; + public enum StatusIntegracaoSap { - INTEGRADO, - NAO_INTEGRADO, - PENDENTE; + INTEGRADO("Integrado"), + NAO_ENVIADO("Nao Enviado"), + PENDENTE("Pendente"), + RECUSADO("Recusado SAP"); + + private String descricao; + + private StatusIntegracaoSap(String descricao) { + this.descricao = descricao; + } + + @Override + public String toString() { + return descricao; + } + + public static List list() { + return Arrays.asList(values()); + } + + public static StatusIntegracaoSap getStatusIntegracaoSap(Integer tValor) { + for (StatusIntegracaoSap valor : StatusIntegracaoSap.values()) { + if (tValor.equals(valor.ordinal())) { + return valor; + } + } + return null; + } } diff --git a/src/com/rjconsultores/ventaboletos/service/HistoricoFormaPagoPuntoVentaService.java b/src/com/rjconsultores/ventaboletos/service/HistoricoFormaPagoPuntoVentaService.java new file mode 100644 index 000000000..81d8bbabc --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/HistoricoFormaPagoPuntoVentaService.java @@ -0,0 +1,21 @@ +/* + * 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.HistoricoFormaPagoPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; + +/** + * + * @author Wallace + */ +public interface HistoricoFormaPagoPuntoVentaService extends GenericService { + + List obtenerTodosPorPuntoVenta(PuntoVenta puntoVenta); + + +} diff --git a/src/com/rjconsultores/ventaboletos/service/PeajeService.java b/src/com/rjconsultores/ventaboletos/service/PeajeService.java new file mode 100644 index 000000000..e2e398a0b --- /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/RutaService.java b/src/com/rjconsultores/ventaboletos/service/RutaService.java index 4e46c59b9..ccb4286e2 100644 --- a/src/com/rjconsultores/ventaboletos/service/RutaService.java +++ b/src/com/rjconsultores/ventaboletos/service/RutaService.java @@ -124,4 +124,6 @@ public interface RutaService { public List buscarRutasPorEmpresaOrgaoConcedenteParadaIds(Empresa empresa, OrgaoConcedente orgao, Integer[] lsParadaIds) ; + public List buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje, Empresa empresa); + } diff --git a/src/com/rjconsultores/ventaboletos/service/SapService.java b/src/com/rjconsultores/ventaboletos/service/SapService.java index 6b73cf0e9..f3c940887 100644 --- a/src/com/rjconsultores/ventaboletos/service/SapService.java +++ b/src/com/rjconsultores/ventaboletos/service/SapService.java @@ -9,12 +9,12 @@ import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.vo.integracao.FechamentoCntCorrenteVO; public interface SapService extends GenericService { - - public int remessa(List fechamentos) throws Exception ; - - public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar); - public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar, PuntoVenta puntoVenta); + public int remessa(List fechamentos, boolean processoManual) throws Exception ; + + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status); + + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status, PuntoVenta puntoVenta); public void integracaoSapAutomatica() throws Exception; diff --git a/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java b/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java index a07de71c3..749159676 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; @@ -35,7 +36,7 @@ public interface TarifaOficialService { * @param orgaoConcedenteId * @return A quantidade de registros afetadas */ - public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas); + public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas,Integer[] lsCasetaPeaje); /** @@ -66,7 +67,7 @@ public interface TarifaOficialService { * @param empresaId * @throws BusinessException */ - public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedenteId, List lsEmpresaSelected) throws BusinessException; + public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedenteId, List lsEmpresaSelected, Integer[] lsCasetaPeaje) throws BusinessException; /** * Copia a tarifa oficial para a tabela de tarifa de acordo com a vigencia especificada.
@@ -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,Integer empresaId); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConferenciaComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConferenciaComissaoServiceImpl.java index bdd484945..7297983ce 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConferenciaComissaoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConferenciaComissaoServiceImpl.java @@ -617,14 +617,14 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic if (boletoComissao.isMotivocancelacionQuitacaoOcd()) { formapago.subtract(formapagoBoleto.getImporte()); // somando as vendas - } else if (boletoComissao.isAbaBilheteVendido() || boletoComissao.isAbaGapVendido() || boletoComissao.isAbaBilheteManual()) { + } else if (boletoComissao.isAbaBilheteVendido() || boletoComissao.isAbaGapVendido() || boletoComissao.isAbaBilheteManual() || (boletoComissao.isVendaBilheteTransferencia(boletoComissao.getTipoVenta()) && formapago.getFormapagoId() == 1)) { formapago.add(formapagoBoleto.getImporte()); // subtraindo os cancelamentos } else if (boletoComissao.isAbaBilheteCancelado() || boletoComissao.isAbaGapCancelado()) { formapago.subtract(formapagoBoleto.getImporte()); // subtraindo as trocas e devolucoes - } else if (boletoComissao.isAbaBilheteDevolvido() || boletoComissao.isAbaGapDevolvido()) { - if (boletoComissao.isMotivocancelacionTrocado() || boletoComissao.isMotivocancelacionDevolvido() || boletoComissao.isMotivocancelacionQuitacaoOcd()) { + } else if (boletoComissao.isAbaBilheteDevolvido() || boletoComissao.isAbaGapDevolvido() || boletoComissao.isMotivocancelacionTransferido()) { + if (boletoComissao.isMotivocancelacionTrocado() || boletoComissao.isMotivocancelacionDevolvido() || boletoComissao.isMotivocancelacionQuitacaoOcd() || (boletoComissao.isVendaBilheteTransferencia(boletoComissao.getTipoVenta()) && formapago.getFormapagoId() == 1)) { formapago.subtract(formapagoBoleto.getImporte()); } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java index 9f032d20a..2985117b7 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java @@ -67,15 +67,15 @@ public class ContingenciaServiceImpl implements ContingenciaService { historicoCont.setDataHora(Calendar.getInstance().getTime()); if (historicoCont.getEmpresa() == null) { - throw new BusinessException("Não é possível salvar sem a empresa"); + throw new BusinessException("N�o � poss�vel salvar sem a empresa"); } if (historicoCont.getEstado() == null) { - throw new BusinessException("Não é possível salvar sem o estado referente"); + throw new BusinessException("N�o � poss�vel salvar sem o estado referente"); } if (historicoCont.getMotivo() == null) { - throw new BusinessException("Não é possível salvar sem o motivo referente"); + throw new BusinessException("N�o � poss�vel salvar sem o motivo referente"); } try { @@ -102,10 +102,10 @@ public class ContingenciaServiceImpl implements ContingenciaService { } private void setMotivoNaoTrocaStatus(LogHistoricoContingencia historicoCont, Exception e) { - log.error(String.format("Erro no envio de e-mail de contingência da empresa %s para o estado %s.", historicoCont.getEmpresa().getEmpresaId(),historicoCont.getEstado()), e); + log.error(String.format("Erro no envio de e-mail de conting�ncia da empresa %s para o estado %s.", historicoCont.getEmpresa().getEmpresaId(),historicoCont.getEstado()), e); String motivo = historicoCont.getMotivo(); - motivo = motivo.concat("**Problema no envio de E-mail de notificação. Favor checar."); + motivo = motivo.concat("**Problema no envio de E-mail de notifica��o. Favor checar."); historicoCont.setMotivo(motivo); } @@ -164,35 +164,44 @@ public class ContingenciaServiceImpl implements ContingenciaService { return EStatusContingencia.getStatusContingencia(Integer.valueOf(historicoCont.getStatus())); } - private void enviaEmail(LogHistoricoContingencia historicoCont) throws SendFailedException, AuthenticationFailedException { - SendMail mail = new SendMail(); + private void enviaEmail(LogHistoricoContingencia historicoCont) throws SendFailedException, AuthenticationFailedException { + EmpresaEmail empresaEmail = empresaEmailService.buscarPorEmpresa(historicoCont.getEmpresa()); EmpresaEmailConfig empresaEmailConfig = empresaEmailConfigService.buscarPorEmpresa(historicoCont.getEmpresa()); - mail.setAuth(empresaEmailConfig.getIndAutenticacao()); - if (StringUtils.isNotEmpty(empresaEmailConfig.getTipoAutorizacao())) { - mail.setAuthType(AuthType.valueOf(empresaEmailConfig.getTipoAutorizacao())); + + if (empresaEmail != null && empresaEmailConfig != null && + empresaEmailConfig.getIndAutenticacao() != null && empresaEmail.getEmailDe() != null && + empresaEmailConfig.getTipoAutorizacao() != null && empresaEmailConfig.getSmtp() != null && + empresaEmailConfig.getSenha() != null && empresaEmailConfig.getSmtpPorta() != null && + empresaEmailConfig.getSmtpEmail() != null && empresaEmail.getDestinatario() != null) { + + SendMail mail = new SendMail(); + mail.setAuth(empresaEmailConfig.getIndAutenticacao()); + if (StringUtils.isNotEmpty(empresaEmailConfig.getTipoAutorizacao())) { + mail.setAuthType(AuthType.valueOf(empresaEmailConfig.getTipoAutorizacao())); + } + mail.setEmailFrom(empresaEmail.getEmailDe()); + mail.setSmtpHost(empresaEmailConfig.getSmtp()); + mail.setSmtpPassword(empresaEmailConfig.getSenha()); + mail.setSmtpPort(empresaEmailConfig.getSmtpPorta()); + mail.setSmtpUser(empresaEmailConfig.getSmtpEmail()); + mail.setSubject("Conting�ncia Off-line BP-e"); + mail.setText(getMensagem(historicoCont)); + mail.setEmailTo(empresaEmail.getDestinatario()); + mail.setEmailToCO(EMAIL_COPIA_OCULTA); + mail.send(); } - mail.setEmailFrom(empresaEmail.getEmailDe()); - mail.setSmtpHost(empresaEmailConfig.getSmtp()); - mail.setSmtpPassword(empresaEmailConfig.getSenha()); - mail.setSmtpPort(empresaEmailConfig.getSmtpPorta()); - mail.setSmtpUser(empresaEmailConfig.getSmtpEmail()); - mail.setSubject("Contingência Off-line BP-e"); - mail.setText(getMensagem(historicoCont)); - mail.setEmailTo(empresaEmail.getDestinatario()); - mail.setEmailToCO(EMAIL_COPIA_OCULTA); - mail.send(); } private String getMensagem(LogHistoricoContingencia historicoContingencia) { StringBuilder mensagem = new StringBuilder(); - mensagem.append(String.format("A empresa %s está com a emissão do BP-e em contingência off-line para a UF %s no ambiente de %s. ", + mensagem.append(String.format("A empresa %s est� com a emiss�o do BP-e em conting�ncia off-line para a UF %s no ambiente de %s. ", historicoContingencia.getEmpresa().getNombempresa(), historicoContingencia.getEstado().getCveestado(), EAmbienteContingencia.getAmbienteContingencia(historicoContingencia.getAmbiente()).getDescricao())); - mensagem.append("A emissão em contingência deve ser tratada como exceção, sendo que a regra deve ser a emissão com autorização em tempo real."); - mensagem.append("O Fisco poderá solicitar esclarecimentos, e até mesmo restringir ao contribuinte a utilização da modalidade de contingência off-line, caso seja identificado que o emissor do BP-e utiliza a contingência em demasia e sem justificativa aceitável, quando comparado a outros contribuintes em situação similar."); - mensagem.append("Na utilização de contingência off-line, o contribuinte assume o risco de perda da informação dos "); - mensagem.append("BP-e emitidos em contingência, até que os mesmos constem da base de dados do Fisco."); + mensagem.append("A emiss�o em conting�ncia deve ser tratada como exce��o, sendo que a regra deve ser a emiss�o com autoriza��o em tempo real."); + mensagem.append("O Fisco poder� solicitar esclarecimentos, e at� mesmo restringir ao contribuinte a utiliza��o da modalidade de conting�ncia off-line, caso seja identificado que o emissor do BP-e utiliza a conting�ncia em demasia e sem justificativa aceit�vel, quando comparado a outros contribuintes em situa��o similar."); + mensagem.append("Na utiliza��o de conting�ncia off-line, o contribuinte assume o risco de perda da informa��o dos "); + mensagem.append("BP-e emitidos em conting�ncia, at� que os mesmos constem da base de dados do Fisco."); return mensagem.toString(); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 3e49f434d..f551b210c 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -1443,17 +1443,28 @@ public class CorridaServiceImpl implements CorridaService { try { while (DateUtil.compareOnlyDate(dataAte, dataInicial) >= 0) { - boolean corridaGerada = this.generarCorrida(dataAte, Arrays.asList(esquemaCorrida), false); - if (corridaGerada) { - calendarData.setTime(dataAte); - calendarData.add(Calendar.DATE, -1); - dataAte = calendarData.getTime(); - - } else { - log.info("Corrida do dia: " + sdfData.format(dataAte) + " já gerada"); + boolean corridaExiste = corridaDAO.existe(new Corrida.Id(esquemaCorrida.getNumCorrida(), dataAte)); + String strDataGeracao = DateUtil.getStringDate(dataAte); + + log.info(String.format("Corrida existe = %s [%s - %s]",corridaExiste,esquemaCorrida.getNumCorrida() ,strDataGeracao)); + + //A corrida já existir é a única condição para parar de gerar. + //Se a corrida não for gerada (rotina mais abaixo), podem haver várias condições: o dia da semana, feriado, etc + if (corridaExiste){ + log.info(String.format("Corrida % do dia % já gerada",esquemaCorrida.getNumCorrida(), strDataGeracao)); + break; } - + + + boolean corridaGerada = this.generarCorrida(dataAte, Arrays.asList(esquemaCorrida), false); + + log.info(String.format("Corrida gerada = %s [%s - %s]",corridaGerada,esquemaCorrida.getNumCorrida() ,strDataGeracao)); + + + calendarData.setTime(dataAte); + calendarData.add(Calendar.DATE, -1); + dataAte = calendarData.getTime(); } log.info("commit bloco corridas"); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/HistoricoFormaPagoPuntoVentaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/HistoricoFormaPagoPuntoVentaServiceImpl.java new file mode 100644 index 000000000..27ea05e1b --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/HistoricoFormaPagoPuntoVentaServiceImpl.java @@ -0,0 +1,75 @@ +/* + * 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.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.rjconsultores.ventaboletos.dao.HistoricoFormaPagoPuntoVentaDAO; +import com.rjconsultores.ventaboletos.entidad.HistoricoFormaPagoPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.service.HistoricoFormaPagoPuntoVentaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +/** + * + * @author Wallace + */ +@Service("historicoFormaPagoPuntoVentaService") +public class HistoricoFormaPagoPuntoVentaServiceImpl implements HistoricoFormaPagoPuntoVentaService { + + @Autowired + private HistoricoFormaPagoPuntoVentaDAO historicoFormaPagoPuntoVentaDAO; + + public List obtenerTodos() { + return historicoFormaPagoPuntoVentaDAO.obtenerTodos(); + } + + public HistoricoFormaPagoPuntoVenta obtenerID(Integer id) { + return historicoFormaPagoPuntoVentaDAO.obtenerID(id); + } + + @Transactional + public HistoricoFormaPagoPuntoVenta suscribir(HistoricoFormaPagoPuntoVenta entidad) { + + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + entidad.setIndInclusao(Boolean.TRUE); + entidad.setFecAlteracao(Calendar.getInstance().getTime()); + + return historicoFormaPagoPuntoVentaDAO.suscribir(entidad); + } + + @Transactional + public HistoricoFormaPagoPuntoVenta actualizacion(HistoricoFormaPagoPuntoVenta entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return historicoFormaPagoPuntoVentaDAO.actualizacion(entidad); + } + + @Transactional + public void borrar(HistoricoFormaPagoPuntoVenta entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.FALSE); + entidad.setIndInclusao(Boolean.FALSE); + entidad.setFecAlteracao(Calendar.getInstance().getTime()); + + historicoFormaPagoPuntoVentaDAO.actualizacion(entidad); + } + + @Override + public List obtenerTodosPorPuntoVenta(PuntoVenta puntoVenta) { + return historicoFormaPagoPuntoVentaDAO.obtenerTodosPorPuntoVenta(puntoVenta); + } + +} 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..0c75725a5 --- /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/PuntoVentaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/PuntoVentaServiceImpl.java index 798b8b03a..da64f2713 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/PuntoVentaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/PuntoVentaServiceImpl.java @@ -86,7 +86,7 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { @Autowired private LogAuditoriaService logAuditoriaService; - // FIXME : Remover esse método de quem está usando. Esse método carrega muitos dados + // FIXME : Remover esse m�todo de quem est� usando. Esse m�todo carrega muitos dados @Deprecated public List obtenerTodos() { return puntoVentaDAO.obtenerTodos(); @@ -114,13 +114,13 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { Constante constDesativaTotvs = constanteService.buscarPorNomeConstante("WS_TOTVS_DESATIVA_INTEGRACAO"); Boolean desativaTotvs = constDesativaTotvs != null && constDesativaTotvs.getValorconstante().equals("1"); - // Mantis 15739 - A integração AG deve ser acionada após a persistência dos dados com sucesso. - // Integração AG + // Mantis 15739 - A integra��o AG deve ser acionada ap�s a persist�ncia dos dados com sucesso. + // Integra��o AG /* - * Constante empresasIntegraAG = constanteService.buscarPorNomeConstante("EMPRESAS_INTEGRACAO_AG"); if (entidad.getStatusaprobacion().equals("A") && empresasIntegraAG != null && empresasIntegraAG.getValorconstante() != null && empresasIntegraAG.getValorconstante().contains(entidad.getEmpresa().getEmpresaId().toString())) { log.debug("iniciando integração com AG"); integraAG(entidad); log.debug("fim da integração com AG"); } + * Constante empresasIntegraAG = constanteService.buscarPorNomeConstante("EMPRESAS_INTEGRACAO_AG"); if (entidad.getStatusaprobacion().equals("A") && empresasIntegraAG != null && empresasIntegraAG.getValorconstante() != null && empresasIntegraAG.getValorconstante().contains(entidad.getEmpresa().getEmpresaId().toString())) { log.debug("iniciando integra��o com AG"); integraAG(entidad); log.debug("fim da integra��o com AG"); } */ - // Integração Totvs + // Integra��o Totvs if (!desativaTotvs){ if (ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.INTEGRACION_TOTVS.getDescricao())) { try { @@ -176,13 +176,13 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { logAuditoriaService.auditar(null, entidad, entidad.getEmpresa() != null ? entidad.getEmpresa().getEmpresaId() : null); - // Mantis 15739 - A integração AG deve ser acionada após a persistência dos dados com sucesso. - // Integração AG + // Mantis 15739 - A integra��o AG deve ser acionada ap�s a persist�ncia dos dados com sucesso. + // Integra��o AG Constante empresasIntegraAG = constanteService.buscarPorNomeConstante("EMPRESAS_INTEGRACAO_AG"); if (entidad.getStatusaprobacion().equals("A") && empresasIntegraAG != null && empresasIntegraAG.getValorconstante() != null && empresasIntegraAG.getValorconstante().contains(entidad.getEmpresa().getEmpresaId().toString())) { - log.debug("iniciando integração com AG"); + log.debug("iniciando integra��o com AG"); integraAG(entidad); - log.debug("fim da integração com AG"); + log.debug("fim da integra��o com AG"); } return entidad; @@ -214,7 +214,7 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { connection.close(); } } catch (SQLException e) { - log.error("error fechar conexão", e); + log.error("error fechar conex�o", e); throw new RuntimeException(e); } } @@ -236,9 +236,9 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { return; } if (!strFornecedor.contains("ERRO")){ - // retornar msg a informação de registro já cadastrado + // retornar msg a informa��o de registro j� cadastrado entidad.setIndIntegradoAG(false); - entidad.setMotivoNaoIntegradoAG("Fornecedor já cadastrado"); + entidad.setMotivoNaoIntegradoAG("Fornecedor j� cadastrado"); } else { fornecedor = new TFornecedor(); fornecedor.setNome(entidad.getRazonSocial()); @@ -307,9 +307,9 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { return; } if (!cliStr.contains("ERRO")) { - // retornar msg a informação de registro já cadastrado + // retornar msg a informa��o de registro j� cadastrado entidad.setIndIntegradoAG(false); - entidad.setMotivoNaoIntegradoAG("Cliente já cadastrado"); + entidad.setMotivoNaoIntegradoAG("Cliente j� cadastrado"); } else { cli = new TCliente(); cli.setCodigo(""); @@ -435,7 +435,7 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { PuntoVenta originalClone = null; try { originalClone = entidad.getCloneObject(); - if(entidad.getTitularId()!=null) { + if(entidad.getTitularId()!=null && originalClone != null) { originalClone.setTitularId(entidad.getTitularId().getCloneObject()); } } catch (Exception e) { @@ -449,13 +449,13 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { Constante constDesativaTotvs = constanteService.buscarPorNomeConstante("WS_TOTVS_DESATIVA_INTEGRACAO"); Boolean desativaTotvs = constDesativaTotvs != null && constDesativaTotvs.getValorconstante().equals("1"); - // Mantis 15739 - A integração AG deve ser acionada após a persistência dos dados com sucesso. - // Integração AG + // Mantis 15739 - A integra��o AG deve ser acionada ap�s a persist�ncia dos dados com sucesso. + // Integra��o AG /* - * Constante empresasIntegraAG = constanteService.buscarPorNomeConstante("EMPRESAS_INTEGRACAO_AG"); if ( entidad.getStatusaprobacion().equals("A") && empresasIntegraAG != null && empresasIntegraAG.getValorconstante() != null && empresasIntegraAG.getValorconstante().contains(entidad.getEmpresa().getEmpresaId().toString())) { log.debug("iniciando integração com AG"); integraAG(entidad); log.debug("fim da integração com AG"); } + * Constante empresasIntegraAG = constanteService.buscarPorNomeConstante("EMPRESAS_INTEGRACAO_AG"); if ( entidad.getStatusaprobacion().equals("A") && empresasIntegraAG != null && empresasIntegraAG.getValorconstante() != null && empresasIntegraAG.getValorconstante().contains(entidad.getEmpresa().getEmpresaId().toString())) { log.debug("iniciando integra��o com AG"); integraAG(entidad); log.debug("fim da integra��o com AG"); } */ - // Integração Totvs + // Integra��o Totvs if (!desativaTotvs){ if (ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.INTEGRACION_TOTVS.getDescricao())) { @@ -510,13 +510,13 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { } } - // Mantis 15739 - A integração AG deve ser acionada após a persistência dos dados com sucesso. - // Integração AG + // Mantis 15739 - A integra��o AG deve ser acionada ap�s a persist�ncia dos dados com sucesso. + // Integra��o AG Constante empresasIntegraAG = constanteService.buscarPorNomeConstante("EMPRESAS_INTEGRACAO_AG"); if (entidad.getStatusaprobacion().equals("A") && empresasIntegraAG != null && empresasIntegraAG.getValorconstante() != null && empresasIntegraAG.getValorconstante().contains(entidad.getEmpresa().getEmpresaId().toString())) { - log.debug("iniciando integração com AG"); + log.debug("iniciando integra��o com AG"); integraAG(entidad); - log.debug("fim da integração com AG"); + log.debug("fim da integra��o com AG"); } return entidad; @@ -765,7 +765,7 @@ public class PuntoVentaServiceImpl implements PuntoVentaService { String contrib = ContribuinteICMS.NAO.getValor(); String entid = TipoEntidade.TRANSPORTE_PASSAGEIRO.getValor(); - String pais = "";// segundo orientação da TOTVS, passar em branco + String pais = "";// segundo orienta��o da TOTVS, passar em branco try { resp = TotvsService.cadastrarCliente(endpointCliente, bairro, cep, cgc, codmun, codpais, complemen, contaCliente, contrib, ddd, email, cnpjEmpresaProtheus, diff --git a/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java index bbbf59375..8317b6cde 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java @@ -675,12 +675,17 @@ public class RutaServiceImpl implements RutaService { @Override public List buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje){ - return rutaDAO.buscarPorOrgaoEcasetaPeaje(orgao,listCasetaPeaje); + return buscarPorOrgaoEcasetaPeaje(orgao,listCasetaPeaje,null); } @Override public List buscarRutasPorEmpresaOrgaoConcedenteParadaIds(Empresa empresa, OrgaoConcedente orgao, Integer[] lsParadaIds) { return rutaDAO.buscarRutasPorEmpresaOrgaoConcedenteParadaIds(empresa,orgao,lsParadaIds); } + + @Override + public List buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje, Empresa empresa){ + return rutaDAO.buscarPorOrgaoEcasetaPeaje(orgao,listCasetaPeaje,empresa); + } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/SapServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/SapServiceImpl.java index a72eab0db..f743ca86f 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/SapServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/SapServiceImpl.java @@ -15,6 +15,7 @@ import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.FechamentoCntcorrente; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.enums.StatusIntegracaoSap; import com.rjconsultores.ventaboletos.rest.IntegracaoSapRest; import com.rjconsultores.ventaboletos.service.SapService; import com.rjconsultores.ventaboletos.utilerias.DateUtil; @@ -25,8 +26,6 @@ public class SapServiceImpl implements SapService{ private static final String INTEGRACAO_SAP_URL = "INTEGRACAO_SAP_URL"; private static final String INTEGRACAO_SAP_CREDENCIAL = "INTEGRACAO_SAP_CREDENCIAL"; - private static final int INTEGRACAO_SAP_OK = 1; - private static final int INTEGRACAO_SAP_ERRO = 2; private static Logger log = Logger.getLogger(SapServiceImpl.class); @Autowired @@ -65,17 +64,17 @@ public class SapServiceImpl implements SapService{ } @Override - public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) { - return sapDAO.obtenerTodosParaRemessa(empresa, dataDe, dataAte, reenviar, null); + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status) { + return sapDAO.obtenerTodosParaRemessa(empresa, dataDe, dataAte, status, null); } @Override - public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar, PuntoVenta puntoVenta) { - return sapDAO.obtenerTodosParaRemessa(empresa, dataDe, dataAte, reenviar, puntoVenta); + public List obtenerTodosParaRemessa(Empresa empresa, Date dataDe, Date dataAte, String status, PuntoVenta puntoVenta) { + return sapDAO.obtenerTodosParaRemessa(empresa, dataDe, dataAte, status, puntoVenta); } - + @Override - public int remessa(List fechamentos) throws Exception { + public int remessa(List fechamentos, boolean processoManual) throws Exception { try { int contador = 0; IntegracaoSapRest integracaoSapRest = IntegracaoSapRest.getInstance(); @@ -87,16 +86,20 @@ public class SapServiceImpl implements SapService{ JSONObject integrado = integracaoSapRest.enviarIntegracaoSap(fechamentoCntcorrente, url, credenciais); if(integrado == null) { - atualizaFechamento(fechamentoCntcorrente.getFechamentocntcorrenteId(), INTEGRACAO_SAP_ERRO); - log.error("Erro no envio/retorno da requisicao para integra��o SAP do fechamentoID: "+fechamentoCntcorrente.getFechamentocntcorrenteId()); - throw new RuntimeException("Erro no envio/retorno da requisicao para integração SAP do fechamentoID: "+fechamentoCntcorrente.getFechamentocntcorrenteId()); + atualizaFechamento(fechamentoCntcorrente.getFechamentocntcorrenteId(), StatusIntegracaoSap.NAO_ENVIADO.ordinal()); + log.error("Erro no envio/retorno da requisicao para integracao SAP do fechamentoID: "+fechamentoCntcorrente.getFechamentocntcorrenteId()); + if(processoManual) { + throw new RuntimeException("Erro no envio/retorno da requisicao para integracao SAP do fechamentoID: "+fechamentoCntcorrente.getFechamentocntcorrenteId()); + } }else if(integrado.getString("Integration").equals("S")) { - atualizaFechamento(fechamentoCntcorrente.getFechamentocntcorrenteId(), INTEGRACAO_SAP_OK); + atualizaFechamento(fechamentoCntcorrente.getFechamentocntcorrenteId(), StatusIntegracaoSap.INTEGRADO.ordinal()); contador++; }else if(integrado.getString("Integration").equals("E")) { - atualizaFechamento(fechamentoCntcorrente.getFechamentocntcorrenteId(), INTEGRACAO_SAP_ERRO); + atualizaFechamento(fechamentoCntcorrente.getFechamentocntcorrenteId(), StatusIntegracaoSap.RECUSADO.ordinal()); log.warn("Retorno enviado pelo SAP: \r\n"+integrado.getString("Message")); - throw new RuntimeException("Fechamento: "+fechamentoCntcorrente.getFechamentocntcorrenteId()+"\r\nRetorno enviado pelo SAP: \r\n"+integrado.getString("Message")); + if(processoManual) { + throw new RuntimeException("Fechamento: "+fechamentoCntcorrente.getFechamentocntcorrenteId()+"\r\nRetorno enviado pelo SAP: \r\n"+integrado.getString("Message")); + } } } } @@ -125,18 +128,18 @@ public class SapServiceImpl implements SapService{ @Override public void integracaoSapAutomatica() throws Exception { - List listaPendente = obtenerTodosParaRemessa(null, DateUtil.getYesterdayDate(), new Date(), false); + List listaPendente = obtenerTodosParaRemessa(null, DateUtil.getYesterdayDate(), new Date(), "2"); while(!listaPendente.isEmpty()) { log.info("IntegracaoSap: Registro a enviar:"+listaPendente.size()); try { - remessa(listaPendente); + remessa(listaPendente, false); } catch (Exception e) { throw e; } - listaPendente = obtenerTodosParaRemessa(null, DateUtil.getYesterdayDate(), new Date(), false); + listaPendente = obtenerTodosParaRemessa(null, DateUtil.getYesterdayDate(), new Date(), "2"); } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java index e62ed15be..be5891be0 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,11 +56,15 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Autowired private LogAuditoriaService logAuditoriaService; + + + @Autowired + private PeajeService peajeService; @Override @Transactional - public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas) { - return tarifaOficialDAO.gerarTarifaPorCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedente, idsEmpresas); + public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas,Integer[] lsCasetaPeaje) { + return tarifaOficialDAO.gerarTarifaPorCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedente, idsEmpresas,lsCasetaPeaje ); } @Override @@ -69,7 +82,7 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Override @Transactional(rollbackFor = BusinessException.class) - public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedente, List lsEmpresaSelected) throws BusinessException { + public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedente, List lsEmpresaSelected, Integer[] lsCasetaPeaje) throws BusinessException { // Limpando a tabela de TARIFA_OFICIAL tarifaOficialDAO.limparTarifasOficiais(lsEmpresaSelected); @@ -96,7 +109,7 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { // Gerando as tarifas pelo coeficiente if (orgaoConcedente == null || (orgaoConcedente.getOrgaoConcedenteId() == null || orgaoConcedente.getOrgaoConcedenteId() != OrgaoConcedente.CODIGO_ARTESP)) { - Integer qtdTarifaCoeficiente = gerarTarifaPorCoeficiente(rutaId, orgaoConcedente, idsEmpresas); + Integer qtdTarifaCoeficiente = gerarTarifaPorCoeficiente(rutaId, orgaoConcedente, idsEmpresas,lsCasetaPeaje); log.info("qtdTarifaCoeficiente=" + qtdTarifaCoeficiente); } @@ -340,5 +353,115 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { } return lsTarifa; } + + + public void atualizarPedagioPorListaDePracaDePagio(List lsCasetaPeaje,Integer empresaId) { + try { + List lsTarifaOficialComComposicaoDoPedagioVo = tarifaOficialDAO.oberTarifaOficialComComposicaoDoPedagioVo(empresaId); + + 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().setScale(2,RoundingMode.HALF_UP)); + + } + return valorPedagio.setScale(2,RoundingMode.HALF_UP); + + } + + 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) { + BigDecimal valorPedagio = new BigDecimal("0.0"); + + valorPedagio=valorPedagio.add(new BigDecimal("100.005")); + System.out.println(valorPedagio.setScale(2,RoundingMode.HALF_UP)); + } } diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java b/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java index cb5c27e79..2671dfdd4 100644 --- a/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/BoletoComissao.java @@ -845,12 +845,8 @@ public class BoletoComissao { if(isVendaGap(getTipoVenta()) && !isStatusEntregue()) { return false; } - - if(isVendaBilheteTransferencia(getTipoVenta())) { - return false; - } - - return isStatusVendido() || isStatusTroca() || isStatusEntregue(); + + return isStatusVendido() || isStatusTroca() || isStatusEntregue() || isVendaBilheteTransferencia(getTipoVenta()); } public boolean isQuitacaoOCD() { if(getMotivoCancelacionId() != null){ 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..8545b69f9 --- /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; + } + + + +} diff --git a/src/com/rjconsultores/ventaboletos/vo/integracao/FechamentoCntCorrenteVO.java b/src/com/rjconsultores/ventaboletos/vo/integracao/FechamentoCntCorrenteVO.java index 8996cae45..782f93436 100644 --- a/src/com/rjconsultores/ventaboletos/vo/integracao/FechamentoCntCorrenteVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/integracao/FechamentoCntCorrenteVO.java @@ -2,6 +2,8 @@ package com.rjconsultores.ventaboletos.vo.integracao; import java.math.BigDecimal; +import com.rjconsultores.ventaboletos.enums.StatusIntegracaoSap; + public class FechamentoCntCorrenteVO { public FechamentoCntCorrenteVO() { @@ -21,10 +23,10 @@ public class FechamentoCntCorrenteVO { private Integer empresaId; private String nombEmpresa; private String ufEmpresa; - private Boolean integradoSap; + private StatusIntegracaoSap integradoSap; private boolean enviar; - public FechamentoCntCorrenteVO(Long fechamentocntcorrenteId, String fecfechamento, String feclancamento, String anofechamento, String mesfechamento, BigDecimal total, String nombpuntoventa, String cnpjPuntoVenta, Integer empresaId, String nombEmpresa, String ufEmpresa, Boolean integradoSap) { + public FechamentoCntCorrenteVO(Long fechamentocntcorrenteId, String fecfechamento, String feclancamento, String anofechamento, String mesfechamento, BigDecimal total, String nombpuntoventa, String cnpjPuntoVenta, Integer empresaId, String nombEmpresa, String ufEmpresa, StatusIntegracaoSap integradoSap) { super(); this.fechamentocntcorrenteId = fechamentocntcorrenteId; this.fecfechamento = fecfechamento; @@ -104,11 +106,11 @@ public class FechamentoCntCorrenteVO { this.ufEmpresa = ufEmpresa; } - public boolean isIntegradoSap() { - return Boolean.TRUE.equals(integradoSap); + public StatusIntegracaoSap getIntegradoSap() { + return integradoSap; } - public void setIntegradoSap(boolean integradoSap) { + public void setIntegradoSap(StatusIntegracaoSap integradoSap) { this.integradoSap = integradoSap; }