The macro, as the engine writes it for each warehouseSnowflake
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE CONCAT('Send ', COALESCE(CAST(LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END)) AS VARCHAR), '')) END
BigQuery
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE CONCAT('Send ', COALESCE(CAST(LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END)) AS STRING), '')) END
Databricks
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE CONCAT('Send ', COALESCE(CAST(LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END)) AS STRING), '')) END
Redshift
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE ('Send ' || COALESCE(CAST(LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END)) AS VARCHAR), '')) END
Postgres
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE CONCAT('Send ', LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + (30) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + (60) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + (90) * INTERVAL '1 day') >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END))) END
SQL Server, Azure SQL, Synapse, Fabric
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE CONCAT('Send ', LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATEADD(day, 30, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATEADD(day, 60, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATEADD(day, 90, CAST((({{ due_day }})) AS DATE)) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END))) END
Oracle
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE ('Send ' || LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(30, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(60, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN (CAST((({{ due_day }})) AS DATE) + NUMTODSINTERVAL(90, 'DAY')) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END))) END
MySQL
CASE WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'Paid' WHEN ({{ amount_paid }}) > 0 THEN CASE WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Partial, overdue' ELSE 'Partial' END WHEN CAST(({{ due_day }}) AS DATE) < CAST(({{ as_of }}) AS DATE) THEN 'Overdue' ELSE 'Open' END) = 'Paid' THEN 'Close' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'Collections' THEN 'Send to collections' WHEN (CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END) = 'None' THEN 'Wait' ELSE CONCAT('Send ', COALESCE(CAST(LOWER((CASE WHEN ({{ amount_paid }}) >= ({{ amount_due }}) THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = 'Current' THEN 'None' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '1-30' THEN 'Reminder' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '31-60' THEN 'Second notice' WHEN (CASE WHEN CAST((({{ due_day }})) AS DATE) >= CAST((({{ as_of }})) AS DATE) THEN 'Current' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 30 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '1-30' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 60 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '31-60' WHEN DATE_ADD(CAST((({{ due_day }})) AS DATE), INTERVAL 90 DAY) >= CAST((({{ as_of }})) AS DATE) THEN '61-90' ELSE '90+' END) = '61-90' THEN 'Final notice' ELSE 'Collections' END)) AS CHAR), '')) END