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

McDonald's diz que fechamento de unidades na Rússia custará US$ 50 mi por mês

O fechamento temporário de 847 restaurantes do McDonald"s na Rússia custará cerca de US$ 50 milhões por mês - Getty Images/iStockphotos
O fechamento temporário de 847 restaurantes do McDonald's na Rússia custará cerca de US$ 50 milhões por mês Imagem: Getty Images/iStockphotos

Hilary Russ e Praveen Paramasivam

Em Nova York e em Bengaluru

09/03/2022 13h37Atualizada em 09/03/2022 13h51

O McDonald's disse nesta quarta-feira que o fechamento temporário de suas 847 lojas na Rússia custará à rede de fast-food cerca de 50 milhões de dólares por mês.

Uma onda de grandes marcas norte-americanas, incluindo Starbucks, PepsiCo e Coca-Cola também anunciaram a saída total ou parcial da Rússia, após a invasão da Ucrânia pelo país.

O McDonald's, um ícone da era pós-soviética, istra 84% de suas unidades na Rússia e disse que continuará pagando todos os seus 62.000 funcionários istrativos e de restaurantes. Outros custos virão de alugueis e cadeia de suprimentos, disse o diretor financeiro da companhia, Kevin Ozan, durante uma conferência organizada pelo UBS nesta quarta-feira.

"Esta é uma situação realmente desafiadora e complexa para uma empresa global como nós", disse ele.

Outras sete marcas de fast-food com mais de 2.600 pontos de venda combinados na Rússia também podem sofrer um impacto financeiro de qualquer decisão de retirada do país, embora quase todos esses restaurantes sejam de propriedade e operados por franqueados independentes.

A rede de pizzarias Papa John's disse em comunicado nesta quarta-feira que pode ter que absorver o custo de 15,2 milhões de dólares de recebíveis associados ao seu franqueado master na Rússia, que istra todos os seus 188 restaurantes no país.

Os royalties do franqueado representaram menos de 1% da receita total da Papa Johns em 2021, disse a empresa.

A rede de pizzarias também anunciou a interrupção de todo e operacional, de marketing e de negócios com o mercado russo e afirmou que não está recebendo royalties de restaurantes no país. O franqueado do grupo na Rússia possui e opera sua própria cadeia de suprimentos.