;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Logo Pagbenk Seu dinheiro rende mais
Topo

Assaí Atacadista abre mais de 3.000 vagas de empregos no Brasil

Assaí Atacadista prevê a abertura de até 28 lojas até o fim de 2021 - Divulgação
Assaí Atacadista prevê a abertura de até 28 lojas até o fim de 2021 Imagem: Divulgação

Colaboração para o UOL

15/09/2021 10h08

A rede de atacado Assaí anunciou a abertura de mais de 3,2 mil vagas de emprego para profissionais de todo o país. As oportunidades são divididas para atuação em lojas, centros de distribuição e escritórios, além de novas unidades que serão inauguradas até o fim deste ano.

De acordo com a empresa, todos os postos de trabalho são elegíveis a pessoas com deficiência. As vagas incluem oportunidades em diferentes áreas e cargos, desde funções de lideranças, técnicas e operacionais, até oportunidades para quem procura o primeiro emprego.

Os interessados devem se cadastrar pelo site da empresa e informar dados do RG, F, número de telefone e endereço de e-mail. Por conta da pandemia de covid-19, o processo seletivo será realizado totalmente online, o que também oferece mais agilidade e permite ao candidato acompanhar sua evolução pela plataforma.

Distribuição de vagas

São 746 oportunidades para atuação nas lojas, centros de distribuição e escritórios já existentes em todo o país, e mais de 2.540 vagas para as unidades em construção. A expectativa da empresa é de que, até o final deste ano, sejam abertas até 28 novas lojas em estados como Paraná, São Paulo, Rondônia, Acre, Pernambuco, Bahia e Rio de Janeiro.

As vagas incluem oportunidades para chefe de seção, fiscal de prevenção de perdas, repositor de mercadorias, operador de caixa, auxiliar de manutenção, operador de empilhadeira, auxiliar de cozinha, açougueiro, entre outros. Segundo a rede atacadista, outras oportunidades serão anunciadas nos próximos meses.

Os processos seletivos já foram iniciados para diversas lojas. Por isso, é preciso ficar atento às datas limites para inscrição, como no caso de Curitiba e Santa Bárbara d'Oeste (SP) que elas vão até o dia 17 de setembro. Já em Porto Velho é possível iniciar o cadastro até 30 de setembro. Em Rio Branco e Itapevi (SP), o prazo vai até o dia 08 de outubro, enquanto em Maringá (PR) e Cabo de Santo Agostinho (PE), seguem abertas até 22 de outubro. O maior prazo é para as vagas em Barreiras (BA) e Tijuca (RJ), que é 29 de outubro.