show child cemeteries
parent
966a2fc869
commit
cd47832247
|
|
@ -1,2 +1,4 @@
|
|||
import type { Cemetery } from '../types/recordTypes.js';
|
||||
export default function getCemeteries(): Promise<Cemetery[]>;
|
||||
export default function getCemeteries(filters?: {
|
||||
parentCemeteryId?: number | string;
|
||||
}): Promise<Cemetery[]>;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
import { acquireConnection } from './pool.js';
|
||||
export default async function getCemeteries() {
|
||||
export default async function getCemeteries(filters) {
|
||||
const database = await acquireConnection();
|
||||
const sqlParameters = [];
|
||||
if (filters?.parentCemeteryId !== undefined) {
|
||||
sqlParameters.push(filters.parentCemeteryId);
|
||||
}
|
||||
const cemeteries = database
|
||||
.prepare(`select m.cemeteryId, m.cemeteryName, m.cemeteryKey, m.cemeteryDescription,
|
||||
m.cemeteryLatitude, m.cemeteryLongitude, m.cemeterySvg,
|
||||
|
|
@ -12,13 +16,14 @@ export default async function getCemeteries() {
|
|||
left join Cemeteries p on m.parentCemeteryId = p.cemeteryId and p.recordDelete_timeMillis is null
|
||||
left join BurialSites b on m.cemeteryId = b.cemeteryId and b.recordDelete_timeMillis is null
|
||||
where m.recordDelete_timeMillis is null
|
||||
${filters?.parentCemeteryId === undefined ? '' : 'and m.parentCemeteryId = ?'}
|
||||
group by m.cemeteryId, m.cemeteryName, m.cemeteryDescription,
|
||||
m.cemeteryLatitude, m.cemeteryLongitude, m.cemeterySvg,
|
||||
m.cemeteryAddress1, m.cemeteryAddress2, m.cemeteryCity, m.cemeteryProvince, m.cemeteryPostalCode,
|
||||
m.cemeteryPhoneNumber,
|
||||
p.cemeteryId, p.cemeteryName
|
||||
order by m.cemeteryName, m.cemeteryId`)
|
||||
.all();
|
||||
.all(sqlParameters);
|
||||
database.release();
|
||||
return cemeteries;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,18 @@ import type { Cemetery } from '../types/recordTypes.js'
|
|||
|
||||
import { acquireConnection } from './pool.js'
|
||||
|
||||
export default async function getCemeteries(): Promise<Cemetery[]> {
|
||||
export default async function getCemeteries(filters?: {
|
||||
parentCemeteryId?: number | string
|
||||
}
|
||||
): Promise<Cemetery[]> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
const sqlParameters: Array<number | string> = []
|
||||
|
||||
if (filters?.parentCemeteryId !== undefined) {
|
||||
sqlParameters.push(filters.parentCemeteryId)
|
||||
}
|
||||
|
||||
const cemeteries = database
|
||||
.prepare(
|
||||
`select m.cemeteryId, m.cemeteryName, m.cemeteryKey, m.cemeteryDescription,
|
||||
|
|
@ -17,6 +26,7 @@ export default async function getCemeteries(): Promise<Cemetery[]> {
|
|||
left join Cemeteries p on m.parentCemeteryId = p.cemeteryId and p.recordDelete_timeMillis is null
|
||||
left join BurialSites b on m.cemeteryId = b.cemeteryId and b.recordDelete_timeMillis is null
|
||||
where m.recordDelete_timeMillis is null
|
||||
${filters?.parentCemeteryId === undefined ? '' : 'and m.parentCemeteryId = ?'}
|
||||
group by m.cemeteryId, m.cemeteryName, m.cemeteryDescription,
|
||||
m.cemeteryLatitude, m.cemeteryLongitude, m.cemeterySvg,
|
||||
m.cemeteryAddress1, m.cemeteryAddress2, m.cemeteryCity, m.cemeteryProvince, m.cemeteryPostalCode,
|
||||
|
|
@ -24,7 +34,7 @@ export default async function getCemeteries(): Promise<Cemetery[]> {
|
|||
p.cemeteryId, p.cemeteryName
|
||||
order by m.cemeteryName, m.cemeteryId`
|
||||
)
|
||||
.all() as Cemetery[]
|
||||
.all(sqlParameters) as Cemetery[]
|
||||
|
||||
database.release()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import getCemeteries from './getCemeteries.js';
|
||||
import { acquireConnection } from './pool.js';
|
||||
export default async function getCemetery(cemeteryId, connectedDatabase) {
|
||||
return await _getCemetery('cemeteryId', cemeteryId, connectedDatabase);
|
||||
|
|
@ -35,6 +36,12 @@ async function _getCemetery(keyColumn, cemeteryIdOrKey, connectedDatabase) {
|
|||
m.recordUpdate_userName, m.recordUpdate_timeMillis,
|
||||
m.recordDelete_userName, m.recordDelete_timeMillis`)
|
||||
.get(cemeteryIdOrKey);
|
||||
if (cemetery !== undefined) {
|
||||
cemetery.childCemeteries =
|
||||
cemetery.parentCemeteryId === null
|
||||
? await getCemeteries({ parentCemeteryId: cemetery.cemeteryId })
|
||||
: [];
|
||||
}
|
||||
if (connectedDatabase === undefined) {
|
||||
database.release();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import type { PoolConnection } from 'better-sqlite-pool'
|
|||
|
||||
import type { Cemetery } from '../types/recordTypes.js'
|
||||
|
||||
import getCemeteries from './getCemeteries.js'
|
||||
import { acquireConnection } from './pool.js'
|
||||
|
||||
export default async function getCemetery(
|
||||
|
|
@ -56,6 +57,13 @@ async function _getCemetery(
|
|||
)
|
||||
.get(cemeteryIdOrKey) as Cemetery | undefined
|
||||
|
||||
if (cemetery !== undefined) {
|
||||
cemetery.childCemeteries =
|
||||
cemetery.parentCemeteryId === null
|
||||
? await getCemeteries({ parentCemeteryId: cemetery.cemeteryId })
|
||||
: []
|
||||
}
|
||||
|
||||
if (connectedDatabase === undefined) {
|
||||
database.release()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ export interface Cemetery extends Record {
|
|||
cemeteryProvince: string;
|
||||
cemeteryPhoneNumber: string;
|
||||
burialSiteCount?: number;
|
||||
childCemeteries?: Cemetery[];
|
||||
}
|
||||
export interface CommittalType extends Record {
|
||||
committalTypeId: number;
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ export interface Cemetery extends Record {
|
|||
cemeteryPhoneNumber: string
|
||||
|
||||
burialSiteCount?: number
|
||||
childCemeteries?: Cemetery[]
|
||||
}
|
||||
|
||||
export interface CommittalType extends Record {
|
||||
|
|
@ -358,6 +359,7 @@ export interface FuneralHome extends Record {
|
|||
|
||||
export interface IntermentContainerType extends Record {
|
||||
intermentContainerTypeId: number
|
||||
|
||||
intermentContainerType: string
|
||||
intermentContainerTypeKey: string
|
||||
isCremationType: boolean
|
||||
|
|
@ -452,12 +454,14 @@ export interface WorkOrderMilestone extends Record, WorkOrder {
|
|||
export interface WorkOrderMilestoneType extends Record {
|
||||
workOrderMilestoneTypeId: number
|
||||
workOrderMilestoneType: string
|
||||
|
||||
orderNumber?: number
|
||||
}
|
||||
|
||||
export interface WorkOrderType extends Record {
|
||||
workOrderTypeId: number
|
||||
workOrderType?: string
|
||||
|
||||
orderNumber?: number
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -96,6 +96,19 @@
|
|||
<%= (cemetery.parentCemeteryName ?? '') === '' ? "(No Name)" : cemetery.parentCemeteryName %>
|
||||
</a>
|
||||
</div>
|
||||
<% } else if (cemetery.childCemeteries.length > 0) { %>
|
||||
<div class="column">
|
||||
<strong>Child Cemeteries</strong><br />
|
||||
<ul>
|
||||
<% for (const childCemetery of cemetery.childCemeteries) { %>
|
||||
<li>
|
||||
<a href="<%= urlPrefix %>/cemeteries/<%= childCemetery.cemeteryId %>">
|
||||
<%= (childCemetery.cemeteryName ?? '') === '' ? "(No Name)" : childCemetery.cemeteryName %>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue