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 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 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 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)