Update BOM for Lighting Products
LightingBOMRule
Calculates non-3D lighting-related products and updates BOM. This is the advanced version of the rule LightProductBOMRule.
Notification level: Not applicable
Key | Value |
---|---|
ID | LightingBOMRule |
Translation key | Not applicable |
Behavior
This rule calculates non-3D products which are needed for lighting solution such as transformers, cord sets and dimmer control and updates the Bill Of Materials (BOM).
The computation is based on the type of lighting products, the sum of wattage and the total number of lights and is done for each group of adjacent units separately. If the total wattage or the number of lights in a group of adjacent cabinets is not covered by the conditions defined in the overload, then there is no product (transformer, power supplys cord, intermediate cord, dimmer etc.) added to the item list and to the BOM.
Notes
- The products (transformers, cords, dimmers etc.) can be shared by several cabinets if they are adjacent.
- Cabinets are adjacent if they are in contact on one side (left or right) and if their back side is aligned. For wall and high cabinets, they must also have the top aligned. Two base cabinets with the same dimensions placed against each other on the back (island) are also considered as adjacent. In other cases, cabinets are not considered as adjacent by this rule.
The Range Manager needs to define in the overloads the following information:
- Wattage ranges
- Lighting count ranges
- Lighting products needed for each combination of wattage range and lighing count range
- External ID of the supported lighting products (which will trigger the rule and be considered for wattage computation)
Trigger Conditions
BOM computation.
Overload Parameters
The overload must be an array which each item should contain two parameters: supportedLightsID
and lightingWattageRange
.
supportedLightsID
Mandatory parameter – Type: array
List of external IDs of lighting products supported for this rule. In case of generic products, it should use the ID of generic product instead of the ID of mapping product.
Notes
- When calculating the wattage of lights product, if it is a generic product, it will use the
wattage
parameter of the mapping product.- The external IDs of lighting products for each item of the overload array should be exclusive. That's to say, for one lighting product external ID, it can be only presented in only one item of the overload array.
Key name | Type | Default value | Description |
---|---|---|---|
supportedLightsID | Array | – | Mandatory The list of external ID of lighting products supported |
lightingWattageRange
Mandatory parameter – Type: array
Array of objects describing the information of the following:
- Range of the wattage value
- Range of the lighting count
- Products required based on wattage range and lighting count range
Key name | Type | Default value | Description |
---|---|---|---|
min | Integer | – | Mandatory The min value of the wattage range. The value is excluded when comparing with the calculated wattage value. |
max | Integer | – | Mandatory The max value of the wattage range. The value is included when comparing with the calculated wattage value. |
lightingCountRange | Array of object | – | Mandatory The range of lighting count and products required for each ranage |
The lightingCountRange
key contains an array of object, and each object defines the range of lighting count and products required for the specific wattage range and lighting count range. The following table presents the structure of object.
Key name | Type | Default value | Description |
---|---|---|---|
min | Integer | – | Mandatory The min value of the lighting count range. The value is excluded when comparing with the calculated lighting count value. |
max | Integer | – | Mandatory The max value of the lighting count range. The value is included when comparing with the calculated lighting count value. |
products | Array of object | – | Mandatory The list of products which are required for a specific combination of wattage range and lighting count range. For each object, it contains: - id : the external ID/ Array of external IDs of product required. For example: the id of the transformers, the cords, or the controllers - quantity : the quantity required |
Here is an example of the lightingWattageRange
:
{
"min" : 0,
"max" : 10,
"lightingCountRange" : [
{
"min" : 0,
"max" : 3,
"products": [
{
"id" : "id of 10w transformer",
"count" : 1
},
{
"id" : "id of power supply",
"count" : 1
}
]
},
{
"min" : 3,
"max" : 9,
"products": [
{
"id" : "id of 30w transformer",
"count" : 1
},
{
"id" : "id of power supply",
"count" : 1
}
]
}
...
]
}
According to the example shown before, if the total wattage calculated equals to 9 and the total count of lights product equals to 3, then it needs one 10w transformer and one power supply. If the total wattage calculated equals to 8 and the total count of lights product equals to 4, then it needs one 30w transformer and one power supply.
Sample Overload value
Here is an example of the overloads for this rule.
[
{
"supportedLightsID": [
"15468"
],
"lightingWattageRange": [
{
"max": 10,
"min": 0,
"lightingCountRange": [
{
"max": 90,
"min": 0,
"products": [
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
}
]
},
{
"max": 30,
"min": 10,
"lightingCountRange": [
{
"max": 90,
"min": 0,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
}
]
},
{
"max": 40,
"min": 30,
"lightingCountRange": [
{
"max": 90,
"min": 0,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 2
}
]
}
]
}
]
},
{
"supportedLightsID": [
"14126",
"13944",
"14081",
"18106"
],
"lightingWattageRange": [
{
"max": 10,
"min": 0,
"lightingCountRange": [
{
"max": 3,
"min": 0,
"products": [
{
"id": [17717],
"count": 0
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 0
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 9,
"min": 3,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 0
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 12,
"min": 9,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 18,
"min": 12,
"products": [
{
"id": [17717],
"count": 2
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 21,
"min": 18,
"products": [
{
"id": [17717],
"count": 2
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 2
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 27,
"min": 21,
"products": [
{
"id": [17717],
"count": 3
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 2
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 30,
"min": 27,
"products": [
{
"id": [17717],
"count": 3
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 3
},
{
"id": [17718],
"count": 1
}
]
}
]
},
{
"max": 30,
"min": 10,
"lightingCountRange": [
{
"max": 3,
"min": 0,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 0
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 9,
"min": 3,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 0
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 12,
"min": 9,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 18,
"min": 12,
"products": [
{
"id": [17717],
"count": 2
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 21,
"min": 18,
"products": [
{
"id": [17717],
"count": 2
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 2
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 27,
"min": 21,
"products": [
{
"id": [17717],
"count": 3
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 2
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 30,
"min": 27,
"products": [
{
"id": [17717],
"count": 3
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 3
},
{
"id": [17718],
"count": 1
}
]
}
]
},
{
"max": 40,
"min": 30,
"lightingCountRange": [
{
"max": 3,
"min": 0,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 9,
"min": 3,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 12,
"min": 9,
"products": [
{
"id": [17717],
"count": 1
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 18,
"min": 12,
"products": [
{
"id": [17717],
"count": 2
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 1
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 21,
"min": 18,
"products": [
{
"id": [17717],
"count": 2
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 2
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 27,
"min": 21,
"products": [
{
"id": [17717],
"count": 3
},
{
"id": [17715],
"count": 0
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 2
},
{
"id": [17718],
"count": 1
}
]
},
{
"max": 30,
"min": 27,
"products": [
{
"id": [17717],
"count": 3
},
{
"id": [17715],
"count": 1
},
{
"id": [17714],
"count": 1
},
{
"id": [17711],
"count": 3
},
{
"id": [17718],
"count": 1
}
]
}
]
}
]
}
]
Illustration
Scenario 1 - Only one type of lighting product in adjacent group
The illustration below shows four wall cabinets, each of them has a top light. For this adjacent group, the total wattage is 10w and the total count of lights is 4. Based on the sample overloads shown before, it needs one 30w transformer, one power supply cords, and one wireless dimmer.
The computation of bom is the following:
{
"dbID": "17717",
"reference": "30w_transformer_f",
"name": "30W transformer F",
"commercialDescription": "30W transformer",
"quantity": 1,
....
},
{
"dbID": "17714",
"reference": "power_supply_cord_f",
"name": "Power supply cord F",
"quantity": 1,
...
},
{
"dbID": "17718",
"reference": "wireless_dimmer",
"name": "Wireless dimmer",
"quantity": 1,
....
}
Scenario 2 - Multiple types of lighting products in adjacent group
The illustration below shows an adjacent group which contains one base cabinet(with drawer light), one high cabinet(with top light) and one wall cabinet(with top light). In this group, the total wattage of drawer lights is 2.9w and the total count of lights is 1; while the total wattage of top lights is 5w and the total count of lights is 2. Based on the sample overloads shown before, as it contains two different type of lighting products (the top light and the drawer light in different table of overloads), they will be calculated separately. For top lights, it needs one 10w transformer, one power supply cords, and one wireless dimmer. For drawer lights, it needs one 10w transformer, one power supply cords and one wireless dimmer. In total, it will have two 10w transformers, two power supply cords and two wireless dimmers.
The computation of bom is the following:
{
"dbID": "17717",
"reference": "10w_transformer_f",
"name": "10W transformer F",
"commercialDescription": "10W transformer",
"quantity": 2,
....
},
{
"dbID": "17714",
"reference": "power_supply_cord_f",
"name": "Power supply cord F",
"quantity": 2,
...
},
{
"dbID": "17718",
"reference": "wireless_dimmer",
"name": "Wireless dimmer",
"quantity": 2,
....
}