Release Notes
Detailed descriptions of every feature, fix, and field change in each production build. For a quick overview, see the Release Highlights.
New v2.66 — Stock & Cost Accuracy
23 June 2026
Stock Inbound — counts only outstanding purchase orders
Stock Inbound on the Product page previously counted purchase-order lines in almost every status, so orders that were already Closed or Received still added to the inbound figure and overstated what was actually on the way.
- Stock Inbound now counts a purchase-order line only while its order is still outstanding — Pending, Sent, Confirmed, or Partially Received
- Lines on Received, Closed, or Cancelled orders are excluded
- The rule is built as an inclusion list, so any purchase-order status added in future will not silently count towards inbound
- Because Stock Inbound feeds Stock Projected, projected figures will also adjust for affected products — this is the corrected behaviour, not a new discrepancy
Visible on the Product form and the Products Report (Stock Inbound).
Free-of-charge products can be quoted and ordered
The cost check that blocks adding a product without a known purchase cost was also blocking products with a cost of exactly zero. This closes the matching known limitation noted in v2.64.
- Products with a WAC/EUR of zero — used for free-of-charge deliveries — can now be added to both Sales Quotations and Sales Orders
- Products with no purchase cost on record at all remain blocked, as intended — users are still directed to raise an RFQ first
Visible on Sales Quotation and Sales Order line items.
RFQ “Accepted” status is now system-controlled
The RFQ Status dropdown previously let a user select “Accepted” by hand at any stage, which could bypass the vendor-quote receipt and the Convert-to-PO step, weakening the audit trail.
- “Accepted” has been removed from the selectable Status options on the RFQ form
- It is now set automatically only when an RFQ in “Received” status is converted to a Purchase Order, preserving “Accepted” as a true record of conversion
Visible on the RFQ form (Status field), Purchasing menu.
Calculated Consolidated Stock — read-only and shown only where relevant
On the Product page, the Calculated Consolidated Stock field was editable and appeared on every product.
- The field is now read-only — its value is always derived by the system and should never be typed in
- It appears only on Consolidated Products, where the figure is meaningful, and is hidden on regular products
Visible on the Product form (Consolidated Products).
Open a sub-product from a Consolidated Product
Consolidated Products can contain several sub-products. A button is now available to open an individual sub-product’s record directly.
- Each row in the Product Consolidated Items report carries a button that opens the matching sub-product record
- The button lives in the report view; a button inside the subform itself is not supported on the platform
Visible in the Product Consolidated Items report.
Project Cost report includes cancelled POs — fix pending. Stock values only refresh on triggering events; a scheduled daily refresh is planned. ALC/EUR field is visible but not yet active. Calculated Consolidated Stock visibility resolves on form load — if the Consolidated flag is changed on an already-open form, the field updates after save and reopen (the flag is set once at creation in normal use).
B171 v2.64 — Stock Planning Suite
02 June 2026 · Builds 171 – 171.3
Stock Projected
Products now show a Stock Projected figure that answers a simple question: how much stock do we effectively have once we account for what’s on order and what’s already committed to customers?
A positive value means the product is covered. A negative value means demand exceeds what’s available and on order — a purchasing action may be needed.
What counts as open demand:
- All Sales Order line items that have not yet shipped, been delivered, invoiced, or cancelled
- Line items on partially shipped orders are included — until a line item has physically left on a shipment, it counts as open demand
- Line items already on a shipment that is in transit or delivered are excluded — the stock adjustment has already happened
When does it update:
- When a Purchase Order line item is added or changed
- When an inbound shipment is received
- When a Sales Order line item is added, changed, or removed
- When a Sales Order is cancelled
- When an outbound shipment is dispatched
Visible on the Product form and in the Products Report. Applies to Stock Products only. Negative values are highlighted on the Products list view. The field is read-only.
Consolidated Product Demand in Stock Projected
Stock Projected now also accounts for demand that reaches components through Consolidated Product sales. Previously, if a customer ordered a Consolidated Product, the demand was only visible against the consolidated product itself — the individual components showed no reduction in their Stock Projected, which could lead to over-committing stock.
- When a Consolidated Product is on an open Sales Order, each of its components now sees that demand reflected in its own Stock Projected, adjusted by how many of that component are needed per unit
- Example: a Consolidated Product requires 3 units of Component A. If 8 units are on open orders, Component A’s Stock Projected deducts 24 units (8 × 3)
- If a component belongs to multiple Consolidated Products, the demand from all of them is combined
- A component that appears both on its own Sales Order and within a Consolidated Product on another order is handled correctly without double-counting
Visible on the Product form and Products Report for any Stock Product that is part of a Consolidated Product.
Calculated Consolidated Stock
Consolidated Products now show a Calculated Consolidated Stock figure — the maximum number of units that can be assembled from the sub-products currently in stock.
- The calculation takes each sub-product’s Stock On Hand, divides by how many are needed per consolidated unit, and takes the lowest result. The weakest link determines the buildable quantity
- Example: a product kit requires 1 Monitor, 1 CPU, and 2 RAM Blocks. Stock is 10 Monitors, 8 CPUs, and 10 RAM Blocks. Buildable kits = 5 (limited by RAM: 10 ÷ 2 = 5)
- If any sub-product has zero stock, the result is 0
- Updates automatically when sub-product stock changes
- A one-click recalculation is available via right-click in the Products Report to set initial values for existing records
Visible on the Consolidated Product detail view and in the Products Report. The field is read-only.
Product Form: New Pricing Section
The Product form has been reorganised with a new Pricing section bringing together cost and profitability information in one place:
- Sales Price/CCY and Sales Price/EUR — the sales price is now shown in both the original currency and in EUR
- WAC/EUR — the Weighted Average Cost in EUR, as introduced in Build #169
- ALC/EUR — a placeholder for the future All-in Landed Cost metric (not yet active)
- Total Value (WAC/EUR) — the total stock value, calculated as Stock On Hand multiplied by WAC/EUR
- GP/EUR and GP% — Gross Profit in EUR and as a percentage, based on Sales Price and WAC
- “Consolidated Items” has been renamed to “Sub-Products” throughout the application for clarity
Fix: Additive Order Details on Shipping Documents
When creating a Shipment from an Additive Order, the Vessel name, Customer PO reference, and Incoterms were not being carried across. Additionally, generating a Commercial Invoice produced an error. All four issues have been resolved. Visible in the Additive Order report and on the resulting Delivery Note and Commercial Invoice.
Fix: Lost In Transit Status
The “Lost In Transit” option was missing from the Shipment Status dropdown. This has been corrected and is now available on the Shipment form.
Fix: Stock Inbound Showing Doubled Quantities
In certain cases, Stock Inbound was showing double the expected quantity — for example, 480 units instead of 240. This occurred when Purchase Order line items without a linked Shipment were being counted twice. The calculation has been corrected for both Stock Inbound and Stock Projected. Visible on the Product form and Products Report.
Fix: Order Dashboard Search Bar
The Sales Order search bar on the main Order Dashboard was not working. This has been fixed — users can now search by Customer PO, Reference, or Vessel as intended.
Updated Document Templates
The Shipping Label, Packing List, and Commercial Invoice generated from Sales Orders have been refreshed with updated layouts. The header section now includes the Customer Reference and Delivery Date. Available via Sales Order document generation.
Project Cost report includes cancelled POs — fix pending. Stock values only refresh on triggering events; a scheduled daily refresh is planned. ALC/EUR field is visible but not yet active.
B170 Approved Vendors & Stock Inbound
28 April 2026 · Builds 170 – 170.6
Approved Vendor Governance
A new Approved Vendors mechanism controls which products can be added to a Purchase Order for a given Vendor. Available in the Product form (Approved Vendors field) and the Purchase Order form (line item product dropdown).
- Each Product now has an Approved Vendors field listing the Vendors authorised to supply it. Users can add or remove Vendors manually on the Product form
- When an RFQ reaches “Received” status, the Vendor is automatically added to Approved Vendors on the relevant Product
- When creating a Purchase Order, the product dropdown shows only products approved for the selected Vendor
- When a PO is confirmed, the unit price and discount are written to Product Price History. If the PO was converted from an RFQ and the price is unchanged, the write is skipped to avoid duplicates
- A one-click backfill function in the Products Report populates Approved Vendors from historical data for existing records
Stock Inbound
The Product form now displays an automated Inbound Stock figure showing the total quantity on open Purchase Orders that have not yet been received. Visible on the Product form and Products Report.
- Applies to Stock Products only — Consolidated Products and non-stock products are excluded
- Updates automatically when a PO line item is added, changed, or when a shipment is received
- The field is read-only and shows 0 when no outstanding items exist
- Current Stock has been renamed to Stock On Hand as part of the FLOW stock naming convention
Consolidated Inbound Shipping Costs
Purchase Order shipping costs now consolidate both vendor-arranged and internally-arranged shipping into a single total. Available in the Purchase Order form and reports.
- Vendor-arranged shipping: entered manually on the PO. The field has been renamed from “Shipping Cost/CCY” to “Supplier Shipping Cost/CCY”
- Internally-arranged shipping: cost entered on the Shipment record is automatically passed to the PO once the Shipment reaches “Booked” status
- The total field “Total Shipping Costs/EUR” is the sum of both sources and updates automatically
Fix: PO Document — Manual Unit Price
When a user manually entered a unit price on a PO line item (introduced in Build #168), the value was not appearing in the PO PDF. The document was still reading from Product Price History. This has been corrected. Available in PO document generation from the Purchase Order report.
B169 WAC/EUR Cost Base Logic
16 April 2026 · Builds 169 – 169.2
New Cost Base: WAC/EUR for Sales Quotations and Sales Orders
This release establishes WAC/EUR (Weighted Average Cost in EUR) as the single source of truth for purchase cost across the SQ and SO lifecycle.
WAC/EUR is captured per line item as a read-only snapshot at four lifecycle events. Each trigger is independent — a recalculation at a later stage does not alter earlier snapshots.
- SQ Creation: WAC/EUR is fetched and stored when a Sales Quotation is created
- SQ Acceptance: WAC/EUR is re-fetched when a Sales Quotation is accepted — costs may have moved since creation
- SQ to SO Conversion: WAC/EUR is re-fetched when converting a Sales Quotation to a Sales Order
- SO Status to Shipped: WAC/EUR is re-fetched when the Sales Order reaches Shipped status — this represents the final cost basis
Product Selection Validation
A product without a Product Price History entry cannot be added to a Sales Quotation or Sales Order. The rationale: if there is no known purchase cost for the product, it cannot be quoted. Users are directed to raise an RFQ first, which writes to Product Price History on receipt. Visible on SQ and SO line items.
Sales Quote: With or Without Sub-products
Users can now choose to generate a Sales Quote with or without sub-products listed for Consolidated Products. Both options are available in the SQ In Progress and SQ Accepted reports.
New Reports
- Project Cost Report — Consolidates all POs tagged to a Project, providing a view of direct expenses. Available under the Projects menu
- PO | Closed Report — Dedicated view of Purchase Orders that have completed their lifecycle. Available under the Purchasing menu
B168 Manual PO Pricing
31 March 2026 · Builds 168 – 168.2
Manual Purchase Order Pricing
PO line item pricing is now fully editable. This removes the constraint that required a matching Product Price History record before a price could be entered, enabling spot purchases, web-sourced orders, and manual price entry. Available in the Purchase Order form (Purchasing menu).
- A new Unit Purchase Price field has been added to PO line items — always editable
- When a Product + Vendor combination exists in Product Price History, the price defaults from the latest record. Users can override any defaulted value
- When no history exists, the field is blank for manual entry
- “Purchase Price” has been renamed to “Total Purchase Price” on PO and RFQ line items and reports
- “Unit Price” on RFQ line items has been renamed to “Unit Purchase Price” for consistency
Bug Fixes
- RFQ → PO Discount %: Discount % now transfers correctly when converting an RFQ to a Purchase Order. Available via Convert to PO in the RFQ report
- Parent > Child batch processing: Follow-up fix. Batch scheduling for large Parent Shipments (10+ Children) now processes all children correctly
- PO save error: Purchase Orders without an associated Shipment can now be saved without error
Build 168.1 — Patch
RFQ currency validation: Currency must now be defined on Line Item #1 before submitting an RFQ. Once set, it auto-applies to all subsequent line items.
B167.1 RFQ / PO Patch
23 March 2026 · Build 167.1
RFQ and Purchase Order Fixes
- RFQ-to-PO traceability: a relationship lookup is now available in both forms and reports
- Convert-to-PO is now available at “Received” status (previously only at “Accepted”)
- Manufacturer and Manufacturer Article Number fields added to Product Price History
- RFQ PDF generation now available via the RFQ report
- Field mapping corrected: Vendor Reference and Order Status now pass correctly on RFQ-to-PO conversion
- Vendor Address confirmed passing correctly to PO documents
- Required field validation on status change to “Received” with user-facing alert listing any missing fields
Bug Fixes
- Parent Shipment cancellation: Cancelling a Parent Shipment no longer cancels its Children. Children are automatically disassociated and retain their current status. Visible in SHP | Pending report
- Material Movement on edit: Editing a Delivered Shipment no longer triggers unintended stock movements. 136 pre-Build #164 records retrospectively corrected
- RFQ duplicate numbering: Concurrent RFQ creation no longer produces duplicate numbers. Uniqueness check applied on save
B167 RFQ Module + WAC Rename
16 March 2026 · Build 167
Request for Quote (RFQ) Module
A new RFQ form is available under the Purchasing menu. RFQs allow users to formally request pricing from Vendors, capture their responses, and optionally convert accepted quotes into Purchase Orders. This replaces the need to manually create Product Price History records — Product Price History is now populated automatically when an RFQ is received.
- Status flow: Draft → Sent → Received → Accepted (Converted to PO). Available in the Create RFQ Report
- When an RFQ status changes to “Received”, the system writes a Product Price History entry for each line item
- RFQ line items include Vendor Article Number and Vendor Article Name as mandatory fields. When a Product + Vendor combination already exists in Product Price History, these auto-populate
- An accepted RFQ can be converted to a Purchase Order via the “Convert to PO” button in the RFQ report
- All line items on an RFQ must use the same currency
- RFQ numbering follows the series 30YYYY
Terminology Change: WAPP Renamed to WAC
The cost metric previously known as WAPP (Weighted Average Purchase Price) has been renamed to WAC (Weighted Average Cost). Where the rename has not yet been applied, WAPP and WAC refer to the same value.
WAC/EUR reflects the actual weighted average purchase price calculated from Purchase Order receipts. It does not include overhead costs such as handling, packing or shipping — an additional all-in cost metric covering these will be introduced in a future release. The calculation validity period is configurable under Admin Settings > Finance.
Bug Fixes
- Child Shipment costs: Shipping costs from Child Shipments are now correctly passed to the associated Sales Order. Visible in Sales Order Detailed View
- Large Parent Shipments: Parent Shipments with many Children (35+) now process correctly via batch scheduling
B156–166 Consolidated Releases (v2.23 – v2.42)
5 March 2026 · 44 tasks across Builds 156 – 166
Consolidated Shipments (Parent > Child)
It is now possible to group multiple Shipments under a single Parent Shipment. The Parent manages shared logistics data — tracking link, carrier, forwarding agent, tracking number, status and costs. These fields cascade to Children automatically. Shipping costs are distributed evenly across Children. When the Parent status changes, all Children and their downstream workflows are triggered automatically.
Stock Pick Registration with Automatic Shipment
A new form-based workflow for registering product movements without a linked Sales Order or Purchase Order. Three directions: Check-out (outbound), Check-in (inbound), Stock Movement (internal transfer). The system creates a linked Shipment automatically — stock adjusts when the Shipment status changes. Works on mobile and desktop.
Order Confirmation Email
An automated Order Confirmation email is sent when a Sales Order is confirmed. Right-click in the Sales Order report to trigger. Includes a link to the Order Confirmation PDF. Sent from orders@marinefluid.dk with CC to update recipients.
Additives Module — Workflow Overhaul
Blueprints removed (incompatible with Kanban). Status managed via dropdown. Document generation in Kanban view. Shipment generation enabled. Duplicate function retains Customer, Vessel and Contact. Auto-copy on Close → Forecast.
Other Key Changes
- Handling Units — Multiply function to create many identical H/U records in one action
- Organisation Entity ID (99YYYY) across all address forms
- Company Settings section in Admin Settings — starting with WAC calculation validity period
- Dynamic stock levels on active order line items (scheduled update)
- Product Notes passed to line items (read-only)
- Not-for-Sale products excluded from SQ and SO dropdowns
- Delivery Note (A4 vertical) from Shipment pop-up; old horizontal version retired
- Auto tracking links with suffix support for carriers like UPS
- Partial Shipment auto-flagged when line items are excluded
- Material Movement logging extended to X-type (cross) shipments
- PIC fields updated to use logged-in user identity
- Number prefixes removed from form fields — clean 6-digit numbers in reports and dropdowns
