If a sale is shipped to the store’s own address, use the default tax type(s) instead of DBT, even if in a DBT-enabled state. (Useful for online store “Store Pickup”.) (POS-13385)

Fix for 4.4.144 post-init upgrade step in some cases with tax exemptions.

Flush after *every* pre-init / post-init upgrade step.

4.4.185

Increase length of image filenames from 100 to 255.

Add “Image” as name for an ImageRecord.

Multi-Vendor improvements: Implement PO vendor change (with and w/o option to replace all items). When putting products on a PO for an alternate (non-preferred) supplier, set Case Cost not Unit Cost (from the Vendor Product’s Standard Cost). Add Vendor P/N to default column layout for Receiving Rollup. When selecting a new vendor, default to the current vendor. (POS-13337)

Updated SSL-303 Label Form

Fix crash creating new site record when site number 999 is already in use. (POS-13383)

4.4.183

Fix time zone discrepancies with ISI order downloads and import in general. (POS-13378)

4.4.182

Enhance Inventory Transfer to Ignore Filters (POS-13375)

Fix to not count non-sales inventory activity of dynamic-priced items as consignment (so they don’t get included in consignment statements). Force dynamic-priced consignment items to be IT_OFF. Default tracking to IT_OFF and vendor to NONE for all dynamic pricing models, not just Fill-In Price. (POS-13376 cont.)

Possible fix for more cases of fatal error loading record after session is closed (due to race condition with closing a screen).

Updated CONS-101 Standard Consignment Payout to use the retail price (tranline.retail) from the sale instead of the current price in the item record to report the retail price at the time of the sale. Also fixed the total at the bottom of the page to only show on the last page.

Treat Internal Use and Donation sales as pre-discount consignment. (POS-13373)

Remote Operation fix to remove dependency reference points for nodes that have been removed. (It’s still way better to make sure all the changes are processed at all other nodes before removing a node.)

Remote Operation fix for rare case of two updates (from same source) with exact same timestamp.
New Build: 4.4.174, new Working Version: 4.4.175 Kurt 4/24/2019 9:24 AM
POS-13366: Fix tender table navigation issues (while still preserving recent fix to navigate to next line after selecting “Leave On Sale” from OOS prompt in main sale screen).

Fix 4.4.173 upgrade step to work on postgres as well as sample data (Derby).

Loyalty Club fixes: Fix “On January 1st” reset mode. Process calendar year and anniversary rest modes *before* adding new points from a sale. Revert customer type if crossing *backward* across customer type reward threshold. Don’t reissue coupons when backdating and recalculating points, but do give credit for any un-issued coupons based on new points, to be included in the *next* sale’s coupon issuing. Never reset points when backing out changes for previous values on a modified sale. Fixed cases where an expired membership failed to reset points. Added IX_LCSUM_LOYALTY index to speed up some queries. Dialog at end of backdating memberships now accurately reports number of changed summaries. (POS-13294)

Fix crash in Sample Data due to large number of new custom fields (by loading tranline.category with a separate loadProxy rather than having Hibernate try to fill everything with one select statement).

Fix so changing from a (recalled) Donation to a normal sale reverts each line to the default tax type, rather than NT.

Major rework of Remote Operation Task (among other things, to commit all rcvd message to the database before processing).

Add missing Void Sale Task Level to Security Settings (it was being set behind the scenes, but you couldn’t see it or change it individually).

Major fix for Inventory Change Report. 1) Fixed the calculation for when ending date is less than the current date. 2) Fixed an issue with Inventory Location vs. Sales Location. 3) Fixed an incorrect field name in the summary.

Fix migration to conform to 15-char limit when it generates a machine name for a station record with blank machine field.

4.4.162

Fix so Item Info on PO Screen is updated after Ctrl-F4, in case anything changed in the Item Record. (The Sale Screen was previously modified to do this.) (POS-274)

Fix JSON error uploading items to WooCommerce due to a new meta_data field in the response, “_json_schema”, with an array value instead of a string; this must have been triggered by some recent upgrade or configuration change (e.g. plugin) on our sandbox server. [WordPress 5.1.1, WooCommerce 3.5.6, various plugins.]

When importing customers w/balances, include *all* adjustments/credits generated from the same import in one Day-End posting.

Fine-tune timing of Remote Operation Task receiving to prevent infinite loops with visibility timeouts. Make message received logging output more compact. Show date and system info at top of log, even after clearing it to run a new task.

Add java version and memory size to startup info in ArtisanTasks log. Fix memory available in About info to take future pool expansion into account. Show exception info before DONE msg in RemoteOperationTask.

4.4.161

Enhanced the Sales By Item Report (SAL-101) to have an option to include NON-POSTED transactions.

Allow merging of customers with A/R statements on the same date (but still not generation of *new* statements on an existing date). (POS-13348)

Update INV-056 Inventory Adjustment Detail Report Tweaks and Fixes

More fixes for upgrade step 4.4.144 to avoid transact check constraint violations from null TAXEXTYPE with ANYEXEMPT = ‘Y’ when upgrading across multiple versions including earlier post-upgrade steps that cause Transact totals to be updated (such as 4.4.66 and 4.4.132).

Remote merging fixes for a) inserts with *multiple* duplicate key fields (such as user short and full names), b) inconsistent changes to Finished Date from two different nodes (copy Sale Date to Finished Date if TSTAT >= READY and Finished Date is null).

More remote operation task fixes: fix the sort order for processing changes; fix the receive message loop to read *all* of the available messages. Change the visibility timeout to 1/2 the task interval (but at least 30 seconds) rather than always 30 seconds.

Change Remote Operation RPA strategy to process changes in order of timestamp between nodes and sequence number from the same node, rather than processing all changes for each node before moving to the next node. This was causing FK violations due to ordering issues with 3 or more active nodes.

Fix null pointer displaying Item info on PO screen for a (new) PO line w/o a request date. Fix to strengthen constraints and PO screen code so all non-trivial stock units *must* have a request date (for PO w/o Request, based on the PO Issue Date). Clean up various subtle problems in date field editing on PO screen. (POS-13351)

Support copying Real Data to Sample Data even when Remote. In general, both copy to sample data and prepare new remote node now allow either method of copying data: direct copy on server or backup/restore (silently default to direct copy if nobody else is using the database). (POS-13320)

More fine-tuning of progress messages for pre- and post-init upgrade steps.

Cleanup after partial creation of remote node when canceled at backup file selection. Fix failure to turn on remotes when an (inactive) site node (migrated from 3.X) already exists for the main site (by deleting that node first). When creating a secondary node, if that datascope already exists (with number reservations), just take it over (but only if it’s marked inactive). In both cases, fail if the existing node is not inactive. Lay some more groundwork for (still NYI) multi-site nodes.

Fix ConcurrentModificationException changing Customer Type & Discount in Sale Screen (by having updateTranLines work with a *copy* of the list of lines). (POS-13346)

4.4.155

Fix to set NT (No Tax) on all lines of an order imported with zero tax, not just the first line. (Fix assert sessionContains in adjustStock to skip permanent items.) (POS-13340)

Fix errors about detached instances in Scan Mode due to underlying problems exposed by recent record locking changes: scan mode records are not persistent, but some of the code wasn’t checking for that and was saving them to the database anyway. Delete existing scan and scan job records during upgrade. (POS-13343)

Fix so vendor invoice totals include Fix spurious AUTO-CORRECT adjustments (of On Order Qty) when adding units to a brand new Vendor Invoice while receiving w/o PO (due to internal ordering problems). Fix so pending stock corrections received w/o PO record activity using the timestamp of the original OOS sale. Fix so partially received pending stock corrections set inventory change type (to IR_OOS_PENDING) on the split line. Fix so Import comes before (below) any other inventory activity with same timestamp. (POS-13341)

Add Artisan Tasks icons to installer.

(Build fixes for remote upgrade changes.)

Fix so derby.log is written to the local folder, along with log.txt, rather than the program folder (actually, it was the current directory); clean up any leftover derby.log files in the program folder during uninstall (for now). Fix so Derby isn’t booted until and unless we actually open Sample Data, and completely deregister and free up its memory if we switch from sample data to Real Data. Fix to write log.txt even when running in the development environment (which was broken when IDEA switched from “.ipr” project format to “.idea”, but we didn’t notice). Intercept JDBC log output and send it to log.txt, but only if “debug” level logging is enabled in log4j.properties for “java.sql”.

4.4.154

Fix up remote data for previously missed remote upgrade steps. Improvements to upgrade progress reporting.
Fix remote upgrade mechanism’s failure to upgrade the local CHANGE_LOG records. Split remote upgrades into individual steps (when run from the Artisan side rather than ArtisanTasks); slower, but resilient to crashes.

Fix failure to mark default search scheme for a context as default in preferences, in some cases.

Fix so changes to subsidiary records mark the parent (Item, Transact, or Variant Template) as modified and create audit log entries, even when nothing in the parent record itself changes. In particular, this was causing ISI to miss changes to Variant Attributes or Values. (POS-13330)

Increase length of Item field “Additional Categories” from 70 to 200. (POS-13345)

4.4.147

Add Misc Program Option to Transfer Inventory By Cases. Fix duplicate and incorrectly-named columns in tables with indirect fields. (POS-13327)

Fix null pointer during migration of data that had remote sites. Add missing caching of number properties in data session. (POS-13328)

Add support for multiple line pole displays like the Logic Controls / Bematech LV4000U. (POS-13310)

New Label Stock 1 x 1/2 (2 Across)

4.4.144

Fix to store Non-Tax Category explicitly in TranLine, so it doesn’t get recomputed from current category hierarchy when transact is modified. This also prevents a transact check violation when modifying cost on a zero-cost item that has been previously sold on a sale with non-taxable items, in some cases.

Fix loss of lock on customer record while saving sale, which fired an assert. This caused issues when saving a recalled sale.

4.4.143

Fix for “isRecordStale cannot be used with detached instances” saving a TranLineRecord in some cases. (POS-13325)

Treat zero-priced item changed to non-zero in Sale Screen as a Fill-In-Price item for purposes of tranline.retail calculation, but with an extra confirm. When confirming saving Item Record with zero price, suggest they might want to use Fill-In-Price instead.

Disable Internet Store Inclusion for deleted Items, Categories, and Vendors, and Discontinued Items. When deleting a Category Record, move any sub-categories to this one’s own parent. (POS-13266)

Show consignment details on Item Record Screen if Preferred Vendor is a consignment vendor, even if the consignment feature is disabled. Enhance migration to enable Base-License features (such as Consignment) iff they were enabled or used in 3.X. (POS-13213)

Fix from Number Properties changes for ordering issue during new database creation.

4.4.78

Fix for double-subtraction of manual QOH change when location-tracking but showing total QOH on Item Record Screen. Many related event handling changes in common code to clarify user-initiated events. (Fix one case of Session is Closed while changing Column Layouts [via windowResize].) (POS-13256)

Fix so Sale Screen Reference Table is not re-sortable, and is in order of applying payments (with Ctrl-A), with *oldest* first (within each class [credits, then finance charges, then delivered transactions, then pending layaways/orders]). (POS-13252)

4.4.76

Fix some subtle race conditions in record screen event handling that caused (among other possible problems) an assertion failure when changing an Item’s Preferred Vendor while not using Multi-Vendor. (POS-13238)

Add (hidden) Shift-Ctrl-N action in Inventory Counting Screen to set all (selected) to Not Counted. (POS-13241)

Fix for QuickBooks export for customer deposits such as a layaway or special order payment.

Increased SQL database security for security-related tables such as Authorization Tasks and User Records. The increased measures protect these tables from external tampering which could defeat the security control. For example, an unscrupulous person who had somehow gained access to a back-end database password (NOT a normal Artisan password) could attempt to increase their access level and gain access to parts of Artisan they would otherwise be restricted from. These back-end direct modifications are now flagged with warning messages.

More WooCommerce variant fixes.

4.4.54

Major performance improvement for Reset Counts in Inventory Counting. Fix Reset Counts to not re-prompt for Site.

Internet Store Interface: Fix join to STOREMAP in variant check to match on store name (and table name) so as not to pick up entries from another task.

Remote Operation Work Continues

4.4.51

Improvements to Item Quantity Correction Screen to allow for wildcards and multiple items.

Fixed Adjustment Detail report to show user, changed date format and allowed the detail line more space.

Internet Store Interface: Shopify: Workaround stupid lack of search by SKU API: After searching by title (product name/description) download *entire* list of products. This should only happen during first-time startup or if someone manually deletes products from Shopify.

Fine-tune messages on Repair Quantities screen.

Remote Operation Work Continues

4.4.48

Fixed Sales Summary Report to honor the Hide Cost flag in the Day End Misc Program Options.

Fix for recent inventory changes, so voiding or force-delivering orders find their own stock units. (POS-13207)
Add site to stock warning message. Reserve full amount for IR_ORDER_FORCE, even in stock warning case.

More changes to dependencies for virtual columns (like those just added), and the dependency code itself.

4.4.34

Added SITENAME and SITENUM to Purchase Requests, Pending Orders, View/edit Purchase Order, Receiving, Vendor Invoices, CC Payment Log, Sales, Voids, Orders, etc. for The Escape. Future enhancement would be to include all the potential sites such as request site vs. ship to site.

Fix line placement in Report Designer that was broken by POS-11536. Fix pop-up title for lines to be updated dynamically to show the line’s coordinates. (POS-13201)

Allow ClientState.getServerTime() to be used even when not in a Data Worker, and remove corresponding assert. (Most of the time it uses cached info, anyway, and doesn’t do data work.) (POS-13204)

Change ISI download to do Orders before Customers, so we can make sure to include all customers referenced by the downloaded orders. Where practical, also include any customers updated or added since the last run time, but not all providers can do that efficiently (WooCommerce, in particular). Don’t download ALL customers every time (as Magento and Woo were). Switch to v2 of the WooCommerce API. (POS-13198)

Remove incorrect assert from POS-13194. (POS-13203)

Fix to consistently remove reservations when special orders are voided or delivered (by checking TSTAT whenever a stock unit’s request reason is a reserved type), but keep the linkage to the order for historical purposes. Fix to use the current site from each stock unit rather than the order line’s inventory location when removing reservations (except for the added On-Hand reservation in the IR_ORDER_FORCE case). (POS-13194)

Log corrections from repair tool to log.txt like we do for implicit auto-corrects to avoid negatives.

Fix for missing slip number from some processed PPLOG entries that actually do have sales slips (including data fix for existing cases). Allow “Add Missing Sale” to work even with no slip number and no sale. Add double-checks to disallow payment processing w/o a slip number. (POS-13161)

Fix Open Item A/R Statements to include ALL payment lines for included invoices, even with multiple indirections. (POS-12883)

Optimization: Avoid database access to get server time, once we have “alive” timestamps to compute it from locally.

Misc Java 8 cleanup.

Fix null pointer copying a sale with kit lines. Protect against enabling property changes while copy is in progress. Don’t recompute kit line cost during copy.

Assert that number assignment must be called from a *writable* data worker.

Remove overzealous assert (introduced with Pricing Chart changes) that fired when deleting a record from a record table screen.

Fix to not display (zero-priced) kit components or base products on pole display. Show discount on pole display when non-zero and qty is one. (POS-13174)

4.4.25

Partial performance improvement for imports.

Add new inventory change type, IR_XFER_RESV, to move reservations along with on-hand when transferring reserved inventory.

Fix Pricing Chart Line migration to zero out Fixed Price when a Markup Formula is used. (3.X overloaded it to show a sample price.)

Add Sales Slip Style payment type match “Any EXCEPT Credit Cards”.

Tweak 4.4.19 upgrade step to sort list of unbalanced transactions.

Fix to not change site on untracked stock units. (This was causing a constraint violation voiding a GC sale in a multi-store.) (POS-13170)

Tweak 4.4.19 upgrade step to copy list of unbalanced transactions to the clipboard.

Fix 4.4 upgrade failure in some cases with data started in 3.X, due to numblock references to duplicate datascopes. (POS-13166)

Fixes & refinements for kits on POs. (POS-13133)

4.4.24

Make D/L scanning more flexible to allow for scanners that send 2nd char as CR instead of LF (e.g. 2016 model DS4800s).

ISI: Fix to upload all (visible, online) variants if any of them change, since uploading the base product may reset the variants list. Included deleted or non-online base products if they have any visible online variants.

More ISI fixes, including: protect against some null pointers, don’t generate a tender if d/l order doesn’t have any payments, log when order import starts.

ISI: Only download orders in “Processing” state.

Various refinements to payment entry in Sale Screen (Ctrl-A and/or Pay button): Fix to disable max enforcement when switching to pay all invoices. Reduce payments by the amount already paid (or credit applied) on the current sale.

Fix null pointer in Shopify download when there are no new or changed customer records.

4.4.19

Fixed problem with A/R Aging report.

Added a new database constraint check to ensure that no transactions are ever saved where the money doesn’t match the total when the transaction is not any kind of special order or layaway. This upgrade may cause challenges when upgrading to this version, especially if your data was migrated from older 3.X versions.

4.4.18

Improved import of transactions to more accurately set the sale date.

Fix to honor the coupon limit of zero, which means no limit. This is in the new advanced coupons feature.

4.4.17

Various Internet Store related improvements and fixes.

Fixed crash when setting a manual discount when there is a BOGO quantity break scheme.

Fix bulk-change Item Availability which was broken recently.

Improved Combo Box display on certain screens.

4.4.00 – NEW FEATURES in 4.4

Multi-Vendor
Keep up with different vendor part numbers and cost per vendor for the same item. Specify which vendor is the primary supplier for this item.

Drivers License Age Verification
Confirm that a customer is eligible to purchase a particular product based on age. (Fireworks, Alcohol, Etc.)

Surcharge Items
Automatically add various charges on specific items in either a dollar amount or percentage. Used for associations or township fees, cleaning charges, service fees, or other fees that need to be added to the sale when another item is sold, especially if the fee is based on a percentage of the first item.

BOGO (incl. nFers)
Buy One Get One offers and special discounting. Examples: Buy One get One Half Off, Three for 9.99.

Advanced Coupons (new feature)
Get special offers only when a coupon has been used.

Customer Forms (including Designer)
Great for obtaining signatures for disclaimers and legal requirements. Scan a drivers license to collect data and then print the form for the signature.

Reserved Receiving Notes
Get pop-up notifications when an item is received that was on special order. The note can then be printed on a sheet printer.

Random Weight UPC Codes (“Deli Scales”)
When the weight is measured on a deli scale, the clerk enters the item code and the total and weight are printed on the label. When these labels are scanned into Artisan, it loads the correct SKU and then calculates the quantity sold based on the total price.