diff --git a/dbt_project.yml b/dbt_project.yml index bb7a17d..8d07688 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -16,12 +16,8 @@ models: quickbooks_general_ledger: dist: id sort: txn_date - quickbooks_parent_class_map: - enabled: false # set to true if this quickbooks install uses classes base: materialized: ephemeral - quickbooks_classes: - enabled: false # set to true if this quickbooks install uses classes vars: "base.accounts" : "quickbooks.quickbooks_accounts" @@ -46,5 +42,3 @@ models: "base.vendors" : "quickbooks.quickbooks_vendors" "level_0_id_field" : "_sdc_level_0_id" "source_key_id_field" : "_sdc_source_key_id" - uses_classes : "false" # set to true if this quickbooks install uses classes - diff --git a/models/base/quickbooks_bill_lines.sql b/models/base/quickbooks_bill_lines.sql index 72eda9b..d5773aa 100644 --- a/models/base/quickbooks_bill_lines.sql +++ b/models/base/quickbooks_bill_lines.sql @@ -3,9 +3,7 @@ select id::int, amount, {{ var('source_key_id_field') }} as bill_id, - {% if var('uses_classes') == "true" %} - nullif(accountbasedexpenselinedetail__classref__value::varchar, '')::bigint as class_id, - {% endif %} + nullif(accountbasedexpenselinedetail__classref__value::varchar, '')::bigint as class_id, accountbasedexpenselinedetail__accountref__value::int as account_id from {{ var('base.bills_line') }} diff --git a/models/base/quickbooks_deposit_lines.sql b/models/base/quickbooks_deposit_lines.sql index 140817c..80c96de 100644 --- a/models/base/quickbooks_deposit_lines.sql +++ b/models/base/quickbooks_deposit_lines.sql @@ -18,9 +18,7 @@ select lines._id as id, lines.deposit_id, lines.amount, - {% if var('uses_classes') == "true" %} - nullif(lines.depositlinedetail__classref__value::varchar, '')::bigint as class_id, - {% endif %} + nullif(lines.depositlinedetail__classref__value::varchar, '')::bigint as class_id, nullif(lines.depositlinedetail__accountref__value::varchar, '')::int as account_id, links.txnid::int as payment_id from lines diff --git a/models/base/quickbooks_invoice_lines.sql b/models/base/quickbooks_invoice_lines.sql index 481cd1d..11f6559 100644 --- a/models/base/quickbooks_invoice_lines.sql +++ b/models/base/quickbooks_invoice_lines.sql @@ -4,9 +4,7 @@ select amount, description, {{ var('source_key_id_field') }}::int as invoice_id, - {% if var('uses_classes') == "true" %} - nullif(salesitemlinedetail__classref__value::varchar, '')::bigint as class_id, - {% endif %} + nullif(salesitemlinedetail__classref__value::varchar, '')::bigint as class_id, salesitemlinedetail__itemref__value::int as item_id from {{ var('base.invoices_lines') }} diff --git a/models/base/quickbooks_journal_lines.sql b/models/base/quickbooks_journal_lines.sql index b38ee60..fcf4d38 100644 --- a/models/base/quickbooks_journal_lines.sql +++ b/models/base/quickbooks_journal_lines.sql @@ -5,9 +5,7 @@ select amount, description, journalentrylinedetail__accountref__value::integer as account_id, - {% if var('uses_classes') == "true" %} - nullif(journalentrylinedetail__classref__value::varchar, '')::bigint as class_id, - {% endif %} + nullif(journalentrylinedetail__classref__value::varchar, '')::bigint as class_id, journalentrylinedetail__postingtype as posting_type from {{ var('base.journal_entries_line') }} diff --git a/models/base/quickbooks_purchase_lines.sql b/models/base/quickbooks_purchase_lines.sql index c087192..5bf1e5a 100644 --- a/models/base/quickbooks_purchase_lines.sql +++ b/models/base/quickbooks_purchase_lines.sql @@ -3,9 +3,7 @@ select id::int, amount, {{ var('source_key_id_field') }}::int as purchase_id, - {% if var('uses_classes') == "true" %} - nullif(accountbasedexpenselinedetail__classref__value::varchar, '')::bigint as class_id, - {% endif %} + nullif(accountbasedexpenselinedetail__classref__value::varchar, '')::bigint as class_id, accountbasedexpenselinedetail__accountref__value::int as account_id from {{ var('base.purchases_line') }} diff --git a/models/tables/quickbooks_general_ledger.sql b/models/tables/quickbooks_general_ledger.sql index 7f37423..dc16bb8 100644 --- a/models/tables/quickbooks_general_ledger.sql +++ b/models/tables/quickbooks_general_ledger.sql @@ -6,10 +6,8 @@ with unioned as ( amount, account_id, transaction_type::varchar(64), - source::varchar(64) - {% if var('uses_classes') == "true" %} - , class_id - {% endif %} + source::varchar(64), + class_id from {{ref('quickbooks_bill_transactions')}} union all diff --git a/models/transform/quickbooks_bill_transactions.sql b/models/transform/quickbooks_bill_transactions.sql index 18cb78d..83b8da8 100644 --- a/models/transform/quickbooks_bill_transactions.sql +++ b/models/transform/quickbooks_bill_transactions.sql @@ -13,28 +13,31 @@ with bills as ( select bills.id, bills.txn_date, bill_lines.amount, bill_lines.account_id as payed_to_acct_id, - ap_account_id - {% if var('uses_classes') == "true" %} - , bill_lines.class_id - {% endif %} + ap_account_id, + bill_lines.class_id from bills inner join bill_lines on bills.id = bill_lines.bill_id ) -select id, txn_date, amount, payed_to_acct_id as account_id, - 'debit'::varchar(16) as transaction_type, 'bill'::varchar(16) as source - {% if var('uses_classes') == "true" %} - , class_id::bigint - {% endif %} +select id, + txn_date, + amount, + payed_to_acct_id as account_id, + 'debit'::varchar(16) as transaction_type, + 'bill'::varchar(16) as source, + class_id::bigint from d1 union all -select id, txn_date, amount, ap_account_id, - 'credit' as transaction_type, 'bill' - {% if var('uses_classes') == "true" %} - , class_id::bigint - {% endif %} +select + id, + txn_date, + amount, + ap_account_id, + 'credit' as transaction_type, + 'bill', + class_id::bigint from d1 diff --git a/models/transform/quickbooks_billpayment_transactions.sql b/models/transform/quickbooks_billpayment_transactions.sql index 9e9e527..b08ffb5 100644 --- a/models/transform/quickbooks_billpayment_transactions.sql +++ b/models/transform/quickbooks_billpayment_transactions.sql @@ -12,7 +12,11 @@ with bill_payments as ( ), d1 as ( select - bp.id, bp.txn_date, bpl.amount, payment_account_id, ap.id as ap_id + bp.id, + bp.txn_date, + bpl.amount, + payment_account_id, + ap.id as ap_id from bill_payments bp inner join billpayment_lines bpl on bp.id = bpl.bill_payment_id join (select id from {{ref('quickbooks_accounts')}} where type = 'Accounts Payable') ap @@ -21,21 +25,25 @@ with bill_payments as ( ) select - id, txn_date, amount, payment_account_id as account_id, 'credit' as transaction_type, - 'bill payment' as source - {% if var('uses_classes') == "true" %} - , null::bigint as class_id - {% endif %} + id, + txn_date, + amount, + payment_account_id as account_id, + 'credit' as transaction_type, + 'bill payment' as source, + null::bigint as class_id from d1 union all select - id, txn_date, amount, ap_id, 'debit', 'bill payment' - - {% if var('uses_classes') == "true" %} - , null::bigint - {% endif %} + id, + txn_date, + amount, + ap_id, + 'debit', + 'bill payment', + null::bigint from d1 diff --git a/models/transform/quickbooks_deposit_transactions.sql b/models/transform/quickbooks_deposit_transactions.sql index 3f69038..54bd3da 100644 --- a/models/transform/quickbooks_deposit_transactions.sql +++ b/models/transform/quickbooks_deposit_transactions.sql @@ -11,13 +11,13 @@ with lines as ( ), d1 as ( - select deposits.id, deposits.txn_date, lines.amount, + select + deposits.id, + deposits.txn_date, + lines.amount, deposits.account_id as deposit_to_acct_id, - coalesce(lines.account_id, udf.id) as deposit_from_acct_id - {% if var('uses_classes') == "true" %} - , lines.class_id - {% endif %} - + coalesce(lines.account_id, udf.id) as deposit_from_acct_id, + lines.class_id from deposits inner join lines on deposits.id = lines.deposit_id join (select id from {{ref('quickbooks_accounts')}} where subtype = 'UndepositedFunds') udf @@ -25,17 +25,24 @@ with lines as ( ) -select id, txn_date, amount, deposit_to_acct_id as account_id, - 'debit' as transaction_type, 'deposit' as source - {% if var('uses_classes') == "true" %} - , class_id - {% endif %} +select + id, + txn_date, + amount, + deposit_to_acct_id as account_id, + 'debit' as transaction_type, + 'deposit' as source, + class_id from d1 union all -select id, txn_date, amount, deposit_from_acct_id, 'credit', 'deposit' - {% if var('uses_classes') == "true" %} - , class_id - {% endif %} +select + id, + txn_date, + amount, + deposit_from_acct_id, + 'credit', + 'deposit', + class_id from d1 diff --git a/models/transform/quickbooks_invoice_transactions.sql b/models/transform/quickbooks_invoice_transactions.sql index 13ba821..c2ccb0e 100644 --- a/models/transform/quickbooks_invoice_transactions.sql +++ b/models/transform/quickbooks_invoice_transactions.sql @@ -20,11 +20,8 @@ with invoice_lines as ( invoices.id, invoices.txn_date, invoice_lines.amount, - items.account_id - {% if var('uses_classes') == "true" %} - , invoice_lines.class_id - {% endif %} - + items.account_id, + invoice_lines.class_id from invoices inner join invoice_lines on invoices.id = invoice_lines.invoice_id inner join items on invoice_lines.item_id = items.id @@ -32,23 +29,25 @@ with invoice_lines as ( ) select - id, txn_date, amount, account_id, 'credit' as transaction_type, 'invoice' as source - {% if var('uses_classes') == "true" %} - , class_id - {% endif %} - + id, + txn_date, + amount, + account_id, + 'credit' as transaction_type, + 'invoice' as source, + class_id from d1 union all select - d1.id, txn_date, amount, + d1.id, + txn_date, + amount, ar.id, 'debit' as transaction_type, - 'invoice' - {% if var('uses_classes') == "true" %} - , class_id - {% endif %} + 'invoice', + class_id from d1 join (select id from {{ref('quickbooks_accounts')}} where type = 'Accounts Receivable') ar on 1 = 1 diff --git a/models/transform/quickbooks_journal_transactions.sql b/models/transform/quickbooks_journal_transactions.sql index d437c18..fbc264b 100644 --- a/models/transform/quickbooks_journal_transactions.sql +++ b/models/transform/quickbooks_journal_transactions.sql @@ -9,10 +9,12 @@ with entries as ( ) select - entries.id, entries.txn_date, lines.amount, account_id, lower(posting_type) as transaction_type, - 'journal' as source - {% if var('uses_classes') == "true" %} - , lines.class_id - {% endif %} + entries.id, + entries.txn_date, + lines.amount, + account_id, + lower(posting_type) as transaction_type, + 'journal' as source, + lines.class_id from entries inner join lines on entries.id = lines.entry_id diff --git a/models/transform/quickbooks_payment_transactions.sql b/models/transform/quickbooks_payment_transactions.sql index 878ee4f..eee2a97 100644 --- a/models/transform/quickbooks_payment_transactions.sql +++ b/models/transform/quickbooks_payment_transactions.sql @@ -8,22 +8,26 @@ with payments as ( ) -select payments.id, txn_date, total as amount, account_id, +select + payments.id, + txn_date, + total as amount, + account_id, 'debit' as transaction_type, - 'payment' as source - {% if var('uses_classes') == "true" %} - , null::bigint as class_id - {% endif %} + 'payment' as source, + null::bigint as class_id from payments union all -select payments.id, txn_date, total, ar.id, +select + payments.id, + txn_date, + total, + ar.id, 'credit', - 'payment' - {% if var('uses_classes') == "true" %} - , null::bigint - {% endif %} + 'payment', + null::bigint from payments join (select id from {{ref('quickbooks_accounts')}} where type = 'Accounts Receivable') ar on 1 = 1 diff --git a/models/transform/quickbooks_purchase_transactions.sql b/models/transform/quickbooks_purchase_transactions.sql index d1b7858..ec3ea88 100644 --- a/models/transform/quickbooks_purchase_transactions.sql +++ b/models/transform/quickbooks_purchase_transactions.sql @@ -28,26 +28,31 @@ with purchases as ( case nvl(purchases.credit, false::bool) when true then 'credit' else 'debit' - end as payed_to_transaction_type - {% if var('uses_classes') == "true" %} - , purchase_lines.class_id - {% endif %} + end as payed_to_transaction_type, + purchase_lines.class_id from purchases inner join purchase_lines on purchases.id = purchase_lines.purchase_id ) -select id, txn_date, amount, payed_from_acct_id as account_id, +select + id, + txn_date, + amount, + payed_from_acct_id as account_id, payed_from_transaction_type as transaction_type, - 'purchase' as source - {% if var('uses_classes') == "true" %} - , class_id - {% endif %} + 'purchase' as source, + class_id from d1 + union all -select id, txn_date, amount, payed_to_acct_id, - payed_to_transaction_type, 'purchase' - {% if var('uses_classes') == "true" %} - , class_id - {% endif %} + +select + id, + txn_date, + amount, + payed_to_acct_id, + payed_to_transaction_type, + 'purchase', + class_id from d1