• 0
MERCADO_INTER

Cálculos não batem, Preciso de ajuda.

Question

Essa fórmula até então funcionava , mas eu deparei com algumas exceções onde (26.50 + 71.22) não deixa uma fórmula retornar p valor de 71.22 q é o lucro.

 

 

função calculTaxas () {
    var precoDoFornecedor = 26.50;
    var marginDeLucro = 71,22; // Int Número
    var soma_A = precoDoFornecedor + margemDeLucro;

    //
    taxa var taxaExtra = 5.00; // Número Int
    var taxaPremium_16p = 16/100; // Float percent (%)
    var acrescidoSugerido = 1 - taxaPremium_16p; // Porcentagem de flutuação (%)

    // Acrescentando como taxas
    var valoAnuncio = tools.round (soma_A / acrescimoSugerido);

    if (valoAnuncio <= 119.99) {
        var var_VA = tools.round (soma_A + 5);
        valoAnuncio = tools.round (var_VA / acrescimoSugerido);
    }
    ////////////////////////////////
    


    // Removendo as taxas
    if (valoAnuncio <= 119.99) {
        var descontaP = valoAnuncio * taxaPremium_16p;
        var descontaT = descontaP + taxaExtra;
        var descontoF = valoAnuncio - descontaT;
    } else {
        var descontaP = valoAnuncio * taxaPremium_16p;
        var descontoF = valoAnuncio - descontaP;
    }

    var margemDeLucroFinal = tools.round (descontoF - precoDoFornecedor);

    console.log (margemDeLucroFinal);

    // O Objetvo é fazer o "margemDeLucroFinal" chegar ao valor identico a "margemDeLucro"
    // "valoAnuncio" de ate 119.99 pagará "taxaExtra" 
    // "valoAnuncio" de 120 ou maior não pagará "taxaExtra" 
    // Esta formula funciona com varios outros valores testando valores maiores ou menores que 120, mas encontrei alguns valores (71.22 + 26.50) em que a formula não retorna os valores esperados, sempre sobrando "5". 

}
calcularTaxas();

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Isso não é dúvida da API, é aritmética e lógica.
Na sua 3a linha de código há um número com o decimal errado. Mas declara como inteiro.
taxaExtra é um inteiro e você usa decimais?
O seu cálculo tende a dar errado se usa nome de variáveis diferentes marginDeLucro != margemDeLucro

No desconto fica mais fácil, pois você já parte do valor final e sabe como está em relação aos 120,00.

Olha que meleca: você faz o cálculo e chega no valor próximo a 120,00, mas se considerar os 5,00 o valor passa dos 120,00, e passa a não ser descontado 🙂
Vamos pensar que você não adicionou o valor do "frete incluso grátis", quando passa dos 120,00 , xiiii! piorou o cálculo!
A meleca é que é uma equação um pouco mais complicada que sua lógica.

 

Share this post


Link to post
Share on other sites
  • 0

Fui verificar aqui agora e as variáveis estão corretas não sei o pq mudou aqui na hora de copiar e colar e mesmo o 5 com casas decimais não interfere no objetivo, ele estava sem casas decimais e então eu coloquei. fiz todos os testes possíveis mais não consegui.

 

vc tentou pelo menos desugar o código ?

Share this post


Link to post
Share on other sites
  • 0
On 8/23/2019 at 8:46 PM, rodrigojob said:

Isso não é dúvida da API, é aritmética e lógica.
Na sua 3a linha de código há um número com o decimal errado. Mas declara como inteiro.
taxaExtra é um inteiro e você usa decimais?
O seu cálculo tende a dar errado se usa nome de variáveis diferentes marginDeLucro != margemDeLucro

No desconto fica mais fácil, pois você já parte do valor final e sabe como está em relação aos 120,00.

Olha que meleca: você faz o cálculo e chega no valor próximo a 120,00, mas se considerar os 5,00 o valor passa dos 120,00, e passa a não ser descontado 🙂
Vamos pensar que você não adicionou o valor do "frete incluso grátis", quando passa dos 120,00 , xiiii! piorou o cálculo!
A meleca é que é uma equação um pouco mais complicada que sua lógica.

 

As logicas do mercado livre  que são fo.... sei que não tem nada ver com api mas eu preciso mesmo dessa ajuda.

se não tivesse essa de se 120 ou se 119.99 eu já tinha resolvido. eu confesso que me perdi totalmente nessa formula. Ta difícil resolver levando em consideração os requisitos do mercado livre

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now