Skip to content

Releases: CORE-POS/IS4C

2.11.0-2019.11.01

01 Nov 18:27
Compare
Choose a tag to compare

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

31 Dec 20:11
Compare
Choose a tag to compare

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

09 May 18:23
Compare
Choose a tag to compare

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

29 Dec 21:27
Compare
Choose a tag to compare

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
  • 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

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

30 Jun 18:26
Compare
Choose a tag to compare

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

26 Apr 19:53
Compare
Choose a tag to compare

@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
  • 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

23 Feb 18:49
Compare
Choose a tag to compare

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

17 Nov 17:08
Compare
Choose a tag to compare

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

27 Sep 21:49
Compare
Choose a tag to compare

Fixes a bug in saving members w/ the AR module enabled.

2.3.0-2016.09.08

08 Sep 16:45
Compare
Choose a tag to compare

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