package com.rjconsultores.ventaboletos.entidad; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.persistence.Basic; import javax.persistence.CascadeType; 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.OneToMany; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; import org.apache.commons.lang.BooleanUtils; import org.hibernate.annotations.Where; import br.com.rjconsultores.auditador.annotations.AuditarAtributo; import br.com.rjconsultores.auditador.annotations.AuditarClasse; import br.com.rjconsultores.auditador.annotations.AuditarID; import br.com.rjconsultores.auditador.annotations.AuditarLista; import br.com.rjconsultores.auditador.annotations.NaoAuditar; import br.com.rjconsultores.auditador.interfaces.Auditavel; @AuditarClasse(nome = "OrgaoConcedente", tela = "auditarClasse.OrgaoConcedente") @Entity @SequenceGenerator(name = "ORGAO_CONCEDENTE_SEQ", sequenceName = "ORGAO_CONCEDENTE_SEQ", allocationSize = 1) @Table(name = "ORGAO_CONCEDENTE") public class OrgaoConcedente implements Serializable, Auditavel { private static final long serialVersionUID = 1L; public final static Integer CODIGO_ARTESP = 21; public final static Integer CODIGO_ANTT = 3; @AuditarID @Id @Basic(optional = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "ORGAO_CONCEDENTE_SEQ") @Column(name = "ORGAOCONCEDENTE_ID") private Integer orgaoConcedenteId; @AuditarAtributo(nome = "DESC ORGAO") @Column(name = "DESCORGAO") private String descOrgao; @Column(name = "INDDEFAULTSEGURO") private Boolean indDefaultSeguro; @Column(name = "INDSUBSEGURO") private Boolean indSubSeguro; @Column(name = "ACTIVO") private Boolean activo; @Column(name = "FECMODIF") @Temporal(TemporalType.TIMESTAMP) private Date fecmodif; @Column(name = "USUARIO_ID") private Integer usuarioId; @AuditarLista(auditarEntidades = true, nome = "CategoriaOrgao") @OneToMany(mappedBy = "orgao") private List categoriaOrgaoList; @Column(name = "INDNOMDOCOBLIGATORIO") private Boolean indNomDocObligatorio; @AuditarLista(auditarEntidades = true, nome = "OrgaoCancelacion") @OneToMany(mappedBy = "orgao") private List orgaoCancelacionList; @AuditarAtributo(nome = "INDICE PEDADIO") @Column(name = "INDICEPEAJE") private BigDecimal indicePeaje; @AuditarAtributo(nome = "Idade Idoso") @Column(name = "IDADE_IDOSO") private Integer idadeIdoso; @Column(name = "IDADE_MINIMA") private Integer idadeMinima; @JoinColumn(name = "CATEGORIA_ID", referencedColumnName = "CATEGORIA_ID") @ManyToOne() private Categoria categoria; @Column(name = "INDUTILIZAICMS") private Boolean indUtilizaICMS; @Column(name = "INDMULTATODASREMARCACOES") private Boolean indmultatodasremarcacoes; @Column(name = "INDVALDOCOBLIGATORIOMONITRIP") private Boolean indValDocObligatorioMonitrip; @Column(name = "INDVALDOCOBLIGATORIOEMBARCADA") private Boolean indValDocObligatorioEmbarcada; @Column(name = "TAXACONVENIENCIAPORC") private BigDecimal taxaConvenienciaPorc; @Column(name = "MAXTAXACONVENIENCIAPORTARIFA") private BigDecimal maximoTaxaConvenienciaPorTarifa; @Column(name = "MENSAGEMRECIBOTXCONVENIENCIA") private String mensagemReciboTaxaDeConveniencia; @OneToMany(mappedBy = "orgaoConcedente", cascade = CascadeType.ALL) @NaoAuditar private List classesIndicePeaje; @AuditarLista(auditarEntidades = true, nome = "OrgaoEmpParam") @OneToMany(mappedBy = "orgaoConcedente", cascade = CascadeType.ALL) @Where(clause = "activo=1") private List orgaoEmpParams; @Column(name = "COEFICIENTETARIFA") private BigDecimal coeficiente; @Column(name = "MENSAGEM_INTRANSFERIVEL") private String mensagemPassagemIntrasferivel; @Column(name = "INDNAOIMPPOLCONSUMIDOR") private Boolean indNaoImprimirPoliticasConsumidor; @Column(name = "TAXA_CONVENIENCIA_SVI") private BigDecimal taxaConvenienciaSVI; @Transient @NaoAuditar private OrgaoConcedente orgaoConcedenteClone; @AuditarAtributo(nome = "Idade Minima Jovem") @Column(name = "IDADE_MIN_JOVEM") private Integer idadeMinimaJovem; @AuditarAtributo(nome = "Idade Maxima Jovem") @Column(name = "IDADE_MAX_JOVEM") private Integer idadeMaximaJovem; @Column(name = "CUSTOMIZARODAPECUPOMEMBARQUE") @NaoAuditar private String customizacaoRodapeCupomDeEmbarque; public void addParametro(OrgaoCancelacion param) { this.orgaoCancelacionList.add(param); } public void removeParametro(OrgaoCancelacion param) { this.orgaoCancelacionList.remove(param); } public Integer getOrgaoConcedenteId() { return orgaoConcedenteId; } public void setOrgaoConcedenteId(Integer orgaoConcedenteId) { this.orgaoConcedenteId = orgaoConcedenteId; } public String getDescOrgao() { return descOrgao; } public void setDescOrgao(String descOrgao) { this.descOrgao = descOrgao; } public Boolean getIndSubSeguro() { return indSubSeguro; } public void setIndSubSeguro(Boolean indSubSeguro) { this.indSubSeguro = indSubSeguro; } public Boolean getIndDefaultSeguro() { return indDefaultSeguro; } public void setIndDefaultSeguro(Boolean indDefaultSeguro) { this.indDefaultSeguro = indDefaultSeguro; } 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 List getCategoriaOrgaoList() { return categoriaOrgaoList; } public void setCategoriaOrgaoList(List categoriaOrgaoList) { this.categoriaOrgaoList = categoriaOrgaoList; } public Boolean getIndNomDocObligatorio() { return BooleanUtils.isTrue(indNomDocObligatorio); } public void setIndNomDocObligatorio(Boolean indNomDocObligatorio) { this.indNomDocObligatorio = indNomDocObligatorio; } public List getOrgaoCancelacionList() { return orgaoCancelacionList; } public void setOrgaoCancelacionList(List orgaoCancelacionList) { this.orgaoCancelacionList = orgaoCancelacionList; } public BigDecimal getIndicePeaje() { return indicePeaje; } public void setIndicePeaje(BigDecimal indicePeaje) { this.indicePeaje = indicePeaje; } public Integer getIdadeIdoso() { return idadeIdoso; } public void setIdadeIdoso(Integer idadeIdoso) { this.idadeIdoso = idadeIdoso; } public List getClassesIndicePeaje() { List lsClasseIndicePeaje = new ArrayList(); for (ClasseIndicePeaje classeIndicePeaje : this.classesIndicePeaje) { if (classeIndicePeaje.getActivo()) { lsClasseIndicePeaje.add(classeIndicePeaje); } } return this.classesIndicePeaje = lsClasseIndicePeaje; } public void setClassesIndicePeaje(List classesIndicePeaje) { this.classesIndicePeaje = classesIndicePeaje; } public Integer getIdadeMinima() { return idadeMinima; } public void setIdadeMinima(Integer idadeMinima) { this.idadeMinima = idadeMinima; } public Categoria getCategoria() { return categoria; } public void setCategoria(Categoria categoria) { this.categoria = categoria; } @Override public String toString() { return descOrgao; } public Boolean getIndUtilizaICMS() { return indUtilizaICMS; } public void setIndUtilizaICMS(Boolean indUtilizaICMS) { this.indUtilizaICMS = indUtilizaICMS; } public List getOrgaoEmpParams() { return orgaoEmpParams; } public void setOrgaoEmpParams(List orgaoEmpParams) { this.orgaoEmpParams = orgaoEmpParams; } public Boolean getIndmultatodasremarcacoes() { return indmultatodasremarcacoes; } public void setIndmultatodasremarcacoes(Boolean indmultatodasremarcacoes) { this.indmultatodasremarcacoes = indmultatodasremarcacoes; } public Boolean getIndValDocObligatorioMonitrip() { return BooleanUtils.toBoolean(indValDocObligatorioMonitrip); } public void setIndValDocObligatorioMonitrip(Boolean indValDocObligatorioMonitrip) { this.indValDocObligatorioMonitrip = indValDocObligatorioMonitrip; } public BigDecimal getCoeficiente() { return coeficiente; } public void setCoeficiente(BigDecimal coeficiente) { this.coeficiente = coeficiente; } public String getMensagemPassagemIntrasferivel() { return mensagemPassagemIntrasferivel; } public void setMensagemPassagemIntrasferivel(String mensagemPassagemIntrasferivel) { this.mensagemPassagemIntrasferivel = mensagemPassagemIntrasferivel; } public Boolean getIndValDocObligatorioEmbarcada() { return indValDocObligatorioEmbarcada; } public void setIndValDocObligatorioEmbarcada(Boolean indValDocObligatorioEmbarcada) { this.indValDocObligatorioEmbarcada = indValDocObligatorioEmbarcada; } public BigDecimal getTaxaConvenienciaPorc() { return taxaConvenienciaPorc; } public void setTaxaConvenienciaPorc(BigDecimal taxaConvenienciaPorc) { this.taxaConvenienciaPorc = taxaConvenienciaPorc; } public BigDecimal getMaximoTaxaConvenienciaPorTarifa() { return maximoTaxaConvenienciaPorTarifa; } public void setMaximoTaxaConvenienciaPorTarifa(BigDecimal maximoTaxaConvenienciaPorTarifa) { this.maximoTaxaConvenienciaPorTarifa = maximoTaxaConvenienciaPorTarifa; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((orgaoConcedenteId == null) ? 0 : orgaoConcedenteId.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; OrgaoConcedente other = (OrgaoConcedente) obj; if (orgaoConcedenteId == null) { if (other.orgaoConcedenteId != null) return false; } else if (!orgaoConcedenteId.equals(other.orgaoConcedenteId)) return false; return true; } public Boolean getIndNaoImprimirPoliticasConsumidor() { return indNaoImprimirPoliticasConsumidor; } public void setIndNaoImprimirPoliticasConsumidor(Boolean indNaoImprimirPoliticasConsumidor) { this.indNaoImprimirPoliticasConsumidor = indNaoImprimirPoliticasConsumidor; } public BigDecimal getTaxaConvenienciaSVI() { return taxaConvenienciaSVI; } public void setTaxaConvenienciaSVI(BigDecimal taxaConvenienciaSVI) { this.taxaConvenienciaSVI = taxaConvenienciaSVI; } public String getMensagemReciboTaxaDeConveniencia() { return mensagemReciboTaxaDeConveniencia; } public void setMensagemReciboTaxaDeConveniencia(String mensagemReciboTaxaDeConveniencia) { this.mensagemReciboTaxaDeConveniencia = mensagemReciboTaxaDeConveniencia; } @Override public void clonar() throws CloneNotSupportedException { orgaoConcedenteClone = new OrgaoConcedente(); orgaoConcedenteClone = (OrgaoConcedente) this.clone(); if(this.getCategoriaOrgaoList() != null) { List lsClones = new ArrayList(); for (CategoriaOrgao categoriaOrgao : this.getCategoriaOrgaoList()) { if(BooleanUtils.isTrue(categoriaOrgao.getActivo())) { categoriaOrgao.clonar(); lsClones.add(categoriaOrgao.getCloneObject()); } } orgaoConcedenteClone.setCategoriaOrgaoList(lsClones); } if(this.getOrgaoCancelacionList() != null) { List lsClones = new ArrayList(); for (OrgaoCancelacion orgaoCancelacion : this.getOrgaoCancelacionList()) { if(BooleanUtils.isTrue(orgaoCancelacion.getActivo())) { orgaoCancelacion.clonar(); lsClones.add(orgaoCancelacion.getCloneObject()); } } orgaoConcedenteClone.setOrgaoCancelacionList(lsClones); } } @Override public OrgaoConcedente getCloneObject() throws CloneNotSupportedException { return orgaoConcedenteClone; } @Override public String getTextoInclusaoExclusao() { return String.format("ID [%s]", getOrgaoConcedenteId()); } public Integer getIdadeMinimaJovem() { return idadeMinimaJovem; } public void setIdadeMinimaJovem(Integer idadeMinimaJovem) { this.idadeMinimaJovem = idadeMinimaJovem; } public Integer getIdadeMaximaJovem() { return idadeMaximaJovem; } public void setIdadeMaximaJovem(Integer idadeMaximaJovem) { this.idadeMaximaJovem = idadeMaximaJovem; } public String getCustomizacaoRodapeCupomDeEmbarque() { return customizacaoRodapeCupomDeEmbarque; } public void setCustomizacaoRodapeCupomDeEmbarque(String customizacaoRodapeCupomDeEmbarque) { this.customizacaoRodapeCupomDeEmbarque = customizacaoRodapeCupomDeEmbarque; } }