#python #api #quickbooks
#python #API #quickbooks
Вопрос:
Интересно, как я могу добавить счет-фактуру через Quickbooks API v3 с использованием Python. Скрипт с минимальными требованиями был бы оценен.
Я новичок в API, поэтому мне интересно, смогу ли я написать простой скрипт без запуска сервера для загрузки счетов-фактур в QuickBooks. Если нет, я думаю, мне следует использовать Django или Flask правильно?
Заранее благодарю вас.
Ответ №1:
вот простой пример того, как создать однострочный счет-фактуру только с обязательными полями.
from quickbooks.objects import (Invoice,
SalesItemLineDetail,
SalesItemLine)
customer_ref = Ref()
customer_ref.value = 123
customer_ref.name = 'Ivan Petrov'
customer_ref.type = 'Customer'
# or customer_ref = Customer.get(123, qb=client).to_ref()
line_detail = SalesItemLineDetail()
line_detail.UnitPrice = 100 # in dollars
line_detail.Qty = 1 # quantity can be decimal
line = SalesItemLine()
line.Amount = 100 # in dollars
line.SalesItemLineDetail = line_detail
invoice = Invoice()
invoice.CustomerRef = customer_ref
invoice.Line = [line]
client = QuickBooks(...)
invoice.save(qb=client)
перейдите по этой ссылке для получения дополнительных объяснений www.github.com/ej2/python-quickbooks/issues/103
Ответ №2:
Вы можете использовать python-quickbooks library.
Есть также примеры, как его использовать:
from intuitlib.client import AuthClient
from quickbooks import QuickBooks
auth_client = AuthClient(
client_id='CLIENT_ID',
client_secret='CLIENT_SECRET',
environment='sandbox',
redirect_uri='http://localhost:8000/callback',
)
client = QuickBooks(
auth_client=auth_client,
refresh_token='REFRESH_TOKEN',
company_id='COMPANY_ID',
)
customer = Customer()
customer.CompanyName = "Test Company"
customer.save(qb=client)
Комментарии:
1. @lasha-dolenjashvili вы пытались использовать этот пример?
2. где взять токен обновления и идентификатор компании?
3. @Md.TanvirRaihan когда вы завершите поток OAuth, вы получите a
auth_code
, который следует преобразовать в эти токены (методget_bearer_token()
) и сохранить для последующего использования.4. @Md.TanvirRaihan похоже, что это не связано с текущим вопросом, пожалуйста, создайте новый и не стесняйтесь отправлять ссылку.
Ответ №3:
Для счета-фактуры у вас должен быть клиент, который будет платить, счета за расходы и доходы, а также товар или услуга, которые предоставляются клиенту.
# client is your quickbook object
customer = Customer()
customer.CompanyName = "Test221wq Company"
customer.DisplayName = "Test3wrq1 Owner"
customer.PrimaryEmailAddr = EmailAddress()
customer.PrimaryEmailAddr.Address = "test1wq3@email.com"
customer.save(qb=client)
print(customer.__dict__)
income_account = Account()
income_account.Name = "Test3w1 Account"
income_account.AccountSubType = "ServiceFeeIncome"
income_account.CurrentBalanceWithSubAccounts = 500
income_account.save(qb=client)
print(income_account.__dict__)
expense_account = Account()
expense_account.Name = "Test4 Account"
expense_account.AccountSubType = "CostOfLabor"
expense_account.CurrentBalanceWithSubAccounts = 1000
expense_account.save(qb=client)
print(expense_account.__dict__)
item = Item()
item.Name = "Test Service Item"
item.IncomeAccountRef = income_account.to_ref()
item.ItemCategoryType = "Service"
item.ExpenseAccountRef = expense_account.to_ref()
item.Type = "Service"
item.save(qb=client)
print(item.__dict__)
line = SalesItemLine()
line.LineNum = 1
line.Description = "fieldworkers"
line.Amount = 100
line.SalesItemLineDetail = SalesItemLineDetail()
line.SalesItemLineDetail.ItemRef = item.to_ref()
invoice = Invoice()
invoice.CustomerRef = customer.to_ref()
invoice.Line.append(line)
invoice.save(qb=client)
print(invoice.__dict__)
Этого достаточно для создания счета-фактуры.