Fixing query and logic used to build the report. The values in the columns where not matching.

pull/169/head
Matheus Lima 2019-06-01 16:42:02 -03:00
parent 7ffc36ef35
commit e53d3ccf41
2 changed files with 12 additions and 13 deletions

View File

@ -225,14 +225,14 @@ class AccountRepository(RepositoryBase):
}, {
'type': 'Free Account',
'current': report_1_day['free_total'],
'oneDay': report_1_day['free_total'] - report_1_day['free_new'],
'oneDayDelta': report_1_day['free_new'],
'oneDay': report_1_day['free_total'] - report_1_day['total_new'] + report_1_day['paid_new'],
'oneDayDelta': report_1_day['total_new'] - report_1_day['paid_new'],
'oneDayMinus': 0,
'fifteenDays': report_15_days['free_total'] - report_15_days['free_new'],
'fifteenDaysDelta': report_15_days['free_new'],
'fifteenDays': report_15_days['free_total'] - report_15_days['total_new'] + report_15_days['paid_new'],
'fifteenDaysDelta': report_15_days['total_new'] - report_15_days['paid_new'],
'fifteenDaysMinus': 0,
'thirtyDays': report_30_days['free_total'] - report_30_days['free_new'],
'thirtyDaysDelta': report_30_days['free_new'],
'thirtyDays': report_30_days['free_total'] - report_30_days['total_new'] + report_30_days['paid_new'],
'thirtyDaysDelta': report_30_days['total_new'] - report_30_days['paid_new'],
'thirtyDaysMinus': 0
}, {
'type': 'Monthly Account',

View File

@ -2,16 +2,15 @@ SELECT
COUNT(acc) AS total,
COUNT(acc) FILTER(WHERE acc.insert_ts::DATE >= (CURRENT_DATE - INTERVAL %(start)s)) AS total_new,
COUNT(acc) FILTER(WHERE acc_mem.account_id IS NULL) as free_total,
COUNT(acc) FILTER(WHERE acc_mem.account_id IS NULL AND (acc.insert_ts >= (CURRENT_DATE - INTERVAL %(start)s) OR UPPER(acc_mem.membership_ts_range) IS NOT NULL)) as free_new,
COUNT(mem) FILTER(WHERE mem.rate_period = 'month' AND UPPER(acc_mem.membership_ts_range) IS NULL) AS monthly_total,
COUNT(mem) FILTER(WHERE mem.rate_period = 'month' AND UPPER(acc_mem.membership_ts_range) IS NULL AND acc_mem.insert_ts >= (CURRENT_DATE - INTERVAL %(start)s)) AS monthly_new,
COUNT(mem) FILTER(WHERE mem.rate_period = 'month' AND UPPER(acc_mem.membership_ts_range) IS NOT NULL AND acc_mem.insert_ts >= (CURRENT_DATE - INTERVAL %(start)s)) AS monthly_minus,
COUNT(mem) FILTER(WHERE mem.rate_period = 'month' AND UPPER(acc_mem.membership_ts_range) IS NULL AND LOWER(acc_mem.membership_ts_range) >= (CURRENT_DATE - INTERVAL %(start)s)) AS monthly_new,
COUNT(mem) FILTER(WHERE mem.rate_period = 'month' AND UPPER(acc_mem.membership_ts_range) IS NOT NULL AND LOWER(acc_mem.membership_ts_range) >= (CURRENT_DATE - INTERVAL %(start)s)) AS monthly_minus,
COUNT(mem) FILTER(WHERE mem.rate_period = 'year' AND UPPER(acc_mem.membership_ts_range) IS NULL) AS yearly_total,
COUNT(mem) FILTER(WHERE mem.rate_period = 'year' AND UPPER(acc_mem.membership_ts_range) IS NULL AND acc_mem.insert_ts >= (CURRENT_DATE - INTERVAL %(start)s)) AS yearly_new,
COUNT(mem) FILTER(WHERE mem.rate_period = 'year' AND UPPER(acc_mem.membership_ts_range) IS NOT NULL AND acc_mem.insert_ts >= (CURRENT_DATE - INTERVAL %(start)s)) as yearly_minus,
COUNT(mem) FILTER(WHERE mem.rate_period = 'year' AND UPPER(acc_mem.membership_ts_range) IS NULL AND LOWER(acc_mem.membership_ts_range) >= (CURRENT_DATE - INTERVAL %(start)s)) AS yearly_new,
COUNT(mem) FILTER(WHERE mem.rate_period = 'year' AND UPPER(acc_mem.membership_ts_range) IS NOT NULL AND LOWER(acc_mem.membership_ts_range) >= (CURRENT_DATE - INTERVAL %(start)s)) as yearly_minus,
COUNT(acc_mem) AS paid_total,
COUNT(acc_mem) FILTER(WHERE UPPER(acc_mem.membership_ts_range) IS NULL AND acc_mem.insert_ts >= (CURRENT_DATE - INTERVAL %(start)s)) AS paid_new,
COUNT(acc_mem) FILTER(WHERE UPPER(acc_mem.membership_ts_range) IS NOT NULL AND acc_mem.insert_ts >= (CURRENT_DATE - INTERVAL %(start)s)) AS paid_minus
COUNT(acc_mem) FILTER(WHERE UPPER(acc_mem.membership_ts_range) IS NULL AND LOWER(acc_mem.membership_ts_range) >= (CURRENT_DATE - INTERVAL %(start)s)) AS paid_new,
COUNT(acc_mem) FILTER(WHERE UPPER(acc_mem.membership_ts_range) IS NOT NULL AND LOWER(acc_mem.membership_ts_range) >= (CURRENT_DATE - INTERVAL %(start)s)) AS paid_minus
FROM
account.account acc
LEFT JOIN