Имя при регистрации в QuickBooks SDK - PullRequest
2 голосов
/ 04 декабря 2009

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

Я посмотрел на SDK QuickBooks (мы используем XML для связи в целом), и он ссылается на поле в чеке PayeeEntityRef со свойством FullName, но обычно в QuickBooks эта структура данных будет указывать, как называется объект, а не что отображается в проверке (например, у поставщиков есть свойство NameOnCheck, которое может отличаться от их имени).

Не кодируя несколько тестовых случаев, чтобы продемонстрировать здесь поведение QuickBooks, есть ли у кого-нибудь опыт получения имени, напечатанного на чеке? Каков наилучший способ сделать это?

1 Ответ

3 голосов
/ 20 сентября 2013

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

Сначала необходимо запросить чеки / платежи по счетам - чеки для банковского счета. Затем, используя PayeeEntityRef (я бы использовал компонент ListID), выясните, в каком «Списке» находится объект; Клиент, Продавец, Сотрудник или Другой. Я не знаю, как определить, из какого списка получен PayeeEntityRef, кроме как сделать запрос для каждого из списков.

Если PayeeEntityRef является Продавцом или Сотрудником, то вы можете получить значение NameOnCheck. Единственное, что вам нужно иметь в виду, это то, что если NameOnCheck был изменен ПОСЛЕ печати чека, имена не будут совпадать.

Если PayeeEntityRef - это имя клиента или другого, то вам нужно сделать немного больше. Значение, которое QuickBooks использует для напечатанного имени, основано на том, какие поля заполнены для записи клиента. Сначала оно будет использовать поле CompanyName, если оно не равно нулю. Затем он попытается использовать поля First / Middle / LastName, если они не равны NULL. Наконец, он будет использовать поле «Имя» в качестве последнего средства. Помните, что это не поле FullName, а поле Name.

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

...