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

it.cnr.contab.inventario01.bp.CRUDScaricoInventarioBP 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 .
 */

/*
 * Created on Jan 19, 2006
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package it.cnr.contab.inventario01.bp;

import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.util.BitSet;

import it.cnr.contab.docamm00.docs.bulk.Documento_generico_rigaBulk;
import it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_rigaBulk;
import it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_rigaIBulk;
import it.cnr.contab.docamm00.docs.bulk.Nota_di_credito_rigaBulk;
import it.cnr.contab.inventario00.bp.RigheInvDaFatturaCRUDController;
import it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk;
import it.cnr.contab.inventario00.docs.bulk.Trasferimento_inventarioBulk;
import it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession;
import it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk;
import it.cnr.contab.inventario01.bulk.Buono_carico_scarico_dettBulk;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.PrimaryKeyHashtable;
import it.cnr.jada.bulk.SimpleBulkList;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.EmptyRemoteIterator;
import it.cnr.jada.util.action.AbstractDetailCRUDController;
import it.cnr.jada.util.action.RemoteDetailCRUDController;
import it.cnr.jada.util.action.Selection;
import it.cnr.jada.util.action.SelectionIterator;
import it.cnr.jada.util.action.SelectionListener;
import it.cnr.jada.util.action.SimpleDetailCRUDController;

/**
 * @author rpucciarelli
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class CRUDScaricoInventarioBP extends CRUDCaricoScaricoInventarioBP  implements SelectionListener{
	
	public CRUDScaricoInventarioBP() {
	super("Tr");
	setTab("tab","tabScaricoInventarioTestata");
}

public CRUDScaricoInventarioBP(String function) {
	super(function+"Tr");
}

private it.cnr.jada.persistency.sql.CompoundFindClause clauses;
/* Controller utilizzato per la visualizzazione delle righe di Fattura Attiva,
 *	nel caso di creazione del buono di Scarico da Fattura Attiva. 
*/ 
private final SimpleDetailCRUDController dettagliFattura = new it.cnr.jada.util.action.SimpleDetailCRUDController("DettagliFattura",Fattura_attiva_rigaBulk.class,"dettagliFatturaColl",this,true);

private final SimpleDetailCRUDController dettagliDocumento = new it.cnr.jada.util.action.SimpleDetailCRUDController("DettagliDocumento",Documento_generico_rigaBulk.class,"dettagliDocumentoColl",this,true);

/*
 * Controller utilizzato per la visualizzazioner dei beni legati ad una Riga di Fattura.
*/ 	 
private final RigheInvDaFatturaCRUDController righeInventarioDaFattura = new RigheInvDaFatturaCRUDController("RigheInventarioDaFattura",Inventario_beniBulk.class,"beniAssociati","CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession",dettagliFattura){
	protected it.cnr.jada.util.RemoteIterator createRemoteIterator(ActionContext context) {
		try{
			if (isBy_fattura() && isInserting())
				return selectBeniAssociatibyClause(context);
			else
				return new it.cnr.jada.util.EmptyRemoteIterator();
		} catch (BusinessProcessException e){
			return null;
		}
			
	}	
	public void removeAll(it.cnr.jada.action.ActionContext context) throws ValidationException,it.cnr.jada.action.BusinessProcessException {
		eliminaBeniAssociatiConBulk(context);
		reset(context);
	}
	protected void removeDetails(ActionContext context,it.cnr.jada.bulk.OggettoBulk[] details) throws BusinessProcessException {
		eliminaBeniAssociatiConBulk(context, details);
	}

	public void validate(ActionContext context,OggettoBulk model) throws ValidationException {			
		validateDettagliDaFattura(context,model);
	}
};
private final RigheInvDaFatturaCRUDController righeInventarioDaDocumento = new RigheInvDaFatturaCRUDController("RigheInventarioDaDocumento",Inventario_beniBulk.class,"beniAssociati","CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession",dettagliDocumento){
	protected it.cnr.jada.util.RemoteIterator createRemoteIterator(ActionContext context) {
		try{
			if (isBy_documento() && isInserting())
				return selectBeniAssociatiDocbyClause(context);
			else
				return new it.cnr.jada.util.EmptyRemoteIterator();
		} catch (BusinessProcessException e){
			return null;
		}
			
	}	
	public void removeAll(it.cnr.jada.action.ActionContext context) throws ValidationException,it.cnr.jada.action.BusinessProcessException {
		eliminaBeniAssociatiDocConBulk(context);
		reset(context);
	}
	protected void removeDetails(ActionContext context,it.cnr.jada.bulk.OggettoBulk[] details) throws BusinessProcessException {
		eliminaBeniAssociatiDocConBulk(context, details);
	}

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

protected void init(it.cnr.jada.action.Config config,it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {

	super.init(config,context);
	resetTabs();
}
public OggettoBulk initializeModelForEdit(ActionContext context,OggettoBulk bulk) throws BusinessProcessException {
	if (bulk instanceof Trasferimento_inventarioBulk) {
		bulk = super.initializeModelForEdit(context, bulk);
		return bulk;
	}
		Buono_carico_scaricoBulk testata = (Buono_carico_scaricoBulk)bulk;
		testata.setTi_documento("S");	
		PrimaryKeyHashtable righeFatturaHash = null;
		try {
			if (by_fattura){
				righeFatturaHash = ((Buono_carico_scaricoBulk)bulk).getDettagliRigheHash();
			}
			else if (by_documento){
				righeFatturaHash = ((Buono_carico_scaricoBulk)bulk).getDettagliRigheDocHash();
			}
			bulk = super.initializeModelForEdit(context, testata);
			if (by_fattura){
				((Buono_carico_scaricoBulk)bulk).setDettagliRigheHash(righeFatturaHash);
			}else if (by_documento){
				((Buono_carico_scaricoBulk)bulk).setDettagliRigheDocHash(righeFatturaHash);
			}
			return bulk;
		} catch(Throwable e) {
			throw new it.cnr.jada.action.BusinessProcessException(e);
		}
		
}
public OggettoBulk initializeModelForInsert(ActionContext context,OggettoBulk bulk) throws BusinessProcessException {
			Buono_carico_scaricoBulk testata = (Buono_carico_scaricoBulk)bulk;
			testata.setTi_documento("S");
			bulk = super.initializeModelForInsert(context, testata);
			return bulk;
}
public OggettoBulk initializeModelForFreeSearch(
	ActionContext actioncontext,
	OggettoBulk oggettobulk)
	throws BusinessProcessException {
		Buono_carico_scaricoBulk testata = (Buono_carico_scaricoBulk)oggettobulk;
		testata.setTi_documento("S");
		oggettobulk = super.initializeModelForFreeSearch(actioncontext, testata);
		return oggettobulk;
}

public OggettoBulk initializeModelForSearch(ActionContext context,OggettoBulk bulk) throws BusinessProcessException {
			Buono_carico_scaricoBulk testata = (Buono_carico_scaricoBulk)bulk;
			testata.setTi_documento("S");
			bulk = super.initializeModelForSearch(context, testata);
			return bulk;
}
public void resetForSearch(ActionContext context) throws BusinessProcessException {
	super.resetForSearch(context);
	resetTabs();
}
public void resetTabs() {
	setTab("tab","tabScaricoInventarioTestata");
}

 protected final RigheInvDaFatturaCRUDController dettController = new RigheInvDaFatturaCRUDController("DettController",Inventario_beniBulk.class,"DettagliScarico","CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession",this){
	
	protected void validate(ActionContext context,OggettoBulk bulk) throws ValidationException {
		if (bulk instanceof Inventario_beniBulk)
		validaDettaglioScarico(context, bulk);
	}
	protected it.cnr.jada.util.RemoteIterator createRemoteIterator(ActionContext context) {
		try{				
			if (!isBy_fattura() && (isInserting()||isEditing()))
				return selectDettagliScaricobyClause(context);
			else return new it.cnr.jada.util.EmptyRemoteIterator();
		} catch (BusinessProcessException e){
			return null;
		}
			
	}
	public void removeAll(it.cnr.jada.action.ActionContext context) throws ValidationException,it.cnr.jada.action.BusinessProcessException {
		eliminaDettagliScaricoConBulk(context);
		reset(context);
	}
	protected void removeDetails(ActionContext context,it.cnr.jada.bulk.OggettoBulk[] details) throws BusinessProcessException {
		eliminaDettagliScaricoConBulk(context, details);
	}

};
/* Controller utilizzato per la visualizzazione dei dettagli del Buono  di Scarico 
 *	in fase di modifica. Permette di lavorare sulla tabella BUONO_CARICO_SCARICO_DETT.
 *	In fase di creazione verrà utilizzto il controller dettagliCRUDController, (v.)
*/ 
private final RemoteDetailCRUDController editDettController = new RemoteDetailCRUDController("editDettController",Buono_carico_scarico_dettBulk.class,"EditDettagliScarico","CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession",this) {
	protected it.cnr.jada.util.RemoteIterator createRemoteIterator(ActionContext context) {
		try{
			if (isInserting())
				return new it.cnr.jada.util.EmptyRemoteIterator();
			else
				return selectEditDettagliScaricobyClause(context);
		} catch (BusinessProcessException e){
			return null;
		}
			
	}
};
/**
 * Cerca tutti i beni associati ad una riga di Fattura Attiva
 *	Il Buono di Scarico che si sta creando è stato generato da una Fattura Attiva. E' stata
 *	generata la richiesta di visualizzare i beni associati ad una riga di dettaglio della Fattura.
 *	Invoca il metodo BuonoScaricoComponent.selectBeniAssociatiByClause
 *
 * @param userContext lo UserContext che ha generato la richiesta.
 *
 * @return RemoteIterator l'Iteratore sui beni.
**/
private it.cnr.jada.util.RemoteIterator selectBeniAssociatibyClause(ActionContext context) throws BusinessProcessException{

	
	try {
		it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController)getRigheInventarioDaFattura()).getFilter();
		it.cnr.jada.UserContext userContext = context.getUserContext();
		Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk)getModel();
		if (getDettagliFattura().getModel().getClass().equals(Fattura_attiva_rigaIBulk.class)){
			Class bulkClass = Inventario_beniBulk.class;
			Fattura_attiva_rigaIBulk rigaFattura = (Fattura_attiva_rigaIBulk)getDettagliFattura().getModel();
		return ((BuonoCaricoScaricoComponentSession)createComponentSession()).selectBeniAssociatiByClause(userContext,buonoS,rigaFattura,bulkClass,clauses);
		}
		else{
			Nota_di_credito_rigaBulk nota = (Nota_di_credito_rigaBulk)getDettagliFattura().getModel();
			Class bulkClass = Inventario_beniBulk.class;
		return ((BuonoCaricoScaricoComponentSession)createComponentSession()).selectBeniAssociatiByClause(userContext,buonoS,nota,bulkClass,clauses);
		}
	} catch(it.cnr.jada.comp.ComponentException e) {
		throw handleException(e);
	} catch(java.rmi.RemoteException e) {
		throw handleException(e);
	} 	
	
}
private it.cnr.jada.util.RemoteIterator selectBeniAssociatiDocbyClause(ActionContext context) throws BusinessProcessException{

	
	try {
		it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController)getRigheInventarioDaDocumento()).getFilter();
		it.cnr.jada.UserContext userContext = context.getUserContext();
		Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk)getModel();
		Class bulkClass = Inventario_beniBulk.class;
		return ((BuonoCaricoScaricoComponentSession)createComponentSession()).selectBeniAssociatiByClause(userContext,buonoS,getDettagliDocumento().getModel(),bulkClass,clauses);
	} catch(it.cnr.jada.comp.ComponentException e) {
		throw handleException(e);
	} catch(java.rmi.RemoteException e) {
		throw handleException(e);
	} 	
	
}
/**
 * Cerca tutti i beni del Buono di Scarico.
 *	E' stata generata la richiesta di visualizzare i beni del Buono di Scarico.
 *	Invoca il metodo BuonoScaricoComponent.selectBeniAssociatiByClause
 *
 * @param userContext lo UserContext che ha generato la richiesta.
 *
 * @return RemoteIterator l'Iteratore sui beni.
**/
private it.cnr.jada.util.RemoteIterator selectDettagliScaricobyClause(ActionContext context) throws BusinessProcessException{

	
	try {
		it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController)getRigheInventarioDaFattura()).getFilter();
		it.cnr.jada.UserContext userContext = context.getUserContext();
		Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk)getModel();
		Fattura_attiva_rigaIBulk rigaFattura = (Fattura_attiva_rigaIBulk)getDettagliFattura().getModel();
		Class bulkClass = Inventario_beniBulk.class;

		
		return ((BuonoCaricoScaricoComponentSession)createComponentSession()).selectBeniAssociatiByClause(userContext,buonoS,rigaFattura,bulkClass,clauses);		
	} catch(it.cnr.jada.comp.ComponentException e) {
		throw handleException(e);
	} catch(java.rmi.RemoteException e) {
		throw handleException(e);
	} 	
	
}
private void eliminaBeniAssociatiConBulk(ActionContext context) throws it.cnr.jada.action.BusinessProcessException{
	
	
	try {
		if(getDettagliFattura().getModel()!=null )
			((BuonoCaricoScaricoComponentSession)createComponentSession()).eliminaBeniAssociatiConBulk(
			context.getUserContext(),
			(Buono_carico_scaricoBulk)getModel(),
			getDettagliFattura().getModel());
		
	} catch(it.cnr.jada.comp.ComponentException e) {
		throw handleException(e);
	} catch(java.rmi.RemoteException e) {
		throw handleException(e);
	}  catch (Throwable t){
		throw handleException(t);
	}
}
	
/**
 * Gestisce l'operazione di eliminazione alcuni beni associati ad una riga di Fattura Attiva.
 *	L'utente sta creando un Buono di Scarico da una Fattura Attiva, ed ha generato la richiesta 
 *	di cancellare alcuni dei beni finora associati ad un dettaglio della Fattura.
 *	Utilizza il metodo BuonoScaricoComponent.eliminaBeniAssociatiConBulk(UserContext, Buono_scaricoBulk, OggettoBulk[], Fattura_attiva_rigaIBulk).
 *
 * @param context la ActionContext che ha generato la richiesta
 * @param details OggettoBulk[] i beni selezionati dall'utente che andranno eliminati dal Buono di Scarico
**/
private void eliminaBeniAssociatiConBulk(ActionContext context,it.cnr.jada.bulk.OggettoBulk[] details) throws it.cnr.jada.action.BusinessProcessException{

	try {
		if (isBy_fattura()){
			for (int i = 0;iBuonoScaricoComponent.eliminaBeniAssociatiConBulk(UserContext, Buono_scaricoBulk, Fattura_attiva_rigaIBulk).
 *
 * @param context la ActionContext che ha generato la richiesta
**/
private void eliminaDettagliScaricoConBulk(ActionContext context) throws it.cnr.jada.action.BusinessProcessException{
	
	
	try {
		((BuonoCaricoScaricoComponentSession)createComponentSession()).eliminaBeniAssociatiConBulk(
			context.getUserContext(),
			(Buono_carico_scaricoBulk)getModel(),
			getDettagliFattura().getModel());
	} catch(it.cnr.jada.comp.ComponentException e) {
		throw handleException(e);
	} catch(java.rmi.RemoteException e) {
		throw handleException(e);
	} catch (Throwable t){
		throw handleException(t);
	}
}
	
/**
 * Gestisce l'operazione di eliminazione alcuni beni.
 *	L'utente sta creando un Buono diretto, (non da Fattura Attiva), ed ha generato la richiesta 
 *	di cancellare alcuni dei beni finora scaricati.
 *	Utilizza il metodo BuonoCaricoScaricoComponentSession.eliminaBeniAssociatiConBulk(UserContext, Buono_carico_scaricoBulk, OggettoBulk[], Fattura_attiva_rigaIBulk).
 *
 * @param context la ActionContext che ha generato la richiesta
 * @param details OggettoBulk[] i beni selezionati dall'utente che andranno eliminati dal Buono di Scarico
**/
private void eliminaDettagliScaricoConBulk(ActionContext context,it.cnr.jada.bulk.OggettoBulk[] details) throws it.cnr.jada.action.BusinessProcessException{

	try {		
		
		((BuonoCaricoScaricoComponentSession)createComponentSession()).eliminaBeniAssociatiConBulk(
			context.getUserContext(),
			(Buono_carico_scaricoBulk)getModel(),
			details,
			getDettagliFattura().getModel());
	} catch(it.cnr.jada.comp.ComponentException e) {
		throw handleException(e);
	} catch(java.rmi.RemoteException e) {
		throw handleException(e);
	} 
	
}
/**
 * Insert the method's description here.
 * Creation date: (12/09/2002 11.06.12)
 * @return it.cnr.jada.persistency.sql.CompoundFindClause
 */
public it.cnr.jada.persistency.sql.CompoundFindClause getClauses() {
	return clauses;
}

/**
 * Restituisce il valore della proprietà 'DettController'
 *
 * @return RemoteDetailCRUDController il valore della proprietà 'DettController'
 */
public final RemoteDetailCRUDController getDettController() {
	return dettController;
}

private String getIntervallo(Buono_carico_scaricoBulk buonoS){
	
	String intervallo = "";
	if (buonoS.getBuono_carico_scarico_dettColl() != null){
		intervallo = (buonoS.getBuono_carico_scarico_dettColl().size()+1) + "-" + (buonoS.getBuono_carico_scarico_dettColl().size()+1);
	}
	return intervallo;
}
/**
 * E' stata generata la richiesta di cercare i beni disponibili per una operazione d Scarico.
 *	Vengono invocati due diversi metodi della Component BuonoScaricoComponent, a seconda
 *	che il Buono di Scarico sia creato da una Fattura Attiva oppure no:
 *		- invoca il metodo BuonoScaricoComponent.cercaBeniAssociabili, se 
 *			proviene da Fattura Attiva;
 *		- invoca il metodo BuonoScaricoComponent.cercaBeniScaricabili, altrimenti.
 *
 * @param userContext lo UserContext che ha generato la richiesta.
 * @param no_accessori boolean indica se escludere i beni accessori dalla ricerca
 * @param beni_da_escludere SimpleBulkList i beni da escludere dalla ricerca, magari perchè già selezionati
 * @param clauses CompoundFindClause le clausole della selezione.
 *
 * @return l'Iteratore RemoteIterator sui beni trovati.
**/
public it.cnr.jada.util.RemoteIterator getListaBeniDaScaricare(
		it.cnr.jada.UserContext userContext, 
		boolean no_accessori, 
		SimpleBulkList beni_da_escludere,
		SimpleBulkList beni_da_escludere_princ,
		it.cnr.jada.persistency.sql.CompoundFindClause clauses) throws BusinessProcessException, java.rmi.RemoteException, it.cnr.jada.comp.ComponentException {

		if (isBy_fattura()){
			Fattura_attiva_rigaIBulk riga_fattura = (Fattura_attiva_rigaIBulk)getDettagliFattura().getModel();	
			return ((BuonoCaricoScaricoComponentSession)createComponentSession()).cercaBeniAssociabili(userContext, (Buono_carico_scaricoBulk)this.getModel(), riga_fattura, clauses);
		} else
		if (isBy_documento())		
			return ((BuonoCaricoScaricoComponentSession)createComponentSession()).cercaBeniAssociabili(userContext, (Buono_carico_scaricoBulk)this.getModel(),(Documento_generico_rigaBulk) getDettagliDocumento().getModel(), clauses);
		else
			return ((BuonoCaricoScaricoComponentSession)createComponentSession()).cercaBeniScaricabili(userContext, (Buono_carico_scaricoBulk)this.getModel(),no_accessori,beni_da_escludere,clauses);
	}

/**
 * Abilito il pulsane "Nuovo" della finestra dei dettagli.
 *	Permette di nascondere il pulsane "Nuovo" della finestra dei dettagli del Buono di Scarico:
 *	restituisce TRUE se il bene della riga di dettagio è un bene accessorio NON è un bene 
 *	accessorio.
 * 
 * @return boolean lo stato del pulsante.
 */
public boolean isBottoneAggiungiBeneEnabled() {
	boolean isButtonVisible =true;
	Inventario_beniBulk bene = (Inventario_beniBulk)getRigheInventarioDaFattura().getModel();
	if(bene!=null && bene.isTotalmenteScaricato())
	  isButtonVisible = (bene != null)?!bene.isBeneAccessorio():true;

	return isInserting() && isButtonVisible;
}
/**
 * Abilito il pulsane "Cancella" della finestra dei dettagli.
 *	Permette di nascondere il pulsane "Cancella" della finestra dei dettagli del Buono di Scarico:
 *	restituisce TRUE se ci sono beni nella collezione dei beni da scaricare.
 *	accessorio.
 * 
 * @return boolean lo stato del pulsante.
 */
public boolean isBottoneEliminaBeneEnabled() {

	// Abilito il bottone se sono in modifica
	
	if(this.isEditable()){
		Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk)this.getModel();
		if ((buonoS.getBuono_carico_scarico_dettColl() != null) && (buonoS.getBuono_carico_scarico_dettColl().size()!=0))
			return true;
	}
	return false;	// disabilito
}

public boolean isBottoneScaricaBeneEnabled() {
	return true;
}
/**
 * Disabilito il tasto Cancella, in quanto NON è possibile cancellare un Buono di Scarico
 * 	una volta creato.
 * 
 * @return boolean lo stato del pulsante.
 */
public boolean isDeleteButtonEnabled() {
	if (isVisualizzazione())
		return false;	
	/*Inventario_beniBulk dettScarico = (Inventario_beniBulk)getDettController().getModel();
	if ((dettScarico != null)&& (dettScarico.getFl_totalmente_scaricato()!=null)&&(dettScarico.getFl_totalmente_scaricato().booleanValue())||isBy_fattura())
		return false; // disabilito
	else */
		return true;// abilito	
}
/**
 * Nascondo il tasto Cancella, in quanto NON è possibile cancellare un Buono di Scarico
 * 	una volta creato.
 * 
 * @return boolean lo stato del pulsante.
 */
public boolean isDeleteButtonHidden() {
	if (isBy_fattura()||isBy_documento())
		return true;
	return false;
}

public boolean isFlagScaricoTotaleRO() {
	if (isInserting()) 
		return false;
	else
		return true;
}

public boolean isModValore_unitario(){
	return isNonIniziatoAmmortamento() && (!isValoreScaricatoRO());
		//rp 15/12/2006 abilitati tutti alla modifica
		//&& isAmministratore();	      
}
public boolean isNonIniziatoAmmortamento() {

	Buono_carico_scarico_dettBulk dett = (Buono_carico_scarico_dettBulk)getEditDettController().getModel();
	if (dett!=null &&  dett.getBene().getValore_ammortizzato() != null){
		return  dett.getBene().getValore_ammortizzato().compareTo(new BigDecimal(0))==0 ;//&& dett.getBene().isCancellabile();
	}

	return false;
}
/**
 * Disabilita il campo relativo alla proprietà Valore Scaricato.
 *	Restituisce TRUE, (il campo viene disabilitato), se ho scelto di scaricare il bene in 
 *	modo totale.
 *
 * @return boolean lo stato del campo.
**/
public boolean isValoreScaricatoRO() {

	// Disabilito il campo se ho scelto Scarico Totale
			Inventario_beniBulk dettScarico = (Inventario_beniBulk)getDettController().getModel();
		if ((dettScarico != null)&&(dettScarico.getFl_totalmente_scaricato()!=null)&&(dettScarico.getFl_totalmente_scaricato().booleanValue()))
			return true; // disabilito
		else
			return false;	// abilito
}


public void rimuoviDettagliDaScaricare(it.cnr.jada.UserContext userContext, Selection sel) throws it.cnr.jada.comp.ComponentException{

	Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk)getModel();
	for (SelectionIterator i = sel.reverseIterator();i.hasNext();) {
		Inventario_beniBulk dettScarico = (Inventario_beniBulk)buonoS.getBuono_carico_scarico_dettColl().remove(i.nextIndex());
		setDirty(true);
	}
}




/**
 * Insert the method's description here.
 * Creation date: (12/09/2002 11.06.12)
 * @param newClauses it.cnr.jada.persistency.sql.CompoundFindClause
 */
public void setClauses(it.cnr.jada.persistency.sql.CompoundFindClause newClauses) {
	clauses = newClauses;
}

/**
 * Valida i dettagli del Buono di Scarico.
 *	L'utente sta creando un Buono di Scarico: il metodo controlla che tutti i campi obbligatori
 *	siano stati correttamente inseriti.
 *	Le proprietà che vengono controllate sono:
 *	
*
Valore da scaricare *
Controlla che sia stato inserito il valore dello scarico e che il valore inserito sia * congruente con il valore del bene. Se il bene è totalmente scaricato, il controllo * non viene eseguito, in quanto il valore da scaricare sarà il valore del bene stesso. * * @param context la ActionContext che ha generato la richiesta * @param bulk il OggettoBulk bene scaricato. **/ public void validaDettaglioScarico(it.cnr.jada.action.ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws ValidationException{ Inventario_beniBulk bene_scaricato = (Inventario_beniBulk)bulk; if (isInserting()){ if (!bene_scaricato.getFl_totalmente_scaricato().booleanValue()){ // Controllo che sia stato specificato un valore nel campo 'Valore Da Scaricare' if (bene_scaricato.getValore_unitario() == null || bene_scaricato.getValore_unitario().compareTo(new java.math.BigDecimal(0))==0) throw new ValidationException("Attenzione: specificare un valore da Scaricare"); // Controllo sul valore da scaricare int result = bene_scaricato.getValore_unitario().compareTo(bene_scaricato.getValoreBene()); // valore da scaricare > valore bene if (result >0){ throw new ValidationException("Attenzione: il valore indicato nel campo 'Valore Scaricato' del bene nr. " + bene_scaricato.getNumeroBeneCompleto() + "\n non può essere superiore al valore del bene stesso"); } // valore da scaricare = valore bene - questa operazione porta a 0 il valore del bene: // il bene deve essere scaricato totalmente if (result == 0){ throw new ValidationException("Attenzione: la variazione per il bene nr. " + bene_scaricato.getNumeroBeneCompleto() + "\n porta il valore del bene a 0.\nQuesta operazione è possibile solo scaricando totalmente il bene"); } // Buono da Fattura: controllo che sia stato specif. un Valore Alienazione if (isBy_fattura() && !bene_scaricato.isBeneAccessorio() && bene_scaricato.getValore_alienazione()==null){ throw new ValidationException("Attenzione: specificare un Valore Alienazione"); } } /* da verificare*/ try { ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeneScaricato( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), bene_scaricato, null); } catch(it.cnr.jada.comp.ComponentException e) { throw new ValidationException(); } catch(java.rmi.RemoteException e) { throw new ValidationException(); } catch (BusinessProcessException e){ throw new ValidationException(); } } } /** * E' stata generata la richiesta di cercare i beni disponibili per una operazione d Scarico. * Vengono invocati due diversi metodi della Component BuonoScaricoComponent, a seconda * che il Buono di Scarico sia creato da una Fattura Attiva oppure no: * - invoca il metodo BuonoScaricoComponent.cercaBeniAssociabili, se * proviene da Fattura Attiva; * - invoca il metodo BuonoScaricoComponent.cercaBeniScaricabili, altrimenti. * * @param userContext lo UserContext che ha generato la richiesta. * @param no_accessori boolean indica se escludere i beni accessori dalla ricerca * @param beni_da_escludere SimpleBulkList i beni da escludere dalla ricerca, magari perchè già selezionati * @param clauses CompoundFindClause le clausole della selezione. * * @return l'Iteratore RemoteIterator sui beni trovati. **/ public it.cnr.jada.util.RemoteIterator getListaBeniDaScaricare( it.cnr.jada.UserContext userContext, boolean no_accessori, SimpleBulkList beni_da_escludere, it.cnr.jada.persistency.sql.CompoundFindClause clauses) throws BusinessProcessException, java.rmi.RemoteException, it.cnr.jada.comp.ComponentException { if (isBy_fattura()){ if (getDettagliFattura().getModel() instanceof Fattura_attiva_rigaIBulk) { Fattura_attiva_rigaIBulk riga_fattura = (Fattura_attiva_rigaIBulk)getDettagliFattura().getModel(); return ((BuonoCaricoScaricoComponentSession)createComponentSession()).cercaBeniAssociabili(userContext, (Buono_carico_scaricoBulk)this.getModel(), riga_fattura, clauses); }else{ Nota_di_credito_rigaBulk nota = (Nota_di_credito_rigaBulk)getDettagliFattura().getModel(); return ((BuonoCaricoScaricoComponentSession)createComponentSession()).cercaBeniAssociabili(userContext, (Buono_carico_scaricoBulk)this.getModel(), nota, clauses); } }else if (isBy_documento()){ return ((BuonoCaricoScaricoComponentSession)createComponentSession()).cercaBeniAssociabili(userContext, (Buono_carico_scaricoBulk)this.getModel(), (Documento_generico_rigaBulk)getDettagliDocumento().getModel(), clauses); } else{ return ((BuonoCaricoScaricoComponentSession)createComponentSession()).getListaBeniDaScaricare(userContext, (Buono_carico_scaricoBulk)this.getModel(), no_accessori,beni_da_escludere, clauses); } } /** * Cerca tutti i dettagli di un Buono di Scarico. * E' stata generata la richiesta di visualizzare i dettagli di un Buono di Scarico, per una * operazione di "Modifica". * Le operazioni di ricerca dei dettagli di un Buono di Scarico differiscono a seconda che si * stiano effettuando operazioni di "Creazione", (solo la prima volta), piuttosto che di "Modifica". * Invoca il metodo BuonoScaricoComponent.selectEditDettagliScarico * * @param userContext lo UserContext che ha generato la richiesta. * * @return RemoteIterator l'Iteratore sui beni. **/ private it.cnr.jada.util.RemoteIterator selectEditDettagliScaricobyClause(ActionContext context) throws BusinessProcessException{ try { it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController)getEditDettController()).getFilter(); it.cnr.jada.UserContext userContext = context.getUserContext(); Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk)getModel(); Class bulkClass = Buono_carico_scarico_dettBulk.class; return ((BuonoCaricoScaricoComponentSession)createComponentSession()).selectEditDettagliScarico(userContext,buonoS,bulkClass,clauses); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } } public String getLabelData_registrazione(){ return "Data Scarico"; } /** * E' stata generata la richiesta di effettuare uno scarico totale di un bene. * Controlla che non siano presenti nella lista dei beni scaricati, beni accessori del * bene selezionato. Viene invocato il metodo BuonoScaricoComponent.checkBeniAccessoriAlreadyExistFor * * @param context la ActionContext che ha generato la richiesta. * @param buonoS Buono_scaricoBulk il Buono di Scarico. * @param bene_padre il Inventario_beniBulk bene da scaricare totalmente. **/ public void checkBeniAccessoriAlreadyExistFor(ActionContext context,Buono_carico_scaricoBulk buonoS, Inventario_beniBulk bene_padre) throws BusinessProcessException { try { ((BuonoCaricoScaricoComponentSession)createComponentSession()).checkBeniAccessoriAlreadyExistFor( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), bene_padre); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } catch (BusinessProcessException e){ throw handleException(e); } } /** * E' stata generata la richiesta di scaricare totalmente, (cancellazione logica), un bene * dall'Inventario. * Invoca i metodi: * - BuonoCaricoScaricoComponent.scaricaBeniAccessoriFor, (solo se scarica_accessori è TRUE); * - BuonoCaricoScaricoComponent.modificaBeneScaricato. * * @param userContext lo UserContext che ha generato la richiesta * @param bene il Inventario_beniBulk bene * @param selected_righe_fatt List le righe di Fattura Attiva alle quali è eventualmente associato il bene * @param scarica_accessori boolen indica se scaricare anche i beni accessori **/ public void scaricoTotale(it.cnr.jada.UserContext userContext, Inventario_beniBulk bene,java.util.List selected_righe_fatt, boolean scarica_accessori) throws BusinessProcessException { try { Buono_carico_scaricoBulk bulk = (Buono_carico_scaricoBulk)getModel(); if (scarica_accessori){ ((BuonoCaricoScaricoComponentSession)createComponentSession()).scaricaBeniAccessoriFor( userContext, bulk, bene, selected_righe_fatt); } ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeneScaricato( userContext, bulk, bene, getDettagliFattura().getModel()); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } catch (BusinessProcessException e){ throw handleException(e); } } /** * Elimina i beni accessori di un bene di riferimento. * E' stata generata la richiesta di eliminare dal Buono di Scarico i beni accessori di un * dato bene . * Invoca il metodo BuonoScaricoComponent.annullaScaricaBeniAccessoriFor. * * @param userContext lo UserContext che ha generato la richiesta * @param bene il Inventario_beniBulk bene di riferimento * @param selected_righe_fatt il List le righe di Fattura Attiva alle quali il bene è eventualmente associato. **/ public void rimuoviBeniAccessoriFor(it.cnr.jada.UserContext userContext, Inventario_beniBulk bene_padre, java.util.List selected_righe_fatt) throws it.cnr.jada.comp.ComponentException, BusinessProcessException{ try { ((BuonoCaricoScaricoComponentSession)createComponentSession()).annullaScaricaBeniAccessoriFor( userContext, (Buono_carico_scaricoBulk)getModel(), bene_padre, selected_righe_fatt); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } catch (BusinessProcessException e){ throw handleException(e); } } /** * Aggiorna un bene sulla tabella temporanea. * E' stata generata la richiesta di aggiornare un bene: la richiesta viene generata in seguito * ad una modifica fatta dall'utente sul bene che si sta scaricando. * Invoca il metodo BuonoCaricoScaricoComponent.modificaBeneScaricato. * * @param userContext lo UserContext che ha generato la richiesta * @param bene il Inventario_beniBulk bene **/ public Buono_carico_scaricoBulk modificaBeneScaricato(it.cnr.jada.UserContext userContext, Inventario_beniBulk bene, OggettoBulk riga) throws BusinessProcessException { try { Buono_carico_scaricoBulk bulk=(Buono_carico_scaricoBulk)getModel(); ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeneScaricato( userContext, bulk, bene, riga); return bulk; } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } catch (BusinessProcessException e){ throw handleException(e); } } /** * */ public void modificaBeneAssociatoConBulk(ActionContext context, OggettoBulk bulk) throws BusinessProcessException{ try { if (isBy_fattura()){ ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeneAssociatoConBulk( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), getDettagliFattura().getModel(), (Inventario_beniBulk)bulk); }else if (isBy_documento()){ ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeneAssociatoConBulk( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), getDettagliDocumento().getModel(), (Inventario_beniBulk)bulk); } } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } catch(javax.ejb.EJBException e) { throw handleException(e); } } /** * Cerca tutti i beni accessori di un Bene. * Invoca il metodo getBeniAccessoriFor. * * @param context il ActionContext che contiene le informazioni relative alla richiesta * @param benePrincipale il Inventario_beniBulk bene di cui si vogliono conoscere gli accessori. * * @return la List lista dei beni trovati. **/ public java.util.List getBeniAccessoriFor(it.cnr.jada.UserContext userContext, Inventario_beniBulk benePrincipale) throws BusinessProcessException, java.rmi.RemoteException, it.cnr.jada.comp.ComponentException{ return ((BuonoCaricoScaricoComponentSession)createComponentSession()).getBeniAccessoriFor(userContext, benePrincipale); } /** * E' stata generata la richiesta di annullare tutte le operazioni effettuate sul Buono di * Scarico Inventario. * Viene invocato il metodo BuonoScaricoComponent.annullaModificaScaricoBeni * * @param context la ActionContext che ha generato la richiesta. */ public void clearSelection(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException { try { ((BuonoCaricoScaricoComponentSession)createComponentSession()).annullaModificaScaricoBeni( context.getUserContext()); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } } /* (non-Javadoc) * @see it.cnr.jada.util.action.SelectionListener#deselectAll(it.cnr.jada.action.ActionContext) */ public void deselectAll(ActionContext actioncontext) {} /** * Restituisce la Selezione fatta sul Controller dei Beni Associati. * * @param context la ActionContext che ha generato la richiesta * @param beni OggettoBulk[] i beni selezionati dall'utente. * @param currentSelection la BitSet selezione attuale. * * @return currentSelection la BitSet selezione attuale. **/ public java.util.BitSet getSelection(it.cnr.jada.action.ActionContext context, it.cnr.jada.bulk.OggettoBulk[] bulks, java.util.BitSet currentSelection) { return currentSelection; } /** * initializeSelection method comment. * * @param context la ActionContext che ha generato la richiesta **/ public void initializeSelection(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException { try { ((BuonoCaricoScaricoComponentSession)createComponentSession()).inizializzaBeniDaScaricare( context.getUserContext() ); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } } public void selectAll(ActionContext actioncontext) throws BusinessProcessException { java.util.List righe_fattura = null; try { if (isBy_fattura()){ righe_fattura = getDettagliFattura().getSelectedModels(actioncontext); }else if (isBy_documento()) righe_fattura = getDettagliDocumento().getSelectedModels(actioncontext); ((BuonoCaricoScaricoComponentSession)createComponentSession()).scaricaTuttiBeni( actioncontext.getUserContext(), (Buono_carico_scaricoBulk)getModel(), righe_fattura, getClauses()); setClauses(null); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); }catch(ValidationException e) { throw handleException(e); } } public void scaricaTuttiDef(ActionContext context) throws ComponentException, RemoteException, BusinessProcessException{ ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)createComponentSession()).scaricaTuttiBeniDef(context.getUserContext(), (Buono_carico_scaricoBulk)getModel()); } public BitSet setSelection(it.cnr.jada.action.ActionContext context, it.cnr.jada.bulk.OggettoBulk[] bulks, java.util.BitSet oldSelection, java.util.BitSet newSelection) throws it.cnr.jada.action.BusinessProcessException { try { if (isBy_fattura()){ ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeniScaricatiPerAssocia( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), getDettagliFattura().getSelectedModels(context), bulks, oldSelection, newSelection); }else if(isBy_documento()){ ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeniScaricatiPerAssocia( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), getDettagliDocumento().getSelectedModels(context), bulks, oldSelection, newSelection); } else { ((BuonoCaricoScaricoComponentSession)createComponentSession()).modificaBeniScaricati( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), bulks, oldSelection, newSelection); } return newSelection; } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } catch (ValidationException e){ throw handleException(e); } } /* r.p. Serve per riportare in inserimento la mappa dopo il salvataggio di un trasferimento * Se il Buono di Scarico è creato da una Fattura Attiva, mantiene traccia * della PrimaryKeyHashtable che contiene l'associazione tra le righe di Fattura e le righe * di Inventario ad esse associate. * * @param context la ActionContext che ha generato la richiesta * @param bulk OggettoBulk il Buono di Scarico. * * @return bulk OggettoBulk il Buono di Scarico. **/ protected void basicEdit(it.cnr.jada.action.ActionContext context,OggettoBulk bulk,boolean doInitializeForEdit) throws it.cnr.jada.action.BusinessProcessException { if (bulk instanceof Trasferimento_inventarioBulk){ reset(context); } else super.basicEdit(context, bulk, doInitializeForEdit); } public RemoteDetailCRUDController getEditDettController() { return editDettController; } /** * Restituisce il valore della proprietà 'dettagliFattura' * * @return SimpleDetailCRUDController il valore della proprietà 'dettagliFattura' */ public final SimpleDetailCRUDController getDettagliFattura() { return dettagliFattura; } /** * Restituisce il valore della proprietà 'righeInventarioDaFattura' * * @return AbstractDetailCRUDController il valore della proprietà 'righeInventarioDaFattura' */ public final AbstractDetailCRUDController getRigheInventarioDaFattura() { return righeInventarioDaFattura; } public final AbstractDetailCRUDController getRigheInventarioDaDocumento() { return righeInventarioDaDocumento; } /** * Valida i dettagli associati alle righe di Fattura: * controlla che non ci siano beni di tipo diverso sulla stessa riga di Fattura. * * @param context la ActionContext che ha generato la richiesta * @param bulk la OggettoBulk riga di Fattura. **/ private void validateDettagliDaFattura(it.cnr.jada.action.ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws ValidationException{ Inventario_beniBulk bene = (Inventario_beniBulk)bulk; if (getDettagliFattura().getModel() instanceof Fattura_attiva_rigaIBulk){ if (!bene.isBeneAccessorio()){ if (bene.getValore_alienazione_apg() == null || bene.getValore_alienazione_apg().compareTo(new java.math.BigDecimal(0))==0){ throw new ValidationException("Attenzione: è necessario specificare un Valore Alienazione per ogni bene.\n Specificare un valore per il bene " + bene.getNumeroBeneCompleto()); } } } else{ if (!bene.isBeneAccessorio()){ if (bene.getVariazione_meno() == null || bene.getVariazione_meno().compareTo(new java.math.BigDecimal(0))==0){ throw new ValidationException("Attenzione: è necessario specificare un Valore di scarico per ogni bene.\n Specificare un valore per il bene " + bene.getNumeroBeneCompleto()); } } } } public SimpleDetailCRUDController getDettagliDocumento() { return dettagliDocumento; } private void eliminaBeniAssociatiDocConBulk(ActionContext context) throws it.cnr.jada.action.BusinessProcessException{ try { if(getDettagliDocumento().getModel()!=null ) ((BuonoCaricoScaricoComponentSession)createComponentSession()).eliminaBeniAssociatiConBulk( context.getUserContext(), (Buono_carico_scaricoBulk)getModel(), getDettagliDocumento().getModel()); } catch(it.cnr.jada.comp.ComponentException e) { throw handleException(e); } catch(java.rmi.RemoteException e) { throw handleException(e); } catch (Throwable t){ throw handleException(t); } } private void validateDettagliDaDocumento(it.cnr.jada.action.ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws ValidationException{ Inventario_beniBulk bene = (Inventario_beniBulk)bulk; if (!bene.isBeneAccessorio()){ if (bene.getVariazione_meno() == null || bene.getVariazione_meno().compareTo(new java.math.BigDecimal(0))==0){ throw new ValidationException("Attenzione: è necessario specificare un Valore di scarico per ogni bene.\n Specificare un valore per il bene " + bene.getNumeroBeneCompleto()); } } } private void eliminaBeniAssociatiDocConBulk(ActionContext context,it.cnr.jada.bulk.OggettoBulk[] details) throws it.cnr.jada.action.BusinessProcessException{ try { if (isBy_documento()){ for (int i = 0;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy