2019-07-07 19:19:54 +02:00
DROP VIEW chores_current ;
CREATE VIEW chores_current
AS
SELECT
h . id AS chore_id ,
MAX ( l . tracked_time ) AS last_tracked_time ,
CASE h . period_type
WHEN ' manually ' THEN ' 2999-12-31 23:59:59 '
WHEN ' dynamic-regular ' THEN DATETIME ( MAX ( l . tracked_time ) , ' + ' | | CAST ( h . period_days AS TEXT ) | | ' day ' )
WHEN ' daily ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' +1 day ' )
WHEN ' weekly ' THEN
CASE
WHEN period_config LIKE ' %sunday% ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' 1 days ' , ' weekday 0 ' )
WHEN period_config LIKE ' %monday% ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' 1 days ' , ' weekday 1 ' )
WHEN period_config LIKE ' %tuesday% ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' 1 days ' , ' weekday 2 ' )
WHEN period_config LIKE ' %wednesday% ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' 1 days ' , ' weekday 3 ' )
WHEN period_config LIKE ' %thursday% ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' 1 days ' , ' weekday 4 ' )
WHEN period_config LIKE ' %friday% ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' 1 days ' , ' weekday 5 ' )
WHEN period_config LIKE ' %saturday% ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' 1 days ' , ' weekday 6 ' )
END
WHEN ' monthly ' THEN DATETIME ( IFNULL ( MAX ( l . tracked_time ) , DATETIME ( ' now ' , ' localtime ' ) ) , ' +1 month ' , ' start of month ' , ' + ' | | CAST ( h . period_days - 1 AS TEXT ) | | ' day ' )
2019-07-07 19:38:57 +02:00
END AS next_estimated_execution_time ,
h . track_date_only
2019-07-07 19:19:54 +02:00
FROM chores h
LEFT JOIN chores_log l
ON h . id = l . chore_id
2019-07-07 19:47:05 +02:00
AND l . undone = 0
2019-07-07 19:19:54 +02:00
GROUP BY h . id , h . period_days ;