All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.cnr.contab.docamm00.bp.FatturaPassivaRigaIntrastatCRUDController 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.docamm00.bp;

import it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk;
import it.cnr.contab.docamm00.intrastat.bulk.Fattura_passiva_intraBulk;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.ValidationException;

import java.math.BigDecimal;
import java.util.Iterator;

/**
 * Insert the type's description here.
 * Creation date: (10/16/2001 11:32:54 AM)
 *
 * @author: Roberto Peli
 */
public class FatturaPassivaRigaIntrastatCRUDController extends it.cnr.jada.util.action.SimpleDetailCRUDController {
    /**
     * FatturaPassivaRigaCRUDController constructor comment.
     *
     * @param name             java.lang.String
     * @param modelClass       java.lang.Class
     * @param listPropertyName java.lang.String
     * @param parent           it.cnr.jada.util.action.FormController
     */
    public FatturaPassivaRigaIntrastatCRUDController(String name, Class modelClass, String listPropertyName, it.cnr.jada.util.action.FormController parent) {
        super(name, modelClass, listPropertyName, parent);
    }

    /**
     * Restituisce true se è possibile aggiungere nuovi elementi
     */
    public boolean isGrowable() {

        Fattura_passivaBulk fattura = (Fattura_passivaBulk) getParentModel();
        Boolean trovato = false;
        if (fattura.getFl_intra_ue() != null && fattura.getFl_intra_ue().booleanValue() &&
                fattura.getFornitore() != null && fattura.getFornitore().getAnagrafico() != null && fattura.getFornitore().getAnagrafico().getPartita_iva() != null &&
                fattura.getFattura_passiva_dettColl() != null && !fattura.getFattura_passiva_dettColl().isEmpty()) {
            for (Iterator i = fattura.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
                Fattura_passiva_rigaBulk dettaglio = (Fattura_passiva_rigaBulk) i.next();
                if (dettaglio.getBene_servizio() != null && dettaglio.getBene_servizio().getFl_obb_intrastat_acq().booleanValue())
                    trovato = true;
            }
        }
        return (//super.isGrowable() &&
                !((it.cnr.jada.util.action.CRUDBP) getParentController()).isSearching() &&
                        trovato);
    }

    public boolean isInputReadonly() {

        return isReadonly() || isParentControllerReadonly();
    }

    public boolean isParentControllerReadonly() {

        CRUDFatturaPassivaBP parentC = (CRUDFatturaPassivaBP) getParentController();
        return (!parentC.isEditable() && !parentC.isSearching()) ||
                parentC.isDeleting() ||
                parentC.isModelVoided();
    }

    /**
     * Restituisce true se è possibile eliminare elementi
     */
    public boolean isShrinkable() {
        Fattura_passivaBulk fatturaP = (Fattura_passivaBulk) getParentModel();
        return    //super.isShrinkable() &&
                !((it.cnr.jada.util.action.CRUDBP) getParentController()).isSearching() &&
                        fatturaP.getFattura_passiva_intrastatColl() != null &&
                        !fatturaP.getFattura_passiva_intrastatColl().isEmpty();
    }

    public void validate(ActionContext context, OggettoBulk model) throws ValidationException {

        Fattura_passiva_intraBulk fpi = (Fattura_passiva_intraBulk) model;
        String descr = (fpi.getDs_bene() == null) ? "selezionato" : fpi.getDs_bene();
        if (fpi.getAmmontare_euro() == null)
            throw new ValidationException("Specificare un ammontare in euro per il dettaglio " + descr + "!");

        if ((fpi.getFattura_passiva() != null && ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore() != null &&
                ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico() != null &&
                (((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getNazionalita() != null &&
                        ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getNazionalita().getDivisa() != null) ||
                (((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getComune_fiscale() != null &&
                        ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getComune_fiscale().getNazione() != null &&
                        ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getComune_fiscale().getNazione().getDivisa() != null)) &&
                fpi.getAmmontare_euro().compareTo(BigDecimal.ZERO) != 0 && (fpi.getAmmontare_divisa() == null || fpi.getAmmontare_divisa().compareTo(BigDecimal.ZERO) == 0)) {
            throw new ValidationException("Specificare un ammontare in divisa per il dettaglio " + descr + "!");
        } else if ((fpi.getFattura_passiva() != null && ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore() != null &&
                ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico() != null &&
                (((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getNazionalita() != null &&
                        ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getNazionalita().getDivisa() == null) ||
                (((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getComune_fiscale() != null &&
                        ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getComune_fiscale().getNazione() != null &&
                        ((Fattura_passivaBulk) fpi.getFattura_passiva()).getFornitore().getAnagrafico().getComune_fiscale().getNazione().getDivisa() == null)) &&
                (fpi.getAmmontare_divisa() != null && fpi.getAmmontare_divisa().compareTo(BigDecimal.ZERO) != 0)) {
            throw new ValidationException("Non specificare un ammontare in divisa per il dettaglio " + descr + "!");
        }


        if (fpi.getFattura_passiva() != null && fpi.getFattura_passiva().getTi_bene_servizio().compareTo(Fattura_passivaBulk.FATTURA_DI_BENI) == 0) {
            if (fpi.getValore_statistico() == null || (fpi.getValore_statistico().compareTo(java.math.BigDecimal.ZERO) == 0 && fpi.getAmmontare_euro().compareTo(java.math.BigDecimal.ZERO) != 0))
                throw new ValidationException("Specificare un valore statistico per il dettaglio " + descr + "!");
            if (fpi.getValore_statistico().compareTo(fpi.getAmmontare_euro()) > 0)
                throw new ValidationException("L'importo del valore statistico non può essere superiore all'ammontare in euro per il dettaglio " + descr + "!");
            if (fpi.getNatura_transazione() == null || fpi.getNatura_transazione().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una natura transazione per il dettaglio " + descr + "!");
            if (fpi.getModalita_trasporto() == null || fpi.getModalita_trasporto().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una modalità di trasporto per il dettaglio " + descr + "!");
            if (fpi.getNazione_origine() == null || fpi.getNazione_origine().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una nazione di origine per il dettaglio " + descr + "!");
            if (fpi.getCondizione_consegna() == null || fpi.getCondizione_consegna().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una condizione di consegna per il dettaglio " + descr + "!");
            if (fpi.getNazione_provenienza() == null || fpi.getNazione_provenienza().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una nazione di provenienza per il dettaglio " + descr + "!");
            if (fpi.getProvincia_destinazione() == null || fpi.getProvincia_destinazione().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una provincia di destinazione per il dettaglio " + descr + "!");
            if (fpi.getNomenclatura_combinata() == null || fpi.getNomenclatura_combinata().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una nomenclatura combinata per il dettaglio " + descr + "!");
            if (fpi.getNomenclatura_combinata() != null && fpi.getNomenclatura_combinata().getUnita_supplementari() != null && (fpi.getUnita_supplementari() == null || new BigDecimal(fpi.getUnita_supplementari()).compareTo(BigDecimal.ZERO) == 0))
                throw new ValidationException("Specificare le unità supplementari per il dettaglio " + descr + "!");
            if (fpi.getNomenclatura_combinata() != null && fpi.getNomenclatura_combinata().getUnita_supplementari() == null && (fpi.getMassa_netta() == null || fpi.getMassa_netta().compareTo(BigDecimal.ZERO) == 0))
                throw new ValidationException("Specificare una massa netta per il dettaglio " + descr + "!");
        } else {
            if (fpi.getModalita_incasso() == null || fpi.getModalita_incasso().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una modalita di incasso per il dettaglio " + descr + "!");
            if (fpi.getModalita_erogazione() == null || fpi.getModalita_erogazione().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una modalita di erogazione per il dettaglio " + descr + "!");
            if (fpi.getCodici_cpa() == null || fpi.getCodici_cpa().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare il codice servizio (cpa) per il dettaglio " + descr + "!");
            if (fpi.getNazione_provenienza() == null || fpi.getNazione_provenienza().getCrudStatus() != OggettoBulk.NORMAL)
                throw new ValidationException("Specificare una nazione di pagamento per il dettaglio " + descr + "!");

        }

    }

    public void validateForDelete(ActionContext context, OggettoBulk detail) throws ValidationException {

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy