730 precompilato + di uno snippet

  • Creatore Discussione Creatore Discussione marino51
  • Data di inizio Data di inizio
Ah, l'ho dovuto semplificare come dicevo allora
Codice:
$SoapClientParam = array
    (
    "location"       => "x",
    "login"          => $login,
    "password"       => $password,
    "authentication" => SOAP_AUTHENTICATION_BASIC,
    "trace"          => true,
    "exceptions"     => false,
    "stream_context" => stream_context_create(array
    (
        "ssl" => array
        (
            "verify_peer"          => FALSE,
            "verify_peer_name"     => FALSE,
            "capture_session_meta" => TRUE,
        ),
    )),
    );
 
Oggi mi sono accorto che è impossibile modificare o cancellare un documento sul sistemaTs. Dal mio SW ottenevo l'errore che vedete qui giù e pensavo fosse colpa mia. Poi sono entrato nel sito sistemaTs e neppure li sono inplementate le funzionii. Spero si decidano a farlo. Non voglio essere irriverente ma come lavorano questi?
 

Allegati

  • mio.PNG
    mio.PNG
    13,2 KB · Visite: 255
  • sogei.PNG
    sogei.PNG
    51,8 KB · Visite: 251
Ma se il cittadino si oppone io non la mando
ciao,
la risposta la trovi in FAQ quali sono i nuovi campi previsti dal dm19/10/2020,
hai terminato la lettura delle FAQ troppo presto

l'xml includesse il BOM di UTF-8 come numero fattura
hai salvato il file csv usando la codifica "utf-8 con bom",
"se salvi con nome" un file, con blocco note di vindows, guarda la "codifica" che precede il bottone "salva"
 
ciao,
la risposta la trovi in FAQ quali sono i nuovi campi previsti dal dm19/10/2020,
hai terminato la lettura delle FAQ troppo presto


hai salvato il file csv usando la codifica "utf-8 con bom",
"se salvi con nome" un file, con blocco note di vindows, guarda la "codifica" che precede il bottone "salva"
si probabilmente ho salvato da Excel come "CSV UTF-8 comma delimited" (mannaggia a me, ho perso 2 giorni per capirlo :rolleyes: )

Nel frattempo ho risolto anche gli altri problemi e ho spedito tutte le fatture. Grazie!
 
Buongiorno a tutti, ho modificato il mio tracciato con i nuovi campi obbligatori.
Quando invio il file, tramite wsdl, ottengo il seguente errore:

SoapFault Object ( [message:protected] => Error Fetching http headers [string:Exception:private] => [code:protected] => 0 [file:protected] => C:\dapp\lib\Dentalapp\CORPORATE\file_conf\Commerciale\script\sistema_ts\FattureInviaWsdl.php [line:protected] => 46 [trace:Exception:private] => Array (


qualcuno di voi si è già imbattuto in questa problematica?

Grazie
 
Buongiorno a tutti, ho modificato il mio tracciato con i nuovi campi obbligatori.
Quando invio il file, tramite wsdl, ottengo il seguente errore:

<code>
SoapFault Object ( [message:protected] => Error Fetching http headers [string:Exception:private] => [code:protected] => 0 [file:protected] => C:\dapp\lib\Dentalapp\CORPORATE\file_conf\Commerciale\script\sistema_ts\FattureInviaWsdl.php [line:protected] => 46 [trace:Exception:private] => Array (

</code>
qualcuno di voi si è già imbattuto in questa problematica?

Grazie
 
Buongiorno a tutti, ho modificato il mio tracciato con i nuovi campi obbligatori.
Quando invio il file, tramite wsdl, ottengo il seguente errore:

SoapFault Object ( [message:protected] => Error Fetching http headers [string:Exception:private] => [code:protected] => 0 [file:protected] => C:\dapp\lib\Dentalapp\CORPORATE\file_conf\Commerciale\script\sistema_ts\FattureInviaWsdl.php [line:protected] => 46 [trace:Exception:private] => Array (


qualcuno di voi si è già imbattuto in questa problematica?

Grazie
Io genero l'XML manualmente, ho preferito fare così proprio per avere un controllo sicuro su come verrà. Non so se il tuo problema faccia riferimento a questo ma dato che vedo un errore Object forse è li il problema
 
Ciao a tutte e a tutti, innanzi tutto grazie per i preziosi consigli che si trovano in questo thread.

La mia situazione è probabilmente più semplice delle vostre, devo caricare spese per un fisioterapista che ha già una applicazione in PHP+MySQL. In passato esportavo semplicemente le fatture estraendole con SELECT e poi usavo una variazione di un codice in python (leggendo dal mio file CSV invece che da un excel), un upload sincrono una spesa alla volta. Questo il repository da cui partivo: https://github.com/timendum/sistemats

Quest'anno però la situazione è cambiata e mi dicono che l'invio deve essere fatto mensilmente anziché annualmente, quindi

Ho scritto questa cosa qui: https://github.com/lavorareperilmale/s5ap (Sistema Sincrono Spesa Singola Soggetto Altri Professionisti), con l'idea di avere un cron job che manda una volta al mese, prima in test e il giorno dopo in prod, piu' o meno in questo modo:

PHP:
use lavorareperilmale\s5ap\Connettore;
// [...]

$connettore = new Connettore(); // Senza parametri per ambiente di test
// oppure per prod usare i propri dati:
// $connettore = new Connettore('Nome ut.','Password','Pin','CFProprietario','Piva');

foreach ($fatture as $fattura ) {
    // Assumendo che $fatture siano le fatture che si vogliono inviare
    $response = $connettore->invia(
                            $fattura->data_fattura,
                            $fattura->id_fattura,
                            $fattura->data_pagamento,
                            $fattura->cliente->codice_fiscale,
                            number_format($fattura->valore,2)
    );
    if ( is_soap_fault($response) ) {
        // Qualcosa e' andato storto. Si puo' stampare messaggio con:
        echo $response->getMessage(); // Vedi https://www.php.net/manual/en/class.soapfault.php
        die("Qualcosa e' andato storto");
    }

    if ( $response->esitoChiamata == 0 || $response->esitoChiamata == 2 ) {
        // Invio andato a buon fine, magari con warnings
        echo $response->protocollo;
        // io qui aggiorno il DB fatture con il protocollo
    } else {
        // Errore nell'invio: dump della risposta
        echo (serialize($response));
    }
// Alla fine invio una email in automatico con il riassunto.

Ho provato sia in test che in prod e "a me funziona", nel mio caso si parla di circa 50-100 fatture/mese. Posso entrare nei dettagli se vi interessa, ma il mio scopo principale era creare un'astrazione che mi consentisse di dimenticarmi della cifratura dei cf e dei pin e del formato dei tracciati (almeno fino alla prossima volta che cambia qualcosa).

Il codice e' fatto in poco tempo dopo il mio (altro) lavoro, quindi diciamo un po' alla
percio' se volete fare submit di qualche PR, you are welcome!

Ciao e grazie ancora,
LPM.
 
Ciao a tutte e a tutti, innanzi tutto grazie per i preziosi consigli che si trovano in questo thread.

La mia situazione è probabilmente più semplice delle vostre, devo caricare spese per un fisioterapista che ha già una applicazione in PHP+MySQL. In passato esportavo semplicemente le fatture estraendole con SELECT e poi usavo una variazione di un codice in python (leggendo dal mio file CSV invece che da un excel), un upload sincrono una spesa alla volta. Questo il repository da cui partivo: https://github.com/timendum/sistemats

Quest'anno però la situazione è cambiata e mi dicono che l'invio deve essere fatto mensilmente anziché annualmente, quindi

Ho scritto questa cosa qui: https://github.com/lavorareperilmale/s5ap (Sistema Sincrono Spesa Singola Soggetto Altri Professionisti), con l'idea di avere un cron job che manda una volta al mese, prima in test e il giorno dopo in prod, piu' o meno in questo modo:

PHP:
use lavorareperilmale\s5ap\Connettore;
// [...]

$connettore = new Connettore(); // Senza parametri per ambiente di test
// oppure per prod usare i propri dati:
// $connettore = new Connettore('Nome ut.','Password','Pin','CFProprietario','Piva');

foreach ($fatture as $fattura ) {
    // Assumendo che $fatture siano le fatture che si vogliono inviare
    $response = $connettore->invia(
                            $fattura->data_fattura,
                            $fattura->id_fattura,
                            $fattura->data_pagamento,
                            $fattura->cliente->codice_fiscale,
                            number_format($fattura->valore,2)
    );
    if ( is_soap_fault($response) ) {
        // Qualcosa e' andato storto. Si puo' stampare messaggio con:
        echo $response->getMessage(); // Vedi https://www.php.net/manual/en/class.soapfault.php
        die("Qualcosa e' andato storto");
    }

    if ( $response->esitoChiamata == 0 || $response->esitoChiamata == 2 ) {
        // Invio andato a buon fine, magari con warnings
        echo $response->protocollo;
        // io qui aggiorno il DB fatture con il protocollo
    } else {
        // Errore nell'invio: dump della risposta
        echo (serialize($response));
    }
// Alla fine invio una email in automatico con il riassunto.

Ho provato sia in test che in prod e "a me funziona", nel mio caso si parla di circa 50-100 fatture/mese. Posso entrare nei dettagli se vi interessa, ma il mio scopo principale era creare un'astrazione che mi consentisse di dimenticarmi della cifratura dei cf e dei pin e del formato dei tracciati (almeno fino alla prossima volta che cambia qualcosa).

Il codice e' fatto in poco tempo dopo il mio (altro) lavoro, quindi diciamo un po' alla
percio' se volete fare submit di qualche PR, you are welcome!

Ciao e grazie ancora,
LPM.

ciao lavorareperilmale, stavo utilizzando in una mia applicazione il tuo approccio perchè più simile alle mie esigenze e ti ringrazio anticipatamente per il contributo dato. Ricevo senza problemi il n° di protocollo dell'invio. Stavo inviando più fatture ciclando l'intero script e questa cosa mi piace poco. Potresti specificare come hai definito l'array di [$fatture] per inviare piu fatture insieme?
 
ciao lavorareperilmale, stavo utilizzando in una mia applicazione il tuo approccio perchè più simile alle mie esigenze e ti ringrazio anticipatamente per il contributo dato. Ricevo senza problemi il n° di protocollo dell'invio. Stavo inviando più fatture ciclando l'intero script e questa cosa mi piace poco. Potresti specificare come hai definito l'array di [$fatture] per inviare piu fatture insieme?

Ciao scusa ho visto solo ora il messaggio. Non sono sicuro di avere ben capito la domanda, ma nel mio caso $fatture e' una query di un modello Laravel, una cosa del tipo
PHP:
$fatture = Fatture::where(...)->where(...)->get()

Tu come ti connetti al DB? Anche se usassi mysqli, penso potresti fare una cosa di questo tipo, invece di foreach:
PHP:
while($obj = $result->fetch_object()) {
  $num_fattura = $obj->id; // (sostituisci a id il nome della colonna)
  $data_fattura = $obj->data_emissione // come sopra
  ...
  $response = $connettore->invia($data_fattura, $num_fattura...)
 
}
 
Ciao scusa ho visto solo ora il messaggio. Non sono sicuro di avere ben capito la domanda, ma nel mio caso $fatture e' una query di un modello Laravel, una cosa del tipo
PHP:
$fatture = Fatture::where(...)->where(...)->get()

Tu come ti connetti al DB? Anche se usassi mysqli, penso potresti fare una cosa di questo tipo, invece di foreach:
PHP:
while($obj = $result->fetch_object()) {
  $num_fattura = $obj->id; // (sostituisci a id il nome della colonna)
  $data_fattura = $obj->data_emissione // come sopra
  ...
  $response = $connettore->invia($data_fattura, $num_fattura...)

}

LavorareperilMale, si giusto, funziona benissimo, effettuo anche io un ciclo per scorrere i miei record. Io ho utilizzato il tuo codice senza Laravel però mi sono reso conto che in test, per inviare 100 fatture, impiega mediamente più di un minuto, per 1000 fatture ho impiegato circa 12 minuti però "almeno" il webservices non è andato in timeout.

Chiedo anche agli altri utenti, il tempo che impiegate con l'invio massivo è così alto?

LavorareperilMale, poi ho notato che utilizzi la natura dell'operazione settata a "N2.1". Non so se nel tuo caso specifico bisogna utilizzare questa dicitura ma la natura delle operazioni mediche esenti da iva è "N4" senza sotto codici (art. 10 n. 18 DPR 633/72) dagli un'occhiata.

Ti aggiorno sull'esito dell'implementazione delle ricevute utilizzando il tuo metodo.
 
Chiedo anche agli altri utenti, il tempo che impiegate con l'invio massivo è così alto?

LavorareperilMale, poi ho notato che utilizzi la natura dell'operazione settata a "N2.1". Non so se nel tuo caso specifico bisogna utilizzare questa dicitura ma la natura delle operazioni mediche esenti da iva è "N4" senza sotto codici (art. 10 n. 18 DPR 633/72) dagli un'occhiata.

Ti aggiorno sull'esito dell'implementazione delle ricevute utilizzando il tuo metodo.

Piu' o meno il tempo e' quello.
Non ho problemi di timeout perche' non lo faccio via web server ma da un comando in un cron.
Si' hai ragione sulla natura IVA, e' un pezzo rimasto da una vecchia fattura estero.
 
LavorareperilMale, poi ho notato che utilizzi la natura dell'operazione settata a "N2.1". Non so se nel tuo caso specifico bisogna utilizzare questa dicitura ma la natura delle operazioni mediche esenti da iva è "N4" senza sotto codici (art. 10 n. 18 DPR 633/72) dagli un'occhiata.

se fai pull della nuova versione ora ha N4 come default value.
 
Il servizio di cancellazione e variazione documenti è stato ripristinato sia in test che in produzione
 
Un caro saluto a tutti e grazie per avermi accettato.

Sto impazzendo anche io per far funzionare questi benedetti invii...ho letto tutta la discussione e le ho provate un po' tutte, ma non ne esco.

Sono riuscito a far funzionare l'invio, quantomeno, lo script mi diceva che il file era inviato, però la verifica diceva che le credenziale non erano corrette.

Esiste per caso una versione dello script funzionante con php7.2?

Poi non ho capito se le credenziali di test che si trovano nel kit di sviluppo possono essere usate così come forrnite oppure se vanno cifrate...grazie a tutti.

Aiutatemi!
 
Integro la situazione con due schermate: nella prima vedete l'invio che sembra corretto, nella seconda l'errore

Schermata 2021-01-12 alle 17.14.17.png


ECCO IL PROBLEMA

Schermata 2021-01-12 alle 17.14.46.png
 
Esiste per caso una versione dello script funzionante con php7.2?
io sono fermo alla versione 5.6, per quanto letto qui, mi sembra che non vi siano particolari difficoltà ad usare gli stessi script con versioni di php più recenti

Sono riuscito a far funzionare l'invio, quantomeno, lo script mi diceva che il file era inviato, però la verifica diceva che le credenziale non erano corrette.
le credenziali devono essere coerenti con i contenuti del file inviato,
nel kit trovi lo user id e password a cui sono associati una serie di valori tra cui il codice fiscale, la partita iva ed altro
certo che se usi uno specifico esempio, le credenziali sono quelle indicate nell'esempio ed i contenuti del file devono corrispondere agli altri elementi dell'esempio stesso

Poi non ho capito se le credenziali di test che si trovano nel kit di sviluppo possono essere usate così come forrnite oppure se vanno cifrate...
puoi vedere la documentazione inclusa nel kit,
in alcune situazioni sono usate in chiaro, in altre sono cifrate,
ma sono così dal 2016, primo anno di invio dei dati del 2015 e speriamo che nessuno si inventi di cambiare !

ciascuno script,

invio,
ricevuta,
esito,
dettaglio errori,
Interrogazione Puntuale Documenti,
Report Mensile Documenti,

utilizza le credenziali e i parametri addizionali che sono stati indicati nell'invio
per questo esiste uno script "credenziali.php" che contiene tutte queste informazioni
in modo da renderle disponibili (include) a ciascuno script che venga eseguito
 
io sono fermo alla versione 5.6, per quanto letto qui, mi sembra che non vi siano particolari difficoltà ad usare gli stessi script con versioni di php più recenti


le credenziali devono essere coerenti con i contenuti del file inviato,
nel kit trovi lo user id e password a cui sono associati una serie di valori tra cui il codice fiscale, la partita iva ed altro
certo che se usi uno specifico esempio, le credenziali sono quelle indicate nell'esempio ed i contenuti del file devono corrispondere agli altri elementi dell'esempio stesso


puoi vedere la documentazione inclusa nel kit,
in alcune situazioni sono usate in chiaro, in altre sono cifrate,
ma sono così dal 2016, primo anno di invio dei dati del 2015 e speriamo che nessuno si inventi di cambiare !

ciascuno script,

invio,
ricevuta,
esito,
dettaglio errori,
Interrogazione Puntuale Documenti,
Report Mensile Documenti,

utilizza le credenziali e i parametri addizionali che sono stati indicati nell'invio
per questo esiste uno script "credenziali.php" che contiene tutte queste informazioni
in modo da renderle disponibili (include) a ciascuno script che viene eseguito


Grazie, alla fine ho trovato il problema: sbagliavo l'endpoint per chiedere la ricevuta.

Mi confermi una cosa? Posso creare gli xml di decine di fatture e mandarli in una volta con un solo zip?
 

Discussioni simili