{
  "eventsAndFunctions": [
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Execute",
            "expression": "validations()"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "goalNode",
            "variableName": "goalNode"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "plan",
            "variableName": "plan"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "salesTeam",
            "variableName": "salesTeam"
          },
          {
            "command": "Set",
            "expression": "ExtPresales.SalesTeamRetrieve(^salesTeam.id, {fields:[\"Childs\"]})",
            "variableName": "salesTeam"
          },
          {
            "command": "Set",
            "expression": "[]",
            "variableName": "listSalesTeam"
          },
          {
            "command": "Push",
            "expressionItem": "salesTeam",
            "variableNameList": "listSalesTeam"
          },
          {
            "command": "Execute",
            "expression": "setListSalesTeam(^salesTeam, ^listSalesTeam)"
          },
          {
            "command": "WriteModel",
            "expression": "^plan.id",
            "modelVariableName": "planId"
          },
          {
            "children": [
              {
                "children": [
                  {
                    "command": "Execute",
                    "expression": "createMainGoal(^plan.id, ^salesTeam)"
                  }
                ],
                "command": "ForEach",
                "expressionList": "^listSalesTeam",
                "variableNameItem": "salesTeam"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^goalNode) && ^goalNode.properties.remainingGoal == 0"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "goalNode",
            "type": "TreeNode"
          },
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          },
          {
            "name": "listSalesTeam",
            "type": "list(ExtPresales.SalesTeam)"
          },
          {
            "name": "plan",
            "type": "ExtStrategicPlanMng.Plan"
          }
        ]
      },
      "name": "main_submit"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "mainGoal",
            "variableName": "mainGoal"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "salesTeam",
            "variableName": "salesTeam"
          },
          {
            "command": "Set",
            "expression": "^salesTeam.name",
            "variableName": "mainGoal.name"
          },
          {
            "command": "SetValue",
            "expression": "^mainGoal",
            "widgetName": "MainGoalHeader"
          }
        ],
        "variables": [
          {
            "name": "mainGoal",
            "type": "ExtStrategicPlanMng.MainGoal"
          },
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          }
        ]
      },
      "name": "MainGoalHeader_init"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "plan",
            "variableName": "plan"
          },
          {
            "command": "Set",
            "expression": "ExtStrategicPlanMng.PlanPeriodList(^plan.id)",
            "variableName": "listPeriods"
          },
          {
            "command": "WriteModel",
            "expression": "^listPeriods",
            "modelVariableName": "periods"
          },
          {
            "command": "Execute",
            "expression": "setVisibility()"
          }
        ],
        "variables": [
          {
            "name": "plan",
            "type": "ExtStrategicPlanMng.Plan"
          },
          {
            "name": "listPeriods",
            "type": "list(ExtStrategicPlanMng.Period)"
          }
        ]
      },
      "name": "treeGridContainer_init"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-red'>\", FormatCurrency(^recordData.properties.remainingGoal), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalQuarter_renderColumn_remainingGoal"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-red'>\", FormatCurrency(^recordData.properties.remainingGoal), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalBimester_renderColumn_remainingGoal"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-red'>\", FormatCurrency(^recordData.properties.remainingGoal), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalMonthly_renderColumn_remainingGoal"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-red'>\", FormatCurrency(^recordData.properties.remainingGoal), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalSemester_renderColumn_remainingGoal"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-bold blz-text-indent-4'>\", FormatCurrency(^recordData.text), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalBimester_renderColumn_goal"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-bold blz-text-indent-4'>\", FormatCurrency(^recordData.text), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalMonthly_renderColumn_goal"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-bold blz-text-indent-4'>\", FormatCurrency(^recordData.text), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalQuarter_renderColumn_goal"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "{text: Concat(\"<span class='blz-text-bold blz-text-indent-4'>\", FormatCurrency(^recordData.text), \"</span>\")}"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": []
      },
      "name": "mainGoalSemester_renderColumn_goal"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Execute",
            "expression": "setVisibility()"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "treeGridContainer_handlerAction_refresh"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ShowAction",
            "expressionActionKey": "\"percentageAmount\"",
            "widgetName": "treeGridContainer"
          },
          {
            "command": "HideAction",
            "expressionActionKey": "\"moneyAmount\"",
            "widgetName": "treeGridContainer"
          },
          {
            "command": "WriteModel",
            "expression": "\"percentageAmount\"",
            "modelVariableName": "typeAmount"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "treeGridContainer_handlerAction_moneyAmount"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ShowAction",
            "expressionActionKey": "\"moneyAmount\"",
            "widgetName": "treeGridContainer"
          },
          {
            "command": "HideAction",
            "expressionActionKey": "\"percentageAmount\"",
            "widgetName": "treeGridContainer"
          },
          {
            "command": "WriteModel",
            "expression": "\"moneyAmount\"",
            "modelVariableName": "typeAmount"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "treeGridContainer_handlerAction_percentageAmount"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Execute",
            "expression": "setVisibility()"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "treeGridContainer_handlerAction_save"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "planId",
            "type": "string"
          },
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          }
        ],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "domainId",
            "variableName": "domainId"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "mainGoal",
            "variableName": "mainGoal"
          },
          {
            "command": "Set",
            "expression": "{ filters: [], goals: [], dimensionDate: \"ControlDate\", entity:{id: \"opportunity\"}, scope:^domainId}",
            "variableName": "creation"
          },
          {
            "command": "Set",
            "expression": "^salesTeam.name",
            "variableName": "creation.name"
          },
          {
            "command": "Set",
            "expression": "^mainGoal.description",
            "variableName": "creation.description"
          },
          {
            "command": "Set",
            "expression": "^mainGoal.goalValue",
            "variableName": "creation.goalValue"
          },
          {
            "command": "Set",
            "expression": "^mainGoal.measure",
            "variableName": "creation.measure"
          },
          {
            "command": "Set",
            "expression": "\"ControlDate\"",
            "variableName": "creation.dimensionDate"
          },
          {
            "command": "Set",
            "expression": "getGoals(^salesTeam)",
            "variableName": "creation.goals"
          },
          {
            "command": "Execute",
            "expression": "ExtStrategicPlanMng.PlanMainGoalCreate(^planId, ^creation)"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "creation",
            "type": "ExtStrategicPlanMng.MainGoalCreation"
          },
          {
            "name": "measure",
            "type": "string"
          },
          {
            "name": "domainId",
            "type": "string"
          },
          {
            "name": "mainGoal",
            "type": "ExtStrategicPlanMng.MainGoal"
          }
        ]
      },
      "name": "createMainGoal"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "plan",
            "variableName": "plan"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "goalNode",
            "variableName": "goalNode"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "typeAmount",
            "variableName": "typeAmount"
          },
          {
            "children": [
              {
                "command": "Hide",
                "widgetName": "monthlyContainer"
              },
              {
                "command": "Hide",
                "widgetName": "bimesterContainer"
              },
              {
                "command": "Hide",
                "widgetName": "quarterContainer"
              },
              {
                "command": "Hide",
                "widgetName": "semesterContainer"
              },
              {
                "command": "Switch",
                "expression": "plan.controlFrequency"
              },
              {
                "children": [
                  {
                    "command": "SetValue",
                    "expression": "getGoalsMatrix()",
                    "widgetName": "mainGoalMonthly"
                  },
                  {
                    "command": "Show",
                    "widgetName": "monthlyContainer"
                  }
                ],
                "command": "Case",
                "expression": "\"monthly\""
              },
              {
                "children": [
                  {
                    "command": "SetValue",
                    "expression": "getGoalsMatrix()",
                    "widgetName": "mainGoalBimester"
                  },
                  {
                    "command": "Show",
                    "widgetName": "bimesterContainer"
                  }
                ],
                "command": "Case",
                "expression": "\"bimester\""
              },
              {
                "children": [
                  {
                    "command": "SetValue",
                    "expression": "getGoalsMatrix()",
                    "widgetName": "mainGoalQuarter"
                  },
                  {
                    "command": "Show",
                    "widgetName": "quarterContainer"
                  }
                ],
                "command": "Case",
                "expression": "\"trimester\""
              },
              {
                "children": [
                  {
                    "command": "SetValue",
                    "expression": "getGoalsMatrix()",
                    "widgetName": "mainGoalSemester"
                  },
                  {
                    "command": "Show",
                    "widgetName": "semesterContainer"
                  }
                ],
                "command": "Case",
                "expression": "\"semester\""
              }
            ],
            "command": "If",
            "expression": "IsNull(^goalNode) && IsNull(^goalNode.properties)"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "^goalNode.properties",
                "variableName": "goal"
              },
              {
                "command": "Switch",
                "expression": "plan.controlFrequency"
              },
              {
                "children": [
                  {
                    "command": "Set",
                    "expression": "^goal.goalValue - (^goal.amount1+^goal.amount2+^goal.amount3+^goal.amount4+^goal.amount5+^goal.amount6+^goal.amount7+^goal.amount8+^goal.amount9+^goal.amount10+^goal.amount11+^goal.amount12)",
                    "variableName": "goalNode.properties.remainingGoal"
                  },
                  {
                    "command": "SetValue",
                    "expression": "[^goalNode]",
                    "widgetName": "mainGoalMonthly"
                  }
                ],
                "command": "Case",
                "expression": "\"monthly\""
              },
              {
                "children": [
                  {
                    "command": "Set",
                    "expression": "^goal.goalValue - (^goal.amount1+^goal.amount2+^goal.amount3+^goal.amount4+^goal.amount5+^goal.amount6)",
                    "variableName": "goalNode.properties.remainingGoal"
                  },
                  {
                    "command": "SetValue",
                    "expression": "[^goalNode]",
                    "widgetName": "mainGoalBimester"
                  }
                ],
                "command": "Case",
                "expression": "\"bimester\""
              },
              {
                "children": [
                  {
                    "command": "Set",
                    "expression": "^goal.goalValue - (^goal.amount1+^goal.amount2+^goal.amount3+^goal.amount4)",
                    "variableName": "goalNode.properties.remainingGoal"
                  },
                  {
                    "command": "SetValue",
                    "expression": "[^goalNode]",
                    "widgetName": "mainGoalQuarter"
                  },
                  {
                    "command": "Refresh",
                    "widgetName": "mainGoalQuarter"
                  }
                ],
                "command": "Case",
                "expression": "\"trimester\""
              },
              {
                "children": [
                  {
                    "command": "Set",
                    "expression": "^goal.goalValue - (^goal.amount1+^goal.amount2)",
                    "variableName": "goalNode.properties.remainingGoal"
                  },
                  {
                    "command": "SetValue",
                    "expression": "[^goalNode]",
                    "widgetName": "mainGoalSemester"
                  }
                ],
                "command": "Case",
                "expression": "\"semester\""
              }
            ],
            "command": "Else"
          },
          {
            "children": [
              {
                "command": "ShowAction",
                "expressionActionKey": "\"moneyAmount\"",
                "widgetName": "treeGridContainer"
              },
              {
                "command": "HideAction",
                "expressionActionKey": "\"percentageAmount\"",
                "widgetName": "treeGridContainer"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^typeAmount) && ^typeAmount == \"percentageAmount\""
          },
          {
            "children": [
              {
                "command": "ShowAction",
                "expressionActionKey": "\"percentageAmount\"",
                "widgetName": "treeGridContainer"
              },
              {
                "command": "HideAction",
                "expressionActionKey": "\"moneyAmount\"",
                "widgetName": "treeGridContainer"
              }
            ],
            "command": "Else"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "plan",
            "type": "ExtStrategicPlanMng.Plan"
          },
          {
            "name": "goalNode",
            "type": "TreeNode"
          },
          {
            "name": "goal",
            "type": "any"
          },
          {
            "name": "typeAmount",
            "type": "string"
          }
        ]
      },
      "name": "setVisibility"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "mainGoal",
            "variableName": "mainGoal"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "periods",
            "variableName": "periods"
          },
          {
            "command": "Set",
            "expression": "FormatCurrency(^mainGoal.goalValue / Count(^periods))",
            "variableName": "goal"
          },
          {
            "command": "Set",
            "expression": "{\n    text: ^mainGoal.goalValue,\n    properties: {\n        id: ^mainGoal.id,\n        name: ^mainGoal.name,\n        type:^mainGoal.type,\n        description: ^mainGoal.description,\n        goalValue: ^mainGoal.goalValue,\n        remainingGoal: 0,\n        amount1:^goal,\n        amount2:^goal,\n        amount3:^goal,\n        amount4:^goal,\n        amount5:^goal,\n        amount6:^goal,\n        amount7:^goal,\n        amount8:^goal,\n        amount9:^goal,\n        amount10:^goal,\n        amount11:^goal,\n        amount12:^goal\n    }\n}",
            "variableName": "mainGoalNode"
          },
          {
            "command": "WriteModel",
            "expression": "^mainGoalNode",
            "modelVariableName": "goalNode"
          },
          {
            "command": "Return",
            "expression": "[^mainGoalNode]"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "mainGoal",
            "type": "ExtStrategicPlanMng.MainGoal"
          },
          {
            "name": "mainGoalNode",
            "type": "TreeNode"
          },
          {
            "name": "goal",
            "type": "any"
          },
          {
            "name": "periods",
            "type": "list(ExtStrategicPlanMng.Period)"
          }
        ]
      },
      "name": "getGoalsMatrix"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "goalNode",
            "variableName": "goalNode"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "mainGoal",
            "variableName": "mainGoal"
          },
          {
            "command": "Set",
            "expression": "[]",
            "variableName": "validations"
          },
          {
            "command": "Set",
            "expression": "{header: ^goalNode.properties.name, list: []}",
            "variableName": "validation"
          },
          {
            "command": "Execute",
            "expression": "setVisibility()"
          },
          {
            "children": [
              {
                "command": "Push",
                "expressionItem": "{severity:\"error\",title:\"[[ErrorCreateMainGoalTitle]]\", message: \"[[ErrorCreateMainGoalMsg]] \"}",
                "variableNameList": "validation.list"
              }
            ],
            "command": "If",
            "expression": "IsNull(^mainGoal)"
          },
          {
            "children": [
              {
                "command": "Push",
                "expressionItem": "{severity:\"error\",title:\"[[ErrorRemaingGoalTitle]]\", message: Concat(\"[[ErrorRemaingGoalMsg]] \", FormatCurrency(^goalNode.properties.remainingGoal))}",
                "variableNameList": "validation.list"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^goalNode) && ^goalNode.properties.remainingGoal > 0"
          },
          {
            "children": [
              {
                "command": "Push",
                "expressionItem": "^validation",
                "variableNameList": "validations"
              }
            ],
            "command": "If",
            "expression": "Count(^validation.list) > 0"
          },
          {
            "children": [
              {
                "command": "Throw",
                "errorName": "Error",
                "expressionData": "GetValidationsTemplate(^validations)",
                "expressionInnerError": "\"[[ErrorCustom]]\""
              }
            ],
            "command": "If",
            "expression": "Count(^validations) > 0"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "validations",
            "type": "any"
          },
          {
            "name": "validation",
            "type": "any"
          },
          {
            "name": "goalNode",
            "type": "TreeNode"
          },
          {
            "name": "mainGoal",
            "type": "ExtStrategicPlanMng.MainGoal"
          }
        ]
      },
      "name": "validations"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "listSalesTeam",
            "type": "list(ExtPresales.SalesTeam)"
          },
          {
            "name": "listGoals",
            "type": "list(ExtStrategicPlanMng.Goal)"
          }
        ],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "plan",
            "variableName": "plan"
          },
          {
            "children": [
              {
                "children": [
                  {
                    "command": "Set",
                    "expression": "{\n\tname: ^salesTeamItem.name,\n    fixedAmount:0,\n    percentageAmount:0,\n    period:0,\n    snapshotFrequency:^plan.snapshotFrequency,\n    goals:[]\n}",
                    "variableName": "goal"
                  },
                  {
                    "command": "Push",
                    "expressionItem": "^goal",
                    "variableNameList": "listGoals"
                  },
                  {
                    "children": [
                      {
                        "command": "Execute",
                        "expression": "setGoalBySalesTeam(^salesTeamItem.childs, ^goal.goals)"
                      }
                    ],
                    "command": "If",
                    "expression": "IsNotNull(^salesTeamItem.childs) && Count(^salesTeamItem.childs) > 0"
                  }
                ],
                "command": "ForEach",
                "expressionList": "listSalesTeam",
                "variableNameItem": "salesTeamItem"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^listSalesTeam) && Count(^listSalesTeam) > 0"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "salesTeamItem",
            "type": "ExtPresales.SalesTeam"
          },
          {
            "name": "plan",
            "type": "ExtStrategicPlanMng.Plan"
          },
          {
            "name": "goal",
            "type": "ExtStrategicPlanMng.Goal"
          }
        ]
      },
      "name": "setGoalBySalesTeam"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          }
        ],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "periods",
            "variableName": "periods"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "plan",
            "variableName": "plan"
          },
          {
            "command": "Set",
            "expression": "[]",
            "variableName": "listGoals"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "getAmount(^period.index)",
                "variableName": "amount"
              },
              {
                "command": "Push",
                "expressionItem": "{\n\tname: ^salesTeam.name,\n    goalValue: ^amount,\n    fixedAmount: ^amount,\n    percentageAmount:0,\n    period:^period.index,\n    snapshotFrequency:^plan.snapshotFrequency,\n    partials:getPartialGoals(^period.partials, ^amount, ^salesTeam.name),\n    assignTo:{\n    \tid: ^salesTeam.id,\n        name: ^salesTeam.name,\n        type: \"SalesTeam\",\n      \tdimension: \"SalesTeam\"\n    }\n}",
                "variableNameList": "listGoals"
              }
            ],
            "command": "ForEach",
            "expressionList": "periods",
            "variableNameItem": "period"
          },
          {
            "command": "Return",
            "expression": "^listGoals"
          }
        ],
        "typeReturn": "list(ExtStrategicPlanMng.Goal)",
        "variables": [
          {
            "name": "listGoals",
            "type": "list(ExtStrategicPlanMng.Goal)"
          },
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          },
          {
            "name": "plan",
            "type": "ExtStrategicPlanMng.Plan"
          },
          {
            "name": "periods",
            "type": "list(ExtStrategicPlanMng.Period)"
          },
          {
            "name": "period",
            "type": "ExtStrategicPlanMng.Period"
          },
          {
            "name": "amount",
            "type": "decimal"
          }
        ]
      },
      "name": "getGoals"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "listPeriodPartials",
            "type": "list(ExtStrategicPlanMng.PeriodPartial)"
          },
          {
            "name": "amount",
            "type": "decimal"
          },
          {
            "name": "salesTeamName",
            "type": "string"
          }
        ],
        "statements": [
          {
            "command": "Set",
            "expression": "[]",
            "variableName": "listGoalPartial"
          },
          {
            "command": "Set",
            "expression": "^amount / Count(^listPeriodPartials)",
            "variableName": "goalPartialValue"
          },
          {
            "children": [
              {
                "children": [
                  {
                    "command": "Push",
                    "expressionItem": "{\n\tname: Concat(^salesTeamName, \" \", ConvertToString(periodPartial.fromDate), ConvertToString(periodPartial.toDate)),\n    goalValue: ^goalPartialValue,\n    fixedAmount: ^goalPartialValue,\n    partial: ^periodPartial.index,\n    percentageAmount: 0\n}",
                    "variableNameList": "listGoalPartial"
                  }
                ],
                "command": "ForEach",
                "expressionList": "listPeriodPartials",
                "variableNameItem": "periodPartial"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^listPeriodPartials) && Count(^listPeriodPartials) > 0"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "[]",
                "variableName": "listGoalPartial"
              }
            ],
            "command": "Else"
          },
          {
            "command": "Return",
            "expression": "^listGoalPartial"
          }
        ],
        "typeReturn": "list(ExtStrategicPlanMng.GoalPartial)",
        "variables": [
          {
            "name": "listGoalPartial",
            "type": "list(ExtStrategicPlanMng.GoalPartial)"
          },
          {
            "name": "periodPartial",
            "type": "ExtStrategicPlanMng.PeriodPartial"
          },
          {
            "name": "goalPartialValue",
            "type": "decimal"
          }
        ]
      },
      "name": "getPartialGoals"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "index",
            "type": "integer"
          }
        ],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "goalNode",
            "variableName": "goalNode"
          },
          {
            "command": "Switch",
            "expression": "^index"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount1)"
              }
            ],
            "command": "Case",
            "expression": "1"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount2)"
              }
            ],
            "command": "Case",
            "expression": "2"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount3)"
              }
            ],
            "command": "Case",
            "expression": "3"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount4)"
              }
            ],
            "command": "Case",
            "expression": "4"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount5)"
              }
            ],
            "command": "Case",
            "expression": "5"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount6)"
              }
            ],
            "command": "Case",
            "expression": "6"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount7)"
              }
            ],
            "command": "Case",
            "expression": "7"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount8)"
              }
            ],
            "command": "Case",
            "expression": "8"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount9)"
              }
            ],
            "command": "Case",
            "expression": "9"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount10)"
              }
            ],
            "command": "Case",
            "expression": "10"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount11)"
              }
            ],
            "command": "Case",
            "expression": "11"
          },
          {
            "children": [
              {
                "command": "Return",
                "expression": "ConvertToDecimal(^goalNode.properties.amount12)"
              }
            ],
            "command": "Case",
            "expression": "12"
          }
        ],
        "typeReturn": "decimal",
        "variables": [
          {
            "name": "goalNode",
            "type": "TreeNode"
          }
        ]
      },
      "name": "getAmount"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "parentSalesTeam",
            "type": "ExtPresales.SalesTeam"
          },
          {
            "name": "listSalesTeam",
            "type": "list(ExtPresales.SalesTeam)"
          }
        ],
        "statements": [
          {
            "children": [
              {
                "children": [
                  {
                    "command": "Push",
                    "expressionItem": "salesTeam",
                    "variableNameList": "listSalesTeam"
                  },
                  {
                    "children": [
                      {
                        "command": "Execute",
                        "expression": "setListSalesTeam(^salesTeam, ^listSalesTeam)"
                      }
                    ],
                    "command": "If",
                    "expression": "IsNotNull(^salesTeam.childs) && Count(^salesTeam.childs) > 0"
                  }
                ],
                "command": "ForEach",
                "expressionList": "^parentSalesTeam.childs",
                "variableNameItem": "salesTeam"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^parentSalesTeam) && Count(^parentSalesTeam.childs) > 0"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "mainGoal",
            "type": "ExtStrategicPlanMng.MainGoal"
          },
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          }
        ]
      },
      "name": "setListSalesTeam"
    }
  ],
  "model": [
    {
      "name": "mainGoal",
      "required": true,
      "type": "ExtStrategicPlanMng.MainGoal"
    },
    {
      "name": "salesTeam",
      "required": true,
      "type": "ExtPresales.SalesTeam"
    },
    {
      "name": "plan",
      "required": false,
      "type": "ExtStrategicPlanMng.Plan"
    },
    {
      "name": "domainId",
      "required": false,
      "type": "string"
    },
    {
      "name": "FrequencyControl",
      "required": false,
      "type": "string"
    },
    {
      "name": "goalNode",
      "required": false,
      "type": "TreeNode"
    },
    {
      "name": "planId",
      "required": false,
      "type": "string"
    },
    {
      "name": "typeAmount",
      "required": false,
      "type": "string"
    },
    {
      "name": "currency",
      "required": false,
      "type": "ExtCommonBusiness.Currency"
    },
    {
      "name": "periods",
      "required": false,
      "type": "list(ExtStrategicPlanMng.Period)"
    }
  ],
  "root": {
    "children": [
      {
        "children": [
          {
            "htmlTemplate": "<div class=\"blz-panel-content blz-panel-no-header\">\n    <div class=\"blz-toolbar blz-toolbar-style blz-toolbar-top \">\n        <div class=\"blz-toolbar-container blz-header\">\n            <div class=\"blz-toolbar-left-side\">\n                <div class=\"blz-toolbar-title blz-title-default blz-toolbar-element\">\n                    <div class=\"blz-icon-container blz-header-icon\">\n                        <span class=\"blz-toolbar-icon\">\n                            <svg viewBox=\"0 0 1 1\">\n                                <use xlink:href=\"./icons/goal.svg#root\"></use>\n                            </svg>\n                        </span>\n                    </div>\n                    <span class=\"blz-panel-title blz-header-title blz-color-default\">\n                        {{name}}\n                    </span>\n                </div>\n            </div>\n            <div class=\"blz-flex-filler\"></div>\n            <div class=\"blz-toolbar-right-side\">\n                <div class=\"blz-btn blz-btn-default blz-toolbar-element blz-component-class-enabled plain blz-component-class-hide\"\n                    style=\"width: auto; display: none;\" tabindex=\"-1\">\n                    <span class=\"blz-btn-icon\">\n                        <svg viewBox=\"0 0 1 1\">\n                            <use xlink:href=\"./icons/add.svg#root\"></use>\n                        </svg>\n                    </span>\n                    <span class=\"blz-btn-text\">Add</span>\n                    <input type=\"text\" style=\"width: 1px; height: 1px;\">\n                </div>\n            </div>\n        </div>\n\n    </div>\n    <div class=\"blz-panel-body blz-panel-top-toolbar-active\">\n\n        <div class=\"blz-container blz-brief\">\n            <div class=\"blz-repeater-content blz-commons\" style=\"overflow: hidden;\"></div>\n        </div>\n    </div>\n</div>",
            "name": "MainGoalHeader",
            "typeName": "ExtStrategicPlanMng.MainGoal",
            "widget": "HtmlRenderer"
          }
        ],
        "cssClass": "blz-area-default",
        "layout": "fit",
        "name": "headerContainer"
      },
      {
        "actions": [
          {
            "icon": "dollar.svg",
            "key": "moneyAmount"
          },
          {
            "icon": "percent.svg",
            "key": "percentageAmount"
          },
          {
            "icon": "save.svg",
            "key": "save"
          }
        ],
        "children": [
          {
            "children": [
              {
                "columns": [
                  {
                    "align": "center",
                    "bindText": "text",
                    "format": "Number:2",
                    "header": "[[Goal]]",
                    "key": "goal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.remainingGoal",
                    "header": "[[RemainingGoal]]",
                    "key": "remainingGoal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount1",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M1",
                    "key": "m1"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount2",
                    "clicksToEdit": true,
                    "header": "M2",
                    "key": "m2"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount3",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M3",
                    "key": "m3"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount4",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M4",
                    "key": "m4"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount5",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M5",
                    "key": "m5"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount6",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M6",
                    "key": "m6"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount1",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M7",
                    "key": "m7"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount2",
                    "clicksToEdit": true,
                    "header": "M7",
                    "key": "m7"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount3",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M8",
                    "key": "m8"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount4",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M9",
                    "key": "m9"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount5",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M10",
                    "key": "m10"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount6",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M11",
                    "key": "m11"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount6",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "M12",
                    "key": "m12"
                  }
                ],
                "name": "mainGoalMonthly",
                "widget": "TreeGrid"
              }
            ],
            "layout": "fit",
            "name": "monthlyContainer"
          },
          {
            "children": [
              {
                "columns": [
                  {
                    "align": "center",
                    "bindText": "text",
                    "format": "Number:2",
                    "header": "[[Goal]]",
                    "key": "goal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.remainingGoal",
                    "header": "[[RemainingGoal]]",
                    "key": "remainingGoal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount1",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "B1",
                    "key": "b1"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount2",
                    "clicksToEdit": true,
                    "header": "B2",
                    "key": "b2"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount3",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "B3",
                    "key": "b3"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount4",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "B4",
                    "key": "b4"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount5",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "B5",
                    "key": "b5"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount6",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "B6",
                    "key": "b6"
                  }
                ],
                "name": "mainGoalBimester",
                "widget": "TreeGrid"
              }
            ],
            "layout": "fit",
            "name": "bimesterContainer"
          },
          {
            "children": [
              {
                "columns": [
                  {
                    "align": "center",
                    "bindText": "text",
                    "format": "Number:2",
                    "header": "[[Goal]]",
                    "key": "goal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.remainingGoal",
                    "header": "[[RemainingGoal]]",
                    "key": "remainingGoal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount1",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "Q1",
                    "key": "q1"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount2",
                    "clicksToEdit": true,
                    "header": "Q2",
                    "key": "q2"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount3",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "Q3",
                    "key": "q3"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount4",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "Q4",
                    "key": "q4"
                  }
                ],
                "cssClass": "blz-tree-grid-wh-overflow",
                "name": "mainGoalQuarter",
                "widget": "TreeGrid"
              }
            ],
            "layout": "fit",
            "name": "quarterContainer"
          },
          {
            "children": [
              {
                "columns": [
                  {
                    "align": "center",
                    "bindText": "text",
                    "format": "Number:2",
                    "header": "[[Goal]]",
                    "key": "goal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.remainingGoal",
                    "header": "[[RemainingGoal]]",
                    "key": "remainingGoal"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount1",
                    "clicksToEdit": true,
                    "format": "Number:2",
                    "header": "S1",
                    "key": "s1"
                  },
                  {
                    "align": "center",
                    "bindText": "properties.amount2",
                    "clicksToEdit": true,
                    "header": "S2",
                    "key": "s2"
                  }
                ],
                "cssClass": "blz-tree-grid-wh-overflow",
                "name": "mainGoalSemester",
                "widget": "TreeGrid"
              }
            ],
            "layout": "fit",
            "name": "semesterContainer"
          }
        ],
        "cssClass": "blz-area-default blz-toolbar-white",
        "layout": "responsive",
        "name": "treeGridContainer"
      }
    ],
    "layout": "responsive"
  },
  "routing": null,
  "unused": []
}