it.cnr.contab.inventario00.actions.AssBeneFatturaAction 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.inventario00.actions;
/**
* Questa classe gestisce le richieste provenienti dalle jsp relative all'associazione di
* una Fattura Passiva a dei beni esistenti nel DB.
*
* Implementa i seguenti comandi:
*
* - doRiporta
*
- checkRigheFattura_perAssociazione
*
- doSelectDettagliFattura
*
- doSelezionaBeni_associati
*
- doAddToCRUDMain_DettagliFattura_RigheInventarioDaFattura
*
- doAnnullaRiporta
*
*
**/
import java.rmi.RemoteException;
import java.util.List;
import java.util.Iterator;
import it.cnr.contab.inventario00.bp.*;
import it.cnr.contab.inventario00.docs.bulk.Ass_inv_bene_fatturaBulk;
import it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk;
import it.cnr.contab.inventario01.bp.CRUDCaricoInventarioBP;
import it.cnr.contab.inventario01.bulk.*;
import it.cnr.contab.docamm00.docs.bulk.*;
import it.cnr.jada.action.*;
import it.cnr.jada.bulk.BulkInfo;
import it.cnr.jada.util.ObjectReplacer;
import it.cnr.jada.util.RemoteIterator;
import it.cnr.jada.util.action.*;
public class AssBeneFatturaAction extends CRUDAction {
public AssBeneFatturaAction() {
super();
}
/**
* Controlla che le righe selezionate, a cui verranno associate i beni, siano omogenee
* per tipo (ISTITUZIONALE/COMMERCIALE).
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
private void checkRigheFattura_perAssociazione(ActionContext context) throws it.cnr.jada.comp.ApplicationException, it.cnr.jada.bulk.ValidationException {
String tipo_riga = null;
String bene_servizio = null;
Nota_di_credito_rigaBulk nota=null;
Nota_di_debito_rigaBulk notadeb=null;
Fattura_passiva_rigaIBulk riga_fattura=null;
Fattura_attiva_rigaIBulk riga_attiva=null;
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
Ass_inv_bene_fatturaBulk ass=(Ass_inv_bene_fatturaBulk)bp.getModel();
if (ass.isPerAumentoValore() && ass.getTest_buono().getData_registrazione()==null)
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: bisogna specificare prima la data registrazione.");
List dettagliFattura;
try{
dettagliFattura = bp.getDettagliFattura().getSelectedModels(context);
} catch (BusinessProcessException e){
throw new it.cnr.jada.comp.ApplicationException(e.getMessage(),e);
}
for (Iterator i = dettagliFattura.iterator(); i.hasNext();){
if (dettagliFattura.get(0).getClass().equals(Nota_di_credito_rigaBulk.class))
nota = (Nota_di_credito_rigaBulk)i.next();
else
if (dettagliFattura.get(0).getClass().equals(Nota_di_debito_rigaBulk.class))
notadeb = (Nota_di_debito_rigaBulk)i.next();
else
if (dettagliFattura.get(0).getClass().equals(Fattura_attiva_rigaIBulk.class))
riga_attiva = (Fattura_attiva_rigaIBulk)i.next();
else
riga_fattura = (Fattura_passiva_rigaIBulk)i.next();
// Controlla il tipo, (IST/COM), di riga.
if (tipo_riga == null && riga_fattura!=null)
tipo_riga = riga_fattura.getTi_istituz_commerc();
else if (tipo_riga== null && nota!=null)
tipo_riga = nota.getTi_istituz_commerc();
else if (tipo_riga== null && notadeb!=null)
tipo_riga = notadeb.getTi_istituz_commerc();
else if ( riga_fattura!=null && !tipo_riga.equalsIgnoreCase(riga_fattura.getTi_istituz_commerc()))
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: non è possibile selezionare righe di Fattura di Tipo diverso.");
else if (nota!=null && !tipo_riga.equalsIgnoreCase(nota.getTi_istituz_commerc()))
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: non è possibile selezionare righe di Note Credito di Tipo diverso.");
else if (notadeb!=null && !tipo_riga.equalsIgnoreCase(notadeb.getTi_istituz_commerc()))
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: non è possibile selezionare righe di Note Debito di Tipo diverso.");
// Controlla il Bene/Servizio
if (riga_fattura != null)
{
if (bene_servizio == null)
bene_servizio = riga_fattura.getBene_servizio().getCd_bene_servizio();
else if (!bene_servizio.equalsIgnoreCase(riga_fattura.getBene_servizio().getCd_bene_servizio()))
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: non è possibile selezionare righe di Fattura il cui Bene/Servizio sia diverso.");
}else if(nota!=null)
{
if (bene_servizio == null)
bene_servizio = nota.getBene_servizio().getCd_bene_servizio();
else if (!bene_servizio.equalsIgnoreCase(nota.getBene_servizio().getCd_bene_servizio()))
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: non è possibile selezionare righe di Nota Credito il cui Bene/Servizio sia diverso.");
}else if(notadeb!=null)
{
if (bene_servizio == null)
bene_servizio = notadeb.getBene_servizio().getCd_bene_servizio();
else if (!bene_servizio.equalsIgnoreCase(notadeb.getBene_servizio().getCd_bene_servizio()))
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: non è possibile selezionare righe di Nota Debito il cui Bene/Servizio sia diverso.");
}
}
}
/**
* Associa dei Beni ad una o più righe di Fattura.
* Il metodo dapprima controlla che l'utente abbia selezionato almeno una riga di fattura
* a cui associare i beni: in caso negativo, provvede a mandare un messagio di errore dove
* richiede di selezionare una riga di Fattura.
* In seguito, il sistema controlla che le righe selezionate dall'utente siano omogenee:
* controlla, cioè, che siano o tutte ISTITUZIONALI o tutte COMMERCIALI, (metodo checkRigheFattura_perAssociazione).
* Infine, verifica l'esistenza di beni che abbiano le caratteristiche per essere associate
* alle righe selezionate, (metodo cercaBeniAssociabili): se ci sono beni disponibili, questi
* vengono visualizzati all'utente che selezionerà quelli necessari.
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doAddToCRUDMain_DettagliFattura_RigheInventarioDaFattura(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
java.util.List selectedModels = bp.getDettagliFattura().getSelectedModels(context);
Selection selection = bp.getDettagliFattura().getSelection(context);
// Controlla che l'utente abia selezionato almeno una riga di Fattura
if (selection == null || selection.size()==0){
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una o più righe di Fattura");
}
// Controlla che le righe di Fattura selezionate siano omogenee.
checkRigheFattura_perAssociazione(context);
it.cnr.jada.util.RemoteIterator ri ;
// Crea un Iteratore sui beni disponibili ad essere associati ad una riga di Fattura
if (bp.getDettagliFattura().getSelectedModels(context).get(0).getClass().equals(Fattura_passiva_rigaIBulk.class)){
Fattura_passiva_rigaIBulk modello_fattura = (Fattura_passiva_rigaIBulk)bp.getDettagliFattura().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello_fattura,null);
}
// questo caso non si verifica per le nota_credito
else{
Nota_di_debito_rigaBulk modello_nota = (Nota_di_debito_rigaBulk)bp.getDettagliFattura().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello_nota,null);
}
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
int count = ri.countElements();
// Controlla che ci siano beni disponibili.
if (count == 0) {
bp.setMessage("Nessun Bene associabile");
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
} else {
SelezionatoreListaBP slbp = select(context,ri,it.cnr.jada.bulk.BulkInfo.getBulkInfo(Inventario_beniBulk.class),null,"doSelezionaBeni_associati",null,bp);
slbp.setMultiSelection(true);
}
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
/**
* Associa dei Beni ad una o più righe di Fattura.
* Il metodo dapprima controlla che l'utente abbia selezionato almeno una riga di fattura
* a cui associare i beni: in caso negativo, provvede a mandare un messagio di errore dove
* richiede di selezionare una riga di Fattura.
* In seguito, il sistema controlla che le righe selezionate dall'utente siano omogenee:
* controlla, cioè, che siano o tutte ISTITUZIONALI o tutte COMMERCIALI, (metodo checkRigheFattura_perAssociazione).
* Infine, verifica l'esistenza di beni che abbiano le caratteristiche per essere associate
* alle righe selezionate, (metodo cercaBeniAssociabili): se ci sono beni disponibili, questi
* vengono visualizzati all'utente che selezionerà quelli necessari.
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doAddToCRUDMain_DettagliFattura_RigheDaFattura(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
java.util.List selectedModels = bp.getDettagliFattura().getSelectedModels(context);
Selection selection = bp.getDettagliFattura().getSelection(context);
// Controlla che l'utente abia selezionato almeno una riga di Fattura
if (selection == null || selection.size()==0)
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura");
else
if(selection.size()>1)
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura per volta");
// Controlla che le righe di Fattura selezionate siano omogenee.
checkRigheFattura_perAssociazione(context);
it.cnr.jada.util.RemoteIterator ri ;
// Crea un Iteratore sui beni disponibili ad essere associati ad una riga di Fattura
if (bp.getDettagliFattura().getSelectedModels(context).get(0).getClass().equals(Fattura_passiva_rigaIBulk.class)){
Fattura_passiva_rigaIBulk modello_fattura = (Fattura_passiva_rigaIBulk)bp.getDettagliFattura().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello_fattura,null);
}
else if(bp.getDettagliFattura().getSelectedModels(context).get(0).getClass().equals(Nota_di_credito_rigaBulk.class)){
Nota_di_credito_rigaBulk modello_nota = (Nota_di_credito_rigaBulk)bp.getDettagliFattura().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello_nota,null);
}
else if(bp.getDettagliFattura().getSelectedModels(context).get(0).getClass().equals(Fattura_attiva_rigaIBulk.class)){
Fattura_attiva_rigaIBulk modello_nota = (Fattura_attiva_rigaIBulk)bp.getDettagliFattura().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello_nota,null);
}
else{
Nota_di_debito_rigaBulk modello_nota = (Nota_di_debito_rigaBulk)bp.getDettagliFattura().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello_nota,null);
}
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
int count = ri.countElements();
// Controlla che ci siano beni disponibili.
if (count == 0) {
bp.setMessage("Nessun Buono associabile");
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
} else {
SelezionatoreListaBP slbp = select(context,ri,it.cnr.jada.bulk.BulkInfo.getBulkInfo(Buono_carico_scarico_dettBulk.class),null,"doSelezionaBuoni_associati",null,bp);
slbp.setMultiSelection(true);
}
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
protected SelezionatoreListaBP select(ActionContext actioncontext, RemoteIterator remoteiterator, BulkInfo bulkinfo, String s, String s1, ObjectReplacer objectreplacer, SelectionListener selectionlistener)
throws BusinessProcessException
{
try
{
SelezionatoreListaBP selezionatorelistabp;
if (bulkinfo.getBulkClass().getName().endsWith("Buono_carico_scarico_dettBulk"))
selezionatorelistabp= (ListaBuoniBP)actioncontext.createBusinessProcess("ListaBuoniBP");
else
selezionatorelistabp= (ListaBeniBP)actioncontext.createBusinessProcess("ListaBeniBP");
selezionatorelistabp.setObjectReplacer(objectreplacer);
selezionatorelistabp.setSelectionListener(actioncontext, selectionlistener);
selezionatorelistabp.setIterator(actioncontext, remoteiterator);
selezionatorelistabp.setBulkInfo(bulkinfo);
selezionatorelistabp.setColumns(bulkinfo.getColumnFieldPropertyDictionary(s));
actioncontext.addHookForward("seleziona", this, s1);
HookForward _tmp = (HookForward)actioncontext.findForward("seleziona");
actioncontext.addBusinessProcess(selezionatorelistabp);
return selezionatorelistabp;
}
catch(RemoteException remoteexception)
{
throw new BusinessProcessException(remoteexception);
}
}
/**
* Richiamato dalla pressione del tasto "Annulla", provvede a cancellare tutte le associazioni
* Richiama il metodo AssBeneFatturaBP.annullaRiporta(ActionContext).
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doAnnullaRiporta(ActionContext context) throws BusinessProcessException {
try {
List righe_fattura=null;
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
if(bp.isDaDocumento())
righe_fattura = bp.getDettagliDocumento().getDetails();
else
righe_fattura = bp.getDettagliFattura().getDetails();
((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).annullaRiportaAssFattura_Bene(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(), righe_fattura);
context.closeBusinessProcess();
HookForward bringBackForward = (HookForward)context.findForward("bringback");
if (bringBackForward != null)
return bringBackForward;
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context, e);
}
}
/**
* @param context L'ActionContext della richiesta
* @return Il Forward alla pagina di risposta
*/
public Forward doRiporta(ActionContext context) {
try {
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
fillModel(context);
it.cnr.jada.bulk.OggettoBulk model = bp.getBringBackModel();
((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).validaRiportaAssFattura_Bene(context.getUserContext(),(Ass_inv_bene_fatturaBulk)model);
context.closeBusinessProcess();
HookForward bringBackForward = (HookForward)context.findForward("bringback");
if (bringBackForward == null)
return context.findDefaultForward();
bringBackForward.addParameter("bringback", model);
return bringBackForward;
} catch(Throwable e) {
return handleException(context,e);
}
}
/**
* Salva il valore indicato nel campo variazione_piu.
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doSalvaVariazionePiu(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
if (!bp.isDaDocumento())
bp.modificaBeneAssociatoConBulk(context, bp.getRigheInventarioDaFattura().getModel());
else
bp.modificaBeneAssociatoConBulk(context, bp.getRigheInventarioDaDocumento().getModel());
//bp.getRigheInventarioDaFattura().getSelection().clearSelection();
//bp.getRigheInventarioDaFattura().reset(context);
//bp.getRigheInventarioDaFattura().getSelection().setSelected(bp.getRigheInventarioDaFattura().getSelection(context).getFocus());
} catch(Exception e) {
return handleException(context, e);
}
return context.findDefaultForward();
}
/**
* Richiamtao dal FrameWork quando seleziono una riga dalla finestra dei Dettagli Fattura,
* permette di cancellare le selezioni fatte precedentemente dal'utente, e pone il
* checkBox relativo alla riga selezionata nello stato di CHECKED;
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doSelectDettagliFattura(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
bp.getDettagliFattura().setSelection(context);
bp.getDettagliFattura().getSelection().clearSelection();
bp.getDettagliFattura().getSelection().setSelected(bp.getDettagliFattura().getSelection(context).getFocus());
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
/**
*
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doSelectRigheInventarioDaFattura(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
bp.getRigheInventarioDaFattura().setSelection(context);
bp.getRigheInventarioDaFattura().getSelection().clearSelection();
bp.getRigheInventarioDaFattura().getSelection().setSelected(bp.getRigheInventarioDaFattura().getSelection(context).getFocus());
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
/**
*
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doSelectRigheDaFattura(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
bp.getRigheDaFattura().setSelection(context);
bp.getRigheDaFattura().getSelection().clearSelection();
bp.getRigheDaFattura().getSelection().setSelected(bp.getRigheDaFattura().getSelection(context).getFocus());
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
public Forward doSelectRigheDaDocumento(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
bp.getRigheDaDocumento().setSelection(context);
bp.getRigheDaDocumento().getSelection().clearSelection();
bp.getRigheDaDocumento().getSelection().setSelected(bp.getRigheDaDocumento().getSelection(context).getFocus());
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
/**
* Effettua un refresh della finestra dei beni associati ad una riga di Fattura Passiva
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doSelezionaBuoni_associati(ActionContext context) {
try {
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
if (!bp.isDaDocumento())
bp.getRigheDaFattura().reset(context);
else
bp.getRigheDaDocumento().reset(context);
bp.setDirty(true);
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
public Forward doOnData_registrazioneChange(ActionContext context) {
try{
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
if (bp.isPerAumentoValore() )
bp.getRigheInventarioDaFattura().removeAll(context);
else if (bp.isPerAumentoValoreDoc() )
bp.getRigheInventarioDaDocumento().removeAll(context);
fillModel(context);
Ass_inv_bene_fatturaBulk model=(Ass_inv_bene_fatturaBulk)bp.getModel();
bp.setModel(context,model);
return context.findDefaultForward();
}catch (Throwable t) {
return handleException(context, t);
}
}
/**
* Richiamtao dal FrameWork quando seleziono una riga dalla finestra dei Dettagli Documento,
* permette di cancellare le selezioni fatte precedentemente dal'utente, e pone il
* checkBox relativo alla riga selezionata nello stato di CHECKED;
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doSelectDettagliDocumento(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
bp.getDettagliDocumento().setSelection(context);
bp.getDettagliDocumento().getSelection().clearSelection();
bp.getDettagliDocumento().getSelection().setSelected(bp.getDettagliDocumento().getSelection(context).getFocus());
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
public Forward doAddToCRUDMain_DettagliDocumento_RigheDaDocumento(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
java.util.List selectedModels = bp.getDettagliDocumento().getSelectedModels(context);
Selection selection = bp.getDettagliDocumento().getSelection(context);
// Controlla che l'utente abia selezionato almeno una riga di Fattura
if (selection == null || selection.size()==0)
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Documento");
else
if(selection.size()>1)
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Documento per volta");
// Controlla che le righe di Documento selezionate siano omogenee.
checkRigheDocumento_perAssociazione(context);
it.cnr.jada.util.RemoteIterator ri =null;
// Crea un Iteratore sui beni disponibili ad essere associati ad una riga di Documento
if (bp.getDettagliDocumento().getSelectedModels(context).get(0).getClass().equals(Documento_generico_rigaBulk.class)){
Documento_generico_rigaBulk modello = (Documento_generico_rigaBulk)bp.getDettagliDocumento().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello,null);
}
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
int count = ri.countElements();
// Controlla che ci siano beni disponibili.
if (count == 0) {
bp.setMessage("Nessun Buono associabile");
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
} else {
SelezionatoreListaBP slbp = select(context,ri,it.cnr.jada.bulk.BulkInfo.getBulkInfo(Buono_carico_scarico_dettBulk.class),null,"doSelezionaBuoni_associati",null,bp);
slbp.setMultiSelection(true);
}
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
/**
* Controlla che le righe selezionate, a cui verranno associate i beni, siano omogenee
* per tipo (ISTITUZIONALE/COMMERCIALE).
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
private void checkRigheDocumento_perAssociazione(ActionContext context) throws it.cnr.jada.comp.ApplicationException, it.cnr.jada.bulk.ValidationException {
String tipo_riga = null;
String bene_servizio = null;
Documento_generico_rigaBulk doc_riga=null;
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
Ass_inv_bene_fatturaBulk ass=(Ass_inv_bene_fatturaBulk)bp.getModel();
if (ass.isPerAumentoValoreDoc() && ass.getTest_buono().getData_registrazione()==null)
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: bisogna specificare prima la data registrazione.");
List dettagliDocumento;
try{
dettagliDocumento = bp.getDettagliDocumento().getSelectedModels(context);
} catch (BusinessProcessException e){
throw new it.cnr.jada.comp.ApplicationException(e.getMessage(),e);
}
for (Iterator i = dettagliDocumento.iterator(); i.hasNext();){
if (dettagliDocumento.get(0).getClass().equals(Documento_generico_rigaBulk.class))
doc_riga = (Documento_generico_rigaBulk)i.next();
// Controlla il tipo, (IST/COM), di riga.
if (tipo_riga == null && doc_riga!=null)
tipo_riga = doc_riga.getDocumento_generico().getTi_istituz_commerc();
else if (doc_riga!=null && !tipo_riga.equalsIgnoreCase(doc_riga.getDocumento_generico().getTi_istituz_commerc()))
throw new it.cnr.jada.comp.ApplicationException ("Attenzione: non è possibile selezionare righe di Documento di Tipo diverso.");
}
}
public Forward doAddToCRUDMain_DettagliDocumento_RigheInventarioDaDocumento(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
java.util.List selectedModels = bp.getDettagliDocumento().getSelectedModels(context);
Selection selection = bp.getDettagliDocumento().getSelection(context);
// Controlla che l'utente abia selezionato almeno una riga di Documento
if (selection == null || selection.size()==0){
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una o più righe di Documento");
}
// Controlla che le righe di Documento selezionate siano omogenee.
checkRigheDocumento_perAssociazione(context);
it.cnr.jada.util.RemoteIterator ri =null;
// Crea un Iteratore sui beni disponibili ad essere associati ad una riga di Documento
if (bp.getDettagliDocumento().getSelectedModels(context).get(0).getClass().equals(Documento_generico_rigaBulk.class)){
Documento_generico_rigaBulk modello = (Documento_generico_rigaBulk)bp.getDettagliDocumento().getSelectedModels(context).get(0);
ri = ((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)bp.createComponentSession()).cercaBeniAssociabili(context.getUserContext(),(Ass_inv_bene_fatturaBulk)bp.getModel(),modello,null);
}
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
int count = ri.countElements();
// Controlla che ci siano beni disponibili.
if (count == 0) {
bp.setMessage("Nessun Bene associabile");
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
} else {
SelezionatoreListaBP slbp = select(context,ri,it.cnr.jada.bulk.BulkInfo.getBulkInfo(Inventario_beniBulk.class),null,"doSelezionaBeni_associati",null,bp);
slbp.setMultiSelection(true);
}
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
public Forward doSelectRigheInventarioDaDocumento(ActionContext context) {
try {
fillModel(context);
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
bp.getRigheInventarioDaDocumento().setSelection(context);
bp.getRigheInventarioDaDocumento().getSelection().clearSelection();
bp.getRigheInventarioDaDocumento().getSelection().setSelected(bp.getRigheInventarioDaDocumento().getSelection(context).getFocus());
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
/**
* Effettua un refresh della finestra dei beni associati ad una riga di Fattura Passiva
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doSelezionaBeni_associati(ActionContext context) {
try {
AssBeneFatturaBP bp = (AssBeneFatturaBP)context.getBusinessProcess();
if (!bp.isDaDocumento())
bp.getRigheInventarioDaFattura().reset(context);
else
bp.getRigheInventarioDaDocumento().reset(context);
bp.setDirty(true);
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy