$(document).ready(function() {

  setAllBlurProducts();
  calculaItem(0);

  /*
  $('.itens-1-n tr').on('click', function () {
          setAllBlurProducts();
      });

      $('.settrcalculo').on('click', function () {
              setAllBlurProducts();
          });

          $('input[name*=id_produto]').val('a new value').trigger('blur');

          */
  $('.itens-1-n').on('change', function () {
      setAllBlurProducts();
    });

  $('#helper-modal-div').on('hide.bs.modal', function () {
      var p_id_helper = $(this).data('value');
      if( p_id_helper.indexOf("id_produto",0)>=0){
        getPadraoProdutoHelper(p_id_helper);
      }
      /*
      setAllBlurProducts();var attrName = $(this).attr("name");
      alert(attrName);*/
  });

  function getPadraoProdutoHelper(p_nome){
    // input[name='os_itens[0][id_produto]']
    //console.log('getPadraoProdutoHelper ' + p_nome);
    //alert('p_nome: '+p_nome);
    // Pega o Índice da Linha para buscar os padrões
    var p_pos_ini = 21;
    var p_pos_fim = p_nome.indexOf("]", p_pos_ini); // caracter colchete de fechamento do indíce;
    var p_indice  = p_nome.substr(p_pos_ini, p_pos_fim-p_pos_ini);

    //alert('p_indice: '+p_indice);
    // valor do campo id_produto
    var p_id_produto = $(p_nome).val();
    //alert('p_id_produto: '+p_id_produto);
    if(p_id_produto=='') p_id_produto = 0;
    $.ajax({
          url:  "inc/pedido_item_produto_padrao.php",
          type: "POST", //send it through get method
          data: {
                id_produto: p_id_produto
              },
          success:function(data) {
             p_retorno = data;
             //console.log('teste de retorno:' + p_retorno);

             if(p_retorno!=''){
               var nm_tp_movi = "[name='os_itens[" + p_indice + "][id_tipo_movimentacao]']";
               var nm_id_unid = "[name='os_itens[" + p_indice + "][id_unidade_medida]']";
               var nm_ds_cfop = "[name='os_itens[" + p_indice + "][ds_cfop]']";
               var nm_vl_ipi  = "[name='os_itens[" + p_indice + "][nr_perc_ipi]']";
               var nm_vl_icms = "[name='os_itens[" + p_indice + "][nr_perc_icms]']";
               var nm_vl_venda= "[name='os_itens[" + p_indice + "][vl_unitario]']";

              // console.log(p_retorno);
               var retdata  = p_retorno.split(';');
               //console.log('retdata: '+retdata);
                $(nm_tp_movi).val(retdata[0]);
                $(nm_id_unid).val(retdata[1]);
                $(nm_ds_cfop).val(retdata[3]);

                var p_vl_ipi = parseFloat(retdata[4]);
                var p_vl_icms= parseFloat(retdata[5]);
                var p_vl_venda=parseFloat(retdata[6]);

                $(nm_vl_ipi).val(mascaraValor(p_vl_ipi.toFixed(2)));
                $(nm_vl_icms).val(mascaraValor(p_vl_icms.toFixed(2)));
                $(nm_vl_venda).val(mascaraValor(p_vl_venda.toFixed(2)));
                calculaItem(p_indice);
             }
          }
     });
  }

  function getPadraoProduto(p_indice){
    var nm_id_pro = "[name='os_itens[" + p_indice + "][id_produto]']";
    var p_retorno = '';

        console.log('getPadraoProduto ' + nm_id_pro);

    var p_id_produto = $(nm_id_pro).val();
    if(p_id_produto=='') p_id_produto = 0;
    $.ajax({
          url:  "inc/pedido_item_produto_padrao.php",
          type: "POST", //send it through get method
          data: {
                id_produto: p_id_produto
              },
          success:function(data) {
             p_retorno = data;

             if(p_retorno!=''){
               var nm_tp_movi = "[name='os_itens[" + p_indice + "][id_tipo_movimentacao]']";
               var nm_id_unid = "[name='os_itens[" + p_indice + "][id_unidade_medida]']";
               var nm_ds_cfop = "[name='os_itens[" + p_indice + "][ds_cfop]']";
               var nm_vl_ipi  = "[name='os_itens[" + p_indice + "][nr_perc_ipi]']";
               var nm_vl_icms = "[name='os_itens[" + p_indice + "][nr_perc_icms]']";
               var nm_vl_venda= "[name='os_itens[" + p_indice + "][vl_unitario]']";

              // console.log(p_retorno);
               var retdata  = p_retorno.split(';');
                $(nm_tp_movi).val(retdata[0]);
                $(nm_id_unid).val(retdata[1]);
                $(nm_ds_cfop).val(retdata[3]);

                var p_vl_ipi  = parseFloat(retdata[4]);
                var p_vl_icms = parseFloat(retdata[5]);
                var p_vl_venda= parseFloat(retdata[6]);

                $(nm_vl_ipi).val(mascaraValor(p_vl_ipi.toFixed(2)));
                $(nm_vl_icms).val(mascaraValor(p_vl_icms.toFixed(2)));
                $(nm_vl_venda).val(mascaraValor(p_vl_venda.toFixed(2)));
                calculaItem(p_indice);
             }
          }
     });
  }

  function somaProdutos(){
    // $('input[name*=vl_total]')
    var p_sum_prod = 0;
      $('table tr input[name*=vl_total]').each(function () {
          // var valor = Number($(this).val());
          var valor = ($(this).val());

          vl_item = parseFloat(valor.replace(/\D/g, "")/ 100).toFixed(2)
          // if (!isNaN(valor)) p_sum_prod += vl_item;
          p_sum_prod += Number(vl_item);

          // console.log("valor do campo:" + valor);
          // p_sum_prod += parseFloat(p_vl_total).toFixed(2);
          // totalProduto += parseFloat(this.value);
      });

    // totalProduto = parseFloat(totalProduto).toFixed(2);
    // console.log(p_sum_prod);
    var texto = mascaraValor(p_sum_prod.toFixed(2));
    $("[name='ordem_servico[vl_total_produtos]'").val(texto );
    $("[name='ordem_servico[vl_total_pedido]'").val(texto );
  }


  // calcula o item através do índice informado
  function calculaItem(p_indice){
    //alert('calcultaItem recebeu: '+p_indice);
    // nome dos campos a tratar pelo índice
    var nm_nr_qtde = "[name='os_itens[" + p_indice + "][nr_quantidade]']";
    var nm_vl_unit = "[name='os_itens[" + p_indice + "][vl_unitario]']";

    /* Erro no nome do campo, o script para Henrique*/
    var nm_vl_desc = "[name='os_itens[" + p_indice + "][vl_desconto]']";
    var nm_vl_total= "[name='os_itens[" + p_indice + "][vl_total]']";


    var nm_nr_pipi = "[name='os_itens[" + p_indice + "][nr_perc_ipi]']";
    var nm_nr_picms= "[name='os_itens[" + p_indice + "][nr_perc_icms]']";
    var nm_vl_ipi  = "[name='os_itens[" + p_indice + "][vl_ipi]']";
    var nm_vl_icms = "[name='os_itens[" + p_indice + "][vl_icms]']";

    // campos digitáveis:
    p_nr_qtde = $(nm_nr_qtde).val();
    p_nr_ipi  = $(nm_nr_pipi).val();
    p_nr_icms = $(nm_nr_picms).val();
    p_vl_unit = $(nm_vl_unit).val();
    p_vl_desc = $(nm_vl_desc).val();

    p_nr_qtde = parseFloat(p_nr_qtde).toFixed(4);
    p_nr_ipi  = parseFloat(p_nr_ipi).toFixed(2);
    p_nr_icms = parseFloat(p_nr_icms).toFixed(2);


    console.log('qtde ' + p_nr_qtde);
    console.log('unit ' + p_vl_unit);
    console.log('desc ' + p_vl_desc);

    p_vl_unit = parseFloat(p_vl_unit.replace(/\D/g, "")/ 100).toFixed(2);
    p_vl_desc = parseFloat(p_vl_desc.replace(/\D/g, "")/ 100).toFixed(2);

    // calcula o total do item
    var p_vl_total= p_nr_qtde * (p_vl_unit - p_vl_desc);
        p_vl_total = (p_vl_total == "NaN" ? 0 : p_vl_total);

    // valores de IPI e ICMS
        // p_nr_ipi  = (isNaN(p_nr_ipi )==true ? 0 : p_nr_ipi);
        p_nr_ipi  = (p_nr_ipi == "Nan" ? 0 : p_nr_ipi);
        p_nr_icms = (p_nr_icms== "NaN" ? 0 : p_nr_icms);

    var p_vl_ipi  = (p_nr_ipi  / 100) * p_vl_total;
    var p_vl_icms = (p_nr_icms / 100) * p_vl_total;

     $(nm_vl_total).val(mascaraValor(p_vl_total.toFixed(2)));
     $(nm_vl_ipi).val(mascaraValor(p_vl_ipi.toFixed(2)));
     $(nm_vl_icms).val(mascaraValor(p_vl_icms.toFixed(2)));

     somaProdutos();
  }

  function setAllBlurProducts(){

    $('input[name*=id_produto]').unbind("blur");
    $('input[name*=id_produto]').unbind("keyup");

    $('input[name*=nr_quantidade]').unbind("blur");
    $('input[name*=vl_unitario]').unbind("blur");
    $('input[name*=vl_desconto]').unbind("blur");
    $('input[name*=vl_total]').unbind("blur");
    $('input[name*=nr_perc_ipi]').unbind("blur");
    $('input[name*=nr_perc_icms]').unbind("blur");
    $('input[name*=vl_ipi]').unbind("blur");
    $('input[name*=vl_icms]').unbind("blur");

    $('input[name*=id_produto]').blur(function(){
      var p_name_qtde= $(this).attr('name');

      var p_pos_ini = 9;
      var p_pos_fim = p_name_qtde.indexOf("]", p_pos_ini); // caracter colchete de fechamento do indíce;
      var p_indice  = p_name_qtde.substr(p_pos_ini, p_pos_fim-p_pos_ini);
      getPadraoProduto(p_indice)
    });

  $('input[name*=nr_quantidade]').blur(function(){
    var p_name_qtde= $(this).attr('name');

    var p_pos_ini = 9;
    var p_pos_fim = p_name_qtde.indexOf("]", p_pos_ini); // caracter colchete de fechamento do indíce;
    var p_indice  = p_name_qtde.substr(p_pos_ini, p_pos_fim-p_pos_ini);
    calculaItem(p_indice)
  });

  $('input[name*=vl_unitario]').blur(function(){
    var p_name_qtde= $(this).attr('name');

    var p_pos_ini = 9;
    var p_pos_fim = p_name_qtde.indexOf("]", p_pos_ini); // caracter colchete de fechamento do indíce;
    var p_indice  = p_name_qtde.substr(p_pos_ini, p_pos_fim-p_pos_ini);
    calculaItem(p_indice)
  });

  $('input[name*=vl_desconto]').blur(function(){
    var p_name_qtde= $(this).attr('name');

    var p_pos_ini = 9;
    var p_pos_fim = p_name_qtde.indexOf("]", p_pos_ini); // caracter colchete de fechamento do indíce;
    var p_indice  = p_name_qtde.substr(p_pos_ini, p_pos_fim-p_pos_ini);
    calculaItem(p_indice)
  });

  $('input[name*=nr_perc_ipi]').blur(function(){
    var p_name_qtde= $(this).attr('name');

    var p_pos_ini = 9;
    var p_pos_fim = p_name_qtde.indexOf("]", p_pos_ini); // caracter colchete de fechamento do indíce;
    var p_indice  = p_name_qtde.substr(p_pos_ini, p_pos_fim-p_pos_ini);
    calculaItem(p_indice)
  });

  $('input[name*=nr_perc_icms]').blur(function(){
    var p_name_qtde= $(this).attr('name');

    var p_pos_ini = 9;
    var p_pos_fim = p_name_qtde.indexOf("]", p_pos_ini); // caracter colchete de fechamento do indíce;
    var p_indice  = p_name_qtde.substr(p_pos_ini, p_pos_fim-p_pos_ini);
    calculaItem(p_indice)
  });
    return true;
  }

  function mascaraValor(valor) {
  valor = valor.toString().replace(/\D/g,"");
  valor = valor.toString().replace(/(\d)(\d{8})$/,"$1.$2");
  valor = valor.toString().replace(/(\d)(\d{5})$/,"$1.$2");
  valor = valor.toString().replace(/(\d)(\d{2})$/,"$1,$2");
  return valor
  }

}(jQuery));
