patches v1.3.2 #60
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 { memberView } from "../../../../views/memberView";
|
||||||
import SalutationFactory from "../../settings/salutation";
|
import SalutationFactory from "../../settings/salutation";
|
||||||
import CommunicationFactory from "./communication";
|
import CommunicationFactory from "./communication";
|
||||||
|
import DateMappingHelper from "./dateMappingHelper";
|
||||||
import MembershipFactory from "./membership";
|
import MembershipFactory from "./membership";
|
||||||
|
|
||||||
export default abstract class MemberFactory {
|
export default abstract class MemberFactory {
|
||||||
|
@ -59,7 +60,7 @@ export default abstract class MemberFactory {
|
||||||
birthdate: record.birthdate,
|
birthdate: record.birthdate,
|
||||||
todayAge: record.todayAge,
|
todayAge: record.todayAge,
|
||||||
ageThisYear: record.ageThisYear,
|
ageThisYear: record.ageThisYear,
|
||||||
exactAge: record.exactAge,
|
exactAge: DateMappingHelper.mapDate(record.exactAge),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import {
|
||||||
MembershipViewModel,
|
MembershipViewModel,
|
||||||
} from "../../../../viewmodel/admin/club/member/membership.models";
|
} from "../../../../viewmodel/admin/club/member/membership.models";
|
||||||
import { membershipView } from "../../../../views/membershipsView";
|
import { membershipView } from "../../../../views/membershipsView";
|
||||||
|
import DateMappingHelper from "./dateMappingHelper";
|
||||||
|
|
||||||
export default abstract class MembershipFactory {
|
export default abstract class MembershipFactory {
|
||||||
/**
|
/**
|
||||||
|
@ -40,7 +41,7 @@ export default abstract class MembershipFactory {
|
||||||
return {
|
return {
|
||||||
durationInDays: record.durationInDays,
|
durationInDays: record.durationInDays,
|
||||||
durationInYears: record.durationInYears,
|
durationInYears: record.durationInYears,
|
||||||
exactDuration: record.exactDuration.toString(),
|
exactDuration: DateMappingHelper.mapDate(record.exactDuration),
|
||||||
status: record.status,
|
status: record.status,
|
||||||
statusId: record.statusId,
|
statusId: record.statusId,
|
||||||
memberId: record.memberId,
|
memberId: record.memberId,
|
||||||
|
|
|
@ -336,7 +336,7 @@ export const member_executive_positions_view_postgres = new View({
|
||||||
"member"."birthdate" AS "memberBirthdate",
|
"member"."birthdate" AS "memberBirthdate",
|
||||||
"salutation"."salutation" AS "memberSalutation",
|
"salutation"."salutation" AS "memberSalutation",
|
||||||
SUM(COALESCE("memberExecutivePositions"."end", CURRENT_DATE) - "memberExecutivePositions"."start") AS "durationInDays",
|
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"
|
SUM(AGE(COALESCE("memberExecutivePositions"."end", CURRENT_DATE), "memberExecutivePositions"."start")) AS "exactDuration"
|
||||||
FROM "member_executive_positions" "memberExecutivePositions"
|
FROM "member_executive_positions" "memberExecutivePositions"
|
||||||
LEFT JOIN "executive_position" "executivePosition" ON "executivePosition"."id"="memberExecutivePositions"."executivePositionId"
|
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",
|
"member"."birthdate" AS "memberBirthdate",
|
||||||
"salutation"."salutation" AS "memberSalutation",
|
"salutation"."salutation" AS "memberSalutation",
|
||||||
SUM(COALESCE("memberQualifications"."end", CURRENT_DATE) - "memberQualifications"."start") AS "durationInDays",
|
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"
|
FROM "member_qualifications" "memberQualifications"
|
||||||
LEFT JOIN "qualification" "qualification" ON "qualification"."id"="memberQualifications"."qualificationId"
|
LEFT JOIN "qualification" "qualification" ON "qualification"."id"="memberQualifications"."qualificationId"
|
||||||
LEFT JOIN "member" "member" ON "member"."id"="memberQualifications"."memberId"
|
LEFT JOIN "member" "member" ON "member"."id"="memberQualifications"."memberId"
|
||||||
|
@ -493,7 +494,8 @@ export const membership_view_postgres = new View({
|
||||||
"member"."birthdate" AS "memberBirthdate",
|
"member"."birthdate" AS "memberBirthdate",
|
||||||
"salutation"."salutation" AS "memberSalutation",
|
"salutation"."salutation" AS "memberSalutation",
|
||||||
SUM(COALESCE("membership"."end", CURRENT_DATE) - "membership"."start") AS "durationInDays",
|
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"
|
FROM "membership" "membership"
|
||||||
LEFT JOIN "membership_status" "status" ON "status"."id"="membership"."statusId"
|
LEFT JOIN "membership_status" "status" ON "status"."id"="membership"."statusId"
|
||||||
LEFT JOIN "member" "member" ON "member"."id"="membership"."memberId"
|
LEFT JOIN "member" "member" ON "member"."id"="membership"."memberId"
|
||||||
|
|
|
@ -7,7 +7,7 @@ let durationInYears: string;
|
||||||
let exactDuration: string;
|
let exactDuration: string;
|
||||||
if (DB_TYPE == "postgres") {
|
if (DB_TYPE == "postgres") {
|
||||||
durationInDays = `SUM(COALESCE("memberExecutivePositions"."end", CURRENT_DATE) - "memberExecutivePositions"."start")`;
|
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"))`;
|
exactDuration = `SUM(AGE(COALESCE("memberExecutivePositions"."end", CURRENT_DATE), "memberExecutivePositions"."start"))`;
|
||||||
} else if (DB_TYPE == "mysql") {
|
} else if (DB_TYPE == "mysql") {
|
||||||
durationInDays = `SUM(DATEDIFF(COALESCE(memberExecutivePositions.end, CURDATE()), memberExecutivePositions.start))`;
|
durationInDays = `SUM(DATEDIFF(COALESCE(memberExecutivePositions.end, CURDATE()), memberExecutivePositions.start))`;
|
||||||
|
|
|
@ -7,7 +7,7 @@ let durationInYears: string;
|
||||||
let exactDuration: string;
|
let exactDuration: string;
|
||||||
if (DB_TYPE == "postgres") {
|
if (DB_TYPE == "postgres") {
|
||||||
durationInDays = `SUM(COALESCE("memberQualifications"."end", CURRENT_DATE) - "memberQualifications"."start") `;
|
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"))`;
|
exactDuration = `SUM(AGE(COALESCE("memberQualifications"."end", CURRENT_DATE), "memberQualifications"."start"))`;
|
||||||
} else if (DB_TYPE == "mysql") {
|
} else if (DB_TYPE == "mysql") {
|
||||||
durationInDays = `SUM(DATEDIFF(COALESCE(memberQualifications.end, CURDATE()), memberQualifications.start))`;
|
durationInDays = `SUM(DATEDIFF(COALESCE(memberQualifications.end, CURDATE()), memberQualifications.start))`;
|
||||||
|
|
|
@ -7,7 +7,7 @@ let durationInYears: string;
|
||||||
let exactDuration: string;
|
let exactDuration: string;
|
||||||
if (DB_TYPE == "postgres") {
|
if (DB_TYPE == "postgres") {
|
||||||
durationInDays = `SUM(COALESCE("membership"."end", CURRENT_DATE) - "membership"."start") `;
|
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"))`;
|
exactDuration = `SUM(AGE(COALESCE("membership"."end", CURRENT_DATE), "membership"."start"))`;
|
||||||
} else if (DB_TYPE == "mysql") {
|
} else if (DB_TYPE == "mysql") {
|
||||||
durationInDays = `SUM(DATEDIFF(COALESCE(membership.end, CURDATE()), membership.start))`;
|
durationInDays = `SUM(DATEDIFF(COALESCE(membership.end, CURDATE()), membership.start))`;
|
||||||
|
|
Loading…
Add table
Reference in a new issue