use of it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService in project sigla-main by consiglionazionaledellericerche.
the class TrasmissioneFatture method notificaFatturaAttivaAvvenutaTrasmissioneNonRecapitata.
public void notificaFatturaAttivaAvvenutaTrasmissioneNonRecapitata(UserContext userContext, String nomeFile, DataHandler data) throws ComponentException {
RicercaDocContComponentSession docComponent = recuperoComponentRicercaDocCont();
FatturaElettronicaAttivaComponentSession component = recuperoComponentFatturaElettronicaAttiva();
try {
JAXBElement<INonRecapitabile> file = (JAXBElement<INonRecapitabile>) getJAXBElement(data);
INonRecapitabile notifica = file.getValue();
logger.info("Fatture Elettroniche: Attive: Trasmissione non recapitata. MessageId:" + notifica.getMessageId());
String codiceSDI = String.valueOf(notifica.getIdentificativoSdI());
Fattura_attivaBulk fattura = recuperoFatturaDaCodiceInvioSDI(userContext, codiceSDI);
if (fattura != null && fattura.getStatoInvioSdi() != null && fattura.getStatoInvioSdi().equals(Fattura_attivaBulk.FATT_ELETT_NON_RECAPITABILE)) {
logger.info("Fatture Elettroniche: Attive: Fattura già elaborata " + codiceSDI);
} else {
String nomeFileP7m = notifica.getNomeFile();
fattura = recuperoFatturaDaNomeFile(userContext, nomeFileP7m);
if (fattura != null) {
if ((CNRUserContext.getEsercizio(userContext).compareTo(fattura.getEsercizio()) == 0) || (docComponent.isRibaltato(userContext, fattura.getCd_cds_origine(), fattura.getEsercizio()) && CNRUserContext.getEsercizio(userContext).compareTo(fattura.getEsercizio()) > 0)) {
salvaFileSuDocumentale(data, nomeFile, fattura, StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_TRASMISSIONE_FATTURA);
try {
component.aggiornaFatturaTrasmissioneNonRecapitataSDI(userContext, fattura, codiceSDI, notifica.getNote());
logger.info("Fatture Elettroniche: Attive: aggiornamento Fattura con trasmissione non recapitata con nome file " + nomeFileP7m);
if (fattura instanceof Fattura_attiva_IBulk) {
Fattura_attiva_IBulk fatturaAttiva = (Fattura_attiva_IBulk) fattura;
if (fatturaAttiva.getNotaCreditoAutomaticaGenerata() != null) {
component.gestioneInvioMailNonRecapitabilita(userContext, fattura);
try {
SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class).gestioneAllegatiPerFatturazioneElettronica(userContext, fatturaAttiva.getNotaCreditoAutomaticaGenerata());
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: MessageId:" + notifica.getMessageId() + ". Errore nell'elaborazione della stampa della mancata consegna della fattura con nome file " + nomeFileP7m + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Mancata Consegna. Nome file " + nomeFileP7m, sw.toString());
}
}
}
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: MessageId:" + notifica.getMessageId() + ". Errore nell'elaborazione della mancata consegna della fattura con nome file " + nomeFileP7m + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Trasmissione non recapitata. Nome file " + nomeFileP7m, sw.toString());
}
}
} else {
logger.warn("Fatture Elettroniche: Attive: Per il nome del file inviato indicato nel file dell'e-mail non corrisponde nessuna fattura. Trasmissione non recapitata. Nome File " + nomeFileP7m);
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Per il nome del file inviato indicato nel file dell'e-mail non corrisponde nessuna fattura", "Trasmissione non recapitata. Nome File " + nomeFileP7m);
}
}
} catch (Exception e) {
throw new ComponentException(e);
}
}
use of it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService in project sigla-main by consiglionazionaledellericerche.
the class TrasmissioneFatture method notificaFatturaAttivaEsito.
public void notificaFatturaAttivaEsito(UserContext userContext, String nomeFile, DataHandler data) throws ComponentException {
RicercaDocContComponentSession docComponent = recuperoComponentRicercaDocCont();
FatturaElettronicaAttivaComponentSession component = recuperoComponentFatturaElettronicaAttiva();
try {
JAXBElement<NotificaEsitoType> file = (JAXBElement<NotificaEsitoType>) getJAXBElement(data);
NotificaEsitoType notifica = file.getValue();
String identificativoSdi = String.valueOf(notifica.getIdentificativoSdI());
logger.info("Fatture Elettroniche: Attive: Esito. MessageId:" + notifica.getMessageId() + ". Identificativo SDI: " + identificativoSdi);
Fattura_attivaBulk fattura = recuperoFatturaDaCodiceInvioSDI(userContext, identificativoSdi);
if (fattura != null) {
if (!StringUtils.isEmpty(fattura.getStatoInvioSdi())) {
if (fattura.getStatoInvioSdi().equals(Fattura_attivaBulk.FATT_ELETT_ACCETTATA_DESTINATARIO) || fattura.getStatoInvioSdi().equals(Fattura_attivaBulk.FATT_ELETT_RIFIUTATA_DESTINATARIO)) {
logger.info("Fatture Elettroniche: Attive: Fattura già elaborata ");
} else if (fattura.getStatoInvioSdi().equals(Fattura_attivaBulk.FATT_ELETT_CONSEGNATA_DESTINATARIO)) {
if (esitoAccettato(notifica)) {
salvaFileSuDocumentale(data, nomeFile, fattura, StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_ACCETTATO);
try {
component.aggiornaFatturaEsitoAccettatoSDI(userContext, fattura);
logger.info("Fatture Elettroniche: Attive: aggiornamento Fattura accettata con id SDI " + identificativoSdi);
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: MessageId:" + notifica.getMessageId() + ". Errore nell'elaborazione della Fattura accettata con id SDI " + identificativoSdi + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Esito Accettato. Id SDI " + identificativoSdi, sw.toString());
}
} else {
if ((CNRUserContext.getEsercizio(userContext).compareTo(fattura.getEsercizio()) == 0) || (docComponent.isRibaltato(userContext, fattura.getCd_cds_origine(), fattura.getEsercizio()) && CNRUserContext.getEsercizio(userContext).compareTo(fattura.getEsercizio()) > 0)) {
salvaFileSuDocumentale(data, nomeFile, fattura, StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_RIFIUTATO);
String rifiuto = recuperoMotivoRifiuto(notifica);
try {
fattura = component.aggiornaFatturaRifiutataDestinatarioSDI(userContext, fattura, rifiuto);
logger.info("Fatture Elettroniche: Attive: aggiornamento Fattura rifiutata con id SDI " + identificativoSdi);
if (fattura instanceof Fattura_attiva_IBulk) {
Fattura_attiva_IBulk fatturaAttiva = (Fattura_attiva_IBulk) fattura;
if (fatturaAttiva.getNotaCreditoAutomaticaGenerata() != null) {
try {
SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class).gestioneAllegatiPerFatturazioneElettronica(userContext, fatturaAttiva.getNotaCreditoAutomaticaGenerata());
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: MessageId:" + notifica.getMessageId() + ". Errore nell'elaborazione della stampa della Fattura rifiutata con id SDI " + identificativoSdi + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Esito Rifiutato. Id SDI " + identificativoSdi, sw.toString());
}
}
}
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: MessageId:" + notifica.getMessageId() + ". Errore nell'elaborazione della Fattura rifiutata con id SDI " + identificativoSdi + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Esito Rifiutato. Id SDI " + identificativoSdi, sw.toString());
}
}
}
// } else {
// logger.warn("Fatture Elettroniche: Attive: Stato fattura vuoto non previsto per la notifica esito per la fattura " + identificativoSdi);
}
// } else {
// logger.warn("Fatture Elettroniche: Attive: Stato fattura " + fattura.getStatoInvioSdi() + " non previsto per la notifica esito per la fattura " + identificativoSdi);
}
} else {
logger.warn("Fatture Elettroniche: Attive: Per il nome dell'identificativo SDI indicato nel file dell'e-mail non corrisponde nessuna fattura." + identificativoSdi);
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Per il nome del file inviato indicato nel file dell'e-mail non corrisponde nessuna fattura", "Notifica Esito. Id SDI " + identificativoSdi);
}
} catch (Exception e) {
throw new ComponentException(e);
}
}
use of it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService in project sigla-main by consiglionazionaledellericerche.
the class TrasmissioneFatture method salvaFileSuDocumentale.
private void salvaFileSuDocumentale(DataHandler data, String nomeFile, Fattura_attivaBulk fattura, StorageDocAmmAspect aspect) throws IOException, ApplicationException {
logger.info("Inizio Salvataggio sul Documentale");
DocumentiCollegatiDocAmmService documentiCollegatiDocAmmService = SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class);
StorageFile storageFile = new StorageFileFatturaAttiva(data.getInputStream(), data.getContentType(), nomeFile, fattura);
if (storageFile != null) {
String path = storageFile.getStorageParentPath();
try {
StorageObject storageObject = documentiCollegatiDocAmmService.restoreSimpleDocument(storageFile, storageFile.getInputStream(), storageFile.getContentType(), storageFile.getFileName(), path, true);
documentiCollegatiDocAmmService.addAspect(storageObject, aspect.value());
storageFile.setStorageObject(storageObject);
logger.info("Salvato file sul Documentale");
} catch (StorageException e) {
if (e.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
throw new ApplicationException("CMIS - File Ricevuta Consegna [" + storageFile.getFileName() + "] già presente o non completo di tutte le proprietà obbligatorie. Inserimento non possibile!");
throw new ApplicationException("CMIS - Errore nella registrazione del file Ricevuta Consegna sul Documentale (" + e.getMessage() + ")");
}
}
}
use of it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService in project sigla-main by consiglionazionaledellericerche.
the class TrasmissioneFatture method mancataConsegnaPecInvioFatturaAttiva.
public InputStream mancataConsegnaPecInvioFatturaAttiva(UserContext userContext, String nomeFile) throws ComponentException {
try {
logger.info("Fatture Elettroniche: Attive: Pec: Mancata Consegna Nome File: " + nomeFile);
Fattura_attivaBulk fattura = recuperoFatturaDaNomeFile(userContext, nomeFile);
if (fattura != null) {
logger.info("Fatture Elettroniche: Attive: Pec: Mancata Consegna Fattura: " + fattura.getCd_uo() + "-" + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva());
if (fattura.getStatoInvioSdi() != null && fattura.getStatoInvioSdi().equals("FATT_ELETT_INVIATA_SDI")) {
try {
DocumentiCollegatiDocAmmService docCollService = SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class);
InputStream streamSigned = docCollService.getStreamXmlFirmatoFatturaAttiva(fattura.getEsercizio(), fattura.getCd_cds(), fattura.getCd_uo(), fattura.getPg_fattura_attiva());
if (streamSigned != null) {
SendMail.sendErrorMail("Fatture Elettroniche: Attive: PEC. Mancata Consegna Fattura: " + fattura.getCd_uo() + "-" + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva(), "Verrà riprovato l'invio.");
return streamSigned;
}
SendMail.sendErrorMail("Fatture Elettroniche: Attive: PEC. Stream file firmato non trovato.", "Mancata Consegna Fattura: " + fattura.getCd_uo() + "-" + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva());
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: PEC. Mancata Consegna. Errore nella ricerca dello stream del file firmato della fattura: " + fattura.getCd_uo() + "-" + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva() + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: PEC. Mancata Consegna. Errore nella ricerca dello stream del file firmato della fattura: " + fattura.getCd_uo() + "-" + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva(), sw.toString());
}
} else {
logger.info("Fatture Elettroniche: Attive: Pec: Mancata Consegna Fattura: " + fattura.getCd_uo() + "-" + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva() + ". Mancata Consegna Elaborata");
}
} else {
logger.warn("Fatture Elettroniche: Attive: PEC. Mancata Consegna. Per il nome del file indicato nell'e-mail di Consegna della PEC non corrisponde nessuna fattura." + nomeFile);
SendMail.sendErrorMail("Fatture Elettroniche: Attive: PEC. Fatture Elettroniche: Attive: PEC. Mancata Consegna. Per il nome del file indicato nell'e-mail di Consegna della PEC non corrisponde nessuna fattura", "Consegna PEC. Nome File: " + nomeFile);
}
return null;
} catch (Exception e) {
throw new ComponentException(e);
}
}
use of it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService in project sigla-main by consiglionazionaledellericerche.
the class TrasmissioneFatture method notificaFatturaAttivaScarto.
public void notificaFatturaAttivaScarto(UserContext userContext, String nomeFile, DataHandler data) throws ComponentException {
FatturaElettronicaAttivaComponentSession component = recuperoComponentFatturaElettronicaAttiva();
RicercaDocContComponentSession docComponent = recuperoComponentRicercaDocCont();
try {
JAXBElement<IScarto> file = (JAXBElement<IScarto>) getJAXBElement(data);
IScarto notifica = file.getValue();
logger.info("Fatture Elettroniche: Attive: Notifica Scarto. MessageId:" + notifica.getMessageId());
String codiceSDI = notifica.getIdentificativoSdI();
Fattura_attivaBulk fattura = recuperoFatturaDaCodiceInvioSDI(userContext, codiceSDI);
if (fattura != null) {
logger.info("Fatture Elettroniche: Attive: Fattura già elaborata " + codiceSDI);
} else {
String nomeFileP7m = recuperoNomeFileP7m(notifica);
fattura = recuperoFatturaDaNomeFile(userContext, nomeFileP7m);
if (fattura != null) {
if ((CNRUserContext.getEsercizio(userContext).compareTo(fattura.getEsercizio()) == 0) || (docComponent.isRibaltato(userContext, fattura.getCd_cds_origine(), fattura.getEsercizio()) && CNRUserContext.getEsercizio(userContext).compareTo(fattura.getEsercizio()) > 0)) {
salvaFileSuDocumentale(data, nomeFile, fattura, StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_SCARTO);
StringBuffer errore = estraiErrore(notifica);
try {
fattura = component.aggiornaFatturaScartoSDI(userContext, fattura, codiceSDI, errore.toString());
logger.info("Fatture Elettroniche: Attive: aggiornamento Fattura scartata con nomeFile " + nomeFileP7m);
if (fattura instanceof Fattura_attiva_IBulk) {
Fattura_attiva_IBulk fatturaAttiva = (Fattura_attiva_IBulk) fattura;
if (fatturaAttiva.getNotaCreditoAutomaticaGenerata() != null) {
try {
SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class).gestioneAllegatiPerFatturazioneElettronica(userContext, fatturaAttiva.getNotaCreditoAutomaticaGenerata());
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: MessageId:" + notifica.getMessageId() + ". Errore nell'elaborazione della stampa dello scarto della fattura con nome file " + nomeFileP7m + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Notifica Scarto. Nome file " + nomeFileP7m, sw.toString());
}
}
}
} catch (Exception ex) {
logger.error("Fatture Elettroniche: Attive: MessageId:" + notifica.getMessageId() + ". Errore nell'elaborazione dello scarto della fattura con nome file " + nomeFileP7m + ". Errore:" + ex.getMessage() == null ? (ex.getCause() == null ? "" : ex.getCause().toString()) : ex.getMessage());
java.io.StringWriter sw = new java.io.StringWriter();
ex.printStackTrace(new java.io.PrintWriter(sw));
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Notifica Scarto. Nome file " + nomeFileP7m, sw.toString());
}
}
} else {
logger.warn("Fatture Elettroniche: Attive: Per il nome del file inviato indicato nel file dell'e-mail non corrisponde nessuna fattura." + nomeFileP7m);
SendMail.sendErrorMail("Fatture Elettroniche: Attive: Per il nome del file inviato indicato nel file dell'e-mail non corrisponde nessuna fattura", "Scarto. Nome File " + nomeFileP7m);
}
}
} catch (Exception e) {
throw new ComponentException(e);
}
}
Aggregations