package it.acxent.fattele; import it.acxent.common.Parm; import it.acxent.common.StatusMsg; import it.acxent.db.ApplParmFull; import it.acxent.db.DBAdapter; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.sql.Date; import java.util.Calendar; import java.util.Hashtable; import java.util.Map; import javax.crypto.Cipher; import org.apache.commons.lang3.StringEscapeUtils; public class _FeXmlAdapter { private Cipher cipher = null; private X509Certificate certificate = null; private static final Hashtable xmlReplaceCodes = new Hashtable<>(); public static final String P_FELETT_PATH_FATTURE_REL = "FELETT_PATH_FATTURE_REL"; public static final String P_FELETT_TRASM_ID_PAESE = "FELETT_TRASM_ID_PAESE"; public static final String P_FELETT_TRASM_ID_CODICE = "FELETT_TRASM_ID_CODICE"; public static final String P_FELETT_TRASM_CONTATTO_TELEFONO = "FELETT_TRASM_CONTATTO_TELEFONO"; public static final String P_FELETT_TRASM_CONTATTO_EMAIL = "FELETT_TRASM_CONTATTO_EMAIL"; public static final String P_FELETT_CEDENTE_ID_PAESE = "FELETT_CEDENTE_ID_PAESE"; public static final String P_FELETT_CEDENTE_ID_CODICE = "FELETT_CEDENTE_ID_CODICE"; public static final String P_FELETT_CEDENTE_COD_FISC = "FELETT_CEDENTE_COD_FISC"; public static final String P_FELETT_CEDENTE_DENOMINAZIONE = "FELETT_CEDENTE_DENOMINAZIONE"; public static final String P_FELETT_CEDENTE_NOME = "FELETT_CEDENTE_NOME"; public static final String P_FELETT_CEDENTE_COGNOME = "FELETT_CEDENTE_COGNOME"; public static final String P_FELETT_CEDENTE_TITOLO = "FELETT_CEDENTE_TITOLO"; public static final String P_FELETT_XML_ESTERO_SI = "FELETT_XML_ESTERO_SI"; public static final String P_FELETT_CEDENTE_SEDE_INDIRIZZO = "FELETT_CEDENTE_SEDE_INDIRIZZO"; public static final String P_FELETT_CEDENTE_SEDE_NUM_CIV = "FELETT_CEDENTE_SEDE_NUM_CIV"; public static final String P_FELETT_CEDENTE_SEDE_CAP = "FELETT_CEDENTE_SEDE_CAP"; public static final String P_FELETT_CEDENTE_SEDE_COMUNE = "FELETT_CEDENTE_SEDE_COMUNE"; public static final String P_FELETT_CEDENTE_SEDE_PROV = "FELETT_CEDENTE_SEDE_PROV"; public static final String P_FELETT_CEDENTE_SEDE_NAZIONE = "FELETT_CEDENTE_SEDE_NAZIONE"; public static final String P_FELETT_CEDENTE_STAB_ORG_INDIRIZZO = "FELETT_CEDENTE_STAB_ORG_INDIRIZZO"; public static final String P_FELETT_CEDENTE_STAB_ORG_NUMERO_CIVICO = "FELETT_CEDENTE_STAB_ORG_NUMERO_CIVICO"; public static final String P_FELETT_CEDENTE_STAB_ORG_CAP = "FELETT_CEDENTE_STAB_ORG_CAP"; public static final String P_FELETT_CEDENTE_STAB_ORG_COMUNE = "FELETT_CEDENTE_STAB_ORG_COMUNE"; public static final String P_FELETT_CEDENTE_STAB_ORG_PROVINCIA = "FELETT_CEDENTE_STAB_ORG_PROVINCIA"; public static final String P_FELETT_CEDENTE_STAB_ORG_NAZIONE = "FELETT_CEDENTE_STAB_ORG_NAZIONE"; public static final String P_FELETT_CEDENTE_RAPP_FISC_ID_PAESE = "FELETT_CEDENTE_RAPP_FISC_ID_PAESE"; public static final String P_FELETT_CEDENTE_RAPP_FISC_ID_CODICE = "FELETT_CEDENTE_RAPP_FISC_ID_CODICE"; public static final String P_FELETT_CEDENTE_RAPP_FISC_COD_FISC = "FELETT_CEDENTE_RAPP_FISC_COD_FISC"; public static final String P_FELETT_CEDENTE_RAPP_FISC_DENOMINAZIONE = "FELETT_CEDENTE_RAPP_FISC_DENOMINAZIONE"; public static final String P_FELETT_CEDENTE_RAPP_FISC_NOME = "FELETT_CEDENTE_RAPP_FISC_NOME"; public static final String P_FELETT_CEDENTE_RAPP_FISC_COGNOME = "FELETT_CEDENTE_RAPP_FISC_COGNOME"; public static final String P_FELETT_CEDENTE_RAPP_FISC_TITOLO = "FELETT_CEDENTE_RAPP_FISC_TITOLO"; public static final String P_FELETT_CEDENTE_RAPP_FISC_COD_EORI = "FELETT_CEDENTE_RAPP_FISC_COD_EORI"; public static final String P_FELETT_CEDENTE_ISCR_REA_UFFICIO = "FELETT_CEDENTE_ISCR_REA_UFFICIO"; public static final String P_FELETT_CEDENTE_ISCR_REA_NUMERO_REA = "FELETT_CEDENTE_ISCR_REA_NUMERO_REA"; public static final String P_FELETT_CEDENTE_ISCR_REA_CAPITALE_SOCIALE = "FELETT_CEDENTE_ISCR_REA_CAPITALE_SOCIALE"; public static final String P_FELETT_CEDENTE_ISCR_REA_SOCIO_UNICO = "FELETT_CEDENTE_ISCR_REA_SOCIO_UNICO"; public static final String P_FELETT_CEDENTE_ISCR_REA_STATO_LIQUIDAZIONE = "FELETT_CEDENTE_ISCR_REA_STATO_LIQUIDAZIONE"; public static final String P_FELETT_CEDENTE_CONTATTI_TELEFONO = "FELETT_CEDENTE_CONTATTI_TELEFONO"; public static final String P_FELETT_CEDENTE_CONTATTI_EMAIL = "FELETT_CEDENTE_CONTATTI_EMAIL"; public static final String P_FELETT_CEDENTE_CONTATTI_FAX = "FELETT_CEDENTE_CONTATTI_FAX"; public static final String P_FELETT_CEDENTE_REGIME_FISCALE = "FELETT_CEDENTE_REGIME_FISCALE"; public static final String P_FELETT_INTERMEDIARIO_ID_PAESE = "FELETT_INTERMEDIARIO_ID_PAESE"; public static final String P_FELETT_INTERMEDIARIO_ID_CODICE = "FELETT_INTERMEDIARIO_ID_CODICE"; public static final String P_FELETT_INTERMEDIARIO_CODICE_FISCALE = "FELETT_INTERMEDIARIO_CODICE_FISCALE"; public static final String P_FELETT_INTERMEDIARIO_DENOMINAZIONE = "FELETT_INTERMEDIARIO_DENOMINAZIONE"; public static final String P_FELETT_INTERMEDIARIO_NOME = "FELETT_INTERMEDIARIO_NOME"; public static final String P_FELETT_INTERMEDIARIO_COGNOME = "FELETT_INTERMEDIARIO_COGNOME"; public static final String P_FELETT_INTERMEDIARIO_TITOLO = "FELETT_INTERMEDIARIO_TITOLO"; public static final String P_FELETT_INTERMEDIARIO_COD_EORI = "FELETT_INTERMEDIARIO_COD_EORI"; public static final String P_FELETT_INTERMEDIARIO_SOGGETTO_EMITTENTE = "FELETT_INTERMEDIARIO_SOGGETTO_EMITTENTE"; public static final String PARM_TS_TEST = "TS_TEST"; public static final String TS_TEST_ENDPOINT_DETTAGLIO_ERRORI = "https://invioSS730pTest.sanita.finanze.it/EsitoStatoInviiWEB/DettaglioErrori730Service"; public static final String TS_TEST_ENDPOINT_ESITO_INVIO = "https://invioSS730pTest.sanita.finanze.it/EsitoStatoInviiWEB/EsitoInvioDatiSpesa730Service"; public static final String TS_TEST_ENDPOINT_INVIO = "https://invioSS730pTest.sanita.finanze.it/InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort"; public static final String TS_TEST_ENDPOINT_RICEVUTE_PDF = "https://invioSS730pTest.sanita.finanze.it/Ricevute730ServiceWeb/ricevutePdf"; public static final String TS_ENDPOINT_DETTAGLIO_ERRORI = "https://invioSS730p.sanita.finanze.it/EsitoStatoInviiWEB/DettaglioErrori730Service"; public static final String TS_ENDPOINT_ESITO_INVIO = "https://invioSS730p.sanita.finanze.it/EsitoStatoInviiWEB/EsitoInvioDatiSpesa730Service"; public static final String TS_ENDPOINT_INVIO = "https://invioSS730p.sanita.finanze.it/InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort"; public static final String TS_ENDPOINT_RICEVUTE_PDF = "https://invioSS730p.sanita.finanze.it/Ricevute730ServiceWeb/ricevutePdf"; public static final String TS_TEST_PINCODE = "8672142422"; public static final String TS_TEST_USERNAME = "USZV5FMF"; public static final String TS_TEST_PASSWORD = "P17WAPFZ"; public static final String TS_TEST_CF_PROPRIETARIO = "CCSRMO77A09H501E"; public static final String TS_TEST_PIVA_PROPRIETARIO = "03213213210"; public static final String TS_TEST_COD_SSA = "888888"; public static final long TIPO_SOGGETTO_STRUTTURA = 0L; public static final long TIPO_SOGGETTO_MEDICO = 1L; public static final String ESITO_INVIO_PDF_SCARICABILE = "0"; public static final String ESITO_INVIO_PRESENTE_UN_INVIO = "0"; public static final String ESITO_INVIO_RISCONTRATO_ERRORE = "1"; private String pathToCerXsd; public static final String P_FELETT_CEDENTE_COD_EORI = "FELETT_CEDENTE_COD_EORI"; static { xmlReplaceCodes.put(Character.valueOf('à'), "a'"); xmlReplaceCodes.put(Character.valueOf('á'), "a'"); xmlReplaceCodes.put(Character.valueOf('è'), "e'"); xmlReplaceCodes.put(Character.valueOf('é'), "e'"); xmlReplaceCodes.put(Character.valueOf('ì'), "i'"); xmlReplaceCodes.put(Character.valueOf('ò'), "o'"); xmlReplaceCodes.put(Character.valueOf('ó'), "o'"); xmlReplaceCodes.put(Character.valueOf('ù'), "u'"); xmlReplaceCodes.put(Character.valueOf('ú'), "u'"); xmlReplaceCodes.put(Character.valueOf('–'), "-"); xmlReplaceCodes.put(Character.valueOf('“'), "\""); xmlReplaceCodes.put(Character.valueOf('”'), "\""); xmlReplaceCodes.put(Character.valueOf('•'), "*"); xmlReplaceCodes.put(Character.valueOf('€'), "Euro "); } private static final byte[] base64Chars = new byte[] { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 }; public static void main(String[] args) { System.exit(0); } public static long getDateDiff(Date date1, Date date2) { if (date1 != null && date2 != null) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(date1); if (date2 != null) c2.setTime(date2); c1.set(11, 0); c1.set(12, 0); c1.set(13, 0); c1.set(14, 0); c2.set(11, 0); c2.set(12, 0); c2.set(13, 0); c2.set(14, 0); long difInDays = (c2.getTime().getTime() - c1.getTime().getTime()) / 86400000L; return difInDays; } return 0L; } private Cipher getCipher() { if (this.cipher == null) try { this.cipher = Cipher.getInstance("RSA"); } catch (Exception e) { e.printStackTrace(); } return this.cipher; } private X509Certificate getCertificate() { if (this.certificate == null) try { System.out.println("getCertificate...."); File certFile = new File(getPathToCerXsd() + "cer/SanitelCF.cer"); FileInputStream fis = new FileInputStream(certFile); BufferedInputStream bis = new BufferedInputStream(fis); CertificateFactory cf = CertificateFactory.getInstance("X.509"); this.certificate = (X509Certificate)cf.generateCertificate(bis); } catch (Exception e) { e.printStackTrace(); } return this.certificate; } protected String cifraSsl(String laStringa) { try { boolean wrapText = false; String decoded = base64Encode(cifraSslByte(laStringa), wrapText); return decoded; } catch (Exception e) { e.printStackTrace(); return null; } } protected byte[] cifraSslByte(String laStringa) { try { getCipher().init(1, getCertificate()); this.cipher.update(laStringa.getBytes()); byte[] result = this.cipher.doFinal(); this.cipher = null; return result; } catch (Exception e) { e.printStackTrace(); return null; } } public static void initApplicationParms(ApplParmFull ap) { initApplicationParms(ap, ""); } public static void initApplicationParms(ApplParmFull ap, String parmSfx) { boolean debug = true; if (ap != null) { DBAdapter.logDebug(debug, "FeXml initParms:start"); String l_tipoParm = ""; Parm bean = new Parm(ap); l_tipoParm = "FELETT_MAIN" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_PATH_FATTURE_REL" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_PATH_FATTURE_REL" + parmSfx); bean.setDescrizione("FELETT_PATH_FATTURE_REL" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Path relativo a docbase in cui vengono salvati gli xml. Verra' create anche _zip per zip di n fatture xml"); if (bean.getTesto().isEmpty()) bean.setTesto("/_felett/"); bean.save(); bean.findByCodice("FELETT_XML_ESTERO_SI" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_XML_ESTERO_SI" + parmSfx); bean.setDescrizione("FELETT_XML_ESTERO_SI" + parmSfx); bean.setFlgTipo(5L); bean.setNota("Impostare a VERO se vogliamo creare il file XML anche per i clienti esteri"); bean.save(); l_tipoParm = "FELETT_TRASMITTENTE" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_TRASM_ID_PAESE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_TRASM_ID_PAESE" + parmSfx); bean.setDescrizione("FELETT_TRASM_ID_PAESE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Obbligatorio!! Codice del paese assegnante l’identifcativo fiscale al soggetto trasmittente.

Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code.

Composto da ID_PAESE e ID_CODICE. E' l’identificativo univoco del soggetto trasmittente; per i soggetti residenti in Italia, siano essi persone fisiche o giuridiche, corrisponde al codice fiscale preceduto da IT; per i soggetti non residenti corrisponde al numero identificativo IVA (dove i primi due caratteri rappresentano il paese secondo lo standard ISO 3166-1 alpha-2 code, ed i restanti, fino ad un massimo di 28, il codice vero e proprio)"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_TRASM_ID_CODICE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_TRASM_ID_CODICE" + parmSfx); bean.setDescrizione("FELETT_TRASM_ID_CODICE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Obbligatorio!! Numero di identificazione fiscale del trasmittente (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorita' del paese di residenza). In caso di IdPaese uguale a IT, il sistema ne verifica la presenza in Anagrafe Tributaria: se non esiste come codice fiscale, il file viene scartato con codice errore 00300.

Formato alfanumerico; lunghezza massima di 28 caratteri.

Composto da ID_PAESE e ID_CODICE. E' l’identificativo univoco del soggetto trasmittente; per i soggetti residenti in Italia, siano essi persone fisiche o giuridiche, corrisponde al codice fiscale preceduto da IT; per i soggetti non residenti corrisponde al numero identificativo IVA (dove i primi due caratteri rappresentano il paese secondo lo standard ISO 3166-1 alpha-2 code, ed i restanti, fino ad un massimo di 28, il codice vero e proprio)"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_TRASMITTENTE_CONTATTI" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_TRASM_CONTATTO_TELEFONO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_TRASM_CONTATTO_TELEFONO" + parmSfx); bean.setDescrizione("FELETT_TRASM_CONTATTO_TELEFONO" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati relativi ai contatti del trasmittente"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_TRASM_CONTATTO_EMAIL" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_TRASM_CONTATTO_EMAIL" + parmSfx); bean.setDescrizione("FELETT_TRASM_CONTATTO_EMAIL" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati relativi ai contatti del trasmittente"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_CEDENTE" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_CEDENTE_ID_PAESE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_ID_PAESE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_ID_PAESE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ( IT, DE, ES …..) ed i restanti (fino ad un massimo di 28) il codice vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_ID_CODICE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_ID_CODICE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_ID_CODICE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ( IT, DE, ES …..) ed i restanti (fino ad un massimo di 28) il codice vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_COD_FISC" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_COD_FISC" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_COD_FISC" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Numero di Codice Fiscale"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_DENOMINAZIONE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_DENOMINAZIONE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_DENOMINAZIONE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Ditta, denominazione o ragione sociale (ditta, impresa, società, ente), da valorizzare solo se non sono valorizzati gli elementi informativi 1.2.1.3.2 e 1.2.1.3.3 "); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_NOME" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_NOME" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_NOME" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Nome della persona fisica. Da valorizzare insieme all'elemento informativo 1.2.1.3.3 e solo se non è valorizzato l'elemento informativo 1.2.1.3.1 "); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_COGNOME" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_COGNOME" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_COGNOME" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Cognome della persona fisica. Da valorizzare insieme all'elemento informativo 1.2.1.3.2 e solo se non è valorizzato l'elemento informativo 1.2.1.3.1 "); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_TITOLO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_TITOLO" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_TITOLO" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Titolo onorifico"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_COD_EORI" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_COD_EORI" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_COD_EORI" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Numero del Codice EORI (Economic Operator Registration and Identification) in base al Regolamento (CE) n. 312 del 16 aprile 2009. In vigore dal 1 luglio 2009"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_CEDENTE_SEDE" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_CEDENTE_SEDE_INDIRIZZO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_SEDE_INDIRIZZO" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_SEDE_INDIRIZZO" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco contenente i dati della sede del cedente / prestatore. Si tratta della sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_SEDE_NUM_CIV" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_SEDE_NUM_CIV" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_SEDE_NUM_CIV" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco contenente i dati della sede del cedente / prestatore. Si tratta della sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_SEDE_CAP" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_SEDE_CAP" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_SEDE_CAP" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco contenente i dati della sede del cedente / prestatore. Si tratta della sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_SEDE_COMUNE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_SEDE_COMUNE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_SEDE_COMUNE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco contenente i dati della sede del cedente / prestatore. Si tratta della sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_SEDE_PROV" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_SEDE_PROV" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_SEDE_PROV" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco contenente i dati della sede del cedente / prestatore. Si tratta della sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_SEDE_NAZIONE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_SEDE_NAZIONE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_SEDE_NAZIONE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco contenente i dati della sede del cedente / prestatore. Si tratta della sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_CEDENTE_STAB_ORG" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_CEDENTE_STAB_ORG_INDIRIZZO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_STAB_ORG_INDIRIZZO" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_STAB_ORG_INDIRIZZO" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_STAB_ORG_NUMERO_CIVICO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_STAB_ORG_NUMERO_CIVICO" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_STAB_ORG_NUMERO_CIVICO" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_STAB_ORG_CAP" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_STAB_ORG_CAP" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_STAB_ORG_CAP" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_STAB_ORG_COMUNE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_STAB_ORG_COMUNE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_STAB_ORG_COMUNE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_STAB_ORG_PROVINCIA" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_STAB_ORG_PROVINCIA" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_STAB_ORG_PROVINCIA" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_STAB_ORG_NAZIONE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_STAB_ORG_NAZIONE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_STAB_ORG_NAZIONE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_CEDENTE_RAPP_FISC" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_CEDENTE_RAPP_FISC_ID_PAESE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_RAPP_FISC_ID_PAESE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_RAPP_FISC_ID_PAESE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi in cui il cedente / prestatore si avvalga di un rappresentante fiscale in Italia."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_RAPP_FISC_ID_CODICE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_RAPP_FISC_ID_CODICE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_RAPP_FISC_ID_CODICE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi in cui il cedente / prestatore si avvalga di un rappresentante fiscale in Italia."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_RAPP_FISC_COD_FISC" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_RAPP_FISC_COD_FISC" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_RAPP_FISC_COD_FISC" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Numero di Codice Fiscale"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_RAPP_FISC_DENOMINAZIONE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_RAPP_FISC_DENOMINAZIONE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_RAPP_FISC_DENOMINAZIONE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi in cui il cedente / prestatore si avvalga di un rappresentante fiscale in Italia."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_RAPP_FISC_NOME" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_RAPP_FISC_NOME" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_RAPP_FISC_NOME" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi in cui il cedente / prestatore si avvalga di un rappresentante fiscale in Italia."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_RAPP_FISC_COGNOME" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_RAPP_FISC_COGNOME" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_RAPP_FISC_COGNOME" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi in cui il cedente / prestatore si avvalga di un rappresentante fiscale in Italia."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_CEDENTE_ISCR_REA" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_CEDENTE_ISCR_REA_UFFICIO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_ISCR_REA_UFFICIO" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_ISCR_REA_UFFICIO" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_ISCR_REA_NUMERO_REA" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_ISCR_REA_NUMERO_REA" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_ISCR_REA_NUMERO_REA" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_ISCR_REA_CAPITALE_SOCIALE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_ISCR_REA_CAPITALE_SOCIALE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_ISCR_REA_CAPITALE_SOCIALE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_ISCR_REA_SOCIO_UNICO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_ISCR_REA_SOCIO_UNICO" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_ISCR_REA_SOCIO_UNICO" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_ISCR_REA_STATO_LIQUIDAZIONE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_ISCR_REA_STATO_LIQUIDAZIONE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_ISCR_REA_STATO_LIQUIDAZIONE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Blocco da valorizzare nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_CEDENTE_CONTATTI" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_CEDENTE_CONTATTI_TELEFONO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_CONTATTI_TELEFONO" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_CONTATTI_TELEFONO" + parmSfx); bean.setFlgTipo(0L); bean.setNota(null); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_CONTATTI_EMAIL" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_CONTATTI_EMAIL" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_CONTATTI_EMAIL" + parmSfx); bean.setFlgTipo(0L); bean.setNota(null); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_CEDENTE_CONTATTI_FAX" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_CONTATTI_FAX" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_CONTATTI_FAX" + parmSfx); bean.setFlgTipo(0L); bean.setNota(null); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_CEDENTE_REGIME_FISCALE" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_CEDENTE_REGIME_FISCALE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_CEDENTE_REGIME_FISCALE" + parmSfx); bean.setDescrizione("FELETT_CEDENTE_REGIME_FISCALE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("RF01 Ordinario
RF02 Contribuenti minimi (art.1, c.96-117, L. 244/07)
RF04 Agricoltura e attività connesse e pesca (artt.34 e 34-bis, DPR 633/72)
RF05 Vendita sali e tabacchi (art.74, c.1, DPR. 633/72)
RF06 Commercio fiammiferi (art.74, c.1, DPR 633/72)
RF07 Editoria (art.74, c.1, DPR 633/72)
RF08 Gestione servizi telefonia pubblica (art.74, c.1, DPR 633/72)
RF09 Rivendita documenti di trasporto pubblico e di sosta (art.74, c.1, DPR 633/72)
RF10 Intrattenimenti, giochi e altre attività di cui alla tariffa allegata al DPR 640/72 (art.74, c.6, DPR 633/72)
RF11 Agenzie viaggi e turismo (art.74-ter, DPR 633/72)
RF12 Agriturismo (art.5, c.2, L. 413/91)
RF13 Vendite a domicilio (art.25-bis, c.6, DPR 600/73)
RF14 Rivendita beni usati, oggetti d’arte, d’antiquariato o da collezione (art.36, DL 41/95)
RF15 Agenzie di vendite all’asta di oggetti d’arte, antiquariato o da collezione (art.40-bis, DL 41/95)
RF16 IVA per cassa P.A. (art.6, c.5, DPR 633/72)
RF17 IVA per cassa (art. 32-bis, DL 83/2012)
RF18 Altro
RF19 Regime forfettario (art.1, c.54-89, L. 190/2014) "); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); l_tipoParm = "FELETT_INTERMEDIARIO_SOGG_EMIT" + parmSfx; StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm); bean.findByCodice("FELETT_INTERMEDIARIO_ID_PAESE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_ID_PAESE" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_ID_PAESE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati relativi al soggetto terzo che emette fattura per conto del cedente / prestatore
Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ( IT, DE, ES …..) ed i restanti (fino ad un massimo di 28) il codice vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.
Codice della nazione espresso secondo lo standard ISO 3166-1 alpha-2 code"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_ID_CODICE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_ID_CODICE" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_ID_CODICE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati relativi al soggetto terzo che emette fattura per conto del cedente / prestatore
Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ( IT, DE, ES …..) ed i restanti (fino ad un massimo di 28) il codice vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.
Codice identificativo fiscale"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_CODICE_FISCALE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_CODICE_FISCALE" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_CODICE_FISCALE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati relativi al soggetto terzo che emette fattura per conto del cedente / prestatore
Numero di Codice Fiscale"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_DENOMINAZIONE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_DENOMINAZIONE" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_DENOMINAZIONE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati anagrafici identificativi del terzo intermediario
Ditta, denominazione o ragione sociale (ditta, impresa, società, ente), da valorizzare in alternativa agli elementi informativi 1.5.1.3.2 e 1.5.1.3.3 "); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_NOME" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_NOME" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_NOME" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati anagrafici identificativi del terzo intermediario
Nome della persona fisica. Da valorizzare insieme all'elemento informativo 1.5.1.3.3 ed in alternativa all'elemento informativo 1.5.1.3.1 "); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_COGNOME" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_COGNOME" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_COGNOME" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati anagrafici identificativi del terzo intermediario
Cognome della persona fisica. Da valorizzare insieme all'elemento informativo 1.5.1.3.2 ed in alternativa all'elemento informativo 1.5.1.3.1 "); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_TITOLO" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_CODICE_FISCALE" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_CODICE_FISCALE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati anagrafici identificativi del terzo intermediario
Titolo onorifico"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_COD_EORI" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_COD_EORI" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_COD_EORI" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati anagrafici identificativi del terzo intermediario
Numero del Codice EORI (Economic Operator Registration and Identification) in base al Regolamento (CE) n. 312 del 16 aprile 2009. In vigore dal 1 luglio 2009"); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); bean.findByCodice("FELETT_INTERMEDIARIO_SOGGETTO_EMITTENTE" + parmSfx); bean.setFlgAdmin(1L); bean.setTipoParm(l_tipoParm); bean.setCodice("FELETT_INTERMEDIARIO_SOGGETTO_EMITTENTE" + parmSfx); bean.setDescrizione("FELETT_INTERMEDIARIO_SOGGETTO_EMITTENTE" + parmSfx); bean.setFlgTipo(0L); bean.setNota("Dati relativi al soggetto terzo che emette fattura per conto del cedente / prestatore
Da valorizzare in tutti i casi in cui la fattura è emessa da un soggetto diverso dal cedente/prestatore; indica se la fattura è emessa dal cessionario/committente oppure da un terzo per conto del cedente/prestatore
valori ammessi:
[CC]: cessionario / committente
[TZ]: terzo."); if (bean.getTesto().isEmpty()) bean.setTesto(null); bean.save(); DBAdapter.logDebug(debug, "FeXml initParms: stop"); } } protected static String base64Encode(byte[] data, boolean wrap) { if (data == null) return null; byte[] encoded = new byte[(data.length + 2) / 3 * 4]; int iDest = 0; int iSrc; for (iSrc = 0; iSrc < data.length - 2; iSrc += 3) { encoded[iDest++] = (byte)(data[iSrc] >>> 2 & 0x3F); encoded[iDest++] = (byte)(data[iSrc + 1] >>> 4 & 0xF | data[iSrc] << 4 & 0x3F); encoded[iDest++] = (byte)(data[iSrc + 2] >>> 6 & 0x3 | data[iSrc + 1] << 2 & 0x3F); encoded[iDest++] = (byte)(data[iSrc + 2] & 0x3F); } if (iSrc < data.length) { encoded[iDest++] = (byte)(data[iSrc] >>> 2 & 0x3F); if (iSrc < data.length - 1) { encoded[iDest++] = (byte)(data[iSrc + 1] >>> 4 & 0xF | data[iSrc] << 4 & 0x3F); encoded[iDest++] = (byte)(data[iSrc + 1] << 2 & 0x3F); } else { encoded[iDest++] = (byte)(data[iSrc] << 4 & 0x3F); } } for (iSrc = 0; iSrc < iDest; iSrc++) encoded[iSrc] = base64Chars[encoded[iSrc]]; for (; iSrc < encoded.length; iSrc++) encoded[iSrc] = 61; if (!wrap) return new String(encoded); StringBuffer result = new StringBuffer(); int r; for (r = 0; r < iSrc / 76; r++) { result.append(new String(encoded, r * 76, 76)); result.append("\n"); } if (iSrc % 76 != 0) { result.append(new String(encoded, r * 76, iSrc - r * 76)); result.append("\n"); } return result.toString(); } public String getPathToCerXsd() { return this.pathToCerXsd; } public void setPathToCerXsd(String fileNameSanitelCer) { this.pathToCerXsd = fileNameSanitelCer; } public static final String convertStringToXmlString(String value, int maxLenght) { if (value != null) { sanitizeLatinString(value); if (maxLenght > 0 && value.length() > maxLenght) return value.substring(1, maxLenght); return value; } return ""; } private static final Map charReplacements = Map.ofEntries(Map.entry(Character.valueOf('‘'), Character.valueOf('\'')), Map.entry(Character.valueOf('’'), Character.valueOf('\'')), Map.entry(Character.valueOf('“'), Character.valueOf('"')), Map.entry(Character.valueOf('”'), Character.valueOf('"')), Map.entry(Character.valueOf('«'), Character.valueOf('"')), Map.entry(Character.valueOf('»'), Character.valueOf('"')), Map.entry(Character.valueOf('–'), Character.valueOf('-')), Map.entry(Character.valueOf('—'), Character.valueOf('-')), Map.entry(Character.valueOf('…'), Character.valueOf('.')), Map.entry(Character.valueOf('\u00A0'), Character.valueOf(' '))); public static String sanitizeLatinString(String input) { if (input == null) return null; StringBuilder sb = new StringBuilder(); for (char c : input.toCharArray()) { if (charReplacements.containsKey(Character.valueOf(c))) { sb.append(charReplacements.get(Character.valueOf(c))); } else if (isLatinAllowed(c)) { sb.append(c); } } return sb.toString(); } private static boolean isLatinAllowed(char c) { if (c >= ' ' && c <= '~') return true; if (c >= 'À' && c <= 'ÿ') return true; if (c == '€') return true; return false; } public static final String convertStringToXmlStringOld(String value, int maxLenght) { boolean debug = false; String ndosto = "convertStringToXmlString: "; if (value != null) try { String temp = StringEscapeUtils.escapeXml11(value); StringBuffer modifiedContent = new StringBuffer(); for (int i = 0; i < temp.length(); i++) { DBAdapter.logDebug(debug, ndosto + ndosto + "\n" + temp.charAt(i) + " rimpiazzato con " + ndosto); if (xmlReplaceCodes.containsKey(Character.valueOf(temp.charAt(i)))) { modifiedContent.append(xmlReplaceCodes.get(Character.valueOf(temp.charAt(i)))); } else { modifiedContent.append(temp.charAt(i)); } } String result = modifiedContent.toString(); if (maxLenght > 0 && result.length() > maxLenght) return result.substring(1, maxLenght); return result; } catch (Exception e) { if (maxLenght > 0 && value.length() > maxLenght) return value.substring(1, maxLenght); return value; } return ""; } }