Skip to main content

Flusso CSV

Dettagli

Descrizione

Il servizio permette di caricare un file CSV, trasformare ognuna delle sue righe o gruppo di righe (RecordGroup) in un xml e di sottomettere quest'ultimo ad un flusso pre-esistente.

Per ogni flusso dovrà essere concordata la struttura del file CSV in modo da poter eseguirecreare il corretto mapping fra RecordGroup e xml.

Una volta generato l'xml, ogni RecordGroup seguirà le logicheregole per il flusso che è stato specificato in Extradata.

 

Attenzione

Al momento non è prevista la risottomissione.

Regole di SELFSENDstruttura relativedel allafile

fattura

L'unità occorrebase specificaredel uncsv campoè inuna extradatariga :chiamata 'aziendaDiRiferimento'.anche QuestoRecord. campoOgni riga deve contenere un header obbligatorio alla prima colonna (indice 0): il riferimentorecordType

anagrafico

è ItemIdpossibile dell'aziendaraggruppare più record, il gruppo assumerà il nome di riferimento e può essere un ufficio.RecordGroup

NelUn RecordGroup permette di raggruppare più linee del CSV al fine di utilizzarle per generare uno stesso xml. Sono utili nel caso si operivoglia comegenerare studioun essaxml saràcon necessariacampi ripetuti.(vedi esempio)

Headers obbligatori del record group:

    id : riferimento univoco per capireriga aall'interno qualedel aziendafile gestita(può dalloessere studioanche faun riferimentoprogressivo)
      senderId: id anagrafico di Agyo del mittente per la fatturariga CSV (compilare con valore specifico del flusso utilizzato)
        recipientId: id anagrafico di Agyo del destinatario per la riga CSV (compilare con valore specifico del flusso utilizzato)

        Questi campi obbligatori non hanno una posizione obbligatoria all'interno del file ma devono essere esplicitati in fase di condivisione del nuovo flusso che si sta caricando.definendo.

        In

        Come questo casotransmitter verrà verificatoutilizzato chequello vispecificato siaper unal'intero connessioneCSV.

        Il file deve essere costruito secondo le regole definite dalla RFC4180 (https://tools.ietf.org/html/rfc4180) senza specificare il nome degli headers.

        Il carattere di tiposeparazione VALIDATOè frarappresentato l'aziendadalla divirgola riferimento,

        le informazioni inserite nei campi extradata della richiesta webService saranno utilizzate per ogni documento estratto dal csv. Bisognerà creare quindi il transmitterIdfile per appurare che il transmitter abbia i diritti ad operare su tale azienda.

        L'azienda di riferimento coinciderà con il transmitterId nel caso si operi come azienda.

        In particolare se l'azienda di riferimento coincide con il cedente prestatore la fattura risulterà come attiva. In caso coincidesse con il cessionario risulterà passiva. Questa comparazione viene effettuata prendendotenendo in considerazione siaquesta la piva che il cf. in questo modo viene gestito anche il caso particolare dei gruppi IVA (piva presente in fattura ma non esistente su Agyo)cosa.

        Dati Invio

        SeFlowType l'azienda: di riferimento non viene specificata oppure se non coincide ne con il cedente ne con il cessionario la fattura verrà scartata.CSV

        I parametri transmitterIdsenderId e recipientId devono essere impostati con l'identificativo dell'azienda, o dello studio, che sta tendando l'invio. In caso uno dei parametri differisca si riceve un errore in fase di caricamento.

        SenderId e recipientId verrannoValori poi sovrascritti prendendoli dalla fattura,obbligatori in particolare in caso di fattura passiva il senderId viene impostato come facciamo per le fatture passive ricevute da SDI (se c'è CF, altrimenti Piva). E' fondamentale che il sender(per le attive) o il recipient (per le passive) siano su Agyo.

        In caso di scarto, SenderId e recipientId, e ownerId (Sender e recipient non sarebbero più necessari)  non vengono modificati e rimangono uguali al transmitterId  (per questioni di visibilità)  viene inoltre messo il flag di active: false (per permetterne la visibilità al transmitter su console [scelta Luca Veneziano 08/02/2019]).

        In caso di assegnazione l'ownerId viene ri-assegnato con l'itemId dell'azienda di riferimento. in questo modo la visibilità passa all'azienda di riferimento. Fintanto che vi sarà connessione fra i due, potrà vederla ancora anche il transmitter (quindi lo studio che l'ha inviata).

        Il metering assegnerà il consumo consapevole del fatto che la fattura è di tipo SELFSEND 

        Eventuali allegati non vengono mergiati nella fattura. (ci aspettiamo siano già allegati in quanto già in inviati a SDI)

        Check duplicati

        In caso venga trovato un duplicato la fattura verrà scartata[09].

        Il check duplicato avviene verificando:extraData:

        • DataDocumento
        flowType:  NumeroDocumentoflusso OwnerIdda (vieneutilizzare cercataper corrispondenzaogni frarecordGroup l'ownerIdall'interno salvatodel suCSV. dbogni recordGroup del conCSV l'aziendaè sottoposta allo stesso tipo di riferimento, l'ownerId se ufficio viene ANCHE valutato come se fosse solo azienda: ovvero senza -xxx) TipoDocumento ImportoTotaleDocumento se presente in entrambe le fatture che si stanno paragonando, oppure ImportoPagamento. se non è presente nessuna delle due la fattura si ritiene non duplicata (non credo sia possibile generare quest'ultimo caso) Cedente (check prima su IdFiscale iva e poi su CF) Cessionario  (check prima su IdFiscale iva e poi su CF)flusso.

        InAttenzione

        particolare

        Non primaè estraiamopossibile daavere dbCSV percon iall'interno primitipi 4di valoriflusso (OwnerId,differenti.

        data

         

        documento, numero documento, tipo documento) e successivamente valutiamo gli altri parametri

        Servizi

        Il checkpacchetto vienenecessario fattoper filtrandol'invio (nondipende considerando)dal leflusso fatturedichiarato nell'extraData 'flowtype'

        Flussi attualmente veicolabili

          IMPEXP

           

          Lettura stato di elaborazione del CSV

           

          Verrà fornita un api di lettura dedicata che mediante l'id fornito in statofase SCARTATO,di CARICATOcaricamento ofornirà RIFIUTATO.informazioni relative al processamento del file stesso, se il documento ha terminato l'esecuzione verrà restituito per ogni riga presente:

          Caso

          particolareIdRecordGroup di Passaggio Interno

          Si

          StatoRecordGroup verifica nel
          casodescrizione in cui  l'autofatturahubId (cedentepotrà eessere cessionarioutilizzato sonoper verificare lo stesso soggetto) e va registrata sia tra le fatture attive che tra quelle passive. Per gestire questo caso. nel momento in cui si genera un duplicato verrà verificata la coincidenza fra cedente e cessionario, se coincidono e la fattura duplicata è solo una verrà inserita una fattura passiva (la prima va automaticamente in attiva perchè viene prima fatto il check sul cedente). se le fatture duplicate sono invece 2 avverrà uno scarto per fattura duplicata[10].

          ATTENZIONE: Il check viene usando l'azienda di riferimento come parametro di ricerca perchè sarà quello che diventerà ownerIdstato del documento alsulle termineapi dellaattuali proceduradi lettura di fatturazione)

           

          Questo

          Motivi checkdi si applica anche al suo sotto-flusso IMPEXP e OCR

          Servizi

          Il transmitter necessitàscarto del pacchettoCSV ERICEVI

            Non hai specificagto il flowtype in extradata (ottenibilec'è tramiteil connessionecontrollo oma estenzione)in verità viene già bloccato un fase di upload) Flotype in extradata non supportato per il parsing del csv. Dimensione massima superata. Errore nel parsing del csv, csv malformato. Id duplicato all'interno del csv

            Rappresentazione degli stati (del flusso CSV(TODO)

             

            DCyD9BZ85T9uAD67-Drawing-Amedeo-Zitti-1585925593.png