Skip to content

Commit

Permalink
Riepilogo l’esigenza espressa da Daniela e Mimma ieri, per la quale a…
Browse files Browse the repository at this point in the history
…bbiamo immaginato il processo indicato di seguito.

 

La cosa riguarda solo i mandati (non le reversali e i 1210);

L’esigenza è quella di inviare in Banca, insieme al mandato firmato, anche alcuni allegati obbligatori e indispensabili per l’esecuzione del pagamento stesso.

Per poter obbligare gli Istituti ad allegarci quanto necessario dobbiamo:

 

1.       Etichettare le modalità di pagamento per le quali si deve obbligare l’inserimento dell’allegato;

Aggiungere un campo sulla tabella RIF_MODALITA_PAGAMENTO:  Allegato obbligatorio mandato (S/N)

2.       Per ogni modalità di pagamento ‘etichettata’ corrisponderà una tipologia di file documentale;

Le tipologie saranno tutte quelle relative alle modalità di pagamento di cui al punto precedente

3.       Dopo la predisposizione del mandato alla firma, l’istituto deve allegare al mandato quanto richiesto altrimenti il segretario amministrativo non riuscirà ad apporre la firma;

Se si seleziona il mandato per l’apposizione della Prima Firma deve essere effettuato il controllo relativo alla modalità di pagamento indicata sulle righe del mandato. Più righe di mandato potrebbero richiedere più tipologie di allegati obbligatorie;

4.       Dopo aver aggiunto l’allegato (o gli allegati perché il mandato potrebbe avere specificato sulle righe modalità di pagamento diverse che richiedono allegato), il mandato viene firmato e reso disponibile alla sede centrale. Durante la firma viene prodotto per ogni mandato un unico file che contiene il mandato stesso e i suoi allegati obbligatori. Alla fine si ha un unico file firmato dall’istituto;

Prima di apporre la firma viene rigenerato il file dei mandati che richiedono allegati obbligatori producendo un solo file per ogni mandato comprensivo di allegati obbligatori (gli altri eventuali allegati non devono essere inseriti nel file)

5.       Questi allegati obbligatori non saranno modificabili dopo la prima firma;

Non deve essere consentito l’annullamento degli allegati obbligatori, ma è possibile aggiungere o togliere altri allegati;

6.       Se si annulla la prima firma, come per gli altri allegati, anche questi verranno eliminati;
  • Loading branch information
mspasiano committed Jan 26, 2016
1 parent 54270ed commit 1d18020
Show file tree
Hide file tree
Showing 16 changed files with 1,533 additions and 1,164 deletions.
Expand Up @@ -17,86 +17,95 @@ public class Rif_modalita_pagamentoBase extends Rif_modalita_pagamentoKey implem

// TI_PAGAMENTO CHAR(1) NOT NULL
private java.lang.String ti_pagamento;

// TIPO_PAGAMENTO_SDI VARCHAR(5) NOT NULL
private java.lang.String tipoPagamentoSdi;

// fl_utilizzabile_art35 CHAR(1) NOT NULL
private java.lang.Boolean fl_utilizzabile_art35;

// fl_utilizzabile_art35 CHAR(1) NOT NULL
private java.lang.Boolean fl_cancellato;

public java.lang.Boolean getFl_utilizzabile_art35() {

// fl_all_obbl_mandato CHAR(1) NOT NULL
private java.lang.Boolean fl_all_obbl_mandato;

public java.lang.Boolean getFl_utilizzabile_art35() {
return fl_utilizzabile_art35;
}
public void setFl_utilizzabile_art35(java.lang.Boolean fl_utilizzabile_art35) {
this.fl_utilizzabile_art35 = fl_utilizzabile_art35;
}
public Rif_modalita_pagamentoBase() {
super();
}
public Rif_modalita_pagamentoBase(java.lang.String cd_modalita_pag) {
super(cd_modalita_pag);
}
/*
* Getter dell'attributo codice_cassiere
*/
public java.lang.String getCodice_cassiere() {
return codice_cassiere;
}
/*
* Getter dell'attributo ds_modalita_pag
*/
public java.lang.String getDs_modalita_pag() {
return ds_modalita_pag;
}
/*
* Getter dell'attributo fl_per_cessione
*/
public java.lang.Boolean getFl_per_cessione() {
return fl_per_cessione;
}
/*
* Getter dell'attributo ti_pagamento
*/
public java.lang.String getTi_pagamento() {
return ti_pagamento;
}
/*
* Setter dell'attributo codice_cassiere
*/
public void setCodice_cassiere(java.lang.String codice_cassiere) {
this.codice_cassiere = codice_cassiere;
}
/*
* Setter dell'attributo ds_modalita_pag
*/
public void setDs_modalita_pag(java.lang.String ds_modalita_pag) {
this.ds_modalita_pag = ds_modalita_pag;
}
/*
* Setter dell'attributo fl_per_cessione
*/
public void setFl_per_cessione(java.lang.Boolean fl_per_cessione) {
this.fl_per_cessione = fl_per_cessione;
}
/*
* Setter dell'attributo ti_pagamento
*/
public void setTi_pagamento(java.lang.String ti_pagamento) {
this.ti_pagamento = ti_pagamento;
}
public java.lang.Boolean getFl_cancellato() {
return fl_cancellato;
}
public void setFl_cancellato(java.lang.Boolean fl_cancellato) {
this.fl_cancellato = fl_cancellato;
}
public java.lang.String getTipoPagamentoSdi() {
return tipoPagamentoSdi;
}
public void setTipoPagamentoSdi(java.lang.String tipoPagamentoSdi) {
this.tipoPagamentoSdi = tipoPagamentoSdi;
}
public Rif_modalita_pagamentoBase() {
super();
}
public Rif_modalita_pagamentoBase(java.lang.String cd_modalita_pag) {
super(cd_modalita_pag);
}
/*
* Getter dell'attributo codice_cassiere
*/
public java.lang.String getCodice_cassiere() {
return codice_cassiere;
}
/*
* Getter dell'attributo ds_modalita_pag
*/
public java.lang.String getDs_modalita_pag() {
return ds_modalita_pag;
}
/*
* Getter dell'attributo fl_per_cessione
*/
public java.lang.Boolean getFl_per_cessione() {
return fl_per_cessione;
}
/*
* Getter dell'attributo ti_pagamento
*/
public java.lang.String getTi_pagamento() {
return ti_pagamento;
}
/*
* Setter dell'attributo codice_cassiere
*/
public void setCodice_cassiere(java.lang.String codice_cassiere) {
this.codice_cassiere = codice_cassiere;
}
/*
* Setter dell'attributo ds_modalita_pag
*/
public void setDs_modalita_pag(java.lang.String ds_modalita_pag) {
this.ds_modalita_pag = ds_modalita_pag;
}
/*
* Setter dell'attributo fl_per_cessione
*/
public void setFl_per_cessione(java.lang.Boolean fl_per_cessione) {
this.fl_per_cessione = fl_per_cessione;
}
/*
* Setter dell'attributo ti_pagamento
*/
public void setTi_pagamento(java.lang.String ti_pagamento) {
this.ti_pagamento = ti_pagamento;
}
public java.lang.Boolean getFl_cancellato() {
return fl_cancellato;
}
public void setFl_cancellato(java.lang.Boolean fl_cancellato) {
this.fl_cancellato = fl_cancellato;
}
public java.lang.String getTipoPagamentoSdi() {
return tipoPagamentoSdi;
}
public void setTipoPagamentoSdi(java.lang.String tipoPagamentoSdi) {
this.tipoPagamentoSdi = tipoPagamentoSdi;
}
public java.lang.Boolean getFl_all_obbl_mandato() {
return fl_all_obbl_mandato;
}
public void setFl_all_obbl_mandato(java.lang.Boolean fl_all_obbl_mandato) {
this.fl_all_obbl_mandato = fl_all_obbl_mandato;
}
}
@@ -1,9 +1,15 @@
package it.cnr.contab.doccont00.action;

import java.util.List;

import it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk;
import it.cnr.contab.doccont00.bp.AbstractFirmaDigitaleDocContBP;
import it.cnr.contab.doccont00.bp.AllegatiDocContBP;
import it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk;
import it.cnr.contab.doccont00.intcass.bulk.StatoTrasmissione;
import it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk;
import it.cnr.contab.firma.bulk.FirmaOTPBulk;
import it.cnr.contab.util.Utility;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.Forward;
import it.cnr.jada.action.HookForward;
Expand Down Expand Up @@ -116,7 +122,18 @@ public Forward doDetail(ActionContext context) {
statoTrasmissioneBulk.setStato_trasmissione(statoTrasmissione);
bp.setModel(context, bulk);
AllegatiDocContBP allegatiDocContBP = (AllegatiDocContBP) context.createBusinessProcess("AllegatiDocContBP", new Object[] {"M"});
allegatiDocContBP.setModel(context, allegatiDocContBP.initializeModelForEdit(context, (OggettoBulk) bp.getSelectedElements(context).get(0)));
StatoTrasmissione selectedStatoTrasmissione = (StatoTrasmissione) bp.getSelectedElements(context).get(0);
if (selectedStatoTrasmissione.getCd_tipo_documento_cont().equalsIgnoreCase(Numerazione_doc_contBulk.TIPO_MAN)){
allegatiDocContBP.setAllegatiFormName("mandato");
List<Rif_modalita_pagamentoBulk> result = Utility.createMandatoComponentSession().findModPagObbligatorieAssociateAlMandato(context.getUserContext(),
(V_mandato_reversaleBulk) selectedStatoTrasmissione);
for (Rif_modalita_pagamentoBulk rif_modalita_pagamentoBulk : result) {
allegatiDocContBP.addToRifModalitaPagamento(rif_modalita_pagamentoBulk.getCd_modalita_pag(), rif_modalita_pagamentoBulk.getDs_modalita_pag());
}
} else {
allegatiDocContBP.setAllegatiFormName("altro");
}
allegatiDocContBP.setModel(context, allegatiDocContBP.initializeModelForEdit(context, (OggettoBulk) selectedStatoTrasmissione));
allegatiDocContBP.setStatus(AllegatiDocContBP.EDIT);
context.addHookForward("close",this,"doRefresh");
return context.addBusinessProcess(allegatiDocContBP);
Expand Down
Expand Up @@ -201,7 +201,7 @@ public boolean isPredisponiButtonEnabled() {

public boolean isDetailButtonEnabled() {
StatoTrasmissione oggettobulk = (StatoTrasmissione) getModel();
return (!oggettobulk.getStato_trasmissione().equals(MandatoBulk.STATO_TRASMISSIONE_NON_INSERITO)) && getSelection().size() == 1;
return (!oggettobulk.getStato_trasmissione().equals(MandatoBulk.STATO_TRASMISSIONE_NON_INSERITO)) && (getSelection().size() == 1);
}

public boolean isSignButtonEnabled() {
Expand Down Expand Up @@ -364,6 +364,16 @@ public void scaricaDocumento(ActionContext actioncontext) throws Exception {

@SuppressWarnings("unchecked")
public void sign(ActionContext actioncontext, FirmaOTPBulk firmaOTPBulk) throws Exception {
List<StatoTrasmissione> selectelElements = getSelectedElements(actioncontext);
if (selectelElements == null || selectelElements.isEmpty()){
throw new ApplicationException("Selezionare almeno un documento contabile!");
}
addSomethingToSelectedElements(actioncontext, selectelElements);
executeSign(actioncontext, selectelElements, firmaOTPBulk);
}

protected void executeSign(ActionContext actioncontext, List<StatoTrasmissione> selectelElements, FirmaOTPBulk firmaOTPBulk) throws Exception{
EJBCommonServices.closeRemoteIterator(getIterator());
String webScriptURL = documentiContabiliService.getRepositoyURL().concat("service/sigla/firma/doccont");
Map<String, String> subjectDN = documentiContabiliService.getCertSubjectDN(firmaOTPBulk.getUserName(), firmaOTPBulk.getPassword());
if (subjectDN == null)
Expand All @@ -374,16 +384,10 @@ public void sign(ActionContext actioncontext, FirmaOTPBulk firmaOTPBulk) throws
throw new ApplicationException("Il codice fiscale \"" + codiceFiscale + "\" presente sul certicato di Firma, " +
"è diverso da quello dell'utente collegato \"" + utente.getCodiceFiscaleLDAP() +"\"!");
}
List<StatoTrasmissione> selectelElements = getSelectedElements(actioncontext);
if (selectelElements == null || selectelElements.isEmpty()){
throw new ApplicationException("Selezionare almeno un documento contabile!");
}
addSomethingToSelectedElements(actioncontext, selectelElements);
List<String> nodes = new ArrayList<String>();
for (StatoTrasmissione bulk : selectelElements) {
nodes.addAll(documentiContabiliService.getNodeRefDocumento(bulk, true));
}

}
PdfSignApparence pdfSignApparence = new PdfSignApparence();
pdfSignApparence.setNodes(nodes);
pdfSignApparence.setUsername(firmaOTPBulk.getUserName());
Expand Down Expand Up @@ -420,7 +424,7 @@ public void sign(ActionContext actioncontext, FirmaOTPBulk firmaOTPBulk) throws
throw new BusinessProcessException(e);
} catch (Exception e) {
throw new BusinessProcessException(e);
}
}
}

protected void addSomethingToSelectedElements(ActionContext actioncontext, List<StatoTrasmissione> selectelElements) throws BusinessProcessException{
Expand Down
@@ -1,18 +1,26 @@
package it.cnr.contab.doccont00.bp;

import java.util.HashMap;
import java.util.Map;

import it.cnr.contab.cmis.service.CMISPath;
import it.cnr.contab.doccont00.core.bulk.AllegatoDocContBulk;
import it.cnr.contab.doccont00.core.bulk.MandatoBulk;
import it.cnr.contab.doccont00.intcass.bulk.StatoTrasmissione;
import it.cnr.contab.util00.bp.AllegatiCRUDBP;
import it.cnr.contab.util00.bulk.cmis.AllegatoGenericoBulk;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.util.OrderedHashtable;

import org.apache.chemistry.opencmis.client.api.CmisObject;

public class AllegatiDocContBP extends AllegatiCRUDBP<AllegatoGenericoBulk, StatoTrasmissione> {
public class AllegatiDocContBP extends AllegatiCRUDBP<AllegatoDocContBulk, StatoTrasmissione> {
private static final long serialVersionUID = 1L;

private String allegatiFormName;
private Map<String, String> rifModalitaPagamento = new HashMap<String, String>();

public AllegatiDocContBP() {
super();
}
Expand Down Expand Up @@ -42,6 +50,54 @@ protected boolean excludeChild(CmisObject cmisObject) {
return super.excludeChild(cmisObject);
}

public void setAllegatiFormName(String allegatiFormName) {
this.allegatiFormName = allegatiFormName;
}

@Override
public String getAllegatiFormName() {
return allegatiFormName;
}
public void addToRifModalitaPagamento(String key, String value) {
rifModalitaPagamento.put(key, value);
}

@Override
protected boolean isChildGrowable(boolean isGrowable) {
return true;
}

@Override
protected void getChildDetail(OggettoBulk oggettobulk) {
AllegatoDocContBulk allegatoDocContBulk = (AllegatoDocContBulk)oggettobulk;
initializeRifModalitaPagamentoKeys(allegatoDocContBulk);
if (allegatoDocContBulk.getRifModalitaPagamento()!= null && !allegatoDocContBulk.getRifModalitaPagamento().equalsIgnoreCase("GEN") &&
(((StatoTrasmissione)getModel()).getStato_trasmissione().equalsIgnoreCase(MandatoBulk.STATO_TRASMISSIONE_INSERITO) ||
((StatoTrasmissione)getModel()).getStato_trasmissione().equalsIgnoreCase(MandatoBulk.STATO_TRASMISSIONE_TRASMESSO) ||
((StatoTrasmissione)getModel()).getStato_trasmissione().equalsIgnoreCase(MandatoBulk.STATO_TRASMISSIONE_PRIMA_FIRMA)))
setStatus(VIEW);
else
setStatus(EDIT);
super.getChildDetail(allegatoDocContBulk);
}
private void initializeRifModalitaPagamentoKeys(AllegatoDocContBulk allegatoDocContBulk) {
OrderedHashtable rifModalitaPagamentoKeys = allegatoDocContBulk.getRifModalitaPagamentoKeys();
rifModalitaPagamentoKeys.put("GEN", "Generico");
if (!allegatoDocContBulk.isToBeCreated() || !(((StatoTrasmissione)getModel()).getStato_trasmissione().equalsIgnoreCase(MandatoBulk.STATO_TRASMISSIONE_INSERITO) ||
((StatoTrasmissione)getModel()).getStato_trasmissione().equalsIgnoreCase(MandatoBulk.STATO_TRASMISSIONE_TRASMESSO) ||
((StatoTrasmissione)getModel()).getStato_trasmissione().equalsIgnoreCase(MandatoBulk.STATO_TRASMISSIONE_PRIMA_FIRMA))) {
for (String key : rifModalitaPagamento.keySet()) {
rifModalitaPagamentoKeys.put(key, rifModalitaPagamento.get(key));
}
}
}

@Override
protected void completeAllegato(AllegatoDocContBulk allegato) {
super.completeAllegato(allegato);
allegato.setRifModalitaPagamento(allegato.getDocument().getProperty("doccont:rif_modalita_pagamento").getValueAsString());
}

@Override
public boolean isInputReadonly() {
return super.isInputReadonly();
Expand Down Expand Up @@ -77,7 +133,7 @@ protected CMISPath getCMISPath(StatoTrasmissione allegatoParentBulk,
}

@Override
protected Class<AllegatoGenericoBulk> getAllegatoClass() {
return AllegatoGenericoBulk.class;
protected Class<AllegatoDocContBulk> getAllegatoClass() {
return AllegatoDocContBulk.class;
}
}

0 comments on commit 1d18020

Please sign in to comment.