package sicura.entities;
// Generated 2-lug-2017 12.20.06 by Hibernate Tools 5.2.3.Final

import java.util.Arrays;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;

/**
 * BancheId generated by hbm2java
 */
@Embeddable
public class BancheId implements java.io.Serializable {

	private int id;
	private String codiceSocietà;
	private String funzioneOrdinante;
	private String abi;
	private String cab;
	private String conto;
	private String contoFormatoContabilizzazione;
	private String divisa;
	private String descrizioneConto;
	private String coordinateIban;
	private String saldoContabile;
	private String segnoSaldoContabile;
	private Date dataSaldoContabile;
	private String saldoLiquido;
	private String segnoSaldoLiquido;
	private boolean dbgridSelect;
	private boolean contoDefault;
	private String codiceSia;
	private String saldoValutazioneCapienza;
	private String segnoValutazioneCapienza;
	private byte[] lastSaved;
	private boolean flagStampa;
	private String circuitoFlussoOut;
	private boolean contoPerCassa;
	private boolean flagContabilizzazione;
	private boolean flagExportPrometeo;

	public BancheId() {
	}

	public BancheId(int id, boolean dbgridSelect, boolean contoDefault, byte[] lastSaved, boolean flagStampa,
			boolean contoPerCassa, boolean flagContabilizzazione, boolean flagExportPrometeo) {
		this.id = id;
		this.dbgridSelect = dbgridSelect;
		this.contoDefault = contoDefault;
		this.lastSaved = lastSaved;
		this.flagStampa = flagStampa;
		this.contoPerCassa = contoPerCassa;
		this.flagContabilizzazione = flagContabilizzazione;
		this.flagExportPrometeo = flagExportPrometeo;
	}

	public BancheId(int id, String codiceSocietà, String funzioneOrdinante, String abi, String cab, String conto,
			String contoFormatoContabilizzazione, String divisa, String descrizioneConto, String coordinateIban,
			String saldoContabile, String segnoSaldoContabile, Date dataSaldoContabile, String saldoLiquido,
			String segnoSaldoLiquido, boolean dbgridSelect, boolean contoDefault, String codiceSia,
			String saldoValutazioneCapienza, String segnoValutazioneCapienza, byte[] lastSaved, boolean flagStampa,
			String circuitoFlussoOut, boolean contoPerCassa, boolean flagContabilizzazione,
			boolean flagExportPrometeo) {
		this.id = id;
		this.codiceSocietà = codiceSocietà;
		this.funzioneOrdinante = funzioneOrdinante;
		this.abi = abi;
		this.cab = cab;
		this.conto = conto;
		this.contoFormatoContabilizzazione = contoFormatoContabilizzazione;
		this.divisa = divisa;
		this.descrizioneConto = descrizioneConto;
		this.coordinateIban = coordinateIban;
		this.saldoContabile = saldoContabile;
		this.segnoSaldoContabile = segnoSaldoContabile;
		this.dataSaldoContabile = dataSaldoContabile;
		this.saldoLiquido = saldoLiquido;
		this.segnoSaldoLiquido = segnoSaldoLiquido;
		this.dbgridSelect = dbgridSelect;
		this.contoDefault = contoDefault;
		this.codiceSia = codiceSia;
		this.saldoValutazioneCapienza = saldoValutazioneCapienza;
		this.segnoValutazioneCapienza = segnoValutazioneCapienza;
		this.lastSaved = lastSaved;
		this.flagStampa = flagStampa;
		this.circuitoFlussoOut = circuitoFlussoOut;
		this.contoPerCassa = contoPerCassa;
		this.flagContabilizzazione = flagContabilizzazione;
		this.flagExportPrometeo = flagExportPrometeo;
	}

	@Column(name = "ID", nullable = false)
	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	@Column(name = "CodiceSocietà", length = 3)
	public String getCodiceSocietà() {
		return this.codiceSocietà;
	}

	public void setCodiceSocietà(String codiceSocietà) {
		this.codiceSocietà = codiceSocietà;
	}

	@Column(name = "FunzioneOrdinante", length = 10)
	public String getFunzioneOrdinante() {
		return this.funzioneOrdinante;
	}

	public void setFunzioneOrdinante(String funzioneOrdinante) {
		this.funzioneOrdinante = funzioneOrdinante;
	}

	@Column(name = "Abi", length = 5)
	public String getAbi() {
		return this.abi;
	}

	public void setAbi(String abi) {
		this.abi = abi;
	}

	@Column(name = "Cab", length = 5)
	public String getCab() {
		return this.cab;
	}

	public void setCab(String cab) {
		this.cab = cab;
	}

	@Column(name = "Conto", length = 12)
	public String getConto() {
		return this.conto;
	}

	public void setConto(String conto) {
		this.conto = conto;
	}

	@Column(name = "ContoFormatoContabilizzazione", length = 20)
	public String getContoFormatoContabilizzazione() {
		return this.contoFormatoContabilizzazione;
	}

	public void setContoFormatoContabilizzazione(String contoFormatoContabilizzazione) {
		this.contoFormatoContabilizzazione = contoFormatoContabilizzazione;
	}

	@Column(name = "Divisa", length = 3)
	public String getDivisa() {
		return this.divisa;
	}

	public void setDivisa(String divisa) {
		this.divisa = divisa;
	}

	@Column(name = "DescrizioneConto", length = 30)
	public String getDescrizioneConto() {
		return this.descrizioneConto;
	}

	public void setDescrizioneConto(String descrizioneConto) {
		this.descrizioneConto = descrizioneConto;
	}

	@Column(name = "CoordinateIBAN", length = 50)
	public String getCoordinateIban() {
		return this.coordinateIban;
	}

	public void setCoordinateIban(String coordinateIban) {
		this.coordinateIban = coordinateIban;
	}

	@Column(name = "SaldoContabile", length = 15)
	public String getSaldoContabile() {
		return this.saldoContabile;
	}

	public void setSaldoContabile(String saldoContabile) {
		this.saldoContabile = saldoContabile;
	}

	@Column(name = "SegnoSaldoContabile", length = 1)
	public String getSegnoSaldoContabile() {
		return this.segnoSaldoContabile;
	}

	public void setSegnoSaldoContabile(String segnoSaldoContabile) {
		this.segnoSaldoContabile = segnoSaldoContabile;
	}

	@Column(name = "DataSaldoContabile", length = 23)
	public Date getDataSaldoContabile() {
		return this.dataSaldoContabile;
	}

	public void setDataSaldoContabile(Date dataSaldoContabile) {
		this.dataSaldoContabile = dataSaldoContabile;
	}

	@Column(name = "SaldoLiquido", length = 15)
	public String getSaldoLiquido() {
		return this.saldoLiquido;
	}

	public void setSaldoLiquido(String saldoLiquido) {
		this.saldoLiquido = saldoLiquido;
	}

	@Column(name = "SegnoSaldoLiquido", length = 1)
	public String getSegnoSaldoLiquido() {
		return this.segnoSaldoLiquido;
	}

	public void setSegnoSaldoLiquido(String segnoSaldoLiquido) {
		this.segnoSaldoLiquido = segnoSaldoLiquido;
	}

	@Column(name = "DBGridSelect", nullable = false)
	public boolean isDbgridSelect() {
		return this.dbgridSelect;
	}

	public void setDbgridSelect(boolean dbgridSelect) {
		this.dbgridSelect = dbgridSelect;
	}

	@Column(name = "ContoDefault", nullable = false)
	public boolean isContoDefault() {
		return this.contoDefault;
	}

	public void setContoDefault(boolean contoDefault) {
		this.contoDefault = contoDefault;
	}

	@Column(name = "CodiceSIA", length = 5)
	public String getCodiceSia() {
		return this.codiceSia;
	}

	public void setCodiceSia(String codiceSia) {
		this.codiceSia = codiceSia;
	}

	@Column(name = "SaldoValutazioneCapienza", length = 15)
	public String getSaldoValutazioneCapienza() {
		return this.saldoValutazioneCapienza;
	}

	public void setSaldoValutazioneCapienza(String saldoValutazioneCapienza) {
		this.saldoValutazioneCapienza = saldoValutazioneCapienza;
	}

	@Column(name = "SegnoValutazioneCapienza", length = 1)
	public String getSegnoValutazioneCapienza() {
		return this.segnoValutazioneCapienza;
	}

	public void setSegnoValutazioneCapienza(String segnoValutazioneCapienza) {
		this.segnoValutazioneCapienza = segnoValutazioneCapienza;
	}

	@Column(name = "LastSaved", nullable = false, updatable=false, insertable=false)
	public byte[] getLastSaved() {
		return this.lastSaved;
	}

	public void setLastSaved(byte[] lastSaved) {
		this.lastSaved = lastSaved;
	}

	@Column(name = "FlagStampa", nullable = false)
	public boolean isFlagStampa() {
		return this.flagStampa;
	}

	public void setFlagStampa(boolean flagStampa) {
		this.flagStampa = flagStampa;
	}

	@Column(name = "CircuitoFlussoOut", length = 15)
	public String getCircuitoFlussoOut() {
		return this.circuitoFlussoOut;
	}

	public void setCircuitoFlussoOut(String circuitoFlussoOut) {
		this.circuitoFlussoOut = circuitoFlussoOut;
	}

	@Column(name = "ContoPerCassa", nullable = false)
	public boolean isContoPerCassa() {
		return this.contoPerCassa;
	}

	public void setContoPerCassa(boolean contoPerCassa) {
		this.contoPerCassa = contoPerCassa;
	}

	@Column(name = "FlagContabilizzazione", nullable = false)
	public boolean isFlagContabilizzazione() {
		return this.flagContabilizzazione;
	}

	public void setFlagContabilizzazione(boolean flagContabilizzazione) {
		this.flagContabilizzazione = flagContabilizzazione;
	}

	@Column(name = "FlagExportPrometeo", nullable = false)
	public boolean isFlagExportPrometeo() {
		return this.flagExportPrometeo;
	}

	public void setFlagExportPrometeo(boolean flagExportPrometeo) {
		this.flagExportPrometeo = flagExportPrometeo;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof BancheId))
			return false;
		BancheId castOther = (BancheId) other;

		return (this.getId() == castOther.getId())
				&& ((this.getCodiceSocietà() == castOther.getCodiceSocietà())
						|| (this.getCodiceSocietà() != null && castOther.getCodiceSocietà() != null
								&& this.getCodiceSocietà().equals(castOther.getCodiceSocietà())))
				&& ((this.getFunzioneOrdinante() == castOther.getFunzioneOrdinante())
						|| (this.getFunzioneOrdinante() != null && castOther.getFunzioneOrdinante() != null
								&& this.getFunzioneOrdinante().equals(castOther.getFunzioneOrdinante())))
				&& ((this.getAbi() == castOther.getAbi()) || (this.getAbi() != null && castOther.getAbi() != null
						&& this.getAbi().equals(castOther.getAbi())))
				&& ((this.getCab() == castOther.getCab()) || (this.getCab() != null && castOther.getCab() != null
						&& this.getCab().equals(castOther.getCab())))
				&& ((this.getConto() == castOther.getConto()) || (this.getConto() != null
						&& castOther.getConto() != null && this.getConto().equals(castOther.getConto())))
				&& ((this.getContoFormatoContabilizzazione() == castOther.getContoFormatoContabilizzazione())
						|| (this.getContoFormatoContabilizzazione() != null
								&& castOther.getContoFormatoContabilizzazione() != null
								&& this.getContoFormatoContabilizzazione()
										.equals(castOther.getContoFormatoContabilizzazione())))
				&& ((this.getDivisa() == castOther.getDivisa()) || (this.getDivisa() != null
						&& castOther.getDivisa() != null && this.getDivisa().equals(castOther.getDivisa())))
				&& ((this.getDescrizioneConto() == castOther.getDescrizioneConto())
						|| (this.getDescrizioneConto() != null && castOther.getDescrizioneConto() != null
								&& this.getDescrizioneConto().equals(castOther.getDescrizioneConto())))
				&& ((this.getCoordinateIban() == castOther.getCoordinateIban())
						|| (this.getCoordinateIban() != null && castOther.getCoordinateIban() != null
								&& this.getCoordinateIban().equals(castOther.getCoordinateIban())))
				&& ((this.getSaldoContabile() == castOther.getSaldoContabile())
						|| (this.getSaldoContabile() != null && castOther.getSaldoContabile() != null
								&& this.getSaldoContabile().equals(castOther.getSaldoContabile())))
				&& ((this.getSegnoSaldoContabile() == castOther.getSegnoSaldoContabile())
						|| (this.getSegnoSaldoContabile() != null && castOther.getSegnoSaldoContabile() != null
								&& this.getSegnoSaldoContabile().equals(castOther.getSegnoSaldoContabile())))
				&& ((this.getDataSaldoContabile() == castOther.getDataSaldoContabile())
						|| (this.getDataSaldoContabile() != null && castOther.getDataSaldoContabile() != null
								&& this.getDataSaldoContabile().equals(castOther.getDataSaldoContabile())))
				&& ((this.getSaldoLiquido() == castOther.getSaldoLiquido())
						|| (this.getSaldoLiquido() != null && castOther.getSaldoLiquido() != null
								&& this.getSaldoLiquido().equals(castOther.getSaldoLiquido())))
				&& ((this.getSegnoSaldoLiquido() == castOther.getSegnoSaldoLiquido())
						|| (this.getSegnoSaldoLiquido() != null && castOther.getSegnoSaldoLiquido() != null
								&& this.getSegnoSaldoLiquido().equals(castOther.getSegnoSaldoLiquido())))
				&& (this.isDbgridSelect() == castOther.isDbgridSelect())
				&& (this.isContoDefault() == castOther.isContoDefault())
				&& ((this.getCodiceSia() == castOther.getCodiceSia()) || (this.getCodiceSia() != null
						&& castOther.getCodiceSia() != null && this.getCodiceSia().equals(castOther.getCodiceSia())))
				&& ((this.getSaldoValutazioneCapienza() == castOther.getSaldoValutazioneCapienza())
						|| (this.getSaldoValutazioneCapienza() != null
								&& castOther.getSaldoValutazioneCapienza() != null
								&& this.getSaldoValutazioneCapienza().equals(castOther.getSaldoValutazioneCapienza())))
				&& ((this.getSegnoValutazioneCapienza() == castOther.getSegnoValutazioneCapienza())
						|| (this.getSegnoValutazioneCapienza() != null
								&& castOther.getSegnoValutazioneCapienza() != null
								&& this.getSegnoValutazioneCapienza().equals(castOther.getSegnoValutazioneCapienza())))
				&& ((this.getLastSaved() == castOther.getLastSaved())
						|| (this.getLastSaved() != null && castOther.getLastSaved() != null
								&& Arrays.equals(this.getLastSaved(), castOther.getLastSaved())))
				&& (this.isFlagStampa() == castOther.isFlagStampa())
				&& ((this.getCircuitoFlussoOut() == castOther.getCircuitoFlussoOut())
						|| (this.getCircuitoFlussoOut() != null && castOther.getCircuitoFlussoOut() != null
								&& this.getCircuitoFlussoOut().equals(castOther.getCircuitoFlussoOut())))
				&& (this.isContoPerCassa() == castOther.isContoPerCassa())
				&& (this.isFlagContabilizzazione() == castOther.isFlagContabilizzazione())
				&& (this.isFlagExportPrometeo() == castOther.isFlagExportPrometeo());
	}

	public int hashCode() {
		int result = 17;

		result = 37 * result + this.getId();
		result = 37 * result + (getCodiceSocietà() == null ? 0 : this.getCodiceSocietà().hashCode());
		result = 37 * result + (getFunzioneOrdinante() == null ? 0 : this.getFunzioneOrdinante().hashCode());
		result = 37 * result + (getAbi() == null ? 0 : this.getAbi().hashCode());
		result = 37 * result + (getCab() == null ? 0 : this.getCab().hashCode());
		result = 37 * result + (getConto() == null ? 0 : this.getConto().hashCode());
		result = 37 * result
				+ (getContoFormatoContabilizzazione() == null ? 0 : this.getContoFormatoContabilizzazione().hashCode());
		result = 37 * result + (getDivisa() == null ? 0 : this.getDivisa().hashCode());
		result = 37 * result + (getDescrizioneConto() == null ? 0 : this.getDescrizioneConto().hashCode());
		result = 37 * result + (getCoordinateIban() == null ? 0 : this.getCoordinateIban().hashCode());
		result = 37 * result + (getSaldoContabile() == null ? 0 : this.getSaldoContabile().hashCode());
		result = 37 * result + (getSegnoSaldoContabile() == null ? 0 : this.getSegnoSaldoContabile().hashCode());
		result = 37 * result + (getDataSaldoContabile() == null ? 0 : this.getDataSaldoContabile().hashCode());
		result = 37 * result + (getSaldoLiquido() == null ? 0 : this.getSaldoLiquido().hashCode());
		result = 37 * result + (getSegnoSaldoLiquido() == null ? 0 : this.getSegnoSaldoLiquido().hashCode());
		result = 37 * result + (this.isDbgridSelect() ? 1 : 0);
		result = 37 * result + (this.isContoDefault() ? 1 : 0);
		result = 37 * result + (getCodiceSia() == null ? 0 : this.getCodiceSia().hashCode());
		result = 37 * result
				+ (getSaldoValutazioneCapienza() == null ? 0 : this.getSaldoValutazioneCapienza().hashCode());
		result = 37 * result
				+ (getSegnoValutazioneCapienza() == null ? 0 : this.getSegnoValutazioneCapienza().hashCode());
		int lastSavedHashcode = 0;
		byte[] lastSavedProperty = this.getLastSaved();
		if (lastSavedProperty != null) {
			lastSavedHashcode = 1;
			for (int i = 0; i < lastSavedProperty.length; i++) {
				lastSavedHashcode = 37 * lastSavedHashcode + lastSavedProperty[i];
			}
		}

		result = 37 * result + lastSavedHashcode;

		result = 37 * result + (this.isFlagStampa() ? 1 : 0);
		result = 37 * result + (getCircuitoFlussoOut() == null ? 0 : this.getCircuitoFlussoOut().hashCode());
		result = 37 * result + (this.isContoPerCassa() ? 1 : 0);
		result = 37 * result + (this.isFlagContabilizzazione() ? 1 : 0);
		result = 37 * result + (this.isFlagExportPrometeo() ? 1 : 0);
		return result;
	}

}
