diff --git a/src/com/rjconsultores/ventaboletos/constantes/ConstantesFuncionSistema.java b/src/com/rjconsultores/ventaboletos/constantes/ConstantesFuncionSistema.java index 10f8b3056..6dbf1f37b 100644 --- a/src/com/rjconsultores/ventaboletos/constantes/ConstantesFuncionSistema.java +++ b/src/com/rjconsultores/ventaboletos/constantes/ConstantesFuncionSistema.java @@ -30,5 +30,6 @@ public class ConstantesFuncionSistema { public static final String CLAVE_ESTOQUE_W2I = "COM.RJCONSULTORES.ADMINISTRACION.GUI.ESQUEMAOPERACIONAL.ESTOQUEW2I"; public static final String CLAVE_UPLOAD_ARQUIVO_CONFIGURACAO = "COM.RJCONSULTORES.ADMINISTRACION.GUI.SEGURIDAD.CUSTOMSISTEMA.UPLOADARQUIVOCONFIGURACAO"; public static final String CLAVE_OPERADORES_DISPOSITIVO_VENDA_EMBARCADA = "COM.RJCONSULTORES.ADMINISTRACION.GUI.ESQUEMAOPERACIONAL.MENU.CONFVENDAEMBARCADA.OPERADORESDISP"; - + public static final String CLAVE_MANUTENCAO_FLEXBUS = "COM.RJCONSULTORES.ADMINISTRACION.GUI.ESQUEMAOPERACIONAL.MENU.FLEXBUS"; + } diff --git a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java index 84fe8bf93..7a430afd4 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java @@ -104,4 +104,6 @@ public interface CorridaDAO extends GenericDAO { public List buscarListaPorIds(List corridaIds); public CorridaVO buscarVOPorId(Id corridaId); + + public Integer buscarOcupacaoCorrida(Corrida corrida); } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/dao/EmpresaEmailFlexBusDAO.java b/src/com/rjconsultores/ventaboletos/dao/EmpresaEmailFlexBusDAO.java new file mode 100644 index 000000000..78422f6e2 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/EmpresaEmailFlexBusDAO.java @@ -0,0 +1,14 @@ +package com.rjconsultores.ventaboletos.dao; + +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.EmpresaEmailFlexBus; + +public interface EmpresaEmailFlexBusDAO extends GenericDAO { + + public List obtenerTodos(); + + public EmpresaEmailFlexBus buscarPorEmpresa(Empresa empresa); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java index 6292952e9..2df11669c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java @@ -1066,5 +1066,35 @@ public class CorridaHibernateDAO extends GenericHibernateDAO + implements EmpresaEmailFlexBusDAO { + + @Autowired + public EmpresaEmailFlexBusHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + + @SuppressWarnings("unchecked") + @Override + public List obtenerTodos() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return c.list(); + } + + @Override + public EmpresaEmailFlexBus buscarPorEmpresa(Empresa empresa) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("empresa", empresa)); + + return (EmpresaEmailFlexBus) c.uniqueResult(); + } +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/Corrida.java b/src/com/rjconsultores/ventaboletos/entidad/Corrida.java index db254ff44..22e313fd3 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Corrida.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Corrida.java @@ -216,6 +216,24 @@ public class Corrida implements Serializable { @Column(name = "INFOCORRIDA") private String infoCorrida; + + @Column(name = "ISFLEXBUS") + private Boolean isFlexBus; + + @Column(name = "STATUSFLEXBUS") + private Integer statusFlexBus; + + @Column(name = "OCUPACAO_MINIMA") + private Integer ocupacaoMinima; + + @Column(name = "HORAS_CONFIRMACAO") + private Integer horasParaConfirmacao; + + @Column(name = "MINUTOS_CONFIRMACAO") + private Integer minutosParaConfirmacao; + + @Column(name = "USUARIOFLEXBUS_ID") + private Integer usuarioFlexBusId; public String getIndTipoVenta() { return indTipoVenta; @@ -540,4 +558,52 @@ public class Corrida implements Serializable { public String toString() { return id.toString(); } + + public Boolean getIsFlexBus() { + return isFlexBus == null ? false : isFlexBus; + } + + public void setIsFlexBus(Boolean isFlexBus) { + this.isFlexBus = isFlexBus; + } + + public Integer getHorasParaConfirmacao() { + return horasParaConfirmacao == null ? 0 : horasParaConfirmacao; + } + + public void setHorasParaConfirmacao(Integer horasParaConfirmacao) { + this.horasParaConfirmacao = horasParaConfirmacao; + } + + public Integer getMinutosParaConfirmacao() { + return minutosParaConfirmacao == null ? 0 : minutosParaConfirmacao; + } + + public void setMinutosParaConfirmacao(Integer minutosParaConfirmacao) { + this.minutosParaConfirmacao = minutosParaConfirmacao; + } + + public Integer getOcupacaoMinima() { + return ocupacaoMinima == null ? 0 : ocupacaoMinima; + } + + public void setOcupacaoMinima(Integer ocupacaoMinima) { + this.ocupacaoMinima = ocupacaoMinima; + } + + public Integer getStatusFlexBus() { + return statusFlexBus; + } + + public void setStatusFlexBus(Integer statusFlexBus) { + this.statusFlexBus = statusFlexBus; + } + + public Integer getUsuarioFlexBusId() { + return usuarioFlexBusId; + } + + public void setUsuarioFlexBusId(Integer usuarioFlexBusId) { + this.usuarioFlexBusId = usuarioFlexBusId; + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailFlexBus.java b/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailFlexBus.java new file mode 100644 index 000000000..450e370f8 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailFlexBus.java @@ -0,0 +1,221 @@ +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.OneToOne; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import org.apache.commons.lang.BooleanUtils; + +@Entity +@SequenceGenerator(name = "EMP_EMAIL_FLEXBUS_SEQ", sequenceName = "EMP_EMAIL_FLEXBUS_SEQ", allocationSize = 1) +@Table(name = "EMPRESA_EMAIL_FLEXBUS") +public class EmpresaEmailFlexBus implements Serializable { + + private static final long serialVersionUID = 1L; + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "EMP_EMAIL_FLEXBUS_SEQ") + @Column(name = "EMPRESAEMAILFLEXBUS_ID") + private Integer empresaEmailFlexBusId; + + @Column(name = "SMTP") + private String smtp; + + @Column(name = "SENHA") + private String senha; + + @Column(name = "SMTPPORTA") + private String smtpPorta; + + @Column(name = "SMTPEMAIL") + private String smtpEmail; + + @OneToOne + @JoinColumn(name = "EMPRESA_ID") + private Empresa empresa; + + @Column(name = "ACTIVO") + private Boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + @Column(name = "INDAUTENTICACAO") + private Boolean indAutenticacao; + + @Column(name = "TEXTOEMAIL") + private String textoEmail; + + @Column(name = "ASSUNTO") + private String assunto; + + @Column(name = "EMAILDE") + private String emailDe; + + @Column(name = "EMAILCOPIAOCULTA") + private String emailCopiaOculta; + + public EmpresaEmailFlexBus() { + + } + + public Integer getEmpresaEmailFlexBusId() { + return empresaEmailFlexBusId; + } + + public void setEmpresaEmailFlexBusId(Integer empresaEmailFlexBusId) { + this.empresaEmailFlexBusId = empresaEmailFlexBusId; + } + + public String getSmtp() { + return smtp; + } + + public void setSmtp(String smtp) { + this.smtp = smtp; + } + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSmtpPorta() { + return smtpPorta; + } + + public void setSmtpPorta(String smtpPorta) { + this.smtpPorta = smtpPorta; + } + + public String getSmtpEmail() { + return smtpEmail; + } + + public void setSmtpEmail(String smtpEmail) { + this.smtpEmail = smtpEmail; + } + + public Empresa getEmpresa() { + return empresa; + } + + public void setEmpresa(Empresa empresa) { + this.empresa = empresa; + } + + 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 Boolean getIndAutenticacao() { + return BooleanUtils.toBooleanDefaultIfNull(indAutenticacao, true) ; + } + + public void setIndAutenticacao(Boolean indAutenticacao) { + this.indAutenticacao = indAutenticacao; + } + + public String getTextoEmail() { + return textoEmail; + } + + public void setTextoEmail(String textoEmail) { + this.textoEmail = textoEmail; + } + + public String getAssunto() { + return assunto; + } + + public void setAssunto(String assunto) { + this.assunto = assunto; + } + + public String getEmailDe() { + return emailDe; + } + + public void setEmailDe(String emailDe) { + this.emailDe = emailDe; + } + + public String getEmailCopiaOculta() { + return emailCopiaOculta; + } + + public void setEmailCopiaOculta(String emailCopiaOculta) { + this.emailCopiaOculta = emailCopiaOculta; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((empresaEmailFlexBusId == null) ? 0 : empresaEmailFlexBusId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + EmpresaEmailFlexBus other = (EmpresaEmailFlexBus) obj; + if (empresaEmailFlexBusId == null) { + if (other.empresaEmailFlexBusId != null) + return false; + } else if (!empresaEmailFlexBusId.equals(other.empresaEmailFlexBusId)) + return false; + return true; + } + + @Override + public String toString() { + return String.valueOf(this.getEmpresaEmailFlexBusId()); + } + +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java b/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java index ce226cebe..809d44ac1 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java +++ b/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java @@ -191,6 +191,18 @@ public class EsquemaCorrida implements Serializable, Auditavel { @NaoAuditar private EsquemaCorrida esquemaCorridaClone; + @Column(name = "ISFLEXBUS") + private Boolean isFlexBus; + + @Column(name = "OCUPACAO_MINIMA") + private Integer ocupacaoMinima; + + @Column(name = "HORAS_CONFIRMACAO") + private Integer horasParaConfirmacao; + + @Column(name = "MINUTOS_CONFIRMACAO") + private Integer minutosParaConfirmacao; + public enum GerarFeriado { // Declaração dos enum GERARSEMPRE("GERAR SEMPRE", "S"), @@ -769,4 +781,38 @@ public class EsquemaCorrida implements Serializable, Auditavel { public void setNumCorridaPisoExtra2(Integer numCorridaPisoExtra2) { this.numCorridaPisoExtra2 = numCorridaPisoExtra2; } + + public Boolean getIsFlexBus() { + return isFlexBus == null ? false : isFlexBus; + } + + public void setIsFlexBus(Boolean isFlexBus) { + this.isFlexBus = isFlexBus; + } + + public Integer getHorasParaConfirmacao() { + return horasParaConfirmacao == null ? 0 : horasParaConfirmacao; + } + + public void setHorasParaConfirmacao(Integer horasParaConfirmacao) { + this.horasParaConfirmacao = horasParaConfirmacao; + } + + public Integer getMinutosParaConfirmacao() { + return minutosParaConfirmacao == null ? 0 : minutosParaConfirmacao; + } + + public void setMinutosParaConfirmacao(Integer minutosParaConfirmacao) { + this.minutosParaConfirmacao = minutosParaConfirmacao; + } + + public Integer getOcupacaoMinima() { + return ocupacaoMinima == null ? 0 : ocupacaoMinima; + } + + public void setOcupacaoMinima(Integer ocupacaoMinima) { + this.ocupacaoMinima = ocupacaoMinima; + } + + } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java index f51b0dd61..1891a5803 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java +++ b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java @@ -258,6 +258,9 @@ public class PuntoVenta implements Serializable { @Column(name = "INDBLOQDEVOLVEREATIVAOUTROPTO") private Boolean indBloqDevolveReativaOutroPto; + @Column(name = "INDRESERVAFLEXBUS") + private Boolean indReservaFlexBus; + public List getCobrancaAdicionalList() { return cobrancaAdicionalList; } @@ -1161,5 +1164,13 @@ public class PuntoVenta implements Serializable { public void setIndBloqDevolveReativaOutroPto(Boolean indBloqDevolveReativaOutroPto) { this.indBloqDevolveReativaOutroPto = indBloqDevolveReativaOutroPto; - } + } + + public Boolean getIndReservaFlexBus() { + return indReservaFlexBus == null ? false : indReservaFlexBus; + } + + public void setIndReservaFlexBus(Boolean indReservaFlexBus) { + this.indReservaFlexBus = indReservaFlexBus; + } } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/enums/StatusFlexBus.java b/src/com/rjconsultores/ventaboletos/enums/StatusFlexBus.java new file mode 100644 index 000000000..06e79cbed --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enums/StatusFlexBus.java @@ -0,0 +1,62 @@ +package com.rjconsultores.ventaboletos.enums; + +/** + * @author Valdir Cordeiro + * + */ +public enum StatusFlexBus { + + EM_RESERVA(0, "EM RESERVA"), + CONFIRMADO_AUTOMATICAMENTE(1, "CONFIRMADO AUTOMATICAMENTE"), + CONFIRMADO_MANUALMENTE(2, "CONFIRMADO MANUALMENTE"), + CANCELADO_AUTOMATICAMENTE( 3, "CANCELADO AUTOMATICAMENTE"), + CANCELADO_MANUALMENTE(4, "CANCELADO MANUALMENTE"); + + private Integer status; + private String descricao; + + private StatusFlexBus(Integer status, String descricao) { + this.descricao = descricao; + this.status = status; + } + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public static String buscarStatus(Integer id) { + for (StatusFlexBus status : StatusFlexBus.values()) { + if (status.getStatus() == id) { + return status.getDescricao(); + } + } + return null; + } + + public static StatusFlexBus buscarPorStatus(Integer id) { + for (StatusFlexBus status : StatusFlexBus.values()) { + if (status.getStatus() == id) { + return status; + } + } + return null; + } + + @Override + public String toString() { + return descricao; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/service/CorridaService.java b/src/com/rjconsultores/ventaboletos/service/CorridaService.java index 447b0b0f0..34b8f0ccd 100644 --- a/src/com/rjconsultores/ventaboletos/service/CorridaService.java +++ b/src/com/rjconsultores/ventaboletos/service/CorridaService.java @@ -79,4 +79,5 @@ public interface CorridaService extends GenericService { public Boolean existeCorrida(Long id); + public Integer buscarOcupacaoCorrida(Corrida corrida); } diff --git a/src/com/rjconsultores/ventaboletos/service/EmpresaEmailFlexBusService.java b/src/com/rjconsultores/ventaboletos/service/EmpresaEmailFlexBusService.java new file mode 100644 index 000000000..3358b8cfe --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/EmpresaEmailFlexBusService.java @@ -0,0 +1,10 @@ +package com.rjconsultores.ventaboletos.service; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.EmpresaEmailFlexBus; + +public interface EmpresaEmailFlexBusService extends GenericService { + + public EmpresaEmailFlexBus buscarPorEmpresa(Empresa empresa); + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 6e0944cd0..a4d01870c 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -50,6 +50,7 @@ import com.rjconsultores.ventaboletos.entidad.RutaSecuencia; import com.rjconsultores.ventaboletos.entidad.Tramo; import com.rjconsultores.ventaboletos.entidad.TramoServicio; import com.rjconsultores.ventaboletos.entidad.TramoTiempo; +import com.rjconsultores.ventaboletos.enums.StatusFlexBus; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.AsientoExclusivoService; import com.rjconsultores.ventaboletos.service.ConstanteService; @@ -586,6 +587,15 @@ public class CorridaServiceImpl implements CorridaService { return null; } corrida.setDestino(destino); + + if(esquemaCorrida.getIsFlexBus()) { + corrida.setOcupacaoMinima(esquemaCorrida.getOcupacaoMinima()); + corrida.setHorasParaConfirmacao(esquemaCorrida.getHorasParaConfirmacao()); + corrida.setMinutosParaConfirmacao(esquemaCorrida.getMinutosParaConfirmacao()); + corrida.setIsFlexBus(Boolean.TRUE); + + corrida.setStatusFlexBus(StatusFlexBus.EM_RESERVA.getStatus()); + } for (EsquemaTramo esquemaTramo : lsEsquemaTramo) { @@ -1370,4 +1380,7 @@ public class CorridaServiceImpl implements CorridaService { return true; } + public Integer buscarOcupacaoCorrida(Corrida corrida) { + return corridaDAO.buscarOcupacaoCorrida(corrida); + } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/EmpresaEmailFlexBusServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/EmpresaEmailFlexBusServiceImpl.java new file mode 100644 index 000000000..0f1acbebc --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/EmpresaEmailFlexBusServiceImpl.java @@ -0,0 +1,68 @@ +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.EmpresaEmailFlexBusDAO; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.EmpresaEmailFlexBus; +import com.rjconsultores.ventaboletos.service.EmpresaEmailFlexBusService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("empresaEmailFlexBUsService") +public class EmpresaEmailFlexBusServiceImpl implements EmpresaEmailFlexBusService { + + @Autowired + private EmpresaEmailFlexBusDAO empresaEmailDAO; + + @Override + public List obtenerTodos() { + return empresaEmailDAO.obtenerTodos(); + } + + @Override + public EmpresaEmailFlexBus obtenerID(Integer id) { + return empresaEmailDAO.obtenerID(id); + } + + @Override + @Transactional + public EmpresaEmailFlexBus suscribir(EmpresaEmailFlexBus entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return empresaEmailDAO.suscribir(entidad); + } + + @Override + @Transactional + public EmpresaEmailFlexBus actualizacion(EmpresaEmailFlexBus entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return empresaEmailDAO.actualizacion(entidad); + } + + @Override + @Transactional + public void borrar(EmpresaEmailFlexBus entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.FALSE); + + empresaEmailDAO.actualizacion(entidad); + + } + + @Override + public EmpresaEmailFlexBus buscarPorEmpresa(Empresa empresa) { + return empresaEmailDAO.buscarPorEmpresa(empresa); + } + +}