(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); Senac assina convênio com Fundação Renascer em parceria com Superintendência Regional do Trabalho Senac Sergipe | Cursos Técnicos, Profissionalizantes e Educação para o Trabalho

Senac assina convênio com Fundação Renascer em parceria com Superintendência Regional do Trabalho

Com o compromisso de promover qualificação profissional, criando oportunidades para todos, o Serviço Nacional de Aprendizagem Comercial (Senac) Sergipe segue seu caminho de assistência, abrindo três turmas de qualificação profissional para menores que cumprem medidas socioeducativas em regime de semiliberdade, assistidos pela Fundação Renascer. A ação faz parte do projeto desenvolvido em parceria com o Ministério Público Estadual e promoverá a inclusão dos adolescentes com cursos de Aprendizagem Profissional Comercial em Serviços Administrativos.

Os trabalhos desenvolvidos em uma das unidades da Renascer contam o apoio da Superintendência Regional do Trabalho e visam dar oportunidades para os menores que cometeram atos infracionais, para que possam ter uma nova vida com chances de ingressarem o mercado de trabalho, por meio do processo de aprendizagem profissional.

As aulas estão sendo ministradas na modalidade de ensino à distância, por meio da plataforma Microsoft Teams, com a participação presencial de instrutores para dar apoio aos alunos. O presidente do Sistema Fecomércio/Sesc/Senac, Laércio Oliveira, destacou a importância da promoção de qualificação para os menores, garantindo a eles a oportunidade de aprenderem uma profissão e se reinserirem na sociedade, por meio do trabalho.

“O que precisamos mudar na vida desses adolescentes é a chance de oportunidades para crescerem na vida. Muitos não têm como se qualificar profissionalmente e o Senac vem por meio dessa ação, levar dignidade para os assistidos da fundação. Qualificar os jovens que ainda estão começando sua vida, os leva a seguir os caminhos da retidão e trabalho. Esse é um dos papéis do Senac, promover oportunidades para todos, sem distinção.”, disse Laércio.

renascer001

 

“Essa parceria com o Senac é parte constitutiva do projeto que é reconstruir vidas. Com essa ação, buscamos dar oportunidade para os jovens ressignificar suas vidas, pois muitos deles sofrem com as condições socioeconômicas que vivem. E o Sistema Fecomércio, por meio do Senac tem sido um grande parceiro, pois se faz presente com os jovens, dando oportunidades para que se coloquem no mercado de trabalho, dando dignidade para suas vidas”, enfatizou o diretor-presidente da Fundação Renascer, Wellington Mangueira.

“São parcerias como essas do Ministério Público e com a Superintendência Regional do Trabalho que mostram o papel do Senac na inclusão social que é fundamental para que os caminhos se abram para esses jovens, dando chances reais de entrarem no mercado de trabalho e vencerem na vida, sem descaminhos”, enfatizou a diretora regional do Senac, Priscila Felizola.

Já, o empresário Alysson Moura, da NC Vigilância, valorizou a parceria firmada com o Senac, Procuradoria do Trabalho e a Renascer, que estimula a responsabilidade social em promover oportunidades para os jovens de conquistarem seu primeiro emprego e iniciar o processo de transformação de suas vidas.  “O Grupo NC se sente honrado em ser a primeira empresa a fazer parte dessa parceria e esperamos que outras empresas se engajem nesse processo.” afirmou.

As turmas possuem carga de aprendizado de 1.280 horas, aplicadas em 16 meses, com 480 horas de aulas teóricas e 800 de aulas práticas, colocando os jovens no mercado para a conquista de um emprego e mudarem suas vidas. O convênio foi assinado pelo gerente do Centro de Formação Profissional (CFP) Aracaju do Senac, Antônio Santana, Wellington Mangueira, da Fundação Renascer e Alysson Moura, da NC Vigilância.

Categorias relacionadas:Destaques
Compartilhar o Post:

Transforme seu futuro agora.

Cursos
Notícias