{
  "eventsAndFunctions": [
    {
      "algorithm": {
        "parameters": [
          {
            "name": "args",
            "type": "ArgsLoadRecords"
          }
        ],
        "statements": [
          {
            "command": "Return",
            "expression": "getCustomers(^args)"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "gridCustomers_loadRecords"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Refresh",
            "widgetName": "gridCustomers"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "mainResponsive_init"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "salesTeamId",
            "variableName": "salesTeamId"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "customer",
            "variableName": "customer"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "{ baseType: \"PartyRole\", type: ^customer.roleType, id: ^customer.partyRoleId, name: ^customer.name }",
                "variableName": "account"
              },
              {
                "command": "Set",
                "expression": "ExtPresales.SalesTeamAccountCreate(^salesTeamId, ^account)",
                "variableName": "teamAccount"
              },
              {
                "command": "WriteModel",
                "expression": "null",
                "modelVariableName": "customer"
              }
            ],
            "command": "If",
            "expression": "!IsNull(^customer)"
          },
          {
            "children": [
              {
                "command": "AlertMessage",
                "expressionMessage": "\"[[MustSelectAccount]]\"",
                "expressionTitle": "\"[[ErrorMessage]]\"",
                "severity": "warning"
              }
            ],
            "command": "Else"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "referenceId",
            "type": "integer"
          },
          {
            "name": "salesTeamId",
            "type": "string"
          },
          {
            "name": "customer",
            "type": "MsBusiness.PrPartyRole"
          },
          {
            "name": "account",
            "type": "ExtPresales.Reference"
          },
          {
            "name": "teamAccount",
            "type": "ExtPresales.SalesTeamAccount"
          }
        ]
      },
      "name": "gridCustomers_handlerAction_addSelectedAccount"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordRef",
            "type": "string"
          }
        ],
        "statements": [
          {
            "command": "ReadRecord",
            "expressionRecordRef": "^recordRef",
            "variableName": "customer",
            "widgetName": "gridCustomers"
          },
          {
            "command": "WriteModel",
            "expression": "^customer",
            "modelVariableName": "customer"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "customer",
            "type": "ExtPartyRoleManagement.PartyRole"
          }
        ]
      },
      "name": "gridCustomers_selectRecord"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordData",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "Set",
            "expression": "{}",
            "variableName": "data"
          },
          {
            "command": "Return",
            "expression": "^data"
          }
        ],
        "typeReturn": "obj(icon:string, text:string)",
        "variables": [
          {
            "name": "partyRole",
            "type": "ExtPartyRoleManagement.PartyRole"
          },
          {
            "name": "partyRoleId",
            "type": "string"
          },
          {
            "name": "data",
            "type": "any"
          }
        ]
      },
      "name": "gridCustomers_renderColumn_customerNumber"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Refresh",
            "widgetName": "gridCustomers"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "btnSearch_click"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "args",
            "type": "ArgsLoadRecords"
          }
        ],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "filterType",
            "variableName": "filterType"
          },
          {
            "command": "GetValue",
            "variableName": "name",
            "widgetName": "txtName"
          },
          {
            "command": "GetValue",
            "variableName": "customerNumber",
            "widgetName": "txtCustomerNumber"
          },
          {
            "command": "Set",
            "expression": "[]",
            "variableName": "filters"
          },
          {
            "command": "Set",
            "expression": "[]",
            "variableName": "sortBy"
          },
          {
            "command": "Push",
            "expressionItem": "\"In(PartyRoleSpec.Code, 'Customer', 'ROLE1')\"",
            "variableNameList": "filters"
          },
          {
            "command": "Push",
            "expressionItem": "\"In(Party.RefType, 'Individual', 'Organization')\"",
            "variableNameList": "filters"
          },
          {
            "command": "Push",
            "expressionItem": "\"!IsNull(Party.RefId)\"",
            "variableNameList": "filters"
          },
          {
            "command": "Push",
            "expressionItem": "\"Desc(PartyRoleSpecId)\"",
            "variableNameList": "sortBy"
          },
          {
            "children": [
              {
                "command": "Push",
                "expressionItem": "Concat(\"Like(PartyRoleNumber, '%'_'\", ^customerNumber, \"'_'%')\")",
                "variableNameList": "filters"
              }
            ],
            "command": "If",
            "expression": "!IsNull(^customerNumber)"
          },
          {
            "children": [
              {
                "command": "Push",
                "expressionItem": "Concat(\"Like(Name, '%'_'\", ^name, \"'_'%')\")",
                "variableNameList": "filters"
              }
            ],
            "command": "If",
            "expression": "!IsNull(^name)"
          },
          {
            "command": "Set",
            "expression": "{ offset: ^args.offset, limit: ^args.limit, filters: ^filters, sortBy: ^sortBy }",
            "variableName": "argsList"
          },
          {
            "command": "Set",
            "expression": "MsBusiness.GetPrPartyRoles(^argsList)",
            "variableName": "list"
          },
          {
            "command": "Return",
            "expression": "^list"
          }
        ],
        "typeReturn": "list(MsBusiness.PrPartyRole)",
        "variables": [
          {
            "name": "filterType",
            "type": "string"
          },
          {
            "name": "filter",
            "type": "string"
          },
          {
            "name": "customerNumber",
            "type": "string"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "filters",
            "type": "list(string)"
          },
          {
            "name": "sortBy",
            "type": "list(string)"
          },
          {
            "name": "argsList",
            "type": "MsBusiness.ArgsGetPrPartyRoles"
          },
          {
            "name": "list",
            "type": "list(MsBusiness.PrPartyRole)"
          }
        ]
      },
      "name": "getCustomers"
    }
  ],
  "model": [
    {
      "name": "salesTeamId",
      "required": true,
      "type": "string"
    },
    {
      "name": "customer",
      "required": false,
      "type": "MsBusiness.PrPartyRole"
    }
  ],
  "root": {
    "children": [
      {
        "children": [
          {
            "label": "[[customerNumber]]",
            "name": "txtCustomerNumber",
            "widget": "TextBox"
          },
          {
            "label": "[[Name]]",
            "name": "txtName",
            "widget": "TextBox"
          },
          {
            "icon": "search.svg",
            "name": "btnSearch",
            "text": "[[Search]]",
            "widget": "Button"
          }
        ],
        "cssClass": "blz-padding-top blz-padding-right blz-padding-left blz-padding-bottom",
        "layout": "form"
      },
      {
        "actions": [
          {
            "icon": "add.svg",
            "key": "addSelectedAccount",
            "text": "[[AddAccount]]"
          }
        ],
        "columns": [
          {
            "align": "left",
            "bindText": "customerNumber",
            "header": "[[customerNumber]]",
            "key": "number"
          },
          {
            "align": "left",
            "bindText": "name",
            "header": "[[Name]]",
            "key": "name"
          },
          {
            "align": "left",
            "bindText": "personType",
            "header": "[[PersonType]]",
            "key": "personType"
          }
        ],
        "name": "gridCustomers",
        "pageSize": 10,
        "title": "[[Blank]]",
        "typeName": "ExtPartyRoleManagement.PartyRole",
        "widget": "Grid",
        "withPaging": true
      }
    ],
    "layout": "responsive",
    "name": "mainResponsive"
  },
  "routing": null,
  "unused": []
}