Skip to content

Commit baa01a3

Browse files
committed
Send income notifications if unit is invoiced by municipality
1 parent 03b8689 commit baa01a3

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

service/src/integrationTest/kotlin/fi/espoo/evaka/invoicing/service/OutdatedIncomeNotificationsIntegrationTest.kt

+23
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,29 @@ class OutdatedIncomeNotificationsIntegrationTest : FullApplicationTest(resetDbBe
172172
)
173173
}
174174

175+
@Test
176+
fun `notification is not sent if placement unit is not invoiced by municipality`() {
177+
db.transaction {
178+
it.execute {
179+
sql(
180+
"UPDATE daycare SET invoiced_by_municipality = false WHERE id = ${bind(daycareId)}"
181+
)
182+
}
183+
184+
it.insert(
185+
DevIncome(
186+
personId = fridgeHeadOfChildId,
187+
modifiedBy = AuthenticatedUser.SystemInternalUser.evakaUserId,
188+
validFrom = clock.today().minusMonths(1),
189+
validTo = clock.today().plusWeeks(4),
190+
)
191+
)
192+
}
193+
194+
assertEquals(0, getEmails().size)
195+
assertEquals(0, getIncomeNotifications(fridgeHeadOfChildId).size)
196+
}
197+
175198
@Test
176199
fun `fridge partner expiring income is notified 4 weeks beforehand`() {
177200
val fridgePartner = DevPerson(email = "partner@example.com")

service/src/main/kotlin/fi/espoo/evaka/invoicing/service/IncomeQueries.kt

+2
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ WITH latest_income AS (
5858
FROM placement pl
5959
JOIN service_need sn ON pl.id = sn.placement_id AND daterange(sn.start_date, sn.end_date, '[]') @> ${bind(dayAfterExpiration)}
6060
JOIN service_need_option sno ON sn.option_id = sno.id AND sno.fee_coefficient > 0
61+
JOIN daycare u ON u.id = pl.unit_id
6162
6263
-- head of child
6364
JOIN fridge_child fc_head ON (
@@ -75,6 +76,7 @@ WITH latest_income AS (
7576
JOIN latest_income i ON i.person_id = fc_head.head_of_child OR i.person_id = fp_spouse.person_id
7677
WHERE between_start_and_end(${bind(checkForExpirationRange.asDateRange())}, i.valid_to)
7778
AND (i.valid_to + INTERVAL '1 day')::date BETWEEN pl.start_date AND pl.end_date
79+
AND u.invoiced_by_municipality
7880
)
7981
SELECT person_id, valid_to AS expiration_date
8082
FROM expiring_income_with_billable_placement_day_after_expiration expiring_income

0 commit comments

Comments
 (0)