From fa1e64b93c4d200c4018fb03365163c6d7fc82c2 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Wed, 20 Jan 2021 16:14:37 +0100 Subject: [PATCH] insert zahlung --- hv-ui/src/app/forderung.ts | 7 ----- .../mieter-detail.component.html | 21 +++++++------ .../mieter-detail/mieter-detail.component.ts | 30 +++++++++++++++---- hv-ui/src/app/saldo.ts | 5 ---- hv-ui/src/app/zahlung-forderung.service.ts | 9 ++++-- hv-ui/src/app/zahlung-forderung.ts | 30 +++++++++++++++++++ 6 files changed, 73 insertions(+), 29 deletions(-) delete mode 100644 hv-ui/src/app/forderung.ts delete mode 100644 hv-ui/src/app/saldo.ts diff --git a/hv-ui/src/app/forderung.ts b/hv-ui/src/app/forderung.ts deleted file mode 100644 index 42fac36..0000000 --- a/hv-ui/src/app/forderung.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface Forderung { - id: number; - mieter: number; - ref_wohnung: number; - datum: string; - betrag: number; -} diff --git a/hv-ui/src/app/mieter-detail/mieter-detail.component.html b/hv-ui/src/app/mieter-detail/mieter-detail.component.html index 95bee8d..f158026 100644 --- a/hv-ui/src/app/mieter-detail/mieter-detail.component.html +++ b/hv-ui/src/app/mieter-detail/mieter-detail.component.html @@ -37,9 +37,11 @@ --> Jahr - - + + +
+
@@ -49,26 +51,27 @@
- +
- Datum soll + Datum soll - Datum ist + Datum ist - Betrag Zahlung + Betrag Zahlung - Kommentar + Kommentar - + +
@@ -84,7 +87,7 @@
- +
diff --git a/hv-ui/src/app/mieter-detail/mieter-detail.component.ts b/hv-ui/src/app/mieter-detail/mieter-detail.component.ts index e8b03e8..755c607 100644 --- a/hv-ui/src/app/mieter-detail/mieter-detail.component.ts +++ b/hv-ui/src/app/mieter-detail/mieter-detail.component.ts @@ -1,10 +1,10 @@ -import { Component, Input, OnInit } from '@angular/core' +import { Component, Input, OnInit, ViewChild } from '@angular/core' +import { MatTable } from '@angular/material/table' import { ActivatedRoute } from '@angular/router' import { Location } from '@angular/common' import { Mieter } from '../mieter' -import { ZahlungForderung } from '../zahlung-forderung' -import { Saldo } from '../saldo' +import { ZahlungForderung, Saldo, Zahlung, ZahlungRaw } from '../zahlung-forderung' import { MieterService} from '../mieter.service' import { ZahlungForderungService} from '../zahlung-forderung.service' @@ -22,6 +22,7 @@ export class MieterDetailComponent implements OnInit { year: string zahlungenForderungen : ZahlungForderung[] saldo: Saldo + newZahlung: Zahlung displayedColumns: string[] = ["datum_soll", "datum_ist", "betrag_forderung", "betrag_zahlung", "kommentar"] dataSource: MatTableDataSource @@ -48,15 +49,34 @@ export class MieterDetailComponent implements OnInit { const id = this.mieter?.id ?? 0 try { this.zahlungenForderungen = await this.zahlungForderungService.getZahlungenForderungenByMieterAndYear(id, +this.year) + this.dataSource = new MatTableDataSource(this.zahlungenForderungen) this.saldo = await this.zahlungForderungService.getSaldoByMieterAndYear(id, +this.year) } catch (err) { this.messageService.add(JSON.stringify(err, undefined, 4)) } } - async onYearInput(): Promise { + async loadForYear(): Promise { await this.getZahlungenForderungen() - this.dataSource = new MatTableDataSource(this.zahlungenForderungen) + } + + async insertNewZahlung(newZahlungRaw: ZahlungRaw): Promise { + try { + this.messageService.add(`New ZahlungRaw: ${newZahlungRaw.datum_soll}, ${newZahlungRaw.datum_ist}, ${newZahlungRaw.betrag}, ${newZahlungRaw.kommentar}`) + let newZahlung : Zahlung = { + 'id': 0, + 'mieter': this.mieter.id, + 'datum_soll': newZahlungRaw.datum_soll, + 'datum_ist': newZahlungRaw.datum_ist, + 'betrag': +(newZahlungRaw.betrag.replace(',','.')), + 'kommentar': newZahlungRaw.kommentar + } + this.messageService.add(`New Zahlung: ${newZahlung.datum_soll}, ${newZahlung.datum_ist}, ${newZahlung.betrag}, ${newZahlung.kommentar}, ${newZahlung.mieter}`) + await this.zahlungForderungService.postZahlung(newZahlung) + await this.getZahlungenForderungen() + } catch (err) { + this.messageService.add(`Error when inserted zahlung: ${JSON.stringify(err, undefined, 4)}`) + } } async ngOnInit(): Promise { diff --git a/hv-ui/src/app/saldo.ts b/hv-ui/src/app/saldo.ts deleted file mode 100644 index d56462f..0000000 --- a/hv-ui/src/app/saldo.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface Saldo { - forderungen: number - zahlungen: number - saldo: number -} \ No newline at end of file diff --git a/hv-ui/src/app/zahlung-forderung.service.ts b/hv-ui/src/app/zahlung-forderung.service.ts index f57edbc..733125c 100644 --- a/hv-ui/src/app/zahlung-forderung.service.ts +++ b/hv-ui/src/app/zahlung-forderung.service.ts @@ -2,9 +2,7 @@ import { Injectable } from '@angular/core' import { Observable, of } from 'rxjs' import { HttpClient, HttpHeaders } from '@angular/common/http' -import { ZahlungForderung } from './zahlung-forderung' -import { Forderung } from './forderung' -import { Saldo } from './saldo' +import { ZahlungForderung, Forderung, Zahlung, Saldo } from './zahlung-forderung' import { MessageService } from './message.service' import { serviceBaseUrl } from './config' @@ -24,6 +22,11 @@ export class ZahlungForderungService { return this.http.get(`${serviceBaseUrl}/hv/forderung/${id}`).toPromise() } + postZahlung(zahlung: Zahlung): Promise { + this.messageService.add(`ZahlungForderungService: insert zahlung ${JSON.stringify(zahlung, undefined, 4)}`) + return this.http.post(`${serviceBaseUrl}/hv/zahlung`, zahlung).toPromise() + } + getSaldoByMieterAndYear(mieterId: number, year: number): Promise { this.messageService.add(`ZahlungForderungService: fetched saldo by mieter ${mieterId} and year ${year}`) return this.http.get(`${serviceBaseUrl}/hv/mieter/${mieterId}/saldo/${year}`).toPromise() diff --git a/hv-ui/src/app/zahlung-forderung.ts b/hv-ui/src/app/zahlung-forderung.ts index 2cbfae7..3d1dcfe 100644 --- a/hv-ui/src/app/zahlung-forderung.ts +++ b/hv-ui/src/app/zahlung-forderung.ts @@ -7,4 +7,34 @@ export interface ZahlungForderung { betrag_zahlung: number betrag_forderung: number kommentar: string +} + +export interface Forderung { + id: number + mieter: number + ref_wohnung: number + datum: string + betrag: number +} + +export interface Zahlung { + id: number + mieter: number + datum_soll: string + datum_ist: string + betrag: number + kommentar: string +} + +export interface ZahlungRaw { + datum_soll: string + datum_ist: string + betrag: string + kommentar: string +} + +export interface Saldo { + forderungen: number + zahlungen: number + saldo: number } \ No newline at end of file
Datum soll {{element.datum_soll}}