//variables globales
var idprod = 0;
var idcant = 0;
var numrow;
var Tcantidad =0;
var Tprecio = 0;
var Tpuntos = 0;

function roundToTwo(num) {    
    return +(Math.round(num + "e+2")  + "e-2");
}

function habilitarfc() {
    if (document.getElementById('Descripcion')) {

    }
    if (document.getElementById()) {

    }
}
//funciones de promociones
//agrega el prodcuto de una promocion nueva 
function AddProduct() {
    var cantidad = document.getElementById("Cantidad").value;
    var listaProducto = document.getElementById("ListProductos").value;
    var indice = document.getElementById("ListProductos").selectedIndex;
    var texto = document.getElementById("ListProductos").options[indice].text;
    var Producto = document.getElementById('dProductoLista');
    var trProducto = document.createElement('tr');
    trProducto.setAttribute("onClick", "indexrow();");
    var tdProducto = document.createElement('td');
    var tdCantidad = document.createElement('td');
    var tdAccion = document.createElement('td');
    Producto.appendChild(trProducto);
    trProducto.appendChild(tdProducto);
    trProducto.appendChild(tdCantidad);
    trProducto.appendChild(tdAccion);
    tdProducto.innerHTML = texto;
    tdCantidad.innerHTML = cantidad;
    var sAccion = document.createElement('Button');
    sAccion.setAttribute("onClick", "DelProducto(this.parentNode.parentNode.rowIndex);");
    sAccion.innerHTML = "Eliminar";
    sAccion.setAttribute("id", "Prod" + idprod);

    tdAccion.appendChild(sAccion);
    var sCantidad = document.createElement('input');
    sCantidad.setAttribute("type", "hidden");
    sCantidad.setAttribute("name", "ProductoCantidad[]");
    sCantidad.setAttribute("value", cantidad);
    tdCantidad.appendChild(sCantidad);
    var sProducto = document.createElement('input');
    sProducto.setAttribute("type", "hidden");
    sProducto.setAttribute("name", "Productos[]");
    sProducto.setAttribute("value", listaProducto);
    tdProducto.appendChild(sProducto);
    idprod++;
}
//funcion que elimina un producto de la lista
function DelProducto(row) {
    console.log("al eliminar: " + row);
    document.getElementById("ProductoLista").deleteRow(row);
}

//funciones de una nota de venta
//Estas tres funciones se encargan que al llenar en el tipo de pago ya sea numero de cuenta regalias o vouncher 
//el radio button se colocare en esa opcion se hace el del ultimo que se selecciono
function TipoFolio() {
    var ra = document.getElementsByName('pago');
    console.log("folio");
    ra[1].checked = true;

}
function TipoVouncher() {
    var ra = document.getElementsByName('pago');
    console.log("Vouncher");
    ra[4].checked = true;
}
function TipoAutoriza() {
    var ra = document.getElementsByName('pago');
    console.log("Autoriza");
    ra[5].checked = true;
}
function TipoRegalia() {
    var ra = document.getElementsByName('pago');
    console.log("Regalia");
    ra[3].checked = true;

}

//esta funcion elimina de la lista de las ventas el producto y el input text lo limpia a 0
function Delprodventa(row, id, idprod, precio, puntos, existencias, productos) {
    console.log("Cantidad"+id)
    var del_cant = document.getElementById('Cantidad' + id).innerHTML;
    document.getElementById('cant' + id).value = 1;
    document.getElementById('button' + id).disabled = false;
    //console.log("Al eliminar: " + row + "id:" + id);
    //console.log("Se van a eliminar:" + " " + valor_del + " " + " productos");
    document.getElementById("ProductoLista").deleteRow(row);
    Tcantidad = Tcantidad - del_cant;
    Tprecio = parseInt(Tprecio - (del_cant * precio));
    Tpuntos = parseInt(Tpuntos - (del_cant * puntos));
    document.getElementById('tcantidad').innerHTML=Tcantidad;
    document.getElementById('tprecio').innerHTML=Tprecio;
    document.getElementById('tpuntos').innerHTML=Tpuntos;
	
    if(productos)
        for (var i = 0; i < productos; i++) {
            document.getElementById("ProductoLista").deleteRow(row);
        }
}

//esta funcion agrega a la lista un producto tiene filtro que si no es mayor a 0 no lo agrege
//lo que no tiene 
function addprodventa(cant, idprod, precio, puntos, existencias, productos) {
    var Cantidad = parseInt(document.getElementById('cant' + cant).value);
    var nombre = document.getElementById('nom' + cant).innerHTML;
    var button = document.getElementById('button' + cant);
    Tcantidad = Tcantidad + Cantidad;
    Tprecio = roundToTwo(Tprecio + (Cantidad * precio));
    Tpuntos = roundToTwo(Tpuntos + (Cantidad * puntos));    
    document.getElementById('tcantidad').innerHTML=Tcantidad;
    document.getElementById('tprecio').innerHTML=Tprecio;
    document.getElementById('tpuntos').innerHTML=Tpuntos;
    if (Cantidad > 0) {
        button.disabled = true;
        
        var bProducto = document.getElementById('ProductoLista');
        var trProducto = document.createElement('tr');
        var hiidProducto = document.createElement('input');
        var hiProducto = document.createElement('input');
        var tdProducto = document.createElement('td');
        var tdCantidad = document.createElement('td');
        var hiCantidad = document.createElement('input');
        var tdPrecio = document.createElement('td');
        var hiPrecio = document.createElement('input');
        var tdpuntos = document.createElement('td');
        var hipuntos = document.createElement('input');
        var hiexistencias = document.createElement('input');
        var tdAccion = document.createElement('td');

        bProducto.appendChild(trProducto);
        trProducto.appendChild(tdProducto);
        trProducto.appendChild(hiidProducto);
        trProducto.appendChild(hiProducto);
        trProducto.appendChild(hiCantidad);
        trProducto.appendChild(hiPrecio);
        trProducto.appendChild(hipuntos);
        trProducto.appendChild(hiexistencias);

        hiidProducto.setAttribute("type", "hidden");
        hiidProducto.setAttribute("name", "copia_id_prod" + cant);
        hiidProducto.setAttribute("value", idprod);
        //hiidProducto.setAttribute("id","cant"+cant);
        hiProducto.setAttribute("type", "hidden");
        hiProducto.setAttribute("value", nombre);
        hiProducto.setAttribute("name", "copia_nombreProd" + cant);
        //hiProducto.setAttribute("id","cant"+cant);
        hiCantidad.setAttribute("type", "hidden");
        hiCantidad.setAttribute("name", "cant" + cant);
        hiCantidad.setAttribute("value", Cantidad);
        hiCantidad.setAttribute("id","cant"+cant);
        hiPrecio.setAttribute("type", "hidden");
        hiPrecio.setAttribute("value", precio);
        hiPrecio.setAttribute("name", "copia_precio" + cant);
        hiPrecio.setAttribute("id","cant_precio"+cant);
        hipuntos.setAttribute("type", "hidden");
        hipuntos.setAttribute("value", puntos);
        hipuntos.setAttribute("id","cant"+cant);
        hipuntos.setAttribute("name", "copia_puntos" + cant);
        hiexistencias.setAttribute("type", "hidden");
        hiexistencias.setAttribute("value", existencias);
        hiexistencias.setAttribute("name", "existencias" + cant);
        hiexistencias.setAttribute("id","cant"+cant);



        //copia_puntos$i
        trProducto.appendChild(tdCantidad);
        //trProducto.appendChild(hiCantidad);
        //
        trProducto.appendChild(tdPrecio);
        //trProducto.appendChild(hiPrecio);
        //
        trProducto.appendChild(tdpuntos);
        //trProducto.appendChild(hipuntos);
        //
        trProducto.appendChild(tdAccion);
        tdPrecio.innerHTML = precio;
        tdProducto.innerHTML = nombre;
        tdCantidad.innerHTML = Cantidad;
        tdCantidad.setAttribute("id", "Cantidad" + cant);
        tdPrecio.setAttribute("id", "Precio" + cant);
        tdpuntos.setAttribute("id", "Puntos" + cant);
        tdpuntos.innerHTML = puntos;
        var sEliminar = document.createElement('input');
        sEliminar.setAttribute("type", "button");

        if(productos)
            sEliminar.setAttribute("onClick", "Delprodventa(this.parentNode.parentNode.rowIndex,this.id,"
                + idprod + "," + precio + ","+ puntos + "," + existencias +"," + productos.length +");");
        else
            sEliminar.setAttribute("onClick", "Delprodventa(this.parentNode.parentNode.rowIndex,this.id,"
                + idprod + "," + precio + ","+ puntos + "," + existencias+");");

        sEliminar.setAttribute("id", cant);
        sEliminar.setAttribute("class","delete"+cant);
        sEliminar.value= "Eliminar";
        //
        var sMas = document.createElement('input');
        sMas.setAttribute("onClick",
         "Masproducto(this.id,"+ idprod + "," + cant + "," + precio + ","+ puntos + "," + existencias+");");
        sMas.setAttribute("type", "button");
        sMas.setAttribute("id", cant);
        sMas.value = "+";
        //
        var sMenos = document.createElement('input');
        sMenos.setAttribute("onClick",
         "Menosproducto(this.id,"+ idprod + "," + cant + "," + precio + ","+ puntos + "," + existencias+");");
        sMenos.setAttribute("type", "button");
        sMenos.setAttribute("id", cant);
        sMenos.value = "-";

        tdAccion.appendChild(sMas);
        tdAccion.appendChild(sEliminar);
        tdAccion.appendChild(sMenos);

        //try{
        if(productos){
            var string_productos = "[" + productos.map(p=>`[${p[0]},${p[1]}]`).join(',') + "]";
            for (var i = 0; i < productos.length; i++) {
                var trProducto = document.createElement('tr');
                var tdProducto = document.createElement('td');
                var tdCantidad = document.createElement('td');
                var tdPrecio = document.createElement('td');
                var tdpuntos = document.createElement('td');

                var inputCantidad = document.createElement('input');
                inputCantidad.setAttribute("type","number");
                //inputCantidad.setAttribute("min",(productos[i][0]==472)? "1": "0");
                //inputCantidad.setAttribute("max",(productos[i][0]==472)? "1": "0");
                inputCantidad.setAttribute("min", productos[i][1]);
                inputCantidad.setAttribute("max",productos[i][1]);
                inputCantidad.setAttribute("value",productos[i][1]);
                //inputCantidad.setAttribute("onChange",
                  //  "reajuste_promo(this," + idprod + "," + cant + "," + string_productos + "," + precio +")");
                inputCantidad.setAttribute("name", "cant" + cant + "-" + productos[i][0]);
                inputCantidad.setAttribute("id","cant"+ cant + "-" + productos[i][0]);

                bProducto.appendChild(trProducto);
                trProducto.appendChild(tdProducto);
                trProducto.appendChild(hiidProducto);
                trProducto.appendChild(tdCantidad);
                trProducto.appendChild(tdPrecio);
                trProducto.appendChild(tdpuntos);

                tdProducto.innerHTML = productos[i][2];
                tdCantidad.appendChild(inputCantidad);
                tdPrecio.innerHTML = "-";
                tdpuntos.innerHTML = "-";
            }
        }//}catch(ex){alert(ex);}
    }
}
//funcion para el boton de mas, aumenta la cantidad para la venta
function Masproducto(row, idprod, cant, precio, puntos, existencias) {
    //agregar cuando tengan bien las existencias un if que no exeda las existencias
    var num = document.getElementById("Cantidad" + row).innerHTML;
    var Cant = parseInt(document.getElementById('cant' + row).value);
    //var Cant = document.getElementsByName("cant" + row).value;
    num++;
    Tcantidad++;
    Cant++;
    Tprecio = roundToTwo(Tprecio + precio);
    Tpuntos = roundToTwo(Tpuntos + puntos);
    document.getElementById("tcantidad").innerHTML=Tcantidad;
    document.getElementById('tprecio').innerHTML=Tprecio;
    document.getElementById('tpuntos').innerHTML=Tpuntos;
    //document.getElementsByName("cant" + row).value = num;
    document.getElementById('cant' + row).value= Cant.toString();
    document.getElementById("Cantidad" + row).innerHTML = num;
    var actualizacant = document.getElementById('Cantidad'+row).innerHTML;
    var lol =document.getElementById('cant'+row).value=actualizacant;

}
//funcion para el boton de menos, disminuye la cantidad para la venta
function Menosproducto(row, idprod, cant, precio, puntos, existencias) {
    var num = document.getElementById("Cantidad" + row).innerHTML;
    var Cant = parseInt(document.getElementById('cant' + row).value);
    if (num > 1) {
        num--;
        Cant--;
        Tcantidad--;
        cant=Cant;
        Tprecio = roundToTwo(Tprecio - precio);
        Tpuntos = roundToTwo(Tpuntos - puntos);
        document.getElementById("tcantidad").innerHTML=Tcantidad;
        document.getElementById('tprecio').innerHTML=roundToTwo(Tprecio);
        document.getElementById('tpuntos').innerHTML=roundToTwo(Tpuntos);
        document.getElementById("Cantidad" + row).innerHTML = num;
        //document.getElementsByName("cant" + row).value = Cant;
        document.getElementById('cant' + row).value= Cant.toString();
    }
}


//Funciones regalias
//selecciona todos los check o los deselecciona
function Selectall(l) {
    if (document.getElementById('Checall').checked) {
        Chekedall(l);
    } else {
        DesChekedall(l);
    }
}
//coloca el checked en true y solo selecciona si el numero de cuanta contiene algo
function Chekedall(l) {
    var c = document.getElementsByName('Coun');
    var x = document.getElementsByName('regas[]');
    for (i = 0; i < l; i++) {
        if (c[i].innerHTML != "")
        {
            x[i].checked = true;
        }
    }
}
//Colocal el cheked en false pone todas las casilla deseleccionadas
function DesChekedall(l) {
    var x = document.getElementsByName('regas[]');
    for (i = 0; i < l; i++) {
        x[i].checked = false;
    }
}

function enviando()
{

    document.getElementById('confirm').value="Procesando...";
    document.getElementById('confirm').disabled=true;
    document.getElementById('enviar').submit();
    
}

function actualizarventa()
{
       
   var total=document.getElementById('totals').value;
   var totalint=parseFloat(total);
   var efectivo=parseFloat(document.getElementById('ef').value);
   var deposito=parseFloat(document.getElementById('de').value);
   var tarjeta=parseFloat(document.getElementById('ta').value);
   var cargot=tarjeta*0.04;
   tarjeta=tarjeta-cargot;
   var resto=efectivo+deposito+tarjeta;
    document.getElementById('pp').value=totalint-resto;


}

/*
function verdetalletrans()
{
  var   document.getElementById('transvalue');
}
*/
//Otras salidas

function checksalidas()
{

    var nombrede=document.getElementById('nombrec');
    var concepto=document.getElementById('concepto');
    var autoriza=document.getElementById('autoriza');
    var cod=deposito.getElementById('codigo');

    if(nombre==null)
    {
        alert("Debe poner un nombre ");

    }
    if(concepto==null)
    {
        alert('Debe especificar un concepto');
    }

    if(autoriza==null)
    {
        alert('Debe especificar quien autoriza!');
    }

    if(cod=null)
    {

    }
    

}

function reajuste_promo (element, idprod, cant, productos, precio) {
    //try{
    var max_prods = 0;
    var prods_total = 0;
    var new_price = 0;
    var it_sistelife = 0;
    for (var i = 0; i < productos.length; i++){
        var inputCantidad = document.getElementById("cant"+ cant + "-" + productos[i][0]);
        max_prods += productos[i][1];
        prods_total += parseInt(inputCantidad.value);
        new_price += (parseInt(inputCantidad.value) * ((productos[i][0] === 472) ? 199 : 168));
        it_sistelife = (productos[i][0] === 472) ? i : it_sistelife;
    }

    if(prods_total>max_prods)
        element.value = element.defaultValue;
    else
    {
        element.defaultValue = element.value;
        if(idprod == 1030)
        {
            var inputCantidad = document.getElementById("cant"+ cant + "-" + productos[it_sistelife][0]);
            if(inputCantidad.value <= productos[it_sistelife][1])
                new_price = precio;
            document.getElementById("Precio" + cant).innerHTML = new_price;
            document.getElementById("cant_precio" + cant).value = new_price;
        }
    }
    //}catch(ex){alert("ERROR: "ex);}
}