/*
 * OrangeHRM Enterprise is a closed sourced comprehensive Human Resource Management (HRM)
 * System that captures all the essential functionalities required for any enterprise.
 * Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com
 *
 * OrangeHRM Inc is the owner of the patent, copyright, trade secrets, trademarks and any
 * other intellectual property rights which subsist in the Licensed Materials. OrangeHRM Inc
 * is the owner of the media / downloaded OrangeHRM Enterprise software files on which the
 * Licensed Materials are received. Title to the Licensed Materials and media shall remain
 * vested in OrangeHRM Inc. For the avoidance of doubt title and all intellectual property
 * rights to any design, new software, new protocol, new interface, enhancement, update,
 * derivative works, revised screen text or any other items that OrangeHRM Inc creates for
 * Customer shall remain vested in OrangeHRM Inc. Any rights not expressly granted herein are
 * reserved to OrangeHRM Inc.
 *
 * Please refer http://www.orangehrm.com/Files/OrangeHRM_Commercial_License.pdf for the license which includes terms and conditions on using this software.
 *
 */

SET @module_id := (SELECT `id`
                               FROM `ohrm_module`
                               WHERE `name` = 'onboardingPro');

SET @custom_tab_screen_id := (SELECT id
                              FROM `ohrm_screen`
                              WHERE `name` = 'Memberships');
SET @tab_id := (SELECT id
                FROM `ohrm_menu_item`
                WHERE `menu_title` = 'Memberships'
                  AND screen_id = @custom_tab_screen_id
                  AND status = 1);

SET @wizard_screen_id := (SELECT id
                FROM `ohrm_wizard_screen`
                WHERE `title` = 'Memberships');
SET @membership_wizard_section_id := (SELECT id
                FROM `ohrm_wizard_section`
                WHERE `wizard_screen_id` = @wizard_screen_id AND name = 'PimMembership');

SET @copy_preboarding_forms_task_template_id := (SELECT id FROM ohrm_advanced_task_template WHERE name = 'Copy Form data to Multiple tab' LIMIT 1);

SET @metadata := CONCAT('{
  "formName": "Preboarding Memberships",
  "wizardDataTemplate": {
    "sectionId": "@section_id",
    "wizardSectionName": "memberships",
    "data": {
      "memberships": {
        "membershipId": "${membership}",
        "subscriptionCurrency": "${currency}",
        "subscriptionFee": "${subscription_amount}",
        "subscriptionCommenceDate": "${subscription_commence_date}",
        "subscriptionRenewalDate": "${subscription_renewal_date}"
      },
      "actions":{
        "endpoint": "employees/<EMPNUMBER>/memberships",
        "method": "POST",
        "data": {
            "membershipId": "${membership#id}",
            "subscriptionCurrency": "${currency#id}",
            "subscriptionFee": "${subscription_amount}",
            "subscriptionCommenceDate": "${subscription_commence_date}",
            "subscriptionRenewalDate": "${subscription_renewal_date}"
        },
        "extra": {
            "membershipId": "${membership#id}"
        },
        "params": {}
      }
    }
  },
  "config":{
      "emptyValueMap": {
        "membershipId": null,
        "subscriptionCurrency": null,
        "subscriptionFee": null,
        "subscriptionCommenceDate": null,
        "subscriptionRenewalDate": null
      },
      "aggregate_column": "preboarding_memberships",
      "index_generator_keys": [
        "membership#id"
      ]
   }
}');


SET @metadata = REPLACE(@metadata, '@section_id', @membership_wizard_section_id);

INSERT INTO `ohrm_advanced_task` (task_template_id, name, description, metadata)
VALUES (@copy_preboarding_forms_task_template_id, 'pre_add_candidate_as_employee',
        'task run at when candidate added as employee to copy preboarding form information to employee', @metadata);
