reduce complexity
parent
dacaa3feb3
commit
47387ac479
|
|
@ -2,11 +2,7 @@ import sqlite from "better-sqlite3";
|
|||
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
||||
import { dateToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
|
||||
import * as configFunctions from "../functions.config.js";
|
||||
export const getLots = (filters, options, connectedDatabase) => {
|
||||
const database = connectedDatabase ||
|
||||
sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
const buildWhereClause = (filters) => {
|
||||
let sqlWhereClause = " where l.recordDelete_timeMillis is null";
|
||||
const sqlParameters = [];
|
||||
if (filters.lotName) {
|
||||
|
|
@ -51,8 +47,19 @@ export const getLots = (filters, options, connectedDatabase) => {
|
|||
" and l.lotId in (select lotId from WorkOrderLots where recordDelete_timeMillis is null and workOrderId = ?)";
|
||||
sqlParameters.push(filters.workOrderId);
|
||||
}
|
||||
return {
|
||||
sqlWhereClause,
|
||||
sqlParameters
|
||||
};
|
||||
};
|
||||
export const getLots = (filters, options, connectedDatabase) => {
|
||||
const database = connectedDatabase ||
|
||||
sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
|
||||
const currentDate = dateToInteger(new Date());
|
||||
let count;
|
||||
let count = 0;
|
||||
if (options.limit !== -1) {
|
||||
count = database
|
||||
.prepare("select count(*) as recordCount" +
|
||||
|
|
|
|||
|
|
@ -23,22 +23,9 @@ interface GetLotsOptions {
|
|||
offset: number;
|
||||
}
|
||||
|
||||
export const getLots = (
|
||||
filters: GetLotsFilters,
|
||||
options: GetLotsOptions,
|
||||
connectedDatabase?: sqlite.Database
|
||||
): {
|
||||
count: number;
|
||||
lots: recordTypes.Lot[];
|
||||
} => {
|
||||
const database =
|
||||
connectedDatabase ||
|
||||
sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
|
||||
const buildWhereClause = (filters: GetLotsFilters): { sqlWhereClause: string; sqlParameters: unknown[];} => {
|
||||
let sqlWhereClause = " where l.recordDelete_timeMillis is null";
|
||||
const sqlParameters = [];
|
||||
const sqlParameters: unknown[] = [];
|
||||
|
||||
if (filters.lotName) {
|
||||
if (filters.lotNameSearchType === "startsWith") {
|
||||
|
|
@ -86,9 +73,31 @@ export const getLots = (
|
|||
sqlParameters.push(filters.workOrderId);
|
||||
}
|
||||
|
||||
return {
|
||||
sqlWhereClause,
|
||||
sqlParameters
|
||||
};
|
||||
};
|
||||
|
||||
export const getLots = (
|
||||
filters: GetLotsFilters,
|
||||
options: GetLotsOptions,
|
||||
connectedDatabase?: sqlite.Database
|
||||
): {
|
||||
count: number;
|
||||
lots: recordTypes.Lot[];
|
||||
} => {
|
||||
const database =
|
||||
connectedDatabase ||
|
||||
sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
|
||||
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
|
||||
|
||||
const currentDate = dateToInteger(new Date());
|
||||
|
||||
let count: number;
|
||||
let count = 0;
|
||||
|
||||
if (options.limit !== -1) {
|
||||
count = database
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ interface GetWorkOrdersOptions {
|
|||
includeComments?: boolean;
|
||||
includeMilestones?: boolean;
|
||||
}
|
||||
export declare const getWorkOrders: (filters?: GetWorkOrdersFilters, options?: GetWorkOrdersOptions) => {
|
||||
export declare const getWorkOrders: (filters: GetWorkOrdersFilters, options?: GetWorkOrdersOptions) => {
|
||||
count: number;
|
||||
workOrders: recordTypes.WorkOrder[];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,11 +5,7 @@ import { getWorkOrderComments } from "./getWorkOrderComments.js";
|
|||
import { getLots } from "./getLots.js";
|
||||
import { getLotOccupancies } from "./getLotOccupancies.js";
|
||||
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
|
||||
export const getWorkOrders = (filters, options) => {
|
||||
const database = sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
database.function("userFn_dateIntegerToString", dateIntegerToString);
|
||||
const buildWhereClause = (filters) => {
|
||||
let sqlWhereClause = " where w.recordDelete_timeMillis is null";
|
||||
const sqlParameters = [];
|
||||
if (filters.workOrderTypeId) {
|
||||
|
|
@ -46,8 +42,19 @@ export const getWorkOrders = (filters, options) => {
|
|||
sqlParameters.push(lotNamePiece);
|
||||
}
|
||||
}
|
||||
return {
|
||||
sqlWhereClause,
|
||||
sqlParameters
|
||||
};
|
||||
};
|
||||
export const getWorkOrders = (filters, options) => {
|
||||
const database = sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
database.function("userFn_dateIntegerToString", dateIntegerToString);
|
||||
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
|
||||
const count = database
|
||||
.prepare("select count(*) as recordCount" + " from WorkOrders w" + sqlWhereClause)
|
||||
.prepare("select count(*) as recordCount from WorkOrders w" + sqlWhereClause)
|
||||
.get(sqlParameters).recordCount;
|
||||
let workOrders = [];
|
||||
if (count > 0) {
|
||||
|
|
@ -72,9 +79,10 @@ export const getWorkOrders = (filters, options) => {
|
|||
(options ? " limit " + options.limit + " offset " + options.offset : ""))
|
||||
.all(sqlParameters);
|
||||
}
|
||||
if (options.includeComments ||
|
||||
if (options &&
|
||||
(options.includeComments ||
|
||||
options.includeLotsAndLotOccupancies ||
|
||||
options.includeMilestones) {
|
||||
options.includeMilestones)) {
|
||||
for (const workOrder of workOrders) {
|
||||
if (options.includeComments) {
|
||||
workOrder.workOrderComments = getWorkOrderComments(workOrder.workOrderId, database);
|
||||
|
|
|
|||
|
|
@ -30,21 +30,11 @@ interface GetWorkOrdersOptions {
|
|||
includeMilestones?: boolean;
|
||||
}
|
||||
|
||||
export const getWorkOrders = (
|
||||
filters?: GetWorkOrdersFilters,
|
||||
options?: GetWorkOrdersOptions
|
||||
): {
|
||||
count: number;
|
||||
workOrders: recordTypes.WorkOrder[];
|
||||
} => {
|
||||
const database = sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
|
||||
database.function("userFn_dateIntegerToString", dateIntegerToString);
|
||||
|
||||
const buildWhereClause = (
|
||||
filters: GetWorkOrdersFilters
|
||||
): { sqlWhereClause: string; sqlParameters: unknown[] } => {
|
||||
let sqlWhereClause = " where w.recordDelete_timeMillis is null";
|
||||
const sqlParameters = [];
|
||||
const sqlParameters: unknown[] = [];
|
||||
|
||||
if (filters.workOrderTypeId) {
|
||||
sqlWhereClause += " and w.workOrderTypeId = ?";
|
||||
|
|
@ -84,8 +74,29 @@ export const getWorkOrders = (
|
|||
}
|
||||
}
|
||||
|
||||
return {
|
||||
sqlWhereClause,
|
||||
sqlParameters
|
||||
};
|
||||
};
|
||||
|
||||
export const getWorkOrders = (
|
||||
filters: GetWorkOrdersFilters,
|
||||
options?: GetWorkOrdersOptions
|
||||
): {
|
||||
count: number;
|
||||
workOrders: recordTypes.WorkOrder[];
|
||||
} => {
|
||||
const database = sqlite(databasePath, {
|
||||
readonly: true
|
||||
});
|
||||
|
||||
database.function("userFn_dateIntegerToString", dateIntegerToString);
|
||||
|
||||
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
|
||||
|
||||
const count: number = database
|
||||
.prepare("select count(*) as recordCount" + " from WorkOrders w" + sqlWhereClause)
|
||||
.prepare("select count(*) as recordCount from WorkOrders w" + sqlWhereClause)
|
||||
.get(sqlParameters).recordCount;
|
||||
|
||||
let workOrders: recordTypes.WorkOrder[] = [];
|
||||
|
|
@ -116,13 +127,14 @@ export const getWorkOrders = (
|
|||
}
|
||||
|
||||
if (
|
||||
options.includeComments ||
|
||||
options &&
|
||||
(options.includeComments ||
|
||||
options.includeLotsAndLotOccupancies ||
|
||||
options.includeMilestones
|
||||
options.includeMilestones)
|
||||
) {
|
||||
for (const workOrder of workOrders) {
|
||||
if (options.includeComments) {
|
||||
workOrder.workOrderComments = getWorkOrderComments(workOrder.workOrderId, database);
|
||||
workOrder.workOrderComments = getWorkOrderComments(workOrder.workOrderId as number, database);
|
||||
}
|
||||
|
||||
if (options.includeLotsAndLotOccupancies) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue