Vai al contenuto principale

RESTful API - Esempio crea fornitore

Esempio di codice da utilizzare per l'estrazione dei fornitori da un database e crearli in Contabilità in cloud

Scritto da Angela Spina

Nel codice di esempio, che si trova anche nei documenti in allegato, si effettua l'estrazione di una serie di fornitori da un ipotetico database e li crea in Reviso.

Per creare un fornitore è stata usata la RESTful API:

POST /suppliers

namespace Reviso.Example
{
public class RevisoSupplier
{
public string address { get; set; }
public string city { get; set; }
public string corporateIdentificationNumber { get; set; }
public string country { get; set; }
public string currency { get; set; }
public string email { get; set; }
public string name { get; set; }
public RevisoSupplier_PaymentTerms paymentTerms { get; set; }
public string phone { get; set; }
public RevisoSupplier_SupplierGroup supplierGroup { get; set; }
public int supplierNumber { get; set; }
public string vatNumber { get; set; }
public RevisoSupplier_VatZone vatZone { get; set; }
public string zip { get; set; }
}
public class RevisoSupplier_SupplierGroup
{
public int supplierGroupNumber { get; set; }
}
public class RevisoSupplier_PaymentTerms
{
public int paymentTermsNumber { get; set; }
}
public class RevisoSupplier_VatZone
{
public int vatZoneNumber { get; set; }
}
}
private RevisoExportLog CreateSupplier()
{
.....
.....
int i = 0;
//estrae i fornitori da creare su Reviso
XPQuery queryFornitore = new XPQuery(uow);
var fornitori = queryFornitore.ToList();

foreach (Fornitore itemFornitore in fornitori)
{
//creo una nuova registrazione contabile su Reviso
RevisoSupplier fornitore = new RevisoSupplier();

i++;
fornitore.supplierNumber = i;

RevisoSupplier_SupplierGroup supplierGroup = new
RevisoSupplier_SupplierGroup();
supplierGroup.supplierGroupNumber = 1; //Fornitori
nazionali fornitore.supplierGroup = supplierGroup;

RevisoSupplier_PaymentTerms paymentTerms = new RevisoSupplier_PaymentTerms();
paymentTerms.paymentTermsNumber = 9; //contanti
fornitore.paymentTerms = paymentTerms;

RevisoSupplier_VatZone vatZone = new RevisoSupplier_VatZone();
vatZone.vatZoneNumber = 1;
fornitore.vatZone = vatZone;

fornitore.address = NullToString(itemFornitore.Indirizzo);
fornitore.city = NullToString(itemFornitore.Località);
fornitore.corporateIdentificationNumber = NullToString(itemFornitore.CodiceFiscale);
fornitore.country = NullToString(itemFornitore.Nazione);
fornitore.currency = "EUR";
fornitore.email = NullToString(itemFornitore.Email);

fornitore.name = NullToString(itemFornitore.RagioneSociale);

if (NullToString(itemFornitore.Telefono).Length > 0)
fornitore.phone = NullToString(itemFornitore.Telefono);
else if (NullToString(itemFornitore.Cellulare).Length > 0)
fornitore.phone = NullToString(itemFornitore.Cellulare);
else if (NullToString(itemFornitore.Fax).Length > 0)
fornitore.phone = NullToString(itemFornitore.Fax);
else
fornitore.phone = String.Empty;

fornitore.vatNumber =
NullToString(itemFornitore.PartitaIva);
fornitore.zip = NullToString(itemFornitore.Cap);

//effettua il post della richiesta
var requestFornitore = new RestRequest("suppliers",
Method.POST);
requestFornitore.AddHeader("Content-Type",
"application/json");
requestFornitore.AddHeader("X-AppSecretToken",
Properties.Resources.RevisoAppSecretToken);
requestFornitore.AddHeader("X-AgreementGrantToken", token);

requestFornitore.AddJsonBody(fornitore);

IRestResponse restResponseFornitore =
restClient2.Execute(requestFornitore);

if (restResponseFornitore != null &&
restResponseFornitore.StatusCode == System.Net.HttpStatusCode.Created &&
restResponseFornitore.ErrorException == null)
log.AddEntry(LogEntryType.Fornitore, true,
fornitore.name, "Creazione completata con successo!");
else
{

if (restResponseFornitore != null &&
restResponseFornitore.ErrorException != null)
log.AddEntry(LogEntryType.Fornitore, false, fornitore.name, String.Concat("Creazione non completata. Errore: ",
restResponseFornitore.ErrorException));
else

log.AddEntry(LogEntryType.Fornitore, false,
fornitore.name, String.Concat("Creazione non completata. Messaggio del server: ", restResponseFornitore.Content.Replace(System.Environment.NewLine, " ")));
}

mapTable.AddSupplier(itemFornitore.Id,
fornitore.supplierNumber.ToString());
}
....
....
}
Hai ricevuto la risposta alla tua domanda?