use of it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk in project sigla-main by consiglionazionaledellericerche.
the class ReversaleComponent method docGenerico_creaDocumentoGenericoRiga.
/**
* creazione riga di documento di entrata x incasso IVA da fatture estere
* PreCondition:
* E' stata generata la richiesta di creazione di una riga di documento amministrativo di entrata
* a partire da una reversale di incasso IVA x fattura estera
* PostCondition:
* Un riga di documento amministrativo viene creata.
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param documento <code>Documento_genericoBulk</code> il documento generico
* @param scadenza <code>Accertamento_scadenzarioBulk</code> la scadenza dell'accertamento
* @param importo L'importo della reversale di regolarizzazione
* @param mRiga Mandato_rigaBulk da cui dedurre le modalita di pagamento
* @return riga <code>Documento_generico_rigaBulk</code> la riga del documento generico creata
*/
public Documento_generico_rigaBulk docGenerico_creaDocumentoGenericoRiga(UserContext userContext, Documento_genericoBulk documento, Accertamento_scadenzarioBulk scadenza, BigDecimal importo, Mandato_rigaBulk mRiga) throws ComponentException {
try {
Documento_generico_rigaBulk riga = docGenerico_creaDocumentoGenericoRiga(userContext, documento, scadenza, importo);
// terzo uo
SQLBuilder sql = getHome(userContext, TerzoBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_unita_organizzativa", SQLBuilder.EQUALS, documento.getCd_unita_organizzativa());
sql.addClause("AND", "dt_canc", SQLBuilder.ISNULL, null);
List result = getHome(userContext, TerzoBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non e' stata codificata in anagrafica"));
TerzoBulk terzo_uo = (TerzoBulk) result.get(0);
riga.setCd_terzo_uo_cds(terzo_uo.getCd_terzo());
riga.setTerzo_uo_cds(terzo_uo);
// modalità pagamento
sql = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
sql.addClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
sql.addTableToHeader("RIF_MODALITA_PAGAMENTO");
sql.addSQLJoin("RIF_MODALITA_PAGAMENTO.CD_MODALITA_PAG", "MODALITA_PAGAMENTO.CD_MODALITA_PAG");
sql.addSQLClause("AND", "TI_PAGAMENTO", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
result = getHome(userContext, Modalita_pagamentoBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha modalità di pagamento associate"));
Modalita_pagamentoBulk mp = (Modalita_pagamentoBulk) result.get(0);
riga.setCd_modalita_pag_uo_cds(mp.getCd_modalita_pag());
riga.setModalita_pagamento_uo_cds(new Rif_modalita_pagamentoBulk(mp.getCd_modalita_pag()));
sql = getHome(userContext, BancaBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
sql.addClause("AND", "ti_pagamento", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
sql.addClause("AND", "fl_cancellato", SQLBuilder.EQUALS, Boolean.FALSE);
sql.addSQLClause("AND", "CODICE_IBAN", SQLBuilder.ISNOTNULL, null);
sql.addSQLClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
try {
if (!Utility.createParametriCnrComponentSession().getParametriCnr(userContext, CNRUserContext.getEsercizio(userContext)).getFl_tesoreria_unica().booleanValue())
sql.addSQLClause("AND", "BANCA.FL_CC_CDS", SQLBuilder.EQUALS, "Y");
else {
Configurazione_cnrBulk config = new Configurazione_cnrBulk("CONTO_CORRENTE_SPECIALE", "ENTE", "*", new Integer(0));
it.cnr.contab.config00.bulk.Configurazione_cnrHome home = (it.cnr.contab.config00.bulk.Configurazione_cnrHome) getHome(userContext, config);
List configurazioni = home.find(config);
if ((configurazioni != null) && (configurazioni.size() == 1)) {
Configurazione_cnrBulk configBanca = (Configurazione_cnrBulk) configurazioni.get(0);
sql.addSQLClause("AND", "BANCA.ABI", SQLBuilder.EQUALS, configBanca.getVal01());
sql.addSQLClause("AND", "BANCA.CAB", SQLBuilder.EQUALS, configBanca.getVal02());
sql.addSQLClause("AND", "BANCA.NUMERO_CONTO", SQLBuilder.CONTAINS, configBanca.getVal03());
}
}
} catch (Exception e) {
throw handleException(e);
}
result = getHome(userContext, BancaBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha coordinate bancarie associate"));
BancaBulk banca = (BancaBulk) result.get(0);
riga.setPg_banca_uo_cds(banca.getPg_banca());
riga.setBanca_uo_cds(banca);
return riga;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk in project sigla-main by consiglionazionaledellericerche.
the class GruppoCRComponent method findBancaOptions.
public List findBancaOptions(UserContext userContext, Gruppo_cr_detBulk det) throws ComponentException {
try {
if (det.getTerzo() != null && det.getTerzo().getCd_terzo() != null) {
det.setTerzo((TerzoBulk) getHome(userContext, TerzoBulk.class).findByPrimaryKey(new TerzoBulk(det.getTerzo().getCd_terzo())));
if (det.getModalitaOptions() != null && !det.getModalitaOptions().isEmpty() && det.getModalitaPagamento().getCd_modalita_pag() == null)
det.setModalitaPagamento((Rif_modalita_pagamentoBulk) new BulkList(det.getModalitaOptions()).get(0));
SQLBuilder sql = getHome(userContext, BancaBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_terzo", sql.EQUALS, det.getTerzo().getCd_terzo());
// sql.addSQLClause("AND", "BANCA.CD_TERZO_DELEGATO", sql.ISNULL, null);
sql.addSQLClause("AND", "BANCA.FL_CANCELLATO", sql.EQUALS, "N");
sql.addSQLClause("AND", "BANCA.PG_BANCA", sql.EQUALS, det.getPg_banca());
sql.addOrderBy("FL_CC_CDS DESC");
if (det.getModalitaPagamento() != null && det.getModalitaPagamento().getCd_modalita_pag() != null) {
SQLBuilder sql2 = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
sql2.setHeader("SELECT DISTINCT TI_PAGAMENTO ");
sql2.addTableToHeader("rif_modalita_pagamento");
sql2.addSQLClause("AND", "modalita_pagamento.cd_terzo", sql.EQUALS, det.getTerzo().getCd_terzo());
sql2.addSQLClause("AND", "modalita_pagamento.cd_modalita_pag", sql.EQUALS, det.getModalitaPagamento().getCd_modalita_pag());
sql2.addSQLJoin("modalita_pagamento.cd_modalita_pag", "rif_modalita_pagamento.cd_modalita_pag");
// sql2.addSQLClause("AND", "MODALITA_PAGAMENTO.CD_TERZO_DELEGATO", sql.ISNULL, null);
sql.addSQLClause("AND", "TI_PAGAMENTO", sql.EQUALS, sql2);
}
List result = getHome(userContext, BancaBulk.class).fetchAll(sql);
if (result.size() == 0)
throw new ApplicationException("Non esistono o non sono valide le coordinate bancarie associate per il terzo " + det.getTerzo().getCd_terzo());
return result;
} else
return null;
} catch (it.cnr.jada.persistency.PersistencyException ex) {
throw handleException(ex);
}
}
use of it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk in project sigla-main by consiglionazionaledellericerche.
the class FatturaPassivaComponent method validaFattura.
// ^^@@
/**
* validazione numero fattura
* PreCondition:
* Il numero della fattura fornitore è gia presente nell'archivio fatture.
* PostCondition:
* Viene visualizzato il messaggio "Attenzione duplicazione fattura: Il numero di fattura risulta già registrato".
* tutti i controlli superati
* PreCondition:
* Nessuna situazione di errore di validazione è stata rilevata.
* PostCondition:
* Consentita la registrazione.
* validazione numero di dettagli maggiore di zero.
* PreCondition:
* Il numero di dettagli nella fattura è zero
* PostCondition:
* Viene inviato un messaggio: "Attenzione non possono esistere fatture senza almeno un dettaglio".
* validazione aggiunta dettagli n fatture con stato iva B o C.
* PreCondition:
* E' stato aggiunto un dettaglio in fatture con stato iva B o C .
* PostCondition:
* Viene inviato un messaggio:"Attenzione non si possono aggiungere dettagli in fatture con stato iva B o C ."
* validazione modifica sezionale
* PreCondition:
* E' stato modificato un sezionale in fatture con dettagli in stato not I e stato iva B o C.
* PostCondition:
* Viene inviato un messaggio:"Attenzione non si possono eliminare dettagli in fatture parzialmente contabilizzate e stato iva B o C"
* validazione modifica testata (G3)
* PreCondition:
* Sono stati modificati i campi numero fattura di emissione, data fattura di emissione , importo, flag IntraUE, flag San Marino, sezionale,
* valuta in fatture con stato iva B o C .
* PostCondition:
* Viene inviato un messaggio:"Attenzione non si possono modificare questi campi in fatture pagate o in stato IVA B o C"
* validazione modifica testata campo fornitore.(G5)
* PreCondition:
* E stato modificato il campo fornitore nella testata in stato (B or C) or (A and testata=P).
* PostCondition:
* Viene inviato un messaggio:"Attenzione lo stato della fattura non consente di modificare il fornitore".
* validazione modifica fattura pagata.
* PreCondition:
* E' satata eseguita una modifica in fattura con testata in stato P.
* PostCondition:
* Viene inviato un messaggio:"Attenzione non si può modificare nulla in una fattura pagata".
* validazione quadratura IVA.
* PreCondition:
* Il totale imponibile +IVA di tutte le righe non quadra con il totale fattura riporato in testata.
* PostCondition:
* Viene inviato un messaggio:"Attenzione, la somma degli imponibili delle righe + la somma della relativa iva non quadra con il totale
* fattura".
* validazione associazione scadenze
* PreCondition:
* Esistono dettagli non collegati ad obbligazione.
* PostCondition:
* Viene inviato un messaggio:"Attenzione non si possono modificare questi campi in fatture pagate o in stato IVA B o C"
*/
// ^^@@
public void validaFattura(UserContext aUC, Fattura_passivaBulk fatturaPassiva) throws ComponentException {
ObbligazioniTable obbligazioniHash = fatturaPassiva.getFattura_passiva_obbligazioniHash();
if (obbligazioniHash != null && !obbligazioniHash.isEmpty()) {
Enumeration en = obbligazioniHash.keys();
while (en.hasMoreElements()) {
Obbligazione_scadenzarioBulk scad = (Obbligazione_scadenzarioBulk) en.nextElement();
CigBulk cig = null;
String motivoAssenzaCig = null;
if ((scad != null && scad.getObbligazione() != null && scad.getObbligazione().getContratto() != null && scad.getObbligazione().getContratto().getCig() != null)) {
cig = scad.getObbligazione().getContratto().getCig();
} else {
motivoAssenzaCig = scad.getMotivo_assenza_cig();
cig = scad.getCig();
}
Vector righeCollegate = (Vector) obbligazioniHash.get(scad);
if (righeCollegate != null) {
for (Iterator i = righeCollegate.iterator(); i.hasNext(); ) {
Fattura_passiva_rigaBulk riga = ((Fattura_passiva_rigaBulk) i.next());
if (!(((cig == null || cig.getCdCig() == null) && riga.getCig() == null) || (cig != null && riga.getCig() != null && cig.equalsByPrimaryKey(riga.getCig())))) {
riga.setCig(cig);
riga.setToBeUpdated();
}
if (!((motivoAssenzaCig == null && riga.getMotivo_assenza_cig() == null) || (motivoAssenzaCig != null && riga.getMotivo_assenza_cig() != null && motivoAssenzaCig.equals(riga.getMotivo_assenza_cig())))) {
riga.setMotivo_assenza_cig(motivoAssenzaCig);
riga.setToBeUpdated();
}
}
}
}
}
if (fatturaPassiva.getFattura_passiva_dettColl().isEmpty())
throw new it.cnr.jada.comp.ApplicationException("Attenzione: per salvare una " + fatturaPassiva.getDescrizioneEntita() + " è necessario inserire almeno un dettaglio");
for (Iterator i = fatturaPassiva.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
Fattura_passiva_rigaBulk riga = (Fattura_passiva_rigaBulk) i.next();
validaRiga(aUC, riga);
controlliCig(riga);
}
searchDuplicateInDB(aUC, fatturaPassiva);
validazioneComune(aUC, fatturaPassiva);
if (fatturaPassiva instanceof Fattura_passiva_IBulk && (fatturaPassiva.isBollaDoganale() || fatturaPassiva.isSpedizioniere()) && ((Fattura_passiva_IBulk) fatturaPassiva).getFattura_estera() == null)
throw new it.cnr.jada.comp.ApplicationException("La fattura è definita come bolla doganale o spedizioniere. Specificare la fattura estera collegata!");
if (fatturaPassiva instanceof Nota_di_creditoBulk) {
Nota_di_creditoBulk ndc = (Nota_di_creditoBulk) fatturaPassiva;
if (ndc.getAccertamentiHash() != null && !ndc.getAccertamentiHash().isEmpty()) {
if (ndc.getModalita_pagamento_uo() == null)
throw new it.cnr.jada.comp.ApplicationException("Specificare le modalità di pagamento per gli accertamenti inseriti.");
if (ndc.getBanca_uo() == null)
throw new it.cnr.jada.comp.ApplicationException("Specificare il conto d'appoggio per gli accertamenti inseriti.");
}
controllaQuadraturaAccertamenti(aUC, ndc);
}
controllaQuadraturaConti(aUC, fatturaPassiva);
// if ((fatturaPassiva.getStato_liquidazione()==null || fatturaPassiva.getStato_liquidazione().compareTo(Fattura_passiva_IBulk.LIQ)==0))
if (!fatturaPassiva.isGenerataDaCompenso())
controllaContabilizzazioneDiTutteLeRighe(aUC, fatturaPassiva);
else {
if (fatturaPassiva.getCompenso() == null)
throw new it.cnr.jada.comp.ApplicationException("Prima di salvare la fattura occorre generare il compenso!");
}
if (fatturaPassiva instanceof Fattura_passiva_IBulk) {
Rif_modalita_pagamentoBulk mod = null;
BancaBulk banca = null;
TerzoBulk terzo = null;
for (Iterator i = fatturaPassiva.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
Fattura_passiva_rigaBulk riga = (Fattura_passiva_rigaBulk) i.next();
if (riga.getCessionario() == null) {
if (mod != null && mod.getCd_modalita_pag().compareTo(riga.getModalita_pagamento().getCd_modalita_pag()) == 0 && terzo.getCd_terzo() == riga.getFornitore().getCd_terzo() && banca.getPg_banca().intValue() != riga.getBanca().getPg_banca().intValue()) {
throw new it.cnr.jada.comp.ApplicationException("Attenzione sono state indicate delle coordinate bancarie diverse sulle righe!");
} else {
mod = riga.getModalita_pagamento();
banca = riga.getBanca();
terzo = riga.getFornitore();
}
}
}
}
controllaQuadraturaIntrastat(aUC, fatturaPassiva);
controllaQuadraturaObbligazioni(aUC, fatturaPassiva);
controllaQuadraturaOrdini(aUC, fatturaPassiva);
}
use of it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk in project sigla-main by consiglionazionaledellericerche.
the class DocumentoGenericoComponent method findModalitaSelezionate.
// ^^@@
/**
* cerca i dati relativi alla modalità selezionata
* PreCondition:
* Viene cambiata la modalità di pagamento
* PostCondition:
* restituisce i dati relativi alla modalità selezionata
*/
// ^^@@
public Rif_modalita_pagamentoBulk findModalitaSelezionate(UserContext aUC, Documento_generico_rigaBulk documentoGenericoRiga) throws ComponentException, it.cnr.jada.persistency.PersistencyException, it.cnr.jada.persistency.IntrospectionException {
try {
String modalita;
it.cnr.jada.bulk.BulkHome home = getHome(aUC, Rif_modalita_pagamentoBulk.class);
it.cnr.jada.persistency.sql.SQLBuilder sql = home.createSQLBuilder();
if (documentoGenericoRiga.getDocumento_generico().getTi_entrate_spese() == Documento_genericoBulk.SPESE)
modalita = documentoGenericoRiga.getCd_modalita_pag();
else
modalita = documentoGenericoRiga.getCd_modalita_pag_uo_cds() != null ? documentoGenericoRiga.getCd_modalita_pag_uo_cds() : (documentoGenericoRiga.getModalita_pagamento_uo_cds() == null ? null : documentoGenericoRiga.getModalita_pagamento_uo_cds().getCd_modalita_pag());
sql.addClause("AND", "cd_modalita_pag", SQLBuilder.EQUALS, modalita);
it.cnr.jada.persistency.Broker broker = home.createBroker(sql);
if (!broker.next())
return null;
Rif_modalita_pagamentoBulk modalitaBulk = (Rif_modalita_pagamentoBulk) broker.fetch(Rif_modalita_pagamentoBulk.class);
broker.close();
return modalitaBulk;
} catch (it.cnr.jada.persistency.PersistencyException e) {
throw handleException(e);
}
}
use of it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk in project sigla-main by consiglionazionaledellericerche.
the class FatturaElettronicaPassivaComponent method completaDocumento.
@SuppressWarnings("unchecked")
public void completaDocumento(UserContext usercontext, DocumentoEleTrasmissioneBulk documentoEleTrasmissioneBulk) throws ComponentException {
try {
AnagraficoHome anagraficoHome = (AnagraficoHome) getHome(usercontext, AnagraficoBulk.class);
TerzoHome terzoHome = (TerzoHome) getHome(usercontext, TerzoBulk.class);
Rif_modalita_pagamentoHome rifModPagHome = (Rif_modalita_pagamentoHome) getHome(usercontext, Rif_modalita_pagamentoBulk.class);
Modalita_pagamentoHome modPagHome = (Modalita_pagamentoHome) getHome(usercontext, Modalita_pagamentoBulk.class);
Voce_ivaHome voceIvaHome = (Voce_ivaHome) getHome(usercontext, Voce_ivaBulk.class);
List<String> anomalieTrasmissione = new ArrayList<String>();
SQLBuilder sql = terzoHome.createSQLBuilder();
sql.addClause(FindClause.AND, "codiceUnivocoUfficioIpa", SQLBuilder.EQUALS, documentoEleTrasmissioneBulk.getCodiceDestinatario());
sql.addSQLClause("AND", "DT_FINE_RAPPORTO", sql.ISNULL, null);
List<TerzoBulk> terzoUOS = terzoHome.fetchAll(sql);
if (terzoUOS != null && !terzoUOS.isEmpty()) {
documentoEleTrasmissioneBulk.setUnitaOrganizzativa(terzoUOS.get(0).getUnita_organizzativa());
documentoEleTrasmissioneBulk.setCommittente(terzoUOS.get(0));
} else {
TerzoBulk terzoEnte = terzoHome.findTerzoEnte();
documentoEleTrasmissioneBulk.setUnitaOrganizzativa(terzoEnte.getUnita_organizzativa());
documentoEleTrasmissioneBulk.setCommittente(terzoEnte);
}
/**
* Invio mail di notifica Ricezione
*/
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: <b>" + documentoEleTrasmissioneBulk.getIdCodice() + "</b><br>" + "Prestatore: " + documentoEleTrasmissioneBulk.getDenominzionePrestatore() + "<br>" + "Il documento è presente nell'area temporanea di SIGLA.";
String addressTO = null;
Utente_indirizzi_mailHome utente_indirizzi_mailHome = (Utente_indirizzi_mailHome) getHome(usercontext, Utente_indirizzi_mailBulk.class);
for (java.util.Iterator<Utente_indirizzi_mailBulk> i = utente_indirizzi_mailHome.findUtenteNotificaRicezioneFatturaElettronica(documentoEleTrasmissioneBulk.getUnitaOrganizzativa()).iterator(); i.hasNext(); ) {
Utente_indirizzi_mailBulk utente_indirizzi = (Utente_indirizzi_mailBulk) i.next();
if (addressTO == null)
addressTO = new String();
else
addressTO = addressTO + ",";
addressTO = addressTO + utente_indirizzi.getIndirizzo_mail();
}
if (addressTO != null) {
SendMail.sendMail(subject, text, InternetAddress.parse(addressTO));
}
} catch (Exception _ex) {
}
if (documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() != null || documentoEleTrasmissioneBulk.getPrestatoreCodice() != null) {
final List<String> cigs = documentoEleTrasmissioneBulk.getDocEleTestataColl().stream().map(DocumentoEleTestataBulk::getDocEleAcquistoColl).flatMap(documentoEleAcquistoBulks -> documentoEleAcquistoBulks.stream()).map(DocumentoEleAcquistoBulk::getAcquistoCig).filter(s -> Optional.ofNullable(s).isPresent()).collect(Collectors.toList());
if (!cigs.isEmpty()) {
ContrattoHome contrattoHome = (ContrattoHome) getHome(usercontext, ContrattoBulk.class);
for (String cig : cigs) {
final Optional<ContrattoBulk> optionalContrattoBulk = contrattoHome.findByCIG(usercontext, cig).stream().findAny();
if (optionalContrattoBulk.isPresent()) {
final TerzoBulk figura_giuridica_esterna = optionalContrattoBulk.get().getFigura_giuridica_esterna();
if (Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale()).filter(s -> s.equalsIgnoreCase(Optional.ofNullable(figura_giuridica_esterna.getCodice_fiscale_anagrafico()).orElse(""))).isPresent() || (Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatoreCodice()).filter(s -> s.equalsIgnoreCase(Optional.ofNullable(figura_giuridica_esterna.getPartita_iva_anagrafico()).orElse(""))).isPresent() && !Optional.ofNullable(figura_giuridica_esterna).flatMap(terzoBulk -> Optional.ofNullable(terzoBulk.getAnagrafico())).flatMap(anagraficoBulk -> Optional.ofNullable(anagraficoBulk.getTi_entita_giuridica())).map(s -> s.equalsIgnoreCase(AnagraficoBulk.GIURIDICA)).orElse(Boolean.TRUE))) {
documentoEleTrasmissioneBulk.setPrestatore(figura_giuridica_esterna);
documentoEleTrasmissioneBulk.setPrestatoreAnag(figura_giuridica_esterna.getAnagrafico());
}
}
}
}
if (!Optional.ofNullable(documentoEleTrasmissioneBulk).flatMap(documentoEleTrasmissioneBulk1 -> Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatore())).flatMap(terzoBulk -> Optional.ofNullable(terzoBulk.getCd_terzo())).isPresent()) {
List<AnagraficoBulk> anagraficoBulks = null;
anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale(), documentoEleTrasmissioneBulk.getPrestatoreCodice());
if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
if (anagraficoBulks.size() == 1) {
AnagraficoBulk anag = anagraficoBulks.get(0);
documentoEleTrasmissioneBulk.setPrestatoreAnag(anag);
List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
documentoEleTrasmissioneBulk.setPrestatore(terzi.get(0));
}
} else {
anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getPrestatoreCodice());
}
}
}
if (documentoEleTrasmissioneBulk.getPrestatoreCodice() != null) {
List<AnagraficoBulk> list = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(null, documentoEleTrasmissioneBulk.getPrestatoreCodice());
if (list != null && list.size() == 1) {
AnagraficoBulk anagraficoBulk = list.get(0);
if (anagraficoBulk.isGruppoIVA()) {
documentoEleTrasmissioneBulk.setPrestatoreAnag(anagraficoBulk);
documentoEleTrasmissioneBulk.setPrestatore(null);
if (documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() != null) {
List<AnagraficoBulk> lista = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale(), null);
if (lista != null && lista.size() == 1) {
AnagraficoBulk anagraficoPerTerzo = lista.get(0);
if (documentoEleTrasmissioneBulk.getDataRicezione().compareTo(anagraficoBulk.getDt_canc()) <= 0 && documentoEleTrasmissioneBulk.getDataRicezione().compareTo(anagraficoBulk.getDtIniValGruppoIva()) > 0) {
List<TerzoBulk> listaTerzi = terzoHome.findTerzi(anagraficoPerTerzo);
if (listaTerzi.size() == 0) {
documentoEleTrasmissioneBulk.setPrestatore(listaTerzi.get(0));
}
}
}
}
}
}
}
}
if (documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale() != null || documentoEleTrasmissioneBulk.getRappresentanteCodice() != null) {
List<AnagraficoBulk> anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale(), documentoEleTrasmissioneBulk.getRappresentanteCodice());
if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
if (anagraficoBulks.size() == 1) {
documentoEleTrasmissioneBulk.setRappresentanteAnag(anagraficoBulks.get(0));
List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
documentoEleTrasmissioneBulk.setRappresentante(terzi.get(0));
}
} else {
anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getRappresentanteCodice());
}
}
}
if (documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale() != null || documentoEleTrasmissioneBulk.getIntermediarioCodice() != null) {
List<AnagraficoBulk> anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale(), documentoEleTrasmissioneBulk.getIntermediarioCodice());
if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
if (anagraficoBulks.size() == 1) {
documentoEleTrasmissioneBulk.setIntermediarioAnag(anagraficoBulks.get(0));
List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
documentoEleTrasmissioneBulk.setIntermediario(terzi.get(0));
}
} else {
anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getIntermediarioCodice());
}
}
}
if (!anomalieTrasmissione.isEmpty())
documentoEleTrasmissioneBulk.setAnomalieRicezione(StringUtils.join(anomalieTrasmissione.toArray(), " - "));
for (DocumentoEleTestataBulk docTestata : documentoEleTrasmissioneBulk.getDocEleTestataColl()) {
List<String> anomalieTestata = new ArrayList<String>();
if (docTestata.getBeneficiarioModPag() != null) {
SQLBuilder sqlRifModPag = rifModPagHome.createSQLBuilder();
sqlRifModPag.addClause(FindClause.AND, "tipoPagamentoSdi", SQLBuilder.EQUALS, docTestata.getBeneficiarioModPag());
List<Rif_modalita_pagamentoBulk> rifModPags = rifModPagHome.fetchAll(sqlRifModPag);
boolean trovataModPag = Boolean.FALSE;
for (Rif_modalita_pagamentoBulk rif_modalita_pagamentoBulk : rifModPags) {
Modalita_pagamentoBulk modalitaPagamento = (Modalita_pagamentoBulk) modPagHome.findByPrimaryKey(new Modalita_pagamentoBulk(rif_modalita_pagamentoBulk.getCd_modalita_pag(), docTestata.getDocumentoEleTrasmissione().getPrestatoreCdTerzo()));
if (modalitaPagamento != null) {
trovataModPag = Boolean.TRUE;
docTestata.setModalitaPagamento(modalitaPagamento);
break;
}
}
if (!trovataModPag) {
anomalieTestata.add("Modalità di pagamento non trovata");
}
}
if (!anomalieTestata.isEmpty())
docTestata.setAnomalie(StringUtils.join(anomalieTestata.toArray(), " - "));
docTestata.setStatoDocumento(StatoDocumentoEleEnum.AGGIORNATO.name());
docTestata.setToBeUpdated();
for (DocumentoEleIvaBulk documentoEleIvaBulk : docTestata.getDocEleIVAColl()) {
List<String> anomalieIVA = new ArrayList<String>();
SQLBuilder sqlVoceIva = voceIvaHome.createSQLBuilder();
sqlVoceIva.addClause(FindClause.AND, "percentuale", SQLBuilder.EQUALS, documentoEleIvaBulk.getAliquotaIva());
sqlVoceIva.addSQLClause(FindClause.AND, "NATURA_OPER_NON_IMP_SDI", SQLBuilder.EQUALS, documentoEleIvaBulk.getNatura());
List<Voce_ivaBulk> results = voceIvaHome.fetchAll(sqlVoceIva);
if (results.isEmpty())
anomalieIVA.add("Codice Iva non trovato!");
if (results.size() > 1)
anomalieIVA.add("Esistonio piu codici Iva associabili alla riga!");
if (results.size() == 1)
documentoEleIvaBulk.setVoceIva(results.get(0));
if (!anomalieIVA.isEmpty())
documentoEleIvaBulk.setAnomalie(StringUtils.join(anomalieIVA.toArray(), " - "));
documentoEleIvaBulk.setToBeUpdated();
}
}
documentoEleTrasmissioneBulk.setToBeUpdated();
modificaConBulk(usercontext, documentoEleTrasmissioneBulk);
} catch (Throwable throwable) {
throw handleException(throwable);
}
}
Aggregations