{
  "eventsAndFunctions": [
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "userCredential",
            "variableName": "userCredential"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "mainPartyId",
            "variableName": "mainPartyId"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "userCredential",
            "variableName": "userCredential"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "personType",
            "variableName": "personType"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "partyData",
            "variableName": "partyData"
          },
          {
            "command": "Set",
            "expression": "Today()",
            "variableName": "partyData.birthDate"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "createParty(^partyData)",
                "variableName": "mainPartyId"
              }
            ],
            "command": "If",
            "expression": "IsNullOrWhiteSpace(^mainPartyId)"
          },
          {
            "children": [
              {
                "command": "Execute",
                "expression": "updateParty()"
              }
            ],
            "command": "Else"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "personId",
            "variableName": "personId"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "partyRoleId",
            "variableName": "partyRoleId"
          },
          {
            "command": "Set",
            "expression": "{ type: \"User\", id: ^userCredential, name: ^partyName }",
            "variableName": "userRef"
          },
          {
            "command": "Set",
            "expression": "Concat(^partyData.fullName, \" \", ^partyData.lastname)",
            "variableName": "partyName"
          },
          {
            "command": "Set",
            "expression": "{ type: \"Individual\", id: ^personId, name: ^partyName}",
            "variableName": "partyRef"
          },
          {
            "command": "Set",
            "expression": "{ party: ^partyRef, user: ^userRef }",
            "variableName": "vendorCreation"
          },
          {
            "command": "Set",
            "expression": "ExtPresales.VendorCreate(^vendorCreation)",
            "variableName": "vendorCreate"
          },
          {
            "command": "SetValue",
            "expression": "{ personId: ^personId, personType: ^personType, vendorId: ^userCredential }",
            "widgetName": "gridMessage"
          },
          {
            "command": "WriteModel",
            "expression": "\"[[VendorSelectedOrCreated]]\"",
            "modelVariableName": "title"
          },
          {
            "command": "WriteModel",
            "expression": "\"COMPLETED\"",
            "modelVariableName": "status"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "mainPartyId",
            "type": "string"
          },
          {
            "name": "personId",
            "type": "string"
          },
          {
            "name": "partyRoleId",
            "type": "string"
          },
          {
            "name": "personType",
            "type": "string"
          },
          {
            "name": "userCredential",
            "type": "string"
          },
          {
            "name": "partyData",
            "type": "PartyLite"
          },
          {
            "name": "partyRefId",
            "type": "integer"
          },
          {
            "name": "vendors",
            "type": "list(ExtPresales.SalesTeamVendorHolder)"
          },
          {
            "name": "vendorNew",
            "type": "ExtPresales.SalesTeamVendorHolderCreation"
          },
          {
            "name": "salesTeamId",
            "type": "string"
          },
          {
            "name": "userRef",
            "type": "ExtPresales.Reference"
          },
          {
            "name": "vendorCreation",
            "type": "ExtPresales.SalesTeamVendorCreation"
          },
          {
            "name": "partyRef",
            "type": "ExtPresales.Reference"
          },
          {
            "name": "vendorCreate",
            "type": "any"
          },
          {
            "name": "partyName",
            "type": "string"
          }
        ]
      },
      "name": "responsive_init"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Navigate",
            "expressionStartModel": "{}",
            "uiComponentName": "CmpPsVendorsList"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "main_submit"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "partyData",
            "type": "PartyLite"
          }
        ],
        "statements": [
          {
            "command": "Set",
            "expression": "Concat(^partyData.fullName, \" \", ^partyData.lastname)",
            "variableName": "partyName"
          },
          {
            "command": "Set",
            "expression": "MsBusiness.CreateIndividual(^partyData)",
            "variableName": "result"
          },
          {
            "command": "Set",
            "expression": "^result.partyId",
            "variableName": "partyId"
          },
          {
            "command": "Set",
            "expression": "{ name: ^partyName, partyRoleNumber: ^partyId, party: { baseType: \"Party\", type: \"Individual\", id: ^result.id, name: ^partyName }}",
            "variableName": "partyRole"
          },
          {
            "command": "Set",
            "expression": "{ type: \"RoleSpec\", id: \"Vendor\" }",
            "variableName": "partyRole.roleSpec"
          },
          {
            "command": "Set",
            "expression": "{ type: \"Status\", id: \"STS1\"}",
            "variableName": "partyRole.status"
          },
          {
            "command": "Set",
            "expression": "ExtPartyRoleManagement.CreatePartyRole(^partyRole)",
            "variableName": "partyRole"
          },
          {
            "command": "Set",
            "expression": "^partyRole.id",
            "variableName": "partyRoleId"
          },
          {
            "command": "WriteModel",
            "expression": "^partyId",
            "modelVariableName": "mainPartyId"
          },
          {
            "command": "WriteModel",
            "expression": "^result.id",
            "modelVariableName": "personId"
          },
          {
            "command": "WriteModel",
            "expression": "^partyRoleId",
            "modelVariableName": "partyRoleId"
          },
          {
            "command": "Return",
            "expression": "^partyId"
          }
        ],
        "typeReturn": "string",
        "variables": [
          {
            "name": "partyId",
            "type": "string"
          },
          {
            "name": "partyName",
            "type": "string"
          },
          {
            "name": "partyRoleId",
            "type": "string"
          },
          {
            "name": "result",
            "type": "PartyLite"
          },
          {
            "name": "partyRole",
            "type": "ExtPartyRoleManagement.PartyRole"
          }
        ]
      },
      "name": "createParty"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "personId",
            "variableName": "personId"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "personType",
            "variableName": "personType"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "partyData",
            "variableName": "partyData"
          },
          {
            "command": "Execute",
            "expression": "MsBusiness.UpdateIndividualPartyLite(^personId, ^partyData)"
          },
          {
            "command": "Return",
            "expression": "^personId"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "personId",
            "type": "string"
          },
          {
            "name": "personType",
            "type": "string"
          },
          {
            "name": "partyData",
            "type": "PartyLite"
          }
        ]
      },
      "name": "updateParty"
    }
  ],
  "model": [
    {
      "name": "userCredential",
      "required": false,
      "type": "string"
    },
    {
      "name": "partyRoleId",
      "required": false,
      "type": "string"
    },
    {
      "name": "mainPartyId",
      "required": false,
      "type": "string"
    },
    {
      "name": "personType",
      "required": false,
      "type": "string"
    },
    {
      "name": "personId",
      "required": false,
      "type": "string"
    },
    {
      "name": "partyData",
      "required": false,
      "type": "PartyLite"
    },
    {
      "name": "message",
      "required": false,
      "type": "string"
    },
    {
      "name": "status",
      "required": false,
      "type": "string"
    },
    {
      "name": "executionInstance",
      "required": false,
      "type": "string"
    },
    {
      "name": "execInstance",
      "required": false,
      "type": "ExtInteractionEngine.ExecutionInstance"
    },
    {
      "name": "executionInstanceId",
      "required": false,
      "type": "string"
    },
    {
      "name": "cmpInstanceName",
      "required": false,
      "type": "string"
    }
  ],
  "root": {
    "children": [
      {
        "children": [
          {
            "htmlTemplate": "<div>\n\t<div class=\"sd-text-align-left sd-padding-top-small sd-padding-left-medium\">\n\t\t<span class=\"blz-panel-title blz-header-title blz-color-default\">[[VendorSelectedOrCreated]]</span>\n    </div>\n</div>",
            "name": "titleConfigure",
            "widget": "HtmlRenderer"
          }
        ],
        "cssClass": "content-center blz-padding-top blz-padding-bottom-large",
        "layout": "fit",
        "size": 12
      },
      {
        "children": [
          {
            "cssClass": "blz-area-default blz-padding-top blz-padding-right blz-padding-left blz-padding-bottom blz-border-top blz-border-right blz-border-left blz-border-bottom blz-border-radius",
            "htmlTemplate": "<div>\n  \t<div class=\"sd-text-align-center sd-padding-top-small sd-padding-left-medium\">\n\t\t<span class=\"blz-panel-title  blz-header-title  blz-color-default\">\n      \t\t[[TheVendor]] ({{vendorId}}) [[CreatedUpdatedSuccessfully]]\n      \t</span>\n    </div> \n</div>",
            "name": "gridMessage",
            "widget": "HtmlRenderer"
          }
        ],
        "cssClass": "blz-padding-top-large blz-padding-right-large blz-padding-left-large blz-padding-bottom-large",
        "layout": "fit",
        "size": 12
      }
    ],
    "layout": "responsive",
    "name": "responsive"
  },
  "routing": null,
  "unused": []
}