Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: New stream
trial_balances
(#20)
This makes the most basic date-range request which is probably a good start, but there's more options: <details><summary>Details</summary> <p> <table> <thead> <tr> <th>Name</th> <th>Required</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>reportingperiodname</td> <td>Optional</td> <td>string</td> <td>Reporting period name. Required if not using <code class="language-plaintext highlighter-rouge">startdate</code> and <code class="language-plaintext highlighter-rouge">enddate</code>.</td> </tr> <tr> <td>startdate</td> <td>Optional</td> <td><a href="#get_trialbalance.date">object</a></td> <td>Opening balance date. Required if not using <code class="language-plaintext highlighter-rouge">reportingperiodname</code>.</td> </tr> <tr> <td>enddate</td> <td>Optional</td> <td><a href="#get_trialbalance.date">object</a></td> <td>Closing balance date. Required if not using <code class="language-plaintext highlighter-rouge">reportingperiodname</code>.</td> </tr> <tr> <td>debitcreditbalance</td> <td>Optional</td> <td>boolean</td> <td>Set to <code class="language-plaintext highlighter-rouge">true</code> to show starting and ending balance debits and credits. (Default: <code class="language-plaintext highlighter-rouge">false</code>)</td> </tr> <tr> <td>showzerobalances</td> <td>Optional</td> <td>boolean</td> <td>Show zero balance accounts. Use <code class="language-plaintext highlighter-rouge">true</code> or <code class="language-plaintext highlighter-rouge">false</code>. (Default: <code class="language-plaintext highlighter-rouge">false</code>)</td> </tr> <tr> <td>showdeptdetail</td> <td>Optional</td> <td>boolean</td> <td>Expand department detail. Use <code class="language-plaintext highlighter-rouge">true</code> or <code class="language-plaintext highlighter-rouge">false</code>. (Default: <code class="language-plaintext highlighter-rouge">false</code>)</td> </tr> <tr> <td>showlocdetail</td> <td>Optional</td> <td>boolean</td> <td>Expand location detail. Use <code class="language-plaintext highlighter-rouge">true</code> or <code class="language-plaintext highlighter-rouge">false</code>. (Default: <code class="language-plaintext highlighter-rouge">false</code>)</td> </tr> <tr> <td>reportingbook</td> <td>Optional</td> <td>string</td> <td>Reporting book ID. Use <code class="language-plaintext highlighter-rouge">ACCRUAL</code> or <code class="language-plaintext highlighter-rouge">CASH</code> depending on the company configuration. If Global Consolidations is enabled, you can provide a consolidation book ID instead. (Default: Configured reporting book ID)</td> </tr> <tr> <td>adjbooks</td> <td>Optional</td> <td>array of <code class="language-plaintext highlighter-rouge">adjbook</code></td> <td>Adjustment book IDs for journals that are enabled in the GL configuration. Use <code class="language-plaintext highlighter-rouge">GAAP</code>, <code class="language-plaintext highlighter-rouge">TAX</code>, and/or the IDs of user defined books. Do not append text to the IDs. If you need help, look at the Trial Balance page in the Sage Intacct UI to see what is enabled.</td> </tr> <tr> <td>includereportingbook</td> <td>Optional</td> <td>boolean</td> <td>Combine reporting book with other adjustment books. Use <code class="language-plaintext highlighter-rouge">true</code> to include the reporting book entries with entries from the specified adjustment books, or <code class="language-plaintext highlighter-rouge">false</code> to return only entries for the specified adjustment books.</td> </tr> <tr> <td>statistical</td> <td>Optional</td> <td>string</td> <td>Statistical accounts. Use either <code class="language-plaintext highlighter-rouge">include</code>, <code class="language-plaintext highlighter-rouge">exclude</code>, or <code class="language-plaintext highlighter-rouge">only</code>. (Default: <code class="language-plaintext highlighter-rouge">include</code>)</td> </tr> <tr> <td>departmentid</td> <td>Optional</td> <td>string</td> <td>Department ID.</td> </tr> <tr> <td>dept_subs</td> <td>Optional</td> <td>boolean</td> <td>Include department subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>locationid</td> <td>Optional</td> <td>string</td> <td>Location ID. This field is required in a multi-base currency company.</td> </tr> <tr> <td>loc_subs</td> <td>Optional</td> <td>boolean</td> <td>Include location subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>projectid</td> <td>Optional</td> <td>string</td> <td>Project ID or project group ID.</td> </tr> <tr> <td>projectid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include project subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>projecttypeid</td> <td>Optional</td> <td>string</td> <td>Project type. Do not use if Project ID is set.</td> </tr> <tr> <td>taskid</td> <td>Optional</td> <td>string</td> <td>Task ID. Only available when the parent <code class="language-plaintext highlighter-rouge">projectid</code> is also specified.</td> </tr> <tr> <td>taskid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include task sub dimensions. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>customerid</td> <td>Optional</td> <td>string</td> <td>Customer ID or customer group ID.</td> </tr> <tr> <td>customerid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include customer subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>customertypeid</td> <td>Optional</td> <td>string</td> <td>Customer type. Do not use if Customer ID is set.</td> </tr> <tr> <td>vendorid</td> <td>Optional</td> <td>string</td> <td>Vendor ID or vendor group ID.</td> </tr> <tr> <td>vendorid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include vendor subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>vendortypeid</td> <td>Optional</td> <td>string</td> <td>Vendor type. Do not use if Vendor ID is set.</td> </tr> <tr> <td>employeeid</td> <td>Optional</td> <td>string</td> <td>Employee ID or employee group ID.</td> </tr> <tr> <td>employeeid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include employee subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>employeetypeid</td> <td>Optional</td> <td>string</td> <td>Employee type. Do not use if Employee ID is set.</td> </tr> <tr> <td>itemid</td> <td>Optional</td> <td>string</td> <td>Item ID or item group ID.</td> </tr> <tr> <td>productlineid</td> <td>Optional</td> <td>string</td> <td>Product line. Do not use if Item ID is set.</td> </tr> <tr> <td>classid</td> <td>Optional</td> <td>string</td> <td>Class ID or class group ID.</td> </tr> <tr> <td>classid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include class subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>contractid</td> <td>Optional</td> <td>string</td> <td>Contract ID or contract group ID.</td> </tr> <tr> <td>contractid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include contract subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>warehouseid</td> <td>Optional</td> <td>string</td> <td>Warehouse ID or warehouse group ID.</td> </tr> <tr> <td>warehouseid_subs</td> <td>Optional</td> <td>boolean</td> <td>Include warehouse subs. (Default: <code class="language-plaintext highlighter-rouge">true</code>)</td> </tr> <tr> <td>userDefinedDimensions</td> <td>Optional</td> <td>array of <code class="language-plaintext highlighter-rouge">userDefinedDimension</code></td> <td>User defined dimension filters.</td> </tr> </tbody> </table> </p> </details> <details><summary>Test results</summary> <p> ``` tests/test_core.py::TestTapIntacct::test_tap_cli_prints <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 6%] tests/test_core.py::TestTapIntacct::test_tap_discovery <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 12%] tests/test_core.py::TestTapIntacct::test_tap_stream_connections <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 18%] tests/test_core.py::TestTapIntacct::test_tap_valid_final_state <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 25%] tests/test_core.py::TestTapIntacct::test_tap_stream_transformed_catalog_schema_matches_record[trial_balances] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 31%] tests/test_core.py::TestTapIntacct::test_tap_stream_record_matches_stream_schema[trial_balances] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 37%] tests/test_core.py::TestTapIntacct::test_tap_stream_record_schema_matches_transformed_catalog[trial_balances] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 43%] tests/test_core.py::TestTapIntacct::test_tap_stream_returns_record[trial_balances] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 50%] tests/test_core.py::TestTapIntacct::test_tap_stream_schema_is_valid[trial_balances] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 56%] tests/test_core.py::TestTapIntacct::test_tap_stream_primary_keys[trial_balances] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 62%] tests/test_core.py::TestTapIntacct::test_tap_stream_attribute_is_numeric[trial_balances.startbalance] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 68%] tests/test_core.py::TestTapIntacct::test_tap_stream_attribute_is_numeric[trial_balances.debits] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 75%] tests/test_core.py::TestTapIntacct::test_tap_stream_attribute_is_numeric[trial_balances.credits] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 81%] tests/test_core.py::TestTapIntacct::test_tap_stream_attribute_is_numeric[trial_balances.adjdebits] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 87%] tests/test_core.py::TestTapIntacct::test_tap_stream_attribute_is_numeric[trial_balances.adjcredits] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [ 93%] tests/test_core.py::TestTapIntacct::test_tap_stream_attribute_is_numeric[trial_balances.endbalance] <- .venv/lib/python3.13/site-packages/singer_sdk/testing/templates.py PASSED [100%] ``` </p> </details> Closes #13
- Loading branch information