【问题标题】:Integration Quickbook online api to rails app将 Quickbook online api 集成到 rails 应用程序
【发布时间】:2014-03-14 10:32:18
【问题描述】:

我正在整合

rails 应用到 Quickbooks 在线

使用 API。

使用 gem Quickbooks-ruby

但是想加折扣,在发票中加税却没有成功,甚至没有找到如何传入API。

【问题讨论】:

    标签: ruby-on-rails-3 api quickbooks-online


    【解决方案1】:
    invoice = Quickbooks::Model::Invoice.new
    invoice.customer_id = 1
    invoice.txn_date = Date.civil(2014, 3, 27)
    invoice.doc_number = "001"
    
    transaction_tax = Quickbooks::Model::TransactionTaxDetail.new
    # Point to a saved tax code in QBO, e.g. this points to id = 2, 
    # which is a NYC tax code saved on QBO account = 10% sales tax
    transaction_tax.txn_tax_code_id = 2
    transaction_tax.total_tax =  134.10
    invoice.txn_tax_detail = transaction_tax
    
    sales_line_item = Quickbooks::Model::InvoiceLineItem.new
    sales_line_item.amount = 1490
    sales_line_item.description = "CCM ice skates"
    sales_line_item.sales_item! do |detail|
      detail.unit_price = 149
      detail.quantity = 10
      detail.item_id = 1 # Item ID here
      detail.tax_code_id = 'TAX' # for US must be 'NON' or 'TAX'
    end
    
    discount_line_item = Quickbooks::Model::InvoiceLineItem.new
    discount_line_item.amount = 149
    discount_line_item.discount_item! do |detail|
      detail.discount_percent = 10
      detail.percent_based = true
      detail.discount_account_id = 99
    end
    
    invoice.line_items << sales_line_item
    invoice.line_items << discount_line_item
    
    service = Quickbooks::Service::Invoice.new
    service.access_token = OAuth::AccessToken.new($qb_oauth_consumer, "token", "secret")
    service.company_id = "9991111222"
    created_invoice = service.create(invoice)
    

    【讨论】:

    • 是的...这是正确的..我想在发票的快速簿中添加税款..那么如何在创建发票时包含税款..?
    • 是否可以对单个行项目而不是整个发票加税?
    【解决方案2】:

    在 ruby​​ 中应该有类似 JAXB 的东西用于对象序列化/反序列化。

    从以下链接,您可以下载 QB 端点定义和数据类定义(作为 XSD)。您需要从中生成数据类。

    https://developer.intuit.com/docs/@api/deki/files/2466/v3.1_dataservices.zip

    然后使用任何基于 ruby​​ 的标准 OAuth 库,您可以调用 QB API 端点。 您可以使用数据类的 setter 方法(在您的情况下为 invoice )来填充数据/构造有效负载。 (我没有任何现成的例子。但我想在网上不难找到)

    doc,可以参考以下两个链接。

    https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/030_entity_services_reference/invoice

    https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/030_entity_services_reference/invoice#DiscountLineDetail

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 2016-02-20
      相关资源
      最近更新 更多