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();
  buscarTasaDeCambio();
  //  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) {
    $("#myModalS").modal("show");
  });

  //se verifica si cambia el campo de de idarticulo
	$("#idarticuloca").change(function(){
		var idarticuloca = $("#idarticuloca").val().split('-');
    console.log(idarticuloca[0]);
    buscarpromociones(idarticuloca[0]);
		
	});

  $("#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;
    }
  });

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

  //cargamos los Los productos compuesto
  $.post("controladores/promocionesControlador.php?op=selectpromociones",
    function (r) {
      $("#idarticuloca").html(r);
      $("#idarticuloca").val(0);
      $("#idarticuloca").selectpicker("refresh");
    }
  );


}

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

//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 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);
  $("#idarticuloc").val("");
  $("#idarticuloc").selectpicker("refresh");
  $("#fecha_hora").val("");
  $("#fecha_horar").val("");
  $("#proveedor").val("");
  $("#serie_comprobante").val("");
  $("#num_comprobante").val("");
  $("#num_suministro").val("");
  $("#impuesto").val("");
  $("#validado").val("0");

  $("#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("Factura");
  $("#tipo_comprobante").selectpicker("refresh");
  marcarImpuesto();
}

//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").hide();
  } 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: ["copyHtml5", "excelHtml5", "csvHtml5", "pdf"],
      ajax: {
        url: "controladores/promocionesControlador.php?op=listar",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: 10, //paginacion
      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/ventanControlador.php?op=listarServicios",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: 5, //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/promocionesControlador.php?op=listarArticulosindividual",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: 5, //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/promocionesControlador.php?op=listarArticuloBarra",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: 5, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function buscarpromociones(idpromociones) {
console.log('Producto a buscar: '+idpromociones); 
//"controladores/promocionesControlador.php?op=listarDetallepromociones=" +
$.post(
    "controladores/promocionesControlador.php?op=listarDetallepromociones&id=" +
    idpromociones,
    function (r) {
      console.log(r);
      $("#detalles").html(r);
      var det = document.getElementsByName("idarticulo[]");
      var detalles = det.length;
      if (detalles>0){
        $("#idpromociones").val(idpromociones);
        bootbox.alert("Ya esta promoción fué creada");
        $("#idpromociones").val($("#idpromociones1").val());
      }else{
        bootbox.alert("Promoción Nueva");
      }
      detallesv(detalles);
      modificarSubtotales();
    }
  );
}

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

//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/promocionesControlador.php?op=guardaryeditar",
    type: "POST",
    data: formData,
    contentType: false,
    processData: false,

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

  limpiar();
}

function mostrar(idpromociones) {
  $.post(
    "controladores/promocionesControlador.php?op=mostrar",
    { idpromociones: idpromociones },
    function (data, status) {
      data = JSON.parse(data);
      mostrarform(true);
      $articulo = data.idarticulo + "-" + data.idalmacen;
      console.log("articulo : " + $articulo);
      $("#idarticuloca").val($articulo);
      $("#idarticuloca").selectpicker("refresh");
      $("#fecha_hora").val(data.fecha);
      $("#idpromociones").val(data.idarticulopromociones);

      //ocultar y mostrar los botones
      $("#btnGuardar").show();
      $("#btnCancelar").show();
      $("#btnAgregarArt").show();
    }
  );
  $.post(
    "controladores/promocionesControlador.php?op=listarDetalle&id=" +
      idpromociones,
    function (r) {
      $("#detalles").html(r);
      var det = document.getElementsByName("idarticulo[]");
      var detalles = det.length;
      detallesv(detalles);
      modificarSubtotales();
    }
  );
}

function detallesv(det) {
  detalles 	= det;
  cont		  = det;
}

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

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

function marcarImpuesto() {
  var tipo_comprobante = $("#tipo_comprobante option:selected").text();
  if (tipo_comprobante == "Factura") {
    $("#impuesto").val(impuesto1);
  } else {
    $("#impuesto").val("0");
  }
  $("#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 agregarDetalle(idarticulo,idalmacen,articulo,costo,costod,precio,preciod,preciodsiniva,exento) {
  var cantidad      = 1;
  var lote          = "N/A";
  var fecha         = "N/A";
  var tasa_dollar   = $("#tasa_dollar").val();
  var precio_compra = costod * tasa_dollar;
  
  var precio = 0;
  if (idarticulo != "") {
    if (exento=='si'){
      precio = preciodsiniva;
    }else{
      precio = preciod;
    }
    var subtotal      = cantidad * precio;
    var precio_venta  = precio * tasa_dollar;
    var fila ='<tr class="filas" id="fila'+cont+'">'+
      '<td><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:left;width:130px"><input type="text" style="text-align:right;width:120px" name="precio_ventad[]" id="precio_ventad[]" value="'+number_format(precio, 2) +'"></td>' +
      '<td style="text-align:left;width:90px"><input type="text" style="text-align:right;width:80px"name="cantidad[]" id="cantidad[]" value="'+number_format(cantidad)+'"></td>'+
      '<td style="text-align:left;width:130px"><input type="text" style="text-align:right;width:120px"name="subtotal[]" id="subtotal[]" value="'+number_format(subtotal, 2) +'" ></td>' +
      '<td><input type="hidden" name="precio_venta[]"  value="'+number_format(precio_venta, 2) +'">' +
      '<input type="hidden" name="precio_compra[]"  value="' +number_format(precio_compra, 1) +'">' +
      '<input type="hidden" name="nrolote[]" id=""nrolote[]" value="' +lote +'">' +
      '<input type="hidden" name="fecha_lote[]" id="fecha_lote[]" value="' +fecha +'" >' +
      '<input type="hidden" name="precio_comprad[]" id="precio_compra[]" value="'+number_format(costod, 2)+'">'+
      '<input type="hidden" name="idalmacen[]" id="idalmacen[]" value="' +idalmacen +'" >' +
      '<button type="button" onclick="modificarSubtotales()" class="btn btn-info"><i class="fa fa-refresh"></i></button></td>' +
      "</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_ventad[]");
  var sub     = document.getElementsByName("subtotal[]");
  var idart   = $("#idarticuloca").val();
  var idatt1  = idart.split("-");
  $("#idproductoc").val(idatt1[0]);
  $("#idalmacenc").val(idatt1[1]);
  $("#tasa_dollar").val(numero($("#tasa_dollar").val()));
  console.log("idproductoc: " + $("#idproductoc").val());
  console.log("idalmacenc: " + $("#idalmacenc").val());
  for (var i = 0; i < cant.length; i++) {
    var Cmod = cant[i];
    var Pcmod = prec[i];
    var Pvmod = prev[i];
    var Smod = sub[i];
    Cmod.value = numero(Cmod.value);
    Pcmod.value = numero(Pcmod.value);
    Pvmod.value = numero(Pvmod.value);
    Smod.value = numero(Smod.value);
  }
}

function modificarSubtotales() {
  var cant = document.getElementsByName("cantidad[]");
  var prec = document.getElementsByName("precio_ventad[]");
  var sub = document.getElementsByName("subtotal[]");

  for (var i = 0; i < cant.length; i++) {
    var inpC = cant[i];
    var inpP = prec[i];
    var inpS = sub[i];
    console.log('i: '+i+' Cantidad: '+numero(inpC.value)+' precio: '+numero(inpP.value)+' Sub-total: '+numero(inpC.value)*numero(inpP.value));
    inpS.value = number_format(numero(inpC.value)*numero(inpP.value),2);
    console.log(' inpS.value: '+ inpS.value);
   
  }
  calcularTotales();
}

function calcularTotales() {
  var sub     = document.getElementsByName("subtotal[]");
  var cant    = document.getElementsByName("cantidad[]");
  var total   = 0;
  var total1  = 0;
  for (var i = 0; i < cant.length; i++) {
    var inpS  = sub[i];
    var inpS1 = cant[i];
    total += numero(inpS.value);
    total1 += numero(inpS1.value);
  }
  $("#total").html(number_format(total1, 2));
  $("#total_compra").val(total1);
  $("#total1").html(number_format(total, 2));
  $("#total_compra1").val(total);
  evaluar();
}

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

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

init();
