var searchRequest = null;
var moneda = $("#moneda").val();
$(function () {
    $('#restau').addClass("active");
    $('.btn-stock-pollo').show();
    $('.search-products').show();
    defaultdata();
    listarCategorias();
    listarCategoriasMovil();
    listarProdsMasVend();
    listarPedidos();
    listarComandas();
    $('body').addClass('body-pos');
    $('.scroll_list_items_facturar').slimscroll({
        height: '100%'
    });
    var scroll_list_items_facturar = function () {
        var topOffset = 400;
        var height = ((window.innerHeight > 0) ? window.innerHeight : this.screen.height) - 1;
        height = height - topOffset;
        $(".scroll_list_items_facturar").css("height", (height) + "px");
    };

    $(window).ready(scroll_list_items_facturar);
    $(window).on("resize", scroll_list_items_facturar);

    var minlength = 1;
    $("#buscar_producto").keyup(function () {

        var prodwidth = ($('#rol_usr').val() == 5) ? 'p-w-t' : 'p-w-t';
        $(".catP").removeClass("active");
        $(".catS").removeClass("active");
        var moneda = $("#moneda").val();
        $('#list-productos').empty();

        var that = this,
            value = $(this).val();

        if (value.length >= minlength) {

            if (event.keyCode == 13) { //enter
                // alert("hola")
                setTimeout(function () {
                    $('#pres_' + value + '').trigger('click');
                    // alert('#pres_'+value+'')
                }, 500);
            }

            if (searchRequest != null)
                searchRequest.abort();
            searchRequest = $.ajax({
                type: "POST",
                url: $('#url').val() + "venta/buscar_producto",
                data: {
                    cadena: value,
                    codtipoped: $('#codtipoped').val(),
                    codrepartidor: $('#codrepartidor').val()
                },
                dataType: "JSON",
                success: function (data) {
                    //we need to check if the value is the same
                    if (data.length != 0) {
                        var htmlProducto = '\
                           <table class="table table-hover table-striped tablaProdcutos" style="margin: 10px">\
                                <thead>\
                                    <tr class="table-info">\
                                      <th class="tablaProdcutosTitulo">Cod.</th>\
                                      <th class="tablaProdcutosTitulo">Producto</th>\
                                      <th class="tablaProdcutosTitulo">Presentación</th>\
                                      <th class="tablaProdcutosTitulo">Precio</th>\
                                    </tr>\
                                </thead>\
                          <tbody>';
                        if (value == $(that).val()) {
                            $.each(data, function (i, item) {
                                if (item.Stock) {
                                    var queda_stock = ((Number(item.Stock.ent) - Number(item.Stock.sal)));
                                    stock = '<span class="stock-tag stock_producto_' + item.id_pres + '">Queda: ' + queda_stock + '</span>';
                                } else {
                                    stock = '';
                                }

                                sessionStorage.setItem('precios_' + item.id_pres + '', '');
                                sessionStorage.setItem('precios_' + item.id_pres + '', item.precios);

                                if ($("#mostrarimagen").val() == 1) {
                                    $('#list-productos')
                                        .append(
                                            $('<article id="pres_' + item.pro_cod + '" class="product ' + prodwidth + ' animated fadeIn" onclick="add2(' + item.id_areap + ',' + item.id_pres + ',\'' + item.pro_nom + '\',\'' + item.pro_pre + '\',' + item.pro_cos + ',\'' + item.Impresora.nombre + '\');"/>')
                                                .append(
                                                    $('<div class="product-img"/>')
                                                        .html('<img src="' + $("#url").val() + 'public/images/productos/' + item.pro_img + '"></img><span class="price-tag">' + moneda + ' ' + item.pro_cos + '</span><span class="pres-tag">' + item.pro_pre + '</span>' + stock)
                                                )
                                                .append(
                                                    $('<div class="product-nam"/>')
                                                        .html(item.pro_nom)
                                                )
                                        );
                                } else {
                                    htmlProducto += '\
                                        <tr ondblclick="add2('+ item.id_areap + ',' + item.id_pres + ',\'' + item.pro_nom + '\',\'' + item.pro_pre + '\',' + item.pro_cos + ',\'' + item.Impresora.nombre + '\');">\
                                          <th>'+ item.pro_cod + '</th>\
                                          <th>'+ item.pro_nom + '</th>\
                                          <th>'+ item.pro_pre + '</th>\
                                          <th>'+ moneda + ' ' + item.pro_cos + '</th>\
                                        </tr>';
                                }
                            });

                            if ($("#mostrarimagen").val() != 1) {
                                htmlProducto += '</tbody>\
                                </table>';
                                $('#list-productos').html(htmlProducto)
                            }
                        }
                    } else {
                        $('#list-productos').html('<div class="text-center"><h4 class="ich m-t-none" style="color: #d3d3d3;"><br><br><br><br><br><br><br><br><br><i class="mdi mdi-star-circle display-4"></i><br>No se han encontrado resultados</h4></div>');
                    }
                }
            });
        } else {
            $(".catP").addClass("active");
            listarProdsMasVend();
            return false;
        }
    });

    $("#buscar_cliente").autocomplete({
        delay: 1,
        autoFocus: true,
        source: function (request, response) {
            $.ajax({
                url: $('#url').val() + 'venta/buscar_cliente',
                type: "post",
                dataType: "json",
                data: {
                    cadena: request.term,
                    tipo_cliente: $('#cliente_tipo').val()
                },
                success: function (data) {
                    console.log(data);

                    // Si no hay data, devolvemos un arreglo vacío.
                    if (!data) {
                        response([]);
                        return;
                    }

                    // Si data no es un arreglo, lo envolvemos en uno.
                    if (!Array.isArray(data)) {
                        data = [data];
                    }

                    // Mapear los items. Se valida la existencia de propiedades y se normaliza el nombre.
                    var items = $.map(data, function (item) {
                        if (!item) return; // Evita errores si item es null

                        // Determina el prefijo según la existencia y valor de 'ruc' o el tipo de cliente.
                        // Puedes ajustar la lógica si la validación depende de otras propiedades.
                        var tipo_cli = (typeof item.ruc !== 'undefined' && item.ruc) ? $("#tribAcr").val() : $("#diAcr").val();

                        // Normalizamos el nombre: Si 'nombre' no existe, se intenta 'nombres', luego 'razonSocial'
                        var nombre = item.nombre || item.nombres || item.razonSocial || '';

                        return {
                            id: item.id_cliente || '',
                            dni: item.dni || '',
                            ruc: item.ruc || '',
                            tipo: item.tipo_cliente || '',
                            nombres: nombre,
                            fecha_n: item.fecha_nac || '',
                            label: tipo_cli + ': ' + (item.dni || '') + (item.ruc || '') + ' | ' + nombre,
                            value: tipo_cli + ': ' + (item.dni || '') + (item.ruc || '') + ' | ' + nombre
                        };
                    });

                    response(items);
                }
            });
        },
        select: function (e, ui) {
            $("#cliente_id").val(ui.item.id);
            $(this).blur();
            $("#btn-submit-facturar").removeAttr('disabled').removeClass('disabled');
            $('.opcion-cliente').html(
                '<a class="input-group-prepend" href="javascript:void(0)" ' +
                'onclick="editar_cliente(' + ui.item.id + ');" data-original-title="Editar cliente" data-toggle="tooltip" ' +
                'data-placement="top">' +
                '<span class="input-group-text bg-header"><small><i class="fas fa-user text-info"></i></small></span>' +
                '</a>'
            );
        }
    });
    $("#buscar_cliente").autocomplete("option", "appendTo", ".form-facturar");

    $('#form-facturar').formValidation({
        framework: 'bootstrap',
        excluded: ':disabled',
        fields: {
        }
    })
        .on('success.form.fv', function (e) {
            // Prevent form submission
            e.preventDefault();
            var $form = $(e.target);
            var fv = $form.data('formValidation');
            var current_invoices = parseInt($("#current_invoices").val());
            var limits_invoices = parseInt($("#limits_invoices").val());

            if ($("#cliente_id").val() == '') {
                Swal.fire({
                    title: 'Advertencia',
                    text: 'Ingrese un cliente para el comprobante de pago',
                    icon: "warning",
                    confirmButtonColor: "#34d16e",
                    confirmButtonText: "Aceptar",
                    allowOutsideClick: false,
                    showCancelButton: false,
                    showConfirmButton: true
                }, function () {
                    return false
                });

            } else if ($('#descuento_tipo_hidden').val() != '1' && ($('#tipo_pago').val() == '1' && Number($('.totalPedido').val()) > Number($('#pago_efe').val()))) {
                Swal.fire({
                    title: 'Advertencia',
                    text: 'Ingrese un monto mayor o igual al total',
                    icon: "warning",
                    confirmButtonColor: "#34d16e",
                    confirmButtonText: "Aceptar",
                    allowOutsideClick: false,
                    showCancelButton: false,
                    showConfirmButton: true
                }, function () {
                    return false
                });

            } else {

                // if ( (current_invoices >= limits_invoices)  && $("input[name=tipo_doc]:checked").val() !== '3'  && $("#locked_invoices").val() == '1'   ){
                if ((current_invoices >= limits_invoices) && $("#locked_invoices").val() == '1') {
                    // console.log(current_invoices+" >= "+limits_invoices);
                    Swal.fire({
                        title: 'Alcanzó el límite',
                        text: 'Alcanzó el límite permitido para la emisión de comprobantes',
                        icon: "error",
                        confirmButtonColor: "#34d16e",
                        confirmButtonText: "Aceptar",
                        allowOutsideClick: false,
                        showCancelButton: false,
                        showConfirmButton: true
                    }, function () {
                        return false
                    });

                } else {

                    if ((current_invoices >= limits_invoices) && $("input[name=tipo_doc]:checked").val() !== '3') {

                        $.toast({
                            text: 'Alcanzó el límite permitido para la emisión de comprobantes',
                            position: 'top-right',
                            loaderBg: '#696969',
                            icon: 'error',
                            hideAfter: 3000,
                            stack: 20,
                            allowToastClose: false,
                        });

                    }
                    var form = $(this);
                    var venta = {
                        tipo_pedido: 0,
                        tipo_entrega: 0,
                        dividir_cuenta: 0,
                        id_pedido: 0,
                        cliente_id: 0,
                        tipo_doc: 0,
                        tipo_pago: 0,
                        pago_efe: 0,
                        pago_tar: 0,
                        pago_yape: 0,
                        pago_plin: 0,
                        pago_tran: 0,
                        ibcper: 0,
                        descuento_tipo: 0,
                        descuento_personal: 0,
                        descuento_monto: 0,
                        descuento_motivo: 0,
                        comision_tarjeta: 0,
                        comision_delivery: 0,
                        codigo_operacion: 0,
                        venta_por_consumo: 0,
                        venta_por_consumo_concepto: 0,
                        observacion: 0,
                        total: 0,
                        idProd: [],
                        cantProd: [],
                        precProd: []
                    }

                    var tipo_descuento = ($('#descuento_tipo_hidden').val() == '') ? '2' : $('#descuento_tipo_hidden').val();

                    venta.tipo_pedido = $('#codtipoped').val();
                    venta.tipo_entrega = $('#codtipopedentrega').val();
                    venta.dividir_cuenta = $('#dividir_cuenta').val();
                    venta.id_pedido = $('#id_pedido').val();
                    venta.cliente_id = $('#cliente_id').val();
                    venta.tipo_doc = $('input:radio[name="tipo_doc"]:checked').val();
                    venta.tipo_pago = $('#tipo_pago').val();
                    venta.pago_efe = $('#pago_efe').val().replace(/,/g, "");
                    venta.pago_tar = $('#pago_tar').val();
                    venta.pago_yape = $('#pago_yape').val();
                    venta.pago_plin = $('#pago_plin').val();
                    venta.pago_tran = $('#pago_tran').val();
                    venta.icbper = parseFloat($("#monto_icbper").val());
                    venta.descuento_tipo = tipo_descuento;
                    venta.descuento_personal = $('#descuento_personal_hidden').val();
                    venta.descuento_monto = $('#descuento_monto_hidden').val();
                    venta.descuento_motivo = $('#descuento_motivo_hidden').val();
                    venta.comision_tarjeta = $('#comision_tarjeta').val();
                    venta.comision_delivery = $('#comision_delivery').val();
                    venta.codigo_operacion = $('#codigo_operacion').val();
                    venta.venta_por_consumo = $("input[name='venta_por_consumo']").val();
                    venta.venta_por_consumo_concepto = $('#venta_por_consumo_concepto').val();
                    venta.observacion = $('#observacion').val();
                    venta.total = $('#total_venta').val();
                    venta.idProd = $("input[name='idProd[]']").map(function () { return $(this).val(); }).get();
                    venta.cantProd = $("input[name='cantProd[]']").map(function () { return $(this).val(); }).get();
                    venta.precProd = $("input[name='precProd[]']").map(function () { return $(this).val(); }).get();

                    var cod_ped = $('#id_pedido').val();

                    var cod_ven = 0;

                    let total = 0,
                        numeros = venta.cantProd;
                    numeros.forEach(function (a) { total += parseInt(a); });

                    if (total == 0) {
                        swal.close();
                        Swal.fire({
                            title: 'Advertencia',
                            html: 'Seleccione un producto,<br>para poder cobrar',
                            icon: "warning",
                            confirmButtonColor: "#34d16e",
                            confirmButtonText: "Aceptar",
                            allowOutsideClick: false,
                            showCancelButton: false,
                            showConfirmButton: true
                        }, function () {
                            return false
                        });
                        total = 0
                        return false
                    }
                    value = $('input:radio[name="tipo_doc"]:checked').val();
                    if (value == undefined || value == "undefined") {
                        Swal.fire({
                            title: 'Seleccione tipo de documento',
                            icon: 'error',
                            showCancelButton: false,
                            showConfirmButton: true,
                        });
                        return false;
                    }

                    html_confirm = '<h4 class="m-t-20 font-bold">Registrando venta</h4></div>'
                        + '<div class="p-0">Espere un momento por favor...</div>';

                    Swal.fire({
                        html: html_confirm,
                        timer: 100000,
                        allowOutsideClick: false,
                        allowEscapeKey: false,
                        showCancelButton: false,
                        showConfirmButton: false,
                        closeOnConfirm: false,
                        closeOnCancel: false,
                        onBeforeOpen: () => {
                            Swal.showLoading()
                        }
                    });



                    $('.swal2-actions').addClass('p-b-20');

                    $.ajax({
                        type: 'POST',
                        url: $('#url').val() + 'venta/RegistrarVenta',
                        data: venta,
                        success: function (dato) {
                            if (dato == '"error"') {
                                var html_footer = $("#url").val() + 'venta/orden/' + cod_ped;
                                Swal.fire({
                                    title: 'Error',
                                    text: 'Falta agregar productos',
                                    icon: "error",
                                    footer: '<div><a class="btn btn-orange" href="' + html_footer + '" target="_self">Aceptar <i class="fas fa-arrow-right"></i></a></div>',
                                    allowOutsideClick: false,
                                    showCancelButton: false,
                                    showConfirmButton: false,
                                    closeOnConfirm: false,
                                    closeOnCancel: false
                                }, function () {
                                    return false
                                });

                            } else {
                                cod_ven = dato.replace(/['"]+/g, '');
                                var urlticketreparto = $("#url").val() + 'venta/impresion_reparto/' + cod_ven;
                                // si es que esta activo el ver pdf
                                if ($('#verpdf').val() == 1) {
                                    var Urlpdfiframe = '<div class="col-6 col-md-6 hidden-md-down"><iframe src="' + $("#url").val() + 'informe/venta_all_imp/' + cod_ven + '#toolbar=0" style="border:none;width: 100%;height: 100%;" /></div>';
                                    var withmodal = 800;
                                    var cantcolumn = 6;
                                } else { var Urlpdfiframe = ''; var withmodal = 400; var cantcolumn = 12; }

                                // var Urlpdfiframe = $("#url").val()+'informe/venta_all_imp/'+cod_ven;
                                if (1 == $('#dividir_cuenta').val()) {
                                    var html_footer = $("#url").val() + 'venta';
                                    //return true;
                                } else if (2 == $('#dividir_cuenta').val()) {
                                    var html_footer = $("#url").val() + 'venta/orden/' + cod_ped;
                                    //return true;
                                }

                                if ($('#print_cpe').val() == 1) {
                                    // imprimir directo
                                    var linkpdf = '<a href="' + $("#url").val() + 'informe/venta_all_imp_/' + cod_ven + '" target="_blank" class="link"><i class="fas fa-print text-muted"></i></a>';
                                    var linkpdff = '<a class="link" href="' + $("#url").val() + 'informe/venta_all_imp_/' + cod_ven + '" target="_blank"><small>Imprimir comprobante</small></a>';
                                    var linkpdfview = '<a href="' + $("#url").val() + 'informe/venta_all_imp/' + cod_ven + '" target="_blank" class="link"><i class="fas fa-file-pdf text-danger"></i></a>';
                                    var linkpdfviewf = '<a class="link" href="' + $("#url").val() + 'informe/venta_all_imp/' + cod_ven + '" target="_blank"><small>Abrir PDF</small></a>';
                                    var linkrep = '<a class="link" href="' + $("#url").val() + 'venta/impresion_reparto/' + cod_ven + '" target="_blank"><i class="fas fa-print text-muted"></i></a>';
                                    var linkrepp = '<a class="link" href="' + $("#url").val() + 'venta/impresion_reparto/' + cod_ven + '" target="_blank"><small>Ticket reparto</small></a>';
                                    // Agregar el botón "GAVETA" al lado del botón "Imprimir Comprobante"
                                    var linkgaveta = '<a class="link" href="' + $("#url").val() + 'imprimir/gaveta.php" target="_blank"><i class="fas fa-print text-muted"></i></a>';
                                    var linkgavetap = '<a class="link" href="' + $("#url").val() + 'imprimir/gaveta.php" target="_blank"><small>GAVETA</small></a>';
                                } else {
                                    // vista previa
                                    var linkrep = '<a class="link" onclick="printPdf(\'' + urlticketreparto + '\',true);" href="javascript:void(0)"><i class="fas fa-print text-muted"></i></a>';
                                    var linkrepp = '<a class="link" onclick="printPdf(\'' + urlticketreparto + '\',true);" href="javascript:void(0)"><small>Ticket reparto</small></a>';
                                    var linkpdf = '<a href="javascript:void(0)" onclick="printPdf(' + cod_ven + ');" class="link"><i class="fas fa-print text-muted"></i></a>';
                                    var linkpdff = '<a class="link" href="javascript:void(0)" onclick="printPdf(' + cod_ven + ');"><small>Imprimir comprobante</small></a>';
                                    var linkpdfview = '<a href="' + $("#url").val() + 'informe/venta_all_imp/' + cod_ven + '" target="_blank" class="link"><i class="fas fa-file-pdf text-danger"></i></a>';
                                    var linkpdfviewf = '<a class="link" href="' + $("#url").val() + 'informe/venta_all_imp/' + cod_ven + '" target="_blank"><small>Abrir PDF</small></a>';
                                    // Agregar el botón "GAVETA" al lado del botón "Imprimir Comprobante"
                                    var linkgaveta = '<a class="link" href="' + $("#url").val() + 'imprimir/gaveta.php" target="_blank"><i class="fas fa-print text-muted"></i></a>';
                                    var linkgavetap = '<a class="link" href="' + $("#url").val() + 'imprimir/gaveta.php" target="_blank"><small>GAVETA</small></a>';
                                }

                                console.log($('#codtipoped').val());

                                if ($('#codtipoped').val() == 3) {
                                    html_confirm = '<div class="row"> <div class="col-' + cantcolumn + ' col-md-' + cantcolumn + '">'
                                        + '<div class="text-center p-20"><i class="fas fa-check-circle display-3 text-success"></i>'
                                        + '<h4 class="m-t-20 font-bold">¡Venta completada!</h4></div>'
                                        + '<div class="card-body text-center">'
                                        + '<div class="row">'
                                        + '<div class="col-6 text-center">'
                                        + '<h1 class="font-light m-b-0">' + linkpdf + '</h1>'
                                        + '' + linkpdff + ''
                                        + '</div>'
                                        + '<div class="col-6 text-center">'
                                        + '<h1 class="font-light m-b-0">' + linkpdfview + '</h1>'
                                        + '' + linkpdfviewf + ''
                                        + '</div>'
                                        + '<div class="col-6 text-center">'
                                        + '<h1 class="font-light m-b-0">' + linkgaveta + '</h1>'
                                        + '' + linkgavetap + ''
                                        + '</div>'
                                        + '<div class="col-6 text-center">'
                                        + '<h1 class="font-light m-b-0">' + linkrep + '</h1>'
                                        + '' + linkrepp + ''
                                        + '</div>'
                                        + '</div>'
                                        + '<div class="row mt-5">'
                                        + '<div class="col-12 text-center">'
                                        + '<span class="mb-2 text-center" style="display: block;">Enviar comprobante por WhatsApp</span>'
                                        + '<div class="input-group">'
                                        + '<div class="input-group-prepend">'
                                        + '<span class="input-group-text">Nº</span>'
                                        + '</div>'
                                        + '<input type="text" id="numero_cliente" value="51" class="form-control" placeholder="51999999999" aria-label="51999999999" aria-describedby="button-addon2">'
                                        + '<div class="input-group-append">'
                                        + '<button class="btn btn-success" type="button" id="button-addon2" onclick="clickSendWhatsapp(' + cod_ven + ');">enviar <i class="fab fa-whatsapp"></i></button>'
                                        + '</div>'
                                        + '</div>'
                                        // +'<div class="input-group mt-1">'
                                        //     +'<div class="input-group-prepend">'
                                        //         +'<span class="input-group-text">@</span>'
                                        //     +'</div>'
                                        //     +'<input type="text" id="correo_cliente" value="" class="form-control" placeholder="cliente@dominio.com" aria-label="cliente@dominio.com" aria-describedby="button-addon2">'
                                        //     +'<div class="input-group-append">'
                                        //         +'<button class="btn btn-success" type="button" id="button-SendEmail" onclick="clickSendEmail('+ cod_ven+',\''+$("#entorno").val()+'/\');">enviar <i class="fa fa-envelope"></i></button>'
                                        //     +'</div>'
                                        // +'</div>'
                                        //     +'<code style="display:inline-block" id="msj-SendEmail">Enviando email, espere por favor</code>'
                                        + '</div>'
                                        + '</div>'
                                        + '</div>'
                                        + '</div>'
                                        + '' + Urlpdfiframe + ''
                                        // +'<iframe src="'+Urlpdfiframe+'#toolbar=0" style="border:none;width: 100%;height: 100%;" />' //
                                        + '</div>';

                                } else {
                                    html_confirm = '<div class="row"> <div class="col-' + cantcolumn + ' col-md-' + cantcolumn + '">'
                                        + '<div class="text-center p-20"><i class="fas fa-check-circle display-3 text-success"></i>'
                                        + '<h4 class="m-t-20 font-bold">¡Venta completada!</h4></div>'
                                        + '<div class="card-body text-center">'
                                        + '<div class="row">'
                                        + '<div class="col-12 text-center">'
                                        + '<h1 class="font-light m-b-0">' + linkpdf + '</h1>'
                                        + '' + linkpdff + ''
                                        + '</div>'
                                        + '<div class="col-12 text-center">'
                                        + '<h1 class="font-light m-b-0">' + linkpdfview + '</h1>'
                                        + '' + linkpdfviewf + ''
                                        + '</div>'
                                        + '<div class="col-12 text-center">'
                                        + '<h1 class="font-light m-b-0">' + linkgaveta + '</h1>'
                                        + '' + linkgavetap + ''
                                        + '</div>'
                                        + '</div>'
                                        + '<div class="row mt-5">'
                                        + '<div class="col-12 text-center">'
                                        + '<span class="mb-2 text-center" style="display: block;">Enviar comprobante por WhatsApp</span>'
                                        + '<div class="input-group">'
                                        + '<div class="input-group-prepend">'
                                        + '<span class="input-group-text">Nº</span>'
                                        + '</div>'
                                        + '<input type="text" id="numero_cliente" value="51" class="form-control" placeholder="51999999999" aria-label="51999999999" aria-describedby="button-addon2">'
                                        + '<div class="input-group-append">'
                                        + '<button class="btn btn-success" type="button" id="button-addon2" onclick="clickSendWhatsapp(' + cod_ven + ');">enviar <i class="fab fa-whatsapp"></i></button>'
                                        + '</div>'
                                        + '</div>'
                                        // +'<div class="input-group mt-1">'
                                        //     +'<div class="input-group-prepend">'
                                        //         +'<span class="input-group-text">@</span>'
                                        //     +'</div>'
                                        //     +'<input type="text" id="correo_cliente" value="" class="form-control" placeholder="cliente@dominio.com" aria-label="cliente@dominio.com" aria-describedby="button-addon2">'
                                        //     +'<div class="input-group-append">'
                                        //         +'<button class="btn btn-success" type="button" id="button-SendEmail" onclick="clickSendEmail('+ cod_ven+',\''+$("#entorno").val()+'/\');">enviar <i class="fa fa-envelope"></i></button>'
                                        //     +'</div>'
                                        // +'</div>'
                                        //     +'<code style="display:none" id="msj-SendEmail">Enviando email, espere por favor</code>'
                                        + '</div>'
                                        + '</div>'
                                        + '</div>'
                                        + '</div>'
                                        + '' + Urlpdfiframe + ''
                                        // +'<iframe src="'+Urlpdfiframe+'#toolbar=0" style="border:none;width: 100%;height: 100%;" />' //
                                        + '</div>';

                                }
                                Swal.fire({
                                    html: html_confirm,
                                    width: withmodal,
                                    footer: '<div><a class="btn btn-orange" href="' + html_footer + '" target="_self">Continuar <i class="fas fa-arrow-right"></i></a></div>',
                                    allowOutsideClick: false,
                                    allowEscapeKey: false,
                                    showCancelButton: false,
                                    showConfirmButton: false,
                                    closeOnConfirm: false,
                                    closeOnCancel: false,
                                    //backdrop: '#34d16e'

                                });
                                $('.swal2-modal').addClass('card-shadow');

                                if ($('#codtipoped').val() == 2) {
                                    // impresion_ticket($('#id_pedido').val());
                                }

                                var tipoDocSeleccionado = Number($('input:radio[name="tipo_doc"]:checked').val() || 0);
                                var shouldAutoPrintCpe = ($('#print_cpe').val() == 1) && tipoDocSeleccionado !== 3;

                                if (shouldAutoPrintCpe) {
                                    window.open($("#url").val() + 'informe/venta_all_imp_/' + cod_ven, '_blank');
                                }

                            }
                        },
                        error: function (jqXHR, textStatus, errorThrown) {
                            console.log(errorThrown + ' ' + textStatus);
                        }
                    });
                }


            }
        });
    $('#modal-facturar').on('shown.bs.modal', function () {
        $(document).off('focusin.modal');
    });
});

var defaultdata = function () {
    $.ajax({
        async: false,
        dataType: 'JSON',
        type: 'POST',
        url: $('#url').val() + 'venta/defaultdata',
        data: {
            id_pedido: $('#codped').val(),
            tipo_pedido: $('#codtipoped').val()
        },
        success: function (data) {
            var sbtot = 0;
            var total = 0;

            console.log(data);

            var imp_bol = $("#imp_icbper").val();
            $.each(data.Detalle, function (i, item) {
                var precio_imp_bol = 0;

                if (item.impuesto_icbper == "1") {
                    precio_imp_bol = parseFloat(item.precio) + parseFloat(imp_bol);
                } else {
                    precio_imp_bol = item.precio;
                }

                var importe = parseFloat(item.cantidad * precio_imp_bol);
                if (item.estado != "i" && item.cantidad > 0) {
                    sbtot = parseFloat(importe) + parseFloat(sbtot);
                }
            });

            total = parseFloat(sbtot) + parseFloat(total);

            $('#totalPagar').text(moneda + ' ' + formatNumber(total));
            $('.totalPagar').text(moneda + ' ' + formatNumber(total));
            $('#total_pedido').val(total.toFixed(2));
            $('#pago_efe').val(formatNumber(total));
            $('.opc-01').text(formatNumber(total));
            $('.totalPedidoMenosTarjeta').text(formatNumber(total));

            $('.opcion-cliente').html('<a class="input-group-prepend" href="javascript:void(0)"'
                + 'onclick="nuevoCliente();" data-original-title="Registrar nuevo cliente" data-toggle="tooltip"'
                + 'data-placement="top">'
                + '<span class="input-group-text bg-header">'
                + '<small><i class="fas fa-user-plus"></i></small>'
                + '</span>'
                + '</a>');

            if (total != '0.00') {
                if (data.id_tipo_pedido == 3) {
                    // if(data.estado_pedido != 'a'){
                    //     $('#list-productos').css('visibility','hidden');
                    //     $('.opc1').css('display','block');
                    //     $('.opc2').css('display','none');
                    // } else {
                    $('.opc1').css('display', 'none');
                    $('.opc2').css('display', 'none');
                    $('.opc3').css('display', 'block');
                    if ($('#rol_usr').val() == 5) {
                        $('.opc1').css('display', 'block');
                    }
                    // }
                } else {
                    $('.opc1').css('display', 'block');
                    $('.opc2').css('display', 'none');
                }
            } else {
                $('.opc1').css('display', 'none');
                $('.opc2').css('display', 'block');
            };

            if (data.id_tipo_pedido == 1) {
                $('.pedido-numero-icono').text('');
                $('.pedido-cliente-icono').removeClass('far fa-user');
                $('.pedido-numero').text(data.desc_salon);
                $('#nombre_salon').val(data.desc_salon);
                $('#nombre_mozo').val(data.nombre_mozo);
                $('.pedido-cliente').text('MESA: ' + data.nro_mesa);
                // if($("#print_pre").val() == 1){ // impresion por comanda
                //     $('.btn-imp').html('<a href="'+$("#url").val()+'venta" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Monitor de mesas"><i class="fas fa-desktop"></i></a> <button onclick="impPreCuenta('+data.id_pedido+','+data.id_mesa+',\''+data.estado_mesa+'\')" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Imprimir pre cuenta"><i class="fas fa-print"></i></button>');
                // }else{ // impresion por view print
                //     $('.btn-imp').html('<a href="'+$("#url").val()+'venta" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Monitor de mesas"><i class="fas fa-desktop"></i></a> <button  onclick="impPreCuenta('+data.id_pedido+','+data.id_mesa+',\''+data.estado_mesa+'\',true)" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Imprimir pre cuenta"><i class="fas fa-print"></i></button>');
                // }
                if ($("#print_pre").val() == 1) { // impresion por comanda
                    $('.btn-imp').html('<a href="' + $("#url").val() + 'venta" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Monitor de mesas"><i class="fas fa-desktop"></i></a> <button onclick="impPreCuenta(' + data.id_pedido + ',' + data.id_mesa + ',\'' + data.estado_mesa + '\')" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Imprimir pre cuenta"><i class="fas fa-print"></i></button> <div class="btn-group" data-toggle="tooltip" title="Imprimir Comanda"><button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-print"></i></button><div class="dropdown-menu" id="list-comandas"></div></div>');
                } else { // impresion por view print
                    $('.btn-imp').html('<a href="' + $("#url").val() + 'venta" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Monitor de mesas"><i class="fas fa-desktop"></i></a> <button  onclick="impPreCuenta(' + data.id_pedido + ',' + data.id_mesa + ',\'' + data.estado_mesa + '\',true)" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Imprimir pre cuenta"><i class="fas fa-print"></i></button> <div class="btn-group" data-toggle="tooltip" title="Imprimir Comanda"><button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-print"></i></button><div class="dropdown-menu" id="list-comandas"></div></div>');
                }
                $('#cliente_id').val(1);
                $('#buscar_cliente').val('DNI: 00000000 | PUBLICO EN GENERAL');
            } else if (data.id_tipo_pedido == 2 || data.id_tipo_pedido == 3) {
                $('.pedido-numero-icono').text('Pedido: ');
                $('.pedido-cliente-icono').addClass('far fa-user');
                $('.pedido-numero').text(data.nro_pedido);
                $('#btn-confirmar').text('AÑADIR');
                if (data.id_tipo_pedido == 2) {
                    $('.pedido-cliente').text(data.nombre_cliente);
                    $('.btn-imp').html('<a href="' + $("#url").val() + 'venta?tip=2&cod=' + $('#codped').val() + '&est=' + data.estado_pedido + '" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Monitor de ventas"><i class="fas fa-desktop"></i></a>');
                    $('#cliente_id').val(1);
                    $('#buscar_cliente').val('DNI: 00000000 | PUBLICO EN GENERAL');
                } else if (data.id_tipo_pedido == 3) {
                    //$('.mensaje-pago-2-text').html('PAGA CON: S/'+data.paga_con+'<br>COMISION DELIVERY: S/'+data.comision_delivery);
                    console.log(data.paga_con)
                    $('.comision_delivery').val(data.comision_delivery);
                    $('.comision_delivery').text(formatNumber(data.comision_delivery));
                    $('#pago_efe').val(formatNumber(data.paga_con));
                    $(".opc-01").text(formatNumber(parseFloat(total) + parseFloat(data.comision_delivery)));
                    var tipo_entrega = (data.tipo_entrega == 1) ? 'c' : 'd';
                    $('#codtipopedentrega').val(tipo_entrega);
                    if (data.estado_pedido == 'a') {
                        $('.btn-imp').html('<a href="' + $("#url").val() + 'venta?tip=3&cod=' + $('#codped').val() + '&est=' + data.estado_pedido + '" class="btn btn-orange" data-toggle="tooltip" data-placement="top" data-original-title="Continuar">Continuar <i class="fas fa-arrow-right"></i></a>');
                    } else if (data.estado_pedido == 'b') {
                        $('.btn-imp').html('<a href="' + $("#url").val() + 'venta?tip=3&cod=' + $('#codped').val() + '&est=' + data.estado_pedido + '" class="btn btn-inverse" data-toggle="tooltip" data-placement="top" data-original-title="Monitor de ventas"><i class="fas fa-desktop"></i></a>');
                    } else {
                        $('#list-productos').css('visibility', 'hidden');
                    }
                    //$('.pedido-cliente').text(data.desc_repartidor);
                    $('.pedido-cliente').text(data.nombre_cliente.substr(0, 13));
                    $('#cliente_id').val(data.id_cliente);
                    $('#cliente_tipo').val(data.tipo_cliente);
                    $('#tipo_cliente').val(data.tipo_cliente);
                    var tipo = (data.tipo_cliente == 1) ? $('#diAcr').val() : $('#tribAcr').val();
                    $('#buscar_cliente').val(tipo + ': ' + data.dni_cliente + '' + data.ruc_cliente + ' | ' + data.nombre_cliente);
                    //$('#buscar_cliente').val('PUBLICO EN GENERAL');
                    $('.opcion-cliente').html('<a class="input-group-prepend" href="javascript:void(0)"'
                        + 'onclick="editar_cliente(' + data.id_cliente + ');" data-original-title="Editar cliente" data-toggle="tooltip"'
                        + 'data-placement="top">'
                        + '<span class="input-group-text bg-header">'
                        + '<small><i class="fas fa-user text-info"></i></small>'
                        + '</span>'
                        + '</a>');
                }
            }

            if (data.tipo_cliente == 2) {
                $('.btn-tipo-doc-2').addClass('active');
                $("input[name=tipo_doc][value='2']").attr("checked", true);
            } else if (tdoc_defecto) {
                $('.btn-tipo-doc-' + tdoc_defecto).addClass('active');
                $("input[name=tipo_doc][value='" + tdoc_defecto + "']").attr("checked", true);
            } else {
                $('.btn-tipo-doc-1').addClass('active');
                $("input[name=tipo_doc][value='1']").attr("checked", true);

                if ($("input[name=tipo_doc][value='1']").length == false) {
                    $('.btn-tipo-doc-3').addClass('active');
                    $("input[name=tipo_doc][value='3']").attr("checked", true);
                }
            }

            // $('.btn-tipo-doc-3').addClass('disabled');
            // $("input[name=tipo_doc][value='2']").attr("disabled",false);

            if (data.tipo_pago == 1) {
                $('#tipo_pago').selectpicker('val', data.tipo_pago);
                $('.mensaje-pago').hide();
                $('.display-pago-efectivo').show();
                $('.display-pago-tarjeta').hide();
                $('.display-pago-default').show();
                $('.display-pago-rapido-efectivo').show();
                $('.display-codigo-operacion').hide();
            } else if (data.tipo_pago != 3 && (data.tipo_pago == 2 || data.tipo_pago >= 4)) {
                $('#tipo_pago').selectpicker('val', data.tipo_pago);
                $('.mensaje-pago').hide();
                $('.display-pago-efectivo').hide();
                $('.display-pago-tarjeta').hide();
                $('.display-pago-default').hide();
                $('.display-pago-rapido-efectivo').hide();
                $('.display-descuento').show();
                $('.display-codigo-operacion').show();
            } else {
                $('#tipo_pago').selectpicker('val', 1);
                $('.mensaje-pago').hide();
                $('.display-pago-efectivo').show();
                $('.display-pago-tarjeta').hide();
                $('.display-pago-default').show();
                $('.display-pago-rapido-efectivo').show();
                $('.display-codigo-operacion').hide();
            }

            if (data.amortizacion > 0) {
                $('.mensaje-amortizacion').show();
                $('.mensaje-amortizacion-text').html('Existe una amortizaci&oacute;n de pago con un monto de ' + moneda + ' ' + formatNumber(data.amortizacion));
            } else {
                $('.mensaje-amortizacion').hide();
            }

            /*
            if(data.id_repartidor == 1){
                if (data.tipo_pago == 4) {
                    $('.display-comision-delivery').hide();
                } else {
                    $('.display-comision-delivery').show();
                }
            } else {
                $('.display-comision-delivery').hide();
            }
            */
            if (data.tipo_pago == 4) {
                $('.display-comision-delivery').hide();
            } else {
                $('.display-comision-delivery').show();
            }
            $('#codtipoped').val(data.id_tipo_pedido);
            $('.display-comision-tarjeta').hide();

            if (data.id_repartidor == 2222 || data.id_repartidor == 3333 || data.id_repartidor == 4444) {
                $('#codrepartidor').val(2);
            } else {
                $('#codrepartidor').val(1);
            }
        }
    });
};

var listarCategorias = function () {
    $('#list-catgrs').empty();
    $('#list-catgrs').html('<li class="nav-item list-salones m-t-10"><a class="nav-link active" data-toggle="list" href="javascript:void(0)"href="javascript:void(0)" onclick="listarProdsMasVend();"><b>FAVORITOS</b></a></li>');
    $.ajax({
        dataType: 'JSON',
        type: 'POST',
        data: {
            codtipoped: $('#codtipoped').val()
        },
        url: $('#url').val() + 'venta/listarCategorias',
        success: function (data) {
            $.each(data, function (i, item) {
                $('#list-catgrs')
                    // .append(
                    //     $('<a class="catS b-0 list-group-item list-group-item-action" data-toggle="list" href="javascript:void(0)" onclick="listarProductos('+item.id_catg+');"/>')
                    //     .html(item.descripcion)
                    .append($('<li class="nav-item list-salones m-t-10">').append($('<a class="nav-link" data-toggle="list" href="javascript:void(0)" onclick="listarProductos(' + item.id_catg + ');"/ >').html(item.descripcion)));
            });
        }
    });
}
var listarCategoriasMovil = function () {
    $('#list-catgrs-movil').empty();
    $('#list-catgrs-movil').html('<a class="catP b-0 list-group-item list-group-item-action active" style="border-radius: 0px;" data-toggle="list" href="javascript:void(0)" onclick="listarProdsMasVend(1);"><b>FAVORITOS</b></a>');
    $.ajax({
        dataType: 'JSON',
        type: 'POST',
        data: {
            codtipoped: $('#codtipoped').val()
        },
        url: $('#url').val() + 'venta/listarCategorias',
        success: function (data) {
            $.each(data, function (i, item) {
                $('#list-catgrs-movil')
                    .append(
                        $('<a class="catS b-0 list-group-item list-group-item-action" data-toggle="list" href="javascript:void(0)" onclick="listarProductos(' + item.id_catg + ',1);"/>')
                            .html(item.descripcion)

                    );
            });
        }
    });
}

var listarProductos = function (id_catg, side = false) {
    if (side) {
        $(".right-sidebar").slideDown(50), $(".right-sidebar").toggleClass("shw-rside")
    }

    $('#buscar_producto').val('');
    $('#list-productos').empty();
    var prodwidth = ($('#rol_usr').val() == 5) ? 'p-w-t' : 'p-w-t';
    $.ajax({
        url: $('#url').val() + 'venta/listarProductos',
        dataType: 'JSON',
        type: 'POST',
        data: {
            id_catg: id_catg,
            codtipoped: $('#codtipoped').val(),
            codrepartidor: $('#codrepartidor').val()
        },
        success: function (data) {
            if (data.length != 0) {
                var htmlProducto = '\
                    <table class="table table-hover table-striped tablaProdcutos" style="margin: 10px">\
                        <thead>\
                            <tr class="table-info">\
                                <th class="tablaProdcutosTitulo">Cod.</th>\
                                <th class="tablaProdcutosTitulo">Producto</th>\
                                <th class="tablaProdcutosTitulo">Presentación</th>\
                                <th class="tablaProdcutosTitulo">Precio</th>\
                            </tr>\
                        </thead>\
                    <tbody>';
                $.each(data, function (i, item) {
                    if (item.Stock) {
                        var queda_stock = ((Number(item.Stock.ent) - Number(item.Stock.sal)));
                        stock = '<span class="stock-tag stock_producto_' + item.id_pres + '">Queda: ' + queda_stock + '</span>';
                    } else {
                        stock = '';
                    }

                    sessionStorage.setItem('precios_' + item.id_pres + '', '');
                    sessionStorage.setItem('precios_' + item.id_pres + '', item.precios);

                    if ($("#mostrarimagen").val() == 1) {
                        $('#list-productos')
                            .append(
                                $('<article id="pres_' + item.pro_cod + '" class="product ' + prodwidth + ' animated fadeIn" onclick="add2(' + item.id_areap + ',' + item.id_pres + ',\'' + item.pro_nom + '\',\'' + item.pro_pre + '\',' + item.pro_cos + ',\'' + item.Impresora.nombre + '\');"/>')
                                    .append(
                                        $('<div class="product-img"/>')
                                            .html('<img src="' + $("#url").val() + 'public/images/productos/' + item.pro_img + '"></img><span class="price-tag">' + moneda + ' ' + item.pro_cos + '</span><span class="pres-tag">' + item.pro_pre + '</span>' + stock)
                                    )
                                    .append(
                                        $('<div class="product-nam"/>')
                                            .html(item.pro_nom)
                                    )
                            );
                    } else {
                        htmlProducto += '\
                            <tr ondblclick="add2('+ item.id_areap + ',' + item.id_pres + ',\'' + item.pro_nom + '\',\'' + item.pro_pre + '\',' + item.pro_cos + ',\'' + item.Impresora.nombre + '\');">\
                                <th>'+ item.pro_cod + '</th>\
                                <th>'+ item.pro_nom + '</th>\
                                <th>'+ item.pro_pre + '</th>\
                                <th>'+ moneda + ' ' + item.pro_cos + '</th>\
                            </tr>';
                    }
                });

                if ($("#mostrarimagen").val() != 1) {
                    htmlProducto += '</tbody>\
                        </table>';
                    $('#list-productos').html(htmlProducto)
                }
            } else {
                $('#list-productos').html('<div class="text-center"><h4 class="ich m-t-none" style="color: #d3d3d3;"><br><br><br><br><br><br><br><br><br><i class="mdi mdi-star-circle display-4"></i><br>No se han encontrado resultados</h4></div>');
            }
        }
    });
};

var listarProdsMasVend = function (side = false) {
    if (side) {
        $(".right-sidebar").slideDown(50), $(".right-sidebar").toggleClass("shw-rside")
    }
    $('#buscar_producto').val('');
    $('#list-productos').empty();
    var prodwidth = ($('#rol_usr').val() == 5) ? 'p-w-t' : 'p-w-t';
    $.ajax({
        dataType: 'JSON',
        type: 'POST',
        data: {
            codtipoped: $('#codtipoped').val(),
            codrepartidor: $('#codrepartidor').val()
        },
        url: $('#url').val() + 'venta/listarProdsMasVend',
        success: function (data) {
            if (data.length != 0) {
                var htmlProducto = '\
                    <table class="table table-hover table-striped tablaProdcutos" style="margin: 10px">\
                        <thead>\
                            <tr class="table-info">\
                                <th class="tablaProdcutosTitulo">Cod.</th>\
                                <th class="tablaProdcutosTitulo">Producto</th>\
                                <th class="tablaProdcutosTitulo">Presentación</th>\
                                <th class="tablaProdcutosTitulo">Precio</th>\
                            </tr>\
                        </thead>\
                    <tbody>';
                $.each(data, function (i, item) {
                    if (item.Stock) {
                        var queda_stock = ((Number(item.Stock.ent) - Number(item.Stock.sal)));
                        stock = '<span class="stock-tag stock_producto_' + item.id_pres + '">Queda: ' + queda_stock + '</span>';
                    } else {
                        stock = '';
                    }

                    sessionStorage.setItem('precios_' + item.id_pres + '', '');
                    sessionStorage.setItem('precios_' + item.id_pres + '', item.precios);

                    if ($("#mostrarimagen").val() == 1) {
                        $('#list-productos')
                            .append(
                                $('<article id="pres_' + item.pro_cod + '" class="product ' + prodwidth + ' animated fadeIn" onclick="add2(' + item.id_areap + ',' + item.id_pres + ',\'' + item.pro_nom + '\',\'' + item.pro_pre + '\',' + item.pro_cos + ',\'' + item.Impresora.nombre + '\');"/>')
                                    .append(
                                        $('<div class="product-img"/>')
                                            .html('<img src="' + $("#url").val() + 'public/images/productos/' + item.pro_img + '"></img><span class="price-tag">' + moneda + ' ' + item.pro_cos + '</span><span class="pres-tag">' + item.pro_pre + '</span>' + stock)
                                    )
                                    .append(
                                        $('<div class="product-nam"/>')
                                            .html(item.pro_nom)
                                    )
                            );
                    } else {
                        htmlProducto += '\
                            <tr ondblclick="add2('+ item.id_areap + ',' + item.id_pres + ',\'' + item.pro_nom + '\',\'' + item.pro_pre + '\',' + item.pro_cos + ',\'' + item.Impresora.nombre + '\');">\
                                <th>'+ item.pro_cod + '</th>\
                                <th>'+ item.pro_nom + '</th>\
                                <th>'+ item.pro_pre + '</th>\
                                <th>'+ moneda + ' ' + item.pro_cos + '</th>\
                            </tr>';
                    }
                });

                if ($("#mostrarimagen").val() != 1) {
                    htmlProducto += '</tbody>\
                        </table>';
                    $('#list-productos').html(htmlProducto)
                }

            } else {
                $('#list-productos').html('<div class="text-center"><h4 class="ich m-t-none" style="color: #d3d3d3;"><br><br><br><br><br><br><br><br><br><i class="mdi mdi-star-circle display-4"></i><br>No se han encontrado resultados</h4></div>');
            }
        }
    });
}

var listarPedidos = function () {
    $('#list-detped').empty();
    $.ajax({
        dataType: 'JSON',
        type: 'POST',
        url: $('#url').val() + 'venta/listarPedidos',
        data: {
            id_pedido: $('#codped').val(),
            codpagina: $('#codpagina').val()
        },
        success: function (data) {
            if (data.length != 0) {
                $.each(data, function (i, item) {
                    var textIcbper = '';

                    if (item.Producto.impuesto_icbper == 1) {
                        textIcbper = '| <span class="font-bold"> ICBPER= </span><span class="label label-primary text-right"><span class="font-bold" style="font-size:12px">' + $("#imp_icbper").val() + '</span></span>'
                    }
                    var total = (item.cantidad * item.precio).toFixed(2);
                    $('#list-detped')
                        .append(
                            $('<div class="d-flex flex-row comment-row comment-list" onclick="subPedido(2,' + $('#codped').val() + ',' + item.id_pres + ',\'' + item.precio + '\');"/>')
                                .append('<div class="comment-text w-100 p-0 m-b-10n"><span style="display: inline-block;">'
                                    + '<h6 class="m-b-5">' + item.Producto.pro_nom + ' <span class="label label-warning">' + item.Producto.pro_pre + '</span> </h6>'
                                    + '<div class="m-b-0 font-13 font-black">' + item.cantidad + ' Unidad(es) en ' + moneda + ' ' + formatNumber(item.precio) + '   ' + textIcbper + '</div></span>'
                                    + '<span class="price">' + moneda + ' ' + formatNumber(total) + '</span></div>'));
                });
            } else {
                $('#list-detped').html('<div class="justify-center" style="height: 100%;"><div class="text-center"><h2><i class="fas fa-shopping-basket display-4" style="color: #d3d3d3;"></i></h2><h4 style="color: #d3d3d3;">Agregue productos</h4><h6 style="color: #d3d3d3;">Seleccione categorías y productos<br> del panel de la izquierda</h6></div></div>');
            }
        }
    });
};

var pedido = {
    detalle: {
        cod_ped: 0,
        items: []
    },

    /* Encargado de agregar un producto a nuestra colección */
    registrar: function (item) {
        var existe = false;

        if ($('#sep_items').val() == 1) {

            item.total = (item.cantidad * item.precio);
            this.detalle.items.push(item);

        } else {

            item.total = (item.cantidad * item.precio);
            this.detalle.items.forEach(function (x) {
                var cantidad = Number(x.cantidad)
                var cantidad2 = Number(item.cantidad)
                if ((x.producto_id === item.producto_id) && (x.precio === item.precio)) {
                    x.cantidad = cantidad += cantidad2
                    x.nombreprecio = item.nombreprecio
                    x.cantidad = parseFloat(x.cantidad).toFixed($("#decimales").val())
                    x.total += item.total;
                    existe = true;
                }
            });

            if (!existe) {
                this.detalle.items.push(item);
            }

        }

        this.refrescar();

    },


    /* Encargado de actualizar el precio/cantidad de un producto */
    actualizar: function (id, row) {
        /* Capturamos la fila actual para buscar los controles por sus nombres */
        row = $(row).closest('.warning-element');

        /* Buscamos la columna que queremos actualizar */
        $(this.detalle.items).each(function (indice, fila) {
            if (indice == id) {
                /* Agregamos un nuevo objeto para reemplazar al anterior */
                pedido.detalle.items[indice] = {
                    producto_id: row.find("input[name='producto_id']").val(),
                    area_id: row.find("input[name='area_id']").val(),
                    nombre_imp: row.find("input[name='nombre_imp']").val(),
                    nombreprecio: row.find("input[name='nombreprecio']").val(),
                    producto: row.find("span[name='producto']").text(),
                    presentacion: row.find("span[name='presentacion']").text(),
                    comentario: row.find("input[name='comentario']").val(),
                    cantidad: row.find("input[name='cantidad']").val(),
                    precio: row.find("input[name='precio']").val(),
                };
                pedido.detalle.items[indice].total = pedido.detalle.items[indice].precio * pedido.detalle.items[indice].cantidad;
                return false;
            }
        })

        this.refrescar();

    },

    /* Encargado de retirar el producto seleccionado */
    retirar: function (id) {
        /* Declaramos un ID para cada fila */
        $(this.detalle.items).each(function (indice, fila) {
            if (indice == id) {
                pedido.detalle.items.splice(id, 1);
                return false;
            }
        })

        this.refrescar();
    },

    /* Refresca todo los productos elegidos */
    refrescar: function () {
        this.detalle.total = 0;

        /* Declaramos un id y calculamos el total */
        $(this.detalle.items).each(function (indice, fila) {
            pedido.detalle.items[indice].id = indice;
            pedido.detalle.total += fila.total;
            $.ajax({
                url: $('#url').val() + 'venta/control_stock_pedido',
                type: 'POST',
                dataType: 'json',
                data: {
                    id_pres: pedido.detalle.items[indice].producto_id,
                },
                success: function (datas) {
                    if (datas != 0) {
                        var queda_stock = ((Number(datas.ent) - Number(datas.sal)) - Number(pedido.detalle.items[indice].cantidad));
                        if (Number(datas.ent) == (Number(datas.sal) + Number(pedido.detalle.items[indice].cantidad))) {

                            Swal.fire({
                                title: 'Advertencia',
                                html: 'Producto sin Stock, Comuniquese con el administrador',
                                icon: "warning",
                                confirmButtonColor: "#34d16e",
                                confirmButtonText: "Aceptar",
                                allowOutsideClick: false,
                                showCancelButton: false,
                                showConfirmButton: true
                            }, function () {
                                return false
                            });
                        }
                        $('.stock_producto_' + pedido.detalle.items[indice].producto_id).html('Queda: ' + queda_stock);
                        $('.stock_producto_' + indice).html('Queda: ' + queda_stock);
                    } else {
                        $('.stock_producto').html('');
                    }
                }
            });
        })

        /* Calculamos el subtotal e IGV */
        this.detalle.igv = (this.detalle.total * $('#igv').val()).toFixed(2); // 18 % El IGV y damos formato a 2 deciamles
        this.detalle.subtotal = (this.detalle.total - this.detalle.igv).toFixed(2); // Total - IGV y formato a 2 decimales
        this.detalle.total = this.detalle.total.toFixed(2);

        var template = $.templates("#nvo-ped-det-template");
        var htmlOutput = template.render(this.detalle);

        $("#nvo-ped-det").html(htmlOutput);

        /*
        if(this.detalle.total == 0){
            $("#nvo-ped").css('display','none');
            $(".bc").css('display','none');
        }
        */

        $(".touchspin1").TouchSpin({
            verticalbuttons: true,
            buttondown_class: 'btn btn-warning',
            buttonup_class: 'btn btn-warning',
            min: 1,
            max: 999,
            step: 1,
            booster: false,
            stepintervaldelay: 600000
        });

    }
};

var add2 = function (id_areap, id_pres, nombre_prod, pres_prod, precio_prod, nombre_imp) {

    var precios = ''

    precios = JSON.parse(sessionStorage.getItem('precios_' + id_pres + ''))

    if (precios.length > 0) {

        var preciosAdicionales = ''

        $.each(precios, function (ind, elem) {
            console.log(elem.precio)
            console.log(elem.nombre)
            preciosAdicionales += '<div class="col-4 text-center mt-3"><div class="text-center font-bold">' + elem.nombre + '</div>'
                + '<button class="btn btn-primary font-bold" style="width: 120px; font-size: 20px" type="button" onclick="add(' + id_areap + ',' + id_pres + ',\'' + nombre_prod + '\',\'' + pres_prod + '\',' + elem.precio + ',\'' + nombre_imp + '\',\'' + elem.nombre + '\');">' + parseFloat(elem.precio).toFixed(2) + ' <i class="fa fa-dollar-sign"></i></button>'
                + '</div>'
        });
        // ssssssss
        html_confirm = '<div class="row"> <div class="col-12 col-md-12">'
            + '<div class="text-center p-20"><div class="text-center font-bold">Producto</div><h4 class=" font-bold btn-orange" style="padding-top: 10px; padding-bottom: 10px">' + nombre_prod + ' ' + pres_prod + '</h4></div>'
            + '<span class="mb-2 text-center" style="display: block;">Elija un precio para la venta</span>'
            + '<div class="row mt-3 mr-2">'
            + '<div class="col-4 text-center mt-3"><div class="text-center font-bold">Precio 1</div>'
            + '<button class="btn btn-success font-bold" style="width: 120px; font-size: 20px" type="button" onclick="add(' + id_areap + ',' + id_pres + ',\'' + nombre_prod + '\',\'' + pres_prod + '\',' + precio_prod + ',\'' + nombre_imp + '\',\'principal\');">' + parseFloat(precio_prod).toFixed(2) + ' <i class="fa fa-dollar-sign"></i></button>'
            + '</div>'
            + '' + preciosAdicionales + '</div>'
            + '</div>'
            + '</div>'
            + '</div>';

        Swal.fire({
            html: html_confirm,
            width: 400,
            allowOutsideClick: false,
            allowEscapeKey: false,
            showCancelButton: true,
            showConfirmButton: false,
            cancelButtonText: "Cancelar",
            closeOnConfirm: false,
            closeOnCancel: false,
        });

        return false

    } else {
        this.add(id_areap, id_pres, nombre_prod, pres_prod, precio_prod, nombre_imp, 'principal');
    }

}


var add = function (id_areap, id_pres, nombre_prod, pres_prod, precio_prod, nombre_imp, nombreprecio = null) {
    Swal.close();
    var jqxhr = $.ajax({
        type: 'POST',
        url: $('#url').val() + 'venta/ValidarEstadoPedido',
        data: {
            cod_ped: $('#codped').val()
        }
    })
        .done(function (data) {
            if (data == 1) {
                $.ajax({
                    url: $('#url').val() + 'venta/control_stock_pedido',
                    type: 'POST',
                    dataType: 'json',
                    data: {
                        id_pres: id_pres,
                    },
                    success: function (datasss) {
                        if (datasss != 0) {

                            if ((Number(datasss.ent)) == (Number(datasss.sal))) {
                                Swal.fire({
                                    title: 'Advertencia',
                                    html: 'Producto sin Stock, Comuniquese con el administrador',
                                    icon: "warning",
                                    confirmButtonColor: "#34d16e",
                                    confirmButtonText: "Aceptar",
                                    allowOutsideClick: false,
                                    showCancelButton: false,
                                    showConfirmButton: true
                                }, function () {
                                    return false
                                });

                            } else {

                                $("#nvo-ped").css('display', 'block');
                                $(".bc").css('display', 'block');
                                pedido.registrar({
                                    area_id: id_areap,
                                    nombre_imp: nombre_imp,
                                    producto_id: parseInt(id_pres),
                                    producto: nombre_prod,
                                    presentacion: pres_prod,
                                    cantidad: parseInt(1),
                                    precio: parseFloat(precio_prod).toFixed(2),
                                    nombreprecio: nombreprecio,
                                    comentario: "",
                                });
                                $.toast({
                                    text: 'Pedido agregado a la lista',
                                    position: 'bottom-left',
                                    loaderBg: '#696969',
                                    icon: 'success',
                                    hideAfter: 3000,
                                    stack: 20
                                });
                                $("#btn-confirmar").removeAttr('disabled');
                            }

                        } else {
                            $("#nvo-ped").css('display', 'block');
                            $(".bc").css('display', 'block');
                            pedido.registrar({
                                area_id: id_areap,
                                nombre_imp: nombre_imp,
                                producto_id: parseInt(id_pres),
                                producto: nombre_prod,
                                presentacion: pres_prod,
                                cantidad: parseInt(1),
                                precio: parseFloat(precio_prod).toFixed(2),
                                nombreprecio: nombreprecio,
                                comentario: ""
                            });
                            // if($('#rol_usr').val() == 5){
                            $.toast({
                                text: 'Pedido agregado a la lista',
                                position: 'bottom-left',
                                loaderBg: '#696969',
                                icon: 'success',
                                hideAfter: 3000,
                                stack: 20
                            });
                            // }
                            $("#btn-confirmar").removeAttr('disabled');
                            $("#buscar_producto").val('');

                        }
                    }
                });
            } else if (data == 2) {
                var html_confirm = '<div>Estas intentando agregar productos a una orden, que ya a sido facturada o cancelada anteriormente.</div>\
            <br>\
            <div><a href="'+ $("#url").val() + 'venta" class="btn btn-success">Continuar <i class="fas fa-arrow-alt-circle-right"></i></a>';

                Swal.fire({
                    title: 'Esta orden ya ha sido LIBERADA!',
                    html: html_confirm,
                    icon: 'error',
                    allowOutsideClick: false,
                    allowEscapeKey: false,
                    showCancelButton: false,
                    showConfirmButton: false,
                    closeOnConfirm: false,
                    closeOnCancel: false
                });
            }
        });
};

$("#btn-confirmar").on("click", function () {
    $("#btn-confirmar").attr('disabled', 'true');
    if (pedido.detalle.items.length == 0) {
        Swal.fire({
            title: 'Advertencia',
            html: 'Seleccione un producto,<br>para poder agregarlo a la lista de pedidos',
            icon: "warning",
            confirmButtonColor: "#34d16e",
            confirmButtonText: "Aceptar",
            allowOutsideClick: false,
            showCancelButton: false,
            showConfirmButton: true
        }, function () {
            return false
        });
    } else {

        pedido.detalle.cod_ped = $('#codped').val();
        pedido.detalle.codtipoped = $('#codtipoped').val();
        var codigo = 0;

        console.log(pedido.detalle);

        return;


        var jqxhr = $.ajax({
            type: 'POST',
            url: $('#url').val() + 'venta/RegistrarPedido',
            data: pedido.detalle
        })
            .done(function (data) {
                if (data == 1) {
                    defaultdata();
                    listarPedidos();
                    pedido.detalle.items.length = 0;
                    $('#nvo-ped-det').empty();
                    $("#nvo-ped").css('display', 'none');
                    $(".bc").css('display', 'none');
                } else if (data == 2) {
                    window.open($("#url").val() + 'venta', '_self');
                }
            })
            .fail(function () {
                console.log(errorThrown + ' ' + textStatus);
            })
            .always(function (data) { });


        if ($('#codimpcomandamesa').val() == 1) {

            if (($('#codtipoped').val() == 1) || $('#codtipoped').val() == 2) {

                var array = pedido.detalle.items;
                var contador = new Array();
                var nuevoarray = new Array();
                var i, y, z;

                for (i = 0; i < array.length; i++) {
                    contador.push(parseInt(array[i].area_id));
                }

                cont = [...new Set(contador)];

                var limpiarTexto = function (value) {
                    return String(value || '').replace(/\s+/g, ' ').trim();
                };
                var esPlaceholder = function (value) {
                    var txt = limpiarTexto(value).toLowerCase();
                    return (
                        txt === '' ||
                        txt === '-' ||
                        txt === 'mesa: -' ||
                        txt === 'mesa:-' ||
                        txt === 'mesa:' ||
                        txt === 'undefined' ||
                        txt === 'null'
                    );
                };
                var valorValido = function (value) {
                    return esPlaceholder(value) ? '' : limpiarTexto(value);
                };
                var extraerMesa = function (value) {
                    var txt = limpiarTexto(value);
                    var match = txt.match(/mesa\s*:\s*([^-][^|]*)/i);
                    if (!match) return '';
                    var mesa = limpiarTexto(match[1]).replace(/\s+-\s*$/, '');
                    return esPlaceholder(mesa) ? '' : mesa;
                };
                var extraerSalon = function (value) {
                    var txt = limpiarTexto(value);
                    if (!txt) return '';
                    var partes = txt.split(/\s*-\s*mesa\s*:/i);
                    return valorValido(partes[0] || '');
                };

                var pedidoTipoActual = parseInt($('#codtipoped').val(), 10) || 0;
                var pedidoNumeroUI = limpiarTexto($('.pedido-numero').text());
                var pedidoClienteUI = limpiarTexto($('.pedido-cliente').text());
                var salonNombre = valorValido($('#nombre_salon').val());
                var pedidoNumero = valorValido(pedidoNumeroUI);
                var pedidoCliente = valorValido(pedidoClienteUI);

                if (pedidoTipoActual === 1) {
                    var mesaDetectada = extraerMesa(pedidoClienteUI) || extraerMesa(pedidoNumeroUI);
                    var salonDetectado = salonNombre || extraerSalon(pedidoNumeroUI) || pedidoNumero;
                    pedidoNumero = salonDetectado || 'MESA';
                    pedidoCliente = mesaDetectada ? 'Mesa: ' + mesaDetectada : 'Mesa: S/N';
                }

                for (y = 0; y < cont.length; y++) {
                    for (z = 0; z < array.length; z++) {
                        if (array[z].area_id == cont[y]) {
                            nuevoarray.push(array[z]);
                            nombre_impresora = array[z].nombre_imp;
                        }
                    }

                    var nuevopedido = {
                        pedido_tipo: pedidoTipoActual,
                        pedido_numero: pedidoNumero,
                        pedido_cliente: pedidoCliente,
                        pedido_mozo: $('#nombre_mozo').val(),
                        dato_usuario: $('#dato_usuario').val(),
                        precio_comanda: $('#precio_comanda').val(),
                        correlativo_imp: correlativo_imp(),
                        nombre_imp: nombre_impresora,
                        nombre_pc: $('#pc_name').val(),
                        codigo_anulacion: 0,
                        items: nuevoarray
                    }

                    if ($('#print_com').val() == 1) {

                        window.open('http://' + $('#pc_ip').val() + '/imprimir/comanda.php?data=' + JSON.stringify(nuevopedido) + '', '_blank');

                    } else {

                        window.open('' + $("#url").val() + 'venta/impresion_comanda/?data=' + JSON.stringify(nuevopedido) + '', "_blank", "top=500,left=500,width=400,height=400");

                    }

                    var nuevoarray = new Array();
                }

            }

        }

        limpiar_datos_add();
        listarComandas();
        if ($('#rol_usr').val() == 5) {
            Swal.fire({
                title: 'Pedido AÑADIDO!',
                html: '¿Deseas continuar comandando?',
                icon: "warning",
                confirmButtonColor: "#34d16e",
                cancelButtonColor: "#fb3a3a",
                confirmButtonText: "Continuar!!",
                cancelButtonText: "Cerrar sesión!",
                allowOutsideClick: false,
                showCancelButton: true,
                showConfirmButton: true,
            }).then((result) => {
                if (result.value) {
                    window.open($("#url").val() + 'venta', '_self');
                } else {
                    window.open($("#url").val() + 'tablero/logoutmozo', '_self');
                }
            });
        }
    }
});

/* Desocupar mesa */
var anular_pedido = function (id_pedido) {

    var html_confirm = '<div>Se procederá a liberar este pedido</div><br>\
    Ingrese código de seguridad</div><br>\
    <form><input class="form-control text-center w-50" type="password" id="codigo_anular_venta_" autocomplete="off"/></form><br>\
    <div><span class="text-success" style="font-size: 17px;">¿Está Usted de Acuerdo?</span></div>';
    Swal.fire({
        title: 'Necesitamos de tu Confirmación',
        html: html_confirm,
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#34d16e',
        confirmButtonText: 'Si, Adelante!',
        cancelButtonText: "No!",
        showLoaderOnConfirm: true,
        preConfirm: function () {
            return new Promise(function (resolve) {
                if ($('#codigo_anular_venta').val() == $('#codigo_anular_venta_').val()) {
                    $.ajax({
                        url: $('#url').val() + 'venta/anular_pedido',
                        type: 'POST',
                        data: {
                            id_pedido: id_pedido,
                            tipo_pedido: $("#codtipoped").val()
                        },
                        dataType: 'json'
                    })
                        .done(function (response) {
                            window.open($("#url").val() + 'venta', '_self');
                        })
                        .fail(function () {
                            Swal.fire('Oops...', 'Problemas con la conexión a internet!', 'error');
                        });

                } else {
                    Swal.fire({
                        title: 'Proceso No Culminado',
                        text: 'El código ingresado es incorrecto',
                        icon: 'error',
                        confirmButtonColor: '#34d16e',
                        confirmButtonText: "Aceptar"
                    });
                }
            });
        },
        allowOutsideClick: false
    });
}

/* Imprimir Pre Cuenta*/
var impPreCuenta = function (id_pedido, id_mesa, estado, wiew) {
    $.ajax({
        url: $("#url").val() + 'venta/pedido_estado_update',
        type: "post",
        dataType: "json",
        data: {
            id_mesa: id_mesa,
            estado: estado
        },
        success: function (r) {
            return true;
        }
    }).done(function () {
        if (wiew) {
            printPdf($("#url").val() + 'venta/impresion_precuenta/' + id_pedido, true);
        } else {
            window.open($("#url").val() + 'venta/impresion_precuenta/' + id_pedido, '_blank');
        }
    });
}

/* confirmar dividir cuenta*/
var conf_dividir = function (id_pedido, dividir_cuenta) {

    Swal.fire({
        title: 'Confirmación',
        html: "¿Desea dividir cuenta?",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#34d16e',
        confirmButtonText: 'Si, Adelante!',
        cancelButtonText: "No!",
        showLoaderOnConfirm: true
    }).then((result) => {
        if (result.value) {
            facturar(id_pedido, dividir_cuenta)
        } else if (result.dismiss === Swal.DismissReason.cancel) {
            return false
        }
    });

}


var facturar = function (id_pedido, dividir_cuenta) {
    $("#btn-submit-facturar").removeAttr('disabled');
    $('#list-items-facturar').empty();
    $('#id_pedido').val(id_pedido);
    $('#dividir_cuenta').val(dividir_cuenta);
    var tipo_pedido = $('#codtipoped').val();
    var moneda = $("#moneda").val();
    $.ajax({
        dataType: 'JSON',
        type: 'POST',
        url: $('#url').val() + 'venta/ListarDetallePed',
        data: {
            id_pedido: id_pedido,
            tipo_pedido: tipo_pedido
        },
        success: function (data) {
            var sub_total = 0;
            var precio_imp_bol = 0;
            $.each(data.Detalle, function (i, item) {

                var totped = $("#total_pedido").val();
                var imp_bol = $("#imp_icbper").val();
                if (item.Producto.impuesto_icbper == "1") {
                    precio_imp_bol = parseFloat(item.cantidad * imp_bol) + parseFloat(precio_imp_bol);
                } else {
                    precio_imp_bol = parseFloat(precio_imp_bol);
                }
                var calc = (item.cantidad * item.precio).toFixed(2);
                sub_total = (parseFloat(item.cantidad * item.precio)) + (parseFloat(sub_total));

                if (1 == dividir_cuenta && item.cantidad > 0) {
                    $(".icbper").text(formatNumber(imp_bol));
                    $(".totalPedido").val(totped);
                    $(".totalPedido").text(formatNumber(totped));
                    $(".subtotal").text(formatNumber(totped));
                    $("#total_venta").val(totped);
                    $('.btn-cancel-facturar-1').show();
                    $('.btn-cancel-facturar-2').hide();
                    calculo_total();
                    calculo_efectivo();
                    $('#list-items-facturar')
                        .append(
                            $('<tr class="comment-list"/>')
                                .append(
                                    $('<td width="20%"/>')
                                        .html('<input type="hidden" name="cantProd[]" value="' + item.cantidad + '"/>'
                                            + '<input type="hidden" name="precProd[]" value="' + item.precio + '"/>'
                                            + item.cantidad)
                                )
                                .append(
                                    $('<td width="60%"/>')
                                        .html('<input type="hidden" name="idProd[]" value="' + item.id_pres + '"/>'
                                            + item.Producto.pro_nom + ' <span class="label label-warning text-uppercase">' + item.Producto.pro_pre + '</span>')
                                )
                                .append(
                                    $('<td width="20%" class="text-right"/>')
                                        .html(moneda + ' ' + formatNumber(calc))
                                )
                        );
                } else if (2 == dividir_cuenta && item.cantidad > 0) {
                    limpiar_datos_add();
                    $('.display-pago-rapido-efectivo').show();
                    $(".totalPedido").val('0.00');
                    $(".totalPedido").text('0.00');
                    $("#total_venta").val('0.00');
                    $(".subtotal").text('0.00');
                    $('.btn-cancel-facturar-1').hide();
                    $('.btn-cancel-facturar-2').show();
                    calculo_total();
                    $(".opc-01").text('0.00');
                    $('#list-items-facturar')
                        .append(
                            $('<tr class="comment-list priceU" data-price="' + item.precio + '" style="cursor: pointer;"/>')
                                .append(
                                    $('<td width="20%"/>')
                                        .html('<input type="hidden" class="cantidad" name="cantProd[]" value="0"/>'
                                            + '<input type="hidden" name="precProd[]" value="' + item.precio + '"/>'
                                            + '<input type="hidden" value="' + item.cantidad + '" class="cantOrg"/>'
                                            + '<input type="hidden" value="1" class="cantTemp"/>'
                                            + '<b></b> ' + item.cantidad)
                                )
                                .append(
                                    $('<td width="60%"/>')
                                        .html('<input type="hidden" name="idProd[]" value="' + item.id_pres + '"/>'
                                            + item.Producto.pro_nom + ' <p class="label label-warning text-uppercase">' + item.Producto.pro_pre + '</p>')
                                )
                                .append(
                                    $('<td width="20%" class="text-right"/>')
                                        .html(moneda + ' <span>0.00</span>')
                                )
                        );
                }
            });
            $(".subtotal").text(formatNumber(sub_total));
            $(".icbper").text(formatNumber(precio_imp_bol));
            $("#monto_icbper").val(parseFloat(precio_imp_bol));

            $(".priceU").on("click", function () {
                var totalTemp = $(this).find(".cantTemp").val();
                $(this).css('cssText', 'background: #e9f1f8 !important; color: #2f4f74 !important; cursor: pointer;');
                $(this).find(".cantTemp").val(parseInt(totalTemp) + 1);
                var totalCant = $(this).find(".cantOrg").val();
                var cantB = parseInt(totalCant) - 1;
                $(this).find("b").text(totalTemp + ' /');
                var valorItem = $(this).find("span").text();
                var valorPrice = $(this).attr("data-price");
                var totalItem = (parseFloat(valorItem) + parseFloat(valorPrice)).toFixed(2);
                $(this).find("span").text(totalItem);
                var totalGneral = 0;
                $(this).find(".cantidad").val(totalTemp);
                if (parseInt(totalCant) < parseInt(totalTemp)) {
                    $(this).find(".cantTemp").val(1);
                    $(this).css('cssText', 'background: transparent !important; cursor:pointer;');
                    $(this).find("span").text('0.00');
                    $(this).find("b").text('');
                    $(this).find(".cantidad").val(0);
                }
                $(".priceU").each(function () {
                    totalGneral += parseFloat($(this).find("span").text());
                });
                $(".totalPedido").val((totalGneral).toFixed(2));
                $(".totalPedido").text(formatNumber(totalGneral));
                $('.totalPedidoMenosTarjeta').text(formatNumber(totalGneral));
                $("#total_venta").val(totalGneral);
                $(".subtotal").text(formatNumber(totalGneral));
                $("#btn-submit-facturar").removeAttr('disabled');
                $("#btn-submit-facturar").removeClass('disabled');
                limpiar_datos_add();
                $("#pago_efe").val((totalGneral).toFixed(2));
                $(".opc-01").text((totalGneral).toFixed(2));
            });
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(errorThrown + ' ' + textStatus);
        }
    });
    $("#modal-facturar").modal('show');
}

/* NOTA DE PRODUCTO */

var comentar = function (cod_add, cod_pres_add, nom_prod, nom_pres) {
    $('.card-title-nota').html(nom_prod + ' <span class="label label-warning text-uppercase">' + nom_pres + '</span>');
    $('.nota-list').css('display', 'block');
    $('.nota-new').css('display', 'none');
    $('#modal-nota').modal('show');
    $('#cod_pres_add').val(cod_pres_add);
    $('#cod_add').val(cod_add);
    $('#notapadre').attr('class', 'nota' + cod_add);
    $('.checkk').prop('checked', false);
    note_list(cod_add, cod_pres_add);
};

$('.demo-checkbox').on('change', 'input.checkk', function (event) {
    var arr = $('[name="checks[]"]:checked').map(function () {
        return this.value.trim();
    }).get();
    var str = arr.join(', ');
    var clase = $('#notapadre').attr("class");
    $('.' + clase).val(str);
    $('.' + clase).change();
    $('.txt' + clase).text(str);
    $('.txt' + clase).change();
});

var nota_manual_text = function () {
    if ($('#nota_ind').val() == 1) {
        var clase = $('#notapadre').attr("class");
        var notas_manual = $('.nota_manual_text').val();
        var notassss = $('.' + clase).val();
        if (notas_manual != '') {
            var separadorNota = ', '
        } else {
            var separadorNota = ''
        }
        $('.' + clase).val(notassss + '' + separadorNota + '' + notas_manual);
        $('.' + clase).change();
        $('.txt' + clase).text(notassss + '' + separadorNota + '' + notas_manual);
        $('.txt' + clase).change();
    }
}

var note_list = function (cod_add, cod_pres_add) {
    $('.demo-checkbox').empty();
    $.ajax({
        url: $('#url').val() + 'venta/tags_list',
        type: "post",
        dataType: "json",
        data: {
            id_pres: cod_pres_add
        },
        success: function (data) {
            if (data['notas'] == null || data['notas'] == '') {
                $('.demo-checkbox').removeClass('row m-t-40');
                $('.demo-checkbox').html('<center><i class="mdi mdi-alert-circle display-4"></i><br>No tiene elementos.<br>Agregue una nota <code style="cursor: pointer;" class="btn btn-xs btn-primary">AGREGAR</code><br></center>');
                $('.nota-list').css('display', 'block');
                $('.notlist').css('display', 'none');
            } else {
                if (data['notas'].length > 0) {
                    var arreglo1 = data['notas'].split(",");
                    $('.demo-checkbox').addClass('row m-t-40');
                    $('.nota-new').css('display', 'none');
                    $('.nota-list').css('display', 'block');
                    $('.notlist').css('display', 'block');
                    $.each(arreglo1, function (ind, elem) {
                        $('.demo-checkbox')
                            .append(
                                $('<div class="col-6 m-b-10"/>')
                                    .html('<input type="checkbox" class="checkk filled-in chk-col-light-green" id="' + elem.trim() + '" name="checks[]" value="' + elem + '">'
                                        + '<label for="' + elem.trim() + '" class="m-b-0">' + elem.trim() + '</label>')
                            )
                    });
                    $('.notlist').html('En caso de no estar en lista agregue una nota <code class="btn-nueva-nota" style="cursor: pointer;">\'NUEVA\'</code>');
                } else {
                    $('.demo-checkbox').removeClass('row m-t-40');
                    $('.demo-checkbox').html('<center><i class="mdi mdi-alert-circle display-4"></i><br>No tiene elementos.<br>Agregue una nota <code style="cursor: pointer;">\'NUEVA\'</code><br></center>');
                    $('.nota-list').css('display', 'block');
                    $('.notlist').css('display', 'none');
                }
            }

            if ($('#nota_ind').val() == 1) {
                $('.nota_manual').html('<input type="text" class="nota_manual_text form-control border border-dark rounded" name="nota_manual_text" value="" placeholder="  Escribir nota manual..." />');
            }
        }
    }).done(function () {
        var vector = $('.nota' + cod_add).val();
        var arreglo2 = vector.split(",");
        $.each(arreglo2, function (ind, ele) {
            var element = document.getElementById(ele);
            $(element).prop('checked', true);
        });
    });
}

var tags_list = function (cod_pres_add) {
    $('#notas').tagsinput('removeAll');
    $.ajax({
        url: $('#url').val() + 'venta/tags_list',
        type: "post",
        dataType: "json",
        data: {
            id_pres: cod_pres_add
        },
        success: function (data) {
            $('#cod_prod_add').val(data['id_prod']);
            $('#notas').tagsinput('add', data['notas']);
        }
    });
}

$('.demo-checkbox,.notlist').on('click', 'code', function (event) {
    $('.nota-list').css('display', 'none');
    $('.notlist').css('display', 'none');
    $('.nota-new').css('display', 'block');
    tags_list($('#cod_pres_add').val());
});

$(".btn-guardar-nota").click(function () {
    $.ajax({
        url: $('#url').val() + 'venta/tags_crud',
        type: "post",
        dataType: "json",
        data: {
            id_prod: $("#cod_prod_add").val(),
            notas: $("#notas").val().toUpperCase()
        },
        success: function (e) {
            $('.nota-list').css('display', 'block');
            $('.notlist').css('display', 'block');
            $('.nota-new').css('display', 'none');
            note_list($("#cod_add").val(), $("#cod_pres_add").val());
        }
    });
});

$(".btn-cancelar-nota").click(function () {
    $('.nota-list').css('display', 'block');
    $('.nota-new').css('display', 'none');
    note_list($("#cod_add").val(), $("#cod_pres_add").val());
});

$(".btn-acep-nota").click(function () {
    nota_manual_text();
    $("#modal-nota").modal('hide');
});

/* NOTA DE PRODUCTO */

/* MODAL FACTURA */

// Trigger for Delivery Commission (Restored/Added)
$('.display-comision-delivery').on('click', function () {
    Swal.fire({
        title: 'Comisión Delivery',
        text: 'Ingrese el monto del delivery:',
        input: 'text',
        inputValue: $("#comision_delivery").val(),
        showCancelButton: true,
        confirmButtonColor: '#34d16e',
        confirmButtonText: 'Aceptar',
        cancelButtonText: 'Cancelar',
        inputValidator: (value) => {
            if (!value || isNaN(value)) {
                return 'Por favor ingrese un número válido'
            }
        }
    }).then((result) => {
        if (result.value) {
            var val = parseFloat(result.value).toFixed(2);
            $("#comision_delivery").val(val);
            $(".comision_delivery").text(val);
            calculo_total();
            calculo_efectivo();
        }
    });
});

var calculo_total = function () {
    if ($("#descuento_monto_hidden").val() == '') { $("#descuento_monto_hidden").val('0.00'); }
    if ($("#comision_delivery").val() == '') { $("#comision_delivery").val('0.00'); }

    // Robust parsing
    var parseVal = function (sel) {
        var v = $(sel).val();
        if (!v) return 0.00;
        return parseFloat(v.replace(/,/g, "")) || 0.00;
    };

    var subtotal = parseVal("#total_venta");
    // Fallback: Read from display text if hidden input is 0 or empty (common issue)
    if (subtotal === 0) {
        var text = $(".subtotal").text().replace(/[^\d.-]/g, ''); // keep numbers, dots, minus
        subtotal = parseFloat(text) || 0.00;
        // Update hidden input for consistency
        $("#total_venta").val(subtotal.toFixed(2));
    }

    var delivery = parseVal("#comision_delivery");
    var tarjeta = parseVal(".comision_tarjeta");
    var descuento = parseVal("#descuento_monto_hidden");

    var calculo = subtotal + delivery + tarjeta - descuento;

    $(".totalPedido").val(formatNumber(calculo));
    $(".totalPedido").text(formatNumber(calculo));
    $('.totalPedidoMenosTarjeta').text(formatNumber(calculo));
    //console.log('calculo_total: '+calculo);
}

var calculo_efectivo = function () {
    var cal1 = parseFloat($(".totalPedido").val().replace(',', "")) - parseFloat($("#pago_tar").val().replace(/,/g, "")) - parseFloat($("#pago_yape").val().replace(/,/g, "")) - parseFloat($("#pago_plin").val().replace(/,/g, "")) - parseFloat($("#pago_tran").val().replace(/,/g, "")) - parseFloat($(".comision_tarjeta").val().replace(/,/g, ""));
    var cal2 = parseFloat($('#pago_efe').val().replace(/,/g, "")) - parseFloat(cal1);

    if (isNaN(cal2)) {
        cal2 = 0;
    }

    $("#vuelto").text(formatNumber(cal2));
    //console.log('vuelto: '+cal2);
}

/* Pago efectivo */
$('#pago_efe,#pago_tar').on('keyup', function () {
    calculo_efectivo();
});

/* Pago tarjeta */
$('#pago_tar').on('keyup', function () {
    calculo_total();
    $('.totalPedidoMenosTarjeta').text(formatNumber($('.totalPedido').val() - $('#pago_tar').val()));
});

/* Pago yape */
$('#pago_yape').on('keyup', function () {
    calculo_total();
    $('.totalPedidoMenosTarjeta').text(formatNumber($('.totalPedido').val() - $('#pago_tar').val() - $('#pago_yape').val() - $('#pago_plin').val() - $('#pago_tran').val()));
    calculo_efectivo();
});
/* Pago plin */
$('#pago_plin').on('keyup', function () {
    calculo_total();
    $('.totalPedidoMenosTarjeta').text(formatNumber($('.totalPedido').val() - $('#pago_tar').val() - $('#pago_yape').val() - $('#pago_plin').val() - $('#pago_tran').val()));
    calculo_efectivo();
});
/* Pago transferencia */
$('#pago_tran').on('keyup', function () {
    calculo_total();
    $('.totalPedidoMenosTarjeta').text(formatNumber($('.totalPedido').val() - $('#pago_tar').val() - $('#pago_yape').val() - $('#pago_plin').val() - $('#pago_tran').val()));
    calculo_efectivo();
});

var descuento_factura = function () {
    var html_confirm = '<div class="text-left"><form class="dec">\
    <div class="floating-labels">\
        <div class="form-group m-t-40 m-b-20">\
            <select class="form-control" id="filtro_descuento_tipo" data-style="form-control btn-default" title="Seleccionar" autocomplete="off" required="required">\
                <option value="1">Cortes&iacute;a</option>\
                <option value="2">Descuento</option>\
                <option value="3">Credito personal</option>\
            </select>\
            <span class="bar"></span>\
            <label for="filtro_descuento_tipo">Tipo</label>\
        </div>\
    </div>\
    <div class="floating-labels display-descuento-personal" style="display: block;">\
        <div class="form-group m-t-40 m-b-20">\
            <select class="form-control" id="filtro_descuento_personal" data-style="form-control btn-default" title="Seleccionar" autocomplete="off" required="required">\
            </select>\
            <span class="bar"></span>\
            <label for="filtro_descuento_personal">Personal</label>\
        </div>\
    </div>\
    <div class="display-descuento-monto" style="display: none;">\
        <label>Ingrese monto</label>\
        <div class="row">\
            <div class="col-sm-6"><div class="input-group"><input class="form-control text-center" type="text" id="filtro_descuento_monto_porcentaje" autocomplete="off"/><div class="input-group-append"><span class="input-group-text">%</span></div></div></div>\
            <div class="col-sm-6"><div class="input-group"><div class="input-group-prepend"><span class="input-group-text">S/</span></div><input class="form-control text-center" type="text" id="filtro_descuento_monto" autocomplete="off"/></div></div>\
        </div>\
    </div>\
    <div class="display-descuento-motivo" style="display: block;">\
        <label class="m-t-10">Motivo</label>\
        <textarea id="filtro_descuento_motivo" class="form-control" rows="2" required="required"></textarea>\
        </form></div><br>\
    </div>\
    <div><span class="text-success" style="font-size: 17px;">¿Está Usted de Acuerdo?</span></div>\
    ';
    Swal.fire({
        title: 'Cortesía / descuento',
        html: html_confirm,
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#34d16e',
        confirmButtonText: 'Si, Adelante!',
        cancelButtonText: "No!",
        showLoaderOnConfirm: true
    }).then((result) => {
        if (result.value) {
            limpiar_pagos_b();
            $('.descuento').val($("#filtro_descuento_monto").val());
            $('.descuento').text(formatNumber($("#filtro_descuento_monto").val()));
            $('#descuento_tipo_hidden').val($("#filtro_descuento_tipo").val());
            $('#descuento_motivo_hidden').val($("#filtro_descuento_motivo").val());
            $('#descuento_personal_hidden').val($("#filtro_descuento_personal").val());
            calculo_total();
            $('#pago_efe').val($('.totalPedido').val());
            $('.opc-01').text(formatNumber($('.totalPedido').val()));

            if ($('#filtro_descuento_tipo').val() == 1 || $('#filtro_descuento_tipo').val() == 3) {
                if ($('#filtro_descuento_tipo').val() == 1) {
                    $('#descuento_monto_hidden').val('0.00');
                    $('.descuento').text('0.00');
                    $('.text-tipo-descuento').html('<span class="label label-primary">CORTESIA</span>');
                } else {
                    $('.text-tipo-descuento').html('<span class="label label-info">CREDITO PERSONAL</span>');
                }
                $('#pago_efe').val('0.00');
                $('.totalPedido').text('0.00');
                $('.opc-01').text('0.00');
                $('.totalPedidoMenosTarjeta').text('0.00');
            } else {
                $('.text-tipo-descuento').html('');
            }

        } else if (result.dismiss === Swal.DismissReason.cancel) {
            //$("#modal-facturar").modal('show');
        }
    });
    $('.swal2-actions').prepend('<button class="btn btn-warning restDataDescuento" data-original-title="Restaurar datos" data-toggle="tooltip" data-placement="top"><i class="fas fa-undo-alt"></i></button>&nbsp;');
    $('#filtro_descuento_tipo').selectpicker('refresh');
    $('#filtro_descuento_tipo').selectpicker('val', $('#descuento_tipo_hidden').val());
    $("#filtro_descuento_monto").val($("#descuento_monto_hidden").val());
    $("#filtro_descuento_motivo").val($("#descuento_motivo_hidden").val());

    if ($('#descuento_tipo_hidden').val() == 1) {
        $('.display-descuento-monto').hide();
        $('.display-descuento-personal').hide();
    } else if ($('#descuento_tipo_hidden').val() == 2) {
        $('.display-descuento-monto').show();
        $('.display-descuento-personal').hide();
    } else if ($('#descuento_tipo_hidden').val() == 3) {
        $('.display-descuento-monto').show();
        $('.display-descuento-personal').show();
    } else {
        $('.display-descuento-monto').hide();
        $('.display-descuento-personal').hide();
    }
    $('.restDataDescuento').tooltip();
    $(".dec input").keypress(function (event) {
        var valueKey = String.fromCharCode(event.which);
        var keycode = event.which;
        if (valueKey.search('[0-9.]') != 0 && keycode != 8) {
            return false;
        }
    });

    var personal = $("#filtro_descuento_personal");
    $.ajax({
        url: $('#url').val() + 'venta/Personal',
        type: 'POST',
        dataType: 'json',
        success: function (r) {
            personal.find('option').remove();
            $(r).each(function (i, v) { // indice, valor
                personal.append('<option value="' + v.id_usu + '">' + v.nombres + ' ' + v.ape_paterno + ' ' + v.ape_materno + '</option>');
            });
            $('#filtro_descuento_personal').selectpicker('refresh');
            $('#filtro_descuento_personal').selectpicker('show');
            $('#filtro_descuento_personal').selectpicker('val', $('#descuento_personal_hidden').val());
        }
    });

    $('#filtro_descuento_tipo').change(function () {

        if ($('#filtro_descuento_tipo').val() == 1) {
            $('.display-descuento-monto').hide();
            $('.display-descuento-personal').hide();
        } else if ($('#filtro_descuento_tipo').val() == 2) {
            $('.display-descuento-monto').show();
            $('.display-descuento-personal').hide();
        } else if ($('#filtro_descuento_tipo').val() == 3) {
            $('.display-descuento-monto').show();
            $('.display-descuento-personal').show();
        } else {
            $('.display-descuento-monto').hide();
            $('.display-descuento-personal').hide();
        }

    });

    $('.restDataDescuento').click(function () {
        $('.restDataDescuento').tooltip('hide');
        $("#descuento_monto_hidden").val('0.00');
        $(".descuento").text('0.00');
        calculo_total();
        $('#pago_efe').val($('.totalPedido').val());
        $('.opc-01').text(formatNumber($('.totalPedido').val()));
        $('#descuento_tipo_hidden').val('');
        $('#descuento_personal_hidden').val('');
        $('#descuento_motivo_hidden').val('');
        $('.text-tipo-descuento').html('');
        swal.close();
    });

    //Calculo del porcentaje desde porcentaje
    $('#filtro_descuento_monto_porcentaje').on('keyup', function () {
        var sub_total = $("#total_venta").val();
        var porcentaje = ($("#filtro_descuento_monto_porcentaje").val() / 100).toFixed(2);
        var total = (sub_total * porcentaje).toFixed(2);
        //var total = (sub_total - cal).toFixed(2);
        $("#filtro_descuento_monto").val(total);
    });
}

var clickSendWhatsapp = function (id) {
    var mensajewa = $("#mesaje_waz").val();
    var num_cliente = $("#numero_cliente").val();
    var Urls = $("#url").val() + 'comprobante/ticket/' + btoa(id);
    if ($("#numero_cliente").val().length != 11) {
        $.toast({
            text: 'Error: Ingrese un número válido',
            position: 'bottom-center',
            loaderBg: '#696969',
            icon: 'error',
            hideAfter: 3000,
            stack: 20
        });
    } else {

        if ($('#api_wsp').val() == 1) {
            $.ajax({
                url: $('#url').val() + 'whatsapp/send_wsp_invoice',
                type: 'POST',
                data: {
                    num_cliente: num_cliente,
                    id_venta: id
                },
                dataType: 'json'
            })
                .done(function (response) {
                    if (response.status == true) {
                        $.toast({
                            text: 'Whatsapp enviado correctamente <br><br> <strong>Respuesta server: </strong>' + response.msg + '',
                            position: 'bottom-center',
                            loaderBg: '#696969',
                            icon: 'success',
                            hideAfter: 3000,
                            stack: 20
                        });

                    } else {
                        $.toast({
                            text: '' + response.msg + '<br>' + response.errors ? response.errors : '' + '',
                            position: 'bottom-center',
                            loaderBg: '#696969',
                            icon: 'error',
                            hideAfter: 3000,
                            stack: 20
                        });
                    }
                })
                .fail(function (error) {
                    $.toast({
                        text: 'Error: No se pudo enviar',
                        position: 'bottom-center',
                        loaderBg: '#696969',
                        icon: 'error',
                        hideAfter: 3000,
                        stack: 20
                    });
                });
        } else {
            var meg_com = mensajewa + ' ' + Urls;
            window.open('https://wa.me/' + num_cliente + '?text=' + meg_com + '', '_blank');
        }
    }
};

var clickSendEmail = function (id_venta, documento) {

    $('#button-SendEmail').prop('disabled', true);
    $('#msj-SendEmail').css("display", "block");

    $.ajax({
        url: $('#url').val() + 'facturacion/send_mailer',
        type: 'POST',
        data: {
            correo_cliente: $('#correo_cliente').val(),
            documento_cliente: documento,
            id_venta: id_venta
        },
        dataType: 'json'
    })
        .done(function (response) {
            if (response == '1') {

                Swal.fire({
                    title: 'Proceso Terminado',
                    text: 'Correo enviado correctamente',
                    footer: '<div><a class="btn btn-green" href="' + $("#url").val() + 'venta' + '" target="_self">Continuar <i class="fas fa-arrow-right"></i></a></div>',
                    icon: 'success',
                    allowOutsideClick: false,
                    allowEscapeKey: false,
                    showCancelButton: false,
                    showConfirmButton: false,
                    closeOnConfirm: false,
                    closeOnCancel: false,
                    // backdrop: '#34d16e'
                });

            } else {
                Swal.fire({
                    title: 'Proceso No Culminado',
                    text: 'El correo no existe',
                    icon: 'error',
                    confirmButtonColor: "#34d16e",
                    confirmButtonText: "OK"
                });
            }
        })
        .fail(function () {
            Swal.fire('Oops...', 'Problemas con la conexión a internet!', 'error');
        });
}

var printPdf = function (url, condicional) {

    var userAgent = navigator.userAgent || navigator.vendor || window.opera;

    if ((/android/i.test(userAgent)) || (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream)) {
        if (condicional) {
            var Urlpdf = url;
        } else {
            var Urlpdf = $("#url").val() + 'informe/venta_all_imp/' + url;
        }
        window.open(Urlpdf, '_blank');
    } else {
        if (condicional) {
            var Urlpdf = url;
        } else {
            var Urlpdf = $("#url").val() + 'informe/venta_all_imp/' + url;
        }

        var iframe = document.createElement('iframe');
        iframe.className = 'pdfIframe'
        document.body.appendChild(iframe);
        iframe.style.display = 'none';
        iframe.onload = function () {
            setTimeout(function () {
                iframe.focus();
                iframe.contentWindow.print();
                URL.revokeObjectURL(Urlpdf)
            }, 0);
        };
        iframe.src = Urlpdf;
        URL.revokeObjectURL(Urlpdf)
    }

};
var comision_delivery_factura = function () {
    var html_confirm = '<div>Se procederá a realizar una comisión por el servicio de delivery<br><br>\
    Ingrese monto</div>\
    <form class="dec"><input class="form-control text-center w-50" type="text" id="filtro_comision_delivery" autocomplete="off" value=""/></form><br>\
    <div><span class="text-success" style="font-size: 17px;">¿Está Usted de Acuerdo?</span></div>';
    Swal.fire({
        title: 'Necesitamos de tu Confirmación',
        html: html_confirm,
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#34d16e',
        confirmButtonText: 'Si, Adelante!',
        cancelButtonText: "No!",
        showLoaderOnConfirm: true
    }).then((result) => {
        if (result.value) {
            limpiar_pagos_b();
            $('.comision_delivery').val($("#filtro_comision_delivery").val());
            $('.comision_delivery').text(formatNumber($("#filtro_comision_delivery").val()));
            calculo_total();
            $('#pago_efe').val($('.totalPedido').val());
            $('.opc-01').text(formatNumber($('.totalPedido').val()));
        } else if (result.dismiss === Swal.DismissReason.cancel) {
            //$("#modal-facturar").modal('show');
        }
    });
    $(".dec input").keypress(function (event) {
        var valueKey = String.fromCharCode(event.which);
        var keycode = event.which;
        if (valueKey.search('[0-9.]') != 0 && keycode != 8) {
            return false;
        }
    });
}

$('input[name="tipo_doc"]').on('change', function () {
    value = $('input:radio[name="tipo_doc"]:checked').val();
    $('#cliente_tipo').val(value);
    $('#tipo_cliente').val(value);
    $('#id_cliente').val('');
    // console.log(value)
    if (value == 3 || value == 1) {
        $('#cliente_id').val(1);
        $('#buscar_cliente').val('DNI: 00000000 | PUBLICO EN GENERAL');
    } else {
        $('#cliente_id').val('');
        $('#buscar_cliente').val('');
    }
    $('.opcion-cliente').html('<a class="input-group-prepend" href="javascript:void(0)"'
        + 'onclick="nuevoCliente();" data-original-title="Registrar nuevo cliente" data-toggle="tooltip"'
        + 'data-placement="top">'
        + '<span class="input-group-text bg-header">'
        + '<small><i class="fas fa-user-plus"></i></small>'
        + '</span>'
        + '</a>');
});

$('#tipo_pago').change(function () {

    var value = parseInt($(this).val(), 10) || 1;

    console.log("Tipo Pago Change: " + value);

    // Helpers to toggle visibility
    var showCash = function () {
        $('.display-pago-efectivo').css('display', 'flex');
        $('.display-pago-rapido-efectivo').css('display', 'block');
    };
    var hideCash = function () {
        $('.display-pago-efectivo').css('display', 'none');
        $('.display-pago-rapido-efectivo').css('display', 'none');
    };
    var hideAllExtras = function () {
        // NUCLEAR OPTION: Use setProperty with 'important' to override CSS media queries
        $('.display-pago-tarjeta').each(function () {
            this.style.setProperty('display', 'none', 'important');
        });
        $('.display-codigo-operacion').each(function () {
            this.style.setProperty('display', 'none', 'important');
        });
    };
    var showOnlyPaymentInput = function (selector) {
        hideAllExtras();
        $(selector).closest('.input-group').each(function () {
            this.style.setProperty('display', 'flex', 'important');
        });
    };

    limpiar_pagos_a();
    $('.mensaje-pago').css('display', 'none');

    if (value == 1) { // EFECTIVO
        showCash();
        hideAllExtras();
        $("#pago_efe").val(formatNumber($('.totalPedido').val()));
        $('.opc-01').text(formatNumber($('.totalPedido').val()));

    } else if (value == 3) { // MIXTO
        hideAllExtras(); // Forcefully hide everything first (adds !important)

        showCash();

        // Forcefully show Tarjeta inputs by overriding the !important hidden style
        $('.display-pago-tarjeta').each(function () {
            this.style.setProperty('display', 'flex', 'important');
        });

        // Ensure this stays hidden (though hideAllExtras already did it)
        $('.display-codigo-operacion').each(function () {
            this.style.setProperty('display', 'none', 'important');
        });

    } else if (value == 4) { // CULQI
        hideCash();
        $('.mensaje-pago').css('display', 'block');
        hideAllExtras();
        $('.display-codigo-operacion').css('display', 'flex');

    } else if (value == 2 || value >= 5) { // TARJETA / DIGITALES
        hideCash();
        if (value === 5) {
            showOnlyPaymentInput('#pago_yape');
        } else if (value === 7) {
            showOnlyPaymentInput('#pago_tran');
        } else if (value === 8) {
            showOnlyPaymentInput('#pago_plin');
        } else {
            showOnlyPaymentInput('#pago_tar');
        }
        $('.display-codigo-operacion').css('display', 'flex');
    }
    calculo_total();
});

// CRITICAL: Trigger the change event on page load to set initial visibility
$(document).ready(function () {
    $('#tipo_pago').trigger('change');
});


var limpiar_pagos_a = function () {
    $('#pago_efe').val('0.00');
    $('#pago_tar').val('0.00');
    $('#pago_yape').val('0.00');
    $('#pago_plin').val('0.00');
    $('#pago_tran').val('0.00');
    $('#vuelto').text('0.00');
}

var limpiar_pagos_b = function () {
    limpiar_pagos_a();
    $('.display-pago-efectivo').show();
    $('.display-pago-default').show();

    $('[name="pago_tar"]').closest('.input-group').hide();
    $('[name="pago_yape"]').closest('.input-group').hide();
    $('[name="pago_plin"]').closest('.input-group').hide();
    $('[name="pago_tran"]').closest('.input-group').hide();

    $('#tipo_pago').selectpicker('val', 1);
    $('.display-pago-rapido-efectivo').show();
    $('.mensaje-pago').hide();
    $('.display-codigo-operacion').hide();
}

var limpiar_pagos_a = function () {
    $('#pago_efe').val('0.00');
    $('#pago_tar').val('0.00');
    $('#pago_yape').val('0.00');
    $('#pago_plin').val('0.00');
    $('#pago_tran').val('0.00');
    $('#vuelto').text('0.00');
}

var limpiar_pagos_b = function () {
    $('#pago_efe').val('0.00');
    $('#pago_tar').val('0.00');
    $('#pago_yape').val('0.00');
    $('#pago_plin').val('0.00');
    $('#pago_tran').val('0.00');
    $('#vuelto').text('0.00');
    $('.display-pago-efectivo').show();
    $('.display-pago-default').show();
    $('.display-pago-tarjeta').hide();
    $('#tipo_pago').selectpicker('val', 1);
    $('.display-pago-rapido-efectivo').show();
    $('.mensaje-pago').hide();
    $('.display-codigo-operacion').hide();
}

var limpiar_datos_add = function () {
    $('#pago_efe').val('0.00');
    $('#pago_tar').val('0.00');
    $('#pago_yape').val('0.00');
    $('#pago_plin').val('0.00');
    $('#pago_tran').val('0.00');
    $('#vuelto').text('0.00');
    $('.descuento').val('0.00');
    $('.descuento').text('0.00');
    $('.comision_delivery').val('0.00');
    $('.comision_delivery').text('0.00');
    $('.comision_tarjeta').val('0.00');
    $('.comision_tarjeta').text('0.00');
    $('.display-pago-efectivo').show();
    $('.display-pago-default').show();
    $('.display-pago-tarjeta').hide();
    $('#descuento_tipo_hidden').val('');
    $('#descuento_monto_hidden').val('0.00');
    $('#descuento_motivo_hidden').val('');
    $('#tipo_pago').selectpicker('val', 1);
    $('.mensaje-pago').hide();
    $('.display-codigo-operacion').hide();
    $('.display-pago-rapido-efectivo').show();
}
$('.btn-cancel-facturar-2').on('click', function () {
    limpiar_datos_add();
    calculo_total();
    $("#pago_efe").val(formatNumber($('#total_pedido').val()));
    $(".opc-01").text(formatNumber($('#total_pedido').val()));
})

$(".ent input").keypress(function (event) {
    var valueKey = String.fromCharCode(event.which);
    var keycode = event.which;
    if (valueKey.search('[0-9]') != 0 && keycode != 8) {
        return false;
    }
});

$(".dec input").keypress(function (event) {
    var valueKey = String.fromCharCode(event.which);
    var keycode = event.which;
    if (valueKey.search('[0-9.]') != 0 && keycode != 8) {
        return false;
    }
});

var opcion_pago_efectivo = function (monto) {
    $("#pago_efe").val(formatNumber(monto));
    calculo_efectivo();
}

$(".opc-01").click(function () {
    $("#pago_efe").val($('.totalPedido').val());
    calculo_efectivo();
});

var stock_pollo = function () {
    $('#lista_productos').empty();
    $("#modal-stock-pollo").modal('show');
    $.ajax({
        type: "POST",
        url: $('#url').val() + "tablero/tablero_datos",
        data: {
            id_apc: $('#apcid').val()
        },
        dataType: "json",
        success: function (item) {
            $('.pollos-stock').text(item['Pollostock'].total);
            var pollos_vendidos = 0;
            $.each(item['Pollosvendidos'], function (i, dato) {
                pollos_vendidos += parseFloat(dato.cantidad) * parseFloat(dato.cant);
            });
            $('.pollos-vendidos').text(parseFloat(pollos_vendidos));

            if (item['Pollosvendidos'].length > 0) {
                var cont = 1;
                $.each(item['Pollosvendidos'], function (i, datu) {
                    var importePlatos = parseFloat(datu.cantidad) * parseFloat(datu.precio);
                    var porcentajePlatos = (parseFloat(importePlatos) * 100) / parseFloat(item['Ventas'].total);
                    $('#lista_productos')
                        .append(
                            $('<tr/>')
                                .append(
                                    $('<td/>')
                                        .html('<h6>' + datu.pro_nom + ' - ' + datu.pro_pre + '</h6><small class="text-muted">POLLO A LA BRASA</small>')
                                )
                                .append(
                                    $('<td class="text-right" />')
                                        .html(formatNumber(datu.cantidad))
                                )
                        )
                });

            } else {
                $('#lista_productos').html("<tr style='border-left: 2px solid #fff !important; background: #fff !important;'><td colspan='2'><div class='text-center'><h4 class='m-t-40' style='color: #d3d3d3;'><i class='mdi mdi-receipt display-3 m-t-40 m-b-10'></i><br>Realice una venta<br><small>No se encontraron datos</small></h4></div></td></tr>");
            }
        }
    });
}

$('.venta_por_consumo').on('click', function (event) {
    if ($(this).is(':checked')) {
        $('#venta_por_consumo').val('1');
        $('.lista-producto-facturar').hide();
        $('.lista-venta-por-consumo').show();
        $('#venta_por_consumo_concepto').focus();
        $('#venta_por_consumo_concepto').select();
    } else {
        $('#venta_por_consumo').val('0');
        $('.lista-producto-facturar').show();
        $('.lista-venta-por-consumo').hide();
    }
});

var listarComandas = function () {
    $('#list-comandas').empty();
    $.ajax({
        dataType: 'JSON',
        type: 'POST',
        url: $('#url').val() + 'venta/listarComandas',
        data: {
            id_pedido: $('#codped').val()
        },
        success: function (data) {
            if (data.length != 0) {
                let comandasList = ''
                $.each(data, function (i, v) {

                    comandasList += '<a class="dropdown-item"  onclick="reimpresion_comanda(\'' + v.id_key + '\');" href="javascript:void(0)" >' + v.fecha_pedido + '</a>'


                    // comandasList +='<a class="dropdown-item"  href="'+$('#url').val()+'venta/impresion_comanda/'+v.id_pedido+':'+v.id_key+'" target="_blank">'+v.fecha_pedido+'</a>'
                    // comandasList +='<a class="dropdown-item"  onclick="printPdf(\''+urlticketreparto+'\',true);" href="javascript:void(0)" href="'+$('#url').val()+'venta/impresion_comanda/'+v.id_pedido+':'+v.id_key+'" target="_blank">'+v.fecha_pedido+'</a>'
                })
                $('#list-comandas').html(comandasList)
            } else {
                $('#list-comandas').html('<div class="justify-center" style="height: 100%;"><div class="text-center"><h4 style="color: #d3d3d3;">No existe Regustro</h4></div></div>');
            }
        }
    });
};

$('#tipo_pago').change(function () {
    var value = parseInt($(this).val(), 10) || 1;
    if (value != 2) {
        $('.btn-tipo-doc-3').removeClass('disabled');
        $("input[name=tipo_doc][value='3']").prop("disabled", false);
        $("input[name=tipo_doc][value='3']").prop("readonly", false);
    } else {
        $('.btn-tipo-doc-3').removeClass('active');
        $('.btn-tipo-doc-3').addClass('disabled');
        $("input[name=tipo_doc][value='3']").prop("disabled", true);
        $("input[name=tipo_doc][value='3']").prop("checked", false);
    }
});


var preciolist = function (cod_add) {
    if ($(".preciolist_" + cod_add).attr('disabled') == 'disabled') {
        $(".preciolist_" + cod_add).removeAttr('disabled');
    } else {
        $(".preciolist_" + cod_add).attr('disabled', true);
    }
};
