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

Crise de postos de gasolina afeta produtores de etanol no Brasil

Crise de postos de gasolina afeta produtores de etanol no Brasil -
Crise de postos de gasolina afeta produtores de etanol no Brasil

Fabiana Batista

24/07/2020 10h15

A queda das vendas de combustíveis que afeta postos de gasolina também atinge produtores de etanol no Brasil.

Postos em grandes cidades evitaram subir os preços da gasolina para manter as vendas, mesmo com o aumento dos custos das refinarias. Desde abril, o custo no atacado aumentou 59%, enquanto os preços nas bombas caíram 4% no estado de São Paulo, segundo dados da Petrobras e da ANP (Agência Nacional do Petróleo).

Com isso, a gasolina tem se apresentado mais atrativa aos motoristas do que o etanol. Isso tem adiado a recuperação das vendas do biocombustível, disse Tarcilo Rodrigues, diretor da trading de etanol Bioagência.

As vendas de etanol abaixo do esperado neste ano podem elevar os estoques de biocombustíveis, já acima dos níveis do ano ado. Além disso, mesmo com as usinas tendo desviado o máximo possível de caldo da cana para produzir açúcar, a produção de etanol está acima das expectativas, pois o tempo seco melhorou o teor de açúcar na cana, disse Rodrigues.

Em maio, as vendas de gasolina caíram 20%, enquanto para o etanol a baixa foi de 30% em relação ao ano anterior, segundo estatísticas da Bioagência com base em dados da ANP. Em junho, a situação pode não ter mudado muito, afirmou Rodrigues. "Podemos ver uma virada a partir de agosto, quando os preços mais altos da gasolina podem se refletir nas bombas", disse.

No entanto, distribuidores são mais pessimistas quanto ao momento da recuperação. Muitos proprietários de postos de gasolina estão fechando ou vendendo o negócio a concorrentes por problemas financeiros. A pandemia de coronavírus reduziu a circulação de veículos e, portanto, demanda por combustível.

"Até agora, a recuperação foi mais lenta do que o esperado", disse Paulo Miranda Soares, presidente da associação que representa postos de gasolina do Brasil.

Ele diz não acreditar que os postos vão rear o aumento da gasolina no curto prazo com receio de perder mais vendas.

"Recebemos relatórios dizendo que a recuperação total das vendas de combustíveis poderia ocorrer em novembro. Mas sou um pouco pessimista sobre isso. A propagação do vírus ainda não atingiu o pico no Brasil", disse em entrevista por telefone.