import Ajax from "../../components/ajax.js";

$(() => {

    let pedidosFilter = '';

    const dropdown = document.querySelector(".dropdown-language");
    const activeItem = dropdown.querySelector(".dropdown-menu .dropdown-item");
    let locale = 'es';
    if (activeItem) {
        locale = activeItem.getAttribute("data-language");
    }

    new Ajax('/translate/getTranslation', { locale: locale, translationFile: ['Albaran'] }, {},
        function (translations) {
            window.language = JSON.parse(translations);
        },
        function (error) {
            console.log("Error getting translations:", error);
        }
    ).post();


    $('#btnAddEnvio').on('click', () => {
        const pedido_id = selectPedidos.getVal();
        const direccionSeleccionada = selectDirecciones.getText();
        $.post('/albaranes/datatable', {
            pedido_id: pedido_id,
            direccion: direccionSeleccionada
        }, function (response) {
            if (response.status) {
                window.open(`${window.location.origin}/logistica/envio/${response.data.id_envio}`);
                selectDirecciones.empty();
                selectPedidos.empty();
                $('.select-direcciones').addClass('d-none');
                $('.add-envio').addClass('d-none');
            } else {
                popErrorAlert(response.message);
            }
        }).fail(function (xhr, status, error) {
            popErrorAlert(error);
        });
    })


    const tableAlbaranes = $('#tableOfAlbaranes').DataTable({
        processing: true,
        serverSide: true,
        autoWidth: true,
        responsive: true,
        scrollX: true,
        orderCellsTop: true,
        lengthMenu: [5, 10, 25, 50, 75, 100, 250, 500, 1000, 2500],
        pageLength: 50,
        "dom": 'lBrtip',
        "ajax": {
            "url": "/albaranes/datatable",
            "data": function (d) {
                d.pedidosFilter = pedidosFilter;
            }
        },
        "columns": [
            { "data": "id" },
            { "data": "numero_albaran" },
            { "data": "envio_id" },
            { "data": "pedidos" },
            { "data": "cliente" },
            { "data": "att" },
            { "data": "direccion" },
            { "data": "unidades_total" },
            { "data": "cajas" },
            { "data": "action" }

        ],
        "language": {
            url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
        },
        "columnDefs": [
            {
                orderable: false,
                searchable: false,
                targets: [9]
            },
        ],
        "order": [[0, "desc"]],
    });

    $(document).on('click', '.btn-delete', function (e) {
        const data = {
            albaranId: $(this).attr('data-id')
        };
        const url = '/albaranes/borrarAlbaran';

        Swal.fire({
            title: window.language.Albaran.borrarAlbaran,
            text: window.language.Albaran.borrarAlbaranConfirm,
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: window.language.Albaran.borrar,
            cancelButtonText: window.language.Albaran.cancelar,
            customClass: {
                confirmButton: 'btn btn-primary me-1',
                cancelButton: 'btn btn-outline-secondary'
            },
            buttonsStyling: false
        }).then((result) => {


            $.ajax({
                url: url,
                type: 'POST',
                data: data,
                success: (response) => {
                    if (response.success) {
                        tableAlbaranes.draw();
                    } else {
                        Swal.fire({
                            title: 'Error',
                            text: 'No se ha podido borrar el albarán',
                            icon: 'error',
                            showCancelButton: false,
                            confirmButtonColor: '#3085d6',
                            confirmButtonText: 'Ok',
                            customClass: {
                                confirmButton: 'btn btn-primary me-1',
                            },
                            buttonsStyling: false
                        });
                    }
                },
                error: (xhr, status, error) => {
                    console.error(error);
                }
            });
        });

    });


    $(document).on('click', '.btn-edit', function (e) {
        window.location.href = '/albaranes/edit/' + $(this).attr('data-id');
    });

    $(document).on("keyup", ".albaran-filter", (event) => {
        let columnName = $(event.currentTarget).attr("name");
        let columnIndex = $('#tableOfAlbaranes').DataTable().columns().eq(0).filter(function (index) {
            return $('#tableOfAlbaranes').DataTable().column(index).dataSrc() === columnName;
        })[0];
        $('#tableOfAlbaranes').DataTable().column(columnIndex).search($(event.currentTarget).val()).draw()
    })


    $(document).on("keyup", ".albaran-filter-pedidos", (event) => {
        pedidosFilter = $(event.currentTarget).val();
        $('#tableOfAlbaranes').DataTable().ajax.reload();
    })

});