<section class="mat-typography"> <mat-card class="defaultCard"> <mat-card-header> <mat-card-title> {{tenant?.firstname}} {{tenant?.lastname}} </mat-card-title> </mat-card-header> <mat-card-content> <mat-accordion> <mat-expansion-panel (opened)="collapseTenantDetails = true" (closed)="collapseTenantDetails = false"> <mat-expansion-panel-header> <mat-panel-title *ngIf="!collapseTenantDetails"> Details </mat-panel-title> <mat-panel-description> </mat-panel-description> </mat-expansion-panel-header> <div> <form (ngSubmit)="saveTenant()"> <div> <mat-form-field appearance="outline"> <mat-label>Anrede</mat-label> <input matInput name="salutation" [(ngModel)]="tenant.salutation"/> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Vorname</mat-label> <input matInput name="firstname" [(ngModel)]="tenant.firstname"/> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Nachname</mat-label> <input matInput name="lastname" [(ngModel)]="tenant.lastname"/> </mat-form-field> </div><div> <mat-form-field appearance="outline"> <mat-label>Adresse 1 (Straße)</mat-label> <input matInput name="address" [(ngModel)]="tenant.address1"/> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Adresse 2</mat-label> <input matInput name="address2" [(ngModel)]="tenant.address2"/> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Adresse 3</mat-label> <input matInput name="address3" [(ngModel)]="tenant.address3"/> </mat-form-field> </div><div> <mat-form-field appearance="outline"> <mat-label>PLZ</mat-label> <input matInput name="zip" [(ngModel)]="tenant.zip"/> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Ort</mat-label> <input matInput name="city" [(ngModel)]="tenant.city"/> </mat-form-field> </div><div> <mat-form-field appearance="outline"> <mat-label>Telefon 1</mat-label> <input matInput name="phone1" [(ngModel)]="tenant.phone1"/> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Telefon 2</mat-label> <input matInput name="phone2" [(ngModel)]="tenant.phone2"/> </mat-form-field> </div><div> <mat-form-field appearance="outline"> <mat-label>IBAN</mat-label> <input matInput name="iban" [(ngModel)]="tenant.iban"/> </mat-form-field> </div> <!-- <div> <mat-form-field appearance="outline"> <mat-label>Account ID</mat-label> <input matInput name="account_id" [readonly]="true" [ngModel]="account.id"/> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Account Description</mat-label> <input matInput name="account_desc" [readonly]="true" [ngModel]="account.description"/> </mat-form-field> </div> --> <button #submitButton type="submit" mat-raised-button color="primary">Speichern</button> </form> </div> </mat-expansion-panel> </mat-accordion> </mat-card-content> </mat-card> <app-note [selectedTenantId]="tenantId"></app-note> <mat-card class="defaultCard"> <mat-card-header> <mat-card-title> Mietverhältnisse </mat-card-title> </mat-card-header> <mat-card-content> <mat-accordion> <mat-expansion-panel #panelTenancies (opened)="collapseTenancies = true" (closed)="collapseTenancies = false"> <mat-expansion-panel-header> <mat-panel-title *ngIf="!collapseTenancies"> Übersicht </mat-panel-title> <mat-panel-description> </mat-panel-description> </mat-expansion-panel-header> <div> <table mat-table [dataSource]="tenancyDataSource" #zftable> <ng-container matColumnDef="description"> <th mat-header-cell *matHeaderCellDef>Beschreibung</th> <td mat-cell *matCellDef="let element">{{element.rawTenancy.description}}</td> </ng-container> <ng-container matColumnDef="flat"> <th mat-header-cell *matHeaderCellDef>Wohnung</th> <td mat-cell *matCellDef="let element">{{element.flat}}</td> </ng-container> <ng-container matColumnDef="parking"> <th mat-header-cell *matHeaderCellDef>Garage</th> <td mat-cell *matCellDef="let element">{{element.parking}}</td> </ng-container> <ng-container matColumnDef="commercial_premise"> <th mat-header-cell *matHeaderCellDef>Büro</th> <td mat-cell *matCellDef="let element">{{element.commercial_premise}}</td> </ng-container> <ng-container matColumnDef="startdate"> <th mat-header-cell *matHeaderCellDef>Beginn</th> <td mat-cell *matCellDef="let element">{{element.rawTenancy.startdate | date}}</td> </ng-container> <ng-container matColumnDef="enddate"> <th mat-header-cell *matHeaderCellDef>Ende</th> <td mat-cell *matCellDef="let element">{{element.rawTenancy.enddate | date}}</td> </ng-container> <tr mat-header-row *matHeaderRowDef="tenancyDisplayColumns"></tr> <tr mat-row *matRowDef="let row; columns: tenancyDisplayColumns;" (click)="setSelectedTenancy(row.rawTenancy)"></tr> </table> </div> </mat-expansion-panel> <mat-expansion-panel #panelAddMapping (opened)="openTenancyMapping()" (closed)="closeTenancyMapping()"> <mat-expansion-panel-header> <mat-panel-title *ngIf="!collapseTenancyMapping"> Mietverhältnis hinzufügen </mat-panel-title> <mat-panel-description> </mat-panel-description> </mat-expansion-panel-header> <div> <form (ngSubmit)="addTenancyToTenant()"> <div> <mat-form-field appearance="outline" id="setenddatefield"> <mat-label>Beginn</mat-label> <input matInput name="startdate" [(ngModel)]="newTenancy.startdate" [matDatepicker]="newtenancystartdatepicker"/> <mat-datepicker-toggle matSuffix [for]="newtenancystartdatepicker"></mat-datepicker-toggle> <mat-datepicker #newtenancystartdatepicker></mat-datepicker> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Beschreibung</mat-label> <input matInput name="description" [(ngModel)]="newTenancy.description"/> </mat-form-field> </div><div> <mat-form-field appearance="outline"> <mat-select #mapSelect [(ngModel)]="newTenancy.flat" name="flat" (selectionChange)="flatSelected()"> <mat-label>Wohnung</mat-label> <mat-option *ngFor="let p of allFlats" [value]="p.rawFlat.id">{{p.rawFlat.description}} {{p.premise}}</mat-option> </mat-select> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Garage</mat-label> <mat-select #mapSelect [(ngModel)]="newTenancy.parking" name="parking" (selectionChange)="parkingSelected()"> <mat-option *ngFor="let p of allParkings" [value]="p.rawParking.id">{{p.rawParking.description}} {{p.premise}}</mat-option> </mat-select> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>Büro</mat-label> <mat-select #mapSelect [(ngModel)]="newTenancy.commercial_premise" name="commercial_premise" (selectionChange)="commercialPremiseSelected()"> <mat-option *ngFor="let p of allCommercialPremises" [value]="p.rawCommercialPremise.id">{{p.rawCommercialPremise.description}} {{p.premise}}</mat-option> </mat-select> </mat-form-field> </div> <button #addTenancyToTenantButton type="submit" mat-raised-button color="primary">Anlegen</button> </form> </div> </mat-expansion-panel> </mat-accordion> </mat-card-content> </mat-card> <mat-card class="defaultCard" *ngIf="selectedTenancy"> <mat-card-header> <mat-card-title> <span>{{selectedTenancy.description}}</span> <button mat-icon-button color="accent" aria-label="Schließen" (click)="clearSelectedTenancy()"> <mat-icon>done</mat-icon> </button> </mat-card-title> </mat-card-header> <mat-card-content> Mietdetails: {{selectedTenancy.description}} <div> <form (ngSubmit)="setTenancyEndData()"> <mat-form-field appearance="outline" id="setenddatefield"> <mat-label>Ende</mat-label> <input matInput name="enddate" [(ngModel)]="selectedTenancy.enddate" [matDatepicker]="enddatepicker"/> <mat-datepicker-toggle matSuffix [for]="enddatepicker"></mat-datepicker-toggle> <mat-datepicker #enddatepicker></mat-datepicker> </mat-form-field> <button #setTenancyEndDataButton type="submit" mat-raised-button color="primary">Enddatum setzen</button> </form> </div> <div> <table mat-table [dataSource]="mappedFeesDataSource" #zftable> <ng-container matColumnDef="description"> <th mat-header-cell *matHeaderCellDef>Beschreibung</th> <td mat-cell *matCellDef="let element">{{element.description}}</td> </ng-container> <ng-container matColumnDef="amount"> <th mat-header-cell *matHeaderCellDef>Betrag</th> <td mat-cell *matCellDef="let element">{{element.amount | number:'1.2-2'}} €</td> </ng-container> <ng-container matColumnDef="fee_type"> <th mat-header-cell *matHeaderCellDef>Typ</th> <td mat-cell *matCellDef="let element">{{element.fee_type}}</td> </ng-container> <ng-container matColumnDef="startdate"> <th mat-header-cell *matHeaderCellDef>Beginn</th> <td mat-cell *matCellDef="let element">{{element.startdate | date}}</td> </ng-container> <ng-container matColumnDef="enddate"> <th mat-header-cell *matHeaderCellDef>Ende</th> <td mat-cell *matCellDef="let element">{{element.enddate | date}}</td> </ng-container> <tr mat-header-row *matHeaderRowDef="mappedFeesDisplayedColumns"></tr> <tr mat-row *matRowDef="let row; columns: mappedFeesDisplayedColumns;"></tr> </table> </div> <div> <form (ngSubmit)="addFee()"> <mat-form-field appearance="standard" id="addfeefield"> <mat-label>Mietsatz</mat-label> <mat-select #mapSelect [(ngModel)]="selectedFee" name="fee"> <mat-option *ngFor="let p of allFees" [value]="p.id">{{p.description}} {{p.amount}} {{p.startdate}}</mat-option> </mat-select> </mat-form-field> <button #mapFeeButton type="submit" mat-raised-button color="primary">Zuordnen</button> </form> </div> </mat-card-content> </mat-card> <app-account [selectedAccountId]="tenant.account" [shallBeRentPayment]="true"></app-account> </section>