{
  "meta": {
    "terminalHandler": "",
    "TerminalActionDisplayName": "Update Information",
    "maximumApprovalLevels": 5,
    "action": "webServiceCall",
    "webServiceUrl": "employees",
    "webServiceParam": "empNumber",
    "httpMethod": "PATCH",
    "redirectAfterSuccess": "pim.employees.profile.personal_details"
  },
  "formData": {
    "sections": [
      {
        "name": "Extra Custom Fields",
        "displayOrder": 1,
        "isCustomizable": true,
        "defaultFields": []
      },
      {
        "name": "Personal Details",
        "displayOrder": 2,
        "isCustomizable": true,
        "isTemplate": true,
        "defaultFields": [
          {
            "fieldType": "Text",
            "name": "First Name",
            "otherData": {
              "length": 30
            },
            "extraData": "",
            "mandatory": true,
            "deletable": false,
            "editable": false,
            "tokenName": "firstName",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getFirstName"
          },
          {
            "fieldType": "Text",
            "name": "Middle Name",
            "otherData": {
              "length": 30
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "middleName",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getMiddleName"
          },
          {
            "fieldType": "Text",
            "name": "Last Name",
            "otherData": {
              "length": 30
            },
            "extraData": "",
            "mandatory": false,
            "deletable": false,
            "editable": false,
            "tokenName": "lastName",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getLastName"
          },
          {
            "fieldType": "Text",
            "name": "Other Id",
            "otherData": {
              "length": 50
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "otherId",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getOtherId"
          },
          {
            "fieldType": "Text",
            "name": "Main Id",
            "otherData": {
              "length": 30
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "ssn",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getSsn"
          },
          {
            "fieldType": "Date",
            "name": "Date of Birth",
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "emp_birthday",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpBirthday"
          },
          {
            "fieldType": "Text",
            "name": "Driving License Number",
            "otherData": {
              "length": 30
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "licenseNo",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getLicenseNo"
          },
          {
            "fieldType": "Date",
            "name": "License Expiry Date",
            "otherData": {
              "length": 10
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "emp_dri_lice_exp_date",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpDriLiceExpDate"
          }
        ]
      },
      {
        "name": "Job",
        "displayOrder": 3,
        "isCustomizable": true,
        "isTemplate": true,
        "defaultFields": [
          {
            "fieldType": "Date",
            "name": "Joined Date",
            "extraData": "",
            "mandatory": true,
            "deletable": true,
            "editable": false,
            "tokenName": "joined_date",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getJobRecord,getJoinedDate"
          },
          {
            "fieldType": "Date",
            "name": "Probation End Date",
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "probation_end_date",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getJobRecord,getProbationEndDate"
          },
          {
            "fieldType": "Date",
            "name": "Date of Permanency",
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "date_of_permanency",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getJobRecord,getDateOfPermanency"
          },
          {
            "fieldType": "Advance Type",
            "name": "Job Title",
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "advancedTypeMap": "Job Title",
            "tokenName": "job_title_id",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getJobTitleName"
          },
          {
            "fieldType": "Advance Type",
            "name": "Sub Unit",
            "extraData": "",
            "mandatory": false,
            "deletable": false,
            "editable": false,
            "advancedTypeMap": "Sub Unit",
            "tokenName": "subunit_id",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getSubDivision,getName"
          },
          {
            "fieldType": "Advance Type",
            "name": "Location",
            "extraData": "",
            "mandatory": true,
            "deletable": false,
            "editable": false,
            "advancedTypeMap": "Location",
            "tokenName": "location_id",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getLocationAsString"
          },
          {
            "fieldType": "Date",
            "name": "Contract Start Date",
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "contract_start_date",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getJobRecord,getContractStartDate"
          },
          {
            "fieldType": "Date",
            "name": "Contract End Date",
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "contract_end_date",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getJobRecord,getContractEndDate"
          }
        ]
      },
      {
        "name": "Contact Details",
        "displayOrder": 5,
        "isCustomizable": true,
        "isTemplate": true,
        "defaultFields": [
          {
            "fieldType": "Text",
            "name": "Address Street 1",
            "otherData": {
              "length": 70
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "street1",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getStreet1"
          },
          {
            "fieldType": "Text",
            "name": "Address Street 2",
            "otherData": {
              "length": 70
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "street2",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getStreet2"
          },
          {
            "fieldType": "Text",
            "name": "City",
            "otherData": {
              "length": 70
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "city",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getCity"
          },
          {
            "fieldType": "Country",
            "name": "Country",
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "country",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getCountryNameAsString"
          },
          {
            "fieldType": "Text",
            "name": "State/Province",
            "otherData": {
              "length": 70
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "province",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getProvinceNameAsString"
          },
          {
            "fieldType": "Text",
            "name": "Zip/Postal Code",
            "otherData": {
              "length": 10
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "emp_zipcode",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpZipcode"
          },
          {
            "fieldType": "Text",
            "name": "Home Telephone",
            "otherData": {
              "length": 25
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "emp_hm_telephone",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpHmTelephone"
          },
          {
            "fieldType": "Text",
            "name": "Mobile",
            "otherData": {
              "length": 25
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "emp_mobile",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpMobile"
          },
          {
            "fieldType": "Text",
            "name": "Work Telephone",
            "otherData": {
              "length": 25
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "emp_work_telephone",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpWorkTelephone"
          },
          {
            "fieldType": "Email",
            "name": "Work Email",
            "otherData": {
              "length": 50
            },
            "extraData": "",
            "mandatory": false,
            "deletable": false,
            "editable": false,
            "tokenName": "emp_work_email",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpWorkEmail"
          },
          {
            "fieldType": "Email",
            "name": "Other Email",
            "otherData": {
              "length": 50
            },
            "extraData": "",
            "mandatory": false,
            "deletable": true,
            "editable": false,
            "tokenName": "emp_oth_email",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getEmpOthEmail"
          }
        ]
      },
      {
        "name": "Report-to",
        "displayOrder": 6,
        "isCustomizable": true,
        "isTemplate": true,
        "defaultFields": [
          {
            "fieldType": "Advance Type",
            "name": "Supervisor",
            "extraData": "",
            "mandatory": true,
            "deletable": false,
            "editable": false,
            "advancedTypeMap": "Employee",
            "tokenName": "employeeId",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "employeeId"
          },
          {
            "fieldType": "Drop Down",
            "name": "Reporting Method",
            "extraData": "Direct,Indirect",
            "mandatory": true,
            "deletable": false,
            "editable": false,
            "tokenName": "reportingMethod",
            "tokenEntityName": "Employee",
            "tokenValueGetter": "getSupervisor,getReportingMethod,getName"
          }
        ]
      }
    ]
  }
}