zahlung forderung works

This commit is contained in:
2021-01-19 12:10:38 +01:00
parent 657b0838f9
commit a64b838fab
8 changed files with 52 additions and 24 deletions

View File

@ -9,6 +9,7 @@ import { ObjekteComponent } from './objekte/objekte.component';
import { MietersComponent } from './mieters/mieters.component'; import { MietersComponent } from './mieters/mieters.component';
import { WohnungenComponent } from './wohnungen/wohnungen.component'; import { WohnungenComponent } from './wohnungen/wohnungen.component';
import { MieterDetailComponent } from './mieter-detail/mieter-detail.component'; import { MieterDetailComponent } from './mieter-detail/mieter-detail.component';
import { FormsModule } from '@angular/forms';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -21,6 +22,7 @@ import { MieterDetailComponent } from './mieter-detail/mieter-detail.component';
], ],
imports: [ imports: [
BrowserModule, BrowserModule,
FormsModule,
AppRoutingModule, AppRoutingModule,
HttpClientModule HttpClientModule
], ],

View File

@ -1,6 +1,6 @@
export interface Forderung { export interface Forderung {
id: number; id: number;
mieter_id: number; mieter: number;
ref_wohnung: number; ref_wohnung: number;
datum: string; datum: string;
betrag: number; betrag: number;

View File

@ -1,8 +1,8 @@
<h1>Mieter: {{mieter.vorname}} {{mieter.nachname}} ({{mieter.id}})</h1> <h1>Mieter: {{mieter.vorname}} {{mieter.nachname}} ({{mieter.id}})</h1>
<table> <table>
<tr><td>Objekt:</td><td>{{mieter.objekt}} ({{mieter.objekt_id}})</td></tr> <tr><td>Objekt:</td><td>{{mieter.objekt_shortname}} ({{mieter.objekt}})</td></tr>
<tr><td>Wohnung:</td><td>{{mieter.wohnung}} ({{mieter.wohnung_id}})</td></tr> <tr><td>Wohnung:</td><td>{{mieter.wohnung_shortname}} ({{mieter.wohnung}})</td></tr>
<tr><td>Vorname:</td><td>{{mieter.vorname}}</td></tr> <tr><td>Vorname:</td><td>{{mieter.vorname}}</td></tr>
<tr><td>Nachname:</td><td>{{mieter.nachname}}</td></tr> <tr><td>Nachname:</td><td>{{mieter.nachname}}</td></tr>
<tr><td>Anrede:</td><td>{{mieter.anrede}}</td></tr> <tr><td>Anrede:</td><td>{{mieter.anrede}}</td></tr>
@ -14,14 +14,25 @@
<tr><td>Auszug:</td><td>{{mieter.auszug}}</td></tr> <tr><td>Auszug:</td><td>{{mieter.auszug}}</td></tr>
</table> </table>
<div>
<label>Jahr:
<input [(ngModel)]="year" (input)="onYearInput()" placeholder="Jahr"/>
</label>
</div>
<table> <table>
<tr> <tr>
<th>Datum</th> <th>Datum soll</th>
<th>Datum ist</th>
<th>Forderung</th> <th>Forderung</th>
<th>Zahlung</th> <th>Zahlung</th>
<th>Kommentar</th>
</tr> </tr>
<tr *ngFor="let forderung of forderungen"> <tr *ngFor="let zahlungForderung of zahlungenForderungen">
<td>{{forderung.datum}}</td> <td>{{zahlungForderung.datum_soll}}</td>
<td>{{forderung.betrag}}<br/><span style="font-size: small;">{{forderung.kommentar}}</span></td> <td>{{zahlungForderung.datum_ist}}</td>
<td>{{zahlungForderung.betrag_forderung}}</td>
<td>{{zahlungForderung.betrag_zahlung}}</td>
<td>{{zahlungForderung.kommentar}}</td>
</tr> </tr>
</table> </table>

View File

@ -3,9 +3,9 @@ import { ActivatedRoute } from '@angular/router'
import { Location } from '@angular/common' import { Location } from '@angular/common'
import { Mieter } from '../mieter' import { Mieter } from '../mieter'
import { Forderung } from '../forderung' import { ZahlungForderung } from '../zahlung-forderung'
import { MieterService} from '../mieter.service' import { MieterService} from '../mieter.service'
import { ForderungService} from '../forderung.service' import { ZahlungForderungService} from '../zahlung-forderung.service'
import { MessageService } from '../message.service' import { MessageService } from '../message.service'
@Component({ @Component({
@ -16,12 +16,13 @@ import { MessageService } from '../message.service'
export class MieterDetailComponent implements OnInit { export class MieterDetailComponent implements OnInit {
mieter: Mieter mieter: Mieter
forderungen : Forderung[] year: string
zahlungenForderungen : ZahlungForderung[]
constructor( constructor(
private mieterService: MieterService, private mieterService: MieterService,
private forderungService: ForderungService, private zahlungForderungService: ZahlungForderungService,
private messageService: MessageService, private messageService: MessageService,
private route: ActivatedRoute, private route: ActivatedRoute,
private location: Location ) { private location: Location ) {
@ -31,13 +32,28 @@ export class MieterDetailComponent implements OnInit {
const id = +this.route.snapshot.paramMap.get('id') const id = +this.route.snapshot.paramMap.get('id')
try { try {
this.mieter = await this.mieterService.getMieter(id) this.mieter = await this.mieterService.getMieter(id)
this.forderungen = await this.forderungService.getForderungenByMieter(id) this.zahlungenForderungen = await this.zahlungForderungService.getZahlungenForderungenByMieterAndYear(id, +this.year)
} catch (err) { } catch (err) {
this.messageService.add(JSON.stringify(err, undefined, 4)) this.messageService.add(JSON.stringify(err, undefined, 4))
} }
} }
ngOnInit(): void { async getZahlungenForderungen() {
this.getMieter() const id = this.mieter?.id ?? 0
try {
this.zahlungenForderungen = await this.zahlungForderungService.getZahlungenForderungenByMieterAndYear(id, +this.year)
} catch (err) {
this.messageService.add(JSON.stringify(err, undefined, 4))
}
}
onYearInput(): void {
this.getZahlungenForderungen()
}
async ngOnInit(): Promise<void> {
this.year = new Date().getFullYear().toString()
await this.getMieter()
await this.getZahlungenForderungen()
} }
} }

View File

@ -1,9 +1,9 @@
export interface Mieter { export interface Mieter {
id: number; id: number;
objekt_id: number; objekt: number;
wohnung_id: number; wohnung: number;
wohnung: string; wohnung_shortname: string;
objekt: string; objekt_shortname: string;
anrede: string; anrede: string;
vorname: string; vorname: string;
nachname: string; nachname: string;

View File

@ -1,8 +1,7 @@
export interface Wohnung { export interface Wohnung {
id: number; id: number;
objekt_id: number; objekt: number;
wohnung_id: number; shortname: string;
wohnung: string; objekt_shortname: string;
objekt: string;
flaeche: number; flaeche: number;
} }

View File

@ -5,6 +5,6 @@
</p> </p>
<ul class="wohnungen"> <ul class="wohnungen">
<li *ngFor="let wohnung of wohnungen"> <li *ngFor="let wohnung of wohnungen">
<span>{{wohnung.wohnung}}</span>: <span>{{wohnung.flaeche}}</span> <span>{{wohnung.shortname}}</span>: <span>{{wohnung.flaeche}}</span>
</li> </li>
</ul> </ul>

View File

@ -15,7 +15,7 @@ export class ZahlungForderungService {
getZahlungenForderungenByMieterAndYear(mieterId: number, year: number): Promise<ZahlungForderung[]> { getZahlungenForderungenByMieterAndYear(mieterId: number, year: number): Promise<ZahlungForderung[]> {
this.messageService.add(`ZahlungForderungService: fetched zahlungen and forderungen by mieter ${mieterId} and year ${year}`) this.messageService.add(`ZahlungForderungService: fetched zahlungen and forderungen by mieter ${mieterId} and year ${year}`)
return this.http.get<ZahlungForderung[]>(`${serviceBaseUrl}/hv/mieter/${mieterId}/zahlungforderung${year}`).toPromise() return this.http.get<ZahlungForderung[]>(`${serviceBaseUrl}/hv/mieter/${mieterId}/zahlungforderung/${year}`).toPromise()
} }
getForderung(id: number): Promise<Forderung> { getForderung(id: number): Promise<Forderung> {