Xero API: updateOrCreateInvoices перезаписывает контактные данныеPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Xero API: updateOrCreateInvoices перезаписывает контактные данные

Сообщение Anonymous »

Я использую Xero Accounting API с PHP (OAuth2), в частности функцию updateOrCreateInvoices в Xero API для синхронизации транзакций. Однако я заметил, что каждый раз, когда я запускаю эту функцию, некоторые контактные данные обновляются или перезаписываются, особенно поле «дополнительные лица». Это поле очищается после процесса синхронизации.
Буду признателен за любую информацию или разъяснения о поведении функции updateOrCreateInvoices. Существует ли особый способ структурирования запроса для обеспечения целостности контактной информации? Мы будем очень признательны за любую помощь или предложения.
Используемая функция: updateOrCreateInvoices
Проблема: контактные данные, в частности поле «дополнительные лица», перезаписано или удалено.
Вот фрагмент кода, который я использую для синхронизации счетов.
public function create_or_update_invoice($xero_tenant_id, $api_instance, $invoice_list = array()){
$arr_invoices = array();
foreach ($invoice_list as $invoice) {
//Retrieve Existing Contact Details (using the getContacts function):
$contact = $this->get_contact_by_id($xero_tenant_id, $api_instance, $xero_contact_id, $contact_name);

//Prepare Invoice Data with Existing Contact & Invoice Details:
$new_invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$new_invoice->setType(XeroAPI\XeroPHP\Models\Accounting\Invoice::TYPE_ACCREC)
->setContact($contact)
...
...
->setStatus(XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_AUTHORISED);

$arr_invoices[] = $new_invoice;
}

$invoices = new XeroAPI\XeroPHP\Models\Accounting\Invoices;
$invoices->setInvoices($arr_invoices);

try{
//Update or Create Invoice:
$result = $api_instance->updateOrCreateInvoices($xero_tenant_id, $invoices);
return $result;
}catch(Exception $e){
return $e;
}
}

После вышеуказанных действий поле «дополнительные лица» в контактных данных очищается или перезаписывается.
Как ответил sallyhornet, у меня есть протестировано и подтверждено, что, отмечая только ContactID в счете, я могу синхронизировать счета с Xero, не перезаписывая контактные данные.
Обновленный фрагмент примера:
...
//Retrieve Existing Contact Details (using the getContacts function):
//original
//$contact = $this->get_contact_by_id($xero_tenant_id, $api_instance, $xero_contact_id, $contact_name);
//new
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID($xero_contact_id);

//Prepare Invoice Data with Existing Contact & Invoice Details:
$new_invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$new_invoice->setType(XeroAPI\XeroPHP\Models\Accounting\Invoice::TYPE_ACCREC)
->setContact($contact)
...


Подробнее здесь: https://stackoverflow.com/questions/786 ... ct-details
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»