Fix: synchronize server.js portal logic with server.selfhosted.js to include db.amount_original and db.discount in double discount recovery
This commit is contained in:
parent
e7ded2df80
commit
8d29449666
|
|
@ -0,0 +1,27 @@
|
||||||
|
const db = {
|
||||||
|
amount_original: '150.00',
|
||||||
|
valor: '150.00',
|
||||||
|
discount: '20.00'
|
||||||
|
};
|
||||||
|
|
||||||
|
const jsonP = {
|
||||||
|
amount: 150, // Assuming webhook corrupted it
|
||||||
|
discount: 20
|
||||||
|
};
|
||||||
|
|
||||||
|
let amountOriginal = Number(db.amount_original) || Number(jsonP.amount) || Number(db.valor) || 0;
|
||||||
|
const discount = Number(db.discount) || (jsonP.amount ? Number(jsonP.discount || 0) : 0);
|
||||||
|
|
||||||
|
console.log('amountOriginal before:', amountOriginal);
|
||||||
|
console.log('discount:', discount);
|
||||||
|
console.log('db.valor:', Number(db.valor));
|
||||||
|
|
||||||
|
if (amountOriginal === Number(db.valor) && discount > 0) {
|
||||||
|
amountOriginal += discount;
|
||||||
|
console.log('BUGFIX APPLIED! New amountOriginal:', amountOriginal);
|
||||||
|
} else {
|
||||||
|
console.log('BUGFIX NOT APPLIED. Conditions:', {
|
||||||
|
isEqual: amountOriginal === Number(db.valor),
|
||||||
|
hasDiscount: discount > 0
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -275,8 +275,8 @@ app.get('/api/portal/financeiro', authMiddleware, async (req, res) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let amountOriginal = Number(jsonP.amount) || Number(db.valor) || 0;
|
let amountOriginal = Number(db.amount_original) || Number(jsonP.amount) || Number(db.valor) || 0;
|
||||||
const discount = jsonP.amount ? Number(jsonP.discount || 0) : 0;
|
const discount = Number(db.discount) || (jsonP.amount ? Number(jsonP.discount || 0) : 0);
|
||||||
|
|
||||||
// [Bugfix]: Recupera o valor bruto corrompido pelo webhook antigo
|
// [Bugfix]: Recupera o valor bruto corrompido pelo webhook antigo
|
||||||
if (amountOriginal === Number(db.valor) && discount > 0) {
|
if (amountOriginal === Number(db.valor) && discount > 0) {
|
||||||
|
|
|
||||||
|
|
@ -286,7 +286,11 @@ app.get('/api/portal/financeiro', authMiddleware, async (req, res) => {
|
||||||
// significa que o webhook antigo sobrescreveu o valor bruto pelo líquido no JSON.
|
// significa que o webhook antigo sobrescreveu o valor bruto pelo líquido no JSON.
|
||||||
// Neste caso, o valor bruto real é o líquido + desconto.
|
// Neste caso, o valor bruto real é o líquido + desconto.
|
||||||
if (amountOriginal === Number(db.valor) && discount > 0) {
|
if (amountOriginal === Number(db.valor) && discount > 0) {
|
||||||
|
console.log(`[BUGFIX] Recovering amount for ${asaasId}: amountOriginal=${amountOriginal}, db.valor=${db.valor}, discount=${discount}. New amount: ${amountOriginal + discount}`);
|
||||||
amountOriginal += discount;
|
amountOriginal += discount;
|
||||||
|
} else if (asaasId === 'pay_iipssljwa9df3fsq' || asaasId === 'pay_krkf6cinlekjvw3l') {
|
||||||
|
// Log para debug se a condição falhar para os pagamentos conhecidos
|
||||||
|
console.log(`[DEBUG_FAIL] Bugfix failed for ${asaasId}: amountOriginal=${amountOriginal}, db.valor=${db.valor}, discount=${discount}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
finalPayments.push({
|
finalPayments.push({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue