Files
PowderCoatingLogix/RELEASE-NOTES-2026-04-06.md
T
2026-04-23 21:38:24 -04:00

3.2 KiB
Raw Blame History

Release Notes — 2026-04-06

QuickBooks Desktop Migration Wizard — Import Quality & UX

Bug Fixes

Customer Payments Import (607 skipped → 614 imported)

  • Invoice import (Step 6) no longer creates Payment records. AmountPaid and Status are set correctly from the balance detail file, but Payment record creation is deferred to Step 7 so that customer payment history includes richer data (check numbers, bank account names, exact payment dates).
  • Step 7 now correctly creates payment records for pre-settled invoices without duplicating them.

Vendor Bills Import — App Crash

  • Eliminated 1,000+ mid-loop database round trips during the bills import. Bills and their line items are now saved in a single batch, preventing request timeouts on large imports.

QuickBooks Online — QB Desktop Parity

  • Verified QB Online migration does not share the payment matching bugs fixed on the Desktop side.

UX Improvements

Import Result Reporting

  • "Skipped" badge changed from yellow (warning) to gray — skips are not failures.
  • Added "Already Recorded" badge (gray) for records that were intentionally not re-imported because they already exist. No longer shown as "Skipped."
  • Vendor Bills & Payments step now shows "X Bills Imported / Y Payments Applied" as the primary result instead of a confusing combined Total/Imported count where Imported > Total.

False-Alarm Warnings Eliminated The following QB structural row types and report artifacts now silently pass through all importers without generating warnings:

Step Previously Warned Now
Chart of Accounts NONPOSTING accounts (Estimates, Purchase Orders) Silent
Catalog Items Non-service types (DISC, GRP, PMT, OTHC), group markers Silent
Inventory Category/group headers, Total/TOTAL subtotal rows Silent
Vendor Bills Bill Pmt -Check, Item Receipt, Credits, and all other non-Bill rows Silent
Vendor Payments Item Receipt, Credits, zero-amount payment rows, and all other non-Bill Pmt rows Silent

General Rule Applied Each importer now silently ignores any row type it doesn't own, rather than maintaining a whitelist. This prevents unexpected warnings when customers have QB files containing row types not seen during testing (Credits, Journal Entries, Purchase Orders, etc.).


Seed Data

  • SeedDataService is now re-runnable — each seeder runs in its own try/catch with ChangeTracker.Clear() on failure, so one failing seeder no longer aborts the rest.
  • Added SeedBillsAsync (4 bills: Paid, PartiallyPaid, 2× Open) and SeedExpensesAsync (5 expenses) for demo company.

Subscription Plan Limits

  • Plan limit checks moved from POST (after form submission) to GET (when the "New" button is clicked). Users are now redirected with a clear message before filling out a form they can't submit.
  • Applies to: Quotes, Jobs, Customers, Company Users, Catalog Items.
  • Job Details photo upload button is disabled with a tooltip when the photo limit is reached, showing current usage (e.g. "3 / 5 photos used").

PDF / Quote

  • Rush charge now appears as a line item in the Quote PDF between Discount and Tax, styled in orange to match the on-screen display.