From 2cddd4b884ea63aab32b920d62c0cbe54950fcb8 Mon Sep 17 00:00:00 2001 From: mspasiano Date: Wed, 14 Oct 2015 13:09:15 +0000 Subject: [PATCH] =?UTF-8?q?Modifiche=20fatturazione=20elettronica:=201.=20?= =?UTF-8?q?=20=20=20=20=20=20anomalia=20casuale=20ELE=5FTESTATA=E2=80=A6..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit capita quando ti posizioni sulla tab ‘riferimento acquisto’ prima di salvare una modifica. Prova SDI: 5509838. Vai sulla Tab riferimento acquisto, posizionati sulla prima riga di dettaglio, poi vai sulla tab ‘Dati generali del documento’ e metti l’importo che ora è modificabile. Se salvi ti esce l’errore da eliminare ; 2. Per la notifica della mail inviata quando arriva una fattura passiva o quando viene accettata/rifiutata una fattura attiva bisogna modificare l’oggetto della mail aggiungendo anche la UO (Il messaggio va bene com’è solo nell’oggetto oltre all’identificativo SDI si aggiunge UO: Codice della UO di destinazione o di emissione). 3. Prevedere nuova tipologia allegato per gli ‘Allegati aggiunti’ del documento elettronico: ‘Comunicazione di non registrabilità’ usabile solo nel caso di decorrenza termini (FL_decorrenza_termini=’S’). Questa tipologia deve prevedere: aggiornamento ad ‘S’ del campo FL_IRREGESTRABILE. Rendere non più modificabile il documento elettronico dopo l’aggiornamento di questo flag. BUG sui contratti definitivi sul documentale --- .../contab/cmis/service/SiglaCMISService.java | 12 +++++- .../config00/service/ContrattoService.java | 2 + .../bp/CRUDFatturaPassivaElettronicaBP.java | 41 +++++++++++++++++-- .../comp/FatturaAttivaSingolaComponent.java | 2 + .../FatturaElettronicaPassivaComponent.java | 2 + .../fatturapa/bulk/AllegatoFatturaBulk.java | 17 ++++++-- .../bulk/DocumentoEleTestataBulk.java | 5 ++- .../cnr/contab/util00/bp/AllegatiCRUDBP.java | 25 +++++++---- .../fatture/sigla-fatture-attachmentModel.xml | 3 ++ .../bulk/AllegatoFatturaBulkInfo.xml | 22 +++++++++- .../bulk/DocumentoEleTestataBulkInfo.xml | 2 +- .../docamm00/fattura_passiva_elettronica.jsp | 2 +- .../src/main/webapp/util00/tab_allegati.jsp | 2 +- 13 files changed, 112 insertions(+), 25 deletions(-) diff --git a/sigla-ejb/src/main/java/it/cnr/contab/cmis/service/SiglaCMISService.java b/sigla-ejb/src/main/java/it/cnr/contab/cmis/service/SiglaCMISService.java index 04c4b7bfe9..a22d873dc6 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/cmis/service/SiglaCMISService.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/cmis/service/SiglaCMISService.java @@ -396,6 +396,16 @@ public void updateProperties(Map metadataProperties, CmisObject node = ((Document)node).getObjectOfLatestVersion(false); node = getSiglaSession().getObject(node); node.refresh(); + } else { + /** + * @marco.spasiano + * @date 07/10/2015 + * workaround non riesco a capire perchè non aggiorna il cmis:name + * insieme alle altre property solo per le folder. + */ + if (metadataProperties.containsKey(PropertyIds.NAME)) { + node.updateProperties(Collections.singletonMap(PropertyIds.NAME, metadataProperties.get("cmis:name")), true); + } } node.updateProperties(metadataProperties, true); } catch (Exception e) { @@ -412,7 +422,7 @@ public void updateProperties(OggettoBulk oggettoBulk, CmisObject node){ } for (Property property : cmisBulkInfo.getAspectProperty(getSiglaSession(), oggettoBulk)) { metadataProperties.put(property.getId(), property.getValue()); - } + } updateProperties(metadataProperties, node); } catch (Exception e) { throw new RuntimeException(e); diff --git a/sigla-ejb/src/main/java/it/cnr/contab/config00/service/ContrattoService.java b/sigla-ejb/src/main/java/it/cnr/contab/config00/service/ContrattoService.java index d9722c56df..a1ed1e665c 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/config00/service/ContrattoService.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/config00/service/ContrattoService.java @@ -1,7 +1,9 @@ package it.cnr.contab.config00.service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.chemistry.opencmis.client.api.CmisObject; import org.apache.chemistry.opencmis.client.api.Document; diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/CRUDFatturaPassivaElettronicaBP.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/CRUDFatturaPassivaElettronicaBP.java index 2d16a39d6d..de0070d8ff 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/CRUDFatturaPassivaElettronicaBP.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/bp/CRUDFatturaPassivaElettronicaBP.java @@ -196,7 +196,7 @@ protected void initialize(ActionContext actioncontext) throw handleException(e); } catch (EJBException e) { throw handleException(e); - } + } } private void setUoScrivania(Unita_organizzativaBulk uoScrivania) { @@ -366,10 +366,23 @@ protected void basicEdit(ActionContext actioncontext, OggettoBulk oggettobulk, b super.basicEdit(actioncontext, oggettobulk, flag); DocumentoEleTestataBulk documentoEleTestata = (DocumentoEleTestataBulk) oggettobulk; if (!documentoEleTestata.isEditabile()) - setStatus(VIEW); - + setStatus(VIEW); } + @Override + public void setTab(String tabName, String pageName) { + super.setTab(tabName, pageName); + DocumentoEleTestataBulk documentoEleTestata = (DocumentoEleTestataBulk) getModel(); + if (documentoEleTestata != null) { + if (pageName.equalsIgnoreCase("tabAllegati") && !documentoEleTestata.isIrregistrabile()){ + setStatus(EDIT); + } else { + if (getStatus() == EDIT && !documentoEleTestata.isEditabile()) + setStatus(VIEW); + } + } + } + public OggettoBulk completaFatturaPassiva(ActionContext context, Fattura_passivaBulk fatturaPassivaBulk, CRUDFatturaPassivaBP nbp, Fattura_passivaBulk fatturaPassivaDiRiferimento) throws BusinessProcessException { try { CRUDFatturaPassivaAction action = new CRUDFatturaPassivaAction(); @@ -546,11 +559,31 @@ protected boolean excludeChild(CmisObject cmisObject) { @Override protected void completeAllegato(AllegatoFatturaBulk allegato) { for (SecondaryType secondaryType : allegato.getDocument().getSecondaryTypes()) { - if (AllegatoFatturaBulk.aspectNamesKeys.get(secondaryType.getId()) != null){ + if (AllegatoFatturaBulk.aspectNamesDecorrenzaTerminiKeys.get(secondaryType.getId()) != null){ allegato.setAspectName(secondaryType.getId()); break; } } super.completeAllegato(allegato); } + + @Override + public String getAllegatiFormName() { + DocumentoEleTestataBulk documentoEleTestata = (DocumentoEleTestataBulk) getModel(); + if (documentoEleTestata.isRicevutaDecorrenzaTermini()) + return "decorrenzaTermini"; + return super.getAllegatiFormName(); + } + + @Override + public void save(ActionContext actioncontext) throws ValidationException, + BusinessProcessException { + for (Object obj : getCrudArchivioAllegati().getDetails()) { + AllegatoFatturaBulk allegatoFatturaBulk = (AllegatoFatturaBulk)obj; + if (allegatoFatturaBulk.getAspectName().equalsIgnoreCase("P:sigla_fatture_attachment:comunicazione_non_registrabilita")) { + ((DocumentoEleTestataBulk) getModel()).setFlIrregistrabile("S"); + } + } + super.save(actioncontext); + } } \ No newline at end of file diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaAttivaSingolaComponent.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaAttivaSingolaComponent.java index 156a140e59..4f17020d6d 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaAttivaSingolaComponent.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaAttivaSingolaComponent.java @@ -7417,6 +7417,7 @@ private void sendMailForNotificationOk(UserContext userContext, Fattura_attivaBu String text = ""; String estremoFattura = fattura.getEsercizio()+"-"+fattura.getPg_fattura_attiva(); subject= "[SIGLA] Notifica esito positivo invio fattura attiva " + estremoFattura; + subject += " UO: " + fattura.getCd_unita_organizzativa(); text = "La fattura attiva elettronica: " +estremoFattura + ""+ " è stata accettata dal cliente."; Utente_indirizzi_mailHome utente_indirizzi_mailHome = (Utente_indirizzi_mailHome)getHome(userContext,Utente_indirizzi_mailBulk.class); @@ -7433,6 +7434,7 @@ private void sendMailForNotificationKo(UserContext userContext, Fattura_attivaBu String text = ""; String estremoFattura = fattura.getEsercizio()+"-"+fattura.getPg_fattura_attiva(); subject= "[SIGLA] Notifica errore invio fattura attiva " + estremoFattura; + subject += " UO: " + fattura.getCd_unita_organizzativa(); text = "Errore durante l'invio della fattura attiva elettronica: " +estremoFattura + ""+ ". Motivo: "+ fattura.getNoteInvioSdi(); Utente_indirizzi_mailHome utente_indirizzi_mailHome = (Utente_indirizzi_mailHome)getHome(userContext,Utente_indirizzi_mailBulk.class); diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java index 14e4985751..3fd161e072 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java @@ -150,6 +150,7 @@ public void completaDocumento(UserContext usercontext, DocumentoEleTrasmissioneB */ try { String subject= "[SIGLA] Notifica ricezione fattura passiva con Identificativo SdI:" + documentoEleTrasmissioneBulk.getIdentificativoSdi(); + subject += " UO: " + documentoEleTrasmissioneBulk.getUnitaOrganizzativa().getCd_unita_organizzativa(); String text = "E' pervenuta la fattura dal trasmittente: " +documentoEleTrasmissioneBulk.getIdCodice() + "
"+ "Prestatore: " + documentoEleTrasmissioneBulk.getDenominzionePrestatore() +"
" + "Il documento è presente nell'area temporanea di SIGLA."; @@ -324,6 +325,7 @@ private void notificaUOCompetenza(UserContext usercontext, DocumentoEleTrasmissi trasmissione.getUnitaCompetenza().getCd_unita_organizzativa() != null) { try { String subject= "[SIGLA] Notifica assegnazione fattura passiva con Identificativo SdI:" + trasmissione.getIdentificativoSdi(); + subject += " UO: " + testataDB.getUnitaCompetenza().getCd_unita_organizzativa(); String text = "E' pervenuta la fattura dal trasmittente: " +trasmissione.getIdCodice() + "
"+ "Prestatore: " + trasmissione.getDenominzionePrestatore() +"
" + "Il documento è presente nell'area temporanea di SIGLA."; diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulk.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulk.java index 7da68896bd..8aa830aa1a 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulk.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulk.java @@ -13,13 +13,18 @@ public class AllegatoFatturaBulk extends AllegatoGenericoBulk { private static final long serialVersionUID = 1L; - @SuppressWarnings("unchecked") - public static final java.util.Dictionary aspectNamesKeys = new OrderedHashtable(); + + public static OrderedHashtable aspectNamesKeys = new OrderedHashtable(), + aspectNamesDecorrenzaTerminiKeys; + static { aspectNamesKeys.put("P:sigla_fatture_attachment:durc","DURC"); aspectNamesKeys.put("P:sigla_fatture_attachment:tacciabilita","Tracciabilità"); aspectNamesKeys.put("P:sigla_fatture_attachment:prestazione_resa","Prestazione Resa"); - aspectNamesKeys.put("P:sigla_fatture_attachment:altro","Altro"); + aspectNamesKeys.put("P:sigla_fatture_attachment:altro","Altro"); + + aspectNamesDecorrenzaTerminiKeys = (OrderedHashtable) aspectNamesKeys.clone(); + aspectNamesDecorrenzaTerminiKeys.put("P:sigla_fatture_attachment:comunicazione_non_registrabilita","Comunicazione di non registrabilità"); } private String aspectName; @@ -44,8 +49,12 @@ public List getAspect() { results.add(getAspectName()); return results; } - public static java.util.Dictionary getAspectnameskeys() { + public static OrderedHashtable getAspectnameskeys() { return aspectNamesKeys; + } + + public static OrderedHashtable getAspectnamesDecorrenzaTerminikeys() { + return aspectNamesDecorrenzaTerminiKeys; } @Override public void validate() throws ValidationException { diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataBulk.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataBulk.java index fde737f4bd..e58353727b 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataBulk.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataBulk.java @@ -377,8 +377,9 @@ public boolean isRifiutabile() { getStatoDocumentoEle().equals(StatoDocumentoEleEnum.COMPLETO); } public boolean isEditabile() { - return getStatoDocumentoEle().equals(StatoDocumentoEleEnum.AGGIORNATO) || - getStatoDocumentoEle().equals(StatoDocumentoEleEnum.COMPLETO); + return (getStatoDocumentoEle().equals(StatoDocumentoEleEnum.AGGIORNATO) || + getStatoDocumentoEle().equals(StatoDocumentoEleEnum.COMPLETO)) && + !isIrregistrabile(); } public Fattura_passiva_rigaBulk getInstanceRiga() { diff --git a/sigla-ejb/src/main/java/it/cnr/contab/util00/bp/AllegatiCRUDBP.java b/sigla-ejb/src/main/java/it/cnr/contab/util00/bp/AllegatiCRUDBP.java index bdf0e1465a..3beb6cda35 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/util00/bp/AllegatiCRUDBP.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/util00/bp/AllegatiCRUDBP.java @@ -28,6 +28,7 @@ import org.apache.chemistry.opencmis.client.api.CmisObject; import org.apache.chemistry.opencmis.client.api.Document; import org.apache.chemistry.opencmis.client.api.Folder; +import org.apache.chemistry.opencmis.commons.enums.BaseTypeId; import org.apache.chemistry.opencmis.commons.exceptions.CmisContentAlreadyExistsException; public abstract class AllegatiCRUDBP extends SimpleCRUDBP { @@ -101,15 +102,17 @@ public OggettoBulk initializeModelForEditAllegati(ActionContext actioncontext, O continue; if (excludeChild(cmisObject)) continue; - Document document = (Document) cmisObject; - T allegato = (T) Introspector.newInstance(getAllegatoClass(), document); - allegato.setContentType(document.getContentStreamMimeType()); - allegato.setNome(cmisObject.getName()); - allegato.setDescrizione((String)document.getPropertyValue(SiglaCMISService.PROPERTY_DESCRIPTION)); - allegato.setTitolo((String)document.getPropertyValue(SiglaCMISService.PROPERTY_TITLE)); - completeAllegato(allegato); - allegato.setCrudStatus(OggettoBulk.NORMAL); - allegatoParentBulk.addToArchivioAllegati(allegato); + if (cmisObject.getBaseTypeId().equals(BaseTypeId.CMIS_DOCUMENT)) { + Document document = (Document) cmisObject; + T allegato = (T) Introspector.newInstance(getAllegatoClass(), document); + allegato.setContentType(document.getContentStreamMimeType()); + allegato.setNome(cmisObject.getName()); + allegato.setDescrizione((String)document.getPropertyValue(SiglaCMISService.PROPERTY_DESCRIPTION)); + allegato.setTitolo((String)document.getPropertyValue(SiglaCMISService.PROPERTY_TITLE)); + completeAllegato(allegato); + allegato.setCrudStatus(OggettoBulk.NORMAL); + allegatoParentBulk.addToArchivioAllegati(allegato); + } } } catch (ApplicationException e) { throw handleException(e); @@ -173,6 +176,10 @@ public void delete(ActionContext actioncontext) super.delete(actioncontext); } + public String getAllegatiFormName() { + return "default"; + } + @SuppressWarnings("unchecked") private void archiviaAllegati(ActionContext actioncontext, Document document) throws BusinessProcessException, ApplicationException{ AllegatoParentBulk allegatoParentBulk = (AllegatoParentBulk)getModel(); diff --git a/sigla-ejb/src/main/resources/cmis/model/fatture/sigla-fatture-attachmentModel.xml b/sigla-ejb/src/main/resources/cmis/model/fatture/sigla-fatture-attachmentModel.xml index 341a95affc..a74b1f3e18 100644 --- a/sigla-ejb/src/main/resources/cmis/model/fatture/sigla-fatture-attachmentModel.xml +++ b/sigla-ejb/src/main/resources/cmis/model/fatture/sigla-fatture-attachmentModel.xml @@ -88,6 +88,9 @@ Allegato al documento elettronico e alla fattura generata da esso + + Allegato al documento elettronico e alla fattura generata da esso + Allegato al documento elettronico e alla fattura generata da esso diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulkInfo.xml b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulkInfo.xml index 13a0e719a6..498c6634c4 100644 --- a/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulkInfo.xml +++ b/sigla-ejb/src/main/resources/it/cnr/contab/docamm00/fatturapa/bulk/AllegatoFatturaBulkInfo.xml @@ -25,10 +25,28 @@ name="file" /> - + + +
+ + + + + + + + + name="aspectName" + keysProperty="aspectNamesDecorrenzaTerminiKeys" /> <% } %> - <% if (!bp.isSearching() && model != null && + <% if (!bp.isSearching() && model != null && model.getStatoDocumento() != null && model.getStatoDocumento().equals(StatoDocumentoEleEnum.RIFIUTATO.name())) {%> <% bp.getController().writeFormField(out,"motivoRifiuto");%> diff --git a/sigla-web/src/main/webapp/util00/tab_allegati.jsp b/sigla-web/src/main/webapp/util00/tab_allegati.jsp index 9b7ed4628e..86a0e618cd 100644 --- a/sigla-web/src/main/webapp/util00/tab_allegati.jsp +++ b/sigla-web/src/main/webapp/util00/tab_allegati.jsp @@ -15,6 +15,6 @@ function doScaricaFile() { <% bp.getCrudArchivioAllegati().writeHTMLTable(pageContext,"default",true,false,true,"100%","150px"); %>
- <% bp.getCrudArchivioAllegati().writeForm(out, "default"); %> + <% bp.getCrudArchivioAllegati().writeForm(out, bp.getAllegatiFormName()); %>
\ No newline at end of file