/**
 * Criar autorização de faturamento
 */
$("#criar_faturamento").submit(function () {
	   
  let formulario = document.getElementById("criar_faturamento");
  let formData = new FormData(formulario);

  let btn = document.querySelector("#newFat_btn");
  let span = document.querySelector("#newFat_span");
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: formData,
    dataType: "json",
    processData: false,
    contentType: false,
    beforeSend: function () {
      btn.setAttribute("disabled", "disabled");
      span.innerHTML = `<img src="./utils/img/gif.gif" alt="Pesquisando" width="40">`;
    },
    error: function (jqXHR, textStatus, errorThrown) {
      let jqXHRJSON = JSON.stringify(jqXHR);
      console.log(
        `jqXHR: ${jqXHRJSON} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
      setTimeout(() => {
        btn.removeAttribute("disabled");
        span.innerHTML = "";
      }, 1000);
    },
    success: function (retorno) {
      if (retorno["status"]) {
        $(".caixa_logo").notify(retorno["msg"], "success");
        popSolicitacoes();
        zerarCreate();
      } else {
        $(".caixa_logo").notify(retorno["msg"], "danger");
      }
      setTimeout(() => {
        btn.removeAttribute("disabled");
        span.innerHTML = "";
      }, 1000);
    },
  });
  return false;
  
});

function zerarCreate()
{
  $("#cliente_pesq").val("");
  $("#cliente_add").val("");
  $("#vencimento_parcela").val("");
  $("#valor_total").val("");
  $("#qtd_parcelas").val("");
  $("#nota_fiscal").val("");
  $("#obs_add").val("");
  $('#newFat').modal('hide');
}

/**
 * Pesquisar clientes
 */
function popClientes() {
  let cliente_pesq = document.querySelector("#cliente_pesq").value;
  let btn = document.querySelector("#pesq_cliente");
  let selecione_cliente = document.querySelector("#selecione_cliente");
  let result = "<option value='' selected=''>Selecione um Cliente</option>";
  let selected_option = "";
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: { cod: 2, cliente_pesq },
    dataType: "json",
    beforeSend: function () {
      btn.setAttribute("disabled", "disabled");
      selecione_cliente.innerHTML = `<img src="./utils/img/gif.gif" alt="Pesquisando" width="40">`;
    },
    error: function (jqXHR, textStatus, errorThrown) {
      console.log(
        `jqXHR: ${jqXHR} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
      setTimeout(() => {
        btn.removeAttribute("disabled");
        selecione_cliente.innerHTML = "";
      }, 1000);
    },
    success: function (retorno) {
      if (retorno) {
			
		if (retorno.length === 1) {
			selected_option = "selected";
		}
		  
        retorno.map(function (e) {
          result += `<option value='${e.cod}' ${selected_option}>${e.nome}</option>`;
        });
      }
      setTimeout(() => {
        $("#cliente_add").html(result);
        selecione_cliente.innerHTML = "";
      }, 1000);
      btn.removeAttribute("disabled");
    },
  });
}

/**
 * Verificar se a quantidade de parcelas é maior que 6.
 * Se for então o gerente deve liberar o acesso com a senha.
 */
function checkQtd(el) {
  if (el.value > 6) {
    let person = prompt(
      "Digite a senha do gerente para liberar essa quantidade de parcelas:",
      ""
    );
    if (person !== "unidos@2021") {
      alert("Senha Incorreta.");
      el.value = "";
    }else{
			  pass(el.value);
	}
  }else{
	  pass(el.value);
  }
  
  
}
function checkvalor(el) {
  if (el.value != null) {
    $("#qtd_parcelas").removeAttr("disabled");
  }else{
    $("#qtd_parcelas").attr("disabled", "true");
  }
}

function pass(parcelas){
	var value = parcelas, htm = "";
	var valor = $("#valor_total").val();
	let result = valor.replace(",", "");
	let result2 = result.replace(".", "");

	var parcelado = formatReal(result2/parcelas);
	var data = $("#vencimento_parcela").val();
	
	/*var data = new Date(data); <br>

	*/
	
	var parts =data.split('-');
	
	var mydate = new Date(parts[0], parts[1] - 1, parts[2]); 
	
	
	
		for(var i=1; i<=value ; i++){
			
			
	
			htm += " <div class='row'>";
			htm += "   <div class='col-lg-5'>";
			htm += "      <label>Data vencimento "+i+"X:</label>";
			if(i == 1){
			htm += "      <input type='date' name='datevenc[]' id='datevenc"+i+"' class='form-control' value='"+data+"'/>";
			}else{
				
			mydate.setDate(mydate.getDate() + 30);
			//var datestring = "0"+mydate.getDate()  + "/0" + (mydate.getMonth()+1) + "/" + mydate.getFullYear();
			var datestring = mydate.getFullYear()+"-" + confidate((mydate.getMonth()+1)) +"-"+confidate(mydate.getDate());	
				
				
			htm += "      <input type='date' name='datevenc[]' id='datevenc"+i+"' class='form-control' value='"+datestring+"'/>";
			}
			htm += "   </div>";
			htm += "   <div class='col-lg-4'>";
			htm += "      <label>Valor "+i+"X:</label>";
			htm += "      <input type='text' name='valorpac[]' id='valorpac"+i+"' class='form-control money2' />";
			htm += "   </div>";					
			htm += " </div>";                                  
		}
		if(value>1){
		   $(".todo-pass").css("display", "block");
		   $("#parcelas").html(htm); 
		   $('.money2').maskMoney();
		   $('.money2').val(parcelado);

		}else{
		   $(".todo-pass").css("display", "none");
		}    
}

function confidate(num){
	
	if(num < 10){
		num = "0"+num;
	}
	
	return num;
}

function formatReal( int )
{
        var tmp = int+'';
        tmp = tmp.replace(/([0-9]{2})$/g, ",$1");
        if( tmp.length > 6 )
                tmp = tmp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");

        return tmp;
}

/**
 * Excluir Autorização de Faturamento
 */
function delItem(id, btn_exc, span_exc) {
  let btn = document.querySelector(`#${btn_exc}`);
  let span = document.querySelector(`#${span_exc}`);
  let confirm = window.confirm("Deseja continuar com esta ação?");
  if (confirm) {
    $.ajax({
      url: "config/faturamento.php",
      type: "POST",
      data: { cod: 3, id },
      dataType: "json",
      beforeSend: function () {
        btn.setAttribute("disabled", "disabled");
        span.innerHTML = `<img src="./utils/img/gif.gif" alt="Pesquisando" width="40">`;
      },
      error: function (jqXHR, textStatus, errorThrown) {
        console.log(
          `jqXHR: ${jqXHR} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
        );
        setTimeout(() => {
          btn.removeAttribute("disabled");
          span.innerHTML = "";
        }, 1000);
      },
      success: function (retorno) {
        if (retorno["status"]) {
          $(".caixa_logo").notify(retorno["msg"], "success");
          popSolicitacoes();
        } else {
          $(".caixa_logo").notify(retorno["msg"], "danger");
        }
        setTimeout(() => {
          btn.removeAttribute("disabled");
          span.innerHTML = "";
        }, 1000);
      },
    });
  }
}

/**
 * Popular parcelas da autorização de faturamento
 */
function popParcelas(id) {
  let result = "";
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: { cod: 4, id },
    dataType: "json",
    error: function (jqXHR, textStatus, errorThrown) {
      console.log(
        `jqXHR: ${jqXHR} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
    },
    success: function (retorno) {
      if (retorno.length > 0) {
        for (let cc = 0; cc < retorno.length; cc++) {
          result += `<p class='text-center'><b>Data Vencimento:</b> ${retorno[cc].data} <b>Valor Parcela:</b> R$${retorno[cc].valor}</p>`;
        }
      }
      $("#popParcelas_received").html(result);
    },
  });
}

/**
 * Popular campos do modal de modificação da situação
 */
function acoesMod(id, situacao) {
  document.querySelector("#id_escondido_mod").value = id;
  document.querySelector("#situacao_mod").value = situacao;
}

/**
 * Modificar situação da solicitação
 */
$("#mod_situacao").submit(function () {
  let formulario = document.getElementById("mod_situacao");
  let formData = new FormData(formulario);
  let btn = document.querySelector("#acoesMod_btn");
  let span = document.querySelector("#acoesMod_span");
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: formData,
    dataType: "json",
    processData: false,
    contentType: false,
    beforeSend: function () {
      btn.setAttribute("disabled", "disabled");
      span.innerHTML = `<img src="./utils/img/gif.gif" alt="Pesquisando" width="40">`;
    },
    error: function (jqXHR, textStatus, errorThrown) {
      console.log(
        `jqXHR: ${jqXHR} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
      setTimeout(() => {
        btn.removeAttribute("disabled");
        span.innerHTML = "";
      }, 1000);
    },
    success: function (retorno) {
      if (retorno["status"]) {
        $(".caixa_logo").notify(retorno["msg"], "success");
        popSolicitacoes();
        zerarMod();
      } else {
        $(".caixa_logo").notify(retorno["msg"], "danger");
      }
      setTimeout(() => {
        btn.removeAttribute("disabled");
        span.innerHTML = "";
      }, 1000);
    },
  });
  return false;
});

function zerarMod()
{
  $("#situacao_mod").val("");
  $("#obs_mod").val("");
  $("#senha").val("");
  $('#acoesMod').modal('hide');
}

/**
 * Popular campos para edição da solicitação
 */
function popEdt(id, vencimento, valor, parcelas, nota_fiscal) {
  document.querySelector("#id_edt_solicitacao").value = id;
  document.querySelector("#vencimento_parcela_edt").value = vencimento;
  document.querySelector("#valor_total_edt").value = valor;
  document.querySelector("#qtd_parcelas_edt").value = parcelas;
  document.querySelector("#nota_fiscal_edt").value = nota_fiscal;
}

/**
 * Modificar situação da solicitação
 */
$("#modRejeited_edt").submit(function () {
  let formulario = document.getElementById("modRejeited_edt");
  let formData = new FormData(formulario);
  let btn = document.querySelector("#modRejeited_btn");
  let span = document.querySelector("#modRejeited_span");
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: formData,
    dataType: "json",
    processData: false,
    contentType: false,
    beforeSend: function () {
      btn.setAttribute("disabled", "disabled");
      span.innerHTML = `<img src="./utils/img/gif.gif" alt="Pesquisando" width="40">`;
    },
    error: function (jqXHR, textStatus, errorThrown) {
      console.log(
        `jqXHR: ${jqXHR} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
      setTimeout(() => {
        btn.removeAttribute("disabled");
        span.innerHTML = "";
      }, 1000);
    },
    success: function (retorno) {
      if (retorno["status"]) {
        $(".caixa_logo").notify(retorno["msg"], "success");
        popSolicitacoes();
        zerarRejeit();
      } else {
        $(".caixa_logo").notify(retorno["msg"], "danger");
      }
      setTimeout(() => {
        btn.removeAttribute("disabled");
        span.innerHTML = "";
      }, 1000);
    },
  });
  return false;
});

function zerarRejeit()
{
  $("#id_edt_solicitacao").val("");
  $("#vencimento_parcela_edt").val("");
  $("#valor_total_edt").val("");
  $("#qtd_parcelas_edt").val("");
  $("#nota_fiscal_edt").val("");
  $("#obs_edt").val("");
  $('#modRejeited').modal('hide');
}

/**
 * Popular relatório da solicitação
 */
function popRel(id) {
  let enquanto = document.querySelector("#modRel_historico");
  let result = "";
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: { cod: 7, id },
    dataType: "json",
    beforeSend: function () {
      enquanto.innerHTML = `<img src="./utils/img/gif.gif" alt="Pesquisando" width="40">`;
    },
    error: function (jqXHR, textStatus, errorThrown) {
      console.log(
        `jqXHR: ${jqXHR} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
      setTimeout(() => {
        enquanto.innerHTML = "";
      }, 1000);
    },
    success: function (retorno) {
      if (retorno.length > 0) {
        retorno.map(function (e) {
          result += `
            <ol>
              <li><b>Data: </b>${e.data}</li>
              <li><b>Usuário: </b>${e.user}</li>
              <li><b>Situação Antes: </b>${e.antiga_situacao}</li>
              <li><b>Situação Depois: </b>${e.situacao}</li>
              <li><b>OBS: </b>${e.obs}</li>
            </ol>
            <hr>
          `;
        });
      }
      setTimeout(() => {
        $("#modRel_historico").html(result);
      }, 1000);
    },
  });
}

/**
* Este script será encarregado de verificar se tem novas solicitações ou e a situação de algum delas mudou
*/
function popSolicitacoes()
{
  let resultado = "";
  let data_de = document.querySelector("#data_de").value;
  let data_ate = document.querySelector("#data_ate").value;
  let situacao_pesq = document.querySelector("#situacao_pesq").value;
  let qtd_listados = document.querySelector("#qtd_listados").value;
  let vendedor_pesq = document.querySelector("#vendedor_pesq").value;
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: { cod: 8,data_de,data_ate,situacao_pesq,qtd_listados,vendedor_pesq },
    dataType: "json",
    error: function (jqXHR, textStatus, errorThrown) {
      let jqXHRJSON = JSON.stringify(jqXHR);
      console.log(
        `jqXHR: ${jqXHRJSON} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
    },
    success: function (retorno) {
      if (retorno.length > 0) {
        retorno.map(function(lista){
          resultado += `<tr>`;
          resultado += `  <td style="text-align: center;">${lista.data_cadastro}</td>`;
          resultado += `  <td>${lista.nome}</td>`;
          resultado += `  <td>${lista.cliente} - ${lista.cliente_nome}</td>`;
          resultado += `  <td>${lista.cpf_cnpj}</td>`;
          resultado += `  <td>${lista.nota_fiscal}</td>`;
          resultado += `  <td>R$ ${lista.valor_formatado}</td>`;
          resultado += `  <td>`;
          resultado += `    <button class="btn btn-outline-primary btn-sm w-100" data-toggle="modal" data-target="#popParcelas"`;
          resultado += `      onClick="popParcelas('${lista.id}')">`;
          resultado += `      <small>x</small><strong style="font-size:18px;">${lista.parcelas}</strong>`;
          resultado += `    </button>`;
          resultado += `  </td>`;
          resultado += `  <td>${lista.vencimento_formatado}</td>`;
          resultado += `  <td style="text-align: center;"`;
          resultado += `    onClick="popEdt('${lista.id}','${lista.vencimento}','${lista.valor_formatado}','${lista.parcelas}','${lista.nota_fiscal}')">`;
          let complemento_rejeitado = "";
          if (lista.tipo_user == 1) {
            complemento_rejeitado += `data-toggle='modal' data-target='#modRejeited' style='cursor:pointer;' title='Atualize as informações da solicitação para que ela vole a ser pendente.'`;
          }
          if (lista.situacao == 1) {
            resultado += `<span class='badge badge-info'>Pendente Local</span>`;
          } else if (lista.situacao == 2) {
            resultado += `<span class='badge badge-success'>Aprovado Local</span>`;
            if (lista.situacao_web == 0) {//pendente
              resultado += `<span class='badge badge-info'>Pendente Cliente</span>`;
            } else if (lista.situacao_web == 1) {//aprovado
              resultado += `<span class='badge badge-success' style='cursor:pointer;' data-toggle='modal' data-target='#sitWeb' onClick='sitWeb("${lista.text_web}","${lista.pdf_doc}")'>Aprovado Cliente</span>`;
            } else if (lista.situacao_web == 2) {//reprovado
              resultado += `<span class='badge badge-danger' style='cursor:pointer;' data-toggle='modal' data-target='#sitWeb' onClick='sitWeb("${lista.text_web}","${lista.pdf_doc}")'>Rejeitado Cliente</span>`;
            }
          } else if (lista.situacao == 3) {
            resultado += `<span class='badge badge-danger' ${complemento_rejeitado}>Rejeitado Local</span>`;
          }
          resultado += `  </td>`;
          resultado += `  <td style="text-align:center;">`;
          resultado += `    <button class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#modRel"`;
          resultado += `      onClick="popRel('${lista.id}')"><img src="./utils/img/icons/archive.svg" width="18" /></button>`;
          resultado += `  </td>`;
          if (lista.tipo_user == 1) {
            resultado += `  <td style="text-align: center;">`;
            if (lista.situacao == 1 || lista.situacao == 3) {
              resultado += `    <button class="btn btn-danger btn-sm" id="btn_exc_${lista.id}"`;
              resultado += `      onClick="delItem('${lista.id}','btn_exc_${lista.id}','span_exc_${lista.id}')">`;
              resultado += `      <img src="./utils/img/icons/remove.svg" width="18" /> <span id="span_exc_${lista.id}"></span>`;
              resultado += `    </button>`;
            }
            resultado += `  </td>`;
          }

          if (lista.tipo_user == 7  || lista.tipo_user == 6 || lista.tipo_user == 5) {
            //caso rejeitada ou pendente
            if (lista.situacao == 1) {
              resultado += `  <td style="text-align: center;">`;
              resultado += `    <button class="btn btn-outline-light btn-sm" data-toggle="modal" data-target="#acoesMod"`;
              resultado += `      onClick="acoesMod('${lista.id}','${lista.situacao}')">`;
              resultado += `      <img src="./utils/img/icons/edit.svg" width="18" />`;
              resultado += `    </button>`;
              resultado += `  </td>`;
            }
          }
          resultado += `</tr>`;

        });
      }
      $("#received_solicitacoes").html(resultado);
    },
  });
}

function sitWeb(text,pdf) {
  document.querySelector("#sitWebDescricao").innerHTML = text;
  var result = "";
  if (pdf) {
    result = `<a href="https://unidosimportados.com.br/painel/tmp/docs/${pdf}" target="_blank">
      Clique aqui para ver o arquivo
    </a>`;
  }
  document.querySelector("#sitWebLink").innerHTML = result;
}

/**
 * Pegar totais de solicitações e de situações das solicitações
 */
async function veriicarAtt()
{
  let status_novas = 0;
  let status_modificadas = 0;
  let total_solicitacoes = localStorage.getItem("total_solicitacoes");
  let solicitacoes_aberto = localStorage.getItem("solicitacoes_aberto");
  let total_aprovadas = localStorage.getItem("total_aprovadas");
  let total_rejeitadas = localStorage.getItem("total_rejeitadas");
  var context = new AudioContext();
  $.ajax({
    url: "config/faturamento.php",
    type: "POST",
    data: { cod: 9 },
    dataType: "json",
    error: function (jqXHR, textStatus, errorThrown) {
      let jqXHRJSON = JSON.stringify(jqXHR);
      console.log(
        `jqXHR: ${jqXHRJSON} \n textStatus: ${textStatus} \n errorThrown: ${errorThrown}`
      );
    },
    success: function (retorno) {

      //verificar se tem novas solicitações feitas 
      status_novas = retorno.total_solicitacoes > total_solicitacoes ? 1 : 0;

      //verificar se a situacao de alguma solicitação mudou
      if (solicitacoes_aberto != retorno.total_solicitacoes_abertas) {
        status_modificadas = 1;
      }
      if (total_aprovadas != retorno.total_solicitacoes_aprovadas) {
        status_modificadas = 1;
      }
      if (total_rejeitadas != retorno.total_solicitacoes_reprovadas) {
        status_modificadas = 1;
      }

      if (status_novas > 0) {
        document.querySelector("#sitatt").value = 1;
        context.resume().then(function() {
          $('#notificacao_novas_solicitacoes').trigger('play');
        });
      }

      if (status_modificadas > 0) {
        document.querySelector("#sitatt").value = 1;
        context.resume().then(function() {
          $('#notificacao_solicitacoes_alteradas').trigger('play');
        });
      }

      localStorage.setItem("total_solicitacoes",retorno.total_solicitacoes);
      localStorage.setItem("solicitacoes_aberto",retorno.total_solicitacoes_abertas);
      localStorage.setItem("total_aprovadas",retorno.total_solicitacoes_aprovadas);
      localStorage.setItem("total_rejeitadas",retorno.total_solicitacoes_reprovadas);
    },
  });
  return document.querySelector("#sitatt").value;
}

setInterval(() => {
  veriicarAtt().then(function(e){
    if (Number(e) === Number(1)) {
      popSolicitacoes();
      document.querySelector("#sitatt").value = 0;
    }
  });
},3000);

document.querySelector('#button_liberar_permissao').addEventListener('click', function() {
  veriicarAtt().then(function(e){
    popSolicitacoes();
  });
});

if (localStorage.getItem("total_solicitacoes") === null) {
  localStorage.setItem("total_solicitacoes",0);
}

if (localStorage.getItem("solicitacoes_aberto") === null) {
  localStorage.setItem("solicitacoes_aberto",0);
}

if (localStorage.getItem("total_aprovadas") === null) {
  localStorage.setItem("total_aprovadas",0);
}

if (localStorage.getItem("total_rejeitadas") === null) {
  localStorage.setItem("total_rejeitadas",0);
}