コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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)