Files
2018-12-28 16:18:43 +01:00

1364 lines
46 KiB
C#

using SteamWare;
using System;
using System.Collections.Generic;
namespace SHERPA_SYNC
{
#region Anagrafica Clienti / Fornitori
/// <summary>
/// Struttura chiamata AnagraficaLista
/// </summary>
public class AnagraficaListaRequest
{
/// <summary>
/// UID API
/// </summary>
public string api_uid;
/// <summary>
/// Chaive API
/// </summary>
public string api_key;
/// <summary>
/// Filtro generico che restringe la ricerca ai soggetti che contengono questa stringa nei campi 'nome' o 'piva'
/// </summary>
public string filtro;
/// <summary>
/// Restringe la ricerca al soggetto con l'identificativo specificato
/// </summary>
public string id;
/// <summary>
/// Restringe la ricerca ai soggetti che contengono questa stringa nel campo 'nome'
/// </summary>
public string nome;
/// <summary>
/// Restringe la ricerca ai soggetti che contengono questa stringa nel campo 'cf'
/// </summary>
public string cf;
/// <summary>
/// Restringe la ricerca ai soggetti che contengono questa stringa nel campo 'piva'
/// </summary>
public string piva;
/// <summary>
/// Specifica il numero di pagina dei risultati(se non specificato vale 1)
/// </summary>
public string pagina;
}
/// <summary>
/// Struttura risposta chiamata AnagraficaLista
/// </summary>
public class AnagraficaListaResponse
{
public bool success;
public AnagCliFor[] lista_clienti;
public AnagCliFor[] lista_fornitori;
public int pagina_corrente;
public int numero_pagine;
}
/// <summary>
/// Struttura chiamata creazione nuovo cliente
/// </summary>
public class AnagraficaNuovoSingoloRequest
{
/// <summary>
/// UID API
/// </summary>
public string api_uid;
/// <summary>
/// Chaive API
/// </summary>
public string api_key;
/// <summary>
/// Nome o ragione sociale del cliente/fornitore
/// </summary>
public string nome;
/// <summary>
/// Nome referente,
/// </summary>
public string referente = "";
/// <summary>
/// Indirizzo del cliente
/// </summary>
public string indirizzo_via;
/// <summary>
/// CAP del cliente/fornitore
/// </summary>
public string indirizzo_cap;
/// <summary>
/// Città (comune) del cliente/fornitore,
/// </summary>
public string indirizzo_citta;
/// <summary>
/// Provincia del cliente/fornitore,
/// </summary>
public string indirizzo_provincia;
/// <summary>
/// Note extra sull'indirizzo,
/// </summary>
public string indirizzo_extra;
/// <summary>
/// Paese(nazionalità) del cliente/fornitore,
/// </summary>
public string paese = "Italia";
/// <summary>
/// [Solo se "paese" non è valorizzato] Codice ISO del paese(nazionalità) del cliente/fornitore(formato ISO alpha-2) in alternativa al parametro "paese",
/// </summary>
public string paese_iso = "IT";
/// <summary>
/// Indirizzo di posta elettronica,
/// </summary>
public string mail;
/// <summary>
/// Recapito telefonico,
/// </summary>
public string tel;
/// <summary>
/// Numero fax
/// </summary>
public string fax;
/// <summary>
/// Partita IVA cliente/fornitore; viene utilizzata per ricercare e collegare il cliente/fornitore in anagrafica se non specificato il parametro id_cliente/id_fornitore (in caso di doppioni viene collegato solo un soggetto),
/// </summary>
public string piva;
/// <summary>
/// Codice fiscale cliente/fornitore; viene utilizzato per ricercare e collegare il cliente/fornitore in anagrafica se non specificati i parametri id_cliente/id_fornitore e piva (in caso di doppioni viene collegato solo un soggetto)
/// </summary>
public string cf;
/// <summary>
/// [Solo clienti] Termini di pagamento predefiniti (giorni a partire dalla data del documento)
/// </summary>
public string termini_pagamento = "30";
/// <summary>
/// [Solo clienti] Indica se la scadenza del pagamento deve avvenire alla fine del mese (dopo i giorni specificati in 'termini_pagamento'),
/// </summary>
public bool pagamento_fine_mese = true;
/// <summary>
/// [Solo clienti] Codice IVA predefinito,
/// </summary>
public int cod_iva_default = 0;
/// <summary>
/// Informazioni extra sul cliente,
/// </summary>
public string extra;
/// <summary>
/// Indica se il cliente è una pubblica amministrazione,
/// </summary>
public bool PA = false;
/// <summary>
/// [Solo clienti con PA=true] Codice pubblica amministrazione
/// </summary>
public string PA_codice;
}
/// <summary>
/// Struttura risposta chiamata creazione nuovo cliente
/// </summary>
public class AnagraficaNuovoSingoloResponse
{
/// <summary>
/// Esito operazione
/// </summary>
public bool success;
/// <summary>
/// Identificativo del cliente o fornitore creato
/// </summary>
public int id;
}
/// <summary>
/// Dati anagrafici soggetto Cliente / Fornitore
/// </summary>
public class AnagCliFor
{
/// <summary>
/// : Identificativo univoco del cliente
/// </summary>
/// <param name=""></param>
/// <returns></returns>
public string id;
/// <summary>
/// UID API
/// </summary>
public string api_uid;
/// <summary>
/// Chaive API
/// </summary>
public string api_key;
/// <summary>
/// Nome o ragione sociale del cliente/fornitore
/// </summary>
public string nome = "Mario Rossi";
/// <summary>
/// Nome referente,
/// </summary>
public string referente = "";
/// <summary>
/// Indirizzo del cliente
/// </summary>
public string indirizzo_via;
/// <summary>
/// CAP del cliente/fornitore
/// </summary>
public string indirizzo_cap;
/// <summary>
/// Città (comune) del cliente/fornitore,
/// </summary>
public string indirizzo_citta;
/// <summary>
/// Provincia del cliente/fornitore,
/// </summary>
public string indirizzo_provincia;
/// <summary>
/// Note extra sull'indirizzo,
/// </summary>
public string indirizzo_extra;
/// <summary>
/// Paese(nazionalità) del cliente/fornitore,
/// </summary>
public string paese = "Italia";
/// <summary>
/// [Solo se "paese" non è valorizzato] Codice ISO del paese(nazionalità) del cliente/fornitore(formato ISO alpha-2) in alternativa al parametro "paese",
/// </summary>
public string paese_iso = "IT";
/// <summary>
/// Indirizzo di posta elettronica,
/// </summary>
public string mail = "info@mariorossi.it";
/// <summary>
/// Recapito telefonico,
/// </summary>
public string tel = "012345678";
/// <summary>
/// Numero fax
/// </summary>
public string fax = "012345678";
/// <summary>
/// Partita IVA cliente/fornitore; viene utilizzata per ricercare e collegare il cliente/fornitore in anagrafica se non specificato il parametro id_cliente/id_fornitore (in caso di doppioni viene collegato solo un soggetto),
/// </summary>
public string piva;
/// <summary>
/// Codice fiscale cliente/fornitore; viene utilizzato per ricercare e collegare il cliente/fornitore in anagrafica se non specificati i parametri id_cliente/id_fornitore e piva (in caso di doppioni viene collegato solo un soggetto)
/// </summary>
public string cf;
/// <summary>
/// [Solo clienti] Termini di pagamento predefiniti (giorni a partire dalla data del documento)
/// </summary>
public string termini_pagamento = "0";
/// <summary>
/// [Solo clienti] Indica se la scadenza del pagamento deve avvenire alla fine del mese (dopo i giorni specificati in 'termini_pagamento'),
/// </summary>
public bool pagamento_fine_mese = false;
/// <summary>
/// [Solo clienti] Codice IVA predefinito,
/// </summary>
public int cod_iva_default = 0;
/// <summary>
/// Informazioni extra sul cliente,
/// </summary>
public string extra = "";
/// <summary>
/// Indica se il cliente è una pubblica amministrazione,
/// </summary>
public bool PA = false;
/// <summary>
/// [Solo clienti con PA=true] Codice pubblica amministrazione
/// </summary>
public string PA_codice = "";
}
#endregion
#region Documenti
/// <summary>
/// Struttura chiamata creazione nuovo documento
/// </summary>
public class DocNuovoRequest
{
/// <summary>
/// UID API
/// </summary>
public string api_uid;
/// <summary>
/// Chaive API
/// </summary>
public string api_key;
/// <summary>
/// Identificativo univoco del cliente (serve per creare un collegamento tra il documento e un cliente in anagrafica;
/// se nullo, il documento non viene collegato a nessun cliente già esistente in anagrafica;
/// se mancante, viene fatto il collegamento con piva o cf) [solo con tipo!="ordforn"]
/// </summary>
public string id_cliente;
/// <summary>
/// Identificativo univoco del fornitore (serve per creare un collegamento tra il documento e un fornitore in anagrafica;
/// se nullo, il documento non viene collegato a nessun fornitore già esistente in anagrafica;
/// se mancante, viene fatto il collegamento con piva o cf) [solo con tipo="ordforn"]
/// </summary>
public string id_fornitore;
/// <summary>
/// Nome o ragione sociale del cliente/fornitore
/// </summary>
public string nome;
/// <summary>
/// Indirizzo del cliente
/// </summary>
public string indirizzo_via;
/// <summary>
/// CAP del cliente/fornitore
/// </summary>
public string indirizzo_cap;
/// <summary>
/// Città (comune) del cliente/fornitore,
/// </summary>
public string indirizzo_citta;
/// <summary>
/// Provincia del cliente/fornitore,
/// </summary>
public string indirizzo_provincia;
/// <summary>
/// Note extra sull'indirizzo,
/// </summary>
public string indirizzo_extra;
/// <summary>
/// Paese(nazionalità) del cliente/fornitore,
/// </summary>
public string paese = "Italia";
/// <summary>
/// [Solo se "paese" non è valorizzato] Codice ISO del paese(nazionalità) del cliente/fornitore(formato ISO alpha-2) in alternativa al parametro "paese",
/// </summary>
public string paese_iso = "IT";
/// <summary>
/// Lingua del documento (sigla) = ['it' o 'en' o 'de'],
/// </summary>
public string lingua = "it";
/// <summary>
/// Partita IVA cliente/fornitore; viene utilizzata per ricercare e collegare il cliente/fornitore in anagrafica se non specificato il parametro id_cliente/id_fornitore (in caso di doppioni viene collegato solo un soggetto),
/// </summary>
public string piva;
/// <summary>
/// Codice fiscale cliente/fornitore; viene utilizzato per ricercare e collegare il cliente/fornitore in anagrafica se non specificati i parametri id_cliente/id_fornitore e piva (in caso di doppioni viene collegato solo un soggetto)
/// </summary>
public string cf;
/// <summary>
/// Se "true", completa i dati anagrafici della fattura con quelli presenti nell'anagrafica cliente/fornitore (sovrascrivendo quelli presenti), effettuando la ricerca tramite i campi id_cliente/id_fornitore, piva e cf (in quest'ordine),
/// </summary>
public bool autocompila_anagrafica = true;
/// <summary>
/// Se "true", aggiorna l'anagrafica clienti/fornitori con i dati anagrafici della fattura: se il cliente/fornitore non esiste viene creato, mentre se il cliente/fornitore esiste già i dati vengono aggiornati; il cliente/fornitore viene ricercato tramite i campi id_cliente/id_fornitore, piva e cf (in quest'ordine),
/// </summary>
public bool salva_anagrafica = false;
/// <summary>
/// Numero (e serie) del documento;
/// se mancante viene utilizzato il successivo proposto per la serie principale;
/// se viene specificata solo la serie (stringa che inizia con un carattere non numerico) viene utilizzato il successivo per quella serie;
/// per i ddt agisce anche sul campo "ddt_numero" e non accetta una serie
/// </summary>
public string numero;
/// <summary>
/// Data di emissione del documento (per i ddt agisce anche sul campo "ddt_data"), formato dd/MM/yyyy
/// </summary>
public string data;
/// <summary>
/// Valuta del documento e degli importi indicati,
/// </summary>
public string valuta = "EUR";
/// <summary>
/// Tasso di cambio EUR/{valuta} [Se non specificato viene utilizzato il tasso di cambio odierno],
/// </summary>
public double valuta_cambio = 1;
/// <summary>
/// Specifica se i prezzi da utilizzare per il calcolo del totale documento sono quelli netti, oppure quello lordi (comprensivi di iva),
/// </summary>
public bool prezzi_ivati = false;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale rivalsa INPS,
/// </summary>
public double rivalsa = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale cassa previdenziale,
/// </summary>
public double cassa = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale ritenuta d'acconto,
/// </summary>
public double rit_acconto = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Imponibile della ritenuta d'acconto (percentuale sul totale),
/// </summary>
public double imponibile_ritenuta = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale altra ritenuta (ritenuta previdenziale, Enasarco etc.),
/// </summary>
public double rit_altra = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Valore della marca da bollo (0 se non presente),
/// </summary>
public double marca_bollo = 0;
/// <summary>
/// [Non presente in ddt] Oggetto mostrato sul documento (precedentemente "oggetto_fattura"),
/// </summary>
public string oggetto_visibile;
/// <summary>
/// [Non presente in ddt] Oggetto (per organizzazione interna),
/// </summary>
public string oggetto_interno;
/// <summary>
/// [Non presente in ddt e ordforn] Centro ricavo,
/// </summary>
public string centro_ricavo;
/// <summary>
/// [Solo in ordforn] Centro di costo,
/// </summary>
public string centro_costo;
/// <summary>
/// Note (in formato HTML),
/// </summary>
public string note;
/// <summary>
/// [Non presente in ddt] Nasconde o mostra la scadenza sul documento,
/// </summary>
public bool nascondi_scadenza;
/// <summary>
/// Non presente in ndc e ordforn] Indica la presenza di un DDT incluso nel documento (per i ddt è sempre true),
/// </summary>
public bool ddt;
/// <summary>
/// [Solo se tipo=fatture] Indica la presenza di una fattura accompagnatoria inclusa nel documento,
/// </summary>
public bool ftacc;
/// <summary>
/// [Solo se tipo!=ddt] Identificativo del template del documento [Se non specificato o inesistente, viene utilizzato quello di default],
/// </summary>
public string id_template;
/// <summary>
/// [Solo se ddt=true] Identificativo del template del ddt [Se non specificato o inesistente, viene utilizzato quello di default],
/// </summary>
public string ddt_id_template;
/// <summary>
/// [Solo se ftacc=true] Identificativo del template della fattura accompagnatoria [Se non specificato o inesistente, viene utilizzato quello di default],
/// </summary>
public string ftacc_id_template;
/// <summary>
/// [Non presente in ddt e ndc] Mostra o meno le informazioni sul metodo di pagamento sul documento,
/// </summary>
public bool mostra_info_pagamento = true;
/// <summary>
/// [Solo se mostra_info_pagamento=true] Nome del metodo di pagamento
/// </summary>
public string metodo_pagamento = "Bonifico";
/// <summary>
/// Titolo della riga del metodo di pagamento (N da 1 a 5),
/// </summary>
public string metodo_titolo1 = memLayer.ML.cdv("FIC_PagR1T");
/// <summary>
/// Descrizione della riga N del metodo di pagamento(N da 1 a 5)
/// </summary>
public string metodo_desc1 = memLayer.ML.cdv("FIC_PagR1D");
/// <summary>
/// [Solo per preventivi, rapporti e ordforn] Nasconde o mostra la scadenza sul documento = ['tutti' o 'netto' o 'nessuno'],
/// </summary>
public string mostra_totali = "tutti";
/// <summary>
/// [Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Paga con Paypal",
/// </summary>
public bool mostra_bottone_paypal = false;
/// <summary>
/// Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Paga con Bonifico Immediato",
/// </summary>
public bool mostra_bottone_bonifico = false;
/// <summary>
/// Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Notifica pagamento effettuato",
/// </summary>
public bool mostra_bottone_notifica = false;
/// <summary>
/// Lista degli articoli/righe del documento
/// </summary>
public List<DocNuovoArticolo> lista_articoli;
/// <summary>
/// [Non presente in preventivi, ddt e ordforn] Lista delle tranches di pagamento,
/// </summary>
public List<DocNuovoPagamento> lista_pagamenti;
/// <summary>
/// [Se ddt=true] Numero del ddt (se tipo="ddt" corrisponde al campo "numero") [Se non specificato viene autocompletato],
/// </summary>
public string ddt_numero = "";
/// <summary>
/// [Se ddt=true] Data del ddt Numero del ddt [Obbligatoria solo se e solo se il documento non è un ddt ma ddt=true],
/// </summary>
public string ddt_data;
/// <summary>
/// Se ddt/ftacc=true] Numero di colli specificato nel ddt,
/// </summary>
public string ddt_colli;
/// <summary>
/// [Se ddt/ftacc=true] Peso specificato nel ddt,
/// </summary>
public string ddt_peso;
/// <summary>
/// [Se ddt/ftacc=true] Causale specificata nel ddt,
/// </summary>
public string ddt_causale;
/// <summary>
/// [Se ddt/ftacc=true] Luogo di spedizione specificato nel ddt,
/// </summary>
public string ddt_luogo;
/// <summary>
/// [Se ddt/ftacc=true] Dati trasportatore specificati nel ddt,
/// </summary>
public string ddt_trasportatore;
/// <summary>
/// [Se ddt/ftacc=true] Annotazioni specificate nel ddt,
/// </summary>
public string ddt_annotazioni;
/// <summary>
/// [Solo per fatture e ndc elettroniche] Indica se il documento è nel formato FatturaPA;
/// se "true", vengono presi in considerazione tutti i successivi campi con prefisso "PA_", con eventuali eccezioni (se non valorizzati, vengono utilizzati i valori di default),
/// </summary>
public bool PA = false;
/// <summary>
/// [Solo se PA=true] Indica la tipologia del cliente: Pubblica Amministrazione ("PA") oppure privato ("B2B") = ['PA' o 'B2B'],
/// </summary>
public string PA_tipo_cliente = "PA";
/// <summary>
/// [Solo se PA=true] Tipo di documento a cui fa seguito la fattura/ndc in questione = ['ordine' o 'convenzione' o 'contratto' o 'nessuno'],
/// </summary>
public string PA_tipo = "nessuno";
/// <summary>
/// [Solo se PA=true] Numero del documento a cui fa seguito la fattura/ndc in questione,
/// </summary>
public string PA_numero = "";
/// <summary>
/// [Solo se PA=true] Data del documento a cui fa seguito la fattura/ndc in questione,
/// </summary>
public string PA_data;
/// <summary>
/// [Solo se PA_tipo_cliente=PA] Codice Unitario Progetto,
/// </summary>
public string PA_cup = "";
/// <summary>
/// [Solo se PA_tipo_cliente=PA] Codice Identificativo della Gara,
/// </summary>
public string PA_cig = "";
/// <summary>
/// [Solo se PA=true] Codice Ufficio della Pubblica Amministrazione o Codice Destinatario,
/// </summary>
public string PA_codice = "";
/// <summary>
/// [Solo se PA_tipo_cliente=B2B] Indirizzo PEC del destinatario, utilizzato in assenza di Codice Destinatario,
/// </summary>
public string PA_pec = "";
/// <summary>
/// [Solo se PA=true] Esigibilità IVA e modalità di versamento (I=immediata, D=differita, S=split payment, N=non specificata) = ['I' o 'D' o 'S' o 'N'],
/// </summary>
public string PA_esigibilita = "S";
/// <summary>
/// [Solo se PA=true] Modalità di pagamento (vedi tabella codifiche sulla documentazione ufficiale),
/// </summary>
public string PA_modalita_pagamento = "MP01";
/// <summary>
/// [Solo se PA=true] Nome dell'istituto di credito,
/// </summary>
public string PA_istituto_credito = "";
/// <summary>
/// [Solo se PA=true] Codice IBAN del conto corrente del beneficiario,
/// </summary>
public string PA_iban = "";
/// <summary>
/// [Solo se PA=true] Beneficiario del pagamento,
/// </summary>
public string PA_beneficiario = "";
/// <summary>
/// Informazioni anagrafiche aggiuntive da associare al cliente/fornitore [solo se salva_anagrafica=true],
/// </summary>
public List<extraAnagraficaIFC> extra_anagrafica;
/// <summary>
/// [Solo per fatture, ndc e proforma NON elettroniche] Specifica se il documento applica lo split payment
/// </summary>
public bool split_payment;
}
/// <summary>
/// Struttura risposta chiamata creazione nuovo documento
/// </summary>
public class DocNuovoResponse
{
/// <summary>
/// Esito operazione
/// </summary>
public bool success;
/// <summary>
/// Identificativo del documento creato
/// </summary>
public string new_id;
/// <summary>
/// Identificativo permanente del documento(rimane lo stesso anche a seguito di modiifche)
/// </summary>
public string token;
}
/// <summary>
/// Classe doc modificato (estende nuovo)
/// </summary>
public class DocModificaRequest : DocNuovoRequest
{
/// <summary>
/// TOken identificativo del documento esistente
/// </summary>
public string token;
}
/// <summary>
/// Classe nuovo Articolo /riga doc)
/// </summary>
public class DocNuovoArticolo
{
/// <summary>
/// Identificativo del prodotto(se nullo o mancante, la registrazione non viene collegata a nessun prodotto presente nell'elenco prodotti)
/// </summary>
public string id;
/// <summary>
/// Codice prodotto
/// </summary>
public string codice;
/// <summary>
/// Nome articolo
/// </summary>
public string nome;
/// <summary>
/// Unità di misura per il prodotto
/// </summary>
public string um;
/// <summary>
/// Quantità di prodotto
/// </summary>
public double quantita;
/// <summary>
/// Descrizione del prodotto
/// </summary>
public string descrizione;
/// <summary>
/// Categoria del prodotto (utilizzata per il piano dei conti),
/// </summary>
public string categoria;
/// <summary>
/// Prezzo unitario netto(IVA esclusa) [Obbligatorio se prezzi_netti!=true]
/// </summary>
public double prezzo_netto;
/// <summary>
/// Prezzo unitario lordo(comprensivo di IVA) [Obbligatorio se prezzi_ivati=true]
/// </summary>
public double prezzo_lordo;
/// <summary>
/// Codice aliquota IVA(ottenibili con il parametro "lista_iva" della funzione "/info/account")
/// </summary>
public int cod_iva;
/// <summary>
/// Indica se l'articolo è imponibile
/// </summary>
public bool tassabile;
/// <summary>
/// Sconto(percentuale)
/// </summary>
public double sconto;
/// <summary>
/// Indica se a questo articolo vengono applicate ritenute e contributi
/// </summary>
public bool applica_ra_contributi;
/// <summary>
/// Ordine dell'articolo nel documento (ordinamento ascendente da 0 in poi)
/// </summary>
public int ordine;
/// <summary>
/// Se vale 1, evidenzia in rosso l'eventuale sconto in fattura = ['0' o '1']
/// </summary>
public int sconto_rosso = 1;
/// <summary>
/// Indica se l'articolo è incluso nel ddt (se presente un ddt allegato, altrimenti non è significativo)
/// </summary>
public bool in_ddt;
/// <summary>
/// Indica se viene movimentato il magazzino(true: viene movimentato; false: non viene movimentato) [Non influente se il prodotto non è collegato all'elenco prodotti, oppure la funzionalità magazzino è disattivata]
/// </summary>
public bool magazzino;
}
/// <summary>
/// Oggetto pagamento FIC
/// </summary>
public class DocNuovoPagamento
{
/// <summary>
/// Data di scadenza del pagamento,
/// </summary>
public string data_scadenza;
/// <summary>
/// Importo del pagamento (se vale 0 la tranche di pagamento non viene inserita; se vale "auto" e la tranche è una sola viene completato automaticamente),
/// </summary>
public string importo = "auto";
/// <summary>
/// Medodo di pagamento = ['not' o 'rev' o il nome del conto] ('not' indica che non è stato saldato, 'rev' che è stato stornato; se non esiste un conto con il nome specificato viene creato un nuovo conto in FIC),
/// </summary>
public string metodo = "not";
/// <summary>
/// Data del saldo dell'importo indicato [Obbligatorio se metodo!="not"]
/// </summary>
public string data_saldo;
}
/// <summary>
/// Documento Fatture In Cloud (da serializzare)
/// </summary>
public class DocumentoFIC
{
/// <summary>
/// UID API
/// </summary>
public string api_uid;
/// <summary>
/// Chaive API
/// </summary>
public string api_key;
/// <summary>
/// Identificativo univoco del cliente (serve per creare un collegamento tra il documento e un cliente in anagrafica;
/// se nullo, il documento non viene collegato a nessun cliente già esistente in anagrafica;
/// se mancante, viene fatto il collegamento con piva o cf) [solo con tipo!="ordforn"]
/// </summary>
public string id_cliente;
/// <summary>
/// Identificativo univoco del fornitore (serve per creare un collegamento tra il documento e un fornitore in anagrafica;
/// se nullo, il documento non viene collegato a nessun fornitore già esistente in anagrafica;
/// se mancante, viene fatto il collegamento con piva o cf) [solo con tipo="ordforn"]
/// </summary>
public string id_fornitore;
/// <summary>
/// Nome o ragione sociale del cliente/fornitore
/// </summary>
public string nome;
/// <summary>
/// Indirizzo del cliente
/// </summary>
public string indirizzo_via;
/// <summary>
/// CAP del cliente/fornitore
/// </summary>
public string indirizzo_cap;
/// <summary>
/// Città (comune) del cliente/fornitore,
/// </summary>
public string indirizzo_citta;
/// <summary>
/// Provincia del cliente/fornitore,
/// </summary>
public string indirizzo_provincia;
/// <summary>
/// Note extra sull'indirizzo,
/// </summary>
public string indirizzo_extra;
/// <summary>
/// Paese(nazionalità) del cliente/fornitore,
/// </summary>
public string paese = "Italia";
/// <summary>
/// [Solo se "paese" non è valorizzato] Codice ISO del paese(nazionalità) del cliente/fornitore(formato ISO alpha-2) in alternativa al parametro "paese",
/// </summary>
public string paese_iso = "IT";
/// <summary>
/// Lingua del documento (sigla) = ['it' o 'en' o 'de'],
/// </summary>
public string lingua = "it";
/// <summary>
/// Partita IVA cliente/fornitore; viene utilizzata per ricercare e collegare il cliente/fornitore in anagrafica se non specificato il parametro id_cliente/id_fornitore (in caso di doppioni viene collegato solo un soggetto),
/// </summary>
public string piva;
/// <summary>
/// Codice fiscale cliente/fornitore; viene utilizzato per ricercare e collegare il cliente/fornitore in anagrafica se non specificati i parametri id_cliente/id_fornitore e piva (in caso di doppioni viene collegato solo un soggetto)
/// </summary>
public string cf;
/// <summary>
/// Se "true", completa i dati anagrafici della fattura con quelli presenti nell'anagrafica cliente/fornitore (sovrascrivendo quelli presenti), effettuando la ricerca tramite i campi id_cliente/id_fornitore, piva e cf (in quest'ordine),
/// </summary>
public bool autocompila_anagrafica;
/// <summary>
/// Se "true", aggiorna l'anagrafica clienti/fornitori con i dati anagrafici della fattura: se il cliente/fornitore non esiste viene creato, mentre se il cliente/fornitore esiste già i dati vengono aggiornati; il cliente/fornitore viene ricercato tramite i campi id_cliente/id_fornitore, piva e cf (in quest'ordine),
/// </summary>
public bool salva_anagrafica;
/// <summary>
/// Numero (e serie) del documento;
/// se mancante viene utilizzato il successivo proposto per la serie principale;
/// se viene specificata solo la serie (stringa che inizia con un carattere non numerico) viene utilizzato il successivo per quella serie;
/// per i ddt agisce anche sul campo "ddt_numero" e non accetta una serie
/// </summary>
public string numero;
/// <summary>
/// Data di emissione del documento (per i ddt agisce anche sul campo "ddt_data"), formato dd/MM/yyyy
/// </summary>
public string data = DateTime.Today.ToString("dd/MM/yyyy");
/// <summary>
/// Valuta del documento e degli importi indicati,
/// </summary>
public string valuta = "EUR";
/// <summary>
/// Tasso di cambio EUR/{valuta} [Se non specificato viene utilizzato il tasso di cambio odierno],
/// </summary>
public double valuta_cambio = 1;
/// <summary>
/// Specifica se i prezzi da utilizzare per il calcolo del totale documento sono quelli netti, oppure quello lordi (comprensivi di iva),
/// </summary>
public bool prezzi_ivati = false;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale rivalsa INPS,
/// </summary>
public double rivalsa = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale cassa previdenziale,
/// </summary>
public double cassa = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale ritenuta d'acconto,
/// </summary>
public double rit_acconto = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Imponibile della ritenuta d'acconto (percentuale sul totale),
/// </summary>
public double imponibile_ritenuta = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Percentuale altra ritenuta (ritenuta previdenziale, Enasarco etc.),
/// </summary>
public double rit_altra = 0;
/// <summary>
/// [Non presente in ddt e ordforn] Valore della marca da bollo (0 se non presente),
/// </summary>
public double marca_bollo = 0;
/// <summary>
/// [Non presente in ddt] Oggetto mostrato sul documento (precedentemente "oggetto_fattura"),
/// </summary>
public string oggetto_visibile = "";
/// <summary>
/// [Non presente in ddt] Oggetto (per organizzazione interna),
/// </summary>
public string oggetto_interno = "";
/// <summary>
/// [Non presente in ddt e ordforn] Centro ricavo,
/// </summary>
public string centro_ricavo = "";
/// <summary>
/// [Solo in ordforn] Centro di costo,
/// </summary>
public string centro_costo = "";
/// <summary>
/// Note (in formato HTML),
/// </summary>
public string note = "";
/// <summary>
/// [Non presente in ddt] Nasconde o mostra la scadenza sul documento,
/// </summary>
public bool nascondi_scadenza = false;
/// <summary>
/// Non presente in ndc e ordforn] Indica la presenza di un DDT incluso nel documento (per i ddt è sempre true),
/// </summary>
public bool ddt = false;
/// <summary>
/// [Solo se tipo=fatture] Indica la presenza di una fattura accompagnatoria inclusa nel documento,
/// </summary>
public bool ftacc = false;
/// <summary>
/// [Solo se tipo!=ddt] Identificativo del template del documento [Se non specificato o inesistente, viene utilizzato quello di default],
/// </summary>
public string id_template = "0";
/// <summary>
/// [Solo se ddt=true] Identificativo del template del ddt [Se non specificato o inesistente, viene utilizzato quello di default],
/// </summary>
public string ddt_id_template = "0";
/// <summary>
/// [Solo se ftacc=true] Identificativo del template della fattura accompagnatoria [Se non specificato o inesistente, viene utilizzato quello di default],
/// </summary>
public string ftacc_id_template = "0";
/// <summary>
/// [Non presente in ddt e ndc] Mostra o meno le informazioni sul metodo di pagamento sul documento,
/// </summary>
public bool mostra_info_pagamento = false;
/// <summary>
/// [Solo se mostra_info_pagamento=true] Nome del metodo di pagamento
/// </summary>
public string metodo_pagamento = "Bonifico";
/// <summary>
/// Titolo della riga del metodo di pagamento (N da 1 a 5),
/// </summary>
public string metodo_titolo1 = memLayer.ML.cdv("FIC_PagR1T");
/// <summary>
/// Descrizione della riga N del metodo di pagamento(N da 1 a 5)
/// </summary>
public string metodo_desc1 = memLayer.ML.cdv("FIC_PagR1D");
/// <summary>
/// [Solo per preventivi, rapporti e ordforn] Nasconde o mostra la scadenza sul documento = ['tutti' o 'netto' o 'nessuno'],
/// </summary>
public string mostra_totali = "tutti";
/// <summary>
/// [Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Paga con Paypal",
/// </summary>
public bool mostra_bottone_paypal = false;
/// <summary>
/// Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Paga con Bonifico Immediato",
/// </summary>
public bool mostra_bottone_bonifico = false;
/// <summary>
/// Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Notifica pagamento effettuato",
/// </summary>
public bool mostra_bottone_notifica = false;
/// <summary>
/// Lista degli articoli/righe del documento
/// </summary>
public List<DocNuovoArticolo> lista_articoli;
/// <summary>
/// [Non presente in preventivi, ddt e ordforn] Lista delle tranches di pagamento,
/// </summary>
public List<DocNuovoPagamento> lista_pagamenti;
/// <summary>
/// [Se ddt=true] Numero del ddt (se tipo="ddt" corrisponde al campo "numero") [Se non specificato viene autocompletato],
/// </summary>
public string ddt_numero = "";
/// <summary>
/// [Se ddt=true] Data del ddt Numero del ddt [Obbligatoria solo se e solo se il documento non è un ddt ma ddt=true],
/// </summary>
public string ddt_data = DateTime.Today.ToString("dd/MM/yyyy");
/// <summary>
/// Se ddt/ftacc=true] Numero di colli specificato nel ddt,
/// </summary>
public string ddt_colli = "";
/// <summary>
/// [Se ddt/ftacc=true] Peso specificato nel ddt,
/// </summary>
public string ddt_peso = "";
/// <summary>
/// [Se ddt/ftacc=true] Causale specificata nel ddt,
/// </summary>
public string ddt_causale = "";
/// <summary>
/// [Se ddt/ftacc=true] Luogo di spedizione specificato nel ddt,
/// </summary>
public string ddt_luogo = "";
/// <summary>
/// [Se ddt/ftacc=true] Dati trasportatore specificati nel ddt,
/// </summary>
public string ddt_trasportatore = "";
/// <summary>
/// [Se ddt/ftacc=true] Annotazioni specificate nel ddt,
/// </summary>
public string ddt_annotazioni = "";
/// <summary>
/// [Solo per fatture e ndc elettroniche] Indica se il documento è nel formato FatturaPA;
/// se "true", vengono presi in considerazione tutti i successivi campi con prefisso "PA_", con eventuali eccezioni (se non valorizzati, vengono utilizzati i valori di default),
/// </summary>
public bool PA = false;
/// <summary>
/// [Solo se PA=true] Indica la tipologia del cliente: Pubblica Amministrazione ("PA") oppure privato ("B2B") = ['PA' o 'B2B'],
/// </summary>
public string PA_tipo_cliente = "PA";
/// <summary>
/// [Solo se PA=true] Tipo di documento a cui fa seguito la fattura/ndc in questione = ['ordine' o 'convenzione' o 'contratto' o 'nessuno'],
/// </summary>
public string PA_tipo = "nessuno";
/// <summary>
/// [Solo se PA=true] Numero del documento a cui fa seguito la fattura/ndc in questione,
/// </summary>
public string PA_numero = "";
/// <summary>
/// [Solo se PA=true] Data del documento a cui fa seguito la fattura/ndc in questione,
/// </summary>
public string PA_data = DateTime.Today.ToString("dd/MM/yyyy");
/// <summary>
/// [Solo se PA_tipo_cliente=PA] Codice Unitario Progetto,
/// </summary>
public string PA_cup = "";
/// <summary>
/// [Solo se PA_tipo_cliente=PA] Codice Identificativo della Gara,
/// </summary>
public string PA_cig = "";
/// <summary>
/// [Solo se PA=true] Codice Ufficio della Pubblica Amministrazione o Codice Destinatario,
/// </summary>
public string PA_codice = "";
/// <summary>
/// [Solo se PA_tipo_cliente=B2B] Indirizzo PEC del destinatario, utilizzato in assenza di Codice Destinatario,
/// </summary>
public string PA_pec = "";
/// <summary>
/// [Solo se PA=true] Esigibilità IVA e modalità di versamento (I=immediata, D=differita, S=split payment, N=non specificata) = ['I' o 'D' o 'S' o 'N'],
/// </summary>
public string PA_esigibilita = "N";
/// <summary>
/// [Solo se PA=true] Modalità di pagamento (vedi tabella codifiche sulla documentazione ufficiale),
/// </summary>
public string PA_modalita_pagamento = "MP01";
/// <summary>
/// [Solo se PA=true] Nome dell'istituto di credito,
/// </summary>
public string PA_istituto_credito = "";
/// <summary>
/// [Solo se PA=true] Codice IBAN del conto corrente del beneficiario,
/// </summary>
public string PA_iban = "";
/// <summary>
/// [Solo se PA=true] Beneficiario del pagamento,
/// </summary>
public string PA_beneficiario = "";
/// <summary>
/// Informazioni anagrafiche aggiuntive da associare al cliente/fornitore [solo se salva_anagrafica=true],
/// </summary>
public List<extraAnagraficaIFC> extra_anagrafica;
/// <summary>
/// [Solo per fatture, ndc e proforma NON elettroniche] Specifica se il documento applica lo split payment
/// </summary>
public bool split_payment = true;
}
/// <summary>
/// Dati extra
/// </summary>
public class extraAnagraficaIFC
{
/// <summary>
/// Indirizzo di posta elettronica,
/// </summary>
public string mail = "info@mariorossi.it";
/// <summary>
/// Recapito telefonico,
/// </summary>
public string tel = "012345678";
/// <summary>
/// Numero fax
/// </summary>
public string fax = "012345678";
}
#endregion
}
#if false
{
"lista_iva": [
{
"cod_iva": "0",
"valore_iva": "22",
"descrizione_iva": "",
"id": 0
},
{
"cod_iva": "1",
"valore_iva": "21",
"descrizione_iva": "",
"id": 1
},
{
"cod_iva": "2",
"valore_iva": "20",
"descrizione_iva": "",
"id": 2
},
{
"cod_iva": "3",
"valore_iva": "10",
"descrizione_iva": "",
"id": 3
},
{
"cod_iva": "4",
"valore_iva": "4",
"descrizione_iva": "",
"id": 4
},
{
"cod_iva": "6",
"valore_iva": "0",
"descrizione_iva": "",
"id": 6
},
{
"cod_iva": "7",
"valore_iva": "0",
"descrizione_iva": "Regime dei minimi",
"id": 7
},
{
"cod_iva": "8",
"valore_iva": "0",
"descrizione_iva": "IVA Indetraibile",
"id": 8
},
{
"cod_iva": "9",
"valore_iva": "0",
"descrizione_iva": "Fuori campo IVA",
"id": 9
},
{
"cod_iva": "10",
"valore_iva": "0",
"descrizione_iva": "Oper. non soggetta, art.7 ter",
"id": 10
},
{
"cod_iva": "11",
"valore_iva": "0",
"descrizione_iva": "Inversione contabile, art.7 ter",
"id": 11
},
{
"cod_iva": "12",
"valore_iva": "0",
"descrizione_iva": "Non Imponibile",
"id": 12
},
{
"cod_iva": "13",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.8",
"id": 13
},
{
"cod_iva": "14",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.9 1C",
"id": 14
},
{
"cod_iva": "15",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.14 Legge 537/93",
"id": 15
},
{
"cod_iva": "16",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.41 D.P.R. 331/93",
"id": 16
},
{
"cod_iva": "17",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.72, D.P.R. 633/72",
"id": 17
},
{
"cod_iva": "18",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.74 quotidiani/libri",
"id": 18
},
{
"cod_iva": "19",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.10",
"id": 19
},
{
"cod_iva": "20",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.13 5C DPR 633/72",
"id": 20
},
{
"cod_iva": "21",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.15",
"id": 21
},
{
"cod_iva": "22",
"valore_iva": "0",
"descrizione_iva": "Rev. charge art.17",
"id": 22
},
{
"cod_iva": "23",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.74 ter D.P.R. 633/72",
"id": 23
},
{
"cod_iva": "24",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.10 comma 1",
"id": 24
},
{
"cod_iva": "25",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.10 comma 20",
"id": 25
},
{
"cod_iva": "26",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.9",
"id": 26
},
{
"cod_iva": "27",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.10 n.27 D.P.R 633/72",
"id": 27
},
{
"cod_iva": "29",
"valore_iva": "8",
"descrizione_iva": "",
"id": 29
},
{
"cod_iva": "30",
"valore_iva": "0",
"descrizione_iva": "Regime del margine art.36 41/95",
"id": 30
},
{
"cod_iva": "31",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.3 comma 4 D.P.R 633/72",
"id": 31
},
{
"cod_iva": "32",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.15/1c D.P.R 633/72",
"id": 32
},
{
"cod_iva": "33",
"valore_iva": "0",
"descrizione_iva": "Non imp. Art.8/c D.P.R. 633/72",
"id": 33
},
{
"cod_iva": "34",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.7 ter",
"id": 34
},
{
"cod_iva": "35",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.7 D.P.R 633/72",
"id": 35
},
{
"cod_iva": "36",
"valore_iva": "22",
"descrizione_iva": "Esigibilita differita Art. 6 comma 5 D.P.R 633/72",
"id": 36
},
{
"cod_iva": "37",
"valore_iva": "0",
"descrizione_iva": "Escluso Art.10 comma 9",
"id": 37
},
{
"cod_iva": "38",
"valore_iva": "0",
"descrizione_iva": "Non imp. Art.7 quater DPR 633/72",
"id": 38
},
{
"cod_iva": "39",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.8 comma 1A",
"id": 39
},
{
"cod_iva": "40",
"valore_iva": "23",
"descrizione_iva": "",
"id": 40
},
{
"cod_iva": "41",
"valore_iva": "24",
"descrizione_iva": "",
"id": 41
},
{
"cod_iva": "42",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.2 comma 4 D.P.R 633/72",
"id": 42
},
{
"cod_iva": "43",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.18 633/72",
"id": 43
},
{
"cod_iva": "44",
"valore_iva": "0",
"descrizione_iva": "Fuori Campo IVA Art.7 ter D.P.R 633/72",
"id": 44
},
{
"cod_iva": "45",
"valore_iva": "0",
"descrizione_iva": "Non Imp. Art.10 n.18 DPR 633/72",
"id": 45
},
{
"cod_iva": "46",
"valore_iva": "0",
"descrizione_iva": "Esente Art.10 DPR 633/72",
"id": 46
},
{
"cod_iva": "47",
"valore_iva": "0",
"descrizione_iva": "Non imp. art.1 L. 244/2008",
"id": 47
},
{
"cod_iva": "48",
"valore_iva": "0",
"descrizione_iva": "Non imp. art.40 D.L. 427/93",
"id": 48
},
{
"cod_iva": "49",
"valore_iva": "0",
"descrizione_iva": "Non imp. art.41 D.L. 427/93",
"id": 49
},
{
"cod_iva": "50",
"valore_iva": "0",
"descrizione_iva": "Non imp. art.71 DPR 633/72",
"id": 50
},
{
"cod_iva": "51",
"valore_iva": "0",
"descrizione_iva": "Non imp. art.8 DPR 633/72",
"id": 51
},
{
"cod_iva": "52",
"valore_iva": "0",
"descrizione_iva": "Non imp. art.9 DPR 633/72",
"id": 52
},
{
"cod_iva": "53",
"valore_iva": "0",
"descrizione_iva": "Regime minimi 2015",
"id": 53
},
{
"cod_iva": "54",
"valore_iva": "5",
"descrizione_iva": "",
"id": 54
}
],
"success": true
}
#endif