В счете Add QuickBooks SDK количество делит на установленную единицу измерения (30) вместо умножения.

Проблема с добавлением счета заключается в том, что единицей измерения является деление количества на тридцать, а не умножение на тридцать. Вот запрос и ответ на счет Добавить:

<OUTGOING>
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE QBXML PUBLIC '-//INTUIT//DTD QBXML QBD 12.0//EN' >
  <QBXML>
    <QBXMLMsgsRq onError = "continueOnError">
      <BillAddRq requestID = "1">
        <BillAdd>
          <VendorRef>
            <FullName>ABC</FullName>
          </VendorRef>
          <APAccountRef>
            <FullName>211100</FullName>
          </APAccountRef>
          <TxnDate>2014-10-19</TxnDate>
          <DueDate>2013-12-10</DueDate>
          <RefNumber>724335265</RefNumber>
          <Memo></Memo>
          <ItemLineAdd>
            <ItemRef>
              <FullName>597007541</FullName>
            </ItemRef>
            <Desc>SPIRIVA 18 MCG HH CAP  30</Desc>
            <Quantity>0000010.00000</Quantity>
            <UnitOfMeasure>30 Pack</UnitOfMeasure>
            <Cost> 269.18</Cost>
            <Amount>2691.80</Amount>
          </ItemLineAdd>
        </BillAdd>
      </BillAddRq>
    </QBXMLMsgsRq>
  </QBXML>
</OUTGOING>
<RETURNS>

  <QBXML>
    <QBXMLMsgsRs>
      <BillAddRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK">
        <BillRet>
          <TxnID>8246-1395341818</TxnID>
          <TimeCreated>2014-03-20T14:56:58-05:00</TimeCreated>
          <TimeModified>2014-03-20T14:56:58-05:00</TimeModified>
          <EditSequence>1395341818</EditSequence>
          <TxnNumber>2967</TxnNumber>
          <VendorRef>
            <ListID>80000E65-1395254081</ListID>
            <FullName>ABC</FullName>
          </VendorRef>
          <APAccountRef>
            <ListID>80000056-1383071992</ListID>
            <FullName>Accounts Payable Wholesaler</FullName>
          </APAccountRef>
          <TxnDate>2014-10-19</TxnDate>
          <DueDate>2013-12-10</DueDate>
          <AmountDue>2691.80</AmountDue>
          <RefNumber>724335265</RefNumber>
          <IsPaid>false</IsPaid>
          <ItemLineRet>
            <TxnLineID>8248-1395341818</TxnLineID>
            <ItemRef>
              <ListID>80000B29-1386299840</ListID>
              <FullName>597007541</FullName>
            </ItemRef>
            <Desc>SPIRIVA 18 MCG HH CAP  30</Desc>
            <Quantity>0.33333</Quantity>
            <UnitOfMeasure>30 PACK</UnitOfMeasure>
            <OverrideUOMSetRef>
              <ListID>80000003-1386168088</ListID>
              <FullName>30 PACK (30)</FullName>
            </OverrideUOMSetRef>
            <Cost>8075.4</Cost>
            <Amount>2691.80</Amount>
          </ItemLineRet>
        </BillRet>
      </BillAddRs>
    </QBXMLMsgsRs>
  </QBXML>

</RETURNS>

Снимки экрана из QuickBooks можно найти по адресу https://www.dropbox.com/sh/w051ozhkvzfu8qq/ieHCp0CMZY

Любая помощь приветствуется. Спасибо.


person Karen M    schedule 20.03.2014    source источник


Ответы (2)


Обновите QuickBooks до последней версии и повторите попытку.

person Karl Irvin    schedule 21.03.2014
comment
Подтверждено Уильямом, что в последнем выпуске QuickBooks 2013 все еще есть ошибка, и они изучают ее. - person Karen M; 28.03.2014

Я не знаю, является ли это «багом» или он работает по назначению, но я могу объяснить, что происходит.

Базовой единицей для набора единиц измерения является каждая. У вас есть конверсия 30 под названием "30 Pack". Однако, когда вы добавляете элемент в счет, он входит в 10 как количество каждого, а затем применяется преобразование 30 Pack.

Вы можете увидеть это, если попытаетесь вручную ввести транзакцию в QuickBooks. В новом счете выберите товар и введите 10 в качестве количества. Когда вы вводите количество, QuickBooks предложит вам, хотите ли вы 10 30 Pack или 10 каждого. SDK использует 10 каждый. После того, как вы выберете 10 для каждого, выберите единицу измерения. Вы увидите, что он имеет преобразование из 10 штук в 30 пакетов, что означает, что его нужно разделить.

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

person TravestyOfCode    schedule 21.03.2014
comment
Intuit подтвердила, что это ошибка в QBSDK, и они изучают ее. - person Karen M; 28.03.2014