$(document).ready(async function () {

    $('#modal-ocorrencias').on('shown.bs.modal', async function () {
        $('#txtObsOcorrencias').prop('disabled', true);
        bloqueiaCampos();
        await buscaOcorrencias();
        const nomeEntidade = `[${$('#txtCodCli').val()}] - ${$('#txtNome').val()}`
        $('#txtClienteContato').val(`${nomeEntidade}`);
        $('#lblEmailContato').html('E-mail:');
    });

    async function buscaOcorrencias(ativo = '') {
        try {
            const cliente = $('#txtClienteOcorrencias').val();
            $.LoadingOverlay('show');
            try {
                if ($.fn.DataTable.isDataTable('#tabelaOcorrencias')) {
                    $('#tabelaOcorrencias').DataTable().destroy();
                    $('#tabelaOcorrencias').empty();
                };

                let listaWhere = [`1=1 AND CODCLI = '${cliente}'`];

                if (ativo != '') {
                    listaWhere.push(
                        `ATIVO = ${ativo}`
                    )
                }

                const pesquisa = {
                    tabela: "CLI_HISTORICO",
                    camposSelect: ["CLI_HISTORICO.*", "'HISTORICO' AS CADASTRO"
                    ],
                    where: [
                        `1=1 AND CODCLI = '${cliente}'`,
                    ],
                    orderBy: [
                        "NUMERO",
                    ]

                };

                const ocorrencias = await retornaJsonPesquisaPadrao(JSON.stringify(pesquisa));

                const dataSetCols = [
                    {
                        data: 'NUMERO',
                        title: 'Número'
                    },
                    {
                        data: 'CADASTRO',
                        title: 'Cadastro'
                    },
                    {
                        data: 'ASSUNTO',
                        title: 'Assunto'
                    },
                    {
                        data: 'DATA',
                        title: 'Data'
                    },
                    {
                        data: 'ATIVO',
                        title: 'Ativo'
                    },
                    {
                        data: 'USUARIO',
                        title: 'Usuário'
                    },
                    {
                        data: 'BLOQUEAR_FAT',
                        title: 'Bloquear NF'
                    },
                    {
                        data: 'DT_ENTREGA',
                        title: 'Entrega'
                    }
                ];

                $('#tabelaOcorrencias').DataTable({
                    bPaginate: false,
                    destroy: true,
                    search: false,
                    filter: false,
                    lengthChange: false,
                    pageLength: 5,
                    info: true,
                    order: false,
                    language: {
                        sEmptyTable: "Nenhum registro encontrado",
                        sInfo: "_TOTAL_ registros",
                        sInfoEmpty: " 0 registros",
                        sInfoFiltered: "(Filtrados de _MAX_ registros)",
                        sInfoPostFix: "",
                        sInfoThousands: ".",
                        sLengthMenu: "_MENU_ resultados",
                        sLoadingRecords: "Carregando...",
                        sProcessing: "Processando...",
                        sZeroRecords: "Nenhum registro encontrado",
                        sSearch: "Pesquisar",
                        oPaginate: {
                            sNext: "Próximo",
                            sPrevious: "Anterior",
                            sFirst: "Primeiro",
                            sLast: "Último",
                        },
                        oAria: {
                            sSortAscending: ": Ordenar colunas de forma ascendente",
                            sSortDescending: ": Ordenar colunas de forma descendente",
                        },
                    },
                    autoWidth: true,
                    columns: dataSetCols,
                    data: ocorrencias,
                    columnDefs: [{
                        type: 'date-br',
                        targets: [3],
                        render(data) {
                            if (data) {
                                return new Intl.DateTimeFormat('pt-BR').format(new Date(`${data.split(' ')[0]} 23:59:59`));
                            } else {
                                return '';
                            }
                        }
                    }]
                });
            } catch (e) {
                console.log(e);
            }
        } finally {
            $.LoadingOverlay('hide');
        }
    }

    $('#btnIncluirOcorrencias').on('click', async function () {
        try {
            $.LoadingOverlay('show');

            $('#btnIncluirOcorrencias').addClass('d-none');
            $('#btnGravarOcorrencias').removeClass('d-none');
            $('#btnImprimirOcorrencias').addClass('d-none');
            $('#btnCancelarOcorrencias').removeClass('d-none');
            $('#txtObsOcorrencias').prop('disabled', false);
            $('#radioFiltroOcorrencias').prop('disabled', true);

            $('#tabelaOcorrencias').DataTable().row.add({
                NUMERO: await RetornaProximo("CLI_HISTORICO", "CLI_HISTORICO", "NUMERO", 1),
                CADASTRO: 'HISTORICO',
                ASSUNTO: '',
                DATA: formataData(new Date()),
                ATIVO: 'S',
                USUARIO: getCookie('usuario'),
                BLOQUEAR_FAT: 'N',
                DT_ENTREGA: '1899-12-30'
            }).draw(false);
        } finally {
            $.LoadingOverlay('hide');
        }

    });

    $('#btnCancelarOcorrencias').on('click', async function () {
        try {
            $.LoadingOverlay('show');
            
            $('#btnIncluirOcorrencias').removeClass('d-none');
            $('#btnGravarOcorrencias').addClass('d-none');
            $('#btnImprimirOcorrencias').removeClass('d-none');
            $('#btnCancelarOcorrencias').addClass('d-none');
            $('#txtObsOcorrencias').prop('disabled', true);
            $('#radioFiltroOcorrencias').prop('disabled', false);

            await buscaOcorrencias();
        } finally {
            $.LoadingOverlay('hide');
        }
    })

    $('#btnGravar').on('click', async function() {
        try {
            $.LoadingOverlay('show');
            try {
                let ocorrencia = {};

                const data = $('#tabelaOcorrencias').DataTable().data().toArray();

                dadosObject = data[data.length-1];

                ocorrencia.NUMERO = dadosObject.NUMERO;
                ocorrencia.ASSUNTO = $('#txtObsOcorrencias').substring(0, 98);
                ocorrencia.ATIVO = dadosObject.ATIVO;
                ocorrencia.DATA = dadosObject.DATA;
                dadosObject.AVISA_CAD = 'N';
                dadosObject.AVISA_EXP = 'N';
                dadosObject.AVISA_NOTA = 'N';
                dadosObject.AVISA_PED = 'N';

                
            } catch (e) {
                console.log(e);
            }
        } finally {
            $.LoadingOverlay('hide');
        }
    })

    // tipo_cons: $('input[name="tipoConsulta"]:checked').val(),
});