it.cnr.contab.missioni00.docs.bulk.Missione_tappaBulk Maven / Gradle / Ivy
/*
* Copyright (C) 2019 Consiglio Nazionale delle Ricerche
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package it.cnr.contab.missioni00.docs.bulk;
import it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk;
import it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.util.OrderedHashtable;
import java.util.Dictionary;
import java.util.Iterator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
@JsonInclude(value=Include.NON_NULL)
public class Missione_tappaBulk extends Missione_tappaBase
{
@JsonIgnore
protected MissioneBulk missione;
private NazioneBulk nazione = new NazioneBulk();
private DivisaBulk divisa_tappa = new DivisaBulk();
/**** Gestione comune estero, comune altro e comune proprio ****/
public final static String COMUNE_ESTERO = "E";
public final static String COMUNE_ALTRO = "A";
public final static String COMUNE_PROPRIO = "P";
public final static java.util.Dictionary comuneKeys;
private String comune;
static
{
comuneKeys = new OrderedHashtable();
comuneKeys.put(COMUNE_ESTERO, "Comune estero");
comuneKeys.put(COMUNE_PROPRIO, "Comune proprio");
comuneKeys.put(COMUNE_ALTRO, "Comune altro");
}
/***************************************************************/
/**** Gestione flag navigazione, flag vitto gratuito, flag alloggio gratuito e flag vitto alloggio gratuito ***/
public final static String NESSUNO = "X";
public final static String NAVIGAZIONE = "N";
public final static String VITTO_GRATUITO = "V";
public final static String ALLOGGIO_GRATUITO = "A";
public final static String VITTO_ALLOGGIO_GRATUITO = "E";
public final static Dictionary flag_speseKeys;
private String flag_spese;
static
{
flag_speseKeys = new OrderedHashtable();
flag_speseKeys.put(NESSUNO, "Nessuno");
flag_speseKeys.put(NAVIGAZIONE, "Navigazione");
flag_speseKeys.put(VITTO_GRATUITO, "Vitto gratuito");
flag_speseKeys.put(ALLOGGIO_GRATUITO, "Alloggio gratuito");
flag_speseKeys.put(VITTO_ALLOGGIO_GRATUITO, "Vitto e Alloggio gratuito");
}
/***************************************************************/
/**** Gestione scelta tipo di trattamento di missione ***/
public final static String DOCUMENTATO = "D";
public final static String ALTERNATIVO = "A";
public final static Dictionary flag_tipo_rimborsoKeys;
private String flag_tipo_rimborso;
static
{
flag_tipo_rimborsoKeys = new OrderedHashtable();
flag_tipo_rimborsoKeys.put(DOCUMENTATO, "Trattamento con rimborso documentato");
flag_tipo_rimborsoKeys.put(ALTERNATIVO, "Trattamento alternativo");
}
/***************************************************************/
/**** Gestione edita, conferma, annulla tappa ***/
public static final int STATUS_NOT_CONFIRMED = 0;
public static final int STATUS_CONFIRMED = 1;
private int status = STATUS_NOT_CONFIRMED;
protected Missione_tappaBulk tappaIniziale;
/***************************************************************/
public Missione_tappaBulk() {
super();
}
public Missione_tappaBulk(java.lang.String cd_cds,java.lang.String cd_unita_organizzativa,java.sql.Timestamp dt_inizio_tappa,java.lang.Integer esercizio,java.lang.Long pg_missione) {
super(cd_cds,cd_unita_organizzativa,dt_inizio_tappa,esercizio,pg_missione);
}
public java.lang.String getCd_divisa_tappa() {
it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk divisa_tappa = this.getDivisa_tappa();
if (divisa_tappa == null)
return null;
return divisa_tappa.getCd_divisa();
}
//
// La PROPERTY "Comune" viene usata per gestire il RADIO GROUP dei comuni estero,
// altro e proprio
//
public java.lang.String getComune()
{
return comune;
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @return java.util.Dictionary
*/
public final static java.util.Dictionary getComuneKeys() {
return comuneKeys;
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @return it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk
*/
public it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk getDivisa_tappa() {
return divisa_tappa;
}
//
// La PROPERTY "flag_spese" viene usata per gestire il RADIO GROUP di navigazione,
// vitto gratuito, alloggio gratuito, vitto e alloggio gratuito
//
public java.lang.String getFlag_spese()
{
if((getFl_navigazione()==null) && (getFl_vitto_gratuito()==null) &&
(getFl_alloggio_gratuito()== null) && (getFl_vitto_alloggio_gratuito()== null))
return NESSUNO;
if((!getFl_navigazione().booleanValue()) && (!getFl_vitto_gratuito().booleanValue()) &&
(!getFl_alloggio_gratuito().booleanValue()) && (!getFl_vitto_alloggio_gratuito().booleanValue()))
return NESSUNO;
if(getFl_navigazione().booleanValue())
return NAVIGAZIONE;
if(getFl_vitto_gratuito().booleanValue())
return VITTO_GRATUITO;
if(getFl_alloggio_gratuito().booleanValue())
return ALLOGGIO_GRATUITO;
if(getFl_vitto_alloggio_gratuito().booleanValue())
return VITTO_ALLOGGIO_GRATUITO;
return null;
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @return java.util.Dictionary
*/
public final static java.util.Dictionary getFlag_speseKeys() {
return flag_speseKeys;
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @return it.cnr.contab.missioni00.docs.bulk.MissioneBulk
*/
public MissioneBulk getMissione() {
return missione;
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @return it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk
*/
public it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk getNazione() {
return nazione;
}
public java.lang.Long getPg_missione()
{
MissioneBulk missione = this.getMissione();
if (missione == null)
return null;
return missione.getPg_missione();
}
public java.lang.Long getPg_nazione() {
it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk nazione = this.getNazione();
if (nazione == null)
return null;
return nazione.getPg_nazione();
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @return int
*/
public int getStatus() {
return status;
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @return it.cnr.contab.missioni00.docs.bulk.Missione_tappaBulk
*/
public Missione_tappaBulk getTappaIniziale() {
return tappaIniziale;
}
public boolean isComuneAltro()
{
return (getFl_comune_altro() != null) && (getFl_comune_altro().booleanValue());
}
public boolean isComuneProprio()
{
return (getFl_comune_proprio() != null) && (getFl_comune_proprio().booleanValue());
}
public boolean isEstera()
{
return (getFl_comune_estero() != null) && (getFl_comune_estero().booleanValue());
}
public boolean isRONazione()
{
return nazione == null || nazione.getCrudStatus() == NORMAL;
}
public void setCd_divisa_tappa(java.lang.String cd_divisa_tappa) {
this.getDivisa_tappa().setCd_divisa(cd_divisa_tappa);
}
//
// La PROPERTY "Comune" viene usata per gestire il RADIO GROUP dei comuni estero,
// altro e proprio
//
public void setComune(java.lang.String newComune)
{
comune = newComune;
}
public void setDivisa_tappa(DivisaBulk newDivisa_tappa)
{
divisa_tappa = newDivisa_tappa;
if((newDivisa_tappa == null) || (newDivisa_tappa.getCd_divisa() == null))
setCambio_tappa(null);
}
//
// La PROPERTY "flag_spese" viene usata per gestire il RADIO GROUP di navigazione,
// vitto gratuito, alloggio gratuito, vitto e alloggio gratuito
//
public void setFlag_spese(java.lang.String newFlag_spese)
{
if (newFlag_spese.equals(NESSUNO))
{
setFl_navigazione(new Boolean(false));
setFl_vitto_gratuito(new Boolean(false));
setFl_alloggio_gratuito(new Boolean(false));
setFl_vitto_alloggio_gratuito(new Boolean(false));
}
if (newFlag_spese.equals(NAVIGAZIONE))
{
setFl_navigazione(new Boolean(true));
setFl_vitto_gratuito(new Boolean(false));
setFl_alloggio_gratuito(new Boolean(false));
setFl_vitto_alloggio_gratuito(new Boolean(false));
}
if (newFlag_spese.equals(VITTO_GRATUITO))
{
setFl_navigazione(new Boolean(false));
setFl_vitto_gratuito(new Boolean(true));
setFl_alloggio_gratuito(new Boolean(false));
setFl_vitto_alloggio_gratuito(new Boolean(false));
}
if (newFlag_spese.equals(ALLOGGIO_GRATUITO))
{
setFl_navigazione(new Boolean(false));
setFl_vitto_gratuito(new Boolean(false));
setFl_alloggio_gratuito(new Boolean(true));
setFl_vitto_alloggio_gratuito(new Boolean(false));
}
if (newFlag_spese.equals(VITTO_ALLOGGIO_GRATUITO))
{
setFl_navigazione(new Boolean(false));
setFl_vitto_gratuito(new Boolean(false));
setFl_alloggio_gratuito(new Boolean(false));
setFl_vitto_alloggio_gratuito(new Boolean(true));
}
}
//
//La PROPERTY "flag_tipo_rimborso" viene usata per gestire il RADIO GROUP
//del tipo di trattamento di rimborso prescelto
//
public java.lang.String getFlag_tipo_rimborso()
{
if(getFl_rimborso()== null)
return DOCUMENTATO;
if(getFl_rimborso().booleanValue())
return ALTERNATIVO;
if(!getFl_rimborso().booleanValue())
return DOCUMENTATO;
return null;
}
public final static java.util.Dictionary getFlag_tipo_rimborsoKeys() {
return flag_tipo_rimborsoKeys;
}
public void setFlag_tipo_rimborso(java.lang.String newFlag_tipo_rimborso)
{
if (newFlag_tipo_rimborso.equals(ALTERNATIVO))
{
setFl_rimborso (new Boolean(true));
}
if (newFlag_tipo_rimborso.equals(DOCUMENTATO))
{
setFl_rimborso (new Boolean(false));
}
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @param newMissione it.cnr.contab.missioni00.docs.bulk.MissioneBulk
*/
public void setMissione(MissioneBulk newMissione) {
missione = newMissione;
}
public void setNazione(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk newNazione) {
nazione = newNazione;
if((newNazione == null) || (newNazione.getPg_nazione() == null))
setDivisa_tappa(new DivisaBulk());
}
public void setPg_nazione(java.lang.Long pg_nazione) {
this.getNazione().setPg_nazione(pg_nazione);
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @param newStatus int
*/
public void setStatus(int newStatus) {
status = newStatus;
}
/**
* Insert the method's description here.
* Creation date: (05/03/2002 16.00.59)
* @param newTappaIniziale it.cnr.contab.missioni00.docs.bulk.Missione_tappaBulk
*/
public void setTappaIniziale(Missione_tappaBulk newTappaIniziale) {
tappaIniziale = newTappaIniziale;
}
//
// Validazione tappa da Confermare.
//
public void validaTappa() throws ValidationException
{
if ( getDt_inizio_tappa() == null )
throw new ValidationException( "Selezionare il giorno al quale si riferisce la tappa !" );
if ( getPg_nazione() == null )
throw new ValidationException( "Selezionare una Nazione !" );
if ( getCd_divisa_tappa() == null )
throw new ValidationException( "Manca la valuta !" );
if ( getCambio_tappa() == null )
throw new ValidationException( "Valorizzare il Cambio !" );
if ( getCambio_tappa().compareTo(new java.math.BigDecimal(0)) < 1 )
throw new ValidationException( "Il cambio deve essere > 0 !" );
// Se ho selezionato comune proprio o comune altro la nazione deve essere
// Italia
if ((!getFl_comune_estero().booleanValue()) && (!getNazione().getTi_nazione().equals(NazioneBulk.ITALIA)))
throw new ValidationException( "La nazione non e' valida !" );
if((getDt_ingresso_estero() != null) && (getDt_uscita_estero() != null) &&
(getDt_uscita_estero().before(getDt_ingresso_estero())))
throw new ValidationException( "La data ingresso estero non puo' essere successiva a quella di uscita !" );
// Verifico che l'utente non abbia inserito un'altra tappa per lo stesso
// giorno
int i=0;
for (Iterator j = getMissione().getTappeMissioneColl().iterator(); j.hasNext();)
{
Missione_tappaBulk tappa = (Missione_tappaBulk) j.next();
if(tappa.getDt_inizio_tappa().equals(getDt_inizio_tappa()))
i++;
// 1 esistera' sicuramente perche' e' quella che sto inserendo
if(i > 1)
throw new ValidationException( "La tappa del giorno selezionato e' gia' stata configurata !" );
}
// Se ho settato "Allogio gratuito" o "Vitto e alloggio gratuito" non posso scegliere il trattamento alternativo
if((getFl_alloggio_gratuito().booleanValue()||getFl_vitto_alloggio_gratuito().booleanValue())&& getFl_rimborso().booleanValue())
throw new ValidationException( "Non è possibile scegliere il Trattamento alternativo quando l'Alloggio è gratuito !" );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy