diff --git a/src/com/rjconsultores/ventaboletos/dao/CobrancaAdcPuntoVentaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CobrancaAdcPuntoVentaDAO.java new file mode 100644 index 000000000..9fd992066 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/CobrancaAdcPuntoVentaDAO.java @@ -0,0 +1,16 @@ +package com.rjconsultores.ventaboletos.dao; + +import java.util.Date; +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.CobrancaAdcPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.CobrancaAdicionalHistorico; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; + +public interface CobrancaAdcPuntoVentaDAO extends GenericDAO { + + List buscaHistoricoCobranca(CobrancaAdcPuntoVenta cobranca, Date dataInicial, Date dataFinal); + + List buscarTodasAsCobrancas(PuntoVenta puntoVenta); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CobrancaAdcPuntoVentaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CobrancaAdcPuntoVentaHibernateDAO.java new file mode 100644 index 000000000..f0fdb3f80 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CobrancaAdcPuntoVentaHibernateDAO.java @@ -0,0 +1,82 @@ +package com.rjconsultores.ventaboletos.dao.hibernate; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +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.CobrancaAdcPuntoVentaDAO; +import com.rjconsultores.ventaboletos.entidad.CobrancaAdcPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.CobrancaAdicionalHistorico; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; + +@Repository("cobrancaAdcPuntoVentaHibernateDAO") +public class CobrancaAdcPuntoVentaHibernateDAO extends GenericHibernateDAO implements CobrancaAdcPuntoVentaDAO { + + @Autowired + public CobrancaAdcPuntoVentaHibernateDAO( + @Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + + @Override + @SuppressWarnings("unchecked") + public List buscaHistoricoCobranca(CobrancaAdcPuntoVenta cobranca, Date dataInicial, Date dataFinal) { + List cobrancaHistorico = new ArrayList(); + + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT ") + .append(" h ") + .append("FROM ") + .append(" CobrancaAdicionalHistorico h ") + .append("WHERE ") + .append(" h.cobrancaAdicional.cobrancaAddPuntoVenta_id = :cobrancaAdicionalId and ") + .append(" h.dataRegistro between :dataInicial and :dataFinal ") + .append("ORDER BY ") + .append(" h.cobrancaAdicionalHistoricoID "); + + Query qr = getSession().createQuery(sQuery.toString()); + + qr.setParameter("dataInicial", dataInicial); + qr.setParameter("dataFinal", dataFinal); + qr.setParameter("cobrancaAdicionalId", cobranca == null ? 0 : cobranca.getCobrancaAddPuntoVenta_id()); + + cobrancaHistorico = qr.list(); + + return cobrancaHistorico; + } + + @Override + @SuppressWarnings("unchecked") + public List buscarTodasAsCobrancas(PuntoVenta puntoVenta) { + + if (puntoVenta == null) + return null; + + List cobrancaAdcList = new ArrayList(); + + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT ") + .append(" h ") + .append("FROM ") + .append(" CobrancaAdcPuntoVenta h ") + .append("WHERE ") + .append(" h.puntoVenta.puntoventaId = :puntoVentaId ") + .append("ORDER BY ") + .append(" h.cobrancaAddPuntoVenta_id "); + + Query qr = getSession().createQuery(sQuery.toString()); + + qr.setParameter("puntoVentaId", puntoVenta.getPuntoventaId()); + + cobrancaAdcList = qr.list(); + + return cobrancaAdcList; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/CobrancaAdcPuntoVenta.java b/src/com/rjconsultores/ventaboletos/entidad/CobrancaAdcPuntoVenta.java new file mode 100644 index 000000000..7d0d4b9e1 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/CobrancaAdcPuntoVenta.java @@ -0,0 +1,319 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.io.Serializable; +import java.math.BigDecimal; +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.OneToOne; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * @author vjcor + * + */ +@Entity +@SequenceGenerator(name = "COBRANCA_ADC_SEQ", sequenceName = "COBRANCA_ADC_SEQ", allocationSize = 1) +@Table(name = "COBRANCA_ADC_PUNTO_VENTA") +public class CobrancaAdcPuntoVenta implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "COBRANCA_ADC_SEQ") + @Column(name = "COBRANCAADDPUNTOVENTA_ID") + private Integer cobrancaAddPuntoVenta_id; + + @JoinColumn(name = "PUNTOVENTA_ID") + @ManyToOne + private PuntoVenta puntoVenta; + + @Column(name = "DESCRICAO") + private String descricao; + + @Column(name = "VALOR") + private BigDecimal valor; + + @OneToOne + @JoinColumn(name = "EMPRESA_ID") + private Empresa empresa; + + @Column(name = "DIARIO") + private Boolean diario; + + @Column(name = "SEMANAL") + private Boolean semanal; + + @Column(name = "MENSAL") + private Boolean mensal; + + @Column(name = "SEGUNDA") + private Boolean segunda; + + @Column(name = "TERCA") + private Boolean terca; + + @Column(name = "QUARTA") + private Boolean quarta; + + @Column(name = "QUINTA") + private Boolean quinta; + + @Column(name = "SEXTA") + private Boolean sexta; + + @Column(name = "PRIMEIRO_DIA_UTIL") + private Boolean primeiroDiaUtil; + + @Column(name = "ULTIMO_DIA_UTIL") + private Boolean ultimoDiaUtil; + + @Column(name = "DESCONTO_PROXIMO_CICLO") + private Boolean descontarProximoCiclo; + + @Column(name = "DESCONTO_PROXIMO_DIA") + private Boolean descontarProximoDia; + + @Column(name = "DATAINICIAL") + @Temporal(TemporalType.TIMESTAMP) + private Date dataInicial; + + @Column(name = "DATAFINAL") + @Temporal(TemporalType.TIMESTAMP) + private Date dataFinal; + + @Column(name = "ACTIVO") + private Boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + private Boolean getBoolean(Boolean valor) { + return valor == null ? false : valor; + } + + public Integer getUsuarioId() { + return usuarioId; + } + + + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } + + + public Integer getCobrancaAddPuntoVenta_id() { + return cobrancaAddPuntoVenta_id; + } + + public void setCobrancaAddPuntoVenta_id(Integer cobrancaAddPuntoVenta_id) { + this.cobrancaAddPuntoVenta_id = cobrancaAddPuntoVenta_id; + } + + public PuntoVenta getPuntoVenta() { + return puntoVenta; + } + + public void setPuntoVenta(PuntoVenta puntoVenta) { + this.puntoVenta = puntoVenta; + } + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Empresa getEmpresa() { + return empresa; + } + + public void setEmpresa(Empresa empresa) { + this.empresa = empresa; + } + + public Boolean getDiario() { + return getBoolean(diario); + } + + public void setDiario(Boolean diario) { + this.diario = diario; + } + + public Boolean getSemanal() { + return getBoolean(semanal); + } + + public void setSemanal(Boolean semanal) { + this.semanal = semanal; + } + + public Boolean getMensal() { + return getBoolean(mensal); + } + + public void setMensal(Boolean mensal) { + this.mensal = mensal; + } + + public Boolean getSegunda() { + return getBoolean(segunda); + } + + public void setSegunda(Boolean segunda) { + this.segunda = segunda; + } + + public Boolean getTerca() { + return getBoolean(terca); + } + + public void setTerca(Boolean terca) { + this.terca = terca; + } + + public Boolean getQuarta() { + return getBoolean(quarta); + } + + public void setQuarta(Boolean quarta) { + this.quarta = quarta; + } + + public Boolean getQuinta() { + return getBoolean(quinta); + } + + public void setQuinta(Boolean quinta) { + this.quinta = quinta; + } + + public Boolean getSexta() { + return getBoolean(sexta); + } + + public void setSexta(Boolean sexta) { + this.sexta = sexta; + } + + public Boolean getPrimeiroDiaUtil() { + return getBoolean(primeiroDiaUtil); + } + + public void setPrimeiroDiaUtil(Boolean primeiroDiaUtil) { + this.primeiroDiaUtil = primeiroDiaUtil; + } + + public Boolean getUltimoDiaUtil() { + return getBoolean(ultimoDiaUtil); + } + + public void setUltimoDiaUtil(Boolean ultimoDiaUtil) { + this.ultimoDiaUtil = ultimoDiaUtil; + } + + public Boolean getActivo() { + return getBoolean(activo); + } + + public void setActivo(Boolean activo) { + this.activo = activo; + } + + public Date getFecmodif() { + return fecmodif; + } + + public void setFecmodif(Date fecmodif) { + this.fecmodif = fecmodif; + } + + public Boolean getDescontarProximoCiclo() { + return descontarProximoCiclo; + } + + public void setDescontarProximoCiclo(Boolean descontarProximoCiclo) { + this.descontarProximoCiclo = descontarProximoCiclo; + } + + public Boolean getDescontarProximoDia() { + return descontarProximoDia; + } + + public void setDescontarProximoDia(Boolean descontarProximoDia) { + this.descontarProximoDia = descontarProximoDia; + } + + public Date getDataInicial() { + return dataInicial; + } + + public void setDataInicial(Date dataInicial) { + this.dataInicial = dataInicial; + } + + public Date getDataFinal() { + return dataFinal; + } + + public void setDataFinal(Date dataFinal) { + this.dataFinal = dataFinal; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((cobrancaAddPuntoVenta_id == null) ? 0 : cobrancaAddPuntoVenta_id.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; + CobrancaAdcPuntoVenta other = (CobrancaAdcPuntoVenta) obj; + if (cobrancaAddPuntoVenta_id == null) { + if (other.cobrancaAddPuntoVenta_id != null) + return false; + } else if (!cobrancaAddPuntoVenta_id.equals(other.cobrancaAddPuntoVenta_id)) + return false; + return true; + } + + @Override + public String toString() { + return this.getDescricao(); + } + + +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/CobrancaAdicionalHistorico.java b/src/com/rjconsultores/ventaboletos/entidad/CobrancaAdicionalHistorico.java new file mode 100644 index 000000000..d7f079f06 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/CobrancaAdicionalHistorico.java @@ -0,0 +1,167 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.io.Serializable; +import java.math.BigDecimal; +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; + +/** + * @author vjcor + * + */ +@Entity +@SequenceGenerator(name = "COBRANCA_ADC_HIST_SEQ", sequenceName = "COBRANCA_ADC_HIST_SEQ", allocationSize = 1) +@Table(name = "COBRANCA_ADICIONAL_HISTORICO") +public class CobrancaAdicionalHistorico implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "COBRANCA_ADC_HIST_SEQ") + @Column(name = "COBRANCAADICIONALHISTORICO_ID") + private Long cobrancaAdicionalHistoricoID; + + @JoinColumn(name = "COBRANCAADDPUNTOVENTA_ID") + @ManyToOne + private CobrancaAdcPuntoVenta cobrancaAdicional; + + @Column(name = "CONTACORRENTEPTOVTA_ID") + private Long contaCorrentePtoVtaId; + + @Column(name = "PUNTOVENTA_ID") + private Integer puntoVentaId; + + @Column(name = "VALOR_COBRANCA") + private BigDecimal valorCobranca; + + @Column(name = "VALOR_ACUMULADO") + private BigDecimal valorAcumulado; + + @Column(name = "VALOR_APLICADO") + private BigDecimal valorAplicado; + + @Column(name = "COBRANCA_EFETUADA") + private Boolean cobrancaEfetuada; + + @Column(name = "FREQUENCIA_NA_DATA") + private String frequenciaNaData; + + @Column(name = "DATA_REGISTRO") + @Temporal(TemporalType.TIMESTAMP) + private Date dataRegistro; + + @Column(name = "MOTIVO") + private String motivo; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + public Long getCobrancaAdicionalHistoricoID() { + return cobrancaAdicionalHistoricoID; + } + + public void setCobrancaAdicionalHistoricoID(Long cobrancaAdicionalHistoricoID) { + this.cobrancaAdicionalHistoricoID = cobrancaAdicionalHistoricoID; + } + + public CobrancaAdcPuntoVenta getCobrancaAdicional() { + return cobrancaAdicional; + } + + public void setCobrancaAdicional(CobrancaAdcPuntoVenta cobrancaAdicional) { + this.cobrancaAdicional = cobrancaAdicional; + } + + public Long getContaCorrentePtoVtaId() { + return contaCorrentePtoVtaId; + } + + public void setContaCorrentePtoVtaId(Long contaCorrentePtoVtaId) { + this.contaCorrentePtoVtaId = contaCorrentePtoVtaId; + } + + public Integer getPuntoVentaId() { + return puntoVentaId; + } + + public void setPuntoVentaId(Integer puntoVentaId) { + this.puntoVentaId = puntoVentaId; + } + + public BigDecimal getValorCobranca() { + return valorCobranca; + } + + public void setValorCobranca(BigDecimal valorCobranca) { + this.valorCobranca = valorCobranca; + } + + public BigDecimal getValorAcumulado() { + return valorAcumulado; + } + + public void setValorAcumulado(BigDecimal valorAcumulado) { + this.valorAcumulado = valorAcumulado; + } + + public BigDecimal getValorAplicado() { + return valorAplicado; + } + + public void setValorAplicado(BigDecimal valorAplicado) { + this.valorAplicado = valorAplicado; + } + + public Boolean getCobrancaEfetuada() { + return cobrancaEfetuada == null ? false : cobrancaEfetuada; + } + + public void setCobrancaEfetuada(Boolean cobrancaEfetuada) { + this.cobrancaEfetuada = cobrancaEfetuada; + } + + public String getFrequenciaNaData() { + return frequenciaNaData; + } + + public void setFrequenciaNaData(String frequenciaNaData) { + this.frequenciaNaData = frequenciaNaData; + } + + public Date getDataRegistro() { + return dataRegistro; + } + + public void setDataRegistro(Date dataRegistro) { + this.dataRegistro = dataRegistro; + } + + public String getMotivo() { + return motivo; + } + + public void setMotivo(String motivo) { + this.motivo = motivo; + } + + public Integer getUsuarioId() { + return usuarioId; + } + + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java index 471ff60fa..3dccf9bae 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java +++ b/src/com/rjconsultores/ventaboletos/entidad/PuntoVenta.java @@ -244,7 +244,34 @@ public class PuntoVenta implements Serializable { @Column(name = "INDBLOQUEIATIPOPASSAGEM") private Boolean indBloqueiaTipoPassagem; + @OneToMany(mappedBy = "puntoVenta", cascade = CascadeType.ALL) + @LazyCollection(LazyCollectionOption.FALSE) + @Where(clause = "activo = 1") + private List cobrancaAdicionalList; + + public List getCobrancaAdicionalList() { + return cobrancaAdicionalList; + } + public CobrancaAdcPuntoVenta addCobrancaAddPuntoVenta(CobrancaAdcPuntoVenta cobranca) { + cobranca.setActivo(Boolean.TRUE); + cobranca.setFecmodif(Calendar.getInstance().getTime()); + cobranca.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + this.cobrancaAdicionalList.add(cobranca); + return cobranca; + } + + public void removeCobrancaAddPuntoVenta(CobrancaAdcPuntoVenta cobranca) { + if(this.cobrancaAdicionalList != null) { + this.cobrancaAdicionalList.remove(cobranca); + } + } + + + public void setCobrancaAdicionalList(List cobrancaAdicionalList) { + this.cobrancaAdicionalList = cobrancaAdicionalList; + } + public PtovtaEmpresaBloqueada addEmpresaBloqueada(Empresa e) { PtovtaEmpresaBloqueada eb = new PtovtaEmpresaBloqueada(); eb.setEmpresa(e); diff --git a/src/com/rjconsultores/ventaboletos/service/CobrancaAdcPuntoVentaService.java b/src/com/rjconsultores/ventaboletos/service/CobrancaAdcPuntoVentaService.java new file mode 100644 index 000000000..21abaa96b --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/CobrancaAdcPuntoVentaService.java @@ -0,0 +1,16 @@ +package com.rjconsultores.ventaboletos.service; + +import java.util.Date; +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.CobrancaAdcPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.CobrancaAdicionalHistorico; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; + +public interface CobrancaAdcPuntoVentaService extends GenericService { + + List buscarTodasAsCobrancas(PuntoVenta puntoVenta); + + List buscaHistoricoCobranca(CobrancaAdcPuntoVenta cobranca, Date dataInicial, Date dataFinal); + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CobrancaAdcPuntoVentaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CobrancaAdcPuntoVentaServiceImpl.java new file mode 100644 index 000000000..8cef830bd --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/CobrancaAdcPuntoVentaServiceImpl.java @@ -0,0 +1,68 @@ +package com.rjconsultores.ventaboletos.service.impl; + +import java.util.Date; +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.CobrancaAdcPuntoVentaDAO; +import com.rjconsultores.ventaboletos.entidad.CobrancaAdcPuntoVenta; +import com.rjconsultores.ventaboletos.entidad.CobrancaAdicionalHistorico; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.service.CobrancaAdcPuntoVentaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("cobrancaAdcPuntoVentaService") +public class CobrancaAdcPuntoVentaServiceImpl implements CobrancaAdcPuntoVentaService { + + @Autowired + CobrancaAdcPuntoVentaDAO cobrancaAdcPuntoVentaDAO; + + @Override + public List obtenerTodos() { + return cobrancaAdcPuntoVentaDAO.obtenerTodos(); + } + + @Override + public CobrancaAdcPuntoVenta obtenerID(Integer id) { + return cobrancaAdcPuntoVentaDAO.obtenerID(id); + } + + @Override + @Transactional + public CobrancaAdcPuntoVenta suscribir(CobrancaAdcPuntoVenta entidad) { + entidad.setActivo(true); + entidad.setFecmodif(new Date()); + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + return cobrancaAdcPuntoVentaDAO.suscribir(entidad); + } + + @Override + @Transactional + public CobrancaAdcPuntoVenta actualizacion(CobrancaAdcPuntoVenta entidad) { + entidad.setFecmodif(new Date()); + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + return cobrancaAdcPuntoVentaDAO.actualizacion(entidad); + } + + @Override + @Transactional + public void borrar(CobrancaAdcPuntoVenta entidad) { + entidad.setActivo(false); + entidad.setFecmodif(new Date()); + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + cobrancaAdcPuntoVentaDAO.actualizacion(entidad); + } + + public List buscaHistoricoCobranca(CobrancaAdcPuntoVenta cobranca, Date dataInicial, Date dataFinal) { + return cobrancaAdcPuntoVentaDAO.buscaHistoricoCobranca(cobranca, dataInicial, dataFinal); + } + + @Override + public List buscarTodasAsCobrancas(PuntoVenta puntoVenta) { + return cobrancaAdcPuntoVentaDAO.buscarTodasAsCobrancas(puntoVenta); + } + +}