Skip to content

Commit

Permalink
Corretta gestione del SimpleDateFormat per la formattazione della dat…
Browse files Browse the repository at this point in the history
…a scadenza da inserire negli avvisi di pagamento.
  • Loading branch information
pintorig committed Jan 26, 2022
1 parent 1a693f6 commit 3386b1a
Show file tree
Hide file tree
Showing 9 changed files with 78 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,15 @@ private byte[] getBytesAvvisoVersamento(PrintAvvisoVersamentoDTO printAvviso, bo
byte[] pdfBytes = null;
if(linguaSelezionata != null) {
log.debug(logPrefix + " PDF Avviso Pagamento Multilingua [Dominio: " + printAvviso.getCodDominio() +" | IUV: " + printAvviso.getIuv() + "] Creazione input...");
it.govpay.stampe.model.v2.AvvisoPagamentoInput input = AvvisoPagamentoV2Utils.fromVersamento(printAvviso.getVersamento(), linguaSelezionata);
it.govpay.stampe.model.v2.AvvisoPagamentoInput input = AvvisoPagamentoV2Utils.fromVersamento(printAvviso, linguaSelezionata);
log.debug(logPrefix + " PDF Avviso Pagamento Multilingua [Dominio: " + printAvviso.getCodDominio() +" | IUV: " + printAvviso.getIuv() + "] Creazione input completata.");

log.debug(logPrefix + " PDF Avviso Pagamento Multilingua [Dominio: " + printAvviso.getCodDominio() +" | IUV: " + printAvviso.getIuv() + "] Generazione pdf...");
pdfBytes = AvvisoPagamentoPdf.getInstance().creaAvvisoV2(log, input, printAvviso.getCodDominio(), avProperties);
log.debug(logPrefix + " PDF Avviso Pagamento Multilingua [Dominio: " + printAvviso.getCodDominio() +" | IUV: " + printAvviso.getIuv() + "] Generazione pdf completata.");
} else {
log.debug(logPrefix + " PDF Avviso Pagamento [Dominio: " + printAvviso.getCodDominio() +" | IUV: " + printAvviso.getIuv() + "] Creazione input...");
AvvisoPagamentoInput input = AvvisoPagamentoUtils.fromVersamento(printAvviso.getVersamento());
AvvisoPagamentoInput input = AvvisoPagamentoUtils.fromVersamento(printAvviso);
log.debug(logPrefix + " PDF Avviso Pagamento [Dominio: " + printAvviso.getCodDominio() +" | IUV: " + printAvviso.getIuv() + "] Creazione input completata.");

log.debug(logPrefix + " PDF Avviso Pagamento [Dominio: " + printAvviso.getCodDominio() +" | IUV: " + printAvviso.getIuv() + "] Generazione pdf...");
Expand Down Expand Up @@ -361,15 +361,15 @@ public int compare(Versamento v1, Versamento v2) {
byte[] pdfBytes = null;
if(linguaSelezionata != null) {
log.debug(logPrefix + " PDF Avviso Documento Multilingua [IDA2A: " + applicazione.getCodApplicazione() + " | CodDocumento: " + printAvviso.getDocumento().getCodDocumento() + "] Creazione input...");
it.govpay.stampe.model.v2.AvvisoPagamentoInput input = AvvisoPagamentoV2Utils.fromDocumento(printAvviso.getDocumento(), versamenti, linguaSelezionata, log);
it.govpay.stampe.model.v2.AvvisoPagamentoInput input = AvvisoPagamentoV2Utils.fromDocumento(printAvviso, versamenti, linguaSelezionata, log);
log.debug(logPrefix + " PDF Avviso Documento Multilingua [IDA2A: " + applicazione.getCodApplicazione() + " | CodDocumento: " + printAvviso.getDocumento().getCodDocumento() + "] Creazione input completata.");

log.debug(logPrefix + " PDF Avviso Documento Multilingua [IDA2A: " + applicazione.getCodApplicazione() + " | CodDocumento: " + printAvviso.getDocumento().getCodDocumento() + "] Generazione pdf...");
pdfBytes = AvvisoPagamentoPdf.getInstance().creaAvvisoV2(log, input, dominio.getCodDominio(), avProperties);
log.debug(logPrefix + " PDF Avviso Documento Multilingua [IDA2A: " + applicazione.getCodApplicazione() + " | CodDocumento: " + printAvviso.getDocumento().getCodDocumento() + "] Generazione pdf completata.");
} else {
log.debug(logPrefix + " PDF Avviso Documento [IDA2A: " + applicazione.getCodApplicazione() + " | CodDocumento: " + printAvviso.getDocumento().getCodDocumento() + "] Creazione input...");
AvvisoPagamentoInput input = AvvisoPagamentoUtils.fromDocumento(printAvviso.getDocumento(), versamenti, log);
AvvisoPagamentoInput input = AvvisoPagamentoUtils.fromDocumento(printAvviso, versamenti, log);
log.debug(logPrefix + " PDF Avviso Documento [IDA2A: " + applicazione.getCodApplicazione() + " | CodDocumento: " + printAvviso.getDocumento().getCodDocumento() + "] Creazione input completata.");

log.debug(logPrefix + " PDF Avviso Documento [IDA2A: " + applicazione.getCodApplicazione() + " | CodDocumento: " + printAvviso.getDocumento().getCodDocumento() + "] Generazione pdf...");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,10 @@
import it.govpay.core.exceptions.GovPayException;
import it.govpay.core.exceptions.PromemoriaException;
import it.govpay.core.exceptions.UnprocessableEntityException;
import it.govpay.core.utils.DateUtils;
import it.govpay.core.utils.ExceptionUtils;
import it.govpay.core.utils.JaxbUtils;
import it.govpay.core.utils.SimpleDateFormatUtils;
import it.govpay.core.utils.trasformazioni.Costanti;
import it.govpay.core.utils.trasformazioni.TrasformazioniUtils;
import it.govpay.core.utils.trasformazioni.exception.TrasformazioneException;
Expand Down Expand Up @@ -393,6 +395,7 @@ private void invioPromemoriaAvviso(it.govpay.bd.model.Promemoria promemoria) {
printAvviso.setCodDominio(versamento.getDominio(configWrapper).getCodDominio());
printAvviso.setIuv(versamento.getIuvVersamento());
printAvviso.setSalvaSuDB(false);
printAvviso.setSdfDataScadenza(SimpleDateFormatUtils.newSimpleDateFormatGGMMAAAA());
PrintAvvisoDTOResponse printAvvisoDTOResponse = avvisoPagamento.printAvvisoVersamento(printAvviso);

String attachmentName = versamento.getDominio(configWrapper).getCodDominio() + "_" + versamento.getNumeroAvviso() + ".pdf";
Expand Down Expand Up @@ -687,6 +690,7 @@ private void invioPromemoriaScadenza(it.govpay.bd.model.Promemoria promemoria) {
printAvviso.setCodDominio(versamento.getDominio(configWrapper).getCodDominio());
printAvviso.setIuv(versamento.getIuvVersamento());
printAvviso.setSalvaSuDB(false);
printAvviso.setSdfDataScadenza(SimpleDateFormatUtils.newSimpleDateFormatGGMMAAAA());
PrintAvvisoDTOResponse printAvvisoDTOResponse = avvisoPagamento.printAvvisoVersamento(printAvviso);

String attachmentName = versamento.getDominio(configWrapper).getCodDominio() + "_" + versamento.getNumeroAvviso() + ".pdf";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package it.govpay.core.business.model;

import java.text.SimpleDateFormat;
import java.util.List;

import it.govpay.bd.model.Documento;
Expand All @@ -12,6 +13,7 @@ public class PrintAvvisoDocumentoDTO {
private boolean salvaSuDB = true;
private LinguaSecondaria linguaSecondaria = null;
private List<String> numeriAvviso = null;
private SimpleDateFormat sdfDataScadenza;

public Documento getDocumento() {
return documento;
Expand Down Expand Up @@ -43,4 +45,10 @@ public List<String> getNumeriAvviso() {
public void setNumeriAvviso(List<String> numeriAvviso) {
this.numeriAvviso = numeriAvviso;
}
public SimpleDateFormat getSdfDataScadenza() {
return sdfDataScadenza;
}
public void setSdfDataScadenza(SimpleDateFormat sdfDataScadenza) {
this.sdfDataScadenza = sdfDataScadenza;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package it.govpay.core.business.model;

import java.text.SimpleDateFormat;

import it.govpay.bd.model.Versamento;
import it.govpay.core.beans.tracciati.LinguaSecondaria;

Expand All @@ -11,6 +13,7 @@ public class PrintAvvisoVersamentoDTO {
private boolean update;
private boolean salvaSuDB = true;
private LinguaSecondaria linguaSecondaria = null;
private SimpleDateFormat sdfDataScadenza;

public Versamento getVersamento() {
return versamento;
Expand Down Expand Up @@ -48,4 +51,10 @@ public LinguaSecondaria getLinguaSecondaria() {
public void setLinguaSecondaria(LinguaSecondaria linguaSecondaria) {
this.linguaSecondaria = linguaSecondaria;
}
public SimpleDateFormat getSdfDataScadenza() {
return sdfDataScadenza;
}
public void setSdfDataScadenza(SimpleDateFormat sdfDataScadenza) {
this.sdfDataScadenza = sdfDataScadenza;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import it.govpay.core.exceptions.UnprocessableEntityException;
import it.govpay.core.utils.GpContext;
import it.govpay.core.utils.IuvUtils;
import it.govpay.core.utils.SimpleDateFormatUtils;
import it.govpay.model.Utenza.TIPO_UTENZA;

public class AvvisiDAO extends BaseDAO{
Expand Down Expand Up @@ -159,6 +160,7 @@ else if(getAvvisoDTO.getIuv() != null)
printAvvisoDTO.setVersamento(versamento);
printAvvisoDTO.setSalvaSuDB(false);
printAvvisoDTO.setLinguaSecondaria(getAvvisoDTO.getLinguaSecondaria());
printAvvisoDTO.setSdfDataScadenza(SimpleDateFormatUtils.newSimpleDateFormatGGMMAAAA());
PrintAvvisoDTOResponse printAvvisoDTOResponse = avvisoBD.printAvvisoVersamento(printAvvisoDTO);
response.setApplicazione(versamento.getApplicazione(configWrapper));
response.setVersamento(versamento);
Expand Down Expand Up @@ -209,6 +211,7 @@ public GetDocumentoAvvisiDTOResponse getDocumento(GetDocumentoAvvisiDTO getAvvis
printAvvisoDTO.setSalvaSuDB(false);
printAvvisoDTO.setLinguaSecondaria(getAvvisoDTO.getLinguaSecondaria());
printAvvisoDTO.setNumeriAvviso(getAvvisoDTO.getNumeriAvviso());
printAvvisoDTO.setSdfDataScadenza(SimpleDateFormatUtils.newSimpleDateFormatGGMMAAAA());
PrintAvvisoDTOResponse printAvvisoDTOResponse = avvisoBD.printAvvisoDocumento(printAvvisoDTO);
response.setDocumento(documento);
response.setDominio(dominio);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
import it.govpay.core.exceptions.UnprocessableEntityException;
import it.govpay.core.utils.GpContext;
import it.govpay.core.utils.IuvUtils;
import it.govpay.core.utils.SimpleDateFormatUtils;
import it.govpay.core.utils.TracciatiConverter;
import it.govpay.core.utils.VersamentoUtils;
import it.govpay.core.utils.tracciati.validator.PendenzaPostValidator;
Expand Down Expand Up @@ -888,6 +889,7 @@ public PutPendenzaDTOResponse createOrUpdate(PutPendenzaDTO putVersamentoDTO) th
printAvvisoDTO.setIuv(iuv.getIuv());
printAvvisoDTO.setVersamento(versamento);
printAvvisoDTO.setSalvaSuDB(false);
printAvvisoDTO.setSdfDataScadenza(SimpleDateFormatUtils.newSimpleDateFormatGGMMAAAA());
PrintAvvisoDTOResponse printAvvisoDTOResponse = avvisoBD.printAvvisoVersamento(printAvvisoDTO);
createOrUpdatePendenzaResponse.setPdf(Base64.getEncoder().encodeToString(printAvvisoDTOResponse.getAvviso().getPdf()));
} else { // non devo fare la stampa.
Expand Down Expand Up @@ -1041,6 +1043,7 @@ public PutPendenzaDTOResponse createOrUpdateCustom(PutPendenzaDTO putVersamentoD
printAvvisoDTO.setIuv(iuv.getIuv());
printAvvisoDTO.setVersamento(chiediVersamento);
printAvvisoDTO.setSalvaSuDB(false);
printAvvisoDTO.setSdfDataScadenza(SimpleDateFormatUtils.newSimpleDateFormatGGMMAAAA());
PrintAvvisoDTOResponse printAvvisoDTOResponse = avvisoBD.printAvvisoVersamento(printAvvisoDTO);
createOrUpdatePendenzaResponse.setPdf(Base64.getEncoder().encodeToString(printAvvisoDTOResponse.getAvviso().getPdf()));
} else { // non devo fare la stampa.
Expand Down Expand Up @@ -1084,6 +1087,7 @@ public LeggiPendenzaDTOResponse leggiAvvisoPagamento(LeggiPendenzaDTO leggiPende
printAvvisoDTO.setIuv(versamento.getIuvVersamento());
printAvvisoDTO.setVersamento(versamento);
printAvvisoDTO.setSalvaSuDB(false);
printAvvisoDTO.setSdfDataScadenza(SimpleDateFormatUtils.newSimpleDateFormatGGMMAAAA());
PrintAvvisoDTOResponse printAvvisoDTOResponse = avvisoBD.printAvvisoVersamento(printAvvisoDTO);
response.setAvvisoPdf(printAvvisoDTOResponse.getAvviso().getPdf());
} catch (NotFoundException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import it.govpay.bd.model.SingoloVersamento;
import it.govpay.bd.model.UnitaOperativa;
import it.govpay.bd.model.Versamento;
import it.govpay.core.business.model.PrintAvvisoDocumentoDTO;
import it.govpay.core.business.model.PrintAvvisoVersamentoDTO;
import it.govpay.core.exceptions.UnprocessableEntityException;
import it.govpay.core.utils.IuvUtils;
import it.govpay.core.utils.VersamentoUtils;
Expand All @@ -33,13 +35,8 @@

public class AvvisoPagamentoUtils {

private static SimpleDateFormat sdfDataScadenza = new SimpleDateFormat("dd/MM/yyyy");

public static SimpleDateFormat getSdfDataScadenza() {
return AvvisoPagamentoUtils.sdfDataScadenza;
}

public static AvvisoPagamentoInput fromVersamento(it.govpay.bd.model.Versamento versamento) throws ServiceException {
public static AvvisoPagamentoInput fromVersamento(PrintAvvisoVersamentoDTO printAvviso) throws ServiceException {
it.govpay.bd.model.Versamento versamento = printAvviso.getVersamento();
AvvisoPagamentoInput input = new AvvisoPagamentoInput();
BDConfigWrapper configWrapper = new BDConfigWrapper(ContextThreadLocal.get().getTransactionId(), true);
String causaleVersamento = "";
Expand All @@ -56,7 +53,7 @@ public static AvvisoPagamentoInput fromVersamento(it.govpay.bd.model.Versamento
AvvisoPagamentoUtils.impostaAnagraficaDebitore(versamento.getAnagraficaDebitore(), input);

PaginaAvvisoSingola pagina = new PaginaAvvisoSingola();
pagina.setRata(getRata(versamento, input));
pagina.setRata(getRata(versamento, input, printAvviso.getSdfDataScadenza()));

if(input.getPagine() == null)
input.setPagine(new PagineAvviso());
Expand All @@ -66,9 +63,11 @@ public static AvvisoPagamentoInput fromVersamento(it.govpay.bd.model.Versamento
return input;
}

public static AvvisoPagamentoInput fromDocumento(Documento documento, List<Versamento> versamenti, Logger log) throws ServiceException, UnprocessableEntityException {
public static AvvisoPagamentoInput fromDocumento(PrintAvvisoDocumentoDTO printAvviso, List<Versamento> versamenti, Logger log) throws ServiceException, UnprocessableEntityException {
Documento documento = printAvviso.getDocumento();
AvvisoPagamentoInput input = new AvvisoPagamentoInput();
BDConfigWrapper configWrapper = new BDConfigWrapper(ContextThreadLocal.get().getTransactionId(), true);
SimpleDateFormat sdfDataScadenza = printAvviso.getSdfDataScadenza();

input.setOggettoDelPagamento(documento.getDescrizione());

Expand All @@ -80,7 +79,7 @@ public static AvvisoPagamentoInput fromDocumento(Documento documento, List<Versa
AvvisoPagamentoUtils.impostaAnagraficaEnteCreditore(versamento, documento.getDominio(configWrapper), versamento.getUo(configWrapper), input);
AvvisoPagamentoUtils.impostaAnagraficaDebitore(versamento.getAnagraficaDebitore(), input);
PaginaAvvisoSingola pagina = new PaginaAvvisoSingola();
pagina.setRata(getRata(versamento, input));
pagina.setRata(getRata(versamento, input, sdfDataScadenza));
input.getPagine().getSingolaOrDoppiaOrTripla().add(pagina);
}

Expand All @@ -90,8 +89,8 @@ public static AvvisoPagamentoInput fromDocumento(Documento documento, List<Versa
AvvisoPagamentoUtils.impostaAnagraficaEnteCreditore(v2, documento.getDominio(configWrapper), v2.getUo(configWrapper), input);
AvvisoPagamentoUtils.impostaAnagraficaDebitore(v2.getAnagraficaDebitore(), input);
PaginaAvvisoDoppia pagina = new PaginaAvvisoDoppia();
pagina.getRata().add(getRata(v1, input));
pagina.getRata().add(getRata(v2, input));
pagina.getRata().add(getRata(v1, input, sdfDataScadenza));
pagina.getRata().add(getRata(v2, input, sdfDataScadenza));
input.getPagine().getSingolaOrDoppiaOrTripla().add(pagina);
}

Expand All @@ -102,9 +101,9 @@ public static AvvisoPagamentoInput fromDocumento(Documento documento, List<Versa
AvvisoPagamentoUtils.impostaAnagraficaEnteCreditore(v3, documento.getDominio(configWrapper), v3.getUo(configWrapper), input);
AvvisoPagamentoUtils.impostaAnagraficaDebitore(v3.getAnagraficaDebitore(), input);
PaginaAvvisoTripla pagina = new PaginaAvvisoTripla();
pagina.getRata().add(getRata(v1, input));
pagina.getRata().add(getRata(v2, input));
pagina.getRata().add(getRata(v3, input));
pagina.getRata().add(getRata(v1, input, sdfDataScadenza));
pagina.getRata().add(getRata(v2, input, sdfDataScadenza));
pagina.getRata().add(getRata(v3, input, sdfDataScadenza));
input.getPagine().getSingolaOrDoppiaOrTripla().add(pagina);
}

Expand All @@ -113,14 +112,14 @@ public static AvvisoPagamentoInput fromDocumento(Documento documento, List<Versa
AvvisoPagamentoUtils.impostaAnagraficaEnteCreditore(versamento, documento.getDominio(configWrapper), versamento.getUo(configWrapper), input);
AvvisoPagamentoUtils.impostaAnagraficaDebitore(versamento.getAnagraficaDebitore(), input);
PaginaAvvisoSingola pagina = new PaginaAvvisoSingola();
pagina.setRata(getRata(versamento, input));
pagina.setRata(getRata(versamento, input, sdfDataScadenza));
input.getPagine().getSingolaOrDoppiaOrTripla().add(pagina);
}

return input;
}

public static RataAvviso getRata(it.govpay.bd.model.Versamento versamento, AvvisoPagamentoInput input) throws ServiceException {
public static RataAvviso getRata(it.govpay.bd.model.Versamento versamento, AvvisoPagamentoInput input, SimpleDateFormat sdfDataScadenza) throws ServiceException {
BDConfigWrapper configWrapper = new BDConfigWrapper(ContextThreadLocal.get().getTransactionId(), true);
RataAvviso rata = new RataAvviso();
if(versamento.getNumeroRata() != null)
Expand Down Expand Up @@ -178,9 +177,9 @@ else if(sv.getIbanAppoggio(configWrapper) != null && sv.getIbanAppoggio(configWr
rata.setImporto(versamento.getImportoTotale().doubleValue());

if(versamento.getDataValidita() != null) {
rata.setData(AvvisoPagamentoUtils.getSdfDataScadenza().format(versamento.getDataValidita()));
rata.setData(sdfDataScadenza.format(versamento.getDataValidita()));
} else if(versamento.getDataScadenza() != null) {
rata.setData(AvvisoPagamentoUtils.getSdfDataScadenza().format(versamento.getDataScadenza()));
rata.setData(sdfDataScadenza.format(versamento.getDataScadenza()));
} else {
rata.setData(null);
}
Expand Down

0 comments on commit 3386b1a

Please sign in to comment.