Skip to content

Administration - Smart Quote / Product / Rules / Functions

Booleans

when
    // is ATTR1 present?
    var attr = Attribute_TXT(x => x.NameIs("ATTR1") );
    // AND is ATTR2 present?
    var attr2 = Attribute_TXT(x => x.NameIs("ATTR2") );
    // AND is Configurator present + check values
    var config = Configurator(
        (attr1.ValueIs("VAL1") || attr1.ValueIs("VAL2"))
        &&
        (attr2.ValueIs("TEST")
        )
    );

// if all lines in when block are true...then block is executed
then
    config.AddTask("PROCESS").Time(5m).Detail("Machine to print").AddResource("RES_01");

Log Information

when
    var config = Configurator();
    // first line is AND(ed) with the second (both must be true)
    var attr = Attribute_TXT(x => x.NameIs("ATTR1") && x.ValueIs("") );

// if all lines in when block are true...then block is executed
then
    config.LogInformation("Attribute 1 is blank and recommended");

Log Warning

when
    var config = Configurator();
    var attr = Attribute_TXT(x => x.NameIs("ATTR1") && x.ValueIs("") );

then
    config.LogWarning("Attribute 1 is blank (required)");

Log Error

when
    var config = Configurator();
    var attr = Attribute_TXT(x => x.NameIs("ATTR1") && x.ValueIs("") );

then
    config.LogError("Attribute 1 is blank (required)");

Add Attribute

when
    var config = Configurator();
    var attr = Attribute_TXT(x => x.NameIs("ATTR1") && x.ValueIs("123") );

then
    config.AddAttribute("ATTR2", "New Value");

Add Item

when
    var config = Configurator();
    var attr = Attribute_TXT(x => x.NameIs("ATTR1") && x.ValueIs("123") );

then
    // MATERIAL1 must exist in the Item catalog. Error is thrown if not
    config.AddItem("MATERIAL1", 2.0m); // quantity of 2 (m is syntax for decimal number)

Add Task

when
    var config = Configurator();
    var attr = Attribute_TXT(x => x.NameIs("ATTR1") && x.ValueIs("123") );

then
    config.TaskAdd("TASK1");
    // Additional chained functions available with Add Task (can appear in any combination or sequence):
    // config.TaskAdd("TASK1").Detail("Turn to 2 inches OD");
    // config.TaskAdd("TASK1").Time(5m);   // Set time to 5 min
    // config.TaskAdd("TASK1").Cost(0m);   // Set cost to 5 min.  Overrides calculated cost (time * total shop rate)
    // config.TaskAdd("TASK1").Price(0m);   // Set price to 0. Overwides calculated price (cost * markup)
    // config.TaskAdd("TASK1").Detail("Turn to 2 inches OD").Cost(0m).Price(0m);   // Set price to 0. Overwides calculated price (cost * markup)

Set Detail

Override detail defined in Tasks (Setup)

when
    var config = Configurator();

then
    config.TaskAdd("TEST1").Detail("Machine to Print");

Set Cost

Override Cost (from Calculated Cost via Task Setup)

when
    var config = Configurator();

then
    config.TaskAdd("HEATTREAT").Cost(300m);

Set Price

Override Price (from Calculated Price via Task Setup)

when
    var config = Configurator();

then
    config.TaskAdd("HEATTREAT").Price(300m);

Pricing Component

Override the pricing component definition for Tasks and Items.

when
    var config = Configurator();

then
    config.TaskAdd("TEST").PricingComponentSet("Option 1");
    config.TaskAdd("Item1", 1.0m).PricingComponent("Option 1");

Add Document

Add a Document from the Product Documents list (Setup)

when
    var config = Configurator();

then
    config.TaskAdd("TEST1").DocumentAddByName("Doc1Name");
    config.TaskAdd("TEST1").DocumentAddByID("adfasdf");

Item Category

Override the category for an item (defined in Items).

when
    var config = Configurator();

then
    config.AddItem("Item1", 1.0m).Category("Option 1");

Add Resource

If a Resource is not specified in a Rule, the Default Resource will be added. See the Scheduler for details about how Tasks and Resources relate.

when
    var config = Configurator();

then
    config.TaskAdd("TEST1").AddResourceByName("TECH_01");
    config.TaskAdd("TEST1").AddResourceByID("46372FF2-7B0D-48DA-B153-C88376B7BA5D");

Add Document (To Task)

Add a document to the task which will be copied to the Line Item and carried through to the Production Order. The Task document(s) are displayed on the Production Order Task Detail view. The document must exist on the Product definition - otherwise an error will occur.

when
    var config = Configurator();

then
    config.TaskAdd("MACH01").AddDocumentByName("Test Document"); // name must match (rule breaks if name on document changed)
    config.TaskAdd("MACH01").AddDocumentByID("B48CC25B-10D2-48A2-B715-1FE57031308E");  // name changes don't affect

Adjust Router Cost

Adjusts all cost in the router for steps already added. Steps added after this are not affected. Useful when costs needed to be overriden for the entire (to this point) router.

when
    var config = Configurator();

then
    config.TasksCostFactor(1.1m);  // multiply all task prices by 1.1
    config.ItemsCostFactor(1.1m);  // multiply all item prices by 1.1

Adjust Router Pricing

Adjusts all pricing in the router for steps already added. Steps added after this are not affected. Useful when prices needed to be overriden for the entire (to this point) router.

when
    var config = Configurator();

then
    config.TasksPriceFactor(1.1m);  // multiply all task prices by 1.1
    config.ItemsPriceFactor(1.1m);  // multiply all item prices by 1.1

Allow Add to Sales Quote

Override Product setting. This is useful when certain products should only be added to Sales Orders - skipping the Quote phase

when
    var config = Configurator();

then
    config.AddToSalesQuoteAllowed(false);  // disable

Allow Add to Sales Order

Override Product setting. This is useful when certain products should only be added to Sales Quotes - skipping the Order phase

when
    var config = Configurator();

then
    config.AddToSalesOrderAllowed(false);  // disable

Add Note

Add Note which will be copied to the Line Item when added to a Sales Quote or Sales Order.

when
    var config = Configurator();

then
    config.AddNote("This is a test note");

Set Description

Set description which will be copied to the Line Item when added to Sales Quote or Sales Order.

when
    var config = Configurator();

then
    config.DescriptionSet("This is a test description");

Quantity - Add or Set

Add (increment) quantity which will be copied to the Line Item when added to Sales Quote or Sales Order.

when
    var config = Configurator();

then
    config.QuantitySet(2.0m);
    config.QuantityAdd(0.5);

Dimensions & Weight - Add or Set

Set the dimensions of the configuration which will be copied to the Line Item when added to Sales Quote or Sales Order.

when
    var config = Configurator();

then
    config.LengthSet(2.5m);
    config.LengthAdd(0.5m);
    //
    config.WidthSet(2.5m);
    config.WidthAdd(0.5m);
    //
    config.HeightSet(2.5m);
    config.HeightAdd(0.5m);
    //
    config.WeightSet(1.5m);
    config.WeightAdd(0.5m);

Add Document (To LineItem)

Add a document to the configuration which will be copied to the Line Item when added to Sales Quote or Sales Order. The document must exist on the Product definition - otherwise an error will occur.

when
    var config = Configurator();

then
    config.AddDocument("Test Document"); // name must match (rule breaks if name on document changed)
    config.AddDocumentByID("B48CC25B-10D2-48A2-B715-1FE57031308E");  // name changes don't affect