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