def send_tilbake_til_saksbehandling_strategy(soknad, action, data):
    errors = soknad.validate_soknad_for_innsending()
    if errors:
        abort(400, __error__=errors)

    soknad.status = action.get_end_state().id

    SoknadRepo.save(soknad, autocommit=False)

    # Arkivering
    ############
    organisation = get_organisation(soknad.organisation_id, request.cookies)
    person = get_person(soknad.person_id, request.cookies)

    csv_file_content = ExportSoknaderResource().get(soknad_id=soknad.id).data

    save_journalpost_for_soknad(soknad, organisation, person, csv_file_content,
                                u"soknad-%s-%s.pdf" % (soknad.id, datetime.now().isoformat()))

    current_app.db_session.commit()

    # Sending mail after save to avoid that mail integration errors make it impossible to perform action.
    # It also makes sense to send mail only when we know that the action is successful
    send_email_to_soker_on_action_send_inn(soknad)
    if not soknad.tilskuddsordning.soknadsfrist:
        send_email_to_saksbehandlere_on_action_send_inn(soknad)
def lever_rapport_action_strategy(soknad, action, data):
    rapport = RapportRepo.find_by_where("soknad_id", soknad.id)
    if len(rapport) != 1:
        abort(400, __error__=['Kan ikke finne rapport'])

    errors = rapport[0].validate_rapport_for_levering()
    if errors:
        abort(400, __error__=errors)

    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad, autocommit=False)

    # Arkivering
    # ###########
    organisation = get_organisation(soknad.organisation_id, request.cookies)
    person = get_person(soknad.person_id, request.cookies)

    csv_file_content = ExportRapporterResource().get(soknad_id=soknad.id, rapport_id=rapport[0].id).data

    save_journalpost_for_rapport(soknad, rapport[0], organisation, person, csv_file_content,
                                 u"soknad-%s-rapport-%s-%s.pdf" % (soknad.id, rapport[0].id, datetime.now().isoformat()))

    current_app.db_session.commit()

    # Sending mail after save to avoid that mail integration errors make it impossible to perform action.
    # It also makes sense to send mail only when we know that the action is successful
    send_email_to_soker_on_action_lever_rapport(soknad)
    send_email_to_saksbehandler_on_action_lever_rapport(soknad)
def fatt_vedtak_action_strategy(soknad, action, data):
    vedtak = VedtakUtils.fatt_vedtak(soknad, data)
    if not data.get('saveOnly'):
        vedtak.vedtaksdato = datetime.now()
        soknad.status = action.get_end_state().id

        current_app.logger.debug("Generating vedtaksbrev...")
        rendered_file, file_size, mimetype, filename = VedtaksbrevGeneratorResource.generate_vedtaksbrev(soknad, vedtak)
        current_app.logger.debug("Saving vedtaksbrev to backend...")
        saved_filename, saved_in_dir = save_file_to_disk(rendered_file, filename,
                                                         relative_path=get_rel_vedtaksmappe_path(soknad, vedtak))
        current_app.logger.debug("Updating vedtaket med vedtaksbrev_file_ref=%s..." % saved_filename)
        vedtak.vedtaksbrev_file_ref = saved_filename

        # Arkivering
        # ###########
        organisation = get_organisation(soknad.organisation_id, request.cookies)
        person = get_person(soknad.person_id, request.cookies)
        save_journalpost_for_vedtaksbrev(soknad, organisation, person, vedtak, is_utgaaende_dokument=True)

        SoknadRepo.save(soknad)

        # Sending mail after save to avoid that mail integration errors make it impossible to perform action.
        # It also makes sense to send mail only when we know that the action is successful
        if action == SoknadStateMachine.t_fatt_vedtak:
            send_email_to_soker_on_action_fatt_vedtak(soknad)
        elif action == SoknadStateMachine.t_fatt_klagevedtak:
            send_email_to_soker_on_action_fatt_klagevedtak(soknad)

    else:
        SoknadRepo.save(soknad)
def godkjenn_rapport_action_strategy(soknad, action, data):
    vedtak = soknad.nyeste_fattet_vedtak()
    if vedtak.tilskuddsordning_type == FORSKUDDSUTBETALING:
        soknad.status = SoknadStateMachine.s_avsluttet.id
    elif vedtak.tilskuddsordning_type == ETTERSKUDDSUTBETALING:
        soknad.status = SoknadStateMachine.s_til_utbetaling.id
    SoknadRepo.save(soknad)
def registrer_utbetaling_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])

    validator = BaseValidator(data)
    validator.validate_le_max_length("fakturanr", 15, "tekst/fakturanummer")
    validator.validate_is_defined('utbetaling_dato', 'utbetalingsdato')

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    utbetaling = Utbetaling()
    utbetaling.soknad_id = soknad.id
    utbetaling.tekst = data.get('fakturanr')
    utbetaling.utbetalingsdato = data.get('utbetaling_dato')
    utbetaling.utbetalt_belop = soknad.nyeste_vedtak().vedtatt_belop
    utbetaling.registrertdato = datetime.now()

    soknad.utbetaling.append(utbetaling)

    if soknad.nyeste_fattet_vedtak().tilskuddsordning_type == FORSKUDDSUTBETALING:
        soknad.status = SoknadStateMachine.s_avventer_rapport.id
    else:
        # søknader til tilskuddsordninger med etterskuddsutbetaling eller som ikke krever rapport skal avsluttes
        soknad.status = SoknadStateMachine.s_avsluttet.id
    SoknadRepo.save(soknad)
def vedtak_klaget_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])

    validator = BaseValidator(data)
    validator.validate_le_max_length("begrunnelse", 300, "begrunnelse")

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    klage = Klage()
    klage.soknad_id = soknad.id
    klage.vedtak_id = data.get('vedtak_id')
    klage.levertdato = datetime.now()
    klage.begrunnelse = data.get('begrunnelse')

    soknad.klage.append(klage)

    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad, autocommit=False)

    # Arkivering
    # ###########
    organisation = get_organisation(soknad.organisation_id, request.cookies)
    person = get_person(soknad.person_id, request.cookies)
    save_journalpost_for_klage(soknad, organisation, person, klage.begrunnelse.encode("UTF-8"), u"soknad-%s-klage-%s.txt" % (soknad.id, datetime.now().isoformat()))

    current_app.db_session.commit()
def trekk_action_strategy(soknad, action, data):
    if data:
        validator = BaseValidator(data)
        validator.validate_le_max_length("trukket_kommentar", 700, "kommentar")
        if validator.has_errors():
            abort(400, __error__=validator.errors)
        soknad.trukket_kommentar = data.get("trukket_kommentar")
    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad)
def apne_soknad_for_redigering_action_strategy(soknad, action, data):
    validator = BaseValidator(data)
    validator.validate_le_max_length("merknad", 600, "merknad")

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    soknad.merknad = data.get('merknad')
    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad)
def endre_tilskuddsordning_action_strategy(soknad, action, data):
    validator = BaseValidator(data)
    validator.validate_is_defined('tilskuddsordning_id', label="Tilskuddsordning")
    validator.validate_is_defined('saksbehandler_id', label="Saksbehandler")

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    soknad.tilskuddsordning_id = data.get('tilskuddsordning_id')
    soknad.saksbehandler_id = data.get('saksbehandler_id')

    SoknadRepo.save(soknad)
    def post(self):
        data = request.get_json()

        minutes = data.pop('minutes')

        soknader = self.filter_soknader_for_purring(SoknadRepo.find_soknader(soknad_states=[SoknadStateMachine.s_vedtak_fattet.id]), minutes, **data)

        for soknad in soknader:
            if send_email_to_soker_on_soknad_purring(soknad):
                soknad.nyeste_fattet_vedtak().purret_dato = datetime.now()
                SoknadRepo.save(soknad)

        return None, 201
def sende_inn_action_strategy(soknad, action, data):
    soknad.levert_dato = date.today()

    errors = soknad.validate_soknad_for_innsending()
    if errors:
        abort(400, __error__=errors)

    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad)
    # Sending mail after save to avoid that mail integration errors make it impossible to perform action.
    # It also makes sense to send mail only when we know that the action is successful
    send_email_to_soker_on_action_send_inn(soknad)
    send_email_to_organisasjon_on_action_send_inn(soknad)

    if not soknad.tilskuddsordning.soknadsfrist:
        send_email_to_saksbehandlere_on_action_send_inn(soknad)
    def create(cls, rapport):
        soknad = SoknadRepo.find_by_id(rapport.soknad_id)
        for arrangement in soknad.arrangement:
            make_transient(arrangement)
            rapport.arrangement.append(cls.copy_model_object(arrangement))

        for okonomipost in soknad.okonomipost:
            make_transient(okonomipost)
            rapport.okonomipost.append(cls.copy_model_object(okonomipost))

        rapport = cls.save(rapport)

        soknad.status = SoknadStateMachine.s_rapport_pabegynt.id
        SoknadRepo.save(soknad)

        return rapport
def godta_vedtak_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])
    vedtak = VedtakUtils.get_vedtak_for_oppdatering(soknad, data.get('vedtak_id'), False)
    if vedtak is None:
        abort(400, __error__=['Kan ikke finne vedtak'])

    if vedtak.vedtatt_belop == 0:
        soknad.status = SoknadStateMachine.s_avsluttet.id
    else:
        if vedtak.tilskuddsordning_type == ETTERSKUDDSUTBETALING:
            soknad.status = SoknadStateMachine.s_avventer_rapport.id
        else:
            # søknader til tilskuddsordninger med forskuddsutbetaling og som krever ikke rapport skal gå direkte til utbetaling
            soknad.status = SoknadStateMachine.s_til_utbetaling.id

    SoknadRepo.save(soknad)
def til_vedtak_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])
    vedtak = VedtakUtils.get_vedtak_for_oppdatering(soknad, data.get('vedtak_id'))
    if vedtak is None:
        vedtak = Vedtak()
        soknad.vedtak.append(vedtak)

    validator = BaseValidator(data)
    validator.validate_le_max_length("intern_merknad", 600, "merknad")
    validator.validate_le_max_length("vedtakstekst", 1000, "vedtakstekst")
    validator.validate_le_max_length("andre_opplysninger", 1000, "andre_opplysninger")
    validator.validate_is_positive_integer("innstilt_belop", "innstilt beløp", requires_value=True)
    validator.validate_is_defined("tilskuddsordning_type", label="Rapport og utbetaling")

    if not data.get('saveOnly'):
        validator.validate_is_defined("vedtakstekst")
        innstilt_belop = data.get('innstilt_belop')
        if isinstance(innstilt_belop, basestring) and innstilt_belop.isdigit():
            innstilt_belop = int(innstilt_belop)
        if data.get('tilskuddsordning_type') != KREVER_IKKE_RAPPORT and not innstilt_belop == 0:
            validator.validate_is_defined("rapportfrist")
        soknad.status = action.get_end_state().id

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    BaseRepo.update_model(vedtak, 'innstilt_belop', data)
    BaseRepo.update_model(vedtak, 'intern_merknad', data)
    BaseRepo.update_model(vedtak, 'tilskuddsordning_type', data)

    if data.get('behandlet_av_formannskapet'):
        BaseRepo.update_model(vedtak, 'behandlet_av_formannskapet', data)

    if vedtak.tilskuddsordning_type == KREVER_IKKE_RAPPORT:
        vedtak.rapportfrist = None
    else:
        BaseRepo.update_model(vedtak, 'rapportfrist', data)

    BaseRepo.update_model(vedtak, 'vedtakstekst', data)
    BaseRepo.update_model(vedtak, 'andre_opplysninger', data)

    # setter vedtatt belop slik at det blir default verdi for godkjenner (han kan overstyre den)
    vedtak.vedtatt_belop = vedtak.innstilt_belop

    SoknadRepo.save(soknad)
    def post(self, soknad_id):

        if soknad_id is not None:
            soknad = SoknadRepo.find_by_id(soknad_id)
        else:
            return SakApi.create_error_response_for_iframe(body_status=400, body_error='Missing object id')

        ensure(MANAGE, SoknadAction(soknad, SoknadStateMachine.t_last_opp_saksvedlegg))

        validator = VedleggValidator(request.form).validate_post_fields()
        if validator.has_errors():
            return SakApi.create_error_response_for_iframe(body_status=400, body_error=validator.errors)

        file = request.files.get('upload_file')
        if file is None:
            current_app.logger.warn('Missing required file: document')
            return SakApi.create_error_response_for_iframe(body_status=400, body_error=u'Dokument er påkrevd.')

        extension = os.path.splitext(file.filename)[1]

        if file.mimetype not in VALID_MIME_TYPES or extension not in VALID_EXTENSIONS:
            current_app.logger.warn('Invalid mimetype: %s', file.mimetype)
            return SakApi.create_error_response_for_iframe(body_status=400, body_error=u'Ugyldig filtype.')

        filnavn = uuid_with_ext(file.filename)

        target_path = generate_dir_path(DOC_PATH, get_rel_saksvedlegg_path(soknad))

        backend = get_backend(file, filename=filnavn, path=target_path)
        backend.save()

        saksvedlegg = Vedlegg()
        user = get_user_from_auth()

        saksvedlegg.filnavn = file.filename
        saksvedlegg.file_ref = filnavn
        saksvedlegg.beskrivelse = request.form.get('tittel')
        saksvedlegg.user_id = user['id']
        saksvedlegg.vedlagtdato = datetime.now()

        soknad.saksvedlegg.append(saksvedlegg)


        if soknad.saksbehandler_id:
            # Arkivering
            # ###########

            organisation = get_organisation(soknad.organisation_id, request.cookies)
            person = get_person(soknad.person_id, request.cookies)
            try:
                save_journalpost_for_saksvedlegg(soknad, organisation, person, saksvedlegg)
            except InvalidArkivExtensionError as e:
                return SakApi.create_error_response_for_iframe(body_status=400, body_error=e.message)

        current_app.db_session.commit()

        return Response(response=json.dumps(marshal(saksvedlegg, saksvedlegg_fields)), status=201,
                        content_type='text/html')
 def get_vedtatt_belop(tilskuddsordning_id):
     soknad_repo = SoknadRepo()
     sm = SoknadStateMachine()
     soknader = soknad_repo.find_soknader(
         tilskuddsordninger=[tilskuddsordning_id],
         exclude_soknad_states=[
             sm.s_kladd.id,
             sm.s_trukket.id,
             sm.s_apnet_for_redigering.id,
             sm.s_under_behandling.id,
             sm.s_innsendt.id,
             sm.s_tilbakebetaling_kreves.id,
         ],
     )
     vedtatt_belop = sum(
         soknad.nyeste_fattet_vedtak().vedtatt_belop for soknad in soknader if soknad.nyeste_fattet_vedtak()
     )
     return vedtatt_belop
def behandle_action_strategy(soknad, action, data):
    if not data or not data.get("saksbehandler"):
        abort(400, __error__={'saksbehandler': u'Saksbehandler må være satt'})
    soknad.saksbehandler_id = data.get("saksbehandler")
    soknad.status = action.get_end_state().id

    SoknadRepo.save(soknad, autocommit=False)

    # Arkivering
    # ###########
    organisation = get_organisation(soknad.organisation_id, request.cookies)
    person = get_person(soknad.person_id, request.cookies)

    csv_file_content = ExportSoknaderResource().get(soknad_id=soknad.id).data

    save_sak(soknad)
    save_journalpost_for_soknad(soknad, organisation, person, csv_file_content, u"soknad-%s-%s.pdf" % (soknad.id, datetime.now().isoformat()))

    current_app.db_session.commit()
def endre_kontakt_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])

    validator = BaseValidator(data)
    validator.validate_is_defined('person_id', label="Kontaktperson")
    validator.validate_is_norwegian_phone_number("telefon", label="Telefonnummer")
    validator.validate_is_email('epost', label='Epost')

    person_id = data.get('person_id', None)
    if person_id is not None and not is_person_member_of_organisation(soknad.organisation_id, person_id):
        validator.add_error('person_id', 'Ugyldig person')

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    soknad.person_id = person_id
    soknad.epost = data.get('epost')
    soknad.telefon = data.get('telefon')

    SoknadRepo.save(soknad)
def avskriv_rapportkrav_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])

    if soknad.status in (SoknadStateMachine.s_rapport_pabegynt.id, SoknadStateMachine.s_avventer_rapport.id):
        soknad.rapport = []

    validator = BaseValidator(data)
    validator.validate_is_defined("avskrevet_rapportkrav_kommentar", 'Årsak')
    validator.validate_le_max_length("avskrevet_rapportkrav_kommentar", 700, 'Årsak')
    if validator.has_errors():
        abort(400, __error__=validator.errors)

    soknad.avskrevet_rapportkrav_kommentar = data.get("avskrevet_rapportkrav_kommentar")

    vedtak = soknad.nyeste_fattet_vedtak()
    if vedtak.tilskuddsordning_type == FORSKUDDSUTBETALING:
        soknad.status = SoknadStateMachine.s_avsluttet.id
    elif vedtak.tilskuddsordning_type == ETTERSKUDDSUTBETALING:
        soknad.status = SoknadStateMachine.s_til_utbetaling.id
    SoknadRepo.save(soknad)
def rediger_rapportfrist_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])
    vedtak = VedtakUtils.get_vedtak_for_oppdatering(soknad, data.get('vedtak_id'), False)
    if vedtak is None:
        abort(400, __error__=['Kan ikke finne vedtak'])

    validator = BaseValidator(data)
    validator.validate_le_max_length("endre_rapportfrist_arsak", 150, "aarsak til rapportfrist")
    validator.validate_is_defined("rapportfrist")

    BaseRepo.update_model(vedtak, 'endre_rapportfrist_arsak', data)
    BaseRepo.update_model(vedtak, 'rapportfrist', data)

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    # dersom rapport er levert, settes den tilbake til påbegynt
    if soknad.status == SoknadStateMachine.s_rapport_levert.id:
        soknad.status = action.get_end_state().id

    SoknadRepo.save(soknad)
def underkjenn_rapport_action_strategy(soknad, action, data):
    rapport = RapportRepo.find_by_where("soknad_id", soknad.id)
    if len(rapport) != 1:
        abort(400, __error__=['Kan ikke finne rapport'])

    if data:
        validator = BaseValidator(data)
        validator.validate_le_max_length("saksbehandler_kommentar", 300)
        if validator.has_errors():
            abort(400, __error__=validator.errors)

        rapport[0].saksbehandler_kommentar = data.get("saksbehandler_kommentar")

        RapportRepo.save(rapport[0])
        # Sending mail after save to avoid that mail integration errors make it impossibv to perform action.
        # It also makes sense to send mail only when we know that the action is successful
        send_email_to_soker_on_action_underkjenn(soknad, data.get("saksbehandler_kommentar"))

    vedtak = soknad.nyeste_fattet_vedtak()
    if vedtak.tilskuddsordning_type == FORSKUDDSUTBETALING:
        soknad.status = SoknadStateMachine.s_tilbakebetaling_kreves.id
    elif vedtak.tilskuddsordning_type == ETTERSKUDDSUTBETALING:
        soknad.status = SoknadStateMachine.s_trukket.id
    SoknadRepo.save(soknad)
    def post(self):

        rapport_id = request.form.get('rapport_id')
        soknad_id = request.form.get('soknad_id')

        if not (rapport_id is None):
            soknad_or_rapport = RapportRepo.find_by_id(rapport_id)
            soknad_id = soknad_or_rapport.soknad_id
        elif not (soknad_id is None):
            soknad_or_rapport = SoknadRepo.find_by_id(soknad_id)
        else:
            return SakApi.create_error_response_for_iframe(body_status=400, body_error='Missing object id')

        ensure(PUT, soknad_or_rapport)

        file = request.files.get('upload_file')
        if file is None:
            current_app.logger.warn('Missing required file: document')
            return SakApi.create_error_response_for_iframe(body_status=400, body_error=u'Dokument er påkrevd.')

        extension = os.path.splitext(file.filename)[1]

        if file.mimetype not in VALID_MIME_TYPES or extension not in VALID_EXTENSIONS:
            current_app.logger.warn('Invalid mimetype: %s', file.mimetype)
            return SakApi.create_error_response_for_iframe(body_status=400, body_error=u'Ugyldig filtype.')

        filnavn = uuid_with_ext(file.filename)

        target_path = generate_dir_path(DOC_PATH, get_rel_vedlegg_path(soknad_id));

        backend = get_backend(file, filename=filnavn, path=target_path)
        backend.save()

        vedlegg = Vedlegg()

        user = get_user_from_auth()
        vedlegg.filnavn = file.filename
        vedlegg.file_ref = filnavn
        vedlegg.user_id = user['id']
        vedlegg.vedlagtdato = datetime.now()

        soknad_or_rapport.vedlegg.append(vedlegg)

        current_app.db_session.commit()

        return Response(response=json.dumps(marshal(vedlegg, vedlegg_fields)),
                        status=201,
                        content_type='text/html')
    def get(self, soknad_id, saksvedlegg_id):

        soknad = SoknadRepo.find_by_id(soknad_id)

        ensure(GET, soknad)

        try:
            saksvedlegg = VedleggRepo.find_by_id(saksvedlegg_id)
            doc_path = "%s/%s" %(DOC_PATH, get_rel_saksvedlegg_path(soknad))

            return send_from_directory(doc_path,
                                       saksvedlegg.file_ref,
                                       as_attachment=True,
                                       attachment_filename=saksvedlegg.filnavn.encode("utf-8"))
        except NotFound:
            abort(400, __error__=['Vedlegg med id %d finnes ikke' % saksvedlegg_id])
    def get(self, soknad_id, action_id=None):
        # hent søknad
        soknad = SoknadRepo.find_by_id(soknad_id)

        ensure(GET, soknad)

        user = get_user_from_auth()
        # filter transitions
        actions = filter_actions(soknad, user)

        if action_id:
            if action_id in actions:
                return marshal(actions[action_id], action_fields)
            else:
                abort(404, __error__=[u"Fant ingen action med id=%s" % action_id])

        return marshal(actions.values(), action_fields)
    def put(self, soknad_id=None, action_id=None):
        data = request.get_json()
        # hent søknad
        soknad = SoknadRepo.find_by_id(soknad_id)

        # sjekk om angitt action er lovlig transition
        user = get_user_from_auth()

        sm = SoknadStateMachine()
        transitions = sm.get_transitions(soknad.status, user)
        if action_id not in transitions:
            abort(
                403, __error__=[u"Aksjon %s ikke tilgjengelig for søknader med status %s" % (action_id, soknad.status)]
            )
        action = transitions[action_id]

        SoknadActionExecutor.execute(soknad, action, data)

        return None, 200
def slett_action_strategy(soknad, action, data):
    ensure(DELETE, soknad)
    SoknadRepo.delete(soknad)
def default_action_strategy(soknad, action, data):
    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad)
def tilbake_til_vurder_klage_action_strategy(soknad, action, data):
    VedtakUtils.fatt_vedtak(soknad, data)
    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad)
def tilbake_til_innstilling_action_strategy(soknad, action, data):
    VedtakUtils.tilbake_til_innstilling(soknad, data)
    soknad.status = action.get_end_state().id
    SoknadRepo.save(soknad)
def endre_saksbehandler_action_strategy(soknad, action, data):
    if not data or not data.get("saksbehandler"):
        abort(400, __error__={'saksbehandler': u'Saksbehandler må være satt'})
    soknad.saksbehandler_id = data.get("saksbehandler")

    SoknadRepo.save(soknad)