/**
 * Created by PPMaj on 11/8/2016.
 */
'use strict'

angular.module('RECRUIT').controller('ResumeConfig', function ($scope, $mdDialog, RecService, SwapLang, $filter) {
  $scope.lang = getLang();
  $scope.HrSwlang = SwapLang
  $scope.settings = {};
  let confField = {
    personal: [
      {name: 'prefixid', mandatory: '1', swcode: 'SW000194'},
      {name: 'fname', mandatory: '1', swcode: 'SW000195'},
      {name: 'lname', mandatory: '1', swcode: 'SW000214'},
      {name: 'genderid', mandatory: '1', swcode: 'SW003417'},
      {name: 'birthdate', mandatory: '1', swcode: 'SW012538'},
      {name: 'status', mandatory: '1', swcode: 'SW006762'},
      {name: 'religionid', mandatory: '1', swcode: 'SW000060'},
      {name: 'raceid', mandatory: '1', swcode: 'SW012948'},
      {name: 'nationalityid', mandatory: '1', swcode: 'SW005097'},
      {name: 'militarystatus', mandatory: '1', swcode: 'SW006763'},
      {name: 'birthplace', mandatory: '1', swcode: 'SW006685'},
      {name: 'bloodgroup', mandatory: '1', swcode: 'SW012949'},
      {name: 'height', mandatory: '1', swcode: 'SW012950'},
      {name: 'weight', mandatory: '1', swcode: 'SW000089'},
      {name: 'identification_iden_number', mandatory: '1', swcode: 'SW012915'},
      {name: 'identification_issue_amp', mandatory: '1', swcode: 'SW012951'},
      {name: 'identification_issue_proid', mandatory: '1', swcode: 'SW012952'},
      {name: 'identification_pinstart', mandatory: '1', swcode: 'SW012953'},
      {name: 'identification_pinend', mandatory: '1', swcode: 'SW012954'},
      {name: 'namechange_status', mandatory: '1', swcode: 'SW012955'},
      {name: 'namechange_oldfname', mandatory: '1', swcode: 'SW012956'},
      {name: 'namechange_oldlname', mandatory: '1', swcode: 'SW012957'},
      {name: 'nickname', mandatory: '0', swcode: 'SW001076'},
      {name: 'militarycause', mandatory: '0', swcode: 'SW004941'},
      {name: 'militaryconscript', mandatory: '0', swcode: 'SW012982'},
      {name: 'ssohospital', mandatory: '0', swcode: 'SW011800'},
      {name: 'ssopinstart', mandatory: '0', swcode: 'SW012987'},
      {name: 'ssopinend', mandatory: '0', swcode: 'SW012988'}
    ],
    family: [
      {name: 'family_prefixid', mandatory: '1', swcode: 'SW000194'},
      {name: 'family_fname', mandatory: '1', swcode: 'SW000195'},
      {name: 'family_lname', mandatory: '1', swcode: 'SW000214'},
      {name: 'family_status', mandatory: '1', swcode: 'SW006762'},
      {name: 'family_phone', mandatory: '1', swcode: 'SW009321'},
      {name: 'family_occupation', mandatory: '1', swcode: 'SW000790'},
      {name: 'family_workplace', mandatory: '1', swcode: 'SW007138'},
      {name: 'family_relation', mandatory: '1', swcode: 'SW003453'},
      {name: 'reference_prefixid', mandatory: '1', swcode: 'SW012963'},
      {name: 'reference_name', mandatory: '1', swcode: 'SW012964'},
      {name: 'reference_companyname', mandatory: '1', swcode: 'SW012965'},
      {name: 'reference_jobtitle', mandatory: '1', swcode: 'SW012966'},
      {name: 'reference_phone', mandatory: '1', swcode: 'SW012967'},
      {name: 'reference_accesspermit', mandatory: '1', swcode: 'SW012968'}
    ],
    education: [
      {name: 'university', mandatory: '1', swcode: 'SW012969'},
      {name: 'degreetype', mandatory: '1', swcode: 'SW006705'},
      {name: 'faculty', mandatory: '1', swcode: 'SW002142'},
      {name: 'duration', mandatory: '1', swcode: 'SW002143'},
      {name: 'gpa', mandatory: '1', swcode: 'SW002145'}
    ],
    jobexp: [
      {name: 'job_companyname', mandatory: '1', swcode: 'SW000839'},
      {name: 'job_title', mandatory: '1', swcode: 'SW012970'},
      {name: 'job_duration', mandatory: '1', swcode: 'SW000778'},
      {name: 'job_jobdesc', mandatory: '1', swcode: 'SW000134'},
      {name: 'job_salary', mandatory: '1', swcode: 'SW001743'},
      {name: 'job_reason', mandatory: '1', swcode: 'SW003449'},
      {name: 'training_name', mandatory: '1', swcode: 'SW003370'},
      {name: 'training_by', mandatory: '1', swcode: 'SW000570'},
      {name: 'training_date', mandatory: '1', swcode: 'SW003526'},
      {name: 'training_certificate', mandatory: '1', swcode: 'SW006813'},
      {name: 'trade_union', mandatory: '1', swcode: 'SW012971'},
      {name: 'training_duration', mandatory: '0', swcode: 'SW012983'}
    ],
    contact: [
      {name: 'home', mandatory: '1', swcode: 'SW006757'},
      {name: 'current', mandatory: '1', swcode: 'SW006756'},
      {name: 'email', mandatory: '1', swcode: 'SW004598'}
    ],
    skill: [
      {name: 'langskill', mandatory: '1', swcode: 'SW006890'},
      {name: 'expertise', mandatory: '1', swcode: 'SW005449'},
      {name: 'vehicle', mandatory: '1', swcode: 'SW012972'},
      {name: 'activity', mandatory: '1', swcode: 'SW012989'}
    ],
    other: [
      {name: 'askoldcompany', mandatory: '0', swcode: 'SW013001'},
      {name: 'health', mandatory: '0', swcode: 'SW012990'},
      {name: 'colorblindness', mandatory: '0', swcode: 'SW012991'},
      {name: 'discharge', mandatory: '0', swcode: 'SW012992'},
      {name: 'referee_group', mandatory: '0', swcode: 'SW012994'},
      {name: 'shiftwork', mandatory: '0', swcode: 'SW013003'},
      {name: 'ordination', mandatory: '0', swcode: 'SW013005'},
      {name: 'hajj', mandatory: '0', swcode: 'SW013006'},
      {name: 'pregnant', mandatory: '0', swcode: 'SW013008'},
      {name: 'policecapture', mandatory: '0', swcode: 'SW012993'},
      {name: 'apply', mandatory: '0', swcode: 'SW012995'},
      {name: 'employingthispos', mandatory: '0', swcode: 'SW012996'},
      {name: 'workupcountry', mandatory: '0', swcode: 'SW012997'},
      {name: 'jobtypelike', mandatory: '0', swcode: 'SW012998'},
      {name: 'presentemployer', mandatory: '0', swcode: 'SW012999'},
      {name: 'otherdetail', mandatory: '0', swcode: 'SW013000'},
      {name: 'trade_union', mandatory: '0', swcode: 'SW013002'},
      {name: 'overtime', mandatory: '0', swcode: 'SW013004'},
      {name: 'drinkalcohol', mandatory: '0', swcode: 'SW013007'},
      {name: 'guarantees', mandatory: '0', swcode: 'SW013010'},
      {name: 'workarea', mandatory: '0', swcode: 'SW013011'}
    ]
  };
  RecService.ManageConfig.getConfigResume().$promise.then(function (data) {
    confField = data.result
  })

  $scope.sections = [
    {name: 'personal', swcode: 'SW012958'},
    {name: 'contact', swcode: 'SW012959'},
    {name: 'family', swcode: 'SW012960'},
    {name: 'education', swcode: 'SW001796'},
    {name: 'jobexp', swcode: 'SW012961'},
    {name: 'skill', swcode: 'SW012962'},
    {name: 'other', swcode: 'SW002113'}
  ];

  $scope.init = function () {
    RecService.ManageConfig.query({cname: 'RESUME'}).$promise.then(function (data) {
      $scope.settings = data.result;
    });
  }
  $scope.init()

  $scope.navigateTo = function (section, setting, event) {
    if (setting.active == '0') return;
    $mdDialog.show({
      controller: DialogController,
      templateUrl: 'DIALOGTEMPLATE/RESUME_CONF.TMPL.html',
      parent: angular.element(document.body),
      targetEvent: event,
      clickOutsideToClose: true,
      locals: {
        section: section,
        setting: setting,
        confField: confField[section.name]
      }
    })
  };

  $scope.submit = function () {
    $scope.HrSwlang.getConfirm(1).then(function () {
      RecService.ManageConfig.save($scope.settings).$promise.then(function () {
        $scope.HrSwlang.getAlert(18).then(function () {
          $scope.init()
        })
      }, function () {
        $scope.HrSwlang.getAlert(17)
      })
    })

  };

  function DialogController($scope, $mdDialog, setting, confField, section) {
    $scope.section = section;
    $scope.confField = confField;
    $scope.setting = setting;
    $scope.lang = getLang();
    $scope.hide = function () {
      $mdDialog.hide();
    };
    $scope.cancel = function () {
      $mdDialog.cancel();
    };
    $scope.save = function () {
      $mdDialog.hide($scope.setting);
    };
  }

});