fix: summary route and trackerService refinements
This commit is contained in:
parent
5783f80e38
commit
ccdd16a626
|
|
@ -28,7 +28,9 @@ function buildBankTrackingSummary(db, userId, year, month) {
|
|||
const effectivePendingDays = Number.isInteger(pendingDays) && pendingDays >= 0
|
||||
? pendingDays : DEFAULT_PENDING_DAYS;
|
||||
|
||||
// Payments made in the tracker recently that may not have cleared the bank yet
|
||||
// Only count manually-entered payments as pending — bank-synced payments
|
||||
// (provider_sync) are already reflected in the live bank balance, so
|
||||
// including them would double-deduct.
|
||||
const pendingRow = effectivePendingDays > 0
|
||||
? db.prepare(`
|
||||
SELECT COALESCE(SUM(p.amount), 0) AS pending_total
|
||||
|
|
@ -38,6 +40,7 @@ function buildBankTrackingSummary(db, userId, year, month) {
|
|||
AND p.paid_date >= date('now', '-' || ? || ' days')
|
||||
AND p.paid_date <= date('now')
|
||||
AND b.deleted_at IS NULL
|
||||
AND (p.payment_source IS NULL OR p.payment_source != 'provider_sync')
|
||||
`).get(userId, effectivePendingDays)
|
||||
: { pending_total: 0 };
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ function buildBankTracking(db, userId, year, month) {
|
|||
const pendingDays = parseInt(settings.bank_tracking_pending_days, 10);
|
||||
const days = Number.isInteger(pendingDays) && pendingDays >= 0 ? pendingDays : DEFAULT_PENDING_DAYS;
|
||||
|
||||
// Only count manually-entered payments as pending — bank-synced payments
|
||||
// (provider_sync) are already reflected in the live bank balance, so
|
||||
// including them would double-deduct.
|
||||
const pendingRow = days > 0
|
||||
? db.prepare(`
|
||||
SELECT COALESCE(SUM(p.amount), 0) AS pending_total
|
||||
|
|
@ -31,6 +34,7 @@ function buildBankTracking(db, userId, year, month) {
|
|||
WHERE b.user_id = ?
|
||||
AND p.paid_date >= date('now', '-' || ? || ' days')
|
||||
AND p.paid_date <= date('now') AND b.deleted_at IS NULL
|
||||
AND (p.payment_source IS NULL OR p.payment_source != 'provider_sync')
|
||||
`).get(userId, days)
|
||||
: { pending_total: 0 };
|
||||
|
||||
|
|
@ -445,8 +449,9 @@ function getTracker(userId, query = {}, now = new Date()) {
|
|||
cashflow,
|
||||
rows: bankTracking.enabled
|
||||
? rows.map(r => {
|
||||
// Flag recently-paid rows as pending-cleared when bank tracking is on
|
||||
if (r.status === 'paid' && r.last_paid_date) {
|
||||
// Only flag manually-entered payments as pending-cleared — bank-synced
|
||||
// payments are already in the balance so they don't need the badge.
|
||||
if (r.status === 'paid' && r.last_paid_date && r.payment_source !== 'provider_sync') {
|
||||
const cutoff = new Date();
|
||||
cutoff.setDate(cutoff.getDate() - bankTracking.pending_days);
|
||||
const paidAt = new Date(r.last_paid_date);
|
||||
|
|
|
|||
Loading…
Reference in New Issue