changes
This commit is contained in:
parent
c6e865eca1
commit
0ae59c644e
@ -251,7 +251,7 @@ UPDATE tenant_t
|
||||
|
||||
|
||||
def get_tenant_by_account(user, token_info, accountId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -474,7 +474,7 @@ UPDATE flat_t
|
||||
|
||||
|
||||
def get_flat_by_premise(user, token_info, premiseId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -643,7 +643,7 @@ SELECT
|
||||
|
||||
|
||||
def get_overhead_advance_flat_mapping_by_overhead_advance(user, token_info, overhead_advanceId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -657,7 +657,7 @@ SELECT
|
||||
)
|
||||
|
||||
def get_overhead_advance_flat_mapping_by_flat(user, token_info, flatId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -753,7 +753,7 @@ UPDATE parking_t
|
||||
|
||||
|
||||
def get_parking_by_premise(user, token_info, premiseId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -849,7 +849,7 @@ UPDATE commercial_premise_t
|
||||
|
||||
|
||||
def get_commercial_premise_by_premise(user, token_info, premiseId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -975,7 +975,7 @@ UPDATE tenancy_t
|
||||
|
||||
|
||||
def get_tenancy_by_tenant(user, token_info, tenantId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -994,7 +994,7 @@ SELECT
|
||||
)
|
||||
|
||||
def get_tenancy_by_flat(user, token_info, flatId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -1013,7 +1013,7 @@ SELECT
|
||||
)
|
||||
|
||||
def get_tenancy_by_parking(user, token_info, parkingId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -1032,7 +1032,7 @@ SELECT
|
||||
)
|
||||
|
||||
def get_tenancy_by_commercial_premise(user, token_info, commercial_premiseId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -1207,7 +1207,7 @@ SELECT
|
||||
|
||||
|
||||
def get_tenancy_fee_mapping_by_tenancy(user, token_info, tenancyId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -1221,7 +1221,7 @@ SELECT
|
||||
)
|
||||
|
||||
def get_tenancy_fee_mapping_by_fee(user, token_info, feeId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
@ -1303,7 +1303,7 @@ SELECT
|
||||
|
||||
|
||||
def get_account_entry_by_account(user, token_info, accountId=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
|
@ -120,7 +120,7 @@ UPDATE ${table.name}_t
|
||||
#if (('foreignkey' in $column) and $column.foreignkey)
|
||||
|
||||
def get_${table.name}_by_${column.name}(user, token_info, ${column.name}Id=None):
|
||||
return dbGetOne(user, token_info, {
|
||||
return dbGetMany(user, token_info, {
|
||||
"statement": """
|
||||
SELECT
|
||||
id
|
||||
|
@ -41,7 +41,6 @@ import { MatNativeDateModule } from '@angular/material/core';
|
||||
import { FeeListComponent } from './fee-list/fee-list.component';
|
||||
import { FeeDetailsComponent } from './fee-details/fee-details.component';
|
||||
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
AppComponent,
|
||||
@ -84,7 +83,7 @@ import { FeeDetailsComponent } from './fee-details/fee-details.component';
|
||||
MatFormFieldModule,
|
||||
MatSelectModule,
|
||||
MatDatepickerModule,
|
||||
MatNativeDateModule
|
||||
MatNativeDateModule,
|
||||
],
|
||||
providers: [
|
||||
{ provide: HTTP_INTERCEPTORS, useClass: ErrorHandlerInterceptor, multi: true },
|
||||
|
@ -0,0 +1,11 @@
|
||||
table {
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.spacer {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
#addoverheadfield {
|
||||
margin-right: 15px;
|
||||
}
|
@ -3,12 +3,14 @@
|
||||
<mat-card-header>
|
||||
<mat-card-title>
|
||||
{{tenant?.firstname}} {{tenant?.lastname}}
|
||||
<button mat-button *ngIf="!collapseTenantDetails" (click)="collapseTenantDetails=true">Collapse</button>
|
||||
<button mat-button *ngIf="collapseTenantDetails" (click)="collapseTenantDetails=false">Expand</button>
|
||||
</mat-card-title>
|
||||
<mat-card-subtitle>
|
||||
ID: {{tenant?.id}}
|
||||
</mat-card-subtitle>
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<mat-card-content *ngIf="!collapseTenantDetails">
|
||||
<div>
|
||||
<form (ngSubmit)="saveTenant()">
|
||||
<div>
|
||||
@ -75,4 +77,44 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
<mat-card class="defaultCard">
|
||||
<mat-card-header>
|
||||
<mat-card-title>
|
||||
Mietverhältnisse
|
||||
</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<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}}</td>
|
||||
</ng-container>
|
||||
<ng-container matColumnDef="enddate">
|
||||
<th mat-header-cell *matHeaderCellDef>Ende</th>
|
||||
<td mat-cell *matCellDef="let element">{{element.rawTenancy.enddate}}</td>
|
||||
</ng-container>
|
||||
<tr mat-header-row *matHeaderRowDef="tenancyDisplayColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: tenancyDisplayColumns;"></tr>
|
||||
</table>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
|
||||
</section>
|
||||
|
@ -1,9 +1,18 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { AccountService, TenantService } from '../data-object-service';
|
||||
import { Account, Tenant } from '../data-objects';
|
||||
import { AccountService, CommercialPremiseService, FlatService, ParkingService, PremiseService, TenancyService, TenantService } from '../data-object-service';
|
||||
import { Account, CommercialPremise, Flat, NULL_Account, NULL_CommercialPremise, NULL_Flat, NULL_Parking, NULL_Tenant, Parking, Premise, Tenancy, Tenant } from '../data-objects';
|
||||
import { MessageService } from '../message.service';
|
||||
import { MatButton } from '@angular/material/button';
|
||||
import { MatTableDataSource } from '@angular/material/table';
|
||||
|
||||
|
||||
interface DN_Tenancy {
|
||||
rawTenancy: Tenancy
|
||||
flat: string
|
||||
parking: string
|
||||
commercialPremise: string
|
||||
}
|
||||
|
||||
@Component({
|
||||
selector: 'app-tenant-details',
|
||||
@ -12,32 +21,28 @@ import { MatButton } from '@angular/material/button';
|
||||
})
|
||||
export class TenantDetailsComponent implements OnInit {
|
||||
|
||||
tenant: Tenant = {
|
||||
id: 0,
|
||||
salutation: '',
|
||||
firstname: '',
|
||||
lastname: '',
|
||||
address1: '',
|
||||
address2: '',
|
||||
address3: '',
|
||||
zip: '',
|
||||
city: '',
|
||||
phone1: '',
|
||||
phone2: '',
|
||||
iban: '',
|
||||
account: 0
|
||||
}
|
||||
tenant: Tenant = NULL_Tenant
|
||||
|
||||
account: Account = NULL_Account
|
||||
|
||||
tenancies: DN_Tenancy[] = []
|
||||
tenancyDataSource: MatTableDataSource<DN_Tenancy>
|
||||
tenancyDisplayColumns: string[] = [ "description", "flat", "parking", "commercial_premise", "startdate", "enddate" ]
|
||||
|
||||
collapseTenantDetails: boolean = false
|
||||
collapseTenancies: boolean = false
|
||||
|
||||
account: Account = {
|
||||
id: 0,
|
||||
description: ''
|
||||
}
|
||||
|
||||
@ViewChild('submitButton') submitButton: MatButton
|
||||
|
||||
constructor(
|
||||
private tenantService: TenantService,
|
||||
private accountService: AccountService,
|
||||
private tenancyService: TenancyService,
|
||||
private flatService: FlatService,
|
||||
private parkingService: ParkingService,
|
||||
private commercialPremiseService: CommercialPremiseService,
|
||||
private premiseService: PremiseService,
|
||||
private messageService: MessageService,
|
||||
private route: ActivatedRoute,
|
||||
private router: Router
|
||||
@ -49,6 +54,24 @@ export class TenantDetailsComponent implements OnInit {
|
||||
if (id != 0) {
|
||||
this.tenant = await this.tenantService.getTenant(id)
|
||||
this.account = await this.accountService.getAccount(this.tenant.account)
|
||||
|
||||
const premises: Premise[] = await this.premiseService.getPremises()
|
||||
const premisesDict = new Map<number, Premise>()
|
||||
for (let p of premises) {
|
||||
premisesDict.set(p.id, p)
|
||||
}
|
||||
for (let t of await this.tenancyService.getTenancysByTenant(this.tenant.id)) {
|
||||
const flat: Flat = (t.flat) ? await this.flatService.getFlat(t.flat) : NULL_Flat
|
||||
const parking: Parking = (t.parking) ? await this.parkingService.getParking(t.parking) : NULL_Parking
|
||||
const commercialPremise: CommercialPremise = (t.commercial_premise) ? await this.commercialPremiseService.getCommercialPremise(t.commercial_premise) : NULL_CommercialPremise
|
||||
this.tenancies.push({
|
||||
rawTenancy: t,
|
||||
flat: (flat != NULL_Flat) ? `${flat.description} (${premisesDict.get(flat.premise).description})` : '',
|
||||
parking: (parking != NULL_Parking) ? `${parking.description} (${premisesDict.get(parking.premise).description})` : '',
|
||||
commercialPremise: (commercialPremise != NULL_CommercialPremise) ? `${commercialPremise.description} (${premisesDict.get(commercialPremise.premise).description})` : ''
|
||||
})
|
||||
}
|
||||
this.tenancyDataSource = new MatTableDataSource<DN_Tenancy>(this.tenancies)
|
||||
}
|
||||
} catch (err) {
|
||||
this.messageService.add(JSON.stringify(err, undefined, 4))
|
||||
|
Loading…
x
Reference in New Issue
Block a user