;(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

Supermercados vão monitorar aumento de preços abusivos de fabricantes

Maria Luiza Pereira

Colaboração para o UOL, em São Paulo

17/09/2021 04h00

A Associação Brasileira de Supermercados (Abras) iniciou uma parceria com a Fundação Instituto de istração (FIA) para analisar preços das indústrias e verificar quais aumentos são aceitáveis e quais não são justificáveis. Com essas informações, o setor pode evitar a alta abusiva de preços.

"Queremos que os supermercados conheçam melhor o processo produtivo e se antecipem a movimentos que possam levar a aumentos abusivos de preço. Isso também ajuda a melhorar o consumo das famílias", disse Márcio Milan, vice-presidente da Abras, em declaração à imprensa.

Arroz subiu além da conta, diz FIA

O primeiro produto avaliado pela parceria foi o arroz. O quilo do alimento subiu 39,8% nas prateleiras em 12 meses, segundo a Abras.

Em análise feita pela FIA em relação ao preço do arroz, a pesquisa mostrou que, mesmo com o aumento no custo dos combustíveis, o preço do arroz está mais alto do que deveria.

Portanto, os supermercados foram informados pela fundação de que o aumento no custo de produção do arroz e no preço de combustíveis não condiz com os custos do setor. Mas a FIA não informou qual seria a alta considerada razoável no preço do arroz.

Mais estudos devem ser feitos com produtos como com óleo, carne bovina e suína, ovos, leite, milho e trigo. Com essas informações, as lojas associadas podem pressionar os fornecedores por preços mais baixos.

Associação nega aumento abusivo

A Associação Brasileira da Indústria do Arroz (Abiarroz) discorda que o aumento no preço do produto tenha sido abusivo.

"Os custos que levamos em conta não é só são combustível e produção. Claro que impactam bastante, mas também temos os insumos, defensivos agrícolas, custo de embalagens, que subiu mais de 100%, e o de energia", afirma Andressa Silva, diretora-executiva da Abiarroz.

De acordo com Andressa, o preço do arroz estava defasado nos supermercados antes da pandemia, o que causou a saída de muitos produtores da cultura, que aram para outras mais lucrativas, como a pecuária, a soja e o trigo.

Além disso, com a alta do dólar, muitos produtores também optaram por exportar sua safra, o que aumentou o preço no mercado interno.

No primeiro semestre do ano ado, no início da pandemia, também houve "compras de pânico" por parte dos consumidores.

Variedade de marcas ajuda consumidor

De acordo com Marcos Milan, vice-presidente da Abras, há um aumento de marcas nos supermercados, expandindo a variedade de preços e possibilitando melhores negociações. O aumento no número de marcas também é bom para o consumidor por estimular a concorrência.

"Vimos que o número de marcas de qualidade cresceu e que os valores são muito variados. Temos cerca de nove a 12 marcas de arroz e feijão no mercado, por exemplo", diz Milan.