Release Notes 9.11.25:

1. Export to QuickBooks Online (via API wrapper) from Accounting Exports Window:

Definition of Done:
- QBO export types appear in dropdown when configured.  
- Date range filter is always visible, but SP applies it only when `use_dates=Yes`.  
- Export Data button calls API wrapper instead of generating CSV.  
- Records marked as exported in Elecate match wrapper response.  
- Re-export rules enforced (allowed for Customers/Sales, blocked for Payments).  
- Logs available with full traceability.

AC1 — App setting parsing:
Given: the AccountingExport smart string includes QBO values  
When: the window loads  
Then: it correctly parses each entry into `unique_name`, `description`, and `use_dates`  
And: the Export Type dropdown shows the descriptions.

AC2 — Grid population (Refresh behavior):
Given: a QBO Export Type is selected  
When: the user clicks **Refresh**  
Then:  the window calls the corresponding **stored procedure** for that export type  
And: the stored procedure applies the date filter **only if** `use_dates=Yes`  
And:  if `use_dates=No`, the stored procedure ignores the date inputs and returns all candidate records  
And: the grid displays the returned records with their `isexported` status.

AC3 — API export:
Given: the Export Type is QBO_Customer, QBO_Sales, or QBO_Cash  
When: the user selects rows (bulk action, or batch processing) and clicks **Export Data**  
Then: window calls the appropriate API endpoint  
And: passes the selected IDs as a comma-delimited query parameter  
And: includes `X-Database-Name` with the database name.


AC4 — Success handling:
Given: the API marks, exported records as `isexported=1`  
When: the export completes  
Then: the window refreshes the grid  
And: shows which records were exported successfully.  

AC5 — Error handling:
Given: the API returns partial or full failures  
When: the export completes  
Then: the window displays an error summary with failed IDs and reasons  
And: only failures remain available for retry (subject to re-export rules).


AC6 — Re-export rules:
Given: a record is already exported  
When: the export type is QBO_Customer or QBO_Sales  
Then: the user can still select and export it again.  
But When: the export type is QBO_Cash  
Then: the record cannot be re-exported (checkbox disabled or filtered out).

AC7 — Button labeling:
Given: the Export Type is QBO_*  
When: the export button is displayed  
Then: it shows **Export Data** (not Export to CSV).

AC8 — Logging & telemetry:
When: an export is attempted  
Then: the app logs export type, IDs, user, database, API endpoint, outcome per ID, and timestamp.

2. [Technical Debt] Create dedicated database user to connect with services:

  • Provide a user to connect to the Empower databases
  • Document scope of user

3. As a Support Agent, I need the development team change from Canaries to Miners Founding and Bittersweet databases:

  • The following Client databases are changed to Miners: 
    • Founding Farmers
    • Bittersweet Catering.