filter search by funeral home
parent
df44ab95f7
commit
92056cf6b7
|
|
@ -12,6 +12,7 @@ export interface GetContractsFilters {
|
|||
burialSiteNameSearchType?: '' | 'startsWith' | 'endsWith';
|
||||
burialSiteName?: string;
|
||||
burialSiteTypeId?: number | string;
|
||||
funeralHomeId?: number | string;
|
||||
workOrderId?: number | string;
|
||||
notWorkOrderId?: number | string;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import getContractFees from './getContractFees.js';
|
|||
import getContractInterments from './getContractInterments.js';
|
||||
import getContractTransactions from './getContractTransactions.js';
|
||||
import { acquireConnection } from './pool.js';
|
||||
// eslint-disable-next-line complexity
|
||||
function buildWhereClause(filters) {
|
||||
let sqlWhereClause = ' where o.recordDelete_timeMillis is null';
|
||||
const sqlParameters = [];
|
||||
|
|
@ -50,6 +51,10 @@ function buildWhereClause(filters) {
|
|||
sqlWhereClause += ' and l.burialSiteTypeId = ?';
|
||||
sqlParameters.push(filters.burialSiteTypeId);
|
||||
}
|
||||
if ((filters.funeralHomeId ?? '') !== '') {
|
||||
sqlWhereClause += ' and o.funeralHomeId = ?';
|
||||
sqlParameters.push(filters.funeralHomeId);
|
||||
}
|
||||
if ((filters.workOrderId ?? '') !== '') {
|
||||
sqlWhereClause +=
|
||||
' and o.contractId in (select contractId from WorkOrderContracts where recordDelete_timeMillis is null and workOrderId = ?)';
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ export interface GetContractsFilters {
|
|||
burialSiteNameSearchType?: '' | 'startsWith' | 'endsWith'
|
||||
burialSiteName?: string
|
||||
burialSiteTypeId?: number | string
|
||||
funeralHomeId?: number | string
|
||||
workOrderId?: number | string
|
||||
notWorkOrderId?: number | string
|
||||
}
|
||||
|
|
@ -44,6 +45,7 @@ export interface GetContractsOptions {
|
|||
includeTransactions: boolean
|
||||
}
|
||||
|
||||
// eslint-disable-next-line complexity
|
||||
function buildWhereClause(filters: GetContractsFilters): {
|
||||
sqlWhereClause: string
|
||||
sqlParameters: unknown[]
|
||||
|
|
@ -116,6 +118,11 @@ function buildWhereClause(filters: GetContractsFilters): {
|
|||
sqlParameters.push(filters.burialSiteTypeId)
|
||||
}
|
||||
|
||||
if ((filters.funeralHomeId ?? '') !== '') {
|
||||
sqlWhereClause += ' and o.funeralHomeId = ?'
|
||||
sqlParameters.push(filters.funeralHomeId)
|
||||
}
|
||||
|
||||
if ((filters.workOrderId ?? '') !== '') {
|
||||
sqlWhereClause +=
|
||||
' and o.contractId in (select contractId from WorkOrderContracts where recordDelete_timeMillis is null and workOrderId = ?)'
|
||||
|
|
|
|||
|
|
@ -1,14 +1,17 @@
|
|||
import getCemeteries from '../../database/getCemeteries.js';
|
||||
import getFuneralHomes from '../../database/getFuneralHomes.js';
|
||||
import { getBurialSiteTypes, getContractTypes } from '../../helpers/functions.cache.js';
|
||||
export default async function handler(request, response) {
|
||||
const cemeteries = await getCemeteries();
|
||||
const burialSiteTypes = await getBurialSiteTypes();
|
||||
const contractTypes = await getContractTypes();
|
||||
const funeralHomes = await getFuneralHomes();
|
||||
response.render('contract-search', {
|
||||
headTitle: "Contract Search",
|
||||
cemeteries,
|
||||
burialSiteTypes,
|
||||
contractTypes,
|
||||
funeralHomes,
|
||||
cemeteryId: request.query.cemeteryId
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import type { Request, Response } from 'express'
|
||||
|
||||
import getCemeteries from '../../database/getCemeteries.js'
|
||||
import getFuneralHomes from '../../database/getFuneralHomes.js'
|
||||
import {
|
||||
getBurialSiteTypes,
|
||||
getContractTypes
|
||||
|
|
@ -13,12 +14,14 @@ export default async function handler(
|
|||
const cemeteries = await getCemeteries()
|
||||
const burialSiteTypes = await getBurialSiteTypes()
|
||||
const contractTypes = await getContractTypes()
|
||||
const funeralHomes = await getFuneralHomes()
|
||||
|
||||
response.render('contract-search', {
|
||||
headTitle: "Contract Search",
|
||||
cemeteries,
|
||||
burialSiteTypes,
|
||||
contractTypes,
|
||||
funeralHomes,
|
||||
cemeteryId: request.query.cemeteryId
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,17 +38,6 @@
|
|||
<input id="searchFilter--limit" name="limit" type="hidden" value="100" />
|
||||
<input id="searchFilter--offset" name="offset" type="hidden" value="0" />
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--deceasedName">Deceased Name</label>
|
||||
<div class="control has-icons-left">
|
||||
<input class="input" id="searchFilter--deceasedName" name="deceasedName" accesskey="f" />
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--contractTypeId">Contract Type</label>
|
||||
|
|
@ -67,6 +56,17 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--deceasedName">Recipient / Deceased Name</label>
|
||||
<div class="control has-icons-left">
|
||||
<input class="input" id="searchFilter--deceasedName" name="deceasedName" accesskey="f" />
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--contractTime">Contract Time</label>
|
||||
|
|
@ -108,24 +108,6 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--burialSiteTypeId">Burial Site Type</label>
|
||||
<div class="control has-icons-left">
|
||||
<div class="select is-fullwidth">
|
||||
<select id="searchFilter--burialSiteTypeId" name="burialSiteTypeId">
|
||||
<option value="">(All Burial Site Types)</option>
|
||||
<% for (const burialSiteType of burialSiteTypes) { %>
|
||||
<option value="<%= burialSiteType.burialSiteTypeId %>"><%= burialSiteType.burialSiteType %></option>
|
||||
<% } %>
|
||||
</select>
|
||||
</div>
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<label class="label" for="searchFilter--burialSiteName">Burial Site</label>
|
||||
<div class="field has-addons">
|
||||
<div class="control has-icons-left">
|
||||
|
|
@ -144,6 +126,48 @@
|
|||
<input class="input" id="searchFilter--burialSiteName" name="burialSiteName" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--funeralHomeId">Funeral Home</label>
|
||||
<div class="control has-icons-left">
|
||||
<div class="select is-fullwidth">
|
||||
<select id="searchFilter--funeralHomeId" name="funeralHomeId">
|
||||
<option value="">(All Funeral Homes)</option>
|
||||
<% for (const funeralHome of funeralHomes) { %>
|
||||
<option value="<%= funeralHome.funeralHomeId %>"><%= funeralHome.funeralHomeName %></option>
|
||||
<% } %>
|
||||
</select>
|
||||
</div>
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="field">
|
||||
<label class="label" for="searchFilter--burialSiteTypeId">Burial Site Type</label>
|
||||
<div class="control has-icons-left">
|
||||
<div class="select is-fullwidth">
|
||||
<select id="searchFilter--burialSiteTypeId" name="burialSiteTypeId">
|
||||
<option value="">(All Burial Site Types)</option>
|
||||
<% for (const burialSiteType of burialSiteTypes) { %>
|
||||
<option value="<%= burialSiteType.burialSiteTypeId %>"><%= burialSiteType.burialSiteType %></option>
|
||||
<% } %>
|
||||
</select>
|
||||
</div>
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue