0

使用 Xero.Api 进行 Xero 会计,我希望将费用从授权更新为付费。目前,我收到以下错误:

“状态更改无效。状态为‘授权’的费用报销,无法更新为状态‘已支付’”

这是否可以通过 API 完成,如果可以,那么最小的字段更改是多少?

非常感谢。

public static void SetExpensePaid(Xero.Api.Example.Applications.Private.Core api,List<Guid> guids)
    {
        var account = api.Accounts.Find();
        var bank = account.Where(x => x.Name == "Bank").FirstOrDefault();
        foreach (var g in guids)
        {
            var exp =api.ExpenseClaims.Find(g);
            var amount = exp.AmountDue;
            exp.AmountPaid = amount;
            exp.AmountDue = 0;
            exp.Status = Xero.Api.Core.Model.Status.ExpenseClaimStatus.Paid;
            Payment payment = new Payment()
            {
                Account = bank,
                BankAmount = (decimal?)amount,
                Date = DateTime.Today,
                IsReconciled = false,
                Amount = (decimal?)amount
            };
            api.Payments.Create(payment);

            exp.Payments.Add(payment);
            api.ExpenseClaims.Update(exp);
        }

    }
4

1 回答 1

2

对于其他想知道的人,设法得到 Xero 的回应......

通常,对于发票或贷方票据,您需要使用 Payments 端点向它们全额付款,以将其标记为已支付。

很遗憾,您目前无法通过 Xero API 支付费用报销。付款需要在 Xero 应用程序中完成。

https://developer.xero.com/documentation/api/expense-claims#POST

所以目前做不到。

于 2017-10-02T21:08:29.467 回答