diff --git a/pom.xml b/pom.xml index 231190c88..393fe15c3 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.76.2 + 1.77.0 diff --git a/src/com/rjconsultores/ventaboletos/anotacao/Renderizado.java b/src/com/rjconsultores/ventaboletos/anotacao/Renderizado.java new file mode 100644 index 000000000..1d8c74109 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/anotacao/Renderizado.java @@ -0,0 +1,17 @@ +package com.rjconsultores.ventaboletos.anotacao; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Renderizado{ + Class> conversor() default DefaultEnum.class; + + String metodoConversor() default "buscarPeloValor"; + + enum DefaultEnum{ + } +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/dao/TransportadoraDAO.java b/src/com/rjconsultores/ventaboletos/dao/TransportadoraDAO.java new file mode 100644 index 000000000..6e18860c9 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/TransportadoraDAO.java @@ -0,0 +1,9 @@ +package com.rjconsultores.ventaboletos.dao; + +import com.rjconsultores.ventaboletos.entidad.Transportadora; + +public interface TransportadoraDAO extends GenericDAO { + + public boolean existe(String nit); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/TransportadoraHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/TransportadoraHibernateDAO.java new file mode 100644 index 000000000..a09d2e848 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/TransportadoraHibernateDAO.java @@ -0,0 +1,40 @@ +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.TransportadoraDAO; +import com.rjconsultores.ventaboletos.entidad.Transportadora; + +@Repository("transportadoraDAO") +public class TransportadoraHibernateDAO extends GenericHibernateDAO implements TransportadoraDAO { + + @Autowired + public TransportadoraHibernateDAO(@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 boolean existe(String nit) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("nit", nit.trim())); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return !c.list().isEmpty(); + } +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/Transportadora.java b/src/com/rjconsultores/ventaboletos/entidad/Transportadora.java new file mode 100644 index 000000000..e57c409ae --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/Transportadora.java @@ -0,0 +1,64 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import com.rjconsultores.ventaboletos.anotacao.Renderizado; +import com.rjconsultores.ventaboletos.enums.CustomTipo; +import com.rjconsultores.ventaboletos.enums.EnumStatus; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@Entity +@Table(name = "TRANSPORTADORA") +@SequenceGenerator(name = "TRANSPORTADORA_SEQ", sequenceName = "TRANSPORTADORA_SEQ", allocationSize = 1) +public class Transportadora implements Serializable{ + + private static final long serialVersionUID = -8441764653321195183L; + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TRANSPORTADORA_SEQ") + @Column(name = "TRANSPORTADORA_ID") + private Long transportadoraId; + + @Renderizado( conversor = CustomTipo.class) + @Column(name = "NIT") + private String nit; + + @Renderizado + @Column(name = "NOME_TRANSPORTADORA") + private String nomeTransportadora; + + @Column(name = "CLASSE_PAGAMENTO") + private Integer classePagamento; + + @Column(name = "FORMA_PAGAMENTO") + private Integer formaPagamento; + + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + @Renderizado( conversor = EnumStatus.class) + @Column(name = "ACTIVO") + private boolean activo; + + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecModif; + +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/enums/EnumStatus.java b/src/com/rjconsultores/ventaboletos/enums/EnumStatus.java new file mode 100644 index 000000000..f321419ae --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enums/EnumStatus.java @@ -0,0 +1,34 @@ +package com.rjconsultores.ventaboletos.enums; + +public enum EnumStatus { + + INATIVO("false", "Inativo"), + ATIVO("true", "Ativo"); + + private String valor; + private String descricao; + + private EnumStatus(String valor, String descricao) { + this.valor = valor; + this.descricao = descricao; + } + + public String getValor() { + return valor; + } + + @Override + public String toString() { + return this.descricao; + } + + public static EnumStatus buscarPeloValor(String tValor) { + for (EnumStatus valor : EnumStatus.values()) { + if (valor.getValor().equalsIgnoreCase(tValor)) { + return valor; + } + } + return null; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/service/TransportadoraService.java b/src/com/rjconsultores/ventaboletos/service/TransportadoraService.java new file mode 100644 index 000000000..8da36f446 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/TransportadoraService.java @@ -0,0 +1,9 @@ +package com.rjconsultores.ventaboletos.service; + +import com.rjconsultores.ventaboletos.entidad.Transportadora; + +public interface TransportadoraService extends GenericService { + + public boolean existe(String nit); + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TransportadoraServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TransportadoraServiceImpl.java new file mode 100644 index 000000000..fd17bbc73 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/TransportadoraServiceImpl.java @@ -0,0 +1,60 @@ +/* + * 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.TransportadoraDAO; +import com.rjconsultores.ventaboletos.entidad.Transportadora; +import com.rjconsultores.ventaboletos.service.TransportadoraService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("transportadoraService") +public class TransportadoraServiceImpl implements TransportadoraService { + + @Autowired + private TransportadoraDAO transportadoraDAO; + + public List obtenerTodos() { + return transportadoraDAO.obtenerTodos(); + } + + public Transportadora obtenerID(Long id) { + return transportadoraDAO.obtenerID(id); + } + + @Transactional + public Transportadora suscribir(Transportadora entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecModif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return transportadoraDAO.suscribir(entidad); + } + + @Transactional + public Transportadora actualizacion(Transportadora entidad) { + return transportadoraDAO.actualizacion(entidad); + } + + @Transactional + public void borrar(Transportadora entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecModif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.FALSE); + + transportadoraDAO.borrar(entidad); + } + + @Override + public boolean existe(String nit) { + return transportadoraDAO.existe(nit); + } +}