Fix: Use transaction type for sign
Updated `transacaoService.ts` to determine the sign of the transaction value based on the 'tipo' column instead of 'categoria'.
This commit is contained in:
parent
d7bf29cf60
commit
14f970f191
@ -111,10 +111,10 @@ const TransactionsTable = ({
|
|||||||
<DropdownMenuItem onClick={() => setSearchQuery('')}>
|
<DropdownMenuItem onClick={() => setSearchQuery('')}>
|
||||||
Todas
|
Todas
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem onClick={() => setSearchQuery('entrada')}>
|
<DropdownMenuItem onClick={() => setSearchQuery('receita')}>
|
||||||
Receitas
|
Receitas
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem onClick={() => setSearchQuery('saida')}>
|
<DropdownMenuItem onClick={() => setSearchQuery('despesa')}>
|
||||||
Despesas
|
Despesas
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
|
|||||||
@ -21,11 +21,11 @@ export async function getTransacoes(): Promise<Transaction[]> {
|
|||||||
id: item.id.toString(),
|
id: item.id.toString(),
|
||||||
user: item.user || '',
|
user: item.user || '',
|
||||||
created_at: item.created_at,
|
created_at: item.created_at,
|
||||||
valor: item.tipo === 'entrada' ? Math.abs(item.valor || 0) : -Math.abs(item.valor || 0),
|
valor: item.tipo === 'receita' ? Math.abs(item.valor || 0) : -Math.abs(item.valor || 0),
|
||||||
quando: item.quando || new Date().toISOString(),
|
quando: item.quando || new Date().toISOString(),
|
||||||
detalhes: item.detalhes || '',
|
detalhes: item.detalhes || '',
|
||||||
estabelecimento: item.estabelecimento || '',
|
estabelecimento: item.estabelecimento || '',
|
||||||
tipo: (item.tipo === 'entrada' || item.tipo === 'saida') ? item.tipo : 'saida',
|
tipo: item.tipo || 'saida',
|
||||||
categoria: item.categoria || 'Outros'
|
categoria: item.categoria || 'Outros'
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -44,11 +44,11 @@ export async function getTransactionSummary() {
|
|||||||
console.log("Dados para resumo encontrados:", data);
|
console.log("Dados para resumo encontrados:", data);
|
||||||
|
|
||||||
const totalReceitas = data
|
const totalReceitas = data
|
||||||
.filter(item => item.tipo === 'entrada')
|
.filter(item => item.tipo === 'receita')
|
||||||
.reduce((sum, item) => sum + Math.abs(item.valor || 0), 0);
|
.reduce((sum, item) => sum + Math.abs(item.valor || 0), 0);
|
||||||
|
|
||||||
const totalDespesas = data
|
const totalDespesas = data
|
||||||
.filter(item => item.tipo === 'saida')
|
.filter(item => item.tipo === 'despesa')
|
||||||
.reduce((sum, item) => sum + Math.abs(item.valor || 0), 0);
|
.reduce((sum, item) => sum + Math.abs(item.valor || 0), 0);
|
||||||
|
|
||||||
const resultado = {
|
const resultado = {
|
||||||
@ -66,7 +66,7 @@ export async function getCategorySummary() {
|
|||||||
const { data, error } = await supabase
|
const { data, error } = await supabase
|
||||||
.from('transacoes')
|
.from('transacoes')
|
||||||
.select('categoria, valor, tipo')
|
.select('categoria, valor, tipo')
|
||||||
.eq('tipo', 'saida');
|
.eq('tipo', 'despesa');
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('Erro ao buscar resumo de categorias:', error);
|
console.error('Erro ao buscar resumo de categorias:', error);
|
||||||
@ -132,7 +132,7 @@ export async function getMonthlyData() {
|
|||||||
const mesIndex = data.getMonth();
|
const mesIndex = data.getMonth();
|
||||||
const nomeMes = nomesMeses[mesIndex];
|
const nomeMes = nomesMeses[mesIndex];
|
||||||
|
|
||||||
if (item.tipo === 'entrada') {
|
if (item.tipo === 'receita') {
|
||||||
meses[nomeMes].receitas += Math.abs(item.valor);
|
meses[nomeMes].receitas += Math.abs(item.valor);
|
||||||
} else {
|
} else {
|
||||||
meses[nomeMes].despesas += Math.abs(item.valor);
|
meses[nomeMes].despesas += Math.abs(item.valor);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user