Ошибка Xero API «У вас не может быть нескольких позиций с одним LineItemID». - PullRequest
0 голосов
/ 17 марта 2019

Я экспериментирую с XeroNet SDK и получаю такую ​​ошибку: «У вас не может быть нескольких позиций с одним LineItemID.»

Это код, который я использую:

var lineItems = new List<LineItem>();

var rnd = new Random();
var count = rnd.Next(1, 20);
var date = DateTime.UtcNow.AddDays(-rnd.Next(1, 600)).Date;

Console.WriteLine($"Adding {count} line items");
for (var i = 0; i < count; i++)
{
  lineItems.Add(new LineItem
  {
    Quantity = rnd.Next(1, 10),
    AccountCode = "200",
    Description = $"BLAH{i}",
    UnitAmount = (decimal)(rnd.NextDouble() * 100) + 1
  });
}
var invoice = new Invoice
{
  Contact = new Contact { Name = "Foo" },
  Type = Heads(rnd) ? InvoiceType.AccountsPayable : InvoiceType.AccountsReceivable,
  Date = date,
  DueDate = date.AddDays(90),
  LineAmountTypes = Heads(rnd) ? LineAmountType.Inclusive : LineAmountType.Exclusive,
  LineItems = lineItems
};

var response = private_app_api.Create(invoice);

Я уверен, что это что-то очевидное.

1 Ответ

0 голосов
/ 18 марта 2019

Я полагаю, что когда вы создаете свои LineItems, модель LineItem создается со значением GUID по умолчанию public Guid LineItemId { get; set; }, поэтому она дублируется

Вы сможете исправить это при создании экземпляра LineItem

lineItems.Add(new LineItem
            {
                LineItemId = Guid.NewGuid(),
                Quantity = rnd.Next(1, 10),
                AccountCode = "200",             
                Description = $"BLAH{i}",
                UnitAmount = (decimal)(rnd.NextDouble() * 100) + 1
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...