Order Items Rules

Previous Section | Next Section

Example - Order Items Rules

Now, we'll take a look at some business rules. We're going to add several rules to automate parts of the form. We will use the frevvo Visual Rule Builder to create the code for all but one of these rules.

Update the Client Information Form

  1. Click the Action Menu and select  Duplicate to make a copy of the Order Info form. Then, click the name of the new form to open the Form Designer.
  2. In the Properties Panel, change the form name to Order Info Rules.
Rule: Automatically Set Date to today's date
  1. Click Rules in the Guided Designer Navigation bar at the top of the page. 
  2. Click Create a new rule.
  3. Change the name of the rule to: Initialize form
  4. Click on the Run Builder button.

    1. Click Next to go to the Action wizard.

    2. The first action appears by default. If needed, click the Add Action button on the top right of the Action Wizard

    3. Select TodaysDate from the first dropdown. TodaySDate is the Name of the Date control at the top of the form. If your control is named something else, select that control from the dropdown.

    4. Select to from the second dropdown

    5. Type today in the Expression field and click on the today function when it displays in the dropdown 

  5. Click Finish.

  6. Save and Test. Now, when the end user first starts using the form, the Date control at the top will be set to today's date. No need for the user to type it in.

     Click here to see this rule in the Visual Rule Builder

Rule: Set Price from Item

When the user selects an item in any of the rows in the Order Items table, we want the price of that item to be displayed automatically. Normally, this price information would come from a back-end database or other system but we're just hard-coding the values in the rule for the time being.

  1. Click Form in the Guided Designer Navigation barn to return to the form. In the Order Items table, select the Price column by clicking on the header. In the Properties panel, uncheck Enabled. The entire column is grayed out.
  2. Go back to the rules editor, create a new rule and edit it. Change the name of the rule to: Set Price Chevrolet
  3. Run Builder. On the Condition wizard:
    1. Select the control 'Item'
    2. Select the operator 'Is'
    3. Click the toggle to switch to a Literal Value, and type Chevrolet.
    4. Click Next
  4. On the Action wizard, set the control 'Price' to the literal value '125.75'
  5. Click Finish. Your rule should look like this.

  6. Repeat Steps 2-5, creating two more rules. 
    1. When Item is Chrysler, Set Price to 118.75
    2. When Item is Ford, Set Price to 132.75

Save and Test your form. Now, when the user selects an item, the price for that item will be displayed.


frevvo rules also support JS custom code.


 Click here to take a quick look at an example of the above Set Price rules in javascript.

Click Rule Code then click Edit Code. In the Rule area, type or copy/paste the following. 

for (var i = 0; i < Item.value.length; i++) {
  if (Item[i].value === 'Chevrolet') {
    Price[i].value = 125.75;
  } else if (Item[i].value === 'Chrysler') {
    Price[i].value = 118.75;
  } else if (Item[i].value === 'Ford') {
    Price[i].value = 132.75;
  }
}


Rule: Calculate Subtotals

When an item and quantity are selected in a particular row, we want to compute the price for that item (Subtotal = Quantity * Price) and display it in the Subtotal column for that row.

  1. Click Form  in the Guided Designer navigation bar to return to the form. In the Order Items table, select the Subtotal column by clicking on the header. In the Properties panel, uncheck Enabled. The entire column is grayed out.
  2. Go back to the rules editor and create a new rule. Change the name of the rule to: Calculate SubTotals
  3. Click on the Run Builder button. You will see the Condition wizard

    1. Select your Price control from dropdown

    2. Select "is filled" from the Property dropdown
    3. Click Next to go to the Action wizard.

    4. Select your Subtotal control from the dropdown.

    5. Select "to" from the second dropdown

    6. Type Price * Quantity in the Expressions field

  4. Click Finish then  save and test. Now, when the end user selects the item and fills in the quantity, the Subtotal will be calculated for each row of the table

 Click here to see this rule in the Visual Rule Builder
Rule: Calculate Grand Total

When all items and quantities are selected, we want to compute the overall price for all items and display it in the Grand Totals field.

  1. Click Form  in the Guided Designer navigation bar to return to the form. Click on the Grand Total control. Uncheck Enabled in the Properties panel. The field is greyed out.
  2. Go back to the rules editor, create a new rule and edit it. Change the name of the rule to: Calculate Grand Total
  3. Click on the Run Builder button. You will see the Condition wizard

    1. Click Next to go to the Action wizard.

    2. Select your Grand Total control from the first dropdown.

    3. Select "to" from the second dropdown

    4. Type sum in the Expressions field and click on the sum function when it displays in the dropdown 

    5. Select the Subtotal field from the dropdown then add the closing parenthesis

  4. Click Finish then  save and test.

 Click here to see this rule in the Visual Rule Builder

Now, the overall Grand Total is automatically calculated and updated with the Subtotal amounts as rows are filled in and added to the table. Try deleting a row in the table. Notice the Subtotal amount for that row is subtracted from the Grand Total 

frevvo has a powerful Rules engine. You can perform many dynamic actions in your form including the examples above as well as many other actions like connecting to back-end systems and retrieving JSON to populate form controls. The Visual Rule Builder makes it easy to create rules to show/hide parts of the form, automatically fill in user information, and make controls required or optional dynamically without writing code. For more information, refer to the Rules Examples documentation.

Previous Section | Next Section