Как обновить статус до Оплачено и обновить Заплаченную сумму и Причитающуюся сумму в XERO, используя API - PHP - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь обновить Счет в XERO с помощью XERO-API. Я могу сохранить счет как «Черновик», который является непогашенной суммой, которую клиент должен заплатить. Когда оплата будет завершена, я хочу отправить запрос в Xero и изменить статус на «Оплачено»;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 ()» *

Как я могу отправить эту информацию и обновить ее.

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Номер моего счета-фактуры: 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

Надеюсь, это поможет другим в случае необходимости.

0 голосов
/ 15 октября 2019

Чтобы выставить счет Xero как оплаченный, вам необходимо создать платеж на соответствующую сумму с помощью конечной точки / payment. Как только сумма платежей по счету-фактуре совпадает с суммой счета-фактуры, она будет установлена ​​на оплаченный.

Документация по конечной точке / платежей находится здесь:

https://developer.xero.com/documentation/api/payments#PUT

... но, вероятно, она уже существует в используемом вами SDK. Обратите внимание, что для успешной оплаты вам необходимо выставить счет на авторизацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...