我正在尝试使用XERO-API更新XERO中的发票。我可以将发票另存为“草稿”,这是客户要支付的未付款项。付款完成后,我想向Xero发送请求,并将状态更改为“ PAID”; amountDue ='$ 0.00'和AmountPaid ='$ XX.xx'。我无法更新此信息,并且正在使用PHP。对此也没有太多的讨论/研究。
$refXero = 'INV-123456';
$invoices = $xero->loadByGUID('Accounting\\Invoice', $refXero );
**//I am getting errors from here onwards:-**
$invoices->setAmountDue('0');
$invoices->setAmountPaid('50.00');
$invoices->setStatus('PAID');
$invoices->setDate('2019-10-15');
$invoices->save();
我遇到的错误是“调用未定义的方法XeroPHP \ Models \ Accounting \ Invoice :: setAmountDue()”
如何发送此信息并进行更新。
谢谢
答案 0 :(得分:0)
要将Xero发票作为PAID,您需要使用/ payments端点为相应的金额创建付款。发票的付款总额与发票的总额匹配后,它将被设置为PAID。
/ payments端点的文档在这里:
https://developer.xero.com/documentation/api/payments#PUT
...但是您使用的SDK中可能已经存在。请注意,您需要先将发票设置为AUTHORIZED,然后才能成功付款。
答案 1 :(得分:0)
我的发票参考号为: 97661-Z (保存在我的数据库和XERO中)
$currRefNumber = $request->input('update_payment_refNumber'); //**Z**
$refXero = $bookingID.'-'.$currRefNumber; //(**97661-Z**)
此发票编号97661-Z在XERO中另存为草稿。
因此,基本上,当发票另存为草稿时,首先需要将其更新为已授权,如下所示:-
$invoices = XeroPrivate::loadByGUID('Accounting\\Invoice', $refXero);
$invoices->setStatus(\XeroPHP\Models\Accounting\Invoice::INVOICE_STATUS_AUTHORISED);
$invoices->save();
上述内容会将发票状态从草稿更新为等待付款
现在获取帐户代码:-
$account = XeroPrivate::loadByGUID('Accounting\\Account', '880');
$dateInstance = new \DateTime();
$newPayment = new \XeroPHP\Models\Accounting\Payment();
$newPayment
->setInvoice($invoices)
->setAccount($account)
->setDate($dateInstance)
->setAmount(600)
->setIsReconciled(true)
->setReference('Payment Received');
XeroPrivate::save($newPayment);
现在,这将更改状态=付费,并更新信息 AccountDue = $ 0.00 和 AccountPaid = $ 600.00
我希望这会在需要时对其他人有所帮助。