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

it.cnr.contab.docamm00.docs.bulk.Lettera_pagam_esteroBulk 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.docs.bulk;

import java.rmi.RemoteException;
import java.util.Arrays;
import java.util.Collections;
import java.util.Optional;
import java.util.stream.Collectors;

import javax.ejb.EJBException;


import it.cnr.contab.doccont00.core.bulk.MandatoBulk;
import it.cnr.contab.doccont00.core.bulk.Mandato_rigaIBulk;
import it.cnr.contab.doccont00.core.bulk.SospesoBulk;
import it.cnr.contab.doccont00.intcass.bulk.DistintaCassiere1210Bulk;
import it.cnr.contab.doccont00.intcass.bulk.StatoTrasmissione;
import it.cnr.contab.service.SpringUtil;
import it.cnr.contab.spring.service.StorePath;
import it.cnr.si.spring.storage.StorageService;
import it.cnr.si.spring.storage.annotation.StorageProperty;
import it.cnr.si.spring.storage.annotation.StorageType;
import it.cnr.contab.util.Utility;
import it.cnr.contab.util00.bulk.storage.AllegatoGenericoBulk;
import it.cnr.contab.util00.bulk.storage.AllegatoParentBulk;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.bulk.*;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.action.CRUDBP;

@SuppressWarnings("unchecked")
@StorageType(name="D:doccont:document")
public class Lettera_pagam_esteroBulk extends Lettera_pagam_esteroBase implements AllegatoParentBulk, StatoTrasmissione{

	private it.cnr.contab.doccont00.core.bulk.SospesoBulk sospeso = null;
	private java.util.Vector sospesiCancellati = null;
	private boolean annoDiCompetenza = true;
	private BulkList archivioAllegati = new BulkList();
	private String documento;
	private DistintaCassiere1210Bulk distintaCassiere;
	
	@SuppressWarnings("rawtypes")
	public final static java.util.Dictionary stato_trasmissioneKeys;
	static 
	{
		stato_trasmissioneKeys = new it.cnr.jada.util.OrderedHashtable();
		stato_trasmissioneKeys.put(it.cnr.contab.doccont00.core.bulk.MandatoBulk.STATO_TRASMISSIONE_NON_INSERITO,	"Non inserito in distinta");
		stato_trasmissioneKeys.put(it.cnr.contab.doccont00.core.bulk.MandatoBulk.STATO_TRASMISSIONE_PREDISPOSTO,	"Predisposto alla Firma");
		stato_trasmissioneKeys.put(it.cnr.contab.doccont00.core.bulk.MandatoBulk.STATO_TRASMISSIONE_PRIMA_FIRMA,	"Prima Firma");		
		stato_trasmissioneKeys.put(it.cnr.contab.doccont00.core.bulk.MandatoBulk.STATO_TRASMISSIONE_INSERITO,		"Inserito in distinta");		
		stato_trasmissioneKeys.put(it.cnr.contab.doccont00.core.bulk.MandatoBulk.STATO_TRASMISSIONE_TRASMESSO,		"Trasmesso");
		stato_trasmissioneKeys.put(StatoTrasmissione.ALL, "Tutti");
	}
	public final static String BONIFICO_MEZZO_SWIFT = "S", BONIFICO_MEZZO_TELEGRAMMA = "T", BONIFICO_MEZZO_ASSEGNO = "A";
	@SuppressWarnings("rawtypes")
	public final static java.util.Dictionary ti_bonifico_mezzoKeys;
	static 
	{
		ti_bonifico_mezzoKeys = new it.cnr.jada.util.OrderedHashtable();
		ti_bonifico_mezzoKeys.put(BONIFICO_MEZZO_SWIFT, "S.W.I.F.T.");
		ti_bonifico_mezzoKeys.put(BONIFICO_MEZZO_TELEGRAMMA, "telegramma - telex");
		ti_bonifico_mezzoKeys.put(BONIFICO_MEZZO_ASSEGNO, "assegno da inoltrare al beneficiario");				
	}

	public final static String AMMONTARE_DEBITO_NOSTRO_CONTO = "N", AMMONTARE_DEBITO_CONTO_PROVVISORIO = "P", AMMONTARE_DEBITO_CONTO_SPEC_DEBITORE = "D";
	@SuppressWarnings("rawtypes")
	public final static java.util.Dictionary ti_ammontare_debitoKeys;
	static 
	{
		ti_ammontare_debitoKeys = new it.cnr.jada.util.OrderedHashtable();
		ti_ammontare_debitoKeys.put(AMMONTARE_DEBITO_NOSTRO_CONTO, "nostro conto in");
		ti_ammontare_debitoKeys.put(AMMONTARE_DEBITO_CONTO_PROVVISORIO, "contro provvisorio a nostro nome");
		ti_ammontare_debitoKeys.put(AMMONTARE_DEBITO_CONTO_SPEC_DEBITORE, "conto spec debitore in");				
	}

	public final static String COMMISSIONE_SPESE_NOSTRO_CARICO = "N", COMMISSIONE_SPESE_CARICO_BENEFICIARIO = "B";
	@SuppressWarnings("rawtypes")
	public final static java.util.Dictionary ti_commissione_speseKeys;
	static 
	{
		ti_commissione_speseKeys = new it.cnr.jada.util.OrderedHashtable();
		ti_commissione_speseKeys.put(COMMISSIONE_SPESE_NOSTRO_CARICO, "nostro carico");
		ti_commissione_speseKeys.put(COMMISSIONE_SPESE_CARICO_BENEFICIARIO, "a carico del beneficiario");
	}
	
	public Lettera_pagam_esteroBulk() {
		super();
		setStato_trasmissione(MandatoBulk.STATO_TRASMISSIONE_NON_INSERITO);
	}
	public Lettera_pagam_esteroBulk(java.lang.String cd_cds,java.lang.String cd_unita_organizzativa,java.lang.Integer esercizio,java.lang.Long pg_lettera) {
		super(cd_cds,cd_unita_organizzativa,esercizio,pg_lettera);
		setStato_trasmissione(MandatoBulk.STATO_TRASMISSIONE_NON_INSERITO);
	}
	
	public static java.util.Dictionary getStatoTrasmissionekeys() {
		return stato_trasmissioneKeys;
	}
	
	public static java.util.Dictionary getTiBonificoMezzokeys() {
		return ti_bonifico_mezzoKeys;
	}
	
	public static java.util.Dictionary getTiAmmontareDebitokeys() {
		return ti_ammontare_debitoKeys;
	}
	public static java.util.Dictionary getTiCommissioneSpesekeys() {
		return ti_commissione_speseKeys;
	}
	public void addToSospesiCancellati(SospesoBulk sospeso) {
		if (getSospesiCancellati() == null)
			setSospesiCancellati(new java.util.Vector());
		if (!BulkCollections.containsByPrimaryKey(getSospesiCancellati(), sospeso))
			getSospesiCancellati().addElement(sospeso);
	}

	public void completeFrom(ActionContext context) 
			throws javax.ejb.EJBException, java.text.ParseException, ComponentException, RemoteException {

		java.sql.Timestamp date = it.cnr.jada.util.ejb.EJBCommonServices.getServerTimestamp();
		int annoSolare = Fattura_passivaBulk.getDateCalendar(date).get(java.util.Calendar.YEAR);
		int esercizioInScrivania = it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).intValue();
		setAnnoDiCompetenza(esercizioInScrivania == getEsercizio().intValue());
		if (annoSolare != esercizioInScrivania)
			date = new java.sql.Timestamp(new java.text.SimpleDateFormat("dd/MM/yyyy").parse("31/12/" + esercizioInScrivania).getTime());
		setDt_registrazione(date);

		setIm_commissioni(new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
		setIm_pagamento(new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
		setAmmontare_debito(AMMONTARE_DEBITO_NOSTRO_CONTO);				
		try {
			setConto_debito(Utility.createConfigurazioneCnrComponentSession().getVal03(context.getUserContext(), 0, "*", "CONTO_CORRENTE_SPECIALE", "ENTE"));
		} catch (ComponentException e) {
			throw new EJBException(e);
		} catch (RemoteException e) {
			throw new EJBException(e);
		}
		SospesoBulk sospeso = new SospesoBulk();
		sospeso.setEsercizio(getEsercizio());
		//if (!Utility.createParametriCnrComponentSession().getParametriCnr(context.getUserContext(),this.getEsercizio()).getFl_tesoreria_unica().booleanValue())
			sospeso.setCd_cds(getCd_cds_sospeso());
		sospeso.setTi_entrata_spesa(sospeso.TIPO_SPESA);
		sospeso.setTi_sospeso_riscontro(sospeso.TI_SOSPESO);
		setSospeso(sospeso);
		setUser(context.getUserInfo().getUserid());
	}
	public it.cnr.jada.bulk.OggettoBulk[] getBulksForPersistentcy() {
		return new it.cnr.jada.bulk.OggettoBulk[] { getSospeso() };
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (6/12/2002 5:18:43 PM)
	 * @return it.cnr.jada.bulk.BulkList
	 */
	public java.util.Vector getSospesiCancellati() {
		return sospesiCancellati;
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (6/7/2002 3:17:11 PM)
	 * @return it.cnr.contab.doccont00.core.bulk.SospesoBulk
	 */
	public it.cnr.contab.doccont00.core.bulk.SospesoBulk getSospeso() {
		return sospeso;
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (6/7/2002 3:17:11 PM)
	 * @return it.cnr.contab.doccont00.core.bulk.SospesoBulk
	 */
	public java.util.Dictionary getTipo_sospesoKeys() {

		java.util.Dictionary tipi = new java.util.Hashtable();
		tipi.put("E", "Entrata");
		tipi.put("S", "Spesa");
		return tipi;
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (03/07/2003 15.36.58)
	 * @return boolean
	 */
	public boolean isAnnoDiCompetenza() {
		return annoDiCompetenza;
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (6/11/2002 5:10:59 PM)
	 */
	public boolean isROSospeso() {

		return false;
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (6/11/2002 5:10:59 PM)
	 */
	public boolean isROSospesoSearchTool() {

		return !isAnnoDiCompetenza();	
	}
	public int removeFromSospesiCancellati(SospesoBulk sospeso) {

		if (getSospesiCancellati() == null)
			return -1;
		if (BulkCollections.containsByPrimaryKey(getSospesiCancellati(), sospeso))
			getSospesiCancellati().remove(BulkCollections.indexOfByPrimaryKey(getSospesiCancellati(), sospeso));
		return getSospesiCancellati().size()-1;
	}

	/**
	 * Insert the method's description here.
	 * Creation date: (03/07/2003 15.36.58)
	 * @param newAnnoDiCompetenza boolean
	 */
	public void setAnnoDiCompetenza(boolean newAnnoDiCompetenza) {
		annoDiCompetenza = newAnnoDiCompetenza;
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (6/12/2002 5:18:43 PM)
	 * @param newSospesiCancellati it.cnr.jada.bulk.BulkList
	 */
	public void setSospesiCancellati(java.util.Vector newSospesiCancellati) {
		sospesiCancellati = newSospesiCancellati;
	}
	/**
	 * Insert the method's description here.
	 * Creation date: (6/7/2002 3:17:11 PM)
	 * @param newSospeso it.cnr.contab.doccont00.core.bulk.SospesoBulk
	 */
	public void setSospeso(it.cnr.contab.doccont00.core.bulk.SospesoBulk newSospeso) {
		sospeso = newSospeso;
	}
	public void validate() throws ValidationException {
		if (getIm_commissioni() == null)
			throw new ValidationException("Specificare un importo per le commissioni della lettera di pagamento estero!");
		if (getIm_pagamento() != null && getIm_pagamento().compareTo(new java.math.BigDecimal(0)) == 0) {
			throw new ValidationException("Valorizzare l'importo di pagamento!");
		}
		if (getIm_pagamento() != null && getIm_pagamento().compareTo(new java.math.BigDecimal(0)) != 0) {
			if (getIm_pagamento().compareTo(getIm_commissioni()) < 0)
				throw new ValidationException("L'importo delle commissioni della lettera di pagamento estero non puo' superare l'importo di pagamento!");
		}
		if (getDivisa() == null)
			throw new ValidationException("Valorizzare la Divisa!");
		for (int i = 0;i  String.valueOf(esercizio))
						.orElse("0"),
				getCMISFolderName()
		).stream().collect(
				Collectors.joining(StorageService.SUFFIX)
		);
	}


	public Long getPg_documento_cont() {
		return getPg_lettera();
	}
	@StorageProperty(name="doccont:tipo")
	public String getCd_tipo_documento_cont() {
		return "1210";
	}

	public BulkCollection[] getBulkLists() {
		 return new it.cnr.jada.bulk.BulkCollection[] { 
				archivioAllegati };
	}	
	public AllegatoGenericoBulk removeFromArchivioAllegati(int index) {
		return getArchivioAllegati().remove(index);
	}
	public int addToArchivioAllegati(AllegatoGenericoBulk allegato) {
		archivioAllegati.add(allegato);
		return archivioAllegati.size()-1;		
	}
	public BulkList getArchivioAllegati() {
		return archivioAllegati;
	}
	public void setArchivioAllegati(
			BulkList archivioAllegati) {
		this.archivioAllegati = archivioAllegati;
	}
	public DistintaCassiere1210Bulk getDistintaCassiere() {
		return distintaCassiere;
	}
	public void setDistintaCassiere(DistintaCassiere1210Bulk distintaCassiere) {
		this.distintaCassiere = distintaCassiere;
	}
	
	@Override
	public Integer getEsercizio_distinta() {
		if (distintaCassiere == null)
			return null;
		return distintaCassiere.getEsercizio();
	}
	
	@Override
	public void setEsercizio_distinta(Integer esercizio_distinta) {
		distintaCassiere.setEsercizio(esercizio_distinta);
	}

	@Override
	public String getCd_sospeso() {
		if (getSospeso() == null)
			return null;
		return getSospeso().getCd_sospeso();
	}
	
	@Override
	public void setCd_sospeso(String cd_sospeso) {
		if (getSospeso() != null)
			getSospeso().setCd_sospeso(cd_sospeso);
		else
			super.setCd_sospeso(cd_sospeso);
	}
	@Override
	public Long getPg_distinta() {
		if (distintaCassiere == null)
			return null;
		return distintaCassiere.getPgDistinta();
	}
	
	@Override
	public void setPg_distinta(Long pg_distinta) {
		distintaCassiere.setPgDistinta(pg_distinta);
	}
	public String getDisplayStatoTrasmissione() {
		if (getStato_trasmissione() == null)
			return null;
		return (String) stato_trasmissioneKeys.get(getStato_trasmissione());
	}
	public String getCMISName() {
		return getCMISFolderName() + ".pdf";
	}

	/**
	 * @return it.cnr.jada.bulk.BulkList
	 */
	public it.cnr.jada.bulk.BulkList getMandato_rigaColl() {
		return new BulkList<>(Collections.emptyList());
	}

	@Override
	public String toString() {
		return Optional.ofNullable(getPg_lettera())
					.map(lettera -> "Lettera di Pagamento estero n. " + lettera)
				.orElseGet(() -> super.toString());
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy