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());
}
....
....
}