Page 4 of 7

Re: Fatturazione Elettronica

PostPosted: Fri Dec 07, 2018 10:46 am
by solving
salve

per marco , la tua logica non fà una grinza , ma tu non sei un programmatore sogei :D :D

Controllo corretto calcolo del PrezzoTotale
codice errore 00423:
2.2.1.11 <PrezzoTotale> non calcolato secondo le regole definite nelle specifiche tecniche
BloccoDettaglioLinee = “/FatturaElettronica/FatturaElettronicaBody/DatiBeniServizi/DettaglioLinee”
PrezzoTotale = BloccoDettaglioLinee + “PrezzoTotale”
PrezzoUnitario = BloccoDettaglioLinee + “PrezzoUnitario”
Quantità = BloccoDettaglioLinee + “Quantita” (se non presente si considera pari a 1)
ScontoTot = sconto totale
MaggiorazioneTot = maggiorazione totale

Per ogni BloccoDettaglioLinee
IF ( PrezzoTotale != ( PrezzoUnitario ± MaggiorazioneTot o ScontoTot ) * Quantità )
E R R O R E (00423)
END-IF

Re: Fatturazione Elettronica

PostPosted: Fri Dec 07, 2018 11:17 am
by Silvio.Falconi
ho un problema nella testata

* --------------------------------- testata
cRiga := [<p:FatturaElettronica versione="FPA12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"]
cRiga += [xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"]
cRiga += [xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"]
cRiga += [xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 fatturaordinaria_v1.2.xsd ">]
cRiga += CRLF
fWrite( nHandle, Space( 0 ) + cRiga )


dove sta l'errore ?
mi dice che manca lo spazio ma dove ?
Code: Select all  Expand view
Manca lo spazio obbligatorio. Errore durante l'elaborazione della risorsa "file:///C:/Work/Errori/fatturazioneElettronica/t...

<p:FatturaElettronica versione="FPA12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"xmlns:p="http://ivaservizi.agenziaent...

Re: Fatturazione Elettronica

PostPosted: Fri Dec 07, 2018 5:43 pm
by Silvio.Falconi
ho letto sul forum che qualcuno sta usando questa funzione

hb_StrToUTF8 per i testi sul xml

sapete niente

Re: Fatturazione Elettronica

PostPosted: Fri Dec 07, 2018 5:52 pm
by Silvio.Falconi
firma
voi come avete fatto
è autorizzata la firma in java
del tipo

logwrite( "java -jar " + fullcurdir() + "firma\firma.jar " + ::cFicheroOrigen + space(1) + ::cFicheroDestino + space( 1 ) + "Explorer 0" )
waitRun( "java -jar " + fullcurdir() + "firma\firma.jar " + ::cFicheroOrigen + space(1) + ::cFicheroDestino + space( 1 ) + "Explorer 0", 6 )

so ke lo usano in spagna ma forse per noi è diverso anch se ho trovato uno script dell'universita di bo
Code: Select all  Expand view
package chat;



import java.security.InvalidKeyException;

import java.security.NoSuchAlgorithmException;

import java.security.PrivateKey;

import java.security.PublicKey;

import java.security.Signature;

import java.security.SignatureException;



/**
 * Classe di utilità che semplifica l'uso della firma digitale
 * all'interno dei programmi Java.
 * <p>
 * E' sufficiente creare un'istanza di questa classe specificando
 * l'algoritmo crittografico desiderato, dopodiché <code>firma(...)</code>
 * e <code>firmaOk(...)</code> possono essere invocati in qualsiasi
 * successione ed un qualunque numero di volte per applicare l'operazione
 * voluta ai dati specificati di volta in volta.
 * <p>
 * Questa classe è idonea anche agli ambiti <i>multi-threading</i>.
 * <p>
 *
 * @author    <em>Marco Cimatti</em>
 * @version   1.0
 */

public class Firma {

  /** L'algoritmo del <code>java.security.Signature</code> da impiegare. */
  private String algoritmo;

  /**
   * Unico costruttore della classe.
   *
   * @param       algoritmo   il tipo di <code>Signature</code> da adottare internamente.
   * @exception   NoSuchAlgorithmException   se l'algoritmo specificato non è supportato.
   * @see         #algoritmo
   */

  public Firma(String algoritmo) throws NoSuchAlgorithmException {
    Signature.getInstance(this.algoritmo = algoritmo);
  }

  /**
   * Semplice <i>wrapper</i> che equivale a:
   * <p>
   * <code>firma(messaggio, 0, messaggio.length, chiave);</code>
   *
   * @see   #firma(byte[], int, int, java.security.PrivateKey)
   */

  public byte[] firma(byte[] messaggio, PrivateKey chiave) {
    return firma(messaggio, 0, messaggio.length, chiave);
  }

  /**
   * Creazione della firma di un messaggio.
   *
   * @param       messaggio          il testo da firmare.
   * @param       offset             l'offset del primo byte utile nel vettore <code>messaggio</code>.
   * @param       lun                la lunghezza del testo da firmare, considerato
   *                                 da <code>messaggio[offset]</code> (compreso) in poi.
   * @param       chiave             la chiave privata con cui firmare.
   * @exception   RuntimeException   se internamente viene generata una
   *                                 <code>NoSuchAlgorithmException</code>.
   * @return      la firma ottenuta dal (blocco appartenente a) <code>messaggio</code>;
   *              <code>null</code> in caso di <code>InvalidKeyException</code>
   *              oppure <code>SignatureException</code> interne.
   * @see         #firmaOk(byte[], byte[], java.security.PublicKey)
   * @see         #firmaOk(byte[], int, int, byte[], java.security.PublicKey)
   */

  public byte[] firma(byte[] messaggio, int offset, int lun, PrivateKey chiave) {
    try {
      Signature sign = Signature.getInstance(algoritmo);
      sign.initSign(chiave);
      sign.update(messaggio, offset, lun);
      return sign.sign();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        throw new RuntimeException("Ora l'algoritmo non è più supportato?");
      }
      catch (InvalidKeyException e) { e.printStackTrace(); }
      catch (SignatureException  e) { e.printStackTrace(); }
    return null;
  }

  /**
   * Semplice <i>wrapper</i> che equivale a:
   * <p>
   * <code>firmaOk(messaggio, 0, messaggio.length, firma, chiave);</code>
   *
   * @see   #firmaOk(byte[], int, int, byte[], java.security.PublicKey)
   */

  public boolean firmaOk(byte[] messaggio, byte[] firma, PublicKey chiave) {
    return firmaOk(messaggio, 0, messaggio.length, firma, chiave);
  }

  /**
   * Test di validità della firma di un messaggio.
   *
   * @param       messaggio          il testo da cui è stata ottenuta la firma.
   * @param       offset             l'offset del primo byte utile nel vettore <code>messaggio</code>.
   * @param       lun                la lunghezza del testo firmato, considerato
   *                                 da <code>messaggio[offset]</code> (compreso) in poi.
   * @param       firma              la firma associata al (blocco del) messaggio.
   * @param       chiave             la chiave pubblica con cui verifica la firma.
   * @exception   RuntimeException   se internamente viene generata una
   *                                 <code>NoSuchAlgorithmException</code>.
   * @return      <code>true</code> se la firma è valida, <code>false</code>
   *              altrimenti oppure in caso di <code>InvalidKeyException</code>
   *              o <code>SignatureException</code> interne.
   * @see         #firmaOk(byte[], byte[], java.security.PublicKey)
   */

  public boolean firmaOk(byte[] messaggio, int offset, int lun, byte[] firma, PublicKey chiave) {
    try {
      Signature sign = Signature.getInstance(algoritmo);
      sign.initVerify(chiave);
      sign.update(messaggio, offset, lun);
      return sign.verify(firma);
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        throw new RuntimeException("Ora l'algoritmo non è più supportato?");
      }
      catch (InvalidKeyException e) { e.printStackTrace(); }
      catch (SignatureException  e) { e.printStackTrace(); }
    return false;
  }
}


5 i metodi di invio
voi cosa avete usato ?

Re: Fatturazione Elettronica

PostPosted: Fri Dec 07, 2018 6:18 pm
by Silvio.Falconi
Ho capito che possiamo inviare :

1 Posta Elettronica Certificata (PEC)
2 Invio via web
3 Servizio SDICoop - Trasmissione
4 Servizio SDIFTP
5 Servizio SPCoop - Trasmissione

Per l'invio telematico n. 1
harbour ha gmail.prg sopporta la pec ?

Per l'invio telematico n. 2

ho visto che bisogna andare a questo indirizzo

https://ivaservizi.agenziaentrate.gov.it/portale/
ok
quindi inserire codice fiscale la password e il pin

ma come farlo da fwh in automatico ? e fare la trasmissione dopo l'eventale login ?

Re: Fatturazione Elettronica

PostPosted: Tue Dec 11, 2018 9:28 am
by Silvio.Falconi
Ragazzi ma perchè non uniamo le forse e creiamo una classe tutti insieme ?
Davvero non capisco perchè nessuno ha avuto l'idea prima
noi italiani ci facciamo guerra fra di noi e spesso non arriviamo da nessuno parte facendo in questo modo

Re: Fatturazione Elettronica

PostPosted: Tue Dec 11, 2018 1:16 pm
by Silvio.Falconi
Io ho iniziato a scrivere la classe TfatturaElettronica se mi volete aiutare siete i benvenuti

Prima beta

Image

L'ho fatta semplice:

oFatturaElettronica := TFatturaElettronica():New( oTree )
with object ( oFatturaElettronica )
:cFileXlm := cPatXml() + cNumero + ".xml"
:cFileTemp := cPatXml() + cNumeroTemp + ".xml" //per la stampa
:lPrivato :=.f. // PA
end with
oFatturaElettronica:Creafattura()

ovviamente sono agli inizi


uso un tree nella dialog per visualizzare in trace delle operazioni tipo debug
e quindi se non dovesse trovare un dato nell acreazione della fattura la classe inserisce l'errore
semplicemente ::oTree:Add( "Non esiste dato xxxx" ) quindi è visualizzabile all'utente finale

Re: Fatturazione Elettronica

PostPosted: Wed Dec 12, 2018 12:05 pm
by Silvio.Falconi
Una question

alla sezione 1.6 <SoggettoEmittente>

del file excel Rappresentazione_tabellare_del_tracciato_FatturaPA_versione_1.2.1.xls

basta <SoggettoEmittente>CC</SoggettoEmittente> ? //CC o TZ

ma allora perchè è in viola come le sezioni ?


poi il terzo intermediario è indispensabile ?

quali sezioni sono obbligatorie e quali no ?

Re: Fatturazione Elettronica

PostPosted: Wed Dec 12, 2018 2:56 pm
by solving

Re: Fatturazione Elettronica

PostPosted: Fri Jan 18, 2019 4:17 pm
by Patrizio
Come vanno gli sforzi per creare il file della fattura elettronica?

Per esperienza personale, il problema più grosso non è creare il file XML, quello sono una manciata di righe di codice. Il problema è farsi certificare dallo SDI come soggetto trasmittente, con tutte le richieste del caso.

Comunque, se avete bisogno, noi vendiamo un servizio di fatturazione elettronica centralizzato via WebService/FTP. :)

Re: Fatturazione Elettronica

PostPosted: Fri Jan 18, 2019 5:35 pm
by Enrico Maria Giordano
Patrizio wrote:Come vanno gli sforzi per creare il file della fattura elettronica?

Per esperienza personale, il problema più grosso non è creare il file XML, quello sono una manciata di righe di codice. Il problema è farsi certificare dallo SDI come soggetto trasmittente, con tutte le richieste del caso.


No, non ce n'è bisogno. Io trasmetto tranquillamente mettendo 0000000 come codice.

EMG

Re: Fatturazione Elettronica

PostPosted: Thu Jan 24, 2019 6:08 pm
by Romeo
Ciao,

C'e' qualcuno che mi può dare una dritta, su come (se si può) leggere la posta elettronica ?

Mi serve per 'provare' a leggere le mail (XML) delle fatture elettroniche dei fornitori.

Volevo cercare di fare qualcosa sulle fatture ricevute.

Qualche idea ?

Grazie

Re: Fatturazione Elettronica

PostPosted: Thu Jan 24, 2019 6:22 pm
by Silvio.Falconi
Ma perchè non le scarichi nell'area riservata "fatture e corrispettivi" dell'Agenzia delle Entrate ?
https://ivaservizi.agenziaentrate.gov.it/portale/

Re: Fatturazione Elettronica

PostPosted: Fri Jan 25, 2019 4:43 pm
by Romeo
Ciao

Io vorrei prelevarle direttamente con FiveWIn/Harbour !

E' possibile secondo voi ?

Grazie

Re: Fatturazione Elettronica

PostPosted: Fri Jan 25, 2019 5:42 pm
by Enrico Maria Giordano
Piacerebbe saperlo anche a me...

EMG