diff --git a/pom.xml b/pom.xml index 3840d17e2e..0c699cee6a 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 0.0.1 0.0.1 5.1.8.RELEASE - 7.0.1 + 7.0.3 UTF-8 ${maven.build.timestamp} 1.7.21 diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/actions/ListaDocumentiAmministrativiAction.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/actions/ListaDocumentiAmministrativiAction.java index e6cdcfbb4e..4d363bb0d5 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/actions/ListaDocumentiAmministrativiAction.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/actions/ListaDocumentiAmministrativiAction.java @@ -1,469 +1,478 @@ -/* - * 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.actions; - -import it.cnr.contab.anagraf00.core.bulk.TerzoBulk; -import it.cnr.contab.doccont00.bp.ListaAccertamentiBP; -import it.cnr.contab.docamm00.bp.*; -import it.cnr.contab.docamm00.docs.bulk.*; -import it.cnr.contab.doccont00.core.bulk.*; -import it.cnr.jada.action.*; -import it.cnr.jada.bulk.BulkInfo; -import it.cnr.jada.bulk.OggettoBulk; -import it.cnr.jada.bulk.ValidationException; -import it.cnr.jada.util.Introspector; -import it.cnr.jada.util.action.*; - -/** - * Insert the type's description here. - * Creation date: (10/16/2001 2:36:05 PM) - * @author: Roberto Peli - */ -public class ListaDocumentiAmministrativiAction extends it.cnr.jada.util.action.BulkAction { -/** - * RicercaObbligazioniAction constructor comment. - */ -public ListaDocumentiAmministrativiAction() { - super(); -} -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -public TerzoBulk basicDoBlankSearchSoggetto(ActionContext context) { - - TerzoBulk soggetto = new it.cnr.contab.anagraf00.core.bulk.TerzoBulk(); - soggetto.setAnagrafico(new it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk()); - return soggetto; -} -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -protected void completaSoggetto(ActionContext context) - throws BusinessProcessException, - java.rmi.RemoteException, - java.lang.reflect.InvocationTargetException, - java.beans.IntrospectionException, - it.cnr.jada.comp.ComponentException, - it.cnr.jada.bulk.ValidationException { - - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); - if (filtro.getSoggetto() != null && - filtro.getSoggetto().getCrudStatus() != OggettoBulk.NORMAL) { - - IDocumentoAmministrativoBP docAmmBP = (IDocumentoAmministrativoBP)getBusinessProcessForDocAmm(context, filtro.getInstance()); - if (!(docAmmBP instanceof IGenericSearchDocAmmBP) || ((IGenericSearchDocAmmBP)docAmmBP).getPropertyForGenericSearch() == null) { - filtro.setSoggetto(null); - throw new it.cnr.jada.comp.ApplicationException("Il soggetto non è una clausola valida per il gruppo selezionato!"); - } - - it.cnr.jada.bulk.FieldProperty p = BulkInfo.getBulkInfo(filtro.getInstance().getClass()).getFieldProperty(((IGenericSearchDocAmmBP)docAmmBP).getPropertyForGenericSearch()); - it.cnr.jada.util.RemoteIterator i = bp.find(context,null,filtro.getSoggetto(),filtro,p.getProperty()); - try { - int count = i.countElements(); - if (count == 0) - throw new it.cnr.jada.bulk.ValidationException("La ricerca non ha fornito alcun risultato per il terzo!"); - else if (count == 1) - doBringBackSearchSoggetto(context, filtro,(TerzoBulk)i.nextElement()); - else - throw new ValidationException("La ricerca ha fornito più di un risultato per il terzo!"); - } finally { - it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context,i); - } - } -} -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -public Forward doBlankSearchSoggetto(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) { - - try { - if (bulk != null) { - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bulk; - doBringBackSearchSoggetto( - context, - filtro, - basicDoBlankSearchSoggetto(context)); - } - return context.findDefaultForward(); - } catch(Throwable e) { - return handleException(context,e); - } -} -/** - * Riporta il terzo selezionato nel filtro di ricerca - */ -public Forward doBringBackSearchSoggetto(ActionContext context, - Filtro_ricerca_doc_ammVBulk filtro, - TerzoBulk soggettoTrovato) - throws java.rmi.RemoteException { - - filtro.setSoggetto(soggettoTrovato); - IDocumentoAmministrativoBulk docAmm = filtro.getInstance(); - if (docAmm !=null) { - try { - IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); - if (docAmmBP instanceof IGenericSearchDocAmmBP && ((IGenericSearchDocAmmBP)docAmmBP).getPropertyForGenericSearch() != null) { - IGenericSearchDocAmmBP genericSearchBP = (IGenericSearchDocAmmBP)docAmmBP; - Introspector.invoke( - docAmm, - Introspector.buildMetodName("set", genericSearchBP.getPropertyForGenericSearch()), - soggettoTrovato); - } - } catch (Throwable e) { - return handleException(context, e); - } - } - return context.findDefaultForward(); -} - -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -public Forward doCerca(ActionContext context) throws java.rmi.RemoteException,InstantiationException,javax.ejb.RemoveException { - - try { - fillModel(context); - completaSoggetto(context); - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); - OggettoBulk instance = (OggettoBulk)filtro.getInstance(); - it.cnr.jada.util.RemoteIterator ri = bp.find(context, null, instance); - IDocumentoAmministrativoBP docAmmBP = null; - if (ri == null || ri.countElements() == 0) { - it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri); - bp.setMessage("La ricerca non ha fornito alcun risultato."); - return context.findDefaultForward(); - /*} - else if (ri.countElements() == 1) { - IDocumentoAmministrativoBulk selezione = (IDocumentoAmministrativoBulk)ri.nextElement(); - if (ri instanceof javax.ejb.EJBObject) - ((javax.ejb.EJBObject)ri).remove(); - Object[] docAmmSpecs = getDocAmmBP(context, selezione); - docAmmBP = (IDocumentoAmministrativoBP)docAmmSpecs[0]; - selezione = (IDocumentoAmministrativoBulk)docAmmSpecs[1]; - - ((CRUDBP)docAmmBP).setMessage("La ricerca ha fornito un solo risultato."); - ((CRUDBP)docAmmBP).edit(context, (OggettoBulk)selezione); - return context.addBusinessProcess((BusinessProcess)docAmmBP);*/ - } else { - bp.setModel(context,filtro); - SelezionatoreListaBP nbp = (SelezionatoreListaBP)context.createBusinessProcess("Selezionatore"); - nbp.setIterator(context,ri); - BulkInfo bulkInfo = BulkInfo.getBulkInfo(filtro.getInstance().getClass()); - nbp.setBulkInfo(bulkInfo); - docAmmBP = getBusinessProcessForDocAmm(context, filtro.getInstance()); - if (docAmmBP instanceof IGenericSearchDocAmmBP) { - String columnsetName = ((IGenericSearchDocAmmBP)docAmmBP).getColumnsetForGenericSearch(); - if (columnsetName != null) - nbp.setColumns(bulkInfo.getColumnFieldPropertyDictionary(columnsetName)); - } - context.addHookForward("seleziona",this,"doRiportaSelezione"); - return context.addBusinessProcess(nbp); - } - } catch(Throwable e) { - return handleException(context,e); - } -} -/** - * Gestisce un comando di chiusura - */ -public Forward doCloseForm(ActionContext context) { - - try { - return doConfirmCloseForm(context,OptionBP.YES_BUTTON); - } catch (BusinessProcessException e) { - return handleException(context, e); - } -} -/** - * Gestisce un comando "nuovo ricerca". - * - * L'implementazione di default utilizza il metodo astratto resetForSearch - * di CRUDBusinessProcess - */ -public Forward doConfermaNuovaRicerca(ActionContext context,int option) { - try { - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - if (option == OptionBP.YES_BUTTON) - bp.resetForSearch(context); - return context.findDefaultForward(); - } catch(Throwable e) { - return handleException(context,e); - } -} -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -public Forward doFreeSearchSoggetto(ActionContext context) { - try { - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); - IDocumentoAmministrativoBulk docAmm = filtro.getInstance(); - IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); - - if (!(docAmmBP instanceof IGenericSearchDocAmmBP) || ((IGenericSearchDocAmmBP)docAmmBP).getPropertyForGenericSearch() == null) { - filtro.setSoggetto(null); - throw new it.cnr.jada.comp.ApplicationException("Il soggetto non è una clausola valida per il gruppo selezionato!"); - } - - IGenericSearchDocAmmBP docAmmGenericSearchBP = (IGenericSearchDocAmmBP)docAmmBP; - String property = docAmmGenericSearchBP.getPropertyForGenericSearch(); - it.cnr.contab.anagraf00.core.bulk.TerzoBulk soggetto = filtro.getSoggetto(); - if (soggetto == null) - soggetto = basicDoBlankSearchSoggetto(context); - - it.cnr.jada.util.action.RicercaLiberaBP fsbp = (it.cnr.jada.util.action.RicercaLiberaBP)context.createBusinessProcess("RicercaLibera"); - fsbp.setSearchProvider(bp.getSearchProvider((OggettoBulk)docAmm,property)); - fsbp.setPrototype(soggetto); - context.addHookForward("seleziona",this,"doBringBackSearchResult"); - HookForward hook = (HookForward)context.findForward("seleziona"); - hook.addParameter("field",getFormField(context,"main.soggetto")); - return context.addBusinessProcess(fsbp); - } catch(Exception ex) { - return handleException(context,ex); - } -} -/** - * Gestisce un comando "nuova ricerca". - */ -public Forward doNuovaRicerca(ActionContext context) { - try { - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - fillModel(context); - if (bp.isDirty()) - return openContinuePrompt(context, "doConfermaNuovaRicerca"); - return doConfermaNuovaRicerca(context,OptionBP.YES_BUTTON); - } catch(Throwable e) { - return handleException(context,e); - } -} -/** - * Aggiorna le opzioni sul cambiamento del tipo di doc amm - */ -public Forward doOnGroupChange(ActionContext context) { - - try { - fillModel(context); - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); - filtro.updateOptions(context); - filtro.setInstance(filtro.createInstance(bp, context)); - doBringBackSearchSoggetto(context, filtro, filtro.getSoggetto()); - return context.findDefaultForward(); - } catch(Throwable e) { - return handleException(context,e); - } -} -/** - * Gestisce una richiesta di cambiamento del tipo doc amm da ricercare. - * - */ -public Forward doOnOptionChange(ActionContext context) { - - try { - fillModel(context); - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); - filtro.setInstance(filtro.createInstance(bp, context)); - doBringBackSearchSoggetto(context, filtro, filtro.getSoggetto()); - return context.findDefaultForward(); - } catch(Throwable e) { - return handleException(context,e); - } -} -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -public Forward doRiportaSelezione(ActionContext context) { - - try { - HookForward caller = (HookForward)context.getCaller(); - IDocumentoAmministrativoBulk selezione = (IDocumentoAmministrativoBulk)caller.getParameter("focusedElement"); - if (selezione != null) { - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - Object[] docAmmSpecs = getDocAmmBP(context, selezione); - IDocumentoAmministrativoBP docAmmBP = (IDocumentoAmministrativoBP)docAmmSpecs[0]; - selezione = (IDocumentoAmministrativoBulk)docAmmSpecs[1]; - - ((CRUDBP)docAmmBP).edit(context, (OggettoBulk)selezione); - - return context.addBusinessProcess((BusinessProcess)docAmmBP); - } - return context.findDefaultForward(); - } catch(Exception e) { - return handleException(context,e); - } -} -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -public Forward doSearchSoggetto(ActionContext context) { - try { - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); - IDocumentoAmministrativoBulk docAmm = filtro.getInstance(); - IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); - - if (!(docAmmBP instanceof IGenericSearchDocAmmBP) || ((IGenericSearchDocAmmBP)docAmmBP).getPropertyForGenericSearch() == null) { - filtro.setSoggetto(null); - throw new it.cnr.jada.comp.ApplicationException("Il soggetto non è una clausola valida per il gruppo selezionato!"); - } - - IGenericSearchDocAmmBP docAmmGenericSearchBP = (IGenericSearchDocAmmBP)docAmmBP; - String property = docAmmGenericSearchBP.getPropertyForGenericSearch(); - it.cnr.contab.anagraf00.core.bulk.TerzoBulk soggetto = filtro.getSoggetto(); - if (soggetto == null) - soggetto = basicDoBlankSearchSoggetto(context); - return selectFromSearchResult( - context, - getFormField(context,"main.soggetto"), - bp.find( - context, - null, - soggetto, - bp.getModel(), - property), - "default"); - } catch(Exception e) { - return handleException(context,e); - } -} -/** - * Ottiene un'istanza dell'oggetto reale partendo al DocumentoAmministrativoGenerico - * selezionato e relativo business process responsabile. - */ -protected Object[] getBPAndRealInstanceFor( - ActionContext context, - IDocumentoAmministrativoGenericoBulk docAmmGenerico) - throws it.cnr.jada.comp.ComponentException, - BusinessProcessException, - java.rmi.RemoteException { - - if (docAmmGenerico == null) return null; - IDocumentoAmministrativoBulk docAmm = docAmmGenerico.getSpecializedInstance(); - if (docAmm == null) - return null; - IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); - it.cnr.jada.util.RemoteIterator ri = null; - try { - ri = docAmmBP.createComponentSession().cerca( - context.getUserContext(), - null, - (OggettoBulk)docAmm); - ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context, ri); - docAmm = (IDocumentoAmministrativoBulk)ri.nextElement(); - } finally { - if (ri != null) - it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri); - } - if (docAmm == null) - throw new it.cnr.jada.comp.ApplicationException("Impossibile caricare il documento amministrativo selezionato!"); - return new Object[] { docAmmBP, docAmm }; -} -/** - * Ottiene il business process responsabile del documento amministativo docAmm. - */ -protected IDocumentoAmministrativoBP getBusinessProcessForDocAmm( - ActionContext context, - IDocumentoAmministrativoBulk docAmm) - throws BusinessProcessException { - - if (docAmm == null) return null; - - ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)context.getBusinessProcess(); - return bp.getBusinessProcessForDocAmm(context, docAmm); -} -/** - * Gestisce una richiesta di ricerca. - * - * L'implementazione di default utilizza il metodo astratto read - * di CRUDBusinessProcess. - * Se la ricerca fornisce più di un risultato viene creato un - * nuovo SelezionatoreListaBP per la selezione di un elemento. - * Al business process viene anche chiesto l'elenco delle colonne da - * visualizzare. - */ -protected Object[] getDocAmmBP( - ActionContext context, - IDocumentoAmministrativoBulk docAmm) - throws BusinessProcessException, - it.cnr.jada.comp.ComponentException, - java.rmi.RemoteException { - - if (docAmm instanceof IDocumentoAmministrativoGenericoBulk) - return getBPAndRealInstanceFor( - context, - (IDocumentoAmministrativoGenericoBulk)docAmm); - - Object[] docAmmSpecs = new Object[2]; - docAmmSpecs[0] = getBusinessProcessForDocAmm(context, docAmm); - docAmmSpecs[1] = docAmm; - - return docAmmSpecs; -} -} +/* + * 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.actions; + +import it.cnr.contab.anagraf00.core.bulk.TerzoBulk; +import it.cnr.contab.docamm00.bp.IDocumentoAmministrativoBP; +import it.cnr.contab.docamm00.bp.IGenericSearchDocAmmBP; +import it.cnr.contab.docamm00.bp.ListaDocumentiAmministrativiBP; +import it.cnr.contab.docamm00.docs.bulk.*; +import it.cnr.jada.action.*; +import it.cnr.jada.bulk.BulkInfo; +import it.cnr.jada.bulk.OggettoBulk; +import it.cnr.jada.bulk.ValidationException; +import it.cnr.jada.util.Introspector; +import it.cnr.jada.util.action.CRUDBP; +import it.cnr.jada.util.action.OptionBP; +import it.cnr.jada.util.action.SelezionatoreListaBP; + +import java.util.Optional; + +/** + * Insert the type's description here. + * Creation date: (10/16/2001 2:36:05 PM) + * + * @author: Roberto Peli + */ +public class ListaDocumentiAmministrativiAction extends it.cnr.jada.util.action.BulkAction { + /** + * RicercaObbligazioniAction constructor comment. + */ + public ListaDocumentiAmministrativiAction() { + super(); + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + public TerzoBulk basicDoBlankSearchSoggetto(ActionContext context) { + + TerzoBulk soggetto = new it.cnr.contab.anagraf00.core.bulk.TerzoBulk(); + soggetto.setAnagrafico(new it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk()); + return soggetto; + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + protected void completaSoggetto(ActionContext context) + throws BusinessProcessException, + java.rmi.RemoteException, + java.lang.reflect.InvocationTargetException, + java.beans.IntrospectionException, + it.cnr.jada.comp.ComponentException, + it.cnr.jada.bulk.ValidationException { + + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) bp.getModel(); + if (filtro.getSoggetto() != null && + filtro.getSoggetto().getCrudStatus() != OggettoBulk.NORMAL) { + + IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, filtro.getInstance()); + if (!(docAmmBP instanceof IGenericSearchDocAmmBP) || ((IGenericSearchDocAmmBP) docAmmBP).getPropertyForGenericSearch() == null) { + filtro.setSoggetto(null); + throw new it.cnr.jada.comp.ApplicationException("Il soggetto non è una clausola valida per il gruppo selezionato!"); + } + + it.cnr.jada.bulk.FieldProperty p = BulkInfo.getBulkInfo(filtro.getInstance().getClass()).getFieldProperty(((IGenericSearchDocAmmBP) docAmmBP).getPropertyForGenericSearch()); + it.cnr.jada.util.RemoteIterator i = bp.find(context, null, filtro.getSoggetto(), filtro, p.getProperty()); + try { + int count = i.countElements(); + if (count == 0) + throw new it.cnr.jada.bulk.ValidationException("La ricerca non ha fornito alcun risultato per il terzo!"); + else if (count == 1) + doBringBackSearchSoggetto(context, filtro, (TerzoBulk) i.nextElement()); + else + throw new ValidationException("La ricerca ha fornito più di un risultato per il terzo!"); + } finally { + it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, i); + } + } + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + public Forward doBlankSearchSoggetto(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) { + + try { + if (bulk != null) { + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) bulk; + doBringBackSearchSoggetto( + context, + filtro, + basicDoBlankSearchSoggetto(context)); + } + return context.findDefaultForward(); + } catch (Throwable e) { + return handleException(context, e); + } + } + + /** + * Riporta il terzo selezionato nel filtro di ricerca + */ + public Forward doBringBackSearchSoggetto(ActionContext context, + Filtro_ricerca_doc_ammVBulk filtro, + TerzoBulk soggettoTrovato) + throws java.rmi.RemoteException { + + filtro.setSoggetto(soggettoTrovato); + IDocumentoAmministrativoBulk docAmm = filtro.getInstance(); + if (docAmm != null) { + try { + IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); + if (docAmmBP instanceof IGenericSearchDocAmmBP && ((IGenericSearchDocAmmBP) docAmmBP).getPropertyForGenericSearch() != null) { + IGenericSearchDocAmmBP genericSearchBP = (IGenericSearchDocAmmBP) docAmmBP; + Introspector.invoke( + docAmm, + Introspector.buildMetodName("set", genericSearchBP.getPropertyForGenericSearch()), + soggettoTrovato); + } + } catch (Throwable e) { + return handleException(context, e); + } + } + return context.findDefaultForward(); + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + public Forward doCerca(ActionContext context) throws java.rmi.RemoteException, InstantiationException, javax.ejb.RemoveException { + + try { + fillModel(context); + completaSoggetto(context); + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) bp.getModel(); + OggettoBulk instance = (OggettoBulk) filtro.getInstance(); + it.cnr.jada.util.RemoteIterator ri = bp.find(context, null, instance); + IDocumentoAmministrativoBP docAmmBP = null; + if (ri == null || ri.countElements() == 0) { + it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri); + bp.setMessage("La ricerca non ha fornito alcun risultato."); + return context.findDefaultForward(); + } else { + bp.setModel(context, filtro); + SelezionatoreListaBP nbp = (SelezionatoreListaBP) context.createBusinessProcess("Selezionatore"); + nbp.setIterator(context, ri); + nbp.setModel(context, instance); + BulkInfo bulkInfo = BulkInfo.getBulkInfo(filtro.getInstance().getClass()); + nbp.setBulkInfo(bulkInfo); + docAmmBP = getBusinessProcessForDocAmm(context, filtro.getInstance()); + if (docAmmBP instanceof IGenericSearchDocAmmBP) { + String columnsetName = ((IGenericSearchDocAmmBP) docAmmBP).getColumnsetForGenericSearch(); + if (columnsetName != null) + nbp.setColumns(bulkInfo.getColumnFieldPropertyDictionary(columnsetName)); + } + context.addHookForward("seleziona", this, "doRiportaSelezione"); + return context.addBusinessProcess(nbp); + } + } catch (Throwable e) { + return handleException(context, e); + } + } + + /** + * Gestisce un comando di chiusura + */ + public Forward doCloseForm(ActionContext context) { + + try { + return doConfirmCloseForm(context, OptionBP.YES_BUTTON); + } catch (BusinessProcessException e) { + return handleException(context, e); + } + } + + /** + * Gestisce un comando "nuovo ricerca". + *

+ * L'implementazione di default utilizza il metodo astratto resetForSearch + * di CRUDBusinessProcess + */ + public Forward doConfermaNuovaRicerca(ActionContext context, int option) { + try { + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + if (option == OptionBP.YES_BUTTON) + bp.resetForSearch(context); + return context.findDefaultForward(); + } catch (Throwable e) { + return handleException(context, e); + } + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + public Forward doFreeSearchSoggetto(ActionContext context) { + try { + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) bp.getModel(); + IDocumentoAmministrativoBulk docAmm = filtro.getInstance(); + IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); + + if (!(docAmmBP instanceof IGenericSearchDocAmmBP) || ((IGenericSearchDocAmmBP) docAmmBP).getPropertyForGenericSearch() == null) { + filtro.setSoggetto(null); + throw new it.cnr.jada.comp.ApplicationException("Il soggetto non è una clausola valida per il gruppo selezionato!"); + } + + IGenericSearchDocAmmBP docAmmGenericSearchBP = (IGenericSearchDocAmmBP) docAmmBP; + String property = docAmmGenericSearchBP.getPropertyForGenericSearch(); + it.cnr.contab.anagraf00.core.bulk.TerzoBulk soggetto = filtro.getSoggetto(); + if (soggetto == null) + soggetto = basicDoBlankSearchSoggetto(context); + + it.cnr.jada.util.action.RicercaLiberaBP fsbp = (it.cnr.jada.util.action.RicercaLiberaBP) context.createBusinessProcess("RicercaLibera"); + fsbp.setSearchProvider(bp.getSearchProvider((OggettoBulk) docAmm, property)); + fsbp.setPrototype(soggetto); + context.addHookForward("seleziona", this, "doBringBackSearchResult"); + HookForward hook = (HookForward) context.findForward("seleziona"); + hook.addParameter("field", getFormField(context, "main.soggetto")); + return context.addBusinessProcess(fsbp); + } catch (Exception ex) { + return handleException(context, ex); + } + } + + /** + * Gestisce un comando "nuova ricerca". + */ + public Forward doNuovaRicerca(ActionContext context) { + try { + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + fillModel(context); + if (bp.isDirty()) + return openContinuePrompt(context, "doConfermaNuovaRicerca"); + return doConfermaNuovaRicerca(context, OptionBP.YES_BUTTON); + } catch (Throwable e) { + return handleException(context, e); + } + } + + /** + * Aggiorna le opzioni sul cambiamento del tipo di doc amm + */ + public Forward doOnGroupChange(ActionContext context) { + + try { + fillModel(context); + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) bp.getModel(); + filtro.updateOptions(context); + filtro.setInstance(filtro.createInstance(bp, context)); + bp.resetCds(context, filtro); + doBringBackSearchSoggetto(context, filtro, filtro.getSoggetto()); + return context.findDefaultForward(); + } catch (Throwable e) { + return handleException(context, e); + } + } + /** + * Gestisce una richiesta di cambiamento del tipo doc amm da ricercare. + */ + public Forward doOnOptionChange(ActionContext context) { + + try { + fillModel(context); + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) bp.getModel(); + filtro.setInstance(filtro.createInstance(bp, context)); + bp.resetCds(context, filtro); + doBringBackSearchSoggetto(context, filtro, filtro.getSoggetto()); + return context.findDefaultForward(); + } catch (Throwable e) { + return handleException(context, e); + } + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + public Forward doRiportaSelezione(ActionContext context) { + + try { + HookForward caller = (HookForward) context.getCaller(); + IDocumentoAmministrativoBulk selezione = (IDocumentoAmministrativoBulk) caller.getParameter("focusedElement"); + if (selezione != null) { + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + Object[] docAmmSpecs = getDocAmmBP(context, selezione); + IDocumentoAmministrativoBP docAmmBP = (IDocumentoAmministrativoBP) docAmmSpecs[0]; + selezione = (IDocumentoAmministrativoBulk) docAmmSpecs[1]; + + ((CRUDBP) docAmmBP).edit(context, (OggettoBulk) selezione); + + return context.addBusinessProcess((BusinessProcess) docAmmBP); + } + return context.findDefaultForward(); + } catch (Exception e) { + return handleException(context, e); + } + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + public Forward doSearchSoggetto(ActionContext context) { + try { + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) bp.getModel(); + IDocumentoAmministrativoBulk docAmm = filtro.getInstance(); + IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); + + if (!(docAmmBP instanceof IGenericSearchDocAmmBP) || ((IGenericSearchDocAmmBP) docAmmBP).getPropertyForGenericSearch() == null) { + filtro.setSoggetto(null); + throw new it.cnr.jada.comp.ApplicationException("Il soggetto non è una clausola valida per il gruppo selezionato!"); + } + + IGenericSearchDocAmmBP docAmmGenericSearchBP = (IGenericSearchDocAmmBP) docAmmBP; + String property = docAmmGenericSearchBP.getPropertyForGenericSearch(); + it.cnr.contab.anagraf00.core.bulk.TerzoBulk soggetto = filtro.getSoggetto(); + if (soggetto == null) + soggetto = basicDoBlankSearchSoggetto(context); + return selectFromSearchResult( + context, + getFormField(context, "main.soggetto"), + bp.find( + context, + null, + soggetto, + bp.getModel(), + property), + "default"); + } catch (Exception e) { + return handleException(context, e); + } + } + + /** + * Ottiene un'istanza dell'oggetto reale partendo al DocumentoAmministrativoGenerico + * selezionato e relativo business process responsabile. + */ + protected Object[] getBPAndRealInstanceFor( + ActionContext context, + IDocumentoAmministrativoGenericoBulk docAmmGenerico) + throws it.cnr.jada.comp.ComponentException, + BusinessProcessException, + java.rmi.RemoteException { + + if (docAmmGenerico == null) return null; + IDocumentoAmministrativoBulk docAmm = docAmmGenerico.getSpecializedInstance(); + if (docAmm == null) + return null; + IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm); + it.cnr.jada.util.RemoteIterator ri = null; + try { + ri = docAmmBP.createComponentSession().cerca( + context.getUserContext(), + null, + (OggettoBulk) docAmm); + ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context, ri); + docAmm = (IDocumentoAmministrativoBulk) ri.nextElement(); + } finally { + if (ri != null) + it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri); + } + if (docAmm == null) + throw new it.cnr.jada.comp.ApplicationException("Impossibile caricare il documento amministrativo selezionato!"); + return new Object[]{docAmmBP, docAmm}; + } + + /** + * Ottiene il business process responsabile del documento amministativo docAmm. + */ + protected IDocumentoAmministrativoBP getBusinessProcessForDocAmm( + ActionContext context, + IDocumentoAmministrativoBulk docAmm) + throws BusinessProcessException { + + if (docAmm == null) return null; + + ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP) context.getBusinessProcess(); + return bp.getBusinessProcessForDocAmm(context, docAmm); + } + + /** + * Gestisce una richiesta di ricerca. + *

+ * L'implementazione di default utilizza il metodo astratto read + * di CRUDBusinessProcess. + * Se la ricerca fornisce più di un risultato viene creato un + * nuovo SelezionatoreListaBP per la selezione di un elemento. + * Al business process viene anche chiesto l'elenco delle colonne da + * visualizzare. + */ + protected Object[] getDocAmmBP( + ActionContext context, + IDocumentoAmministrativoBulk docAmm) + throws BusinessProcessException, + it.cnr.jada.comp.ComponentException, + java.rmi.RemoteException { + + if (docAmm instanceof IDocumentoAmministrativoGenericoBulk) + return getBPAndRealInstanceFor( + context, + (IDocumentoAmministrativoGenericoBulk) docAmm); + + Object[] docAmmSpecs = new Object[2]; + docAmmSpecs[0] = getBusinessProcessForDocAmm(context, docAmm); + docAmmSpecs[1] = docAmm; + + return docAmmSpecs; + } +} diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.java index 258b246096..0c216b623e 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.java @@ -1,249 +1,314 @@ -/* - * 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.IDocumentoAmministrativoBulk; - -import it.cnr.contab.docamm00.docs.bulk.Filtro_ricerca_doc_ammVBulk; -import it.cnr.jada.action.ActionContext; -import it.cnr.jada.action.BusinessProcessException; -import it.cnr.jada.bulk.OggettoBulk; -import it.cnr.jada.util.action.BulkBP; -import it.cnr.jada.util.ejb.EJBCommonServices; - - -public class ListaDocumentiAmministrativiBP extends BulkBP { - - private int status = INSERT; - private java.util.HashMap bpCache = null; -/** - * ListaDocumentiAmministrativiBP constructor comment. - */ -public ListaDocumentiAmministrativiBP() { - super(); - resetBpCache(); -} -/** - * ListaDocumentiAmministrativiBP constructor comment. - * @param function java.lang.String - */ -public ListaDocumentiAmministrativiBP(String function) { - super(function); - resetBpCache(); -} -/** - * Insert the method's description here. - * Creation date: (3/28/2002 2:35:20 PM) - * @return java.util.HashMap - */ -public void addToBpCache(IDocumentoAmministrativoBP bp) { - - bpCache.put( - ((it.cnr.jada.util.action.CRUDBP)bp).getName(), - bp); -} -/** - * Effettua una operazione di ricerca per un attributo di un modello. - * @param actionContext contesto dell'azione in corso - * @param clauses Albero di clausole da utilizzare per la ricerca - * @param bulk prototipo del modello di cui si effettua la ricerca - * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del - * controller che ha scatenato la ricerca) - * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato - */ -public it.cnr.jada.ejb.CRUDComponentSession createComponentSession(ActionContext actionContext) throws BusinessProcessException { - - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)getModel(); - String bpName = filtro.getManagerName(); - String bpOptions = filtro.getManagerOptions(); - if (bpName == null) return null; - if (bpOptions == null) bpOptions = "VTh"; - IDocumentoAmministrativoBP bp = (IDocumentoAmministrativoBP)actionContext.createBusinessProcess(bpName, new Object[] { bpOptions }); - if (bp == null) return null; - if (bp instanceof IGenericSearchDocAmmBP) - return ((IGenericSearchDocAmmBP)bp).initializeModelForGenericSearch(this, actionContext); - return bp.createComponentSession(); -} -/** - * Invocato per creare un modello vuoto da usare su una nuova richiesta di ricerca. - */ -public Filtro_ricerca_doc_ammVBulk createEmptyModelForSearch(ActionContext context) throws BusinessProcessException { - - try { - return createNewBulk(context).initializeForSearch(this,context); - } catch(Exception e) { - throw handleException(e); - } -} -/** - * Crea un OggettoBulk vuoto della classe compatibile con la CRUDComponentSession del ricevente - */ -public Filtro_ricerca_doc_ammVBulk createNewBulk(ActionContext context) throws BusinessProcessException { - try { - Filtro_ricerca_doc_ammVBulk bulk = new Filtro_ricerca_doc_ammVBulk(); - bulk.setUser(context.getUserInfo().getUserid()); - return bulk; - } catch(Exception e) { - throw handleException(e); - } -} -protected it.cnr.jada.util.jsp.Button[] createToolbar() { - it.cnr.jada.util.jsp.Button[] toolbar = new it.cnr.jada.util.jsp.Button[2]; - int i = 0; - toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"CRUDToolbar.search"); - toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"CRUDToolbar.startSearch"); - return toolbar; -} -/** - * Effettua una operazione di ricerca per un attributo di un modello. - * @param actionContext contesto dell'azione in corso - * @param clauses Albero di clausole da utilizzare per la ricerca - * @param bulk prototipo del modello di cui si effettua la ricerca - * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del - * controller che ha scatenato la ricerca) - * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato - */ -public it.cnr.jada.util.RemoteIterator find(ActionContext actionContext,it.cnr.jada.persistency.sql.CompoundFindClause clauses,it.cnr.jada.bulk.OggettoBulk bulk) throws it.cnr.jada.action.BusinessProcessException { - - try { - it.cnr.jada.ejb.CRUDComponentSession cs = createComponentSession(actionContext); - if (cs == null) return null; - return EJBCommonServices.openRemoteIterator( - actionContext, - cs.cerca(actionContext.getUserContext(),clauses,bulk)); - } catch (it.cnr.jada.comp.ComponentException e) { - throw handleException(e); - } catch (java.rmi.RemoteException e) { - throw handleException(e); - } -} -/** - * Effettua una operazione di ricerca per un attributo di un modello. - * @param actionContext contesto dell'azione in corso - * @param clauses Albero di clausole da utilizzare per la ricerca - * @param bulk prototipo del modello di cui si effettua la ricerca - * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del - * controller che ha scatenato la ricerca) - * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato - */ -public it.cnr.jada.util.RemoteIterator find(ActionContext actionContext,it.cnr.jada.persistency.sql.CompoundFindClause clauses,OggettoBulk bulk,OggettoBulk context,String property) throws it.cnr.jada.action.BusinessProcessException { - - try { - it.cnr.jada.ejb.CRUDComponentSession cs = createComponentSession(actionContext); - if (cs == null) return null; - return EJBCommonServices.openRemoteIterator( - actionContext, - cs.cerca( - actionContext.getUserContext(), - clauses, - bulk, - getModel(), - //(OggettoBulk)((Filtro_ricerca_doc_ammVBulk)getModel()).getInstance(), - property)); - } 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: (3/28/2002 2:35:20 PM) - * @return java.util.HashMap - */ -public java.util.HashMap getBpCache() { - return bpCache; -} -/** - * Ottiene il business process responsabile del documento amministativo docAmm. - */ -public IDocumentoAmministrativoBP getBusinessProcessForDocAmm( - ActionContext context, - IDocumentoAmministrativoBulk docAmm) - throws BusinessProcessException { - - if (docAmm == null) return null; - - IDocumentoAmministrativoBP docAmmBP = (IDocumentoAmministrativoBP)getBpCache().get(docAmm.getManagerName()); - if (docAmmBP == null) { - docAmmBP = (IDocumentoAmministrativoBP)context.createBusinessProcess( - docAmm.getManagerName(), - new Object[] { docAmm.getManagerOptions() }); - addToBpCache(docAmmBP); - } - return docAmmBP; -} - -public java.util.Dictionary getSearchResultColumns() { - return ((OggettoBulk)((Filtro_ricerca_doc_ammVBulk)getModel()).getInstance()).getBulkInfo().getColumnFieldPropertyDictionary(); -} -public int getStatus() { - return status; -} -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); - setStatus(SEARCH); - resetForSearch(context); -} -public boolean isBringbackButtonEnabled() { - return isSearching(); -} -public boolean isSearchButtonHidden() { - return isSearching(); -} -public boolean isSearching() { - return status == SEARCH; -} -public boolean isStartSearchButtonHidden() { - return !isSearching(); -} -/** - * Insert the method's description here. - * Creation date: (3/28/2002 2:35:20 PM) - * @return java.util.HashMap - */ -public void removeFromBpCache(IDocumentoAmministrativoBP bp) { - - bpCache.remove(((it.cnr.jada.util.action.CRUDBP)bp).getName()); -} -/** - * Insert the method's description here. - * Creation date: (3/28/2002 2:35:20 PM) - * @param newBpCache java.util.HashMap - */ -public void resetBpCache() { - bpCache = new java.util.HashMap(); -} -/** - * Inzializza il ricevente nello stato di SEARCH. - */ -public void resetForSearch(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException { - try { - setModel(context,createEmptyModelForSearch(context)); - setStatus(SEARCH); - setDirty(false); - resetChildren(context); - } catch(Throwable e) { - throw new it.cnr.jada.action.BusinessProcessException(e); - } -} -public void setStatus(int newStatus) { - status = newStatus; -} -} +/* + * 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.*; +import it.cnr.jada.action.ActionContext; +import it.cnr.jada.action.BusinessProcessException; +import it.cnr.jada.bulk.OggettoBulk; +import it.cnr.jada.persistency.sql.CompoundFindClause; +import it.cnr.jada.util.RemoteIterator; +import it.cnr.jada.util.action.BulkBP; +import it.cnr.jada.util.action.SearchProvider; +import it.cnr.jada.util.ejb.EJBCommonServices; + +import java.util.Optional; + + +public class ListaDocumentiAmministrativiBP extends BulkBP implements SearchProvider { + + private int status = INSERT; + private java.util.HashMap bpCache = null; + + /** + * ListaDocumentiAmministrativiBP constructor comment. + */ + public ListaDocumentiAmministrativiBP() { + super(); + resetBpCache(); + } + + /** + * ListaDocumentiAmministrativiBP constructor comment. + * + * @param function java.lang.String + */ + public ListaDocumentiAmministrativiBP(String function) { + super(function); + resetBpCache(); + } + + /** + * Insert the method's description here. + * Creation date: (3/28/2002 2:35:20 PM) + * + * @return java.util.HashMap + */ + public void addToBpCache(IDocumentoAmministrativoBP bp) { + + bpCache.put( + ((it.cnr.jada.util.action.CRUDBP) bp).getName(), + bp); + } + + /** + * Effettua una operazione di ricerca per un attributo di un modello. + * + * @param actionContext contesto dell'azione in corso + * @param clauses Albero di clausole da utilizzare per la ricerca + * @param bulk prototipo del modello di cui si effettua la ricerca + * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del + * controller che ha scatenato la ricerca) + * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato + */ + public it.cnr.jada.ejb.CRUDComponentSession createComponentSession(ActionContext actionContext) throws BusinessProcessException { + + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk) getModel(); + String bpName = filtro.getManagerName(); + String bpOptions = filtro.getManagerOptions(); + if (bpName == null) return null; + if (bpOptions == null) bpOptions = "VTh"; + IDocumentoAmministrativoBP bp = (IDocumentoAmministrativoBP) actionContext.createBusinessProcess(bpName, new Object[]{bpOptions}); + if (bp == null) return null; + if (bp instanceof IGenericSearchDocAmmBP) + return ((IGenericSearchDocAmmBP) bp).initializeModelForGenericSearch(this, actionContext); + return bp.createComponentSession(); + } + + /** + * Invocato per creare un modello vuoto da usare su una nuova richiesta di ricerca. + */ + public Filtro_ricerca_doc_ammVBulk createEmptyModelForSearch(ActionContext context) throws BusinessProcessException { + try { + Filtro_ricerca_doc_ammVBulk filtro_ricerca_doc_ammVBulk = createNewBulk(context).initializeForSearch(this, context); + resetCds(context, filtro_ricerca_doc_ammVBulk); + return filtro_ricerca_doc_ammVBulk; + } catch (Exception e) { + throw handleException(e); + } + } + + /** + * Crea un OggettoBulk vuoto della classe compatibile con la CRUDComponentSession del ricevente + */ + public Filtro_ricerca_doc_ammVBulk createNewBulk(ActionContext context) throws BusinessProcessException { + try { + Filtro_ricerca_doc_ammVBulk bulk = new Filtro_ricerca_doc_ammVBulk(); + bulk.setUser(context.getUserInfo().getUserid()); + return bulk; + } catch (Exception e) { + throw handleException(e); + } + } + + protected it.cnr.jada.util.jsp.Button[] createToolbar() { + it.cnr.jada.util.jsp.Button[] toolbar = new it.cnr.jada.util.jsp.Button[2]; + int i = 0; + toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.search"); + toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.startSearch"); + return toolbar; + } + + /** + * Effettua una operazione di ricerca per un attributo di un modello. + * + * @param actionContext contesto dell'azione in corso + * @param clauses Albero di clausole da utilizzare per la ricerca + * @param bulk prototipo del modello di cui si effettua la ricerca + * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del + * controller che ha scatenato la ricerca) + * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato + */ + public it.cnr.jada.util.RemoteIterator find(ActionContext actionContext, it.cnr.jada.persistency.sql.CompoundFindClause clauses, it.cnr.jada.bulk.OggettoBulk bulk) throws it.cnr.jada.action.BusinessProcessException { + + try { + it.cnr.jada.ejb.CRUDComponentSession cs = createComponentSession(actionContext); + if (cs == null) return null; + return EJBCommonServices.openRemoteIterator( + actionContext, + cs.cerca(actionContext.getUserContext(), clauses, bulk)); + } catch (it.cnr.jada.comp.ComponentException e) { + throw handleException(e); + } catch (java.rmi.RemoteException e) { + throw handleException(e); + } + } + + /** + * Effettua una operazione di ricerca per un attributo di un modello. + * + * @param actionContext contesto dell'azione in corso + * @param clauses Albero di clausole da utilizzare per la ricerca + * @param bulk prototipo del modello di cui si effettua la ricerca + * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del + * controller che ha scatenato la ricerca) + * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato + */ + public it.cnr.jada.util.RemoteIterator find(ActionContext actionContext, it.cnr.jada.persistency.sql.CompoundFindClause clauses, OggettoBulk bulk, OggettoBulk context, String property) throws it.cnr.jada.action.BusinessProcessException { + + try { + it.cnr.jada.ejb.CRUDComponentSession cs = createComponentSession(actionContext); + if (cs == null) return null; + return EJBCommonServices.openRemoteIterator( + actionContext, + cs.cerca( + actionContext.getUserContext(), + clauses, + bulk, + getModel(), + //(OggettoBulk)((Filtro_ricerca_doc_ammVBulk)getModel()).getInstance(), + property)); + } 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: (3/28/2002 2:35:20 PM) + * + * @return java.util.HashMap + */ + public java.util.HashMap getBpCache() { + return bpCache; + } + + /** + * Ottiene il business process responsabile del documento amministativo docAmm. + */ + public IDocumentoAmministrativoBP getBusinessProcessForDocAmm( + ActionContext context, + IDocumentoAmministrativoBulk docAmm) + throws BusinessProcessException { + + if (docAmm == null) return null; + + IDocumentoAmministrativoBP docAmmBP = (IDocumentoAmministrativoBP) getBpCache().get(docAmm.getManagerName()); + if (docAmmBP == null) { + docAmmBP = (IDocumentoAmministrativoBP) context.createBusinessProcess( + docAmm.getManagerName(), + new Object[]{docAmm.getManagerOptions()}); + addToBpCache(docAmmBP); + } + return docAmmBP; + } + + public java.util.Dictionary getSearchResultColumns() { + return ((OggettoBulk) ((Filtro_ricerca_doc_ammVBulk) getModel()).getInstance()).getBulkInfo().getColumnFieldPropertyDictionary(); + } + + public int getStatus() { + return status; + } + + public void setStatus(int newStatus) { + status = newStatus; + } + + 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); + setStatus(SEARCH); + resetForSearch(context); + } + + public boolean isBringbackButtonEnabled() { + return isSearching(); + } + + public boolean isSearchButtonHidden() { + return isSearching(); + } + + public boolean isSearching() { + return status == SEARCH; + } + + public boolean isStartSearchButtonHidden() { + return !isSearching(); + } + + /** + * Insert the method's description here. + * Creation date: (3/28/2002 2:35:20 PM) + * + * @return java.util.HashMap + */ + public void removeFromBpCache(IDocumentoAmministrativoBP bp) { + + bpCache.remove(((it.cnr.jada.util.action.CRUDBP) bp).getName()); + } + + /** + * Insert the method's description here. + * Creation date: (3/28/2002 2:35:20 PM) + * + * @param newBpCache java.util.HashMap + */ + public void resetBpCache() { + bpCache = new java.util.HashMap(); + } + + /** + * Inzializza il ricevente nello stato di SEARCH. + */ + public void resetForSearch(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException { + try { + setModel(context, createEmptyModelForSearch(context)); + setStatus(SEARCH); + setDirty(false); + resetChildren(context); + } catch (Throwable e) { + throw new it.cnr.jada.action.BusinessProcessException(e); + } + } + + public void resetCds(ActionContext context, Filtro_ricerca_doc_ammVBulk filtro) { + it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk unita_organizzativa = it.cnr.contab.utenze00.bulk.CNRUserInfo.getUnita_organizzativa(context); + if (unita_organizzativa.isUoEnte()) { + Optional.ofNullable(filtro.getInstance()) + .filter(IDocumentoAmministrativoGenericoBulk.class::isInstance) + .map(IDocumentoAmministrativoGenericoBulk.class::cast) + .ifPresent(documentoAmministrativoGenericoBulk -> { + documentoAmministrativoGenericoBulk.setCd_cds_origine(null); + documentoAmministrativoGenericoBulk.setCd_uo_origine(null); + }); + Optional.ofNullable(filtro.getInstance()) + .filter(Fattura_attivaBulk.class::isInstance) + .map(Fattura_attivaBulk.class::cast) + .ifPresent(fatturaAttivaBulk -> { + fatturaAttivaBulk.setCd_cds_origine(null); + fatturaAttivaBulk.setCd_uo_origine(null); + }); + Optional.ofNullable(filtro.getInstance()) + .filter(Fattura_passivaBulk.class::isInstance) + .map(Fattura_passivaBulk.class::cast) + .ifPresent(fatturaPassivaBulk -> { + fatturaPassivaBulk.setCd_cds(null); + fatturaPassivaBulk.setCd_unita_organizzativa(null); + }); + } + } + + @Override + public RemoteIterator search(ActionContext actioncontext, CompoundFindClause compoundfindclause, OggettoBulk oggettobulk) throws BusinessProcessException { + return find(actioncontext, compoundfindclause, oggettobulk); + } +} diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.java index 51178a9f58..bd5fdc117c 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.java @@ -25,48 +25,48 @@ import it.cnr.jada.action.Config; import it.cnr.jada.util.action.BulkBP; -public class ConsDocammAnagFitBP extends BulkBP -{ - - public it.cnr.jada.util.jsp.Button[] createToolbar() { - it.cnr.jada.util.jsp.Button[] toolbar = new it.cnr.jada.util.jsp.Button[1]; - int i = 0; - toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"buttons.ricerca"); - return toolbar; - } - protected void init(Config config,ActionContext context) throws BusinessProcessException { - - VDocAmmAnagManrevBulk bulk = new VDocAmmAnagManrevBulk(); - bulk.setAnagrafico(new AnagraficoBulk()); - setModel(context,bulk); - super.init(config,context); - } - - public boolean isRicercaButtonEnabled() - { - return true; - } - - public AnagraficoComponentSession createComponentSession() - throws javax.ejb.EJBException, - java.rmi.RemoteException, - BusinessProcessException { - return (AnagraficoComponentSession)createComponentSession("CNRANAGRAF00_EJB_AnagraficoComponentSession",AnagraficoComponentSession.class); - } - /** - * Effettua una operazione di ricerca per un attributo di un modello. - * @param actionContext contesto dell'azione in corso - * @param clauses Albero di clausole da utilizzare per la ricerca - * @param bulk prototipo del modello di cui si effettua la ricerca - * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del - * controller che ha scatenato la ricerca) - * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato - */ - public it.cnr.jada.util.RemoteIterator find(it.cnr.jada.action.ActionContext actionContext, it.cnr.jada.persistency.sql.CompoundFindClause clauses, it.cnr.jada.bulk.OggettoBulk bulk, it.cnr.jada.bulk.OggettoBulk context, String property) throws it.cnr.jada.action.BusinessProcessException { - try { - return it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(actionContext,createComponentSession().cerca(actionContext.getUserContext(),clauses,bulk,context,property)); - } catch(Exception e) { - throw new it.cnr.jada.action.BusinessProcessException(e); - } - } +public class ConsDocammAnagFitBP extends BulkBP { + + public it.cnr.jada.util.jsp.Button[] createToolbar() { + it.cnr.jada.util.jsp.Button[] toolbar = new it.cnr.jada.util.jsp.Button[1]; + int i = 0; + toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.startSearch"); + return toolbar; + } + + protected void init(Config config, ActionContext context) throws BusinessProcessException { + VDocAmmAnagManrevBulk bulk = new VDocAmmAnagManrevBulk(); + bulk.setAnagrafico(new AnagraficoBulk()); + setModel(context, bulk); + super.init(config, context); + } + + public boolean isRicercaButtonEnabled() { + return true; + } + + public AnagraficoComponentSession createComponentSession() + throws javax.ejb.EJBException, + java.rmi.RemoteException, + BusinessProcessException { + return (AnagraficoComponentSession) createComponentSession("CNRANAGRAF00_EJB_AnagraficoComponentSession", AnagraficoComponentSession.class); + } + + /** + * Effettua una operazione di ricerca per un attributo di un modello. + * + * @param actionContext contesto dell'azione in corso + * @param clauses Albero di clausole da utilizzare per la ricerca + * @param bulk prototipo del modello di cui si effettua la ricerca + * @param context modello che fa da contesto alla ricerca (il modello del FormController padre del + * controller che ha scatenato la ricerca) + * @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato + */ + public it.cnr.jada.util.RemoteIterator find(it.cnr.jada.action.ActionContext actionContext, it.cnr.jada.persistency.sql.CompoundFindClause clauses, it.cnr.jada.bulk.OggettoBulk bulk, it.cnr.jada.bulk.OggettoBulk context, String property) throws it.cnr.jada.action.BusinessProcessException { + try { + return it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(actionContext, createComponentSession().cerca(actionContext.getUserContext(), clauses, bulk, context, property)); + } catch (Exception e) { + throw new it.cnr.jada.action.BusinessProcessException(e); + } + } } diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/docs/bulk/IDocumentoAmministrativoGenericoBulk.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/docs/bulk/IDocumentoAmministrativoGenericoBulk.java index 852b86b33c..3b64933aab 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/docs/bulk/IDocumentoAmministrativoGenericoBulk.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/docs/bulk/IDocumentoAmministrativoGenericoBulk.java @@ -1,33 +1,44 @@ -/* - * 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; - -/** - * Insert the type's description here. - * Creation date: (3/22/2002 2:48:52 PM) - * @author: Roberto Peli - */ -public interface IDocumentoAmministrativoGenericoBulk { -/** - * Insert the method's description here. - * Creation date: (3/22/2002 2:52:05 PM) - * @return it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk - * @param docAmmGen it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoGenericoBulk - */ -IDocumentoAmministrativoBulk getSpecializedInstance(); -} +/* + * 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; + +/** + * Insert the type's description here. + * Creation date: (3/22/2002 2:48:52 PM) + * @author: Roberto Peli + */ +public interface IDocumentoAmministrativoGenericoBulk { + /** + * Insert the method's description here. + * Creation date: (3/22/2002 2:52:05 PM) + * @return it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk + */ + IDocumentoAmministrativoBulk getSpecializedInstance(); + + /** + * + * @param cd_cds_origine + */ + void setCd_cds_origine(java.lang.String cd_cds_origine); + + /** + * + * @param cd_uo_origine + */ + void setCd_uo_origine(java.lang.String cd_uo_origine); +} diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.properties b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.properties index 7a5b657f0d..34496f403e 100644 --- a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.properties +++ b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/bp/ListaDocumentiAmministrativiBP.properties @@ -1,34 +1,38 @@ -# -# 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 . -# - -CRUDToolbar.search.img=img/find24.gif -CRUDToolbar.search.disabledImg=img/find24.gif -CRUDToolbar.search.label=Nuova
ricerca -CRUDToolbar.search.href=javascript:submitForm('doNuovaRicerca') -CRUDToolbar.search.style=width:60px; -CRUDToolbar.search.hiddenProperty=searchButtonHidden -CRUDToolbar.search.title=Nuova ricerca -CRUDToolbar.search.accessKey=N - -CRUDToolbar.startSearch.img=img/find24.gif -CRUDToolbar.startSearch.disabledImg=img/find24.gif -CRUDToolbar.startSearch.label=Cerca
  -CRUDToolbar.startSearch.href=javascript:submitForm('doCerca') -CRUDToolbar.startSearch.style=width:60px; -CRUDToolbar.startSearch.hiddenProperty=startSearchButtonHidden -CRUDToolbar.startSearch.title=Cerca -CRUDToolbar.startSearch.accessKey=C \ No newline at end of file +# +# 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 . +# + +CRUDToolbar.search.img=img/find24.gif +CRUDToolbar.search.disabledImg=img/find24.gif +CRUDToolbar.search.label=Nuova
ricerca +CRUDToolbar.search.href=javascript:submitForm('doNuovaRicerca') +CRUDToolbar.search.style=width:60px; +CRUDToolbar.search.hiddenProperty=searchButtonHidden +CRUDToolbar.search.title=Nuova ricerca +CRUDToolbar.search.accessKey=N +CRUDToolbar.search.buttonClass=btn-title btn-outline-primary +CRUDToolbar.search.iconClass=fa fa-2x fa-fw fa-search + +CRUDToolbar.startSearch.img=img/find24.gif +CRUDToolbar.startSearch.disabledImg=img/find24.gif +CRUDToolbar.startSearch.label=Cerca
  +CRUDToolbar.startSearch.href=javascript:submitForm('doCerca') +CRUDToolbar.startSearch.style=width:60px; +CRUDToolbar.startSearch.hiddenProperty=startSearchButtonHidden +CRUDToolbar.startSearch.title=Cerca +CRUDToolbar.startSearch.accessKey=C +CRUDToolbar.startSearch.buttonClass=btn-title btn-outline-primary +CRUDToolbar.startSearch.iconClass=fa fa-2x fa-fw fa-search \ No newline at end of file diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.properties b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.properties index 8e8eb71dc1..796ae466ff 100644 --- a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.properties +++ b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bp/ConsDocammAnagFitBP.properties @@ -14,12 +14,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # +CRUDToolbar.startSearch.img=img/find24.gif +CRUDToolbar.startSearch.disabledImg=img/find24.gif +CRUDToolbar.startSearch.label=Ricerca +CRUDToolbar.startSearch.href=javascript:submitForm('doCerca') +CRUDToolbar.startSearch.style=width:60px; +CRUDToolbar.startSearch.enabledProperty=ricercaButtonEnabled +CRUDToolbar.startSearch.accessKey=R +CRUDToolbar.startSearch.title=Ricerca +CRUDToolbar.startSearch.buttonClass=btn-title btn-outline-primary +CRUDToolbar.startSearch.iconClass=fa fa-2x fa-fw fa-search -buttons.ricerca.img=img/find24.gif -buttons.ricerca.disabledImg=img/find24.gif -buttons.ricerca.label=Ricerca -buttons.ricerca.href=javascript:submitForm('doCerca') -buttons.ricerca.style=width:60px; -buttons.ricerca.enabledProperty=ricercaButtonEnabled -buttons.ricerca.title=Ricerca -buttons.ricerca.accessKey=R diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bulk/VDocAmmAnagManrevBulkInfo.xml b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bulk/VDocAmmAnagManrevBulkInfo.xml index 867ad209ac..2b07c22d8c 100644 --- a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bulk/VDocAmmAnagManrevBulkInfo.xml +++ b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/consultazioni/bulk/VDocAmmAnagManrevBulkInfo.xml @@ -252,7 +252,8 @@ - + + - - + + diff --git a/sigla-web/src/main/webapp/docamm00/estrazione_docamm.jsp b/sigla-web/src/main/webapp/docamm00/estrazione_docamm.jsp index 7c019a1c04..0fc76195b0 100644 --- a/sigla-web/src/main/webapp/docamm00/estrazione_docamm.jsp +++ b/sigla-web/src/main/webapp/docamm00/estrazione_docamm.jsp @@ -16,22 +16,15 @@ Estrazione documenti amministrativi - -<% +<% BulkBP bp = (BulkBP)BusinessProcess.getBusinessProcess(request); bp.openFormWindow(pageContext); %> - - - - - - -
<% bp.getController().writeFormLabel(out,"findAnagrafico"); %> - <% bp.getController().writeFormInput(out,"cd_anagrafico"); %> - <% bp.getController().writeFormInput(out,"ragione_sociale"); %> - <% bp.getController().writeFormInput(out,"findAnagrafico"); %> -
+

+ + <% bp.getController().writeFormField(out,"findAnagrafico"); %> +
+
<% bp.closeFormWindow(pageContext); %> diff --git a/sigla-web/src/main/webapp/docamm00/lista_documenti_amministrativi.jsp b/sigla-web/src/main/webapp/docamm00/lista_documenti_amministrativi.jsp index cba8fefc3f..d85b5a5f51 100644 --- a/sigla-web/src/main/webapp/docamm00/lista_documenti_amministrativi.jsp +++ b/sigla-web/src/main/webapp/docamm00/lista_documenti_amministrativi.jsp @@ -1,126 +1,127 @@ -<%@ page pageEncoding="UTF-8" - import="it.cnr.jada.util.jsp.*, - it.cnr.jada.action.*, - java.util.*, - it.cnr.jada.util.action.*, - it.cnr.contab.docamm00.tabrif.bulk.*, - it.cnr.contab.docamm00.docs.bulk.*, - it.cnr.contab.docamm00.bp.*" -%> - - - -<% JSPUtils.printBaseUrl(pageContext); %> - - -Ricerca di un documento amministrativo - - - -<% ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)BusinessProcess.getBusinessProcess(request); - Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); - it.cnr.contab.anagraf00.core.bulk.TerzoBulk soggetto = filtro.getSoggetto(); - bp.openFormWindow(pageContext); %> - -
- - - - - -
- <% bp.getController().writeFormLabel(out,"group");%> - - <% bp.getController().writeFormInput(out,null,"group",false,null,"onChange=\"submitForm('doOnGroupChange')\"");%> -
-
-
- - - - - - - - - - - <% bp.getController().writeFormField(out,"codice_fiscale");%> - <% bp.getController().writeFormField(out, "partita_iva");%> - - <% if (soggetto != null && soggetto.getAnagrafico() != null) { %> - - <% if (soggetto.getAnagrafico().isStrutturaCNR()) { %> - - <% } else { %> - - <% } %> - - - - - - - <% } else { %> - - - - - <% } %> - - - - - - - - -
- <% bp.getController().writeFormLabel(out,"cd_soggetto");%> - - <% bp.getController().writeFormInput(out,"cd_soggetto");%> - <% bp.getController().writeFormInput(out,"soggetto");%> -
- <% bp.getController().writeFormLabel(out,"cd_precedente");%> - - <% bp.getController().writeFormInput(out, "cd_precedente");%> -
- Nome - - <%bp.getController().writeFormLabel(out,"ragione_sociale");%> - - <%bp.getController().writeFormInput(out,"ragione_sociale");%> -
- <% bp.getController().writeFormLabel(out,"denominazione_sede");%> - - <% bp.getController().writeFormInput(out,"denominazione_sede");%> -
- <% bp.getController().writeFormLabel(out,"ragione_sociale");%> - - <% bp.getController().writeFormInput(out,"ragione_sociale");%> -
- <% bp.getController().writeFormLabel(out,"cognome");%> - - <% bp.getController().writeFormInput(out,"cognome");%> -
- <% bp.getController().writeFormLabel(out,"nome");%> - - <% bp.getController().writeFormInput(out,"nome");%> -
-
-
-
- - - - - -
- <% bp.getController().writeFormLabel(out,"optionRadioGroup");%> - - <% bp.getController().writeFormInput(out,null,"optionRadioGroup",false,null,"onClick=\"submitForm('doOnOptionChange')\"");%> -
-
- - <% bp.closeFormWindow(pageContext); %> +<%@ page pageEncoding="UTF-8" + import="it.cnr.jada.util.jsp.*, + it.cnr.jada.action.*, + java.util.*, + it.cnr.jada.util.action.*, + it.cnr.contab.docamm00.tabrif.bulk.*, + it.cnr.contab.docamm00.docs.bulk.*, + it.cnr.contab.docamm00.bp.*" +%> + + + +<% JSPUtils.printBaseUrl(pageContext); %> + + +Ricerca di un documento amministrativo + + + +<% ListaDocumentiAmministrativiBP bp = (ListaDocumentiAmministrativiBP)BusinessProcess.getBusinessProcess(request); + Filtro_ricerca_doc_ammVBulk filtro = (Filtro_ricerca_doc_ammVBulk)bp.getModel(); + it.cnr.contab.anagraf00.core.bulk.TerzoBulk soggetto = filtro.getSoggetto(); + bp.openFormWindow(pageContext); %> + +
+ + + + + +
+
+ <% bp.getController().writeFormLabel(out,"group");%> +
+
+ <% bp.getController().writeFormInput(out,null,"group",false,null,"onChange=\"submitForm('doOnGroupChange')\"");%> +
+
+
+ + + + + + + + + + + <% bp.getController().writeFormField(out,"codice_fiscale");%> + <% bp.getController().writeFormField(out, "partita_iva");%> + + <% if (soggetto != null && soggetto.getAnagrafico() != null) { %> + + <% if (soggetto.getAnagrafico().isStrutturaCNR()) { %> + + <% } else { %> + + <% } %> + + + + + + + <% } else { %> + + + + + <% } %> + + + + + + + + +
+ <% bp.getController().writeFormLabel(out,"cd_soggetto");%> + + <% bp.getController().writeFormInput(out,"cd_soggetto");%> + <% bp.getController().writeFormInput(out,"soggetto");%> +
+ <% bp.getController().writeFormLabel(out,"cd_precedente");%> + + <% bp.getController().writeFormInput(out, "cd_precedente");%> +
+ Nome + + <%bp.getController().writeFormLabel(out,"ragione_sociale");%> + + <%bp.getController().writeFormInput(out,"ragione_sociale");%> +
+ <% bp.getController().writeFormLabel(out,"denominazione_sede");%> + + <% bp.getController().writeFormInput(out,"denominazione_sede");%> +
+ <% bp.getController().writeFormLabel(out,"ragione_sociale");%> + + <% bp.getController().writeFormInput(out,"ragione_sociale");%> +
+ <% bp.getController().writeFormLabel(out,"cognome");%> + + <% bp.getController().writeFormInput(out,"cognome");%> +
+ <% bp.getController().writeFormLabel(out,"nome");%> + + <% bp.getController().writeFormInput(out,"nome");%> +
+
+
+ + + + + +
+ <% bp.getController().writeFormLabel(out,"optionRadioGroup");%> + + <% bp.getController().writeFormInput(out,null,"optionRadioGroup",false,null,"onClick=\"submitForm('doOnOptionChange')\"");%> +
+
+ + <% bp.closeFormWindow(pageContext); %> \ No newline at end of file