0% acharam este documento útil (0 voto)
8 visualizações4 páginas

Ajustes no Dashboard UTMify

Enviado por

heitor.afini
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
8 visualizações4 páginas

Ajustes no Dashboard UTMify

Enviado por

heitor.afini
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

// ==UserScript==

// @name Alterar Valores, Cálculos e Cores no Dashboard UTMify


// @namespace [Link]
// @version 2.1
// @description Altera valores, faz cálculos e aplica cores no dashboard da
UTMify.
// @author Você
// @match [Link]
// @grant none
// ==/UserScript==

(function () {
'use strict';

// Função para formatar valores no padrão brasileiro


function formatarValorBR(valor) {
return `R$ ${[Link]('pt-BR', { minimumFractionDigits: 2,
maximumFractionDigits: 2 })}`;
}

// Função para formatar faturamento com "K" para valores acima de 1000
function formatarFaturamentoComK(valor) {
if (valor >= 1000) {
const valorEmK = (valor / 1000).toFixed(1);
return `R$ ${valorEmK}K`;
} else {
return formatarValorBR(valor);
}
}

// Função para salvar valores no Local Storage


function salvarNoLocalStorage(chave, valor) {
[Link](chave, [Link](2));
}

// Função para recuperar valores do Local Storage


function recuperarDoLocalStorage(chave, valorPadrao) {
const valor = [Link](chave);
return valor !== null ? parseFloat(valor) : valorPadrao;
}

// Função para atualizar valores e aplicar estilos


function atualizarValorComEstilo(dataType, valor, isCurrency = false, cor =
null) {
const elemento = [Link](`[data-type="${dataType}"] h2`);
if (elemento) {
[Link] = isCurrency ? formatarValorBR(valor) : valor;
if (cor) {
[Link] = cor;
}

const titulo = [Link]('.card-body').querySelector('h6');


if (titulo && cor) {
[Link] = cor;
}

const svgIcon = [Link]('.card-body').querySelector('svg');


if (svgIcon && cor) {
[Link]('stroke', cor);
}
} else {
[Link](`Elemento não encontrado para data-type: ${dataType}`);
}
}

// Função para calcular o ROAS (Faturamento Líquido / Gastos com Anúncios)


function calcularRoas(faturamento, gastos) {
return gastos > 0 ? (faturamento / gastos).toFixed(2) : 0;
}

// Função para calcular o ROI (Faturamento Líquido - Gastos com Anúncios) /


Gastos com Anúncios
function calcularRoi(faturamento, gastos) {
return gastos > 0 ? (faturamento / gastos).toFixed(2) : 0;
}

// Função para calcular a Margem de Lucro


function calcularMargem(faturamento, gastos) {
const margem = ((faturamento - gastos) / faturamento) * 100;
return `${[Link](1)}%`;
}

// Função para calcular o Lucro


function calcularLucro(faturamento, gastos) {
return faturamento - gastos;
}

// Função para alterar o valor "R$ 17.4K" com base no faturamento total
function alterarValorDinamico(valor) {
const valorElement = [Link]('[Link]-bolder');
if (valorElement) {
[Link] = formatarFaturamentoComK(valor);
} else {
[Link]('Elemento com classe "fw-bolder" não encontrado.');
}
}

// Função para preencher a barra de progresso com base no faturamento total


function preencherBarraDeProgresso(valor) {
const barra = [Link]('.progress-bar');
const valorMaximo = 1000000;
if (barra) {
const porcentagem = [Link]((valor / valorMaximo) * 100, 100);
[Link] = `${porcentagem}%`;
} else {
[Link]('Elemento da barra de progresso não encontrado.');
}
}

// Função para gerar um valor aleatório entre 300 e 2000


function gerarValorAleatorio(min, max) {
return ([Link]() * (max - min) + min).toFixed(2);
}

// Função para inicializar as alterações


function init() {
const verificarElementos = setInterval(() => {
const cards = [Link]('[data-type]');
if ([Link] > 0) {
clearInterval(verificarElementos);

// Recuperar valores salvos ou definir valores padrão


let faturamentoLiquido =
recuperarDoLocalStorage('faturamentoLiquido', 56450.81);
let faturamentoTotal = recuperarDoLocalStorage('faturamentoTotal',
512200.00);
const gastosAnuncios = 8544.65;
const vendasPendentes = 15645.15;
const vendasRembolsada = 2042.56;

// Função para recalcular os valores no dashboard


function recalcularValores() {
const roas = calcularRoas(faturamentoLiquido, gastosAnuncios);
const roi = calcularRoi(faturamentoLiquido, gastosAnuncios);
const margem = calcularMargem(faturamentoLiquido,
gastosAnuncios);
const lucro = calcularLucro(faturamentoLiquido,
gastosAnuncios);

atualizarValorComEstilo('NetRevenue', faturamentoLiquido,
true);
atualizarValorComEstilo('Spend', gastosAnuncios, true);
atualizarValorComEstilo('Roas', roas, false, '#2c9231');
atualizarValorComEstilo('Profit', lucro, true, '#2c9231');
atualizarValorComEstilo('Roi', roi, false, '#2c9231');
atualizarValorComEstilo('PendingCommission', vendasPendentes,
true); // Vendas Pendentes
atualizarValorComEstilo('ProfitMargin', margem, false,
'#2c9231');
atualizarValorComEstilo('RefundedCommission', vendasRembolsada,
true);
alterarValorDinamico(faturamentoTotal);
preencherBarraDeProgresso(faturamentoTotal);
}

// Atualizar valores ao carregar a página


recalcularValores();

// Selecionar o botão "Atualizar"


const botaoAtualizar = [Link]('[Link]-
[Link]-primary');
if (botaoAtualizar) {
[Link]('click', () => {
const incremento = parseFloat(gerarValorAleatorio(50,
121));
faturamentoLiquido += incremento;
faturamentoTotal += incremento;

salvarNoLocalStorage('faturamentoLiquido',
faturamentoLiquido);
salvarNoLocalStorage('faturamentoTotal', faturamentoTotal);

recalcularValores();
});
}
}
}, 100);
}

// Inicializar as alterações após o carregamento da página


[Link]('load', init);
})();

Você também pode gostar