Inventory tables include Created by, Modified by, Created at and Modified at columns
API: version now matches the app's version
[fix] API: part must be passed when creating a purchase order item
Column selector keeps the scroll
Projects table: production field (how many project builds are in production and in which state) now is exported into CSV as text
[fix] Workspace settings: dialog scrolling to top once a setting was changed
[fix] Labels: create a label under another with the same name as an existing one
[fix] Importing trees (e.g. labels): consecutive imports failing
[fix] Chance for context menu not enabling some items
API: restrictions.customer can now be set on /storage
Storage inventory table now also lists reserved inventory (before, only on-hand)
[fix] Inventory report value: chance for wrong value when using inventory restrictions
[fix] Unreserve inventory whenever removing projects or project revisions with project builds in progress
Project builds: can now be reverted from assembled to in-progress
[fix] Project builds: chance for reserved inventory not to be consumed
Row alternate colouring can now be enabled/disabled through the Alt-A shortcut
Parts: when bulk editing parts, Unit Cost can now be edited
Generic parts: the Supply Chain tab is now available, showing available quotes for all parts listed under the Alternates tab of that generic part
Factory lead time is now displayed on quotes (if available). This information comes from Octopart and doesn't account for stock that might be already marked as on-order by the supplier and with estimated delivery dates
When removing a Project, ask to remove the corresponding in-house part as well
[fix] Purchase lists: quote being unset on currently selected item and when switching tabs
[fix] Scroll on tables not being saved
On tables with sub-rows (e.g. BOM with sub-assemblies), Filters can now search for data on those sub-rows
[fix] Sub-assemblies being automatically expanded (flatten view) on BOMs when Multi-level is selected
Inventory barcodes can be used to look up the part it refers to on a table (instead of a specific inventory item itself)
[fix] Inventory barcodes not going-into inventory
[fix] Context menu using previously selected items
[fix] Sales orders: stock not being updated on reserved items after marking the whole sales order as delivered
You can now generate barcode labels for inventory, which include current storage location
When individually moving inventory through the Storage > Inventory table you can now move partial quantities
[fix] Context menu incorrectly disabling some menu items
[fix] API: part.alternates, part.forSale and part.sellingPrice can now be updated
Some improvements affecting table performance
[fix] Purchase order: total and unit prices not updated if quantity is set to zero
[fix] Parsing USD prices including the dollar sign
[fix] API: POST /parts/{part_id}/inventory, storage, lot and rev not being correctly parsed
[fix] Issues: not able to copy cell containing message
[fix] Sales: chance for infinite loop
[fix] Chance for a RangeError: Maximum call stack size exceeded error when using the context menu