Получить счета через BillQuery из QuickBooks в qbxml? - PullRequest
0 голосов
/ 27 июня 2018

Я использую QuickBooks Desktop 18.0 , и у меня есть одна задача получить счета из QuickBooks между двумя датами.

Я использую QuickBooks Web Connector и хочу получать счета в своем приложении MVC.

Я использую веб-службы для подключения приложения к QuickBooks через веб-разъем.

Ниже приведен мой запрос Bill Query, который я отправляю в QuickBooks через Web Connector:

<?xml version="1.0"?>
<?qbxml version="10.0"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <BillQueryRq>
            <TxnDateRangeFilter>
                <FromTxnDate>2018-05-01</FromTxnDate>
                <ToTxnDate>2018-05-31</ToTxnDate>
            </TxnDateRangeFilter>
        </BillQueryRq>
    </QBXMLMsgsRq>
</QBXML>

А ниже приведен ответ, который я получил от QuickBooks:

<?xml version="1.0" ?>
<QBXML>
    <QBXMLMsgsRs>
        <BillQueryRs statusCode="0" statusSeverity="Info" statusMessage="Status OK">
            <BillRet>
                <TxnID>4-1495099285</TxnID>
                <TimeCreated>2018-05-18T14:51:25+05:30</TimeCreated>
                <TimeModified>2018-05-20T21:39:51+05:30</TimeModified>
                <EditSequence>1495536273</EditSequence>
                <TxnNumber>2</TxnNumber>
                <VendorRef>
                    <ListID>80000001-1495099067</ListID>
                    <FullName>CSC</FullName>
                </VendorRef>
                <APAccountRef>
                    <ListID>80000041-1495048433</ListID>
                    <FullName>Purchase ledger control</FullName>
                </APAccountRef>
                <TxnDate>2018-05-18</TxnDate>
                <DueDate>2018-05-30</DueDate>
                <AmountDue>267.00</AmountDue>
                <RefNumber>81105354629</RefNumber>
                <IsPaid>true</IsPaid>
                <OpenAmount>800.00</OpenAmount>
            </BillRet>
        </BillQueryRs>
    </QBXMLMsgsRs>
</QBXML>

Но это не все данные, которые я хочу получить от QuickBooks.

То, что я хочу от QuickBooks, - это два узла, которые <ExpenseLineRet> и <ItemLineRet> в ответе со своими дочерними узлами, которые приведены в его примере XML-ответа:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <BillQueryRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE" retCount="INTTYPE" iteratorRemainingCount="INTTYPE" iteratorID="UUIDTYPE">
            <BillRet> <!-- optional, may repeat -->
                <TxnID >IDTYPE</TxnID> <!-- required -->
                <TimeCreated >DATETIMETYPE</TimeCreated> <!-- required -->
                <TimeModified >DATETIMETYPE</TimeModified> <!-- required -->
                <EditSequence >STRTYPE</EditSequence> <!-- required -->
                <TxnNumber >INTTYPE</TxnNumber> <!-- optional -->
                <VendorRef> <!-- required -->
                    <ListID >IDTYPE</ListID> <!-- optional -->
                    <FullName >STRTYPE</FullName> <!-- optional -->
                </VendorRef>
                <VendorAddress> <!-- optional -->
                    <Addr1 >STRTYPE</Addr1> <!-- optional -->
                    <Addr2 >STRTYPE</Addr2> <!-- optional -->
                    <Addr3 >STRTYPE</Addr3> <!-- optional -->
                    <Addr4 >STRTYPE</Addr4> <!-- optional -->
                    <Addr5 >STRTYPE</Addr5> <!-- optional -->
                    <City >STRTYPE</City> <!-- optional -->
                    <State >STRTYPE</State> <!-- optional -->
                    <PostalCode >STRTYPE</PostalCode> <!-- optional -->
                    <Country >STRTYPE</Country> <!-- optional -->
                    <Note >STRTYPE</Note> <!-- optional -->
                </VendorAddress>
                <APAccountRef> <!-- optional -->
                    <ListID >IDTYPE</ListID> <!-- optional -->
                    <FullName >STRTYPE</FullName> <!-- optional -->
                </APAccountRef>
                <TxnDate >DATETYPE</TxnDate> <!-- required -->
                <DueDate >DATETYPE</DueDate> <!-- optional -->
                <AmountDue >AMTTYPE</AmountDue> <!-- required -->
                <CurrencyRef> <!-- optional -->
                    <ListID >IDTYPE</ListID> <!-- optional -->
                    <FullName >STRTYPE</FullName> <!-- optional -->
                </CurrencyRef>
                <ExchangeRate >FLOATTYPE</ExchangeRate> <!-- optional -->
                <AmountDueInHomeCurrency >AMTTYPE</AmountDueInHomeCurrency> <!-- optional -->
                <RefNumber >STRTYPE</RefNumber> <!-- optional -->
                <TermsRef> <!-- optional -->
                    <ListID >IDTYPE</ListID> <!-- optional -->
                    <FullName >STRTYPE</FullName> <!-- optional -->
                </TermsRef>
                <Memo >STRTYPE</Memo> <!-- optional -->
                <IsPaid >BOOLTYPE</IsPaid> <!-- optional -->
                <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
                <LinkedTxn> <!-- optional, may repeat -->
                    <TxnID >IDTYPE</TxnID> <!-- required -->
                    <!-- TxnType may have one of the following values: ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, BuildAssembly, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, Estimate, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, LiabilityAdjustment, Paycheck, PayrollLiabilityCheck, PurchaseOrder, ReceivePayment, SalesOrder, SalesReceipt, SalesTaxPaymentCheck, Transfer, VendorCredit, YTDAdjustment -->
                    <TxnType >ENUMTYPE</TxnType> <!-- required -->
                    <TxnDate >DATETYPE</TxnDate> <!-- required -->
                    <RefNumber >STRTYPE</RefNumber> <!-- optional -->
                    <!-- LinkType may have one of the following values: AMTTYPE, QUANTYPE -->
                    <LinkType >ENUMTYPE</LinkType> <!-- optional -->
                    <Amount >AMTTYPE</Amount> <!-- required -->
                </LinkedTxn>
                <ExpenseLineRet> <!-- optional, may repeat -->
                    <TxnLineID >IDTYPE</TxnLineID> <!-- required -->
                    <AccountRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </AccountRef>
                    <Amount >AMTTYPE</Amount> <!-- optional -->
                    <Memo >STRTYPE</Memo> <!-- optional -->
                    <CustomerRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </CustomerRef>
                    <ClassRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </ClassRef>
                    <!-- BillableStatus may have one of the following values: Billable, NotBillable, HasBeenBilled -->
                    <BillableStatus >ENUMTYPE</BillableStatus> <!-- optional -->
                    <SalesRepRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </SalesRepRef>
                    <DataExtRet> <!-- optional, may repeat -->
                        <OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
                        <DataExtName >STRTYPE</DataExtName> <!-- required -->
                        <!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
                        <DataExtType >ENUMTYPE</DataExtType> <!-- required -->
                        <DataExtValue >STRTYPE</DataExtValue> <!-- required -->
                    </DataExtRet>
                </ExpenseLineRet>
                <ItemLineRet> <!-- optional -->
                    <TxnLineID >IDTYPE</TxnLineID> <!-- required -->
                    <ItemRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </ItemRef>
                    <InventorySiteRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </InventorySiteRef>
                    <InventorySiteLocationRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </InventorySiteLocationRef>
                    <!-- BEGIN OR -->
                    <SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
                    <!-- OR -->
                    <LotNumber >STRTYPE</LotNumber> <!-- optional -->
                    <!-- END OR -->
                    <Desc >STRTYPE</Desc> <!-- optional -->
                    <Quantity >QUANTYPE</Quantity> <!-- optional -->
                    <UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
                    <OverrideUOMSetRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </OverrideUOMSetRef>
                    <Cost >PRICETYPE</Cost> <!-- optional -->
                    <Amount >AMTTYPE</Amount> <!-- optional -->
                    <CustomerRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </CustomerRef>
                    <ClassRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </ClassRef>
                    <!-- BillableStatus may have one of the following values: Billable, NotBillable, HasBeenBilled -->
                    <BillableStatus >ENUMTYPE</BillableStatus> <!-- optional -->
                    <SalesRepRef> <!-- optional -->
                        <ListID >IDTYPE</ListID> <!-- optional -->
                        <FullName >STRTYPE</FullName> <!-- optional -->
                    </SalesRepRef>
                    <DataExtRet> <!-- optional, may repeat -->
                        <OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
                        <DataExtName >STRTYPE</DataExtName> <!-- required -->
                        <!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
                        <DataExtType >ENUMTYPE</DataExtType> <!-- required -->
                        <DataExtValue >STRTYPE</DataExtValue> <!-- required -->
                    </DataExtRet>
                </ItemLineRet>
                <OpenAmount >AMTTYPE</OpenAmount> <!-- optional -->
                <DataExtRet> <!-- optional, may repeat -->
                    <OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
                    <DataExtName >STRTYPE</DataExtName> <!-- required -->
                    <!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
                    <DataExtType >ENUMTYPE</DataExtType> <!-- required -->
                    <DataExtValue >STRTYPE</DataExtValue> <!-- required -->
                </DataExtRet>
            </BillRet>
        </BillQueryRs>
    </QBXMLMsgsRq>
</QBXML>

Я запрашиваю неправильный запрос? Или мне нужно передать больше параметров?

Спасибо заранее. :)

1 Ответ

0 голосов
/ 27 июня 2018

Вам необходимо добавить IncludeLineItems к вашему запросу:

<?xml version="1.0"?>
<?qbxml version="10.0"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <BillQueryRq>
            <TxnDateRangeFilter>
                <FromTxnDate>2018-05-01</FromTxnDate>
                <ToTxnDate>2018-05-31</ToTxnDate>
            </TxnDateRangeFilter>
         <IncludeLineItems>1</IncludeLineItems>
        </BillQueryRq>
    </QBXMLMsgsRq>
</QBXML>
...