(function($) { 'use strict'; $(document).ready(function() { /* ========================================================================= 0. LÓGICA DO RASCUNHO AUTOMÁTICO (LOCAL STORAGE) ========================================================================= */ function carregarRascunho() { let draft = localStorage.getItem('senacFornecedorDraft'); if (draft) { try { let formData = JSON.parse(draft); for (let key in formData) { let field = $('#senac-form-fornecedor').find(`[name="${key}"]`); if (field.length && formData[key]) { field.val(formData[key]); // Se for segmento "Outros", força a exibição do input extra if (key === 'segmento' && formData[key] === 'Outros') { field.trigger('change'); } } } } catch(e) { console.error('Erro ao ler rascunho.', e); } } } function salvarRascunho() { let formData = {}; // Guarda todos os inputs exceto ficheiros e checkboxes (termos) $('#senac-form-fornecedor').find('input:not([type="file"]):not([type="checkbox"]), select, textarea').each(function() { formData[$(this).attr('name')] = $(this).val(); }); localStorage.setItem('senacFornecedorDraft', JSON.stringify(formData)); } // Se estiver na página de cadastro, carrega o rascunho e escuta mudanças if ($('#senac-form-fornecedor').length) { carregarRascunho(); $('#senac-form-fornecedor').on('input change', 'input:not([type="file"]), select, textarea', function() { salvarRascunho(); }); } /* ========================================================================= 1. LÓGICA DO WIZARD (MULTI-STEP) ========================================================================= */ let currentStep = 1; const totalSteps = 3; function updateWizardUI() { $('.step-content').removeClass('active'); $('#step-' + currentStep).addClass('active'); $('.senac-step-indicator').each(function() { let stepNum = parseInt($(this).data('step')); if (stepNum < currentStep) { $(this).removeClass('active').addClass('completed'); $(this).find('.senac-step-dot').html('✓'); } else if (stepNum === currentStep) { $(this).removeClass('completed').addClass('active'); $(this).find('.senac-step-dot').html(stepNum); } else { $(this).removeClass('active completed'); $(this).find('.senac-step-dot').html(stepNum); } }); if($('.senac-wizard-header').length){ $('html, body').animate({ scrollTop: $('.senac-wizard-header').offset().top - 80 }, 300); } } $('.senac-btn-next').on('click', function() { let currentPanel = $('#step-' + currentStep); let isValid = true; currentPanel.find('input[required], select[required], textarea[required]').each(function() { if (!this.checkValidity()) { isValid = false; this.reportValidity(); return false; } }); if (isValid && currentStep < totalSteps) { currentStep++; updateWizardUI(); } }); $('.senac-btn-prev').on('click', function() { if (currentStep > 1) { currentStep--; updateWizardUI(); } }); function resetWizard() { currentStep = 1; updateWizardUI(); } /* ========================================================================= 2. FORMULÁRIO: MÁSCARAS E VALIDAÇÕES ========================================================================= */ $('#forn_cep').on('input', function() { let val = $(this).val().replace(/\D/g, ''); if (val.length > 5) val = val.substring(0, 5) + '-' + val.substring(5, 8); $(this).val(val); }); $('#forn_cnpj').on('input', function() { let val = $(this).val().replace(/\D/g, ''); if (val.length > 2) val = val.substring(0, 2) + '.' + val.substring(2); if (val.length > 6) val = val.substring(0, 6) + '.' + val.substring(6); if (val.length > 10) val = val.substring(0, 10) + '/' + val.substring(10); if (val.length > 15) val = val.substring(0, 15) + '-' + val.substring(15, 17); $(this).val(val); }); $('#forn_telefone').on('input', function() { let val = $(this).val().replace(/\D/g, ''); if (val.length > 11) val = val.substring(0, 11); let formatted = val; if (val.length === 0) { formatted = ''; } else if (val.length <= 2) { formatted = '(' + val; } else if (val.length <= 6) { formatted = '(' + val.substring(0, 2) + ') ' + val.substring(2); } else if (val.length <= 10) { formatted = '(' + val.substring(0, 2) + ') ' + val.substring(2, 6) + '-' + val.substring(6); } else { formatted = '(' + val.substring(0, 2) + ') ' + val.substring(2, 3) + '.' + val.substring(3, 7) + '-' + val.substring(7); } $(this).val(formatted); }); $('#forn_segmento').on('change', function() { let selecionado = $(this).val(); let containerOutro = $('#forn_segmento_outro_container'); let inputOutro = $('#forn_segmento_outro'); if (selecionado === 'Outros') { containerOutro.slideDown(300); inputOutro.prop('required', true).focus(); } else { containerOutro.slideUp(200); inputOutro.prop('required', false).val(''); } }); $('#forn_cep').on('blur', function() { let cep = $(this).val().replace(/\D/g, ''); if (cep.length === 8) { $('#forn_endereco').val('Buscando endereço...'); $.getJSON(`https://viacep.com.br/ws/${cep}/json/`, function(data) { if (!data.erro) { $('#forn_endereco').val(data.logradouro); $('#forn_bairro').val(data.bairro); $('#forn_cidade').val(data.localidade); $('#forn_uf').val(data.uf); $('#forn_numero').focus(); } else { $('#forn_endereco').val(''); alert('CEP não encontrado. Por favor, digite o endereço manualmente.'); } }).fail(function() { $('#forn_endereco').val(''); }); } }); $('#forn_cnpj').on('blur', function() { let cnpj = $(this).val().replace(/\D/g, ''); if (cnpj.length === 14) { $('#cnpj-loading').fadeIn(150); $.post(senacAjax.ajaxurl, { action: 'senac_buscar_cnpj', cnpj: cnpj, security: senacAjax.nonce }, function(response) { if(response.success) { let data = response.data; $('#forn_razao').val(data.razao_social); $('#forn_fantasia').val(data.nome_fantasia || data.razao_social); if(data.cnae_fiscal_descricao) { $('#forn_cnae').val(data.cnae_fiscal + ' - ' + data.cnae_fiscal_descricao); } if(data.cnaes_secundarios && data.cnaes_secundarios.length > 0) { let secCnaesText = data.cnaes_secundarios.map(c => c.codigo + ' - ' + c.descricao).join('\n'); $('#forn_cnae_secundario').val(secCnaesText); } else { $('#forn_cnae_secundario').val('Nenhuma atividade secundária registrada.'); } if(data.cep) { let cepFormatado = data.cep.toString().padStart(8, '0'); cepFormatado = cepFormatado.substring(0, 5) + '-' + cepFormatado.substring(5); $('#forn_cep').val(cepFormatado); $('#forn_endereco').val(data.logradouro || ''); $('#forn_numero').val(data.numero || ''); $('#forn_complemento').val(data.complemento || ''); $('#forn_bairro').val(data.bairro || ''); $('#forn_cidade').val(data.municipio || ''); $('#forn_uf').val(data.uf || ''); } } else { alert(response.data); $('#forn_razao, #forn_fantasia, #forn_cnae, #forn_cnae_secundario').val(''); } }).fail(function() { alert('Erro de comunicação do servidor ao validar o CNPJ.'); }).always(function() { $('#cnpj-loading').fadeOut(150); }); } }); $('#senac-form-fornecedor').on('submit', function(e) { e.preventDefault(); let btn = $('#btn-submit-forn'); let feedback = $('#forn-feedback'); let originalBtnHtml = btn.html(); btn.prop('disabled', true).html('A Processar...'); feedback.hide().removeClass('success error'); let formElement = document.getElementById('senac-form-fornecedor'); let formData = new FormData(formElement); formData.append('action', 'senac_salvar_fornecedor'); formData.append('security', senacAjax.nonce); $.ajax({ url: senacAjax.ajaxurl, type: 'POST', data: formData, processData: false, contentType: false, success: function(response) { btn.prop('disabled', false).html(originalBtnHtml); if(response.success) { if(response.data.tipo === 'completo') { feedback.css({'background':'#e6fffa', 'color':'#276749', 'border':'1px solid #b2f5ea'}) .html('✅ ' + response.data.mensagem).fadeIn(); } else { feedback.css({'background':'#fffaf0', 'color':'#dd6b20', 'border':'1px solid #fbd38d'}) .html('⚠️ ' + response.data.mensagem).fadeIn(); } $('#senac-form-fornecedor')[0].reset(); $('#forn_segmento_outro_container').hide(); // NOVO: Limpa o rascunho em caso de sucesso localStorage.removeItem('senacFornecedorDraft'); resetWizard(); $('html, body').animate({ scrollTop: feedback.offset().top - 120 }, 500); } else { feedback.css({'background':'#fff5f5', 'color':'#c53030', 'border':'1px solid #feb2b2'}) .html('❌ ' + response.data).fadeIn(); } }, error: function() { btn.prop('disabled', false).html(originalBtnHtml); feedback.css({'background':'#fff5f5', 'color':'#c53030', 'border':'1px solid #feb2b2'}) .html('❌ Ocorreu um erro no servidor. Tente novamente.').fadeIn(); } }); }); /* ========================================================================= 3. LÓGICA DO DASHBOARD AJAX + AÇÕES EM MASSA + MÉTRICAS E DATAS ========================================================================= */ function senacEscapeHTML(str) { if(str === null || str === undefined) return ''; if(typeof str !== 'string') return str.toString(); return str.replace(/[&<>'"]/g, tag => ({ '&': '&', '<': '<', '>': '>', "'": ''', '"': '"' }[tag] || tag)); } if ($('#senac-lista-cards-fornecedores').length) { let todosFornecedores = []; let listaFiltrada = []; let selectedIds = new Set(); let currentPage = 1; let cardsPerPage = window.innerWidth <= 768 ? 5 : 10; window.addEventListener('resize', () => { const novoLimite = window.innerWidth <= 768 ? 5 : 10; if (novoLimite !== cardsPerPage) { cardsPerPage = novoLimite; currentPage = 1; if(todosFornecedores.length > 0) renderizarLista(); } }); function buscarDadosServidor() { $.post(senacAjax.ajaxurl, { action: 'senac_get_lista_fornecedores', security: senacAjax.nonce }, function(response) { if (response.success) { todosFornecedores = response.data; aplicarFiltros(); } else { $('#senac-lista-cards-fornecedores').html('
Nenhum dado encontrado ou acesso negado.
'); } }).fail(function(){ $('#senac-lista-cards-fornecedores').html('
Erro ao conectar com o banco de dados do Senac.
'); }); } buscarDadosServidor(); function formatarDataBR(dataSql) { if(!dataSql) return ''; let dataCurta = dataSql.split(' ')[0]; let partes = dataCurta.split('-'); if(partes.length === 3) return `${partes[2]}/${partes[1]}/${partes[0]}`; return dataSql; } $('#btn-view-list').on('click', function() { $('.senac-toggle-btn').removeClass('active'); $(this).addClass('active'); $('#senac-lista-cards-fornecedores').removeClass('view-grid').addClass('view-list'); $('#btn-select-all').show(); }); $('#btn-view-grid').on('click', function() { $('.senac-toggle-btn').removeClass('active'); $(this).addClass('active'); $('#senac-lista-cards-fornecedores').removeClass('view-list').addClass('view-grid'); $('#btn-select-all').hide(); }); function renderizarPaginacao() { let paginationContainer = $('#senac-forn-paginacao'); paginationContainer.empty(); let total = listaFiltrada.length; let totalPages = Math.ceil(total / cardsPerPage); let startItem = (currentPage - 1) * cardsPerPage + 1; let endItem = Math.min(startItem + cardsPerPage - 1, total); let htmlInfo = total === 0 ? '' : `Exibindo ${startItem} a ${endItem} de ${total} registos`; let htmlBtns = ''; if (totalPages > 1) { for (let i = 1; i <= totalPages; i++) { htmlBtns += ``; } } paginationContainer.html(`${htmlInfo}
${htmlBtns}
`); } $(document).on('click', '.senac-page-btn', function() { currentPage = parseInt($(this).attr('data-page')); renderizarLista(); document.querySelector('.senac-custom-filters').scrollIntoView({ behavior: 'smooth', block: 'start' }); }); function getStatusBadge(status) { if(status === 'Enviado') return 'Enviado'; if(status === 'Falha') return 'Falha'; return 'Pendente'; } function getHomologacaoSelect(id, currentStatus) { const statuses = ['Novo', 'Em Análise', 'Homologado', 'Recusado']; let colorClass = ''; if (currentStatus === 'Homologado') colorClass = 'status-homologado'; else if (currentStatus === 'Recusado') colorClass = 'status-recusado'; else if (currentStatus === 'Em Análise') colorClass = 'status-analise'; else colorClass = 'status-novo'; let html = ``; return html; } function updateBulkBar() { const count = selectedIds.size; const bulkBar = $('#senac-bulk-bar'); if (count > 0) { $('#senac-bulk-count').text(count); bulkBar.addClass('visible'); } else { bulkBar.removeClass('visible'); } $('.forn-card').removeClass('selected-card'); selectedIds.forEach(id => { $(`#forn-card-${id}`).addClass('selected-card'); }); } function atualizarMetricas() { let total = listaFiltrada.length; let novos = listaFiltrada.filter(f => !f.status_homologacao || f.status_homologacao === 'Novo' || f.status_homologacao === 'Pendente').length; let homologados = listaFiltrada.filter(f => f.status_homologacao === 'Homologado').length; let recusados = listaFiltrada.filter(f => f.status_homologacao === 'Recusado').length; $('#metric-total').text(total); $('#metric-novos').text(novos); $('#metric-homologados').text(homologados); $('#metric-recusados').text(recusados); } function renderizarLista() { let container = $('#senac-lista-cards-fornecedores'); let counter = $('#senac-fornecedores-count'); let html = ''; counter.text(`Total de fornecedores filtrados: ${listaFiltrada.length}`); atualizarMetricas(); if (listaFiltrada.length === 0) { container.html('
Nenhum fornecedor com estes filtros.
'); $('#senac-forn-paginacao').empty(); return; } let start = (currentPage - 1) * cardsPerPage; let end = start + cardsPerPage; let itensDaPagina = listaFiltrada.slice(start, end); itensDaPagina.forEach(f => { let exibeSegmento = (f.segmento === 'Outros' && f.segmento_outro) ? f.segmento_outro : f.segmento; let statusEmail = getStatusBadge(f.email_status); let statusHomologacao = getHomologacaoSelect(f.id, f.status_homologacao || 'Novo'); let isChecked = selectedIds.has(parseInt(f.id)) ? 'checked' : ''; let cardClass = isChecked ? 'forn-card selected-card' : 'forn-card'; html += `
Data ${senacEscapeHTML(formatarDataBR(f.data_cadastro))}
CNPJ ${senacEscapeHTML(f.cnpj)}
Razão Social ${senacEscapeHTML(f.razao_social)}
Segmento ${senacEscapeHTML(exibeSegmento)}
Contato ${senacEscapeHTML(f.email)}
${senacEscapeHTML(f.telefone)}
Situação ${statusHomologacao}
`; }); container.html(html); renderizarPaginacao(); updateBulkBar(); } function aplicarFiltros() { let termo = $('#filtro-texto-forn').val().toLowerCase(); let seg = $('#filtro-segmento-forn').val(); let dataIni = $('#filtro-data-ini').val(); let dataFim = $('#filtro-data-fim').val(); listaFiltrada = todosFornecedores.filter(f => { let textMatch = f.razao_social.toLowerCase().includes(termo) || f.cnpj.includes(termo) || f.email.toLowerCase().includes(termo) || (f.nome_fantasia && f.nome_fantasia.toLowerCase().includes(termo)); let segMatch = (seg === '') || (f.segmento === seg); let dateMatch = true; if (dataIni || dataFim) { let dataCadastroFornecedor = f.data_cadastro.substring(0, 10); if (dataIni && dataCadastroFornecedor < dataIni) dateMatch = false; if (dataFim && dataCadastroFornecedor > dataFim) dateMatch = false; } return textMatch && segMatch && dateMatch; }); currentPage = 1; renderizarLista(); } $('#filtro-texto-forn').on('input', aplicarFiltros); $('#filtro-segmento-forn').on('change', aplicarFiltros); $('#filtro-data-ini, #filtro-data-fim').on('change', aplicarFiltros); $(document).on('change', '.forn-checkbox', function() { let id = parseInt($(this).val()); if(this.checked) { selectedIds.add(id); } else { selectedIds.delete(id); } updateBulkBar(); }); $('#btn-select-all').on('click', function() { let checkboxes = $('.forn-checkbox'); let allChecked = checkboxes.length === checkboxes.filter(':checked').length; checkboxes.each(function() { let id = parseInt($(this).val()); if (allChecked) { $(this).prop('checked', false); selectedIds.delete(id); } else { $(this).prop('checked', true); selectedIds.add(id); } }); updateBulkBar(); }); $('#senac-bulk-clear').on('click', function() { selectedIds.clear(); $('.forn-checkbox').prop('checked', false); updateBulkBar(); }); $(document).on('change', '.senac-status-select', function() { let select = $(this); let id = select.data('id'); let novoStatus = select.val(); let oldColorClass = select.attr('class').split(' ').filter(c => c.startsWith('status-')).join(' '); select.prop('disabled', true); $.post(senacAjax.ajaxurl, { action: 'senac_atualizar_status_fornecedor', id: id, status: novoStatus, security: senacAjax.nonce }, function(response) { select.prop('disabled', false); if(response.success) { select.removeClass(oldColorClass); if (novoStatus === 'Homologado') select.addClass('status-homologado'); else if (novoStatus === 'Recusado') select.addClass('status-recusado'); else if (novoStatus === 'Em Análise') select.addClass('status-analise'); else select.addClass('status-novo'); let index = todosFornecedores.findIndex(f => parseInt(f.id) === parseInt(id)); if(index !== -1) { todosFornecedores[index].status_homologacao = novoStatus; aplicarFiltros(); } } else { alert('Erro ao atualizar: ' + response.data); } }).fail(function() { select.prop('disabled', false); alert('Erro de comunicação com o servidor.'); }); }); window.senacAbrirModal = function(id) { let forn = todosFornecedores.find(x => parseInt(x.id) === parseInt(id)); if(!forn) return; let exibeSegmento = (forn.segmento === 'Outros' && forn.segmento_outro) ? "Outros (" + forn.segmento_outro + ")" : forn.segmento; let statusEmail = getStatusBadge(forn.email_status); let statusAtual = forn.status_homologacao || 'Novo'; let linkPortfolio = ''; if(forn.arquivo_portfolio) { linkPortfolio = ` Ver Portfólio PDF`; } else { linkPortfolio = `Sem portfólio anexado`; } let content = `

Razão Social:
${senacEscapeHTML(forn.razao_social)}

Nome Fantasia:
${senacEscapeHTML(forn.nome_fantasia || '-')}

CNPJ:
${senacEscapeHTML(forn.cnpj)}

CNAE Principal:
${senacEscapeHTML(forn.cnae || '-')}

Atividades Secundárias:

${senacEscapeHTML(forn.cnae_secundario || 'Não registrado')}

Segmento:
${senacEscapeHTML(exibeSegmento)}

E-mail:
${senacEscapeHTML(forn.email)}
Tel: ${senacEscapeHTML(forn.telefone)}

Situação Homologação: ${senacEscapeHTML(statusAtual)}

Status Confirmação (Email): ${statusEmail}

Localização

${senacEscapeHTML(forn.endereco)}, ${senacEscapeHTML(forn.numero)} ${senacEscapeHTML(forn.complemento || '')} - ${senacEscapeHTML(forn.bairro)}
${senacEscapeHTML(forn.cidade)}/${senacEscapeHTML(forn.uf)} - CEP: ${senacEscapeHTML(forn.cep)}

Produtos/Serviços Ofertados

${senacEscapeHTML(forn.produtos || 'Não detalhado.')}

${linkPortfolio} `; $('#senacModalContent').html(content); $('#senacModalForn, #senacModalOverlay').fadeIn(200); }; window.senacFecharModal = function() { $('#senacModalForn, #senacModalOverlay').fadeOut(200); }; window.senacImprimirFicha = function() { let conteudo = document.getElementById('senacModalContent').innerHTML; let janelaImpressao = window.open('', '', 'width=800,height=600'); janelaImpressao.document.write('Ficha do Fornecedor'); janelaImpressao.document.write(''); janelaImpressao.document.write(''); janelaImpressao.document.write('
'); janelaImpressao.document.write('

Ficha Cadastral de Fornecedor

'); janelaImpressao.document.write(conteudo); janelaImpressao.document.write(''); janelaImpressao.document.close(); janelaImpressao.focus(); setTimeout(function(){ janelaImpressao.print(); janelaImpressao.close(); }, 500); }; window.senacDeletarFornecedor = function(id) { if(confirm('Atenção: Tem a certeza de que deseja excluir permanentemente este fornecedor?')) { $.post(senacAjax.ajaxurl, { action: 'senac_deletar_fornecedor', id: id, security: senacAjax.nonce }, function(response) { if(response.success) { $('#forn-card-' + id).css('background', '#fed7d7').slideUp(300, function() { selectedIds.delete(parseInt(id)); buscarDadosServidor(); }); } else { alert('Erro ao excluir: ' + response.data); } }); } }; window.senacDeletarLote = function() { if (selectedIds.size === 0) return; if(confirm(`Atenção: Tem a certeza absoluta de que deseja excluir os ${selectedIds.size} fornecedores selecionados? Esta ação não pode ser desfeita.`)) { let btn = $('.btn-bulk-delete'); let originalHtml = btn.html(); btn.prop('disabled', true).html('A Excluir...'); let idsArray = Array.from(selectedIds); $.post(senacAjax.ajaxurl, { action: 'senac_deletar_fornecedores_lote', ids: idsArray, security: senacAjax.nonce }, function(response) { btn.prop('disabled', false).html(originalHtml); if(response.success) { selectedIds.clear(); updateBulkBar(); buscarDadosServidor(); alert('Fornecedores excluídos com sucesso!'); } else { alert('Erro ao excluir: ' + response.data); } }).fail(function() { btn.prop('disabled', false).html(originalHtml); alert('Erro de conexão com o servidor.'); }); } }; function carregarScriptSeguro(url, callback) { if (document.querySelector(`script[src="${url}"]`)) { callback(); return; } let script = document.createElement('script'); script.type = 'text/javascript'; script.src = url; script.onload = callback; script.onerror = function() { alert('Erro de carregamento. Verifique o seu Firewall/AdBlock.'); }; document.head.appendChild(script); } window.senacGerarExcel = function(apenasLote = false) { let dadosAExportar = apenasLote ? todosFornecedores.filter(f => selectedIds.has(parseInt(f.id))) : listaFiltrada; if (dadosAExportar.length === 0) return alert('Nenhum dado para exportar.'); let btn = apenasLote ? $('.btn-bulk-excel') : $('.btn-excel'); let htmlOriginal = btn.html(); btn.prop('disabled', true).html('A Baixar...'); carregarScriptSeguro("https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js", function() { let exportData = dadosAExportar.map(f => ({ "Data": formatarDataBR(f.data_cadastro), "CNPJ": f.cnpj, "Razão Social": f.razao_social, "Situação": f.status_homologacao || 'Novo', "Nome Fantasia": f.nome_fantasia, "CNAE Principal": f.cnae, "CNAEs Secundários": f.cnae_secundario, "Segmento": f.segmento === 'Outros' ? f.segmento_outro : f.segmento, "E-mail": f.email, "Telefone": f.telefone, "Cidade/UF": f.cidade + '/' + f.uf, "Produtos": f.produtos, "Portfólio (URL)": f.arquivo_portfolio || 'Não enviado' })); let ws = XLSX.utils.json_to_sheet(exportData); let wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, "Fornecedores"); let filename = apenasLote ? "fornecedores-selecionados.xlsx" : "fornecedores-senac.xlsx"; XLSX.writeFile(wb, filename); btn.prop('disabled', false).html(htmlOriginal); if(apenasLote) { selectedIds.clear(); updateBulkBar(); $('.forn-checkbox').prop('checked', false); } }); }; window.senacGerarPDF = function(apenasLote = false) { let dadosAExportar = apenasLote ? todosFornecedores.filter(f => selectedIds.has(parseInt(f.id))) : listaFiltrada; if (dadosAExportar.length === 0) return alert('Nenhum dado para exportar.'); let btn = apenasLote ? $('.btn-bulk-pdf') : $('.btn-pdf'); let htmlOriginal = btn.html(); btn.prop('disabled', true).html('A Baixar...'); carregarScriptSeguro("https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js", function() { carregarScriptSeguro("https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/3.8.1/jspdf.plugin.autotable.min.js", function() { const jsPDF = window.jspdf ? window.jspdf.jsPDF : window.jsPDF; const doc = new jsPDF('l', 'pt', 'a4'); let tableBody = dadosAExportar.map(f => [ formatarDataBR(f.data_cadastro), f.cnpj, f.razao_social, f.segmento === 'Outros' ? f.segmento_outro : f.segmento, f.status_homologacao || 'Novo', f.telefone ]); doc.setFontSize(16); doc.setTextColor(0, 69, 135); doc.text("Relatório de Fornecedores - Senac Sergipe", 40, 40); doc.autoTable({ startY: 60, head: [['Data', 'CNPJ', 'Razão Social', 'Segmento', 'Situação', 'Telefone']], body: tableBody, styles: { fontSize: 8, cellPadding: 4 }, headStyles: { fillColor: [0, 69, 135] }, alternateRowStyles: { fillColor: [248, 250, 252] } }); let filename = apenasLote ? "fornecedores-selecionados.pdf" : "fornecedores-senac.pdf"; doc.save(filename); btn.prop('disabled', false).html(htmlOriginal); if(apenasLote) { selectedIds.clear(); updateBulkBar(); $('.forn-checkbox').prop('checked', false); } }); }); }; window.senacGerarExcelLote = function() { window.senacGerarExcel(true); }; window.senacGerarPDFLote = function() { window.senacGerarPDF(true); }; } }); })(jQuery); Paulo do Eirado recebe o troféu Gente Gentíssima Senac Sergipe | Cursos Técnicos, Profissionalizantes e Educação para o Trabalho

Paulo do Eirado recebe o troféu Gente Gentíssima

WhatsApp Image 2018 04 18 at 09.54.16O diretor regional do Senac Sergipe, Paulo do Eirado Dias Filho, recebeu o troféu Gente Gentíssima – Destaque do Ano 2017, promovido pelo Jornal Social News. A premiação aconteceu na noite de terça-feira, 17 de abril, em um salão de festas no bairro Coroa do Meio e homenageou personalidades de destaque em diversos segmentos da sociedade, como empresários, jornalistas, médicos, músicos, dentre outros. Paulo do Eirado recebeu o prêmio das mãos da apresentadora da TV Atalaia, Jaquelline Cruz.

O diretor agradeceu pelo prêmio e fez questão de dividi-lo com os funcionários que fazem parte do Senac. “Estou representando uma instituição que tem uma agenda de trabalho maravilhosa. Então divido esse prêmio com todos os colaboradores, com toda equipe que faz com que o Senac  tenha esse destaque, essa condição de estar sempre como uma instituição de ponta, que tem sempre algo construtivo para a sociedade”, declarou.

Categorias relacionadas:Notícias
Compartilhar o Post:

Transforme seu futuro agora.

Cursos
Notícias