reduce duplicate filters
parent
d6229dd5de
commit
586450d6f8
|
|
@ -5,6 +5,7 @@ import { getWorkOrderComments } from "./getWorkOrderComments.js";
|
||||||
import { getLots } from "./getLots.js";
|
import { getLots } from "./getLots.js";
|
||||||
import { getLotOccupancies } from "./getLotOccupancies.js";
|
import { getLotOccupancies } from "./getLotOccupancies.js";
|
||||||
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
|
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
|
||||||
|
import { getLotNameWhereClause, getOccupantNameWhereClause } from "../functions.sqlFilters.js";
|
||||||
const buildWhereClause = (filters) => {
|
const buildWhereClause = (filters) => {
|
||||||
let sqlWhereClause = " where w.recordDelete_timeMillis is null";
|
let sqlWhereClause = " where w.recordDelete_timeMillis is null";
|
||||||
const sqlParameters = [];
|
const sqlParameters = [];
|
||||||
|
|
@ -24,23 +25,24 @@ const buildWhereClause = (filters) => {
|
||||||
sqlWhereClause += " and w.workOrderOpenDate = ?";
|
sqlWhereClause += " and w.workOrderOpenDate = ?";
|
||||||
sqlParameters.push(dateStringToInteger(filters.workOrderOpenDateString));
|
sqlParameters.push(dateStringToInteger(filters.workOrderOpenDateString));
|
||||||
}
|
}
|
||||||
if (filters.occupantName) {
|
const occupantNameFilters = getOccupantNameWhereClause(filters.occupantName, "o");
|
||||||
const occupantNamePieces = filters.occupantName.toLowerCase().split(" ");
|
if (occupantNameFilters.sqlParameters.length > 0) {
|
||||||
for (const occupantNamePiece of occupantNamePieces) {
|
sqlWhereClause +=
|
||||||
sqlWhereClause +=
|
" and w.workOrderId in (" +
|
||||||
" and w.workOrderId in (" +
|
"select workOrderId from WorkOrderLotOccupancies o" +
|
||||||
"select workOrderId from WorkOrderLotOccupancies where recordDelete_timeMillis is null and lotOccupancyId in (select lotOccupancyId from LotOccupancyOccupants where recordDelete_timeMillis is null and instr(lower(occupantName), ?)))";
|
" where recordDelete_timeMillis is null" +
|
||||||
sqlParameters.push(occupantNamePiece);
|
occupantNameFilters.sqlWhereClause +
|
||||||
}
|
")";
|
||||||
|
sqlParameters.push(...occupantNameFilters.sqlParameters);
|
||||||
}
|
}
|
||||||
if (filters.lotName) {
|
const lotNameFilters = getLotNameWhereClause(filters.lotName, "", "l");
|
||||||
const lotNamePieces = filters.lotName.toLowerCase().split(" ");
|
if (lotNameFilters.sqlParameters.length > 0) {
|
||||||
for (const lotNamePiece of lotNamePieces) {
|
sqlWhereClause +=
|
||||||
sqlWhereClause +=
|
" and w.workOrderId in (" +
|
||||||
" and w.workOrderId in (" +
|
"select workOrderId from WorkOrderLots where recordDelete_timeMillis is null and lotId in (select lotId from Lots l where recordDelete_timeMillis is null" +
|
||||||
"select workOrderId from WorkOrderLots where recordDelete_timeMillis is null and lotId in (select lotId from Lots where recordDelete_timeMillis is null and instr(lower(lotName), ?)))";
|
lotNameFilters.sqlWhereClause +
|
||||||
sqlParameters.push(lotNamePiece);
|
"))";
|
||||||
}
|
sqlParameters.push(...lotNameFilters.sqlParameters);
|
||||||
}
|
}
|
||||||
if (filters.lotOccupancyId) {
|
if (filters.lotOccupancyId) {
|
||||||
sqlWhereClause +=
|
sqlWhereClause +=
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import { getLotOccupancies } from "./getLotOccupancies.js";
|
||||||
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
|
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
|
||||||
|
|
||||||
import type * as recordTypes from "../../types/recordTypes";
|
import type * as recordTypes from "../../types/recordTypes";
|
||||||
|
import { getLotNameWhereClause, getOccupantNameWhereClause } from "../functions.sqlFilters.js";
|
||||||
|
|
||||||
interface GetWorkOrdersFilters {
|
interface GetWorkOrdersFilters {
|
||||||
workOrderTypeId?: number | string;
|
workOrderTypeId?: number | string;
|
||||||
|
|
@ -55,24 +56,25 @@ const buildWhereClause = (
|
||||||
sqlParameters.push(dateStringToInteger(filters.workOrderOpenDateString));
|
sqlParameters.push(dateStringToInteger(filters.workOrderOpenDateString));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filters.occupantName) {
|
const occupantNameFilters = getOccupantNameWhereClause(filters.occupantName, "o");
|
||||||
const occupantNamePieces = filters.occupantName.toLowerCase().split(" ");
|
if (occupantNameFilters.sqlParameters.length > 0) {
|
||||||
for (const occupantNamePiece of occupantNamePieces) {
|
sqlWhereClause +=
|
||||||
sqlWhereClause +=
|
" and w.workOrderId in (" +
|
||||||
" and w.workOrderId in (" +
|
"select workOrderId from WorkOrderLotOccupancies o" +
|
||||||
"select workOrderId from WorkOrderLotOccupancies where recordDelete_timeMillis is null and lotOccupancyId in (select lotOccupancyId from LotOccupancyOccupants where recordDelete_timeMillis is null and instr(lower(occupantName), ?)))";
|
" where recordDelete_timeMillis is null" +
|
||||||
sqlParameters.push(occupantNamePiece);
|
occupantNameFilters.sqlWhereClause +
|
||||||
}
|
")";
|
||||||
|
sqlParameters.push(...occupantNameFilters.sqlParameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filters.lotName) {
|
const lotNameFilters = getLotNameWhereClause(filters.lotName, "", "l");
|
||||||
const lotNamePieces = filters.lotName.toLowerCase().split(" ");
|
if (lotNameFilters.sqlParameters.length > 0) {
|
||||||
for (const lotNamePiece of lotNamePieces) {
|
sqlWhereClause +=
|
||||||
sqlWhereClause +=
|
" and w.workOrderId in (" +
|
||||||
" and w.workOrderId in (" +
|
"select workOrderId from WorkOrderLots where recordDelete_timeMillis is null and lotId in (select lotId from Lots l where recordDelete_timeMillis is null" +
|
||||||
"select workOrderId from WorkOrderLots where recordDelete_timeMillis is null and lotId in (select lotId from Lots where recordDelete_timeMillis is null and instr(lower(lotName), ?)))";
|
lotNameFilters.sqlWhereClause +
|
||||||
sqlParameters.push(lotNamePiece);
|
"))";
|
||||||
}
|
sqlParameters.push(...lotNameFilters.sqlParameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filters.lotOccupancyId) {
|
if (filters.lotOccupancyId) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue