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
-
-
+
+
+
+
-
+
@@ -84,7 +87,7 @@
-
+
Datum soll |
{{element.datum_soll}} |
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