diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d9d7ad29b0f6..f4bc0d23934e 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -6,401 +6,409 @@
# Organisation name is @island-is, not @island.is
# Fallback. If there is no owner, assign to core maintainers.
-* @island-is/core
+* @island-is/core
# Top level project ownership. When a project contains, for example, templates or modules
# that are developed by others teams, we first list down the team working on the core and
# further below the other team working on other part of the project.
-/apps/application-system/ @island-is/norda-applications
-/apps/web*/ @island-is/juni @island-is/stefna
-/libs/application/ @island-is/norda-applications
-/libs/portals/my-pages/ @island-is/hugsmidjan
-/libs/portals/admin/ @island-is/aranja
-/libs/portals/core/ @island-is/aranja @island-is/hugsmidjan
-/libs/shared/connected/ @island-is/stefna
-
-/* @island-is/core
-/libs/api/domains/identity/ @island-is/core
+/apps/application-system/ @island-is/norda-applications
+/apps/web*/ @island-is/juni @island-is/stefna
+/libs/application/ @island-is/norda-applications
+/libs/portals/my-pages/ @island-is/hugsmidjan
+/libs/portals/admin/ @island-is/aranja
+/libs/portals/core/ @island-is/aranja @island-is/hugsmidjan
+/libs/shared/connected/ @island-is/stefna
+
+/* @island-is/core
+/libs/api/domains/identity/ @island-is/core
# Edge case escaping the /infra/ and **/infra/ devops patterns below
-/libs/infra-nest-server/src/lib/infra/ @island-is/core
-/libs/testing/ @island-is/core
-/libs/nest/swagger/ @island-is/core
-
-/apps/services/endorsements/ @island-is/juni
-/apps/icelandic-names-registry*/ @island-is/juni
-/apps/web/screens/PetitionView/ @island-is/juni
-/libs/cms/ @island-is/juni @island-is/stefna
-/libs/clients/cms/ @island-is/juni @island-is/aranja
-/libs/residence-history @island-is/juni
-/libs/api/domains/endorsement-system @island-is/juni
-/libs/api/domains/icelandic-names-registry/ @island-is/juni
-/libs/clients/rsk/ @island-is/juni
-/libs/clients/zendesk/ @island-is/juni
-/libs/icelandic-names-registry/ @island-is/juni
-/libs/portals/my-pages/petitions/ @island-is/juni
-/libs/portals/my-pages/signature-collection/ @island-is/juni
-/libs/portals/my-pages/education/ @island-is/juni @island-is/hugsmidjan
-/libs/portals/my-pages/education-career/ @island-is/juni @island-is/hugsmidjan
-/libs/portals/my-pages/education-degree/ @island-is/juni @island-is/hugsmidjan
-/libs/portals/my-pages/education-license/ @island-is/juni @island-is/hugsmidjan
-/libs/portals/my-pages/education-student-assessment/ @island-is/juni @island-is/norda @island-is/hugsmidjan
-/libs/clients/driving-license/ @island-is/juni
-/libs/clients/judicial-administration/ @island-is/juni
-/libs/application/templates/announcement-of-death/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/announcement-of-death @island-is/juni
-/libs/application/templates/driving-license/ @island-is/juni
-/libs/application/templates/driving-assessment-approval/ @island-is/juni
-/libs/application/templates/driving-learners-permit/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/driving-learners-permit/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/driving-license-submission @island-is/juni
-/libs/api/domains/driving-license/ @island-is/juni
-/libs/api/domains/education/ @island-is/juni @island-is/hugsmidjan @island-is/deloitte
-/libs/application/templates/estate/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/estate @island-is/juni
-/libs/application/templates/general-petition/ @island-is/juni
-/libs/shared/connected/src/lib/generalPetition/GeneralPetitionLists/ @island-is/juni
-/libs/shared/connected/src/lib/SignatureLists/ @island-is/juni
-/libs/api/domains/communications/ @island-is/juni @island-is/stefna
-/apps/services/user-notification/ @island-is/juni @island-is/aranja
-/apps/air-discount-scheme/ @island-is/hugsmidjan
-/libs/air-discount-scheme/ @island-is/hugsmidjan
-/libs/application/templates/p-sign/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/p-sign-submission @island-is/juni
-/libs/application/templates/marriage-conditions/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/marriage-conditions-submission @island-is/juni
-/libs/message-queue/ @island-is/juni
-/libs/application/templates/example-payment/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/example-payment-actions @island-is/juni
-/libs/application/templates/driving-school-confirmation/ @island-is/juni
-/libs/application/templates/driving-instructor-registrations/ @island-is/juni
-/libs/api/domains/driving-license-book/ @island-is/juni
-/libs/clients/driving-license-book/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/passport @island-is/juni
-/libs/application/templates/passport/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/passport-annulment @island-is/juni
-/libs/application/templates/passport-annulment/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/driving-school-confirmation/ @island-is/juni
-/libs/application/templates/operating-license/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/operating-license/ @island-is/juni
-/libs/application/templates/driving-license-duplicate/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/driving-license-duplicate/ @island-is/juni
-/libs/application/templates/inheritance-report/ @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/inheritance-report @island-is/juni
-/libs/application/templates/signature-collection @island-is/juni
-/libs/api/domains/disability-license @island-is/juni
-/libs/portals/admin/petition @island-is/juni
-/libs/portals/admin/signature-collection @island-is/juni
-/libs/portals/admin/icelandic-names-registry @island-is/juni
-/libs/api/domains/signature-collection @island-is/juni
-/libs/clients/signature-collection @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/signature-collection @island-is/juni
-/libs/application/template-api-modules/src/lib/modules/templates/general-petition @island-is/juni
-
-/apps/portals/admin/ @island-is/aranja
-/libs/api/domains/auth-admin/ @island-is/aranja
-/libs/api/domains/sessions/ @island-is/aranja
-/libs/clients/auth/ @island-is/aranja
-/libs/clients/middlewares/ @island-is/aranja
-libs/clients/rsk/relationships/ @island-is/aranja
-/libs/clients/sessions @island-is/aranja
-/libs/portals/shared-modules/delegations @island-is/aranja
-/libs/portals/admin/ids-admin @island-is/aranja
-/libs/portals/my-pages/consent @island-is/aranja
-/libs/portals/my-pages/restrictions @island-is/aranja
-/libs/portals/my-pages/sessions @island-is/aranja
-/apps/native/app/ @island-is/aranja-app
-codemagic.yaml @island-is/aranja-app
-/apps/web/public/.well-known/ @island-is/aranja-app
-
-/apps/judicial-system/ @island-is/kolibri-justice-league
-/libs/judicial-system/ @island-is/kolibri-justice-league
-/libs/nova-sms/ @island-is/kolibri-justice-league
-/libs/dokobit-signing/ @island-is/kolibri-justice-league
-/libs/email-service/ @island-is/kolibri-justice-league
-
-/apps/financial-aid/ @island-is/kolibri-robin-hood
-/libs/financial-aid/ @island-is/kolibri-robin-hood
-/libs/next-ids-auth/ @island-is/kolibri-robin-hood
-/libs/clients/rsk/personal-tax-return @island-is/kolibri-robin-hood
-/libs/application/templates/financial-aid/ @island-is/kolibri-robin-hood
-/libs/api/domains/municipalities-financial-aid @island-is/kolibri-robin-hood
-/libs/clients/municipalities-financial-aid @island-is/kolibri-robin-hood
-/libs/application/template-api-modules/src/lib/modules/templates/financial-aid @island-is/kolibri-robin-hood
-
-/apps/download-service/ @island-is/hugsmidjan
-/apps/portals/my-pages*/ @island-is/hugsmidjan
-/apps/services/regulations-admin-backend/ @island-is/hugsmidjan
-/apps/services/user-profile/ @island-is/hugsmidjan @island-is/juni @island-is/aranja
-/apps/web/components/Grant/ @island-is/hugsmidjan
-/apps/web/components/PlazaCard/ @island-is/hugsmidjan
-/apps/web/screens/Grants/ @island-is/hugsmidjan
-/apps/web/screens/Regulations/ @island-is/hugsmidjan
-/apps/web/components/Regulations/ @island-is/hugsmidjan
-/apps/web/screens/OfficialJournalOfIceland/ @island-is/hugsmidjan
-/apps/web/components/OfficialJournalOfIceland/ @island-is/hugsmidjan
-/libs/api/domains/air-discount-scheme @island-is/hugsmidjan
-/libs/api/domains/documents/ @island-is/hugsmidjan
-/libs/api/domains/finance/ @island-is/hugsmidjan
-/libs/api/domains/assets/ @island-is/hugsmidjan
-/libs/api/domains/health-directorate/ @island-is/hugsmidjan
-/libs/api/domains/hms-loans/ @island-is/hugsmidjan
-/libs/api/domains/license-service/ @island-is/hugsmidjan @island-is/aranja
-/libs/api/domains/work-machines/ @island-is/hugsmidjan @island-is/origo
-/libs/api/domains/national-registry/ @island-is/hugsmidjan
-/libs/api/domains/notifications/ @island-is/hugsmidjan
-/libs/api/domains/user-profile/ @island-is/hugsmidjan @island-is/juni @island-is/aranja
-/libs/api/domains/passport/ @island-is/hugsmidjan
-/libs/api/domains/vehicles/ @island-is/hugsmidjan
-/libs/api/domains/university-careers/ @island-is/hugsmidjan
-/libs/api/domains/regulations/ @island-is/hugsmidjan
-/libs/api/domains/regulations-admin/ @island-is/hugsmidjan
-/libs/api/domains/rights-portal @island-is/hugsmidjan
-/libs/api/domains/social-insurance @island-is/hugsmidjan @island-is/stefna
-/libs/api/domains/occupational-licenses/ @island-is/hugsmidjan
-/libs/api/domains/occupational-licenses-v2/ @island-is/hugsmidjan
-/libs/api/domains/intellectual-properties/ @island-is/hugsmidjan
-/libs/api/domains/official-journal-of-iceland/ @island-is/hugsmidjan
-/libs/api/domains/official-journal-of-iceland-application/ @island-is/hugsmidjan
-/libs/api/domains/document-provider/ @island-is/hugsmidjan @island-is/core
-/libs/api/domains/housing-benefits/ @island-is/hugsmidjan
-/libs/api/domains/law-and-order/ @island-is/hugsmidjan
-/libs/clients/documents/ @island-is/hugsmidjan
-/libs/clients/documents-v2/ @island-is/hugsmidjan
-/libs/clients/finance/ @island-is/hugsmidjan
-/libs/clients/finance-v2/ @island-is/hugsmidjan
-/libs/clients/adr-and-machine-license/ @island-is/hugsmidjan
-/libs/clients/work-machines/ @island-is/hugsmidjan @island-is/origo
-/libs/clients/disability-license/ @island-is/hugsmidjan
-/libs/clients/firearm-license/ @island-is/hugsmidjan
-/libs/clients/hunting-license/ @island-is/hugsmidjan
-/libs/clients/smartsolutions/ @island-is/hugsmidjan
-/libs/clients/smart-solutions-v2/ @island-is/hugsmidjan
-/libs/clients/license-client/ @island-is/hugsmidjan @island-is/aranja
-/libs/clients/intellectual-properties/ @island-is/hugsmidjan
-/libs/clients/islykill/ @island-is/hugsmidjan
-/libs/clients/national-registry/v3/ @island-is/hugsmidjan
-/libs/clients/district-commissioners-licenses/ @island-is/hugsmidjan
-/libs/clients/regulations/ @island-is/hugsmidjan
-/libs/clients/vehicles/ @island-is/hugsmidjan @island-is/stefna
-/libs/clients/vehicles-mileage/ @island-is/hugsmidjan
-/libs/clients/user-notification/ @island-is/hugsmidjan
-/libs/clients/passports/ @island-is/hugsmidjan
-/libs/clients/p-card/ @island-is/hugsmidjan
-/libs/clients/assets/ @island-is/hugsmidjan
-/libs/clients/university-careers/ @island-is/hugsmidjan
-/libs/clients/regulations-admin/ @island-is/hugsmidjan
-/libs/clients/inna/ @island-is/hugsmidjan
-/libs/clients/hms-loans/ @island-is/hugsmidjan
-/libs/clients/official-journal-of-iceland/ @island-is/hugsmidjan
-/libs/clients/hms-housing-benefits/ @island-is/hugsmidjan
-/apps/services/license-api/ @island-is/hugsmidjan
-/libs/regulations/ @island-is/hugsmidjan
-/libs/portals/admin/regulations-admin/ @island-is/hugsmidjan
-/libs/portals/admin/document-provider/ @island-is/hugsmidjan @island-is/core
-/libs/clients/icelandic-health-insurance/rights-portal/ @island-is/hugsmidjan
-/libs/clients/health-directorate @island-is/hugsmidjan
-/libs/clients/health-directorate/src/lib/clients/occupational-license @island-is/hugsmidjan @island-is/origo
-/libs/clients/mms/grade @island-is/hugsmidjan
-/libs/portals/admin/air-discount-scheme @island-is/hugsmidjan
-/libs/application/templates/official-journal-of-iceland/ @island-is/hugsmidjan
-/libs/application/template-api-modules/src/lib/modules/templates/official-journal-of-iceland/ @island-is/hugsmidjan
-/libs/clients/judicial-system-sp/ @island-is/hugsmidjan
-/libs/application/templates/data-protection-complaint/ @island-is/norda
-/libs/application/templates/institution-collaboration/ @island-is/norda @island-is/fuglar
-/libs/application/templates/login-service/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/login-service/ @island-is/norda
-/libs/clients/payment-schedule/ @island-is/norda
-/libs/api/domains/payment-schedule/ @island-is/norda
-/libs/application/templates/funding-government-projects/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/funding-government-projects/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/institution-collaboration/ @island-is/norda
-/libs/application/templates/public-debt-payment-plan/ @island-is/norda
-/libs/application/templates/complaints-to-althingi-ombudsman/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/complaints-to-althingi-ombudsman/ @island-is/norda
-/libs/application/templates/accident-notification/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/health-insurance/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/public-debt-payment-plan @island-is/norda
-/libs/api/domains/health-insurance/ @island-is/norda
-/libs/application/templates/health-insurance/ @island-is/norda
-/libs/clients/rsk/company-registry @island-is/norda
-/libs/clients/althingi-ombudsman/ @island-is/norda
-/libs/api/domains/company-registry @island-is/norda
-/libs/clients/icelandic-health-insurance/health-insurance/ @island-is/norda
-/libs/clients/data-protection-complaint/ @island-is/norda
-/libs/clients/fishing-license/ @island-is/norda
-/libs/api/domains/fishing-license/ @island-is/norda
-/libs/application/templates/general-fishing-license/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/general-fishing-license/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/data-protection-complaint/ @island-is/norda
-/libs/shared/form-fields/ @island-is/norda @island-is/island-ui
-/libs/clients/financial-statements-inao @island-is/norda
-/libs/api/domains/financial-statements-inao/ @island-is/norda
-/libs/application/templates/financial-statements-inao/ @island-is/norda
-/libs/application/template-api-modules/src/lib/modules/templates/financial-statements-inao @island-is/norda
-
-/libs/portals/my-pages/applications/ @island-is/norda-applications
-/libs/portals/admin/application-system/ @island-is/norda-applications
-/libs/api/domains/application/ @island-is/norda-applications
-/libs/api/domains/payment/ @island-is/norda-applications
-
-/apps/contentful-apps/ @island-is/stefna
-/apps/services/search-indexer/ @island-is/stefna @island-is/juni
-/apps/services/contentful-entry-tagger/ @island-is/stefna
-/apps/tools/contentful-role-permissions/ @island-is/stefna
-/apps/web/screens/Organization/ @island-is/stefna
-/apps/web/screens/Project/ @island-is/stefna
-/apps/web/components/Organization/ @island-is/stefna
-/apps/web/components/ChatPanel/ @island-is/stefna
-/apps/web/components/Form/ @island-is/stefna
-/apps/web/components/Stepper/ @island-is/stefna
-/libs/content-search-toolkit/ @island-is/stefna @island-is/juni
-/libs/content-search-index-manager/ @island-is/stefna @island-is/juni
-/libs/content-search-metrics/ @island-is/stefna @island-is/juni
-/libs/content-search-indexer/ @island-is/stefna @island-is/juni
-/libs/api/domains/content-search/ @island-is/stefna @island-is/juni
-/libs/api/domains/syslumenn/ @island-is/stefna
-/libs/api/domains/email-signup/ @island-is/stefna
-/libs/api/domains/electronic-registration-statistics/ @island-is/stefna
-/libs/clients/electronic-registration-statistics/ @island-is/stefna
-/libs/api/domains/fiskistofa/ @island-is/stefna
-/libs/clients/fiskistofa/ @island-is/stefna
-/libs/clients/syslumenn/ @island-is/stefna @island-is/juni
-/libs/api/domains/watson-assistant-chat/ @island-is/stefna
-/libs/clients/icelandic-government-institution-vacancies/ @island-is/stefna
-/libs/api/domains/icelandic-government-institution-vacancies/ @island-is/stefna
-/libs/clients/aircraft-registry/ @island-is/stefna
-/libs/api/domains/aircraft-registry/ @island-is/stefna
-/libs/api/domains/housing-benefit-calculator/ @island-is/stefna
-/libs/clients/housing-benefit-calculator/ @island-is/stefna
-/libs/clients/ship-registry/ @island-is/stefna
-/libs/api/domains/ship-registry/ @island-is/stefna
-/libs/clients/administration-of-occupational-safety-and-health/ @island-is/stefna
-/libs/api/domains/administration-of-occupational-safety-and-health/ @island-is/stefna
-/libs/clients/ultraviolet-radiation/ @island-is/stefna
-/libs/clients/ums-cost-of-living-calculator/ @island-is/stefna
-/libs/api/domains/umbodsmadur-skuldara/ @island-is/stefna
-
-/libs/island-ui/ @island-is/island-ui
-
-/apps/consultation-portal/ @island-is/advania
-/apps/services/form-system/ @island-is/advania
-/libs/clients/consultation-portal/ @island-is/advania
-/libs/api/domains/consultation-portal/ @island-is/advania
-
-/apps/skilavottord/ @island-is/deloitte
-/libs/skilavottord/ @island-is/deloitte
-/libs/application/templates/parental-leave/ @island-is/deloitte
-/libs/application/template-api-modules/src/lib/modules/templates/parental-leave/ @island-is/deloitte
-/libs/clients/vmst/ @island-is/deloitte
-/libs/api/domains/directorate-of-labour/ @island-is/deloitte
-/libs/application/template-api-modules/src/lib/modules/templates/social-insurance-administration @island-is/deloitte
-/libs/application/templates/social-insurance-administration/ @island-is/deloitte
-/libs/clients/social-insurance-administration/ @island-is/deloitte @island-is/stefna @island-is/hugsmidjan
-/libs/application/templates/car-recycling/ @island-is/deloitte
-/libs/application/template-api-modules/src/lib/modules/templates/car-recycling/ @island-is/deloitte
-/libs/clients/car-recycling/ @island-is/deloitte
-/libs/application/templates/new-primary-school/ @island-is/deloitte
-/libs/application/template-api-modules/src/lib/modules/templates/new-primary-school/ @island-is/deloitte
-/libs/clients/mms/frigg @island-is/deloitte
-
-/apps/services/auth/ids-api/ @island-is/fuglar @island-is/aranja
-/apps/services/auth/admin-api/ @island-is/fuglar @island-is/aranja
-/apps/services/auth/public-api/ @island-is/fuglar @island-is/aranja
-/apps/services/auth/delegation-api/ @island-is/fuglar @island-is/aranja
-/apps/services/sessions/ @island-is/fuglar @island-is/aranja
-/apps/auth-admin-web/ @island-is/fuglar @island-is/aranja
-/libs/auth-api-lib/ @island-is/fuglar @island-is/aranja
-/libs/auth-api-lib/seeders/ @island-is/fuglar @island-is/aranja @island-is/origo-auth
-/libs/auth-nest-tools/ @island-is/fuglar @island-is/aranja
-/libs/application/templates/european-health-insurance-card/ @island-is/fuglar
-/libs/application/template-api-modules/src/lib/modules/templates/european-health-insurance-card/ @island-is/fuglar
-/libs/clients/ehic-client-v1 @island-is/fuglar
-
-/apps/services/auth/personal-representative/ @island-is/programm @island-is/aranja
-/apps/services/auth/personal-representative-public/ @island-is/programm @island-is/aranja
-
-/libs/application/templates/criminal-record/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/criminal-record-submission/ @island-is/origo
-/libs/api/domains/criminal-record/ @island-is/origo
-/libs/clients/criminal-record/ @island-is/origo
-
-/libs/application/templates/mortgage-certificate/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/mortgage-certificate-submission/ @island-is/origo
-/libs/api/domains/mortgage-certificate/ @island-is/origo
-
-/libs/application/templates/no-debt-certificate/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/no-debt-certificate/ @island-is/origo
-
-/libs/application/templates/id-card/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/id-card/ @island-is/origo
-
-/libs/clients/charge-fjs-v2/ @island-is/origo
-/libs/clients/vehicle-service-fjs-v1/ @island-is/origo
-
-/libs/application/templates/transport-authority/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/ @island-is/origo
-/libs/api/domains/transport-authority/ @island-is/origo
-/libs/clients/transport-authority/ @island-is/origo
-
-/libs/application/templates/driving-license-book-update-instructor/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/driving-license-book-update-instructor/ @island-is/origo
-
-/apps/services/university-gateway/ @island-is/origo
-/libs/clients/university-application/ @island-is/origo
-/libs/clients/university-gateway-api/ @island-is/origo
-/libs/api/domains/university-gateway/ @island-is/origo
-/libs/university-gateway/ @island-is/origo
-/apps/web/screens/UniversitySearch/ @island-is/origo
-/apps/web/screens/queries/UniversityGateway.ts @island-is/origo
-/apps/web/components/ListViewCard/ @island-is/origo
-
-/libs/application/templates/directorate-of-immigration/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/directorate-of-immigration/ @island-is/origo
-/libs/clients/directorate-of-immigration/ @island-is/origo
-
-/libs/application/templates/aosh/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/aosh @island-is/origo
-
-/libs/application/templates/healthcare-license-certificate/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/healthcare-license-certificate/ @island-is/origo
-
-
-/libs/application/templates/healthcare-work-permit/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/healthcare-work-permit/ @island-is/origo
-
-/libs/application/templates/energy-funds/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/energy-funds/ @island-is/origo
-/libs/api/domains/energy-funds/ @island-is/origo
-/libs/clients/energy-funds/ @island-is/origo
-
-/libs/application/templates/university/ @island-is/origo
-/libs/application/template-api-modules/src/lib/modules/templates/university/ @island-is/origo
+/libs/infra-nest-server/src/lib/infra/ @island-is/core
+/libs/testing/ @island-is/core
+/libs/nest/swagger/ @island-is/core
+
+/apps/services/endorsements/ @island-is/juni
+/apps/icelandic-names-registry*/ @island-is/juni
+/apps/web/screens/PetitionView/ @island-is/juni
+/libs/cms/ @island-is/juni @island-is/stefna
+/libs/clients/cms/ @island-is/juni @island-is/aranja
+/libs/residence-history @island-is/juni
+/libs/api/domains/endorsement-system @island-is/juni
+/libs/api/domains/icelandic-names-registry/ @island-is/juni
+/libs/clients/rsk/ @island-is/juni
+/libs/clients/zendesk/ @island-is/juni
+/libs/icelandic-names-registry/ @island-is/juni
+/libs/portals/my-pages/petitions/ @island-is/juni
+/libs/portals/my-pages/signature-collection/ @island-is/juni
+/libs/portals/my-pages/education/ @island-is/juni @island-is/hugsmidjan
+/libs/portals/my-pages/education-career/ @island-is/juni @island-is/hugsmidjan
+/libs/portals/my-pages/education-degree/ @island-is/juni @island-is/hugsmidjan
+/libs/portals/my-pages/education-license/ @island-is/juni @island-is/hugsmidjan
+/libs/portals/my-pages/education-student-assessment/ @island-is/juni @island-is/norda @island-is/hugsmidjan
+/libs/clients/driving-license/ @island-is/juni
+/libs/clients/judicial-administration/ @island-is/juni
+/libs/application/templates/announcement-of-death/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/announcement-of-death @island-is/juni
+/libs/application/templates/driving-license/ @island-is/juni
+/libs/application/templates/driving-assessment-approval/ @island-is/juni
+/libs/application/templates/driving-learners-permit/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/driving-learners-permit/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/driving-license-submission @island-is/juni
+/libs/api/domains/driving-license/ @island-is/juni
+/libs/api/domains/education/ @island-is/juni @island-is/hugsmidjan @island-is/deloitte
+/libs/application/templates/estate/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/estate @island-is/juni
+/libs/application/templates/general-petition/ @island-is/juni
+/libs/shared/connected/src/lib/generalPetition/GeneralPetitionLists/ @island-is/juni
+/libs/shared/connected/src/lib/SignatureLists/ @island-is/juni
+/libs/api/domains/communications/ @island-is/juni @island-is/stefna
+/apps/services/user-notification/ @island-is/juni @island-is/aranja
+/apps/air-discount-scheme/ @island-is/hugsmidjan
+/libs/air-discount-scheme/ @island-is/hugsmidjan
+/libs/application/templates/p-sign/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/p-sign-submission @island-is/juni
+/libs/application/templates/marriage-conditions/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/marriage-conditions-submission @island-is/juni
+/libs/message-queue/ @island-is/juni
+/libs/application/templates/example-payment/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/example-payment-actions @island-is/juni
+/libs/application/templates/driving-school-confirmation/ @island-is/juni
+/libs/application/templates/driving-instructor-registrations/ @island-is/juni
+/libs/api/domains/driving-license-book/ @island-is/juni
+/libs/clients/driving-license-book/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/passport @island-is/juni
+/libs/application/templates/passport/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/passport-annulment @island-is/juni
+/libs/application/templates/passport-annulment/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/driving-school-confirmation/ @island-is/juni
+/libs/application/templates/operating-license/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/operating-license/ @island-is/juni
+/libs/application/templates/driving-license-duplicate/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/driving-license-duplicate/ @island-is/juni
+/libs/application/templates/inheritance-report/ @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/inheritance-report @island-is/juni
+/libs/application/templates/signature-collection @island-is/juni
+/libs/api/domains/disability-license @island-is/juni
+/libs/portals/admin/petition @island-is/juni
+/libs/portals/admin/signature-collection @island-is/juni
+/libs/portals/admin/icelandic-names-registry @island-is/juni
+/libs/api/domains/signature-collection @island-is/juni
+/libs/clients/signature-collection @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/signature-collection @island-is/juni
+/libs/application/template-api-modules/src/lib/modules/templates/general-petition @island-is/juni
+
+/apps/portals/admin/ @island-is/aranja
+/libs/api/domains/auth-admin/ @island-is/aranja
+/libs/api/domains/sessions/ @island-is/aranja
+/libs/clients/auth/ @island-is/aranja
+/libs/clients/middlewares/ @island-is/aranja
+libs/clients/rsk/relationships/ @island-is/aranja
+/libs/clients/sessions @island-is/aranja
+/libs/portals/shared-modules/delegations @island-is/aranja
+/libs/portals/admin/ids-admin @island-is/aranja
+/libs/portals/my-pages/consent @island-is/aranja
+/libs/portals/my-pages/restrictions @island-is/aranja
+/libs/portals/my-pages/sessions @island-is/aranja
+/apps/native/app/ @island-is/aranja-app
+codemagic.yaml @island-is/aranja-app
+/apps/web/public/.well-known/ @island-is/aranja-app
+
+/apps/judicial-system/ @island-is/kolibri-justice-league
+/libs/judicial-system/ @island-is/kolibri-justice-league
+/libs/nova-sms/ @island-is/kolibri-justice-league
+/libs/dokobit-signing/ @island-is/kolibri-justice-league
+/libs/email-service/ @island-is/kolibri-justice-league
+
+/apps/financial-aid/ @island-is/kolibri-robin-hood
+/libs/financial-aid/ @island-is/kolibri-robin-hood
+/libs/next-ids-auth/ @island-is/kolibri-robin-hood
+/libs/clients/rsk/personal-tax-return @island-is/kolibri-robin-hood
+/libs/application/templates/financial-aid/ @island-is/kolibri-robin-hood
+/libs/api/domains/municipalities-financial-aid @island-is/kolibri-robin-hood
+/libs/clients/municipalities-financial-aid @island-is/kolibri-robin-hood
+/libs/application/template-api-modules/src/lib/modules/templates/financial-aid @island-is/kolibri-robin-hood
+
+/apps/download-service/ @island-is/hugsmidjan
+/apps/portals/my-pages*/ @island-is/hugsmidjan
+/apps/services/regulations-admin-backend/ @island-is/hugsmidjan
+/apps/services/user-profile/ @island-is/hugsmidjan @island-is/juni @island-is/aranja
+/apps/web/components/Grant/ @island-is/hugsmidjan
+/apps/web/components/PlazaCard/ @island-is/hugsmidjan
+/apps/web/screens/Grants/ @island-is/hugsmidjan
+/apps/web/screens/Regulations/ @island-is/hugsmidjan
+/apps/web/components/Regulations/ @island-is/hugsmidjan
+/apps/web/screens/OfficialJournalOfIceland/ @island-is/hugsmidjan
+/apps/web/components/OfficialJournalOfIceland/ @island-is/hugsmidjan
+/libs/api/domains/air-discount-scheme @island-is/hugsmidjan
+/libs/api/domains/documents/ @island-is/hugsmidjan
+/libs/api/domains/finance/ @island-is/hugsmidjan
+/libs/api/domains/assets/ @island-is/hugsmidjan
+/libs/api/domains/health-directorate/ @island-is/hugsmidjan
+/libs/api/domains/hms-loans/ @island-is/hugsmidjan
+/libs/api/domains/license-service/ @island-is/hugsmidjan @island-is/aranja
+/libs/api/domains/work-machines/ @island-is/hugsmidjan @island-is/origo
+/libs/api/domains/national-registry/ @island-is/hugsmidjan
+/libs/api/domains/notifications/ @island-is/hugsmidjan
+/libs/api/domains/user-profile/ @island-is/hugsmidjan @island-is/juni @island-is/aranja
+/libs/api/domains/passport/ @island-is/hugsmidjan
+/libs/api/domains/vehicles/ @island-is/hugsmidjan
+/libs/api/domains/university-careers/ @island-is/hugsmidjan
+/libs/api/domains/regulations/ @island-is/hugsmidjan
+/libs/api/domains/regulations-admin/ @island-is/hugsmidjan
+/libs/api/domains/rights-portal @island-is/hugsmidjan
+/libs/api/domains/social-insurance @island-is/hugsmidjan @island-is/stefna
+/libs/api/domains/occupational-licenses/ @island-is/hugsmidjan
+/libs/api/domains/occupational-licenses-v2/ @island-is/hugsmidjan
+/libs/api/domains/intellectual-properties/ @island-is/hugsmidjan
+/libs/api/domains/official-journal-of-iceland/ @island-is/hugsmidjan
+/libs/api/domains/official-journal-of-iceland-application/ @island-is/hugsmidjan
+/libs/api/domains/document-provider/ @island-is/hugsmidjan @island-is/core
+/libs/api/domains/housing-benefits/ @island-is/hugsmidjan
+/libs/api/domains/law-and-order/ @island-is/hugsmidjan
+/libs/clients/documents/ @island-is/hugsmidjan
+/libs/clients/documents-v2/ @island-is/hugsmidjan
+/libs/clients/finance/ @island-is/hugsmidjan
+/libs/clients/finance-v2/ @island-is/hugsmidjan
+/libs/clients/adr-and-machine-license/ @island-is/hugsmidjan
+/libs/clients/work-machines/ @island-is/hugsmidjan @island-is/origo
+/libs/clients/disability-license/ @island-is/hugsmidjan
+/libs/clients/firearm-license/ @island-is/hugsmidjan
+/libs/clients/hunting-license/ @island-is/hugsmidjan
+/libs/clients/smartsolutions/ @island-is/hugsmidjan
+/libs/clients/smart-solutions-v2/ @island-is/hugsmidjan
+/libs/clients/license-client/ @island-is/hugsmidjan @island-is/aranja
+/libs/clients/intellectual-properties/ @island-is/hugsmidjan
+/libs/clients/islykill/ @island-is/hugsmidjan
+/libs/clients/national-registry/v3/ @island-is/hugsmidjan
+/libs/clients/district-commissioners-licenses/ @island-is/hugsmidjan
+/libs/clients/regulations/ @island-is/hugsmidjan
+/libs/clients/vehicles/ @island-is/hugsmidjan @island-is/stefna
+/libs/clients/vehicles-mileage/ @island-is/hugsmidjan
+/libs/clients/user-notification/ @island-is/hugsmidjan
+/libs/clients/passports/ @island-is/hugsmidjan
+/libs/clients/p-card/ @island-is/hugsmidjan
+/libs/clients/assets/ @island-is/hugsmidjan
+/libs/clients/university-careers/ @island-is/hugsmidjan
+/libs/clients/regulations-admin/ @island-is/hugsmidjan
+/libs/clients/inna/ @island-is/hugsmidjan
+/libs/clients/hms-loans/ @island-is/hugsmidjan
+/libs/clients/official-journal-of-iceland/ @island-is/hugsmidjan
+/libs/clients/hms-housing-benefits/ @island-is/hugsmidjan
+/apps/services/license-api/ @island-is/hugsmidjan
+/libs/regulations/ @island-is/hugsmidjan
+/libs/portals/admin/regulations-admin/ @island-is/hugsmidjan
+/libs/portals/admin/document-provider/ @island-is/hugsmidjan @island-is/core
+/libs/clients/icelandic-health-insurance/rights-portal/ @island-is/hugsmidjan
+/libs/clients/health-directorate @island-is/hugsmidjan
+/libs/clients/health-directorate/src/lib/clients/occupational-license @island-is/hugsmidjan @island-is/origo
+/libs/clients/mms/grade @island-is/hugsmidjan
+/libs/portals/admin/air-discount-scheme @island-is/hugsmidjan
+/libs/application/templates/official-journal-of-iceland/ @island-is/hugsmidjan
+/libs/application/template-api-modules/src/lib/modules/templates/official-journal-of-iceland/ @island-is/hugsmidjan
+/libs/clients/judicial-system-sp/ @island-is/hugsmidjan
+/libs/application/templates/data-protection-complaint/ @island-is/norda
+/libs/application/templates/institution-collaboration/ @island-is/norda @island-is/fuglar
+/libs/application/templates/login-service/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/login-service/ @island-is/norda
+/libs/clients/payment-schedule/ @island-is/norda
+/libs/api/domains/payment-schedule/ @island-is/norda
+/libs/application/templates/funding-government-projects/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/funding-government-projects/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/institution-collaboration/ @island-is/norda
+/libs/application/templates/public-debt-payment-plan/ @island-is/norda
+/libs/application/templates/complaints-to-althingi-ombudsman/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/complaints-to-althingi-ombudsman/ @island-is/norda
+/libs/application/templates/accident-notification/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/health-insurance/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/public-debt-payment-plan @island-is/norda
+/libs/api/domains/health-insurance/ @island-is/norda
+/libs/application/templates/health-insurance/ @island-is/norda
+/libs/clients/rsk/company-registry @island-is/norda
+/libs/clients/althingi-ombudsman/ @island-is/norda
+/libs/api/domains/company-registry @island-is/norda
+/libs/clients/icelandic-health-insurance/health-insurance/ @island-is/norda
+/libs/clients/data-protection-complaint/ @island-is/norda
+/libs/clients/fishing-license/ @island-is/norda
+/libs/api/domains/fishing-license/ @island-is/norda
+/libs/application/templates/general-fishing-license/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/general-fishing-license/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/data-protection-complaint/ @island-is/norda
+/libs/shared/form-fields/ @island-is/norda @island-is/island-ui
+/libs/clients/financial-statements-inao @island-is/norda
+/libs/api/domains/financial-statements-inao/ @island-is/norda
+/libs/application/templates/financial-statements-inao/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/financial-statements-inao @island-is/norda
+/libs/application/templates/inao/ @island-is/norda
+/libs/application/templates/inao/financial-statement-cemetery/ @island-is/norda
+/libs/application/templates/inao/financial-statement-individual-election/ @island-is/norda
+/libs/application/templates/inao/financial-statement-political-party/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/financial-statement-cemetery/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/financial-statement-individual-election/ @island-is/norda
+/libs/application/template-api-modules/src/lib/modules/templates/financial-statement-political-party/ @island-is/norda
+
+
+/libs/portals/my-pages/applications/ @island-is/norda-applications
+/libs/portals/admin/application-system/ @island-is/norda-applications
+/libs/api/domains/application/ @island-is/norda-applications
+/libs/api/domains/payment/ @island-is/norda-applications
+
+/apps/contentful-apps/ @island-is/stefna
+/apps/services/search-indexer/ @island-is/stefna @island-is/juni
+/apps/services/contentful-entry-tagger/ @island-is/stefna
+/apps/tools/contentful-role-permissions/ @island-is/stefna
+/apps/web/screens/Organization/ @island-is/stefna
+/apps/web/screens/Project/ @island-is/stefna
+/apps/web/components/Organization/ @island-is/stefna
+/apps/web/components/ChatPanel/ @island-is/stefna
+/apps/web/components/Form/ @island-is/stefna
+/apps/web/components/Stepper/ @island-is/stefna
+/libs/content-search-toolkit/ @island-is/stefna @island-is/juni
+/libs/content-search-index-manager/ @island-is/stefna @island-is/juni
+/libs/content-search-metrics/ @island-is/stefna @island-is/juni
+/libs/content-search-indexer/ @island-is/stefna @island-is/juni
+/libs/api/domains/content-search/ @island-is/stefna @island-is/juni
+/libs/api/domains/syslumenn/ @island-is/stefna
+/libs/api/domains/email-signup/ @island-is/stefna
+/libs/api/domains/electronic-registration-statistics/ @island-is/stefna
+/libs/clients/electronic-registration-statistics/ @island-is/stefna
+/libs/api/domains/fiskistofa/ @island-is/stefna
+/libs/clients/fiskistofa/ @island-is/stefna
+/libs/clients/syslumenn/ @island-is/stefna @island-is/juni
+/libs/api/domains/watson-assistant-chat/ @island-is/stefna
+/libs/clients/icelandic-government-institution-vacancies/ @island-is/stefna
+/libs/api/domains/icelandic-government-institution-vacancies/ @island-is/stefna
+/libs/clients/aircraft-registry/ @island-is/stefna
+/libs/api/domains/aircraft-registry/ @island-is/stefna
+/libs/api/domains/housing-benefit-calculator/ @island-is/stefna
+/libs/clients/housing-benefit-calculator/ @island-is/stefna
+/libs/clients/ship-registry/ @island-is/stefna
+/libs/api/domains/ship-registry/ @island-is/stefna
+/libs/clients/administration-of-occupational-safety-and-health/ @island-is/stefna
+/libs/api/domains/administration-of-occupational-safety-and-health/ @island-is/stefna
+/libs/clients/ultraviolet-radiation/ @island-is/stefna
+/libs/clients/ums-cost-of-living-calculator/ @island-is/stefna
+/libs/api/domains/umbodsmadur-skuldara/ @island-is/stefna
+
+/libs/island-ui/ @island-is/island-ui
+
+/apps/consultation-portal/ @island-is/advania
+/apps/services/form-system/ @island-is/advania
+/libs/clients/consultation-portal/ @island-is/advania
+/libs/api/domains/consultation-portal/ @island-is/advania
+
+/apps/skilavottord/ @island-is/deloitte
+/libs/skilavottord/ @island-is/deloitte
+/libs/application/templates/parental-leave/ @island-is/deloitte
+/libs/application/template-api-modules/src/lib/modules/templates/parental-leave/ @island-is/deloitte
+/libs/clients/vmst/ @island-is/deloitte
+/libs/api/domains/directorate-of-labour/ @island-is/deloitte
+/libs/application/template-api-modules/src/lib/modules/templates/social-insurance-administration @island-is/deloitte
+/libs/application/templates/social-insurance-administration/ @island-is/deloitte
+/libs/clients/social-insurance-administration/ @island-is/deloitte @island-is/stefna @island-is/hugsmidjan
+/libs/application/templates/car-recycling/ @island-is/deloitte
+/libs/application/template-api-modules/src/lib/modules/templates/car-recycling/ @island-is/deloitte
+/libs/clients/car-recycling/ @island-is/deloitte
+/libs/application/templates/new-primary-school/ @island-is/deloitte
+/libs/application/template-api-modules/src/lib/modules/templates/new-primary-school/ @island-is/deloitte
+/libs/clients/mms/frigg @island-is/deloitte
+
+/apps/services/auth/ids-api/ @island-is/fuglar @island-is/aranja
+/apps/services/auth/admin-api/ @island-is/fuglar @island-is/aranja
+/apps/services/auth/public-api/ @island-is/fuglar @island-is/aranja
+/apps/services/auth/delegation-api/ @island-is/fuglar @island-is/aranja
+/apps/services/sessions/ @island-is/fuglar @island-is/aranja
+/apps/auth-admin-web/ @island-is/fuglar @island-is/aranja
+/libs/auth-api-lib/ @island-is/fuglar @island-is/aranja
+/libs/auth-api-lib/seeders/ @island-is/fuglar @island-is/aranja @island-is/origo-auth
+/libs/auth-nest-tools/ @island-is/fuglar @island-is/aranja
+/libs/application/templates/european-health-insurance-card/ @island-is/fuglar
+/libs/application/template-api-modules/src/lib/modules/templates/european-health-insurance-card/ @island-is/fuglar
+/libs/clients/ehic-client-v1 @island-is/fuglar
+
+/apps/services/auth/personal-representative/ @island-is/programm @island-is/aranja
+/apps/services/auth/personal-representative-public/ @island-is/programm @island-is/aranja
+
+/libs/application/templates/criminal-record/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/criminal-record-submission/ @island-is/origo
+/libs/api/domains/criminal-record/ @island-is/origo
+/libs/clients/criminal-record/ @island-is/origo
+
+/libs/application/templates/mortgage-certificate/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/mortgage-certificate-submission/ @island-is/origo
+/libs/api/domains/mortgage-certificate/ @island-is/origo
+
+/libs/application/templates/no-debt-certificate/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/no-debt-certificate/ @island-is/origo
+
+/libs/application/templates/id-card/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/id-card/ @island-is/origo
+
+/libs/clients/charge-fjs-v2/ @island-is/origo
+/libs/clients/vehicle-service-fjs-v1/ @island-is/origo
+
+/libs/application/templates/transport-authority/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/ @island-is/origo
+/libs/api/domains/transport-authority/ @island-is/origo
+/libs/clients/transport-authority/ @island-is/origo
+
+/libs/application/templates/driving-license-book-update-instructor/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/driving-license-book-update-instructor/ @island-is/origo
+
+/apps/services/university-gateway/ @island-is/origo
+/libs/clients/university-application/ @island-is/origo
+/libs/clients/university-gateway-api/ @island-is/origo
+/libs/api/domains/university-gateway/ @island-is/origo
+/libs/university-gateway/ @island-is/origo
+/apps/web/screens/UniversitySearch/ @island-is/origo
+/apps/web/screens/queries/UniversityGateway.ts @island-is/origo
+/apps/web/components/ListViewCard/ @island-is/origo
+
+/libs/application/templates/directorate-of-immigration/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/directorate-of-immigration/ @island-is/origo
+/libs/clients/directorate-of-immigration/ @island-is/origo
+
+/libs/application/templates/aosh/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/aosh @island-is/origo
+
+/libs/application/templates/healthcare-license-certificate/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/healthcare-license-certificate/ @island-is/origo
+
+
+/libs/application/templates/healthcare-work-permit/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/healthcare-work-permit/ @island-is/origo
+
+/libs/application/templates/energy-funds/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/energy-funds/ @island-is/origo
+/libs/api/domains/energy-funds/ @island-is/origo
+/libs/clients/energy-funds/ @island-is/origo
+
+/libs/application/templates/university/ @island-is/origo
+/libs/application/template-api-modules/src/lib/modules/templates/university/ @island-is/origo
# DevOps
-/.github/ @island-is/devops
-/.githooks/ @island-is/devops
-/apps/reference-backend/ @island-is/devops
-/apps/github-actions-cache/ @island-is/devops
-/infra/ @island-is/devops
-**/infra/ @island-is/devops
-/libs/logging/ @island-is/devops
-/scripts/ @island-is/devops
-/scripts/postinstall.js @island-is/devops @island-is/core
-/scripts/codegen.js @island-is/devops @island-is/core
-/charts/ @island-is/devops
-.dockerignore @island-is/devops
+/.github/ @island-is/devops
+/.githooks/ @island-is/devops
+/apps/reference-backend/ @island-is/devops
+/apps/github-actions-cache/ @island-is/devops
+/infra/ @island-is/devops
+**/infra/ @island-is/devops
+/libs/logging/ @island-is/devops
+/scripts/ @island-is/devops
+/scripts/postinstall.js @island-is/devops @island-is/core
+/scripts/codegen.js @island-is/devops @island-is/core
+/charts/ @island-is/devops
+.dockerignore @island-is/devops
# QA
-/apps/system-e2e/ @island-is/qa
-/libs/testing/e2e @island-is/qa
+/apps/system-e2e/ @island-is/qa
+/libs/testing/e2e @island-is/qa
# Islandis
-/apps/system-e2e/src/tests/islandis/admin-portal/ @island-is/aranja
-/apps/system-e2e/src/tests/islandis/application-system/ @island-is/norda-applications
-/apps/system-e2e/src/tests/islandis/application-system/acceptance/parental-leave.spec.ts @island-is/deloitte
-/apps/system-e2e/src/tests/islandis/consultation-portal/ @island-is/advania
-/apps/system-e2e/src/tests/islandis/service-portal/ @island-is/hugsmidjan @island-is/juni @island-is/norda-applications
-/apps/system-e2e/src/tests/islandis/web/ @island-is/hugsmidjan @island-is/juni @island-is/stefna
+/apps/system-e2e/src/tests/islandis/admin-portal/ @island-is/aranja
+/apps/system-e2e/src/tests/islandis/application-system/ @island-is/norda-applications
+/apps/system-e2e/src/tests/islandis/application-system/acceptance/parental-leave.spec.ts @island-is/deloitte
+/apps/system-e2e/src/tests/islandis/consultation-portal/ @island-is/advania
+/apps/system-e2e/src/tests/islandis/service-portal/ @island-is/hugsmidjan @island-is/juni @island-is/norda-applications
+/apps/system-e2e/src/tests/islandis/web/ @island-is/hugsmidjan @island-is/juni @island-is/stefna
# Judicial system
-/apps/system-e2e/src/tests/judicial-system/ @island-is/kolibri-justice-league
+/apps/system-e2e/src/tests/judicial-system/ @island-is/kolibri-justice-league
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/dataProviders/index.ts b/libs/application/templates/inao/financial-statement-cemetery/src/dataProviders/index.ts
index dd52c79ad7f2..b0b604d16ca3 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/dataProviders/index.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/dataProviders/index.ts
@@ -1,10 +1,7 @@
import { defineTemplateApi } from '@island.is/application/types'
import { UserProfileApi } from '@island.is/application/types'
-
-export {
- NationalRegistryUserApi,
- IdentityApi as IdentityApiProvider,
-} from '@island.is/application/types'
+import { IdentityApi } from '@island.is/application/types'
+export { NationalRegistryUserApi } from '@island.is/application/types'
export const CurrentUserTypeProvider = defineTemplateApi({
action: 'getUserType',
@@ -16,3 +13,9 @@ export const UserInfoApi = UserProfileApi.configure({
catchMock: true,
},
})
+
+export const IdentityApiProvider = IdentityApi.configure({
+ params: {
+ includeActorInfo: true,
+ },
+})
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryIncomeLimit/index.tsx b/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryIncomeLimit/index.tsx
deleted file mode 100644
index 3e78d43e4af1..000000000000
--- a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryIncomeLimit/index.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { useEffect } from 'react'
-import { AlertMessage, ContentBlock } from '@island.is/island-ui/core'
-import { useLocale } from '@island.is/localization'
-import { useQuery } from '@apollo/client'
-import { useFormContext } from 'react-hook-form'
-import { m } from '../../lib/messages'
-import { financialLimitQuery } from '../../graphql'
-import { CEMETERYOPERATIONIDS } from '../../utils/constants'
-import { FSIUSERTYPE } from '../../types/types'
-
-export const CemeteryIncomeLimit = () => {
- const { getValues, setValue } = useFormContext()
- const { formatMessage } = useLocale()
-
- const values = getValues()
- const year: string = values?.conditionalAbout?.operatingYear
-
- const { data, error } = useQuery(financialLimitQuery, {
- variables: { input: { year, clientType: `${FSIUSERTYPE.CEMETRY}` } },
- })
-
- useEffect(() => {
- const limit = data?.financialStatementsInaoClientFinancialLimit?.toString()
-
- if (limit) {
- setValue(CEMETERYOPERATIONIDS.incomeLimit, limit)
- }
- }, [data, setValue])
-
- if (error) {
- return (
-
-
-
- )
- }
-
- return null
-}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/AboutOverview.tsx b/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/AboutOverview.tsx
index 926d2038faba..f0d0177b8a94 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/AboutOverview.tsx
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/AboutOverview.tsx
@@ -1,61 +1,61 @@
import { GridColumn, GridRow } from '@island.is/island-ui/core'
-import { formatPhoneNumber } from '@island.is/application/ui-components'
-
import { format as formatNationalId } from 'kennitala'
-import { m } from '../../lib/messages'
import { sectionColumn } from './overviewStyles.css'
-import { FinancialStatementCemetery } from '../../lib/dataSchema'
import { ValueLine } from './ValueLine'
+import { FormValue } from '@island.is/application/types'
+import { getAboutOverviewNumbers } from '../../utils/overviewUtils'
+import { m } from '../../lib/messages'
-export const AboutOverview = ({
- answers,
-}: {
- answers: FinancialStatementCemetery
-}) => {
+type Props = {
+ answers: FormValue
+}
+
+export const AboutOverview = ({ answers }: Props) => {
+ const {
+ fullName,
+ nationalId,
+ powerOfAttorneyName,
+ powerOfAttorneyNationalId,
+ email,
+ phoneNumber,
+ } = getAboutOverviewNumbers(answers)
return (
<>
-
+
- {answers.about.powerOfAttorneyName ? (
+ {powerOfAttorneyName ? (
) : null}
- {answers.about.powerOfAttorneyNationalId ? (
+ {powerOfAttorneyNationalId ? (
) : null}
-
+
-
+
>
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/CapitalNumbersOverview.tsx b/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/CapitalNumbersOverview.tsx
index f3e18079a7cf..8814e7cb42b8 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/CapitalNumbersOverview.tsx
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/CapitalNumbersOverview.tsx
@@ -1,18 +1,19 @@
import { Box, GridColumn, GridRow, Text } from '@island.is/island-ui/core'
-
-import { m } from '../../lib/messages'
import { ValueLine } from './ValueLine'
import { sectionColumn, starterColumnStyle } from './overviewStyles.css'
import { useLocale } from '@island.is/localization'
-import { FinancialStatementCemetery } from '../../lib/dataSchema'
-import { formatCurrency } from '../../utils/helpers'
+import { FormValue } from '@island.is/application/types'
+import { getCapitalNumbersOverviewNumbers } from '../../utils/overviewUtils'
+import { m } from '../../lib/messages'
+
+type Props = {
+ answers: FormValue
+}
-export const CapitalNumberOverview = ({
- answers,
-}: {
- answers: FinancialStatementCemetery
-}) => {
+export const CapitalNumberOverview = ({ answers }: Props) => {
const { formatMessage } = useLocale()
+ const { capitalIncome, capitalCost, totalCapital } =
+ getCapitalNumbersOverviewNumbers(answers)
return (
<>
@@ -22,27 +23,17 @@ export const CapitalNumberOverview = ({
-
+
- {answers.capitalNumbers?.capitalCost ? (
+ {capitalCost ? (
-
+
) : null}
-
+
>
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/index.tsx b/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/index.tsx
index 0f8c89f2c9f0..b5e45641c1fd 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/index.tsx
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/fields/CemeteryOverview/index.tsx
@@ -1,6 +1,5 @@
import { Fragment } from 'react'
import { FieldBaseProps } from '@island.is/application/types'
-import { getValueViaPath } from '@island.is/application/core'
import {
AlertBanner,
Box,
@@ -11,9 +10,6 @@ import {
} from '@island.is/island-ui/core'
import { useLocale } from '@island.is/localization'
import { format as formatNationalId } from 'kennitala'
-import { m } from '../../lib/messages'
-import { FinancialStatementCemetery } from '../../lib/dataSchema'
-import { formatCurrency } from '../../utils/helpers'
import { AboutOverview } from './AboutOverview'
import { ValueLine } from './ValueLine'
import { CapitalNumberOverview } from './CapitalNumbersOverview'
@@ -24,117 +20,53 @@ import {
sectionColumn,
starterColumnStyle,
} from './overviewStyles.css'
+import { formatCurrency } from '../../utils/currency'
+import { isCemetryUnderFinancialLimit } from '../../utils/helpers'
+import { getOverviewNumbers } from '../../utils/overviewUtils'
+import { m } from '../../lib/messages'
export const CemeteryOverview = ({ application }: FieldBaseProps) => {
const { formatMessage } = useLocale()
-
- const answers = application.answers as FinancialStatementCemetery
- const file = getValueViaPath>(answers, 'attachments.file')
- const fileName = file?.[0]?.name
- const incomeLimit =
- getValueViaPath(answers, 'cemeteryOperations.incomeLimit') ?? '0'
- const email = getValueViaPath(answers, 'about.email')
- const cemeteryCaretakers = answers.cemeteryCaretaker
-
- const careIncome = getValueViaPath(
- answers,
- 'cemeteryIncome.careIncome',
- )
- const burialRevenue = getValueViaPath(
- answers,
- 'cemeteryIncome.burialRevenue',
- )
- const grantFromTheCemeteryFund = getValueViaPath(
- answers,
- 'cemeteryIncome.grantFromTheCemeteryFund',
- )
- const otherIncome = getValueViaPath(
- answers,
- 'cemeteryIncome.otherIncome',
- )
- const totalIncome = getValueViaPath(answers, 'cemeteryIncome.total')
-
- const payroll = getValueViaPath(answers, 'cemeteryExpense.payroll')
- const funeralCost = getValueViaPath(
- answers,
- 'cemeteryExpense.funeralCost',
- )
- const chapelExpense = getValueViaPath(
- answers,
- 'cemeteryExpense.chapelExpense',
- )
- const donationsToCemeteryFund = getValueViaPath(
- answers,
- 'cemeteryExpense.cemeteryFundExpense',
- )
- const donationsToOther = getValueViaPath(
- answers,
- 'cemeteryExpense.donationsToOther',
- )
- const otherOperationCost = getValueViaPath(
- answers,
- 'cemeteryExpense.otherOperationCost',
- )
- const depreciation = getValueViaPath(
- answers,
- 'cemeteryExpense.depreciation',
- )
- const totalExpenses = getValueViaPath(
- answers,
- 'cemeteryExpense.total',
- )
-
- const fixedAssetsTotal = getValueViaPath(
- answers,
- 'cemeteryAsset.fixedAssetsTotal',
- )
- const currentAssets = getValueViaPath(
- answers,
- 'cemeteryAsset.currentAssets',
- )
- const totalAssets = getValueViaPath(answers, 'assetsTotal')
-
- const longTerm = getValueViaPath(
- answers,
- 'cemeteryLiability.longTerm',
- )
- const shortTerm = getValueViaPath(
- answers,
- 'cemeteryLiability.shortTerm',
- )
- const totalLiabilities = getValueViaPath(
- answers,
- 'equityAndLiabilitiesTotals.liabilitiesTotal',
- )
-
- const equityAtTheBeginningOfTheYear = getValueViaPath(
- answers,
- 'cemeteryEquity.equityAtTheBeginningOfTheYear',
- )
- const revaluationDueToPriceChanges = getValueViaPath(
- answers,
- 'cemeteryEquity.revaluationDueToPriceChanges',
- )
- const reevaluateOther = getValueViaPath(
- answers,
- 'cemeteryEquity.reevaluateOther',
- )
- const operationResult = getValueViaPath(
- answers,
- 'cemeteryEquity.operationResult',
- )
- const totalEquity = getValueViaPath(answers, 'cemeteryEquity.total')
-
- const debtsAndCash = getValueViaPath(
- answers,
- 'equityAndLiabilitiesTotals.equityAndLiabilitiesTotal',
+ const cemeteryUnderFinancialLimit = isCemetryUnderFinancialLimit(
+ application.answers,
)
+ const {
+ careIncome,
+ burialRevenue,
+ grantFromTheCemeteryFund,
+ otherIncome,
+ totalIncome,
+ payroll,
+ funeralCost,
+ chapelExpense,
+ donationsToCemeteryFund,
+ donationsToOther,
+ otherOperationCost,
+ depreciation,
+ totalExpenses,
+ fixedAssetsTotal,
+ currentAssets,
+ totalAssets,
+ longTerm,
+ shortTerm,
+ totalLiabilities,
+ equityAtTheBeginningOfTheYear,
+ revaluationDueToPriceChanges,
+ reevaluateOther,
+ operationResult,
+ totalEquity,
+ debtsAndCash,
+ email,
+ fileName,
+ incomeLimit,
+ cemeteryCaretakers,
+ } = getOverviewNumbers(application.answers)
return (
-
+
@@ -214,7 +146,7 @@ export const CemeteryOverview = ({ application }: FieldBaseProps) => {
-
+
@@ -294,8 +226,9 @@ export const CemeteryOverview = ({ application }: FieldBaseProps) => {
- {Number(totalIncome) < Number(incomeLimit) &&
- cemeteryCaretakers?.length > 0 ? (
+ {cemeteryUnderFinancialLimit &&
+ cemeteryCaretakers &&
+ cemeteryCaretakers.length > 0 ? (
<>
@@ -338,7 +271,7 @@ export const CemeteryOverview = ({ application }: FieldBaseProps) => {
) : null}
{fileName ? (
<>
-
+
>
) : null}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/fields/FetchDataBasedOnSelectedYear/index.tsx b/libs/application/templates/inao/financial-statement-cemetery/src/fields/FetchDataBasedOnSelectedYear/index.tsx
new file mode 100644
index 000000000000..1fbb78acc661
--- /dev/null
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/fields/FetchDataBasedOnSelectedYear/index.tsx
@@ -0,0 +1,123 @@
+import { useEffect } from 'react'
+import {
+ AlertMessage,
+ ContentBlock,
+ LoadingDots,
+} from '@island.is/island-ui/core'
+import { useLocale } from '@island.is/localization'
+import { useQuery } from '@apollo/client'
+import { useFormContext } from 'react-hook-form'
+import { financialLimitQuery, taxInfoQuery } from '../../graphql'
+import { CEMETERYOPERATIONIDS } from '../../utils/constants'
+import { FSIUSERTYPE, TaxInfoData } from '../../types/types'
+import {
+ getCareIncomeAndBurialRevenueAndGrant,
+ getTaxInfoFromAnswers,
+} from '../../utils/helpers'
+import { m } from '../../lib/messages'
+
+export const FetchDataBasedOnSelectedYear = () => {
+ const { getValues, setValue } = useFormContext()
+ const { formatMessage } = useLocale()
+
+ const values = getValues()
+ const year: string = values?.conditionalAbout?.operatingYear
+
+ const { data, error, loading } = useQuery(financialLimitQuery, {
+ variables: { input: { year, clientType: `${FSIUSERTYPE.CEMETRY}` } },
+ })
+
+ const { data: taxInfoData, loading: taxInfoLoading } = useQuery(
+ taxInfoQuery,
+ {
+ variables: { year },
+ },
+ )
+
+ const {
+ careIncomeFromAnswers,
+ burialRevenueFromAnswers,
+ grantFromTheCemeteryFundFromAnswers,
+ donationsToCemeteryFundFromAnswers,
+ } = getTaxInfoFromAnswers(values)
+
+ useEffect(() => {
+ const limit = data?.financialStatementsInaoClientFinancialLimit?.toString()
+
+ if (limit) {
+ setValue(CEMETERYOPERATIONIDS.incomeLimit, limit)
+ }
+ }, [data, setValue])
+
+ useEffect(() => {
+ if (!taxInfoData) return
+
+ const {
+ careIncome,
+ burialRevenue,
+ grantFromTheCemeteryFund,
+ donationsToCemeteryFund,
+ } = getCareIncomeAndBurialRevenueAndGrant(
+ taxInfoData.financialStatementsInaoTaxInfo,
+ )
+
+ const updates = [
+ {
+ id: CEMETERYOPERATIONIDS.careIncome,
+ value: careIncome,
+ exists: careIncomeFromAnswers,
+ },
+ {
+ id: CEMETERYOPERATIONIDS.burialRevenue,
+ value: burialRevenue,
+ exists: burialRevenueFromAnswers,
+ },
+ {
+ id: CEMETERYOPERATIONIDS.grantFromTheCemeteryFund,
+ value: grantFromTheCemeteryFund,
+ exists: grantFromTheCemeteryFundFromAnswers,
+ },
+ {
+ id: CEMETERYOPERATIONIDS.donationsToCemeteryFund,
+ value: donationsToCemeteryFund,
+ exists: donationsToCemeteryFundFromAnswers,
+ },
+ ]
+
+ updates.forEach((update) => {
+ if (!update.exists) {
+ setValue(update.id, update.value)
+ }
+ })
+ }, [
+ taxInfoData,
+ setValue,
+ careIncomeFromAnswers,
+ burialRevenueFromAnswers,
+ grantFromTheCemeteryFundFromAnswers,
+ donationsToCemeteryFundFromAnswers,
+ CEMETERYOPERATIONIDS,
+ ])
+
+ if (loading || taxInfoLoading) {
+ return (
+
+
+
+ )
+ }
+
+ if (error) {
+ return (
+
+
+
+ )
+ }
+
+ return null
+}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/fields/PowerOfAttorney/index.tsx b/libs/application/templates/inao/financial-statement-cemetery/src/fields/PowerOfAttorney/index.tsx
deleted file mode 100644
index f4dcf6f77248..000000000000
--- a/libs/application/templates/inao/financial-statement-cemetery/src/fields/PowerOfAttorney/index.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-import { useEffect } from 'react'
-import { useFormContext } from 'react-hook-form'
-import { useLazyQuery } from '@apollo/client'
-import {
- Box,
- GridColumn,
- GridContainer,
- GridRow,
- InputError,
-} from '@island.is/island-ui/core'
-import { InputController } from '@island.is/shared/form-fields'
-import { useLocale } from '@island.is/localization'
-import { IdentityInput, Query } from '@island.is/api/schema'
-import { m } from '../../lib/messages'
-import { FieldBaseProps } from '@island.is/application/types'
-import { getErrorViaPath } from '@island.is/application/core'
-import { IdentityQuery } from '../../graphql'
-import { ABOUTIDS } from '../../utils/constants'
-
-export const PowerOfAttorneyFields = ({ application }: FieldBaseProps) => {
- const { formatMessage } = useLocale()
- const {
- formState: { errors },
- setValue,
- } = useFormContext()
-
- const currentActor =
- application.applicantActors[application.applicantActors.length - 1]
-
- const [getIdentity, { loading, error: queryError }] = useLazyQuery<
- Query,
- { input: IdentityInput }
- >(IdentityQuery, {
- onCompleted: (data) => {
- setValue(ABOUTIDS.powerOfAttorneyName, data.identity?.name ?? '')
- },
- })
-
- useEffect(() => {
- if (currentActor) {
- getIdentity({
- variables: {
- input: {
- nationalId: currentActor,
- },
- },
- })
- }
- }, [])
-
- if (application.applicantActors.length === 0) {
- return null
- }
-
- return (
-
-
-
-
-
-
-
-
-
-
- {queryError ? (
-
- ) : null}
-
-
-
-
- )
-}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/fields/index.ts b/libs/application/templates/inao/financial-statement-cemetery/src/fields/index.ts
index 9903bafb3734..5c8739dcdcab 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/fields/index.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/fields/index.ts
@@ -1,4 +1,3 @@
export { CemeteryCaretaker } from './CemeteryCareteker'
-export { PowerOfAttorneyFields } from './PowerOfAttorney'
export { CemeteryOverview } from './CemeteryOverview'
-export { CemeteryIncomeLimit } from './CemeteryIncomeLimit'
+export { FetchDataBasedOnSelectedYear } from './FetchDataBasedOnSelectedYear'
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryCaretakerSection/caretakerMultiField.ts b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryCaretakerSection/caretakerMultiField.ts
deleted file mode 100644
index 21b59e7439fe..000000000000
--- a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryCaretakerSection/caretakerMultiField.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { buildCustomField, buildMultiField } from '@island.is/application/core'
-import { m } from '../../../lib/messages'
-import { CEMETERYCARETAKER } from '../../../utils/constants'
-
-export const caretakerMultiField = buildMultiField({
- id: 'caretakers',
- title: m.cemeteryBoardmembers,
- description: m.cemeteryRegisterCaretakers,
- children: [
- buildCustomField({
- id: 'cemeteryCaretaker',
- title: m.cemeteryBoardmembers,
- component: 'CemeteryCaretaker',
- childInputIds: Object.values(CEMETERYCARETAKER),
- }),
- ],
-})
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryCaretakerSection/index.ts b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryCaretakerSection/index.ts
index a5805af6e458..384036b026d1 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryCaretakerSection/index.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryCaretakerSection/index.ts
@@ -1,9 +1,32 @@
-import { buildSection } from '@island.is/application/core'
+import {
+ buildCustomField,
+ buildMultiField,
+ buildSection,
+} from '@island.is/application/core'
import { m } from '../../../lib/messages'
-import { caretakerMultiField } from './caretakerMultiField'
+import { CEMETERYCARETAKER } from '../../../utils/constants'
+import { isCemetryUnderFinancialLimit } from '../../../utils/helpers'
+// This section should appear if the cemetries total income is under the income limit
export const cemeteryCaretekerSection = buildSection({
+ condition: (answers) => {
+ return isCemetryUnderFinancialLimit(answers)
+ },
id: 'cemeteryCaretekerSection',
title: m.cemeteryCaretakers,
- children: [caretakerMultiField],
+ children: [
+ buildMultiField({
+ id: 'caretakers',
+ title: m.cemeteryBoardmembers,
+ description: m.cemeteryRegisterCaretakers,
+ children: [
+ buildCustomField({
+ id: 'cemeteryCaretaker',
+ title: m.cemeteryBoardmembers,
+ component: 'CemeteryCaretaker',
+ childInputIds: Object.values(CEMETERYCARETAKER),
+ }),
+ ],
+ }),
+ ],
})
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryFinancialStatementSection/index.ts b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryFinancialStatementSection/index.ts
index 8df2c99ea9cd..b46b820b5714 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryFinancialStatementSection/index.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryFinancialStatementSection/index.ts
@@ -1,30 +1,18 @@
import { buildFileUploadField, buildSection } from '@island.is/application/core'
import { m } from '../../../lib/messages'
-import { currencyStringToNumber } from '../../../utils/helpers'
-import { FinancialStatementCemetery } from '../../../lib/dataSchema'
+import { isCemetryUnderFinancialLimit } from '../../../utils/helpers'
+// This section should appear if the cemetries total income is over the income limit
export const cemeteryFinancialStatementSection = buildSection({
+ condition: (answers) => {
+ return !isCemetryUnderFinancialLimit(answers)
+ },
id: 'documents',
title: m.financialStatement,
children: [
buildFileUploadField({
id: 'attachments.file',
title: m.upload,
- condition: (answers) => {
- const applicationAnswers = answers as FinancialStatementCemetery
- const careTakerLimit =
- applicationAnswers.cemeteryOperation?.incomeLimit ?? '0'
- const fixedAssetsTotal =
- applicationAnswers.cemeteryAsset?.fixedAssetsTotal
- const totalIncome = applicationAnswers.cemeteryIncome?.total
- const longTermDebt = applicationAnswers.cemeteryLiability?.longTerm
- const isUnderLimit =
- currencyStringToNumber(totalIncome) < careTakerLimit
- if (isUnderLimit && fixedAssetsTotal === '0' && longTermDebt === '0') {
- return false
- }
- return true
- },
introduction: m.uploadIntro,
description: m.uploadDescription,
uploadHeader: m.uploadHeader,
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/capitalNumberSubSection.ts b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/capitalNumberSubSection.ts
index 86bc4ae3eaa0..c8f3ff8e67a3 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/capitalNumberSubSection.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/capitalNumberSubSection.ts
@@ -6,7 +6,7 @@ import {
} from '@island.is/application/core'
import { m } from '../../../lib/messages'
import { CAPITALNUMBERS } from '../../../utils/constants'
-import { sumCapitalNumbers } from '../../../utils/helpers'
+import { sumCapitalNumbers } from '../../../utils/sums'
export const capitalNumberSubSection = buildSubSection({
id: 'keynumbers.capitalNumbers',
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/equityAndLiabilitySubSection.ts b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/equityAndLiabilitySubSection.ts
index 1e0f6a2987f2..5a1b3b970132 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/equityAndLiabilitySubSection.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/equityAndLiabilitySubSection.ts
@@ -13,12 +13,12 @@ import {
} from '../../../utils/constants'
import {
operationResult,
- showEquitiesAndLiabilitiesAlert,
- sumAssets,
sumLiabilities,
- sumTotalEquity,
sumTotalEquityAndLiabilities,
-} from '../../../utils/helpers'
+ sumTotalEquity,
+ showEquitiesAndLiabilitiesAlert,
+ sumAssets,
+} from '../../../utils/sums'
export const equityAndLiabilitiesSubSection = buildSubSection({
id: 'keyNumbers.cemetryEquitiesAndLiabilities',
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/opperatingCostSubSection.ts b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/opperatingCostSubSection.ts
index 34329fa8ee15..d15128bfd667 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/opperatingCostSubSection.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/cemeteryKeyNumbersSection/opperatingCostSubSection.ts
@@ -12,7 +12,7 @@ import {
sumExpenses,
sumIncome,
sumOperatingResults,
-} from '../../../utils/helpers'
+} from '../../../utils/sums'
export const opperatingCostSubSection = buildSubSection({
id: 'operatingCost',
@@ -24,9 +24,9 @@ export const opperatingCostSubSection = buildSubSection({
description: m.fillOutAppopriate,
children: [
buildCustomField({
- id: 'cemetryIncomeLimit',
+ id: 'fetchDataBasedOnYear',
title: '',
- component: 'CemeteryIncomeLimit',
+ component: 'FetchDataBasedOnSelectedYear',
}),
// Income
buildDescriptionField({
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/clientInfoSection/index.ts b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/clientInfoSection/index.ts
index 9916366fd934..718b55a3d021 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/clientInfoSection/index.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/forms/applicationForm/clientInfoSection/index.ts
@@ -1,12 +1,13 @@
import {
buildAsyncSelectField,
- buildCustomField,
buildDescriptionField,
buildMultiField,
+ buildPhoneField,
buildSection,
buildTextField,
+ getValueViaPath,
} from '@island.is/application/core'
-import { Application, UserProfile } from '@island.is/application/types'
+import { Application } from '@island.is/application/types'
import { m } from '../../../lib/messages'
import { ABOUTIDS } from '../../../utils/constants'
import { Identity } from '@island.is/api/schema'
@@ -58,42 +59,49 @@ export const clientInfoSection = buildSection({
return nationalRegistry.name
},
}),
- buildDescriptionField({
- id: 'about.description2',
- title: '',
+ buildTextField({
+ id: ABOUTIDS.powerOfAttorneyNationalId,
+ title: m.powerOfAttorneyNationalId,
+ width: 'half',
+ readOnly: true,
+ format: '######-####',
+ defaultValue: (application: Application) =>
+ getValueViaPath(
+ application.externalData,
+ 'identity.data.actor.nationalId',
+ ),
}),
- buildCustomField({
- id: 'powerOfAttorney',
- title: '',
- description: '',
- component: 'PowerOfAttorneyFields',
- childInputIds: [
- ABOUTIDS.powerOfAttorneyNationalId,
- ABOUTIDS.powerOfAttorneyName,
- ],
+ buildTextField({
+ id: ABOUTIDS.powerOfAttorneyName,
+ title: m.powerOfAttorneyName,
+ width: 'half',
+ readOnly: true,
+ defaultValue: (application: Application) =>
+ getValueViaPath(
+ application.externalData,
+ 'identity.data.actor.name',
+ ),
}),
-
buildTextField({
id: 'about.email',
title: m.email,
width: 'half',
variant: 'email',
- defaultValue: (application: Application) => {
- const userProfile = application.externalData.userProfile
- .data as UserProfile
- return userProfile.email
- },
+ defaultValue: (application: Application) =>
+ getValueViaPath(
+ application.externalData,
+ 'userProfile.data.email',
+ ),
}),
- buildTextField({
+ buildPhoneField({
id: 'about.phoneNumber',
title: m.phoneNumber,
width: 'half',
- variant: 'tel',
- defaultValue: (application: Application) => {
- const userProfile = application.externalData.userProfile
- .data as UserProfile
- return userProfile.mobilePhoneNumber
- },
+ defaultValue: (application: Application) =>
+ getValueViaPath(
+ application.externalData,
+ 'userProfile.data.mobilePhoneNumber',
+ ),
}),
],
}),
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/hooks/useTotals.ts b/libs/application/templates/inao/financial-statement-cemetery/src/hooks/useTotals.ts
deleted file mode 100644
index 15a5873fdd5e..000000000000
--- a/libs/application/templates/inao/financial-statement-cemetery/src/hooks/useTotals.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { useCallback, useEffect, useState } from 'react'
-import { useFormContext } from 'react-hook-form'
-import { getTotal } from '../utils/helpers'
-
-const useTotals = (key: string): [() => void, number] => {
- const [total, setTotal] = useState(0)
- const { getValues } = useFormContext()
- const getSum = useCallback(() => {
- const values = getValues()
- const sum = getTotal(values, key)
- setTotal(sum)
- }, [key, getValues, setTotal])
-
- useEffect(() => {
- getSum()
- }, [getSum])
-
- return [getSum, total]
-}
-
-export { useTotals }
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/lib/dataSchema.ts b/libs/application/templates/inao/financial-statement-cemetery/src/lib/dataSchema.ts
index 97379678b103..35a8aefa428f 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/lib/dataSchema.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/lib/dataSchema.ts
@@ -3,11 +3,9 @@ import { m } from './messages'
import * as kennitala from 'kennitala'
import { parsePhoneNumberFromString } from 'libphonenumber-js'
import { BOARDMEMEBER, CARETAKER } from '../utils/constants'
-import {
- isPositiveNumberInString,
- getBoardmembersAndCaretakers,
-} from '../utils/helpers'
+import { getBoardmembersAndCaretakers } from '../utils/helpers'
import { YES } from '@island.is/application/types'
+import { isPositiveNumberInString } from '../utils/currency'
const FileSchema = z.object({
name: z.string(),
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/types/types.ts b/libs/application/templates/inao/financial-statement-cemetery/src/types/types.ts
index 53e29233513f..edd111488a8c 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/types/types.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/types/types.ts
@@ -46,3 +46,19 @@ type InaoConfigItem = {
export type AuditConfig = {
financialStatementsInaoConfig: Array
}
+
+export type CareTaker = {
+ nationalId: string
+ name: string
+ role: string
+}
+
+export type TaxInfoItem = {
+ __typename: string
+ key: number
+ value: string
+}
+
+export type TaxInfoData = {
+ financialStatementsInaoTaxInfo: Array
+}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/utils/constants.ts b/libs/application/templates/inao/financial-statement-cemetery/src/utils/constants.ts
index 2c0cb3bb6afe..190000af6700 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/utils/constants.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/utils/constants.ts
@@ -26,6 +26,7 @@ export enum TaxInfoTypes {
CARE_INCOME = 300,
BURIAL_REVENUE = 301,
GRANT_FROM_THE_CEMETERY_FUND = 302,
+ DONATIONS_TO_CEMETERYFUND = 334,
}
export const CEMETERYOPERATIONIDS = {
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/utils/currency.ts b/libs/application/templates/inao/financial-statement-cemetery/src/utils/currency.ts
new file mode 100644
index 000000000000..7ffe7149224c
--- /dev/null
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/utils/currency.ts
@@ -0,0 +1,16 @@
+export const currencyStringToNumber = (str: string) => {
+ if (!str) {
+ return str
+ }
+ const cleanString = str.replace(/[,\s]+|[.\s]+/g, '')
+ return parseInt(cleanString, 10)
+}
+
+export const formatCurrency = (answer?: string) => {
+ if (!answer) return '0. kr'
+ return answer.replace(/\B(?=(\d{3})+(?!\d))/g, '.') + ' kr.'
+}
+
+export const isPositiveNumberInString = (input: string) => {
+ return Number(input) >= 0
+}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/utils/helpers.ts b/libs/application/templates/inao/financial-statement-cemetery/src/utils/helpers.ts
index aec943d790e8..9a6d72727122 100644
--- a/libs/application/templates/inao/financial-statement-cemetery/src/utils/helpers.ts
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/utils/helpers.ts
@@ -1,42 +1,16 @@
-import { ExternalData, FormValue } from '@island.is/application/types'
+import { FormValue } from '@island.is/application/types'
import { getValueViaPath } from '@island.is/application/core'
import {
BOARDMEMEBER,
- CAPITALNUMBERS,
CARETAKER,
CemeteriesBackwardLimit,
CemeteriesYearAllowed,
- CEMETERYEQUITIESANDLIABILITIESIDS,
CEMETERYOPERATIONIDS,
- EQUITYANDLIABILITIESTOTALS,
- OPERATINGCOST,
- TOTAL,
+ TaxInfoTypes,
} from './constants'
-import { FinancialStatementCemetery } from '../lib/dataSchema'
import getYear from 'date-fns/getYear'
import subYears from 'date-fns/subYears'
-import { AuditConfig, BoardMember, Config, FSIUSERTYPE } from '../types/types'
-
-export const getTotal = (values: Record, key: string) => {
- if (!values[key]) {
- return 0
- }
- const total = Object.entries(values[key])
- .filter(([k, v]) => k !== TOTAL && !isNaN(Number(v)))
- .map(([_k, v]) => Number(v))
- .reduce((prev, current) => {
- return (prev += current)
- }, 0)
- return total
-}
-
-export const currencyStringToNumber = (str: string) => {
- if (!str) {
- return str
- }
- const cleanString = str.replace(/[,\s]+|[.\s]+/g, '')
- return parseInt(cleanString, 10)
-}
+import { AuditConfig, BoardMember, TaxInfoItem } from '../types/types'
export const getBoardmembersAndCaretakers = (members: Array) => {
const careTakers = members
@@ -60,11 +34,7 @@ export const isCemetryUnderFinancialLimit = (answers: FormValue) => {
getValueViaPath(answers, 'cemeteryLiability.longTerm') || '0'
const isUnderLimit = Number(totalIncome) < Number(incomeLimit)
- if (isUnderLimit && fixedAssetsTotal === '0' && longTermDebt === '0') {
- return true
- }
-
- return false
+ return isUnderLimit && fixedAssetsTotal === '0' && longTermDebt === '0'
}
export const getYearOptions = (data: AuditConfig) => {
@@ -103,226 +73,64 @@ export const possibleOperatingYears = (
return operationYears
}
-export const getConfigInfoForKey = (config: Config[], configKey: string) => {
- return config?.filter((config: Config) => config.key === configKey)[0].value
-}
-
-export const formatCurrency = (answer?: string) => {
- if (!answer) return '0. kr'
- return answer.replace(/\B(?=(\d{3})+(?!\d))/g, '.') + ' kr.'
-}
-
-export const isPositiveNumberInString = (input: string) => {
- return Number(input) > 0
-}
-
-export const sumIncome = (answers: FormValue) => {
- const careIncome =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.careIncome) || '0'
- const burialRevenue =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.burialRevenue) || '0'
- const grantFromTheCemeteryFund =
- getValueViaPath(
- answers,
- CEMETERYOPERATIONIDS.grantFromTheCemeteryFund,
- ) || '0'
- const otherIncome =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.otherIncome) || '0'
-
- return `${
- Number(careIncome) +
- Number(burialRevenue) +
- Number(grantFromTheCemeteryFund) +
- Number(otherIncome)
- }`
-}
-
-export const sumExpenses = (answers: FormValue) => {
- const payroll = getValueViaPath(answers, CEMETERYOPERATIONIDS.payroll)
- const funeralCost =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.funeralCost) || '0'
- const chapelExpense =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.chapelExpense) || '0'
- const donationsToCemeteryFund =
- getValueViaPath(
- answers,
- CEMETERYOPERATIONIDS.donationsToCemeteryFund,
- ) || '0'
- const donationsToOther =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.donationsToOther) ||
- '0'
- const otherOperationCost =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.otherOperationCost) ||
- '0'
- const depreciation =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.depreciation) || '0'
-
- return `${
- Number(payroll) +
- Number(funeralCost) +
- Number(chapelExpense) +
- Number(donationsToCemeteryFund) +
- Number(donationsToOther) +
- Number(otherOperationCost) +
- Number(depreciation)
- }`
-}
-
-export const sumOperatingResults = (answers: FormValue) => {
- const income =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.totalIncome) || '0'
- const expenses =
- getValueViaPath(answers, CEMETERYOPERATIONIDS.totalExpense) || '0'
-
- return `${Number(income) - Number(expenses)}`
-}
-
-export const sumCapitalNumbers = (answers: FormValue) => {
- const capitalIncome =
- getValueViaPath(answers, CAPITALNUMBERS.capitalIncome) || '0'
- const capitalCost =
- getValueViaPath(answers, CAPITALNUMBERS.capitalCost) || '0'
- return `${Number(capitalIncome) - Number(capitalCost)}`
-}
-
-export const sumAssets = (answers: FormValue) => {
- const fixedAssetsTotal =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.fixedAssetsTotal,
- ) || '0'
- const currentAssets =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.currentAssets,
- ) || '0'
- return `${Number(fixedAssetsTotal) + Number(currentAssets)}`
-}
-
-export const sumLiabilities = (answers: FormValue) => {
- const longTerm =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.longTerm,
- ) || '0'
- const shortTerm =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.shortTerm,
- ) || '0'
- return `${Number(longTerm) + Number(shortTerm)}`
-}
-
-export const operationResult = (answers: FormValue) => {
- const operatingTotalCost =
- getValueViaPath(answers, OPERATINGCOST.total) || '0'
- const capitalTotal =
- getValueViaPath(answers, CAPITALNUMBERS.total) || '0'
- return `${Number(operatingTotalCost) + Number(capitalTotal)}`
-}
-
-export const sumTotalEquity = (answers: FormValue) => {
- const equityAtTheBeginningOfTheYear =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.equityAtTheBeginningOfTheYear,
- ) || '0'
- const revaluationDueToPriceChanges =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.revaluationDueToPriceChanges,
- ) || '0'
- const reevaluateOther =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.reevaluateOther,
- ) || '0'
- const operationResult =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.operationResult,
- ) || '0'
-
- return `${
- Number(equityAtTheBeginningOfTheYear) +
- Number(revaluationDueToPriceChanges) +
- Number(reevaluateOther) +
- Number(operationResult)
- }`
-}
-
-export const sumTotalEquityAndLiabilities = (answers: FormValue) => {
- const liabilityTotal =
- getValueViaPath(
- answers,
- EQUITYANDLIABILITIESTOTALS.liabilitiesTotal,
- ) || '0'
- const totalEquity =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.equityTotal,
- ) || '0'
+export const getCareIncomeAndBurialRevenueAndGrant = (
+ taxInfo?: Array,
+) => {
+ if (!taxInfo) {
+ return {
+ careIncome: undefined,
+ burialRevenue: undefined,
+ grantFromTheCemeteryFund: undefined,
+ }
+ }
- return `${Number(totalEquity) + Number(liabilityTotal)}`
+ const careIncome = taxInfo.find(
+ (item) => item.key === TaxInfoTypes.CARE_INCOME,
+ )
+ const burialRevenue = taxInfo.find(
+ (item) => item.key === TaxInfoTypes.BURIAL_REVENUE,
+ )
+ const grantFromTheCemeteryFund = taxInfo.find(
+ (item) => item.key === TaxInfoTypes.GRANT_FROM_THE_CEMETERY_FUND,
+ )
+ const donationsToCemeteryFund = taxInfo.find(
+ (item) => item.key === TaxInfoTypes.DONATIONS_TO_CEMETERYFUND,
+ )
+
+ return {
+ careIncome: careIncome ? careIncome.value : undefined,
+ burialRevenue: burialRevenue ? burialRevenue.value : undefined,
+ grantFromTheCemeteryFund: grantFromTheCemeteryFund
+ ? grantFromTheCemeteryFund.value
+ : undefined,
+ donationsToCemeteryFund: donationsToCemeteryFund
+ ? donationsToCemeteryFund.value
+ : undefined,
+ }
}
-export const showEquitiesAndLiabilitiesAlert = (answers: FormValue) => {
- const fixedAssetsTotal =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.fixedAssetsTotal,
- ) || '0'
- const currentAssets =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.currentAssets,
- ) || '0'
- const longTerm =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.longTerm,
- ) || '0'
- const shortTerm =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.shortTerm,
- ) || '0'
- const equityAtTheBeginningOfTheYear =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.equityAtTheBeginningOfTheYear,
- ) || '0'
- const revaluationDueToPriceChanges =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.revaluationDueToPriceChanges,
- ) || '0'
- const reevaluateOther =
- getValueViaPath(
- answers,
- CEMETERYEQUITIESANDLIABILITIESIDS.reevaluateOther,
- ) || '0'
-
- const totalAssets =
- getValueViaPath(answers, EQUITYANDLIABILITIESTOTALS.assetsTotal) ||
- '0'
- const totalEquityAndLiabilities =
- getValueViaPath(
- answers,
- EQUITYANDLIABILITIESTOTALS.equityAndLiabilitiesTotal,
- ) || '0'
-
- if (
- !fixedAssetsTotal ||
- !currentAssets ||
- !longTerm ||
- !shortTerm ||
- !equityAtTheBeginningOfTheYear ||
- !revaluationDueToPriceChanges ||
- !reevaluateOther ||
- !operationResult
- ) {
- return false
+export const getTaxInfoFromAnswers = (answers: FormValue) => {
+ const careIncome = getValueViaPath(
+ answers,
+ CEMETERYOPERATIONIDS.careIncome,
+ )
+ const burialRevenue = getValueViaPath(
+ answers,
+ CEMETERYOPERATIONIDS.burialRevenue,
+ )
+ const grantFromTheCemeteryFund = getValueViaPath(
+ answers,
+ CEMETERYOPERATIONIDS.grantFromTheCemeteryFund,
+ )
+ const donationsToCemeteryFund = getValueViaPath(
+ answers,
+ CEMETERYOPERATIONIDS.donationsToCemeteryFund,
+ )
+
+ return {
+ careIncomeFromAnswers: careIncome,
+ burialRevenueFromAnswers: burialRevenue,
+ grantFromTheCemeteryFundFromAnswers: grantFromTheCemeteryFund,
+ donationsToCemeteryFundFromAnswers: donationsToCemeteryFund,
}
- return totalAssets !== totalEquityAndLiabilities
}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/utils/overviewUtils.ts b/libs/application/templates/inao/financial-statement-cemetery/src/utils/overviewUtils.ts
new file mode 100644
index 000000000000..f27cb0ef6f96
--- /dev/null
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/utils/overviewUtils.ts
@@ -0,0 +1,189 @@
+import { FormValue } from '@island.is/application/types'
+import { getValueViaPath } from '@island.is/application/core'
+import { CareTaker } from '../types/types'
+import { formatPhoneNumber } from '@island.is/application/ui-components'
+import { format as formatNationalId } from 'kennitala'
+import { formatCurrency } from './currency'
+
+export const getOverviewNumbers = (answers: FormValue) => {
+ const file = getValueViaPath>(answers, 'attachments.file')
+ const fileName = file?.[0]?.name
+ const incomeLimit =
+ getValueViaPath(answers, 'cemeteryOperations.incomeLimit') ?? '0'
+ const email = getValueViaPath(answers, 'about.email')
+ const careIncome = getValueViaPath(
+ answers,
+ 'cemeteryIncome.careIncome',
+ )
+ const cemeteryCaretakers = getValueViaPath>(
+ answers,
+ 'cemeteryCaretaker',
+ )
+ const burialRevenue = getValueViaPath(
+ answers,
+ 'cemeteryIncome.burialRevenue',
+ )
+ const grantFromTheCemeteryFund = getValueViaPath(
+ answers,
+ 'cemeteryIncome.grantFromTheCemeteryFund',
+ )
+ const otherIncome = getValueViaPath(
+ answers,
+ 'cemeteryIncome.otherIncome',
+ )
+ const totalIncome = getValueViaPath(answers, 'cemeteryIncome.total')
+
+ const payroll = getValueViaPath(answers, 'cemeteryExpense.payroll')
+ const funeralCost = getValueViaPath(
+ answers,
+ 'cemeteryExpense.funeralCost',
+ )
+ const chapelExpense = getValueViaPath(
+ answers,
+ 'cemeteryExpense.chapelExpense',
+ )
+ const donationsToCemeteryFund = getValueViaPath(
+ answers,
+ 'cemeteryExpense.cemeteryFundExpense',
+ )
+ const donationsToOther = getValueViaPath(
+ answers,
+ 'cemeteryExpense.donationsToOther',
+ )
+ const otherOperationCost = getValueViaPath(
+ answers,
+ 'cemeteryExpense.otherOperationCost',
+ )
+ const depreciation = getValueViaPath(
+ answers,
+ 'cemeteryExpense.depreciation',
+ )
+ const totalExpenses = getValueViaPath(
+ answers,
+ 'cemeteryExpense.total',
+ )
+
+ const fixedAssetsTotal = getValueViaPath(
+ answers,
+ 'cemeteryAsset.fixedAssetsTotal',
+ )
+ const currentAssets = getValueViaPath(
+ answers,
+ 'cemeteryAsset.currentAssets',
+ )
+ const totalAssets = getValueViaPath(answers, 'assetsTotal')
+
+ const longTerm = getValueViaPath(
+ answers,
+ 'cemeteryLiability.longTerm',
+ )
+ const shortTerm = getValueViaPath(
+ answers,
+ 'cemeteryLiability.shortTerm',
+ )
+ const totalLiabilities = getValueViaPath(
+ answers,
+ 'equityAndLiabilitiesTotals.liabilitiesTotal',
+ )
+
+ const equityAtTheBeginningOfTheYear = getValueViaPath(
+ answers,
+ 'cemeteryEquity.equityAtTheBeginningOfTheYear',
+ )
+ const revaluationDueToPriceChanges = getValueViaPath(
+ answers,
+ 'cemeteryEquity.revaluationDueToPriceChanges',
+ )
+ const reevaluateOther = getValueViaPath(
+ answers,
+ 'cemeteryEquity.reevaluateOther',
+ )
+ const operationResult = getValueViaPath(
+ answers,
+ 'cemeteryEquity.operationResult',
+ )
+ const totalEquity = getValueViaPath(answers, 'cemeteryEquity.total')
+
+ const debtsAndCash = getValueViaPath(
+ answers,
+ 'equityAndLiabilitiesTotals.equityAndLiabilitiesTotal',
+ )
+
+ return {
+ file,
+ fileName,
+ incomeLimit,
+ email,
+ cemeteryCaretakers,
+ careIncome,
+ burialRevenue,
+ grantFromTheCemeteryFund,
+ otherIncome,
+ totalIncome,
+ payroll,
+ funeralCost,
+ chapelExpense,
+ donationsToCemeteryFund,
+ donationsToOther,
+ otherOperationCost,
+ depreciation,
+ totalExpenses,
+ fixedAssetsTotal,
+ currentAssets,
+ totalAssets,
+ longTerm,
+ shortTerm,
+ totalLiabilities,
+ equityAtTheBeginningOfTheYear,
+ revaluationDueToPriceChanges,
+ reevaluateOther,
+ operationResult,
+ totalEquity,
+ debtsAndCash,
+ }
+}
+
+export const getAboutOverviewNumbers = (answers: FormValue) => {
+ const fullName = getValueViaPath(answers, 'about.fullName')
+ const nationalId = formatNationalId(
+ getValueViaPath(answers, 'about.nationalId') ?? '',
+ )
+ const powerOfAttorneyName = getValueViaPath(
+ answers,
+ 'about.powerOfAttorneyName',
+ )
+ const powerOfAttorneyNationalId = formatNationalId(
+ getValueViaPath(answers, 'about.powerOfAttorneyNationalId') ?? '',
+ )
+ const email = getValueViaPath(answers, 'about.email')
+ const phoneNumber = formatPhoneNumber(
+ getValueViaPath(answers, 'about.phoneNumber') ?? '',
+ )
+
+ return {
+ fullName,
+ nationalId,
+ powerOfAttorneyName,
+ powerOfAttorneyNationalId,
+ email,
+ phoneNumber,
+ }
+}
+
+export const getCapitalNumbersOverviewNumbers = (answers: FormValue) => {
+ const capitalIncome = formatCurrency(
+ getValueViaPath(answers, 'capitalNumbers.capitalIncome'),
+ )
+ const capitalCost = formatCurrency(
+ getValueViaPath(answers, 'capitalNumbers.capitalCost'),
+ )
+ const totalCapital = formatCurrency(
+ getValueViaPath(answers, 'capitalNumbers.total'),
+ )
+
+ return {
+ capitalIncome,
+ capitalCost,
+ totalCapital,
+ }
+}
diff --git a/libs/application/templates/inao/financial-statement-cemetery/src/utils/sums.ts b/libs/application/templates/inao/financial-statement-cemetery/src/utils/sums.ts
new file mode 100644
index 000000000000..4b8e6c2e1738
--- /dev/null
+++ b/libs/application/templates/inao/financial-statement-cemetery/src/utils/sums.ts
@@ -0,0 +1,225 @@
+import { FormValue } from '@island.is/application/types'
+import { getValueViaPath } from '@island.is/application/core'
+import {
+ CAPITALNUMBERS,
+ CEMETERYEQUITIESANDLIABILITIESIDS,
+ CEMETERYOPERATIONIDS,
+ EQUITYANDLIABILITIESTOTALS,
+ OPERATINGCOST,
+} from './constants'
+
+export const sumIncome = (answers: FormValue) => {
+ const careIncome =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.careIncome) || '0'
+ const burialRevenue =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.burialRevenue) || '0'
+ const grantFromTheCemeteryFund =
+ getValueViaPath(
+ answers,
+ CEMETERYOPERATIONIDS.grantFromTheCemeteryFund,
+ ) || '0'
+ const otherIncome =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.otherIncome) || '0'
+
+ return `${
+ Number(careIncome) +
+ Number(burialRevenue) +
+ Number(grantFromTheCemeteryFund) +
+ Number(otherIncome)
+ }`
+}
+
+export const sumExpenses = (answers: FormValue) => {
+ const payroll = getValueViaPath(answers, CEMETERYOPERATIONIDS.payroll)
+ const funeralCost =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.funeralCost) || '0'
+ const chapelExpense =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.chapelExpense) || '0'
+ const donationsToCemeteryFund =
+ getValueViaPath(
+ answers,
+ CEMETERYOPERATIONIDS.donationsToCemeteryFund,
+ ) || '0'
+ const donationsToOther =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.donationsToOther) ||
+ '0'
+ const otherOperationCost =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.otherOperationCost) ||
+ '0'
+ const depreciation =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.depreciation) || '0'
+
+ return `${
+ Number(payroll) +
+ Number(funeralCost) +
+ Number(chapelExpense) +
+ Number(donationsToCemeteryFund) +
+ Number(donationsToOther) +
+ Number(otherOperationCost) +
+ Number(depreciation)
+ }`
+}
+
+export const sumOperatingResults = (answers: FormValue) => {
+ const income =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.totalIncome) || '0'
+ const expenses =
+ getValueViaPath(answers, CEMETERYOPERATIONIDS.totalExpense) || '0'
+
+ return `${Number(income) - Number(expenses)}`
+}
+
+export const sumCapitalNumbers = (answers: FormValue) => {
+ const capitalIncome =
+ getValueViaPath(answers, CAPITALNUMBERS.capitalIncome) || '0'
+ const capitalCost =
+ getValueViaPath(answers, CAPITALNUMBERS.capitalCost) || '0'
+ return `${Number(capitalIncome) - Number(capitalCost)}`
+}
+
+export const sumAssets = (answers: FormValue) => {
+ const fixedAssetsTotal =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.fixedAssetsTotal,
+ ) || '0'
+ const currentAssets =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.currentAssets,
+ ) || '0'
+ return `${Number(fixedAssetsTotal) + Number(currentAssets)}`
+}
+
+export const sumLiabilities = (answers: FormValue) => {
+ const longTerm =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.longTerm,
+ ) || '0'
+ const shortTerm =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.shortTerm,
+ ) || '0'
+ return `${Number(longTerm) + Number(shortTerm)}`
+}
+
+export const operationResult = (answers: FormValue) => {
+ const operatingTotalCost =
+ getValueViaPath(answers, OPERATINGCOST.total) || '0'
+ const capitalTotal =
+ getValueViaPath(answers, CAPITALNUMBERS.total) || '0'
+ return `${Number(operatingTotalCost) + Number(capitalTotal)}`
+}
+
+export const sumTotalEquity = (answers: FormValue) => {
+ const equityAtTheBeginningOfTheYear =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.equityAtTheBeginningOfTheYear,
+ ) || '0'
+ const revaluationDueToPriceChanges =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.revaluationDueToPriceChanges,
+ ) || '0'
+ const reevaluateOther =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.reevaluateOther,
+ ) || '0'
+ const operationResult =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.operationResult,
+ ) || '0'
+
+ return `${
+ Number(equityAtTheBeginningOfTheYear) +
+ Number(revaluationDueToPriceChanges) +
+ Number(reevaluateOther) +
+ Number(operationResult)
+ }`
+}
+
+export const sumTotalEquityAndLiabilities = (answers: FormValue) => {
+ const liabilityTotal =
+ getValueViaPath(
+ answers,
+ EQUITYANDLIABILITIESTOTALS.liabilitiesTotal,
+ ) || '0'
+ const totalEquity =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.equityTotal,
+ ) || '0'
+
+ return `${Number(totalEquity) + Number(liabilityTotal)}`
+}
+
+export const showEquitiesAndLiabilitiesAlert = (answers: FormValue) => {
+ const fixedAssetsTotal =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.fixedAssetsTotal,
+ ) || '0'
+ const currentAssets =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.currentAssets,
+ ) || '0'
+ const longTerm =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.longTerm,
+ ) || '0'
+ const shortTerm =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.shortTerm,
+ ) || '0'
+ const equityAtTheBeginningOfTheYear =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.equityAtTheBeginningOfTheYear,
+ ) || '0'
+ const revaluationDueToPriceChanges =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.revaluationDueToPriceChanges,
+ ) || '0'
+ const reevaluateOther =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.reevaluateOther,
+ ) || '0'
+
+ const totalAssets =
+ getValueViaPath(answers, EQUITYANDLIABILITIESTOTALS.assetsTotal) ||
+ '0'
+ const totalEquityAndLiabilities =
+ getValueViaPath(
+ answers,
+ EQUITYANDLIABILITIESTOTALS.equityAndLiabilitiesTotal,
+ ) || '0'
+ const operationResult =
+ getValueViaPath(
+ answers,
+ CEMETERYEQUITIESANDLIABILITIESIDS.operationResult,
+ ) || '0'
+
+ if (
+ !fixedAssetsTotal ||
+ !currentAssets ||
+ !longTerm ||
+ !shortTerm ||
+ !equityAtTheBeginningOfTheYear ||
+ !revaluationDueToPriceChanges ||
+ !reevaluateOther ||
+ !operationResult
+ ) {
+ return false
+ }
+ return totalAssets !== totalEquityAndLiabilities
+}