change: viewmodell reading
This commit is contained in:
parent
8b08dda934
commit
2e69f87578
7 changed files with 26 additions and 8 deletions
14
src/factory/admin/club/member/dateMappingHelper.ts
Normal file
14
src/factory/admin/club/member/dateMappingHelper.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
import { DB_TYPE } from "../../../../env.defaults";
|
||||
|
||||
export default abstract class DateMappingHelper {
|
||||
static mapDate(entry: any) {
|
||||
switch (DB_TYPE) {
|
||||
case "postgres":
|
||||
return `${entry.years} years ${entry.months} months ${entry.days} days`;
|
||||
case "mysql":
|
||||
return entry.toString();
|
||||
case "sqlite":
|
||||
return entry;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ import { MemberStatisticsViewModel, MemberViewModel } from "../../../../viewmode
|
|||
import { memberView } from "../../../../views/memberView";
|
||||
import SalutationFactory from "../../settings/salutation";
|
||||
import CommunicationFactory from "./communication";
|
||||
import DateMappingHelper from "./dateMappingHelper";
|
||||
import MembershipFactory from "./membership";
|
||||
|
||||
export default abstract class MemberFactory {
|
||||
|
@ -59,7 +60,7 @@ export default abstract class MemberFactory {
|
|||
birthdate: record.birthdate,
|
||||
todayAge: record.todayAge,
|
||||
ageThisYear: record.ageThisYear,
|
||||
exactAge: record.exactAge,
|
||||
exactAge: DateMappingHelper.mapDate(record.exactAge),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import {
|
|||
MembershipViewModel,
|
||||
} from "../../../../viewmodel/admin/club/member/membership.models";
|
||||
import { membershipView } from "../../../../views/membershipsView";
|
||||
import DateMappingHelper from "./dateMappingHelper";
|
||||
|
||||
export default abstract class MembershipFactory {
|
||||
/**
|
||||
|
@ -40,7 +41,7 @@ export default abstract class MembershipFactory {
|
|||
return {
|
||||
durationInDays: record.durationInDays,
|
||||
durationInYears: record.durationInYears,
|
||||
exactDuration: record.exactDuration.toString(),
|
||||
exactDuration: DateMappingHelper.mapDate(record.exactDuration),
|
||||
status: record.status,
|
||||
statusId: record.statusId,
|
||||
memberId: record.memberId,
|
||||
|
|
|
@ -336,7 +336,7 @@ export const member_executive_positions_view_postgres = new View({
|
|||
"member"."birthdate" AS "memberBirthdate",
|
||||
"salutation"."salutation" AS "memberSalutation",
|
||||
SUM(COALESCE("memberExecutivePositions"."end", CURRENT_DATE) - "memberExecutivePositions"."start") AS "durationInDays",
|
||||
SUM(EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM member.birthdate)) AS "durationInYears",
|
||||
SUM(EXTRACT(YEAR FROM AGE(COALESCE("memberExecutivePositions"."end", CURRENT_DATE), "memberExecutivePositions"."start"))) AS "durationInYears",
|
||||
SUM(AGE(COALESCE("memberExecutivePositions"."end", CURRENT_DATE), "memberExecutivePositions"."start")) AS "exactDuration"
|
||||
FROM "member_executive_positions" "memberExecutivePositions"
|
||||
LEFT JOIN "executive_position" "executivePosition" ON "executivePosition"."id"="memberExecutivePositions"."executivePositionId"
|
||||
|
@ -415,7 +415,8 @@ export const member_qualifications_view_postgres = new View({
|
|||
"member"."birthdate" AS "memberBirthdate",
|
||||
"salutation"."salutation" AS "memberSalutation",
|
||||
SUM(COALESCE("memberQualifications"."end", CURRENT_DATE) - "memberQualifications"."start") AS "durationInDays",
|
||||
SUM(AGE(COALESCE("memberQualifications"."end", CURRENT_DATE), "memberQualifications"."start")) AS "durationInYears"
|
||||
SUM(EXTRACT(YEAR FROM AGE(COALESCE("memberQualifications"."end", CURRENT_DATE), "memberQualifications"."start"))) AS "durationInYears",
|
||||
SUM(AGE(COALESCE("memberQualifications"."end", CURRENT_DATE), "memberQualifications"."start")) AS "exactDuration"
|
||||
FROM "member_qualifications" "memberQualifications"
|
||||
LEFT JOIN "qualification" "qualification" ON "qualification"."id"="memberQualifications"."qualificationId"
|
||||
LEFT JOIN "member" "member" ON "member"."id"="memberQualifications"."memberId"
|
||||
|
@ -493,7 +494,8 @@ export const membership_view_postgres = new View({
|
|||
"member"."birthdate" AS "memberBirthdate",
|
||||
"salutation"."salutation" AS "memberSalutation",
|
||||
SUM(COALESCE("membership"."end", CURRENT_DATE) - "membership"."start") AS "durationInDays",
|
||||
SUM(AGE(COALESCE("membership"."end", CURRENT_DATE), "membership"."start")) AS "durationInYears"
|
||||
SUM(EXTRACT(YEAR FROM AGE(COALESCE("membership"."end", CURRENT_DATE), "membership"."start"))) AS "durationInYears",
|
||||
SUM(AGE(COALESCE("membership"."end", CURRENT_DATE), "membership"."start")) AS "exactDuration"
|
||||
FROM "membership" "membership"
|
||||
LEFT JOIN "membership_status" "status" ON "status"."id"="membership"."statusId"
|
||||
LEFT JOIN "member" "member" ON "member"."id"="membership"."memberId"
|
||||
|
|
|
@ -7,7 +7,7 @@ let durationInYears: string;
|
|||
let exactDuration: string;
|
||||
if (DB_TYPE == "postgres") {
|
||||
durationInDays = `SUM(COALESCE("memberExecutivePositions"."end", CURRENT_DATE) - "memberExecutivePositions"."start")`;
|
||||
durationInYears = `SUM(EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM member.birthdate))`;
|
||||
durationInYears = `SUM(EXTRACT(YEAR FROM AGE(COALESCE("memberExecutivePositions"."end", CURRENT_DATE), "memberExecutivePositions"."start")))`;
|
||||
exactDuration = `SUM(AGE(COALESCE("memberExecutivePositions"."end", CURRENT_DATE), "memberExecutivePositions"."start"))`;
|
||||
} else if (DB_TYPE == "mysql") {
|
||||
durationInDays = `SUM(DATEDIFF(COALESCE(memberExecutivePositions.end, CURDATE()), memberExecutivePositions.start))`;
|
||||
|
|
|
@ -7,7 +7,7 @@ let durationInYears: string;
|
|||
let exactDuration: string;
|
||||
if (DB_TYPE == "postgres") {
|
||||
durationInDays = `SUM(COALESCE("memberQualifications"."end", CURRENT_DATE) - "memberQualifications"."start") `;
|
||||
durationInYears = `SUM(EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM member.birthdate))`;
|
||||
durationInYears = `SUM(EXTRACT(YEAR FROM AGE(COALESCE("memberQualifications"."end", CURRENT_DATE), "memberQualifications"."start")))`;
|
||||
exactDuration = `SUM(AGE(COALESCE("memberQualifications"."end", CURRENT_DATE), "memberQualifications"."start"))`;
|
||||
} else if (DB_TYPE == "mysql") {
|
||||
durationInDays = `SUM(DATEDIFF(COALESCE(memberQualifications.end, CURDATE()), memberQualifications.start))`;
|
||||
|
|
|
@ -7,7 +7,7 @@ let durationInYears: string;
|
|||
let exactDuration: string;
|
||||
if (DB_TYPE == "postgres") {
|
||||
durationInDays = `SUM(COALESCE("membership"."end", CURRENT_DATE) - "membership"."start") `;
|
||||
durationInYears = `SUM(EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM member.birthdate))`;
|
||||
durationInYears = `SUM(EXTRACT(YEAR FROM AGE(COALESCE("membership"."end", CURRENT_DATE), "membership"."start")))`;
|
||||
exactDuration = `SUM(AGE(COALESCE("membership"."end", CURRENT_DATE), "membership"."start"))`;
|
||||
} else if (DB_TYPE == "mysql") {
|
||||
durationInDays = `SUM(DATEDIFF(COALESCE(membership.end, CURDATE()), membership.start))`;
|
||||
|
|
Loading…
Add table
Reference in a new issue