diff --git a/src/language/fi.json b/src/language/fi.json index 4e575396..9f01a890 100644 --- a/src/language/fi.json +++ b/src/language/fi.json @@ -1967,7 +1967,7 @@ }, "decision-order-notice-bailiff": { "title": "Tiedoksianto haastemiehelle", - "info": "Käskypäätös toimitetaan haastemiehen välityksellä. Vastaamo hoitaa tiedoksiannon haastemiehelle.", + "info": "Käskypäätös toimitetaan kirjaamon kautta haastemiehelle, jos toinen postitus palautuu takaisin.", "description": "Kommentti", "publish-button": "Luo toimenpide", "district-court": "Käräjäoikeus", @@ -2023,6 +2023,14 @@ "description": "Kommentti", "publish-button": "Luo toimenpide" }, + "penalty-decision-notice-bailiff": { + "title": "Tiedoksianto haastemiehelle", + "info": "Sakkopäätös toimitetaan kirjaamon kautta haastemiehelle, jos toinen postitus palautuu takaisin.", + "description": "Kommentti", + "publish-button": "Luo toimenpide", + "district-court": "Käräjäoikeus", + "bailiff-email": "Haastemiehen sähköpostiosoite" + }, "penalty-decision-waiting-for-deadline": { "title": "Sakkopäätös / Valitusajan odotus ja umpeutuminen", "info": "Rakennuksen omistajilla on mahdollisuus valittaa sakkopäätöksestä hallinto-oikeuteen. Valitusajan umpeuduttua tiedustellaan HaO:lta sähköpostitse, onko sakkopäätöksestä valitettu.", diff --git a/src/language/sv.json b/src/language/sv.json index 7d3f8c31..e888f362 100644 --- a/src/language/sv.json +++ b/src/language/sv.json @@ -1951,7 +1951,7 @@ }, "decision-order-notice-bailiff": { "title": "Tiedoksianto haastemiehelle (sv)", - "info": "Käskypäätös toimitetaan haastemiehen välityksellä. Vastaamo hoitaa tiedoksiannon haastemiehelle. (sv)", + "info": "Käskypäätös toimitetaan kirjaamon kautta haastemiehelle, jos toinen postitus palautuu takaisin. (sv)", "description": "Kommentti (sv)", "publish-button": "Luo toimenpide (sv)", "district-court": "Käräjäoikeus (sv)", @@ -2007,6 +2007,14 @@ "description": "Kommentti (sv)", "publish-button": "Luo toimenpide (sv)" }, + "penalty-decision-notice-bailiff": { + "title": "Tiedoksianto haastemiehelle (sv)", + "info": "Sakkopäätös toimitetaan kirjaamon kautta haastemiehelle, jos toinen postitus palautuu takaisin. (sv)", + "description": "Kommentti (sv)", + "publish-button": "Luo toimenpide (sv)", + "district-court": "Käräjäoikeus (sv)", + "bailiff-email": "Haastemiehen sähköpostiosoite (sv)" + }, "penalty-decision-waiting-for-deadline": { "title": "Sakkopäätös / Valitusajan odotus ja umpeutuminen (sv)", "info": "Rakennuksen omistajilla on mahdollisuus valittaa sakkopäätöksestä hallinto-oikeuteen. Valitusajan umpeuduttua tiedustellaan HaO:lta sähköpostitse, onko sakkopäätöksestä valitettu. (sv)", diff --git a/src/pages/valvonta-kaytto/notice-bailiff-osapuolet-table.svelte b/src/pages/valvonta-kaytto/notice-bailiff-osapuolet-table.svelte index 18e51b8a..aee865cf 100644 --- a/src/pages/valvonta-kaytto/notice-bailiff-osapuolet-table.svelte +++ b/src/pages/valvonta-kaytto/notice-bailiff-osapuolet-table.svelte @@ -201,16 +201,18 @@ {i18n(i18nRoot + '.fyi-disabled')} {/if} - + {#if Osapuolet.isOmistaja(osapuoli)} - +
+ +
{/if} diff --git a/src/pages/valvonta-kaytto/toimenpiteet.js b/src/pages/valvonta-kaytto/toimenpiteet.js index fd4202dd..17ef5982 100644 --- a/src/pages/valvonta-kaytto/toimenpiteet.js +++ b/src/pages/valvonta-kaytto/toimenpiteet.js @@ -31,6 +31,7 @@ export const type = { 'actual-decision': 15, 'notice-first-mailing': 16, 'notice-second-mailing': 17, + 'notice-bailiff': 18, 'waiting-for-deadline': 19 }, 'penalty-list-delivery-in-progress': 21 @@ -44,7 +45,7 @@ export const isType = R.propEq('type-id'); const isDeadlineType = R.includes( R.__, - [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 19] + [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19] ); export const hasDeadline = R.propSatisfies(isDeadlineType, 'type-id'); @@ -62,6 +63,7 @@ const defaultDeadlineForTypeId = typeId => { return Maybe.Some(dfns.addWeeks(new Date(), 2)); case R.path(['decision-order', 'notice-bailiff'], type): case R.path(['decision-order', 'waiting-for-deadline'], type): + case R.path(['penalty-decision', 'notice-bailiff'], type): case R.path(['penalty-decision', 'waiting-for-deadline'], type): return Maybe.Some(dfns.addDays(new Date(), 30)); case R.path(['decision-order', 'actual-decision'], type): @@ -195,6 +197,23 @@ export const emptyToimenpide = ( }, toimenpide ); + + case R.path(['penalty-decision', 'notice-bailiff'], type): + return R.assoc( + 'type-specific-data', + { + 'osapuoli-specific-data': R.map( + osapuoliId => ({ + 'osapuoli-id': osapuoliId, + 'karajaoikeus-id': Maybe.None(), + 'haastemies-email': Maybe.None(), + document: true + }), + osapuoliIds + ) + }, + toimenpide + ); default: return toimenpide; } @@ -263,9 +282,10 @@ export const isDecisionOrderActualDecision = isType( R.path(['decision-order', 'actual-decision'], type) ); -export const isNoticeBailiff = isType( - R.path(['decision-order', 'notice-bailiff'], type) -); +export const isNoticeBailiff = R.anyPass([ + isType(R.path(['penalty-decision', 'notice-bailiff'], type)), + isType(R.path(['decision-order', 'notice-bailiff'], type)) +]); export const isDecisionOrderHearingLetter = isType( R.path(['decision-order', 'hearing-letter'], type) diff --git a/src/pages/valvonta-kaytto/toimenpiteet_test.js b/src/pages/valvonta-kaytto/toimenpiteet_test.js index 48db39a6..a20efc83 100644 --- a/src/pages/valvonta-kaytto/toimenpiteet_test.js +++ b/src/pages/valvonta-kaytto/toimenpiteet_test.js @@ -38,8 +38,8 @@ describe('Toimenpiteet: ', () => { }); }); - it('is by default 30 day for types 11 and 19', () => { - [11, 19].forEach(typeId => { + it('is by default 30 day for types 11, 18 and 19', () => { + [11, 18, 19].forEach(typeId => { assert.isTrue( dfns.isSameDay( dfns.addDays(new Date(), 30), @@ -163,6 +163,7 @@ describe('Sakkopäätös / tiedoksianto (toinen postitus)', () => { assert.isTrue(Toimenpiteet.hasDeadline({ 'type-id': 17 })); }); }); + describe('Sakkopäätös / Valitusajan odotus ja umpeutuminen', () => { it('id is mapped correctly to the type key', () => { assert.equal( @@ -176,11 +177,22 @@ describe('Sakkopäätös / Valitusajan odotus ja umpeutuminen', () => { }); }); +describe('Sakkopäätös / Tiedoksianto (Haastemies)', () => { + it('id is mapped correctly to the type key', () => { + assert.equal('penalty-decision-notice-bailiff', Toimenpiteet.typeKey(18)); + }); + + it('is a type with a deadline', () => { + assert.isTrue(Toimenpiteet.hasDeadline({ 'type-id': 18 })); + }); +}); + describe('Sakkoluettelon lähetys menossa', () => { it('id is mapped correctly to the type key', () => { assert.equal('penalty-list-delivery-in-progress', Toimenpiteet.typeKey(21)); }); }); + describe('Given toimenpidetypes', () => { it('find the ids of manually deliverable types', () => { assert.deepEqual( @@ -635,3 +647,28 @@ describe('toimenpideForOsapuoli', () => { }); }); }); + +describe('isNoticeBailiff', () => { + it('returns true for typeId 11', () => { + const kaskypaatosNoticeBailiffToimenpide = Toimenpiteet.emptyToimenpide( + 11, + [{}] + ); + assert.isTrue( + Toimenpiteet.isNoticeBailiff(kaskypaatosNoticeBailiffToimenpide) + ); + }); + it('returns true for typeId 18', () => { + const sakkopaatosNoticeBailiffToimenpide = Toimenpiteet.emptyToimenpide( + 18, + [{}] + ); + assert.isTrue( + Toimenpiteet.isNoticeBailiff(sakkopaatosNoticeBailiffToimenpide) + ); + }); + it('returns false for some other typeId than 11 or 18', () => { + const someOtherToimenpide = Toimenpiteet.emptyToimenpide(7, [{}]); + assert.isFalse(Toimenpiteet.isNoticeBailiff(someOtherToimenpide)); + }); +});