Изменение счета QuickBooks по адресу отличается от создания, как это компенсировать?

StackOverflow https://stackoverflow.com/questions/877689

  •  22-08-2019
  •  | 
  •  

Вопрос

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

Проблема, с которой я столкнулся, заключается в том, как QuickBooks обрабатывает адреса.Адреса, которые я получаю, могут быть в любом формате (в 6 разных контентах), без какой-либо гарантии соблюдения правильного формата адреса для этой локали.

Таким образом, создать счет-фактуру достаточно просто, я указываю в xml-теге платежный адрес от addr1 до addr5, и QuickBooks принимает его без проблем. ОДНАКО он не сохраняет адрес в виде необработанного текста, он пытается проанализировать город, почтовый индекс штата и страну.

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

Иногда QuickBooks правильно анализирует адрес и добавляет случайное число в следующей строке (внутренне представленное на вкладке примечание).

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

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

Сталкивался ли кто-нибудь с этим раньше, и если да, есть ли у вас лучший способ обойти это?Знаете ли вы анализатор адресов, который может разумно приблизиться к тому, что делает quickbooks, чтобы я мог последовательно отправлять ему город, штат и почтовый индекс при создании?

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

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

Запрос:

<?xml version="1.0" encoding="UTF-8"?>  <?qbxml version="7.0"?>
<QBXML>
<QBXMLMsgsRq newMessageSetID="243f42acf4011139b7a" onError="stopOnError">
    <InvoiceModRq>
        <InvoiceMod>
            <TxnID>4E64-1242411202</TxnID>
            <EditSequence>1242411202</EditSequence>
            <CustomerRef>
                <ListID>80000012-1242156814</ListID>
            </CustomerRef>
            <ARAccountRef>
                <FullName>Accounts Receivable</FullName>
            </ARAccountRef>
            <TxnDate>2009-04-01</TxnDate>
            <RefNumber>M-053491</RefNumber>
            <BillAddress>
                <Addr1>S &amp; S ACME CO., INC.</Addr1>
                <Addr2>MR. ABC ABCDEF</Addr2>
                <Addr3>981 ABCD 761 ST</Addr3>
                <Addr4>ABABC, AA 99999-3584</Addr4>
                <Addr5>USA</Addr5>
                <City/>
                <State/>
                <PostalCode/>
                <Country/>
                <Note/>
            </BillAddress>
            <TermsRef>
                <FullName>NET 30</FullName>
            </TermsRef>
            <DueDate>2009-05-01</DueDate>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>ABCDEFG ABC $3,000.00 *</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>FOR:</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <ItemRef>
                    <FullName>ANFEE</FullName>
                </ItemRef>
                <Desc>1 . #9999 S &amp; S ABCD CO., INC., ABCDE, AA *</Desc>
                <Amount>123456.72</Amount>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>PLEASE NOTE: Blahh Someone sellificant repeats on July 31st, 2009.</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>Sellifcan of your Someone Ssellificant to Jan. 31st, 2011 is contingent upon</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>your satisfying all open invoices and all other/different issues.</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>* PLUS expenses for some amount of service described here.</Desc>
            </InvoiceLineMod>
        </InvoiceMod>
    </InvoiceModRq>
</QBXMLMsgsRq>
</QBXML>

Ответ:

    <?xml version="1.0" ?> <QBXML>
<QBXMLMsgsRs newMessageSetID="243f42acf4011139b7a">
<InvoiceModRs statusCode="3210" statusSeverity="Error"
              statusMessage="The &quot;address&quot; field has an invalid value &quot;&quot;.  QuickBooks error message: The parameter is incorrect. "/>
</QBXMLMsgsRs>
</QBXML> 
Это было полезно?

Решение

Другим потенциальным обходным путем здесь является двойное обновление счета-фактуры.Сначала запишите адрес.Во-вторых, отправьте пять строк без какого-либо упоминания почтового индекса города, штата и т.д., как это было сделано при создании.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top