2015-08-26 1 views
0

Я программист для компании, которая продает веб-программный продукт для бизнеса, который позволяет пользователю управлять своим бизнесом. Он имеет модуль A/R. Наши пользователи используют наше программное обеспечение для ввода платежей от своих клиентов и применения платежей к своим счетам-фактурам в нашей системе.Получение переплаты в Quickbooks через веб-коннектор

Наша система также обязана синхронизировать всю финансовую информацию с настольными QuickBoooks нашего пользователя. Для этого мы используем QB Web Connector. Я написал код для отправки ReceivePaymentAdd в свой QB, когда он вводит платеж в нашей системе, и он работает хорошо. Единственное предостережение - это когда клиент нашего пользователя отправляет им переплату.

Например, их клиент отправляет им чек на сумму 50,00 долларов США, но у этого клиента только непогашенный счет за 45,00 долларов США.

Способ, которым я занимаюсь, заключается в том, чтобы уменьшить сумму проверки до 45,00 долларов США и создать кредитную авизо в нашей системе за 5,00 долларов США. Затем импортируйте платеж в размере 45,00 долларов США в свой QB (применяется к счету в размере 45,00 долларов США), а также импортируйте кредитную авизо за 5,00 долларов США (в качестве кредитного авизо в QB).

Мы поняли, что этот подход не работает, потому что он сбрасывает их банковский счет (у них есть чек на 50,00 долларов США в руках, и мы только добавили платеж в размере $ 45,00 к их QB).

Я знаю, что могу отправить ReceivePaymentAdd за полные 50,00 долларов США, и на счета-фактуры выставляются только 45,00 долларов США. Если я это сделаю, у их клиента будет кредитный баланс в размере 5 долларов США в QB. И если я удалю код, который уменьшает сумму платежа и создает кредитную авизо в нашей системе, то наша система также запишет кредит в размере 5,00 долларов США для клиента.

Я могу запрограммировать наш экран приема платежей, чтобы позволить нашим пользователям применять такие клиентские кредиты для счетов-фактур при вводе нового платежа, но как я могу сказать QB об этом? Я ничего не вижу в IDN Unified OSR для этого, когда я смотрю запрос ReceivePaymentAdd.

Итак, чтобы продолжить приведенный выше пример, предположим, что наш пользователь информирует своего клиента, что у него есть кредит в размере 5,00 долларов США, а пользователь делает покупку в размере 25 долларов США и отправляет чек на сумму 20,00 долларов США. Затем у меня будет запрос ReceivePaymentAdd с суммой чекового платежа в размере 20,00 долларов США и 25,00 долларов США на счет-фактуру. Будет ли это работать? Не откажется ли QB от ошибки, чтобы сумма, наложенная на счета-фактуры, была больше суммы уплаченной суммы?

Как сообщить QB (через веб-коннектор) использовать кредит клиента?

ответ

1

В этом случае API QuickBooks работает точно так же, как и пользовательский интерфейс. Итак, как бы вы это сделали в пользовательском интерфейсе?

В пользовательском интерфейсе вы ДОБАВЛЯЕТ ПОЛУЧЕННЫЙ ОПЛАТ за 50 долларов США первоначально и применяете только 45 долларов США. Это оставляет 5 долларов США без присмотра.

Затем, разместив следующий заказ, вы ДОБАВЛЯЕТ ПОЛУЧЕННЫЙ ОПЛАТА в размере 20 долларов США и примените его к новому счету. Затем вы перейдете к исходному, более раннему полученному платежу и ОБНОВЛЕНО (измените) ПОЛУЧЕННЫЙ ПЛАТЕЖ, чтобы применить оставшиеся 5 долларов США к новому счету.

Вы будете делать то же самое через API.

Сделайте ReceivePaymentMod на первоначальном взносе и примените оставшуюся непримененную сумму платежа к вашему новому счету.

+0

'ReceivePaymentMod' требует поля' EditSequence'. Если платеж добавляется один раз и еще не изменен, его 'EditSequence' 1 или 0? –

+0

Ничего. Значения EditSequence являются временными отметками unix, когда последняя запись изменилась.Чтобы выполнить запрос 'Mod', вы должны сначала запросить запись, чтобы получить последнее значение параметра EditSequence, а затем использовать значение, полученное вами из запроса в запросе' Mod'. –

+0

Intuit не делает это легко, не так ли! :-) Благодаря. –