import axiosApi, { param } from '@assets/js/axios-api';

document.addEventListener('DOMContentLoaded', function() {
  const ERROR = document.querySelector('.js-error');
  const url_repl = document.getElementById('url_repl').textContent;
  const companyInput = document.getElementById('param_company');
  const orderInput = document.getElementById('param_order');
  const orderBudgetInput = document.getElementById('param_order_budget');
  const priceTableInput = document.getElementById('param_price_table');
  const bankAccountInput = document.getElementById('param_bank_account');

  if (ERROR) {
    const TAB = ERROR.closest('[data-tab]').dataset.tab;
    document.querySelector(`[data-tab-control=${TAB}]`).click();
  }

  var parametrosReplicacao = JSON.parse(document.getElementById('parametros_replicacao').textContent);
  for (var key in parametrosReplicacao) {
    if (parametrosReplicacao.hasOwnProperty(key)) {
      var value = parametrosReplicacao[key];

      if (key == 'empresa') {
        companyInput.value = value.Descricao;
      } else if (key == 'tipo_pedido') {
        orderInput.value = value.Descricao;
      } else if (key == 'tipo_pedido_orcamento') {
        orderBudgetInput.value = value.Descricao;
      } else if (key == 'tabela_preco') {
        priceTableInput.value = value.Descricao;
      } else if (key == 'conta_corrente') {
        bankAccountInput.value = value.Descricao;
      } else {
        console.log('Erro ao carregar informações dos parâmetros replicação!');
      }
    }
  }

  const btnReload = document.getElementById('js-btn_reload');
  const textReload = document.querySelector('.js-text-reload');
  const reloadIcon = document.querySelector('.js-reload-icon');

  btnReload.addEventListener('click', event => {
    event.preventDefault();
    event.stopPropagation();
    reloadData();
  });

  function reloadData() {
    textReload.classList.add('hidden');
    reloadIcon.classList.remove('hidden');
    axiosApi({
      url: url_repl,
      method: 'POST',
      timeout: 10000,
      dataType: 'json',
      contentType: 'application/json; charset=utf-8',
      data: param({
        atualizar: true,
      }),
    })
      .then(json => {
        companyInput.value = json.data.empresa.Descricao;
        orderInput.value = json.data.tipo_pedido.Descricao;
        orderBudgetInput.value = json.data.tipo_pedido_orcamento.Descricao;
        priceTableInput.value = json.data.tabela_preco.Descricao;
        bankAccountInput.value = json.data.conta_corrente.Descricao;

        notificationMsg('As informações foram atualizadas com sucesso', 'success');
        textReload.classList.remove('hidden');
        reloadIcon.classList.add('hidden');
      })
      .catch(err => {
        console.log(err, err.response);
        textReload.classList.remove('hidden');
        reloadIcon.classList.add('hidden');
      });
  }
});
