var tabla;
//declaramos variables necesarias para trabajar con las compras y sus detalles
var impuesto1 = 16;
var cont = 0;
var detalles = 0;

//funcion que se ejecuta al inicio
function init() {
  // mostrarform(true);
  //** temporal */
  mostrarform(false);
  listar();
  listarArticulos();
  //listarServicios();
  //buscarAlmacen('BODEGART');

  // listarArticuloBarra();

  $("#btnGuardar").on("click", function (e) {
    /* Evitamos el envío real del formulario */
    e.preventDefault();

    validar();
    var val = $("#validado").val();
    console.log(val);
    if (val == 1) {
      bootbox.confirm(
        "¿Esta seguro que quiere guardar los dato?",
        function (result) {
          if (result) {
            modificarValoresAnumerico();
            guardaryeditar(e);
          }
        }
      );
    }
  });

  // Capturamos el evento click de la ventana modal Articulo
  // Para habilitar y desabilitar los botones y campos que van con cada funcion
  $("#btnAgregarArt").on("click", function (e) {
    $("#myModalArt").modal("show");
    // $('#serie_comprobante').prop("disabled", false);
    // $('#num_comprobante').prop("disabled", false);
    // $("#num_comprobante1").show();
    // $("#serie_comprobante1").show();
    // $('#num_suministro').prop("disabled", false);
    // $('#num_suministro').val("N/A");
    // $("#num_suministro1").hide();
    // $("#tipo_comprobante").val("Factura");
    // $("#tipo_comprobante").selectpicker('refresh');
    // $("#tipo_comprobante").val("1");
    // $("#tipo_comprobante").selectpicker('refresh');
  });

  $("#btnAgregarSer").on("click", function (e) {
    $("#myModalSer").modal("show");
  });

  $("#btnAgregarOrd").on("click", function (e) {
    $("#myModalOrd").modal("show");
  });

  //se verifica si cambia los campos del formulario
  $("#idproveedor").change(function () {
    /* $("#cod_barra").val("");
		$("#cod_barra").focus(); */
    let idproveedor = $("#idproveedor").val();
    //console.log('idproveedor :'+idproveedor);
    listarorden(idproveedor);
  });

  $("#cantidad").change(function () {
    $("#cod_barra").val("");
    $("#cod_barra").focus();
    modificarSubtotales();
  });

  $("#precio_compra").change(function () {
    $("#cod_barra").val("");
    $("#cod_barra").focus();
    modificarSubtotales();
  });

  $("#precio_venta").change(function () {
    $("#cod_barra").val("");
    $("#cod_barra").focus();
    modificarSubtotales();
  });

  $("#nrolote").change(function () {
    $("#cod_barra").val("");
    $("#cod_barra").focus();
    modificarSubtotales();
  });

  $("#fecha_lote").change(function () {
    $("#cod_barra").val("");
    $("#cod_barra").focus();
    modificarSubtotales();
  });

  //se verifica si cambia los campos del formulario de codigo de barra
  /* $("#cod_barra").change(function(e){
        // Evitamos el envío real del formulario 
        e.preventDefault();
       	// Hacemos la llamada al API 
		var codigobarra = $("#cod_barra").val();
		//alert('codigo barra change: '+codigobarra);
		buscarcodigodebarra(codigobarra);
	}); */

  /* $("#cod_barra").change(function(){
		var codigobarra = $("#cod_barra").val();
		alert('codigo barra change: '+codigobarra);
		agregarDetalleCodigoDeBarra(codigobarra);
	}); */

  $("#cod_barra").keypress(function (e) {
    var keycode = e.keyCode ? e.keyCode : e.which;
    var codigobarra = $("#cod_barra").val();
    if (keycode == "13") {
      // Evitamos el envío real del enter
      e.preventDefault();
      // Hacemos la llamada al API Buscamos el codigo de barra
      buscarcodigodebarra(codigobarra);
      return false;
    }
  });

  //cargamos los items al select proveedor
  $.post(
    "controladores/ingresoControlador.php?op=selectProveedori",
    function (r) {
      $("#idproveedor").html(r);
      $("#idproveedor").selectpicker("refresh");
    }
  );

  //cargamos los items al select fabricante
  $.post(
    "controladores/ingresoControlador.php?op=selectProveedorf",
    function (r) {
      $("#idproveedorfabricante").html(r);
      $("#idproveedorfabricante").selectpicker("refresh");
    }
  );

  //Cargamos los almacenes de Factory
  $.post(
    "controladores/almacenControlador.php?op=selectfactoryinsumo",
    function (r) {
      $("#idalmacen").html(r);
      $("#idalmacen").val(1);
      $("#idalmacen").selectpicker("refresh");
    }
  );

  //cargamos la maquila
  $.post(
    "controladores/ordenproduccionControlador.php?op=selectCliente",
    function (r) {
      $("#idmaquila").html(r);
      $("#idmaquila").val(0);
      $("#idmaquila").selectpicker("refresh");
    }
  );
}

/*******
 *
 * Resolver*******************
 *
 */

//Funcion para bucar dentro de un select
function buscarSelect() {
  // creamos un variable que hace referencia al select
  var select = document.getElementById("idproveedor");
  // obtenemos el valor a buscar
  var buscar = "BODEGART";
  // recorremos todos los valores del select
  for (var i = 1; i < select.length; i++) {
    if (select.options[i].text == buscar) {
      // seleccionamos el valor que coincide
      select.selectedIndex = i;
      $("#tipo_comprobante").val("'i'");
      $("#tipo_comprobante").selectpicker("refresh");
    }
  }
}

//funcion limpiar
function limpiar() {
  $("#formulario").data("bootstrapValidator").resetForm(true);
  $("#idproveedor").val("");
  $("#fecha_hora").val("");
  $("#fecha_horar").val("");
  $("#proveedor").val("");
  $("#serie_comprobante").val("");
  $("#num_comprobante").val("");
  $("#num_suministro").val("");
  $("#impuesto").val("");
  $("#validado").val("0");

  $("#idmaquila").val(0);
  $("#idmaquila").selectpicker("refresh");

  $("#total_compra").val("");
  $(".filas").remove();
  $("#total").html("0");

  //obtenemos la fecha actual
  var now = new Date();
  var today = new Date();
  var dd = ("0" + now.getDate()).slice(-2);
  var mm = ("0" + (now.getMonth() + 1)).slice(-2);
  var yyyy = now.getFullYear();
  var today = yyyy + "-" + mm + "-" + dd;
  $(fecha_hora).val(today);

  //marcamos el primer tipo_documento
  $("#tipo_comprobante").val("NotaEntrega");
  $("#tipo_comprobante").selectpicker("refresh");
  //marcamos el almacen
  var select = document.getElementById("idalmacen");
  var buscar = "MATERIA PRIMA";
  // recorremos todos los valores del select
  for (var i = 1; i < select.length; i++) {
    if (select.options[i].text == buscar) {
      select.selectedIndex = i;
    }
  }
  $("#idalmacen").selectpicker("refresh");

  marcarImpuesto();
  //buscarnrosuministro();
  buscarnronotadeentrega();
}

//funcion mostrar formulario
function mostrarform(flag) {
  limpiar();
  if (flag) {
    $("#listadoregistros").hide();
    $("#formularioregistros").show();
    $("#formularioregistros1").show();
    $("#num_suministro1").hide();
    buscarTasaDeCambio();
    //$("#btnGuardar").prop("disabled",false);
    $("#btnagregar").hide();

    $("#cod_barra").focus();
    $("#btnGuardar").hide();
    $("#btnCancelar").show();
    detalles = 0;
    $("#btnAgregarArt").show();
    //$("#btnAgregarSer").show();

    // *** Para chocomilk y Bocatto Oculto la orden de cotización
    //$("#btnAgregarOrd").show();
  } else {
    $("#listadoregistros").show();
    $("#btnagregar").show();
    $("#labelcodigobarra").show();
    $("#inputcodigobarra").show();
    /* $('#serie_comprobante').prop("disabled", false);
		$('#num_comprobante').prop("disabled", false);
		$('#num_suministro').prop("disabled", true); */
    $("#num_comprobante1").show();
    $("#serie_comprobante1").show();
    $("#num_suministro1").hide();
    $("#formularioregistros").hide();
    $("#formularioregistros1").hide();
  }
}

//cancelar form
function cancelarform() {
  limpiar();
  mostrarform(false);
}

//funcion listar
function listar() {
  tabla = $("#tbllistado")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: ["excelHtml5", "pdf"],
      ajax: {
        url: "controladores/ingresoControlador.php?op=listarinsumo",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [],
      // order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function listarServicios() {
  tabla = $("#tblservicios")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ingresoControlador.php?op=listarActivosServiciosCompra",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function listarArticulos() {
  tabla = $("#tblarticulos")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ingresoControlador.php?op=listarArticulosi",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function listarArticuloBarra() {
  tabla = $("#tblservicios")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ingresoControlador.php?op=listarArticuloBarra",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function buscarAlmacen(almacen) {
  $.post(
    "controladores/ingresoControlador.php?op=buscarAlmacen",
    { almacen: almacen },
    function (data, status) {
      data = JSON.parse(data);
      $("#idalmacen").val(data.idalmacen);
    }
  );
}

//serie_comprobante num_comprobante
function buscarnronotadeentrega() {
  $.post(
    "controladores/ingresoControlador.php?op=buscarnroingreso",
    function (data, status) {
      data = JSON.parse(data);
      if (data == null || data == "undefined") {
        serie_comprobante = 1;
        num_comprobante = 1;
      } else {
        nrosuministro = numero(data.nrosuministro) + 1;
        serie_comprobante = data.idingreso;
        num_comprobante = data.idingreso;
        1;
      }
      /* today			= $(fecha_hora).val();
			nrosuministro1	= today + '-' + nrosuministro */
      $("#serie_comprobante").val(serie_comprobante);
      $("#num_comprobante").val(num_comprobante);
      //console.log('$("#num_suministro").val(): '+$("#num_suministro").val());
    }
  );
}

function buscarnrosuministro() {
  $.post(
    "controladores/ingresoControlador.php?op=buscarnrosuministro",
    function (data, status) {
      data = JSON.parse(data);
      if (data == null || data == "undefined") {
        nrosuministro = 1;
      } else {
        nrosuministro = numero(data.nrosuministro) + 1;
      }
      today = $(fecha_hora).val();
      nrosuministro1 = today + "-" + nrosuministro;
      $("#num_suministro").val(nrosuministro1);
      console.log('$("#num_suministro").val(): ' + $("#num_suministro").val());
    }
  );
}

function listarorden(idproveedor) {
  tabla = $("#tblordens")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ordencompraingresoControlador.php?op=listarordencompra",
        type: "get",
        dataType: "json",
        method: "post",
        data: {
          idproveedor: idproveedor,
        },
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[1, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

//Se busca el numero la tasa de cambio
function buscarTasaDeCambio() {
  idempresa_venta = $("#idempresa_venta").val();
  //alert ('idempresa_venta: '+idempresa_venta);
  $.post(
    "controladores/empresaControlador.php?op=buscarTasaDeCambio",
    { idempresa_venta: idempresa_venta },
    function (data, status) {
      //alert ('estatus: '+status);
      data1 = JSON.parse(data);
      $("#tasa_dollar").val(number_format(data1.tasa_dollar), 2);
      $("#tasa_euro").val(number_format(data1.tasa_euro), 2);
      //		alert ('Control: '+data1.nrocontrol+' Factura: '+data1.nrofactura);
    }
  );
}

//funcion para guardaryeditar
function guardaryeditar(e) {
  e.preventDefault(); //no se activara la accion predeterminada
  //$("#btnGuardar").prop("disabled",true);
  var formData = new FormData($("#formulario")[0]);
  // alert("Vamos a actualizar ");
  $.ajax({
    url: "controladores/ingresoControlador.php?op=guardaryeditar",
    type: "POST",
    data: formData,
    contentType: false,
    processData: false,

    success: function (datos) {
      bootbox.alert(datos);
      mostrarform(false);
      listar();
    },
  });

  limpiar();
}

function mostrar(idingreso) {
  $.post(
    "controladores/ingresoControlador.php?op=mostrar",
    { idingreso: idingreso },
    function (data, status) {
      data = JSON.parse(data);
      mostrarform(true);
      $("#labelcodigobarra").hide();
      $("#inputcodigobarra").hide();
      $("#idproveedor").val(data.idproveedor);
      $("#idproveedor").selectpicker("refresh");
      $("#tipo_comprobante").val(data.tipo_comprobante);
      $("#tipo_comprobante").selectpicker("refresh");
      $("#serie_comprobante").val(data.serie_comprobante);
      $("#num_comprobante").val(data.num_comprobante);
      $("#fecha_hora").val(data.fecha);
      $("#fecha_horar").val(data.fechar);
      $("#impuesto").val(data.impuesto);
      $("#idingreso").val(data.idingreso);
      $("#idmaquila").val(data.idmaquila);
      $("#idmaquila").selectpicker("refresh");
      $("#idalmacen").val(data.idalmacen);
      $("#idalmacen").selectpicker("refresh");

      //ocultar y mostrar los botones
      $("#btnGuardar").hide();
      $("#btnCancelar").show();
      $("#btnAgregarArt").hide();
      $("#btnAgregarSer").hide();
      //Detalle
      $.post(
        "controladores/ingresoControlador.php?op=listarDetalleinsumo&id=" +
          idingreso,
        function (r) {
          $("#detalles").html(r);
        }
      );
    }
  );
}

//funcion para desactivar
function anular(idingreso) {
  bootbox.confirm("¿Esta seguro de desactivar este dato?", function (result) {
    if (result) {
      $.post(
        "controladores/ingresoControlador.php?op=anular",
        { idingreso: idingreso },
        function (e) {
          bootbox.alert(e);
          tabla.ajax.reload();
        }
      );
    }
  });
}

$("#btnGuardar").hide();
$("#tipo_comprobante").change(marcarImpuesto);

//funcion para habilitar la fecha de lote
function cambiarfechalote(idingreso) {
  var fechal = document.getElementsByName("fecha_lote[]");
  var lotef = document.getElementsByName("lote[]");
  //	alert('numero de lote: '+lotef[idingreso].value);
  if (lotef[idingreso].value == "N/A") {
    fechal[idingreso].disabled = true;
  } else {
    fechal[idingreso].disabled = false;
  }
}

function marcarImpuesto() {
  var tipo_comprobante = $("#tipo_comprobante option:selected").text();
  if (tipo_comprobante == "Factura") {
    $("#impuesto").val(impuesto1);
  } else {
    $("#impuesto").val("0");
    $(fecha_horar).val("");
  }
  $("#impuesto").attr("readonly", "readonly");
  impuesto.style.backgroundColor = "#D5D5CE";
}

function buscarcodigodebarra(codbarra) {
  //alert ('buscando codigo de barra: '+codbarra);
  $.ajax({
    url: "complemento/leercodigobarra.php",
    method: "post",
    data: {
      codigobarra: codbarra,
    },
  })
    .done(function (datos) {
      /* Depuramos los datos recibidos */
      console.log(datos);
      /* Si no se devolvió ningún registro (false) debería hacerse algo */
      if (datos === false) {
        /* hacer algo */
        bootbox.alert("No se encontró el código de barras");
        $("#cod_barra").val("");
        return;
      }
      /* Agregamos una fila con los datos obtenidos */
      agregarDetalle(datos.idarticulo, datos.nombre, datos.costo, datos.precio);
    })
    .fail(function () {
      alert("Error");
    })
    .always(function () {
      /* Seleccionamos el texto para que se pueda sobreescribir por la siguiente lectura */
      $("input[name='cod_barra']").select();
    });
}

function agregarDetalleorden(idordencompraingreso) {
  console.log("idordencompraingreso: " + idordencompraingreso);
  $("#idordencompraingreso").val(idordencompraingreso);
  console.log(
    '$("#idordencompraingreso").val(): ' + $("#idordencompraingreso").val()
  );
  $.post(
    "controladores/ordencompraingresoControlador.php?op=buscardetalleordencompra",
    { idordencompraingreso: idordencompraingreso },
    function (data, status) {
      console.log(data);
      data = JSON.parse(data);
      console.log(data);
      let data2;
      for (let clave in data) {
        console.log(data[clave]);
        let data1 = data[clave];
        let i = 0;
        data2 = [];
        for (let clave1 in data1) {
          console.log(data1[clave1]);
          data2[i] = data1[clave1];
          i = i + 1;
        }
        console.log(data2);
        let idarticulo = data2[1];
        let articulo = data2[2];
        let cantidad = data2[3];
        let costo = data2[4];
        let costod = data2[5];
        let costoa = data2[6];
        let costoad = data2[7];
        let tipo = data2[10];
        let exento = data2[11];
        agregarDetalleordencompra(
          idarticulo,
          articulo,
          costo,
          costod,
          costoa,
          costoad,
          exento,
          tipo,
          cantidad
        );
      }
    }
  );
}

function agregarDetalleordencompra(
  idarticulo,
  articulo,
  costo,
  costod,
  costoa,
  costoad,
  exento,
  tipo,
  cantidad
) {
  var cantidad = cantidad;
  var lote = "N/A";
  var fecha = "N/A";
  var tasa_dollar = $("#tasa_dollar").val();
  var precio_compra = costo;
  var precio_comprad = costod;
  var precio_compraa = costoa;
  var precio_compraad = costoad;
  var precio_venta = costod * tasa_dollar;
  var preciod = costod;
  var tasaimpuesto = $("#impuesto").val() / 100;
  var iva = 0;
  var ivad = 0;

  var now = new Date();
  var today = new Date();
  var dd = ("0" + now.getDate()).slice(-2);
  var mm = ("0" + (now.getMonth() + 1)).slice(-2);
  var yyyy = now.getFullYear();
  var lotefe = String(dd) + String(mm) + String(yyyy);
  var today = yyyy + "-" + mm + "-" + dd;
  var lote =
    String($("#idproveedor").val()) +
    String($("#idproveedorfabricante").val()) +
    String(idarticulo) +
    String(Math.round(Math.random() * 10) * idarticulo) +
    lotefe;
  fecha = today;

  if (idarticulo != "") {
    var subtotal = cantidad * precio_compra;
    var subtotald = cantidad * precio_comprad;

    console.log("exento: " + exento);
    console.log("1+tasaimpuesto: " + tasaimpuesto);
    if (exento == "no") {
      iva = subtotal * tasaimpuesto;
      ivad = subtotald * tasaimpuesto;
    }
    var subtotali = subtotal + iva;
    var subtotalid = subtotald + ivad;
    console.log("subtotal: " + subtotal);
    console.log("subtotald: " + subtotald);
    console.log("subtotali: " + subtotali);
    console.log("subtotalid: " + subtotalid);

    var fila =
      '<tr class="filas" id="fila' +
      cont +
      '">' +
      '<td style="width:60px"><button type="button" class="btn btn-danger" onclick="eliminarDetalle(' +
      cont +
      ')">X</button></td>' +
      '<td><input type="hidden" name="idarticulo[]" value="' +
      idarticulo +
      '">' +
      articulo +
      "</td>" +
      '<td><input type="text" name="cantidad[]" style="text-align:right;width:100px" id="cantidad[]" value="' +
      number_format(cantidad) +
      '"></td>' +
      '<td><input type="text" name="precio_compra[]" style="text-align:right;width:120px" id="precio_compra[]" value="' +
      number_format(precio_compra, 2) +
      '"></td>' +
      '<td><input type="text" name="precio_comprad[]" style="text-align:right;width:120px" id="precio_comprad[]" value="' +
      number_format(precio_comprad, 2) +
      '"></td>' +
      '<td><input type="text" name="precio_compraa[]" style="text-align:right;width:120px" id="precio_compraa[]" value="' +
      number_format(precio_compraa, 2) +
      '"></td>' +
      '<td><input type="text" name="precio_compraad[]" style="text-align:right;width:120px" id="precio_compraad[]" value="' +
      number_format(precio_compraad, 2) +
      '"></td>' +
      '<td><input type="text" name="nrolote[]" id=""nrolote[]" style="width:120px" value="' +
      lote +
      '"></td>' +
      '<td><input type="date" name="fecha_lote[]" id="fecha_lote[]" value="' +
      fecha +
      '" ></td>' +
      '<td><input type="text" name="subtotal[]" id="subtotal[]" style="width:120px;text-align:right" value="' +
      number_format(subtotal, 2) +
      '" >' +
      '<input type="hidden" name="subtotald[]" id="subtotald[]"  value="' +
      number_format(subtotald, 2) +
      '" >' +
      '<input type="hidden" name="subtotali[]" id="subtotali[]"  value="' +
      number_format(subtotali, 2) +
      '" ></input>' +
      '<input type="hidden" name="subtotalid[]" id="subtotalid[]"  value="' +
      number_format(subtotalid, 2) +
      '" ></input>' +
      "</td>" +
      // '<td style="width:120px;text-align:right"><span id="subtotal'+cont+'" name="subtotal">'+number_format(subtotal,2)+'</span></td>'+
      '<td><button type="button" onclick="modificarSubtotales()" class="btn btn-info"><i class="fa fa-refresh"></i></button></td>' +
      '<input type="hidden" name="precio_venta[]" style="text-align:right;width:120px" value="' +
      number_format(precio_venta, 2) +
      '">' +
      '<input type="hidden" name="precio_ventad[]" style="text-align:right;width:120px" value="' +
      number_format(preciod, 1) +
      '">' +
      '<input type="hidden" name="exento[]" style="text-align:right;width:120px" value="' +
      exento +
      '">' +
      '<input type="hidden" name="tipo[]" style="text-align:right;width:120px" value="' +
      tipo +
      '">' +
      "</tr>";
    cont++;
    detalles++;
    $("#detalles").append(fila);
    modificarSubtotales();
  } else {
    alert("error al ingresar el detalle, revisar las datos del articulo ");
  }
}

function agregarDetalle(
  idarticulo,
  articulo,
  costo,
  costod,
  costoa,
  costoad,
  exento,
  tipo
) {
  var cantidad = 1;
  var fecha = "N/A";
  var tasa_dollar = $("#tasa_dollar").val();
  var precio_compra = costo;
  var precio_comprad = costod;
  var precio_compraa = costoa;
  var precio_compraad = costoad;
  var precio_venta = costod * tasa_dollar;
  var preciod = costod;
  var tasaimpuesto = $("#impuesto").val() / 100;
  var iva = 0;
  var ivad = 0;

  var now = new Date();
  var today = new Date();
  var dd = ("0" + now.getDate()).slice(-2);
  var mm = ("0" + (now.getMonth() + 1)).slice(-2);
  var yyyy = now.getFullYear();
  var lotefe = String(dd) + String(mm) + String(yyyy);
  var today = yyyy + "-" + mm + "-" + dd;
  var lote =
    String($("#idproveedor").val()) +
    String($("#idproveedorfabricante").val()) +
    String(idarticulo) +
    String(Math.round(Math.random() * 10) * idarticulo) +
    lotefe;
  fecha = today;

  if (idarticulo != "") {
    var subtotal = cantidad * precio_compra;
    var subtotald = cantidad * precio_comprad;

    console.log("exento: " + exento);
    console.log("1+tasaimpuesto: " + tasaimpuesto);
    if (exento == "no") {
      iva = subtotal * tasaimpuesto;
      ivad = subtotald * tasaimpuesto;
    }
    var subtotali = subtotal + iva;
    var subtotalid = subtotald + ivad;
    console.log("subtotal: " + subtotal);
    console.log("subtotald: " + subtotald);
    console.log("subtotali: " + subtotali);
    console.log("subtotalid: " + subtotalid);

    var fila =
      '<tr class="filas" id="fila' +
      cont +
      '">' +
      '<td style="text-align:center"><button type="button" class="btn btn-danger" onclick="eliminarDetalle(' +
      cont +
      ')">X</button></td>' +
      '<td><input type="hidden" name="idarticulo[]" value="' +
      idarticulo +
      '">' +
      articulo +
      "</td>" +
      '<td style="text-align:center"><input type="text" name="cantidad[]" style="text-align:center;background-color:#cffedf;border:none" id="cantidad[]" value="' +
      number_format(cantidad) +
      '"></td>' +
      /* '<td><input type="text" name="precio_compra[]" style="text-align:right;width:120px" id="precio_compra[]" value="'+number_format(precio_compra,2)+'"></td>'+
		'<td><input type="text" name="precio_comprad[]" style="text-align:right;width:120px" id="precio_comprad[]" value="'+number_format(precio_comprad,2)+'"></td>'+
		'<td><input type="text" name="precio_compraa[]" style="text-align:right;width:120px" id="precio_compraa[]" value="'+number_format(precio_compraa,2)+'"></td>'+
		'<td><input type="text" name="precio_compraad[]" style="text-align:right;width:120px" id="precio_compraad[]" value="'+number_format(precio_compraad,2)+'"></td>'+
		'<td><input type="text" name="nrolote[]" id=""nrolote[]" style="width:120px" value="'+lote+'"></td>'+
		'<td><input type="date" name="fecha_lote[]" id="fecha_lote[]" value="'+fecha+'" ></td>'+ */
      '<input type="hidden" name="precio_compra[]" style="text-align:right;width:120px" id="precio_compra[]" value="' +
      number_format(1, 2) +
      '">' +
      '<input type="hidden" name="precio_comprad[]" style="text-align:right;width:120px" id="precio_comprad[]" value="' +
      number_format(1, 2) +
      '">' +
      '<input type="hidden" name="precio_compraa[]" style="text-align:right;width:120px" id="precio_compraa[]" value="' +
      number_format(1, 2) +
      '">' +
      '<input type="hidden" name="precio_compraad[]" style="text-align:right;width:120px" id="precio_compraad[]" value="' +
      number_format(1, 2) +
      '">' +
      '<input type="hidden" name="nrolote[]" id=""nrolote[]" style="width:120px" value="' +
      lote +
      '">' +
      '<input type="hidden" name="fecha_lote[]" id="fecha_lote[]" value="' +
      fecha +
      '" >' +
      '<td style="text-align:center"><input type="text" name="subtotal[]" id="subtotal[]"  style="text-align:center;background-color:#c0bebe;border:none" value="' +
      number_format(subtotal, 2) +
      '" readonly>' +
      '<input type="hidden" name="subtotald[]" id="subtotald[]"  value="' +
      number_format(subtotald, 2) +
      '" >' +
      '<input type="hidden" name="subtotali[]" id="subtotali[]"  value="' +
      number_format(subtotali, 2) +
      '" ></input>' +
      '<input type="hidden" name="subtotalid[]" id="subtotalid[]"  value="' +
      number_format(subtotalid, 2) +
      '" ></input>' +
      "</td>" +
      // '<td style="width:120px;text-align:right"><span id="subtotal'+cont+'" name="subtotal">'+number_format(subtotal,2)+'</span></td>'+
      '<td style="text-align:center"><button type="button" onclick="modificarSubtotales()" class="btn btn-info"><i class="fa fa-refresh"></i></button></td>' +
      '<input type="hidden" name="precio_venta[]" style="text-align:right;width:120px" value="' +
      number_format(precio_venta, 2) +
      '">' +
      '<input type="hidden" name="precio_ventad[]" style="text-align:right;width:120px" value="' +
      number_format(preciod, 1) +
      '">' +
      '<input type="hidden" name="exento[]" style="text-align:right;width:120px" value="' +
      exento +
      '">' +
      '<input type="hidden" name="tipo[]" style="text-align:right;width:120px" value="' +
      tipo +
      '">' +
      "</tr>";
    cont++;
    detalles++;
    $("#detalles").append(fila);
    modificarSubtotales();
  } else {
    alert("error al ingresar el detalle, revisar las datos del articulo ");
  }
}

function modificarValoresAnumerico() {
  var cant = document.getElementsByName("cantidad[]");
  var prec = document.getElementsByName("precio_compra[]");
  var prev = document.getElementsByName("precio_venta[]");
  var precd = document.getElementsByName("precio_comprad[]");
  var prevd = document.getElementsByName("precio_ventad[]");
  var sub = document.getElementsByName("subtotal[]");
  var subd = document.getElementsByName("subtotald[]");
  var subi = document.getElementsByName("subtotali[]");
  var subid = document.getElementsByName("subtotalid[]");
  var exent = document.getElementsByName("exento[]");
  for (var i = 0; i < cant.length; i++) {
    var Cmod = cant[i];
    var Pcmod = prec[i];
    var Pvmod = prev[i];
    var Pcmodd = precd[i];
    var Pvmodd = prevd[i];
    var Smod = sub[i];
    Cmod.value = numero(Cmod.value);
    Pcmod.value = numero(Pcmod.value);
    Pvmod.value = numero(Pvmod.value);
    Pcmodd.value = numero(Pcmodd.value);
    Pvmodd.value = numero(Pvmodd.value);
    Smod.value = numero(Smod.value);
  }
}

function modificarSubtotales() {
  var cant = document.getElementsByName("cantidad[]");
  var prec = document.getElementsByName("precio_compra[]");
  var precd = document.getElementsByName("precio_comprad[]");
  var sub = document.getElementsByName("subtotal[]");
  var subd = document.getElementsByName("subtotald[]");
  var subi = document.getElementsByName("subtotali[]");
  var subid = document.getElementsByName("subtotalid[]");
  var exent = document.getElementsByName("exento[]");
  var tasaimpuesto = $("#impuesto").val() / 100;
  for (var i = 0; i < cant.length; i++) {
    var inpC = cant[i];
    var inpP = prec[i];
    var inpPd = precd[i];
    var inpS = sub[i];
    var inpSd = subd[i];
    var exento = exent[i];
    var inpSi = subi[i];
    var inpSid = subid[i];
    var iva = 0;
    var ivad = 0;

    inpS.value = number_format(numero(inpC.value) * numero(inpP.value), 2);
    inpSd.value = number_format(numero(inpC.value) * numero(inpPd.value), 2);
    console.log("exento: " + exento.value);
    console.log("tasaimpuesto: " + tasaimpuesto);
    if (exento.value == "no") {
      iva = numero(inpS.value) * tasaimpuesto;
      ivad = numero(inpSd.value) * tasaimpuesto;
    }
    inpSi.value = number_format(numero(inpS.value) + iva, 2);
    inpSid.value = number_format(numero(inpSd.value) + ivad, 2);
    console.log("subtotal: " + inpS.value);
    console.log("subtotald: " + inpSd.value);
    console.log("subtotali: " + inpSi.value);
    console.log("subtotalid: " + inpSid.value);
    //document.getElementsByName("subtotal")[i].innerHTML=number_format(inpS.value,2);
  }
  calcularTotales();
}

function calcularTotales() {
  var sub = document.getElementsByName("subtotal[]");
  var subd = document.getElementsByName("subtotald[]");
  var subi = document.getElementsByName("subtotali[]");
  var subid = document.getElementsByName("subtotalid[]");
  var total = 0.0;
  var totald = 0.0;
  var totali = 0.0;
  var totalid = 0.0;
  for (var i = 0; i < sub.length; i++) {
    var inpS = sub[i];
    var inpSd = subd[i];
    var inpSi = subi[i];
    var inpSid = subid[i];
    //total += numero(document.getElementsByName("subtotal")[i].value);
    total += numero(inpS.value);
    totald += numero(inpSd.value);
    totali += numero(inpSi.value);
    totalid += numero(inpSid.value);
  }
  /* $("#total").html("Bs." + number_format(total,2));
	$("#totald").html("$." + number_format(totald,2)); */
  $("#total").html("Uni." + number_format(total, 2));
  /* $("#totald").html("$" + number_format(totald,2)); */
  $("#total_compra").val(total);
  $("#total_comprad").val(totald);
  $("#total_comprai").val(totali);
  $("#total_compraid").val(totalid);
  console.log("totalb: " + $("#total_compra").val());
  console.log("total$: " + $("#total_comprad").val());
  console.log("totalbi: " + $("#total_comprai").val());
  console.log("totali$: " + $("#total_compraid").val());
  evaluar();
}

function evaluar() {
  if (detalles > 0) {
    $("#btnGuardar").show();
  } else {
    $("#btnGuardar").hide();
    cont = 0;
  }
}

function eliminarDetalle(indice) {
  $("#fila" + indice).remove();
  calcularTotales();
  detalles = detalles - 1;
}

init();
