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

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

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

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

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

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

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

0

Решение

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

Нет, нет

Однако, если вы кешируете эти данные в своем приложении, сравнивать 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) . " ) ");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]