Fatturazione Elettronica

Moderator: Enrico Maria Giordano

solving
Posts: 56
Joined: Fri Jun 05, 2009 7:55 am
Location: Sicily ( ct ) - Italy

Re: Fatturazione Elettronica

Post 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
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post 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 ... tture/v1.2"]
cRiga += [xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"]
cRiga += [xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it ... tture/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

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...
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post by Silvio.Falconi »

ho letto sul forum che qualcuno sta usando questa funzione

hb_StrToUTF8 per i testi sul xml

sapete niente
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post 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

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 ?
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post 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 ?
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post 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
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post 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
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post 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 ?
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
solving
Posts: 56
Joined: Fri Jun 05, 2009 7:55 am
Location: Sicily ( ct ) - Italy

Re: Fatturazione Elettronica

Post by solving »

Patrizio
Posts: 90
Joined: Wed Nov 07, 2007 8:56 am
Location: Italy
Contact:

Re: Fatturazione Elettronica

Post 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. :)
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Fatturazione Elettronica

Post 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
Romeo
Posts: 328
Joined: Thu Jan 25, 2007 3:53 pm
Location: Milan (Italy)

Re: Fatturazione Elettronica

Post 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
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Fatturazione Elettronica

Post by Silvio.Falconi »

Ma perchè non le scarichi nell'area riservata "fatture e corrispettivi" dell'Agenzia delle Entrate ?
https://ivaservizi.agenziaentrate.gov.it/portale/
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
Romeo
Posts: 328
Joined: Thu Jan 25, 2007 3:53 pm
Location: Milan (Italy)

Re: Fatturazione Elettronica

Post by Romeo »

Ciao

Io vorrei prelevarle direttamente con FiveWIn/Harbour !

E' possibile secondo voi ?

Grazie
Post Reply