fix: complete analytics edge cases
This commit is contained in:
@@ -14,6 +14,7 @@ interface BaseParams {
|
||||
from: string;
|
||||
to: string;
|
||||
accountId?: number;
|
||||
categoryId?: number;
|
||||
onlyConfirmed?: boolean;
|
||||
}
|
||||
|
||||
@@ -61,6 +62,13 @@ function buildBaseConditions(
|
||||
values.push(params.accountId);
|
||||
idx++;
|
||||
}
|
||||
if (params.categoryId != null) {
|
||||
conditions.push(params.categoryId === 0 ? 't.category_id IS NULL' : `t.category_id = $${idx}`);
|
||||
if (params.categoryId !== 0) {
|
||||
values.push(params.categoryId);
|
||||
idx++;
|
||||
}
|
||||
}
|
||||
if (params.onlyConfirmed) {
|
||||
conditions.push('t.is_category_confirmed = TRUE');
|
||||
}
|
||||
@@ -196,6 +204,8 @@ export async function getTimeseries(
|
||||
}
|
||||
|
||||
const txConditions: string[] = [
|
||||
't.operation_at::date >= $1::date',
|
||||
't.operation_at::date <= $2::date',
|
||||
't.operation_at::date >= p.period_start',
|
||||
't.operation_at::date <= p.period_end',
|
||||
];
|
||||
@@ -207,8 +217,11 @@ export async function getTimeseries(
|
||||
values.push(params.accountId);
|
||||
}
|
||||
if (params.categoryId != null) {
|
||||
txConditions.push(`t.category_id = $${idx++}`);
|
||||
values.push(params.categoryId);
|
||||
if (params.categoryId === 0) txConditions.push('t.category_id IS NULL');
|
||||
else {
|
||||
txConditions.push(`t.category_id = $${idx++}`);
|
||||
values.push(params.categoryId);
|
||||
}
|
||||
}
|
||||
if (params.onlyConfirmed) {
|
||||
txConditions.push('t.is_category_confirmed = TRUE');
|
||||
|
||||
Reference in New Issue
Block a user