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
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
è 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:
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.
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 transmitterId, senderId 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
InAttenzione
Non primaè estraiamopossibile daavere dbCSV percon iall'interno primitipi 4di valoriflusso (OwnerId,differenti.
Servizi
Il checkpacchetto vienenecessario fattoper filtrandol'invio (nondipende considerando)dal leflusso fatturedichiarato nell'extraData 'flowtype'
Flussi attualmente veicolabili
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
Si
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
Rappresentazione degli stati (del flusso CSV(TODO)
