"code": "6140" Ошибка дублирующегося номера документа

Я использую QuickBooks. Каким-то образом я получаю странную ошибку при создании одного счета.

{
    "Fault": {
        "Error": [
            {
                "Message": "Duplicate Document Number Error",
                "Detail": "Duplicate Document Number Error : You must specify a different number. This number has already been used. DocNumber=O0010714 is assigned to TxnType=Invoice with TxnId=45823",
                "code": "6140",
                "element": ""
            }
        ],
        "type": "ValidationFault"
    },
    "time": "2020-12-15T04:54:25.476-08:00"
}

Почему это происходит, поскольку в QuickBooks нет документа, в котором говорится, что номер документа является уникальным объектом.

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

Keith Palmer Jr. 17.12.2020 23:07

@КейтПалмерДжр. Крайне извиняюсь за поздний ответ. Но я думаю, что счет уже создан с тем же номером документа. Спасибо

Profer 22.12.2020 16:27
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
185
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Краткая версия: в большинстве случаев DocNumber должен быть уникальным. В некоторых случаях вы можете добавить include=allowduplicatedocnum arg в URL, чтобы разрешить это. Имейте в виду, что DocNumber может быть сгенерирован автоматически.

Полная версия: взято из полевой документации DocNumberдля Счета-фактуры

Ссылочный номер транзакции. Если это явно не указано в время создания, это поле заполняется на основе настройки Preferences:CustomTxnNumber следующим образом:

  • Если Preferences:CustomTxnNumber верно, может быть предоставлено пользовательское значение.
    Если значение не указано, результирующий DocNumber имеет значение null.
  • Если Preferences:CustomTxnNumber ложно, результирующий DocNumber является системным генерируется путем увеличения последнего числа на 1.

Если Preferences:CustomTxnNumber ложно, не отправляйте значение, так как оно может привести к нежелательным дубликатам. Если значение DocNumber отправляется для Операция обновления, затем она просто обновляет этот конкретный счет и не изменяет внутренний системный DocNumber.

Примечание: DocNumber — это необязательное поле для всех языков, кроме Франции. Для Франции, если Preferences:CustomTxnNumber включен, это не будет автоматически генерируется и является обязательным полем. Если требуется дубликат DocNumber быть предоставлены, добавьте пару имя/значение параметра запроса, include=allowduplicatedocnum на URI.

P.S. Поздний ответ, но может кому пригодится в будущем.

УПД: Похоже, что библиотека из npm node quickbooks не поддерживает это изначально. Потому что метод createBill не позволяет передавать какие-либо параметры в URI. Даже метод module.create имеет просто жестко запрограммированную url переменную без возможности предоставить что-либо дополнительно.

В этом случае, если вы все еще хотите использовать include=allowduplicatedocnum, у вас есть следующие варианты:

  • обезьяна-патч эту библиотеку;
  • делать форк и делать обновления;
  • попросите авторов этой библиотеки реализовать это вместо вас;
  • найти библиотеку, которая будет это поддерживать;
  • отправлять необработанные запросы в QBO из своего кода.

Привет, какой URI мне нужно передать include=allowduplicatedocnum? Я использую быстрые книги npm node?

Profer 12.01.2021 06:05

@Profer обновил информацию о библиотеке. Короче - не поддерживает. Таким образом, вам нужно либо использовать другой метод, либо исправлять библиотеку, либо искать другой, либо отправлять прямые запросы.

wowkin2 12.01.2021 08:56

Другие вопросы по теме