Evento ajax formulario II

boa tarde, outro evento ajax com erro
sou inciante, não consigo achar o erro
alguem poderia ajudar?
obrigado
evento:

$vdes = {ValorMensalidade};
if ({Desctopromo} > 0) {
if({Desconto} > 0) {
$vdes = $vdes - {Valoutros};
}
if({Desctococ} > 0) {
$vdes = $vdes - {Valcoc};
}
if ($vdes > 0) {
{Valcinco} = ($vdes) / ({Desctopromo}/100);
{Descinco} = {ValorMensalidade} - {Valoutros} - {Valcoc} - {valcinco};
} else {
{Valcinco} = ({ValorMensalidade} / ({Desctopromo}/100);
{Descinco} = {ValorMensalidade} - {valcinco};
}
} else {
{Valcinco} = 0;
{Descinco} = 0;
}

Nesta linha está faltando um ). Tente assim:

{Valcinco} = ({ValorMensalidade} / ({Desctopromo}/100));
1 Curtida

Nós sempre falamos mas não custa reforçar:
Códigos apliquem sempre entre [code][/code]
Identem o código, sempre deixa o código mais legível para identificar erros.
Evitem Ifs, se possível usando operadores ternários.
Apliquem Clean Code : https://balta.io/artigos/clean-code

{valCinco} = 0; //iniciem as variáveis em vez de limpa-las no else como fez no fim do código
{desCinco} = 0;
$vlrDes    = {valorMensalidade};
//adicionem uma linha em branco a cada grupo de informações parecidos e ifs

if ({desctoPromo} > 0) {  //simplifiquem o código 
    $vlrDes -=   {desconto} > 0  ?  {valOutros} : 0;
    $vlrDes -=   {desctoCoc} > 0 ?  {valCoc}    : 0;

    if ($vlrDes > 0) {
        {valCinco} = $vlrDes / {desctoPromo} / 100;  //coloquem parenteses somente quando necessário
        {desCinco} = {valorMensalidade} - {valOutros} - {valCoc} - {valCinco};
    } else {
        {valCinco} = {valorMensalidade} / {desctoPromo} / 100;
        {desCinco} = {valorMensalidade} - {valCinco};
    }
}

//* esse else é contra qual if??????? */
//} else {
//   {Valcinco} = 0;
//   {Descinco} = 0;
//}

quando usar parenteses?
$a = ($b + $c) / 100; //regras básicas de aritimética

veja a diferença:

$vdes = {ValorMensalidade};
if ({Desctopromo} > 0) {
if({Desconto} > 0) {
$vdes = $vdes - {Valoutros};
}
if({Desctococ} > 0) {
$vdes = $vdes - {Valcoc};
}
if ($vdes > 0) {
{Valcinco} = ($vdes) / ({Desctopromo}/100);
{Descinco} = {ValorMensalidade} - {Valoutros} - {Valcoc} - {valcinco};
} else {
{Valcinco} = ({ValorMensalidade} / ({Desctopromo}/100);
{Descinco} = {ValorMensalidade} - {valcinco};
}
} else {
{Valcinco} = 0;
{Descinco} = 0;
}

2 Curtidas

obrigado mais uma vez

obrigado pela dica mais uma vez

1 Curtida

nesta linha

*{Descinco} = {ValorMensalidade} - {Valoutros} - {Valcoc} - {valcinco};*

eu faria assim:

*{Descinco} = {ValorMensalidade} - ({Valoutros} + {Valcoc} + {valcinco});*

o resultado será o mesmo nas duas opções então o parênteses não se faz necessário.

1 Curtida

Jair, esta forma que você descreveu é mais prática!!

Opa, tá aí algo que queria entender… por que é mais prática?

2 Curtidas

Pois é Kleyber, para alguns escrever mais e poluir o código é mais prático, vai entender né?
Inversão de valores está na moda hoje em dia.
E foi justamente no parenteses que o colega errou.

2 Curtidas