Как я могу заставить QuickBooks отправлять удаленные позиции в InvoiceQuery?

Делая запрос через qbXML для импорта счетов, я использую следующий фрагмент:

<InvoiceQueryRq requestID="1">
  <IncludeLineItems>true</IncludeLineItems>
  <OwnerID>0</OwnerID>
</InvoiceQueryRq>

Это позволяет мне захватывать все позиции для всех счетов, которые я импортирую, - это именно то, что я хочу, когда я сообщаю об этих счетах, их товарах и количестве (и описаниях).

Однако моя проблема заключается в том, что когда пользователь quickbooks удаляет одну из позиций, я не могу сказать в ответе, который я получаю. Я буду получать обновления, такие как обновленные количества или описания, и, конечно, я получу все новые позиции.

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

Таким образом, мой основной вопрос заключается в том, есть ли способ также включить удаленные позиции в запрос счета-фактуры?

1 ответ

Решение

Таким образом, мой основной вопрос заключается в том, есть ли способ также включить удаленные позиции в запрос счета-фактуры?

Нет, нет

Однако, если вы кешируете эти данные в своем приложении, сравнивать TxnLineID значения, которые вы вернули из QuickBooks, в кешированные TxnLineID значения, которые вы имеете в своей базе данных, и просто удалите из своего приложения все, что не присутствует в том, что вы получили от QuickBooks.

Psuedocode для чего-то подобного будет что-то вроде:

// the main TxnID of the invoice itself
$TxnID = ... 

// this will store the current TxnLineIDs for existing lines
$list_of_current_TxnLineIDs = array();

// loop through the invoice lines that were returned from QuickBooks
foreach ($InvoiceLineRet as $InvoiceLine) 
{
  $list_of_current_TxnLineIDs[] = $InvoiceLine->TxnLineID;
}

// delete anything we have already cached that isn't needed anymore
db_query("DELETE FROM invoice_line WHERE TxnID = $TxnID AND TxnLineID NOT IN ( " . implode(", ", $list_of_current_TxnLineIDs) . " ) ");
Другие вопросы по тегам