Lab21 — Roller blinds · Calculation rules

Scale: group range vs. window measurement

At group level the advisor enters a min/max width and height across all windows in the group — informational, to quickly pick a suitable product line for the entire group. At window level the exact finished sizes of the frame apply; these determine actual system suitability and price.

Matrix lookup (per window)

price(height, width, priceGroup) = matrix[ceil(height → tier)][ceil(width → tier)][priceGroup]

Tiers are fixed per system (from the Erfal price list). On input the value is rounded up to the next tier ≥ the entered mm. If the height/width of the window falls outside the system range → the system is not available.

Suitability check (per window)

A system is available if and only if both conditions hold for the window's finished sizes:

ConditionFormula
Width within rangesystem.min_width ≤ window.finishedWidth ≤ system.max_width
Height within rangesystem.min_height ≤ window.finishedHeight ≤ system.max_height

Window-info validation

On + Add to order the combination of system + window info is checked. Blocking (aborts):

Advisory (warning, customer can confirm):

Group consistency

When adding, it is checked whether the product type already occurs elsewhere in the group. Adding a new product type to a group that already has other products → confirm dialog "do you still want to continue?".

Side-guide surcharge

Fixed amount per height tier (€16–€30). Lookup: sideGuide(height) = arr[ceil(height → tier)].

DIN EN 13120 — operating length

When fully extended, the operating cord/chain must sit more than 1.5 m from the floor (child safety). The configurator automatically proposes operatingLength = finishedHeight − 150 cm.

Order total

Order total = sum of all decoration totals across all windows in all groups, excluding TBD accessories (articles whose article number still has to be filled in).