Releases: CORE-POS/IS4C
Releases · CORE-POS/IS4C
2.11.0-2019.11.01
New:
Tag items as discontinued based on batch type
- Log escalator plugin for email notification on
error/warning/notice/etc - Audit record when no-sale is used
- Support for socket mobile scanner via
ScanBox browser. Must be configured with input
field id "socketm". - Instacart transaction data import
- MN eWIC support, in theory
- Carry cost through Co-op Deals batches
- Finished POS transactions can be re-opened
- Tracking non-member customer purchases via
payment card data - Tools to scan & report on out of stocks
- Email collection via pinpad (Ingencio)
- Datacap-based cashback prompt option
- EquityInfo lane plugin
- SPH_Datacap_Gen2 module
- API endpoint for read/update member data
Improved:
- Configurable shrink entry defaults
- More flexible item name autocomplete
- Totals on shrink report
- Expanded like code info fields
- Batch "trim unchanged" supports like codes
- Autocoupon handles discountable the same
as manual house coupon entry - Inventory mobile keyboard style differs
depending on products.scale - Cashier metric reporting can utilize warehouse
data to report on arbitrary periods instead of
just what's backed by CashPerformDay - Per-store last sold in item editor
- Manual sign tool supports LegacyWrapper layouts
- Offset uniformly available in sign tools
- Auto & manual import options for US Foods invoices
- Auto-invert epay server order when primary fails
- Ingenico iSC480 support in NewMagellan driver
- Auto-chosen dates on house coupon reports are better
- Survey receipt notification during transaction
- Extra UI information on store transfer POs
- Emailing a PO supports all export formats
- Pick tags w/ prices
- Visiting member configurable on houes coupons
- Duplicating a special order uses most recent
order contact info rather than owner contact info - Type-to-filter selects can handle spaces
- Expanded plugin-provided backup tools to support
mydumper, borgbackup - Backend option to reverse card returns in addition
to sales - Optionally filter house coupons to just current
- Super department filter on item editor
Fixes:
- Patronage data handling #998
- Overlapping member search results #1002
- Price checking member-only sale items
- Updates against "arch" tables
- Proper subdepartment chaining across
store tabs in item editor - Don't mis-populate products.last_sold
- Tipping department setting #885
- Mailchimp email comparison isn't case sensitive
- Standardize cashback handling #1022
- Added Chrome User-Agent to UNFI download
script - Intercept plugin URL composition
Dev:
- Increased Postgres support
- Fixed PHP7 + SQL Server basic problems
- FannieUploadPage auto_skip option
- Same log format for SQL & PHP errors
- SQL and PHP problems logged at WARNING level
rather than DEBUG - Lane updates & batch forcing can be queued through
Redis to make the webpages respond faster without
waiting for the work to finish. - Member/customer numbers > one billion are reserved
for card-tracking accounts - Vagrantfile provided. Requires puppet.
2,10.0-2018.12.31
New:
- Editor for RemotePrint table
- Receipt printing can default to disabled
- Lane-side inventory level check
- Support for different card processors on front
and back ends - Buy one get one half off house coupon
- Optional HTTPS support
- DB connectivity in pos.exe
- Sales lift detail on batch reporting
- End Cap planner
- Audit logging on special orders
- Contribution tool to examine margin
- Tipping (in theory)
- Same payment card report
- Nth receipt functionality (periodic / random
additional content on receipts) - 1-up sign layout
Improved:
- Use type-to-filter selections more consistently for
vendors and likecodes - Include tax rates in routine server-lane sync
- Reprint receipts via AJAX to avoid user-facing fatal
errors - View all purchase orders for a given vendor
- Expanded options on autocompleting item names
- eWIC support (in theory)
- Automatable lane status
- Members report distinguishes types of equity
- Batches can include a cost as well as price. Presently
this has no UI but will update costs when the batch
is applied - Uploading Basics spreadsheet is faster
- Warning dialog on PLU items that aren't inUse
- Lane low-inventory warning
- Default flags for discontinued & out of stock
- Shrink tool supports variable price UPCs
- Auto-selected multipliers on sign prices are
less aggressive - Improved Instacart support
- UI for managing CustomerNotifications
- LDAP authentication times out more sensibly if
the directory server is down - Individual item sign counts
- Configurable price rounder
- Product flags on advanced search
- "Per day" limits for house coupons as well as
the existing total usage limit
Fixes:
- Don't let IP detection override submitted value
- Overhauled margin weighting for weekly sales data
- Query problem assigning cashiers to stores
- Query problem with invalid datetimes
- Ensure reports with a store field are using it
- Cashback shouldn't persist across transactions
- Syncing custdata works correctly
- Arrows on paired batch UI
- Solved duplicate INSERT with javascript-based file
upload processing - Correct cost on variable price items even when quantity
rounding issues are present - Problem get MasterSuperDept s when working
with multiple named databases - Leading whitespace doesn't break customer search
2.9.0-2018.05.09
New:
- Lane offline flag
- Market Bucks plugin
- Lane-side performance metrics via PROFILE
- Dummy paycard responses in training mode
- CPW Price import task
- Loading animation on lane login & card transactions
- Two-factor auth in Office/backend
- E2E Credit & Gift transactions via ID Tech SecureMAG
- Lane as Electron app
- Catalog item editor module to delete extra vendorItems
records from very large catalogs - Option to "stripe in" extra rows on item editor's
base module. Item Flags as proof-of-concept - Proof-of-concept Rosie integration plugin
- Proof-of-concept Stripe integration
- TCP printing (not new so much as removed and re-added)
Improved:
- Shelf audit supports pending and complete
special order items - Lane cache warming to speed up first scan
- Shelf audit counts can be imported into
perpetual inventory - More meta data with like codes
- Do-not-duplicate flag for special orders
- Option to skip first X rows for spreadsheet uploads
- Vendor editor view-only permissions
- Linea works w/ receiving purchase orders
- Better group & sale price interop #952
- Locking for tasks to prevent concurrency
- Error logging notes when an exception causes the message
- Better handling of zero dates (0000-00-00)
- Embed rate in TAXLINEITEM records
- Table for compenents of composite tax rates
- Various quick keys improvements #968
- Better SPO <=> PO linking on items
- New items report utilizes products.created for
better performance - Handle multiple B2B payments in one transaction
- House Coupon editor links UPCs to item editor
- Mailchimp integration updated to use v3 API
- Toggleable charts on General Day report
- Simplify item-by-item PI count entry
- Flag SKU-matched Co+op Deals items
- Purchase Order flag to mark as not-inventory
- Paycard balance checks are available without requiring
a subtotal first - Install UI warns on unsupported PHP versions
- Special Order item SKU field is user editable
- Item Editor responds better to resize / small screen
- Correlated movement supports per-store results
- Auto-prefix TenderReport classes #981
- Receipt thank you message can be disabled #978
- Update Instacart export format to latest spec
- Day-of-week filter for hourly sales & transaction
reports - Auto-create PaymentPlan entities to line up with
recurring equity payments - Scale integration supports inUse flagging
- Price change batches integrate with service scales
- Product import handles multistore records
- Configuration option to disable discount-at-register
on service scale / UPC prefix "2" items - Paycard entry method is tracked as swipe/chip/nfc
instead of treating all three as swipe - Ordered but not received items no longer count
toward inventory once any item in the order has
been received
Fixes:
- Staff AR Payroll deduction saves correctly
- Removed class-cache concept. Ultimately too
complicated for minimal gains - Margin Tool From Search handles single/multi
store correctly - Various query issues from moving MySQL to
strict mode during CI tests - Receipt message mods configuration UI #965
- Build issue w/ ComPort.dll
- DB detection during lane install crashes less
- Include PartialBatches in default install
- Tax/FS/etc toggles don't mess up customer search
- Dies with an error message if the environment is
broken instead of having an infinite redirect loop
See #976 - Queueing binary data (signature images) through Redis
is handled correctly - Handle sequence correctly when splitting or duplicating
special orders
2.8.0-2017.12.29
Lane:
- New
- Human Readable Identifier (HRI) can be added to transaction
for use in place default XX-XX-XX identifier #884 - Cashback option for integrated transactions
- Single button suspend (SUSPEND) and resume (RESUME)
- pos-watcher.exe to ensure pos.exe is running
- Icons for driver apps
- ReducedVariableItem UPC handler to flag items sold at reduced price
- Human Readable Identifier (HRI) can be added to transaction
- Improved
- Greater run-time configurability of NewMagellan driver
- RemotePrint refinements after testing
- Write "Chip" instead of "Swipe" on receipts as applicable
- Allow periods (.) or dashes (-) when entering transaction
number for UNDO - Get card balance(s) from PaycardTransactions instead of
sticking them in the session - Use department margin to estimate cost on open rings
- Fixes
- Void integrated transaction cancels in-progress signature
if needed - Enforce void limit correctly
- Add missing constructor parameters in a couple places
- Init LC_MESSAGES manually if needed (Windows, mostly)
- Restore "0" as age entry bypass
- Only use alternate configurations if ini.json is absent
- Void integrated transaction cancels in-progress signature
Office:
- New
- Plugin for integrating with AWS
- Audit log tracking edits to batches
- Exit Inventory flag for batch types
- Task to trim inventory count history
- Product Review UI for tracking price reviews on items, vendors
- Configurability for service scale integration #932
- Tool to manually mark member-only house coupons as used
- UI for refunded integrated card transactions
- Multi-level EOM Report in CoreWarehouse
- Invetory count history report
- MyWeb plugin to drive personalized customer web sites
- Plugin to import CPW pricing via HTTP
- Advanced Search for Customers
- Tracking batches. Not a sale or a price change. Just a defined
set of items you can run movement on. - Pick Tags for receiving orders
- Map likecodes to vendor SKUs
- Invoice import tools for Alberts, RDW, CPW
- Expose floor location(s) in item editor (under sign/web data)
- Flag for offline lanes #947
- Movement on reduced items reporting
- Improved
- Scan variable price barcodes in ShelfAudit
- Wider columns for storing email addresses #882
- InstaCart size, unit export formatting
- Faster, transactional ExcelUpload
- Handling SKUs in POs from SPOs w/o collisions
- Report link from within viewing a batch
- Verify batch is current before unsaling items
- Set start & end dates on partial batches
- UI tweaks when adding catalog items to POS items
- Faster Co+op Deals import process
- Scan tags option from Vendor Aliases
- Different search & filter options on batch list all
work together - Use integrated card type selection to launch correct
type of transaction - Remove free-text vendor entry; vendor in item editor is
always a dropdown selection - Use chosen more frequently on large dropdown lists
especially for vendor lists - Multistore support in CoreWarehouse data
- Give TagDataSource a default implementation so it works as
expected if a custom subclass isn't present - Filter values that could be interpretted as formulas out of
Excel/spreadsheet output formats #933 - Flag manually specified inventory count date/times by setting
seconds to special values - UI refinements on scanner-based receiving
- Admin-only option to update sign text while printing signs
- Attach correct storeID to backend-reversed transactions
- Don't auto-zero inventory counts. It isn't helpful.
- Link SPOs in POs as SPOs instead of as regular items
- Format and index a column designated "UPC" when importing a generic
spreadsheet - Sharable quick lists, clear tabs individually
- Better character set support
- Invert house coupon list order
- Remove SPO items from PO if the SPO is cancelled/closed
- Make batch page more print friendly
- Use screen-size-conditional CSS to shrink the top header on mobile.
Also dynamically reduce table widths on PO related pages, quick list.
- Fixed
- Allow non-integer pars for inventory items
- In Use flag behavior with all item editor search variants #881
- MemberREST aggregates in SQL strict mode
- Saner auto-add behavior for building POs #893
- Truncate when adding to products in SQL strict mode
- Fix over-long UPCs in BarcodeLib::padUPC
- Consistency between single and multi-vendor PO
building UIs #901 - Prevent non-numeric UPCs when cloning items
- Fix unicode-related errors in PO building JSON values
- Don't count log record quantities in reporting queries
- Set products.batchID when forcing a batch
- Correct scan rate at end of bad scans page
- Product list error #926
- Handle odd new card transaction responses in PcDailyReport
- Point requests that don't have a correctly formatted start
or end date at dlog (or dtransactions) to avoid run away
queries accidentally scanning through all of history - Use SQL strict valid dates #935
- Don't re-specify database name on connect & create #936
- Local & Vendor handling on product list #937
- New & old customer storage tables #938
- Use fully qualified names for views spanning two or more
databases #942 - Always send by-count value on service scale item updates
- Sync handler for tenders that doesn't overwrite lane-side
tenders.TenderModule values - Edit handling for READ ONLY database settings JSON
- Increase z-index on datepickers that open under other
page elements - Treat PO quantity <= 0 as valid
Dev:
- BasicModel column default accepts boolean true as a special
value. The model will verify the column has a non-NULL default
but the model will not attempt to make the default any specific
value. In other words if the column default is 1 and you change it
to 2 the model won't suggest reverting that change. - Graphing migrated from d3.js to Chart.js
- Javascript errors included in Lane error logging
- Testing tool to verify all varieties of lane errors are logged correctly
- Modular and git-friendlier approach to custom table syncs #898
- C# driver errors can be written into lane error log
- Lane class discovery only applies to plugins. Everything
outside of plugins must use a namespace so it can be located
without exploring the directory tree. AutoLoader and CoreLocal
are excepted from this requirement because they have to be
loaded to initialize class autoloading for everything else. - Connection tracking within SQLManager to restore timed out
connections. This is to reduce random CI run failures due to
a SQL connection timeout but it does mean the SQLManager object
stores connection credentials and var_dump'ing (or similar)
that object could expose them. - Experimental class caching idea. See 0e828dd
- Driver exes and dlls are versioned. The build numbers are essentially
random and serve only as a way to verify whether two lanes are using
the same binaries or not. - SQLManager throws an explantory exception when connecting fails #941
2.7.0-2017.06.30
New:
- Price checker UI for unattended / in-aisle
scanner - Enabled sign and shelftag layouts is configurable
- Fractional cases are allowed in POs
- Vendor Aliases as a new approach to handling edge
cases. Replaces SKU mapping, breakdowns, and scale
linked PLUs a single solution - Tab-separated option on reports
- Narrow flag in productUser for items that require
narrow shelftags - products.created column to distinguish new items from
never-sold items. One-time task provided to populate.
May take awhile to run. - Group Edit has a further option to update almost any
products field en masse. - Backend tooling to setup virtual patronage for existing
lane-side plugin - Kitchen ticket printing
See #870
Note this is a spec implementation that hasn't seen
production usage - Partial day sales batches
See #869
Note this is also a spec implementation that hasn't
seen production usage
Improved:
- Tabbed PO display is faster
- Items w/o SKUs can still be added to POs from SPOs
- Separate exports on Build List (ShelfAudit)
- Limit SPO vendor choices to known vendors
- PO view defaults to last 30 days intead of current month
- Pending vs placed PO fields are more consistent
- Direct qty adjustors on pending PO view
- Vendor account numbers can be stored w/o enabling
fully automated orders - % discount house coupon options are only available
with no-minimum-purchase coupons to prevent costly
mistakes - Item editor shows perpetual inventory status if
applicable - Same-vendor POs can be merged
- Multi-UPC advanced search can allow SKUs too
- "Live" and "Count" perpetual inventory pages combined
into a single list - UPCs on default 12up layout
- Event handling in EMV device driver minimizes active
waiting time - Mark PO items in current or upcoming sales
- Support for alternate, newer ESC/POS image storage
- InstaCart export updated to match v3.0 spec
Fixed:
- Backend tender report doesn't crash w/ no results
- Lane install page doesn't crash on locale field
- Legacy tag wrapper passes correct description to
PDF generator - Credit POs aren't counted in inventory
- Ignore old composer copy of ADOdb even if present
- LaneTenderReport heeds OverShortTools DB config
- All Office plugin database models specify a preferred
database - Batch Before After report... works
- When a new item is found in an existing vendor catalog
that fact is displayed on screen. - Advanced Search permalinks work with POST
- Converting PO CSV to HTML email handles empty cells
- Notes field for sales batches
- Redirect chain advanced search => Create batch => batch view
Miscellania:
- Experimental Spanish transaltion of lane
- Algorithmic pars abstraction layer (work in progress)
- Dropped ancinet, invalid subdepts sample data
2.6.0-2017.04.26
@gohanman gohanman tagged this 6 minutes ago · 0 commits to master since this tag
-
New
- tenders.EndTransactions allows for tender types that do not
immediately end the transaction if amount due <= 0 - [Some] GS1 databar coupons verified to work
- Movement tags layout that includes weekly baseline movement
and tracks drift since the last printing - SQLManager can specify connection character set
- Product Attributes (see #833)
- houseCoupons.virtualOnly restricts coupon usage based on
whether a virtual copy has been assigned to the customer's account
- tenders.EndTransactions allows for tender types that do not
-
Improvments
- New-style task to manage virtual coupons on the backend
- Reports arrived at from advanced search can be downloaded
- Transfer tool has 2nd coding option for internal transfers
- products.last_sold ignores special orders
- Price-less tag layout includes a SKU barcode
- Template for 3 checks/page check paper stock
- Backend receipt reprints show discount amount
- FloorSections generally handle storeID better
- Linea scanning handles UPC-E barcodes
- Import ad text has an overwrite option
- More choices for patronage allocation based on owner status
- SPINS date handling sends most recent possible data even when
the week numbering scheme involves a negative offset - Purchase orders highlight items that are on sale in blue
- Purchase orders can be directly submitted via email
- Single-vendor PO works with handheld scanner
- All built-in reports assigned to a category
- Build List can hop to advanced search w/o a copy/paste step
- NumPad notifier improves capabilities of touchscreen lane
-
Fixes
- Virtual coupon validity isn't time sensitive
- MemTotalAction check needs namespace
- Group item edit requires expected user account permissions
- Group edits don't cascade across items
- SpecialDept session injection in factory method
- Broken lane session is no longer an infinite redirect loop
- Prevent assigning duplicate cashier passwords
- Item search heeds store IP setting
- ABGroup price method inherits item's tax, foodstamp settings
-
Internal
- Removed referneces to some old tables
- Linea-related javascript moved to a linea.js file
- Lane copes with failed database connection a bit more smoothly
- Use transactions more often on INSERT heavy sections to avoid
extra overhead with InnoDB tables - NamedSession wrapper prevents side-by-side Office installs from
accidentally loading one another's classes - Void class on the lane was renamed VoidCmd for PHP 7.1 compatibility
2.5.0-2017.02.03
New:
- Launch manual sign tool from advanced search
- ItemList sign layouts with several items per sign
- Direct editor for server-side parameters table
- Vendor catalog upload option that updates rather
than replaces the existing catalog - Report showing which item was a coupon was [probably]
used for - Report showing item movement discrepancy between
stores - Tool to build store transfers as purchase orders
- CLI tool to check SPINS' week numbering
- Returns report
- Optional coupon family code enforcement
- Report of organic sales and % of sales
- Tool for selectively filtered member lists
- Task to compress stored signature images
Improved:
- Text overrides on signs behave consistently from
searches and from batches - Service scale fields can be updated without changing
or knowing price - Duplicate items are avoided in sign making
- UPC field on advanced search accepts UPCs with dash
or space delimitted format - SKU added to several reports
- UNFI invoice import writes receivedQty correctly in
individual units when possible - Build-list tool has three separate tabs
- Clearer terminology on breakdown items editor
- Coupon report shows manufacturer name when possible
- Last quarter sales aggregation is store-aware
- Batch creation from search does not apply any rounding
unless requested. - Cut all option on batches
- Discount(%) eligibility of house coupons depends on the
discount type - Better user ID tracking on purchase order activity
- Member contact info import leaves omitted fields
unchanged - Repeat field to duplicate an entire set of signs
- Asynchronous UDP message handling in NewMagellan allows
some blocking ActiveX calls to be cancelled rather than
creating a backlog of pending messages from POS - Statements Plugin can send AR statements via email
- Batch list can be filtered by date
- Changing sign layout no longer resets other edits
- Most report headers stay on screen as the report
is scrolled. - Storing item costs with 3 decimal places is supported
- Eliminate unnecessary POS => device communication to reduce
intermittent serial protocl errors
Fixed:
- Bug preventing editing of purchase order items with
non-ascii characters in their descriptions - Shipping markup applied correctly in price calculations
- Member AR editor sets ChargeOk as expected
- EMV transactions can be voided
- Editor for vendorItems handles cost field correctly
- $0 price does not crash sign creation
- Large text centering on receipts
- Missing fields don't crash batch-from-search
- Age restriction math no longer hits 32-bit limitations
- Several issues that prevented installing Office
on PostgreSQL (this is still in no way recommended for
production use) - Organic flag handling in UNFI imports
- Item flags are saved for all stores' items
2.4.0-2016.11.17
New:
- Items can be tagged as requiring narrow tags
- Hybrid layout puts standard and narrow tag in
the same PDF - Total sales by vendor report
- Tool to import co+op basics cost adjustments
- Backend plugin for tax holidays
- Setting to invert displayed AR balance for
very simplistic prepay setup - Extra cost fields to track promo/sale cost
as well as invoice/received cost - Placeholder system to build service scale
expanded text from components - Basic functionality to automatically generate
purchase orders and submit them via email
Improved:
- Expanded reporting options for shrink report
- Item order history links to orders/invoices
- Batch report includes rings
- Signs use product.unitofmeasure if present
and size is numeric - Omit SKUs that duplicate UPCs from standard
- Older style shelftag layouts are accessible
via sign tools - Sign UI shows origin entities instead of just
freeform text - Margin-from-search is store aware
- Universal use of gettext on the lane side for
internationalization - Vendor pricing batch tool includes options for
"all" and "all retail" - Local total for receipt queries transaction
rather than relying on session value - Lane-side house coupon list omits coupons with
a name ending in *. List also heeds coupon
start date. - inUse discrepancies don't count as item
synchronization differences - Linked PLU field to tie repack items to
equivalent bulk items - Super departments can be deleted
- Open rings and refunds do not interfere with product
search
Fixes:
- Case size calculation on non-received orders
- Item editor preserves non-zero pricemethods
- Applying batches for QttyEnforcedPM
- Preserve EBT balance on decline responses
- Better check digit handling in tags
- Chained item editor department selections work
with multiple store tabs - Save member charge limits correctly
- Advanced search movement filter
- Sending fixed weight items to Mettler Toledo
scales - Load tender mapping from tenders table
- Removed AR department hardcoding on lane views
- Bad links in origins editor
- Item status checker is store aware
- Use negated cost on void and refund records.
Margin report handles historical, non-negated
values too.
Dev:
- ReceiptFormat includes a line width parameter
- Office includes twig for i18n
- Input parsing using ParseResult object rather
than an array
2.3.1-2016.09.27
Fixes a bug in saving members w/ the AR module enabled.
2.3.0-2016.09.08
New:
- Report showing percentage of sales by batch and/or pricing type
- Report showing movement discrepancies between stores
- Email & text notifications for special orders (uses carrier
email => SMS gateways) - Lane ItemAction callback for each record added to the transaction
- Physical location mapping supports multiple stores
- Unit file to run NewMagellan via systemd instead of old-style init
- NCR scale support [theoretically; config steps need to be documented]
- Lane debug setting to show AJAX-related errors directly onscreen
- New "LegacyWrapper" sign layout wraps old-style shelftag layouts so they
can be used via advanced search - Single tag printing via Zebra printer (thanks @finn; may still need more
documentation) - Optional monolog support for more robust log distribution & aggregation
- Tools to locate disparaties between store items
Improved:
- Price rounding goes down when within a cent
- Item auto-pars calculated separately per store
- House coupon list includes start dates
- Co+op Deals import handles arbitrary width CSVs
- Separate customer display related javascript
- Non-UPC special order entries prompt for additional info
- Extra alert if a new item's UPC potentially matches multiple
existing items' department - Log lines are hidden in backend receipt reprints
- StoreBatchMap is optional in single store mode
- Office does automatic UPC-E expansion
- Printing sale-price signs via advanced search obeys batch's
sign multiplier settings - Error handler logs all fatal-style errors that terminate execution
- Automatically create a default store if none exists
- Single item movement includes average as well as total sales
- First day of the week is configurable
- Lane consistently shifts back to login screen if current session
goes pear shaped. - Vendor catalog items can be deleted independently
- Build List shows UPCs in a textarea for copy/paste
- Purchase order view includes vendor-specific notes
- Lane class loading uses less disk I/O
- Disable EMV "declined" receipt that are never desired by customers
and cause cashier confusion.
Fixes:
- Append-to-null notice in origins editor
- Incorrect store handling in members by zip report
- Several pos install/config interface bugs
- Several bootstrap'd special order interface bugs
- Lane touchscreen javascript issues
- Unsale item handles all stores
- Missing "use" statement on DDD callback
- Batches with single quotes in the name can be deleted
- Margin tool from search calculates department margins correctly
- Base item module still saves if no stores exist
- FannieCRUDPage handles first record saving without HTTP errors
- A couple lane instances where "CL" was case-sensitive
- BigGroupPM works as intended now
- Bring built-in ADOdb in line w/ upstream