如何向 Xero 添加发票?
Posted
技术标签:
【中文标题】如何向 Xero 添加发票?【英文标题】:How can I add an invoice to Xero? 【发布时间】:2018-11-09 21:50:35 【问题描述】:我设法添加了一个联系人,但是当我尝试添加发票时,我收到一条错误消息“发生验证异常”。对于导致此错误的原因,我将不胜感激。
private void button1_Click(object sender, EventArgs e)
try
/// first create an instance of the Xero API
var api = new Xero.Api.Example.Applications.Private.Core(false);
Contact newContact = new Contact();
newContact.Name = "Orac";
Invoice newInvoice = new Invoice();
newInvoice.Contact = new Contact();
newInvoice.Contact = newContact;
newInvoice.Date = System.DateTime.Now;
newInvoice.DueDate = System.DateTime.Now.AddMonths(1);
newInvoice.Status = Xero.Api.Core.Model.Status.InvoiceStatus.Authorised;
newInvoice.Type = Xero.Api.Core.Model.Types.InvoiceType.AccountsReceivable;
List<LineItem> lines = new List<LineItem>();
LineItem li = new LineItem();
li.LineAmount = Convert.ToDecimal("200.00");
li.Quantity = Convert.ToDecimal("1.0000");
li.ItemCode = "100";
li.Description = "Webdev inv test";
li.AccountCode = "200";
li.UnitAmount = Convert.ToDecimal("50.00");
lines.Add(li);
newInvoice.LineItems = lines;
// call the API to create the contact
api.Invoices.Create(newInvoice);
//api.Contacts.Create(newContact);
catch (Exception ex)
MessageBox.Show(ex.Message);
【问题讨论】:
【参考方案1】:保留创建请求的结果 - 例如
var result = api.Invoices.Create(newInvoice);
...并检查结果的错误和警告属性以确定您的请求有什么问题。
【讨论】:
为此,必须将 summariseErrors 设置为 false。默认情况下是这样。 var createdInvoice = api.Invoices.SummarizeErrors(false).Create(newInvoice); if (createdInvoice.ValidationStatus == Xero.Api.Core.Model.Status.ValidationStatus.Error) foreach (var message in createdInvoice.Errors) Console.WriteLine("验证错误:" + message.Message); 【参考方案2】:抛出的异常类型是 ValidationException。要么专门捕获该类型,要么强制转换捕获的泛型异常,然后检查 ValidationErrors 属性
【讨论】:
以上是关于如何向 Xero 添加发票?的主要内容,如果未能解决你的问题,请参考以下文章