Skip to content

Commit

Permalink
FIX firma 1210
Browse files Browse the repository at this point in the history
  • Loading branch information
mspasiano committed Feb 10, 2018
1 parent 5f9571c commit c7733c8
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 43 deletions.
2 changes: 1 addition & 1 deletion SIGLA/pom.xml
Expand Up @@ -113,7 +113,7 @@
<configuration>
<jbossHome>${project.build.directory}/wildfly-${wildfly.version}</jbossHome>
<server-args>
<server-arg>-Dspring.profiles.active=CMIS,liquibase</server-arg>
<server-arg>-Dspring.profiles.active=CMIS</server-arg>
</server-args>
<java-opts>
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005</java-opt>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -31,7 +31,7 @@
<slf4j.version>1.7.21</slf4j.version>
<maven.javadoc.skip>true</maven.javadoc.skip>
<liquibase.version>3.5.3</liquibase.version>
<pdfbox.version>2.0.8</pdfbox.version>
<pdfbox.version>2.0.0</pdfbox.version>
</properties>
<build>
<pluginManagement>
Expand Down
Expand Up @@ -25,15 +25,15 @@
import java.rmi.RemoteException;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.cos.COSString;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDCheckBox;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;
import org.apache.pdfbox.pdmodel.interactive.form.*;

/**
*
Expand Down Expand Up @@ -85,7 +85,7 @@ protected void aggiornaStato(ActionContext actioncontext, String stato, StatoTra
statoTrasmissione.getEsercizio(), statoTrasmissione.getPg_documento_cont());
lettera = (Lettera_pagam_esteroBulk) getComponentSession().findByPrimaryKey(actioncontext.getUserContext(), lettera);
if (!statoTrasmissione.getStato_trasmissione().equals(lettera.getStato_trasmissione()))
throw new ApplicationException("Risorsa non più valida, eseguire nuovamente la ricerca!");
throw new ApplicationException("Risorsa non pi� valida, eseguire nuovamente la ricerca!");
lettera.setStato_trasmissione(stato);
if (stato.equalsIgnoreCase(MandatoBulk.STATO_TRASMISSIONE_PRIMA_FIRMA))
lettera.setDt_firma(EJBCommonServices.getServerTimestamp());
Expand All @@ -101,21 +101,22 @@ public StatoTrasmissione getStatoTrasmissione(ActionContext actioncontext, Integ
return new Lettera_pagam_esteroBulk(cds,uo, esercizio,numero_documento);
}

private void valorizzaField(PDAcroForm pdAcroForm, String fieldName, String fieldValue, boolean autosize) throws IOException {
PDField field = pdAcroForm.getField(fieldName);
if (field != null && fieldValue != null) {
if (field instanceof PDCheckBox) {
if (Boolean.valueOf(fieldValue))
((PDCheckBox)field).check();
else
((PDCheckBox)field).unCheck();
} else {
field.getCOSObject().setItem( COSName.V, new COSString(fieldValue));
if (autosize) {
field.getCOSObject().setString(COSName.DA, "/F2 0 Tf 0 g");
}
}
}
private PDField valorizzaField(PDAcroForm pdAcroForm, String fieldName, String fieldValue, boolean autosize) throws IOException {
PDField field = pdAcroForm.getField(fieldName);
if (field != null) {
if (field instanceof PDCheckBox) {
if (Boolean.valueOf(fieldValue))
((PDCheckBox)field).check();
else
((PDCheckBox)field).unCheck();
} else {
field.setValue(
Optional.ofNullable(fieldValue)
.map(s -> s.replace("\r", "\n"))
.orElse(""));
}
}
return field;
}

@Override
Expand All @@ -130,30 +131,28 @@ public void predisponiPerLaFirma(ActionContext actioncontext) throws BusinessPro
PDDocument document = PDDocument.load(this.getClass().getResourceAsStream("1210.pdf"));
PDDocumentCatalog pdCatalog = document.getDocumentCatalog();
PDAcroForm pdAcroForm = pdCatalog.getAcroForm();
valorizzaField(pdAcroForm, "LUOGO", "ROMA", false);
valorizzaField(pdAcroForm, "DATA", new SimpleDateFormat("dd/MM/yyyy").format(lettera.getDt_registrazione()), false);
valorizzaField(pdAcroForm, "NUM_RIF", String.valueOf(lettera.getPg_lettera()) + " - " + lettera.getCd_unita_organizzativa(), false);
valorizzaField(pdAcroForm, "BONIFICO_MEZZO_"+lettera.getBonifico_mezzo(), "X", false);
valorizzaField(pdAcroForm, "DIVISA", lettera.getDivisa(), false);
valorizzaField(pdAcroForm, "IMPORTO", new java.text.DecimalFormat("#,##0.00").format(lettera.getIm_pagamento()), false);
valorizzaField(pdAcroForm, "IMPORTO_LETTERE", Utility.NumberToText(lettera.getIm_pagamento()), false);
valorizzaField(pdAcroForm, "BENEFICIARIO_1", lettera.getBeneficiario(), true);
valorizzaField(pdAcroForm, "NUM_CONTO", lettera.getNum_conto_ben(), true);
valorizzaField(pdAcroForm, "IBAN", lettera.getIban(), false);
valorizzaField(pdAcroForm, "PRESSO_TRAMITE", lettera.getIndirizzo(), true);
valorizzaField(pdAcroForm, "SWIFT_BIC_ADDRESS", lettera.getIndirizzo_swift(), false);
valorizzaField(pdAcroForm, "MOTIVO_PAGAMENTO", lettera.getMotivo_pag(), true);
valorizzaField(pdAcroForm, "AMMONTARE_DEBITO_"+lettera.getAmmontare_debito(), "X", false);
valorizzaField(pdAcroForm, "CONTO_PROVVISORIO_"+lettera.getAmmontare_debito(), lettera.getConto_debito(), false);
valorizzaField(pdAcroForm, "COMMISSIONI_SPESE_"+lettera.getCommissioni_spese(), "X", false);
valorizzaField(pdAcroForm, "COMMISSIONI_SPESE_ESTERE_"+lettera.getCommissioni_spese_estere(), "X", false);
List<PDField> fields = new ArrayList<PDField>();
fields.add(valorizzaField(pdAcroForm, "LUOGO", "ROMA", false));
fields.add(valorizzaField(pdAcroForm, "DATA", new SimpleDateFormat("dd/MM/yyyy").format(lettera.getDt_registrazione()), false));
fields.add(valorizzaField(pdAcroForm, "NUM_RIF", String.valueOf(lettera.getPg_lettera()) + " - " + lettera.getCd_unita_organizzativa(), false));
fields.add(valorizzaField(pdAcroForm, "BONIFICO_MEZZO_"+lettera.getBonifico_mezzo(), "X", false));
fields.add(valorizzaField(pdAcroForm, "DIVISA", lettera.getDivisa(), false));
fields.add(valorizzaField(pdAcroForm, "IMPORTO", new java.text.DecimalFormat("#,##0.00").format(lettera.getIm_pagamento()), false));
fields.add(valorizzaField(pdAcroForm, "IMPORTO_LETTERE", Utility.NumberToText(lettera.getIm_pagamento()), false));
fields.add(valorizzaField(pdAcroForm, "BENEFICIARIO_1", lettera.getBeneficiario(), true));
fields.add(valorizzaField(pdAcroForm, "NUM_CONTO", lettera.getNum_conto_ben(), true));
fields.add(valorizzaField(pdAcroForm, "IBAN", lettera.getIban(), false));
fields.add(valorizzaField(pdAcroForm, "PRESSO_TRAMITE", lettera.getIndirizzo(), true));
fields.add(valorizzaField(pdAcroForm, "SWIFT_BIC_ADDRESS", lettera.getIndirizzo_swift(), false));
fields.add(valorizzaField(pdAcroForm, "MOTIVO_PAGAMENTO", lettera.getMotivo_pag(), true));
fields.add(valorizzaField(pdAcroForm, "AMMONTARE_DEBITO_"+lettera.getAmmontare_debito(), "X", false));
fields.add(valorizzaField(pdAcroForm, "CONTO_PROVVISORIO_"+lettera.getAmmontare_debito(), lettera.getConto_debito(), false));
fields.add(valorizzaField(pdAcroForm, "COMMISSIONI_SPESE_"+lettera.getCommissioni_spese(), "X", false));
fields.add(valorizzaField(pdAcroForm, "COMMISSIONI_SPESE_ESTERE_"+lettera.getCommissioni_spese_estere(), "X", false));

pdAcroForm.flatten(fields, true);

for (Object obj : pdAcroForm.getFields()) {
PDField field = (PDField)obj;
field.setReadOnly(true);
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
document.save(output);
document.close();
SpringUtil.getBean("storeService", StoreService.class).restoreSimpleDocument(
Expand Down
Binary file not shown.

0 comments on commit c7733c8

Please sign in to comment.