From db43765f84702a0b22c7a892b653a851a8a38bfd Mon Sep 17 00:00:00 2001 From: Nathan Bertram Date: Thu, 13 Nov 2025 21:38:37 -0800 Subject: [PATCH 1/2] Add support for specifying a tax_code in DepositLineDetail --- lib/quickbooks/model/deposit_line_detail.rb | 3 ++- spec/fixtures/deposit.xml | 12 ++++++++++++ spec/lib/quickbooks/model/deposit_spec.rb | 15 ++++++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/lib/quickbooks/model/deposit_line_detail.rb b/lib/quickbooks/model/deposit_line_detail.rb index 866cceeb..ca9b8fff 100644 --- a/lib/quickbooks/model/deposit_line_detail.rb +++ b/lib/quickbooks/model/deposit_line_detail.rb @@ -9,8 +9,9 @@ class DepositLineDetail < BaseModel xml_accessor :check_num, :from => 'CheckNum' xml_accessor :txn_type, :from => 'TxnType' xml_accessor :custom_fields, :from => 'CustomField', :as => [CustomField] + xml_accessor :tax_code_ref, :from => 'TaxCodeRef', :as => BaseReference - reference_setters :class_ref, :account_ref, :payment_method_ref, :entity_ref + reference_setters :class_ref, :account_ref, :payment_method_ref, :entity_ref, :tax_code_ref end end diff --git a/spec/fixtures/deposit.xml b/spec/fixtures/deposit.xml index 86c1df16..64ebc612 100644 --- a/spec/fixtures/deposit.xml +++ b/spec/fixtures/deposit.xml @@ -27,6 +27,18 @@ 1 + + 2 + 2 + 100.00 + DepositLineDetail + + 59 + 32 + 2 + NON + + 4 200.00 diff --git a/spec/lib/quickbooks/model/deposit_spec.rb b/spec/lib/quickbooks/model/deposit_spec.rb index 456fdf9b..86a651e6 100644 --- a/spec/lib/quickbooks/model/deposit_spec.rb +++ b/spec/lib/quickbooks/model/deposit_spec.rb @@ -12,7 +12,7 @@ expect(deposit.txn_date).to eq(Date.new(2015, 3, 7)) expect(deposit.private_note).to eq("Deposit smoke test") expect(deposit.txn_status).to be_nil - expect(deposit.line_items.size).to eq(2) + expect(deposit.line_items.size).to eq(3) expect(deposit.deposit_to_account_ref.value).to eq("4") expect(deposit.total).to eq(200.0) expect(deposit.currency_ref.value).to eq('USD') @@ -36,6 +36,19 @@ expect(line_item2.deposit_line_detail.account_ref.name).to eq("Uncategorized Expense") expect(line_item2.deposit_line_detail.payment_method_ref.value).to eq("1") expect(line_item2.deposit_line_detail.payment_method_ref.name).to eq("Cash") + + line_item3 = deposit.line_items[2] + expect(line_item3.id).to eq("2") + expect(line_item3.amount).to eq(100.00) + expect(line_item3.deposit_line_detail?).to eq(true) + expect(line_item3.deposit_line_detail.entity_ref.type).to eq('CUSTOMER') + expect(line_item3.deposit_line_detail.entity_ref.name).to eq('John Doe') + expect(line_item3.deposit_line_detail.entity_ref.value).to eq('59') + expect(line_item3.deposit_line_detail.account_ref.value).to eq("32") + expect(line_item3.deposit_line_detail.account_ref.name).to eq("Sales Income") + expect(line_item3.deposit_line_detail.payment_method_ref.value).to eq("2") + expect(line_item3.deposit_line_detail.payment_method_ref.name).to eq("Check") + expect(line_item3.deposit_line_detail.tax_code_ref.to_s).to eq('NON') end it "should require at least one line" do From 4752671b36068e5691d291296200039ed8608d63 Mon Sep 17 00:00:00 2001 From: Nathan Bertram Date: Thu, 13 Nov 2025 21:42:47 -0800 Subject: [PATCH 2/2] Update spec so TotalAmt is accurate --- spec/fixtures/deposit.xml | 4 ++-- spec/lib/quickbooks/model/deposit_spec.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/fixtures/deposit.xml b/spec/fixtures/deposit.xml index 64ebc612..9222959f 100644 --- a/spec/fixtures/deposit.xml +++ b/spec/fixtures/deposit.xml @@ -30,7 +30,7 @@ 2 2 - 100.00 + 13.77 DepositLineDetail 59 @@ -40,5 +40,5 @@ 4 - 200.00 + 213.27 diff --git a/spec/lib/quickbooks/model/deposit_spec.rb b/spec/lib/quickbooks/model/deposit_spec.rb index 86a651e6..2f084b97 100644 --- a/spec/lib/quickbooks/model/deposit_spec.rb +++ b/spec/lib/quickbooks/model/deposit_spec.rb @@ -14,7 +14,7 @@ expect(deposit.txn_status).to be_nil expect(deposit.line_items.size).to eq(3) expect(deposit.deposit_to_account_ref.value).to eq("4") - expect(deposit.total).to eq(200.0) + expect(deposit.total).to eq(213.27) expect(deposit.currency_ref.value).to eq('USD') expect(deposit.exchange_rate).to be_nil expect(deposit.line_items[1].deposit_line_detail.entity_ref.type).to eq('CUSTOMER') @@ -39,7 +39,7 @@ line_item3 = deposit.line_items[2] expect(line_item3.id).to eq("2") - expect(line_item3.amount).to eq(100.00) + expect(line_item3.amount).to eq(13.77) expect(line_item3.deposit_line_detail?).to eq(true) expect(line_item3.deposit_line_detail.entity_ref.type).to eq('CUSTOMER') expect(line_item3.deposit_line_detail.entity_ref.name).to eq('John Doe')