Compare commits
2 Commits
e23ac3f6a3
...
50eacb3974
| Author | SHA1 | Date | |
|---|---|---|---|
| 50eacb3974 | |||
| 710bfc6de6 |
@ -416,6 +416,34 @@ export const listObjects = async ({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchObjects = async ({ model, search, populate = [] }) => {
|
||||||
|
try {
|
||||||
|
const isRefOrIdSearch = search.match(/^.{3}:/);
|
||||||
|
let query = null;
|
||||||
|
if (isRefOrIdSearch) {
|
||||||
|
const lookupValue = search.split(':')[1];
|
||||||
|
if (lookupValue.length <= 12) {
|
||||||
|
query = model.find({ _reference: lookupValue });
|
||||||
|
} else {
|
||||||
|
query = model.find({ _id: lookupValue });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
query = model.find({ $text: { $search: search } });
|
||||||
|
}
|
||||||
|
if (populate) {
|
||||||
|
for (const pop of populate) {
|
||||||
|
query = query.populate(pop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const queryResult = await query.lean();
|
||||||
|
const result = queryResult.map((item) => expandObjectIds(item));
|
||||||
|
return result;
|
||||||
|
} catch (error) {
|
||||||
|
logger.error('Object search error:', error);
|
||||||
|
return { error: error, code: 500 };
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// New function to list unique property values
|
// New function to list unique property values
|
||||||
export const listPropertyValues = async ({ model, property, filter = {}, search = '' }) => {
|
export const listPropertyValues = async ({ model, property, filter = {}, search = '' }) => {
|
||||||
let aggregateCommand = [];
|
let aggregateCommand = [];
|
||||||
|
|||||||
@ -54,6 +54,8 @@ const invoiceSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
invoiceSchema.index({ orderType: 'text', fromType: 'text', toType: 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'draft',
|
name: 'draft',
|
||||||
|
|||||||
@ -24,6 +24,8 @@ const paymentSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
paymentSchema.index({ paymentMethod: 'text', notes: 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'draft',
|
name: 'draft',
|
||||||
|
|||||||
@ -19,6 +19,8 @@ const taxRecordSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
taxRecordSchema.index({ transactionType: 'text' });
|
||||||
|
|
||||||
taxRecordSchema.virtual('id').get(function () {
|
taxRecordSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -49,6 +49,8 @@ const filamentStockSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
filamentStockSchema.index({ 'state.type': 'text' });
|
||||||
|
|
||||||
filamentStockSchema.pre('validate', async function () {
|
filamentStockSchema.pre('validate', async function () {
|
||||||
if (!this.filament && this.filamentSku) {
|
if (!this.filament && this.filamentSku) {
|
||||||
const sku = await mongoose
|
const sku = await mongoose
|
||||||
|
|||||||
@ -69,6 +69,8 @@ const orderItemSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
orderItemSchema.index({ name: 'text', itemType: 'text', orderType: 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'shipped',
|
name: 'shipped',
|
||||||
|
|||||||
@ -43,6 +43,8 @@ const partStockSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
partStockSchema.index({ sourceType: 'text', 'state.type': 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'totalCurrentQuantity',
|
name: 'totalCurrentQuantity',
|
||||||
|
|||||||
@ -49,6 +49,8 @@ const productStockSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
productStockSchema.index({ 'state.type': 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'totalCurrentQuantity',
|
name: 'totalCurrentQuantity',
|
||||||
|
|||||||
@ -25,6 +25,8 @@ const purchaseOrderSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
purchaseOrderSchema.index({ 'state.type': 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'draft',
|
name: 'draft',
|
||||||
|
|||||||
@ -34,6 +34,8 @@ const shipmentSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
shipmentSchema.index({ trackingNumber: 'text', orderType: 'text' });
|
||||||
|
|
||||||
shipmentSchema.statics.recalculate = async function (shipment, user) {
|
shipmentSchema.statics.recalculate = async function (shipment, user) {
|
||||||
if (shipment.orderType !== 'purchaseOrder' && shipment.orderType !== 'salesOrder') {
|
if (shipment.orderType !== 'purchaseOrder' && shipment.orderType !== 'salesOrder') {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -28,6 +28,8 @@ const stockAuditSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
stockAuditSchema.index({ type: 'text', status: 'text', notes: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
stockAuditSchema.virtual('id').get(function () {
|
stockAuditSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -32,6 +32,8 @@ const stockEventSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
stockEventSchema.index({ parentType: 'text', ownerType: 'text', unit: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
stockEventSchema.virtual('id').get(function () {
|
stockEventSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -21,6 +21,8 @@ const stockLocationSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
stockLocationSchema.index({ name: 'text' });
|
||||||
|
|
||||||
stockLocationSchema.statics.stats = async function () {
|
stockLocationSchema.statics.stats = async function () {
|
||||||
const total = await this.countDocuments({});
|
const total = await this.countDocuments({});
|
||||||
return { total: { count: total } };
|
return { total: { count: total } };
|
||||||
|
|||||||
@ -48,6 +48,8 @@ const stockTransferSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
stockTransferSchema.index({ name: 'text' });
|
||||||
|
|
||||||
stockTransferSchema.statics.stats = async function () {
|
stockTransferSchema.statics.stats = async function () {
|
||||||
const [draft, posted] = await Promise.all([
|
const [draft, posted] = await Promise.all([
|
||||||
this.countDocuments({ 'state.type': 'draft' }),
|
this.countDocuments({ 'state.type': 'draft' }),
|
||||||
|
|||||||
@ -13,6 +13,8 @@ const appPasswordSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
appPasswordSchema.index({ name: 'text' });
|
||||||
|
|
||||||
appPasswordSchema.virtual('id').get(function () {
|
appPasswordSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -36,6 +36,8 @@ const auditLogSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
auditLogSchema.index({ operation: 'text', parentType: 'text', ownerType: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
auditLogSchema.virtual('id').get(function () {
|
auditLogSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -14,6 +14,8 @@ const courierSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
courierSchema.index({ name: 'text', website: 'text', email: 'text', phone: 'text', contact: 'text', country: 'text' });
|
||||||
|
|
||||||
courierSchema.virtual('id').get(function () {
|
courierSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -15,6 +15,8 @@ const courierServiceSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
courierServiceSchema.index({ name: 'text', website: 'text' });
|
||||||
|
|
||||||
courierServiceSchema.virtual('id').get(function () {
|
courierServiceSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -39,6 +39,8 @@ const documentJobSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
documentJobSchema.index({ name: 'text', objectType: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
documentJobSchema.virtual('id').get(function () {
|
documentJobSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -38,6 +38,8 @@ const documentPrinterSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
documentPrinterSchema.index({ name: 'text', tags: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
documentPrinterSchema.virtual('id').get(function () {
|
documentPrinterSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -29,6 +29,8 @@ const documentSizeSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
documentSizeSchema.index({ name: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
documentSizeSchema.virtual('id').get(function () {
|
documentSizeSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -52,6 +52,8 @@ const documentTemplateSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
documentTemplateSchema.index({ name: 'text', tags: 'text', objectType: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
documentTemplateSchema.virtual('id').get(function () {
|
documentTemplateSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -18,6 +18,8 @@ const filamentSchema = new mongoose.Schema({
|
|||||||
costWithTax: { type: Number, required: false },
|
costWithTax: { type: Number, required: false },
|
||||||
}, { timestamps: true });
|
}, { timestamps: true });
|
||||||
|
|
||||||
|
filamentSchema.index({ name: 'text', barcode: 'text', url: 'text' });
|
||||||
|
|
||||||
filamentSchema.virtual('id').get(function () {
|
filamentSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -19,6 +19,8 @@ const filamentSkuSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
filamentSkuSchema.index({ name: 'text', barcode: 'text', description: 'text', color: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
filamentSkuSchema.virtual('id').get(function () {
|
filamentSkuSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -13,6 +13,8 @@ const fileSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fileSchema.index({ name: 'text', type: 'text', extension: 'text' });
|
||||||
|
|
||||||
fileSchema.virtual('id').get(function () {
|
fileSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -63,6 +63,8 @@ const hostSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
hostSchema.index({ name: 'text', tags: 'text' });
|
||||||
|
|
||||||
hostSchema.virtual('id').get(function () {
|
hostSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -11,6 +11,8 @@ const materialSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
materialSchema.index({ name: 'text', url: 'text', tags: 'text' });
|
||||||
|
|
||||||
materialSchema.virtual('id').get(function () {
|
materialSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -23,6 +23,8 @@ const noteTypeSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
noteTypeSchema.index({ name: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
noteTypeSchema.virtual('id').get(function () {
|
noteTypeSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -21,6 +21,8 @@ const partSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
partSchema.index({ name: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
partSchema.virtual('id').get(function () {
|
partSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -25,6 +25,8 @@ const partSkuSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
partSkuSchema.index({ name: 'text', barcode: 'text', description: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
partSkuSchema.virtual('id').get(function () {
|
partSkuSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -23,6 +23,9 @@ const productSchema = new Schema(
|
|||||||
},
|
},
|
||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
productSchema.index({ name: 'text', tags: 'text', version: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
productSchema.virtual('id').get(function () {
|
productSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -9,6 +9,8 @@ const productCategorySchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
productCategorySchema.index({ name: 'text' });
|
||||||
|
|
||||||
productCategorySchema.virtual('id').get(function () {
|
productCategorySchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -32,6 +32,8 @@ const productSkuSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
productSkuSchema.index({ name: 'text', barcode: 'text', description: 'text' });
|
||||||
|
|
||||||
// Add virtual id getter
|
// Add virtual id getter
|
||||||
productSkuSchema.virtual('id').get(function () {
|
productSkuSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -16,6 +16,8 @@ const taxRateSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
taxRateSchema.index({ name: 'text', description: 'text', country: 'text' });
|
||||||
|
|
||||||
taxRateSchema.virtual('id').get(function () {
|
taxRateSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -15,6 +15,8 @@ const userSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
userSchema.index({ username: 'text', name: 'text', firstName: 'text', lastName: 'text', email: 'text' });
|
||||||
|
|
||||||
userSchema.virtual('id').get(function () {
|
userSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -26,6 +26,8 @@ const vendorSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
vendorSchema.index({ name: 'text', website: 'text', email: 'text', phone: 'text', contact: 'text', country: 'text' });
|
||||||
|
|
||||||
vendorSchema.virtual('id').get(function () {
|
vendorSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -30,7 +30,7 @@ gcodeFileSchema.pre('validate', async function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
gcodeFileSchema.index({ name: 'text', brand: 'text' });
|
gcodeFileSchema.index({ name: 'text', gcodeFileName: 'text' });
|
||||||
|
|
||||||
gcodeFileSchema.virtual('id').get(function () {
|
gcodeFileSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
|
|||||||
@ -32,6 +32,8 @@ const jobSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
jobSchema.index({ 'state.type': 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'queued',
|
name: 'queued',
|
||||||
|
|||||||
@ -57,6 +57,8 @@ const printerSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
printerSchema.index({ name: 'text', tags: 'text', firmware: 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'standby',
|
name: 'standby',
|
||||||
|
|||||||
@ -43,6 +43,8 @@ const subJobSchema = new mongoose.Schema({
|
|||||||
finishedAt: { required: false, type: Date, default: null },
|
finishedAt: { required: false, type: Date, default: null },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
subJobSchema.index({ moonrakerJobId: 'text', 'state.type': 'text' });
|
||||||
|
|
||||||
subJobSchema.virtual('id').get(function () {
|
subJobSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -26,6 +26,8 @@ const clientSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
clientSchema.index({ name: 'text', email: 'text', phone: 'text', country: 'text', tags: 'text' });
|
||||||
|
|
||||||
clientSchema.virtual('id').get(function () {
|
clientSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -26,6 +26,8 @@ const listingSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
listingSchema.index({ title: 'text', url: 'text' });
|
||||||
|
|
||||||
listingSchema.virtual('id').get(function () {
|
listingSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -25,6 +25,8 @@ const listingVarientSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
listingVarientSchema.index({ currency: 'text', 'state.type': 'text' });
|
||||||
|
|
||||||
listingVarientSchema.virtual('id').get(function () {
|
listingVarientSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -28,6 +28,8 @@ const marketplaceSchema = new mongoose.Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
marketplaceSchema.index({ name: 'text', provider: 'text' });
|
||||||
|
|
||||||
marketplaceSchema.virtual('id').get(function () {
|
marketplaceSchema.virtual('id').get(function () {
|
||||||
return this._id;
|
return this._id;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -30,6 +30,8 @@ const salesOrderSchema = new Schema(
|
|||||||
{ timestamps: true }
|
{ timestamps: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
salesOrderSchema.index({ 'state.type': 'text' });
|
||||||
|
|
||||||
const rollupConfigs = [
|
const rollupConfigs = [
|
||||||
{
|
{
|
||||||
name: 'draft',
|
name: 'draft',
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import {
|
|||||||
acknowledgeInvoiceRouteHandler,
|
acknowledgeInvoiceRouteHandler,
|
||||||
cancelInvoiceRouteHandler,
|
cancelInvoiceRouteHandler,
|
||||||
postInvoiceRouteHandler,
|
postInvoiceRouteHandler,
|
||||||
|
searchInvoicesRouteHandler
|
||||||
} from '../../services/finance/invoices.js';
|
} from '../../services/finance/invoices.js';
|
||||||
|
|
||||||
// list of invoices
|
// list of invoices
|
||||||
@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchInvoicesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newInvoiceRouteHandler(req, res);
|
newInvoiceRouteHandler(req, res);
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import {
|
|||||||
authorisePaymentRouteHandler,
|
authorisePaymentRouteHandler,
|
||||||
declinePaymentRouteHandler,
|
declinePaymentRouteHandler,
|
||||||
cancelPaymentRouteHandler,
|
cancelPaymentRouteHandler,
|
||||||
|
searchPaymentsRouteHandler
|
||||||
} from '../../services/finance/payments.js';
|
} from '../../services/finance/payments.js';
|
||||||
|
|
||||||
// list of payments
|
// list of payments
|
||||||
@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchPaymentsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newPaymentRouteHandler(req, res);
|
newPaymentRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listTaxRecordsByPropertiesRouteHandler,
|
listTaxRecordsByPropertiesRouteHandler,
|
||||||
getTaxRecordStatsRouteHandler,
|
getTaxRecordStatsRouteHandler,
|
||||||
getTaxRecordHistoryRouteHandler,
|
getTaxRecordHistoryRouteHandler,
|
||||||
|
searchTaxRecordsRouteHandler
|
||||||
} from '../../services/finance/taxrecords.js';
|
} from '../../services/finance/taxrecords.js';
|
||||||
|
|
||||||
// list of tax records
|
// list of tax records
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter);
|
listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchTaxRecordsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newTaxRecordRouteHandler(req, res);
|
newTaxRecordRouteHandler(req, res);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
listFilamentStocksByPropertiesRouteHandler,
|
listFilamentStocksByPropertiesRouteHandler,
|
||||||
getFilamentStockStatsRouteHandler,
|
getFilamentStockStatsRouteHandler,
|
||||||
getFilamentStockHistoryRouteHandler,
|
getFilamentStockHistoryRouteHandler,
|
||||||
|
searchFilamentStocksRouteHandler
|
||||||
} from '../../services/inventory/filamentstocks.js';
|
} from '../../services/inventory/filamentstocks.js';
|
||||||
|
|
||||||
// list of filament stocks
|
// list of filament stocks
|
||||||
@ -49,6 +50,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchFilamentStocksRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newFilamentStockRouteHandler(req, res);
|
newFilamentStockRouteHandler(req, res);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
listOrderItemsByPropertiesRouteHandler,
|
listOrderItemsByPropertiesRouteHandler,
|
||||||
getOrderItemStatsRouteHandler,
|
getOrderItemStatsRouteHandler,
|
||||||
getOrderItemHistoryRouteHandler,
|
getOrderItemHistoryRouteHandler,
|
||||||
|
searchOrderItemsRouteHandler
|
||||||
} from '../../services/inventory/orderitems.js';
|
} from '../../services/inventory/orderitems.js';
|
||||||
|
|
||||||
// list of order items
|
// list of order items
|
||||||
@ -53,6 +54,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchOrderItemsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newOrderItemRouteHandler(req, res);
|
newOrderItemRouteHandler(req, res);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
listPartStocksByPropertiesRouteHandler,
|
listPartStocksByPropertiesRouteHandler,
|
||||||
getPartStockStatsRouteHandler,
|
getPartStockStatsRouteHandler,
|
||||||
getPartStockHistoryRouteHandler,
|
getPartStockHistoryRouteHandler,
|
||||||
|
searchPartStocksRouteHandler
|
||||||
} from '../../services/inventory/partstocks.js';
|
} from '../../services/inventory/partstocks.js';
|
||||||
|
|
||||||
// list of part stocks
|
// list of part stocks
|
||||||
@ -41,6 +42,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchPartStocksRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newPartStockRouteHandler(req, res);
|
newPartStockRouteHandler(req, res);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import {
|
|||||||
listProductStocksByPropertiesRouteHandler,
|
listProductStocksByPropertiesRouteHandler,
|
||||||
getProductStockStatsRouteHandler,
|
getProductStockStatsRouteHandler,
|
||||||
getProductStockHistoryRouteHandler,
|
getProductStockHistoryRouteHandler,
|
||||||
|
searchProductStocksRouteHandler
|
||||||
} from '../../services/inventory/productstocks.js';
|
} from '../../services/inventory/productstocks.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -40,6 +41,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchProductStocksRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newProductStockRouteHandler(req, res);
|
newProductStockRouteHandler(req, res);
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import {
|
|||||||
postPurchaseOrderRouteHandler,
|
postPurchaseOrderRouteHandler,
|
||||||
acknowledgePurchaseOrderRouteHandler,
|
acknowledgePurchaseOrderRouteHandler,
|
||||||
cancelPurchaseOrderRouteHandler,
|
cancelPurchaseOrderRouteHandler,
|
||||||
|
searchPurchaseOrdersRouteHandler
|
||||||
} from '../../services/inventory/purchaseorders.js';
|
} from '../../services/inventory/purchaseorders.js';
|
||||||
|
|
||||||
// list of purchase orders
|
// list of purchase orders
|
||||||
@ -58,6 +59,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchPurchaseOrdersRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newPurchaseOrderRouteHandler(req, res);
|
newPurchaseOrderRouteHandler(req, res);
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import {
|
|||||||
shipShipmentRouteHandler,
|
shipShipmentRouteHandler,
|
||||||
receiveShipmentRouteHandler,
|
receiveShipmentRouteHandler,
|
||||||
cancelShipmentRouteHandler,
|
cancelShipmentRouteHandler,
|
||||||
|
searchShipmentsRouteHandler
|
||||||
} from '../../services/inventory/shipments.js';
|
} from '../../services/inventory/shipments.js';
|
||||||
|
|
||||||
// list of shipments
|
// list of shipments
|
||||||
@ -43,6 +44,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchShipmentsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newShipmentRouteHandler(req, res);
|
newShipmentRouteHandler(req, res);
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import {
|
|||||||
deleteStockAuditRouteHandler,
|
deleteStockAuditRouteHandler,
|
||||||
getStockAuditStatsRouteHandler,
|
getStockAuditStatsRouteHandler,
|
||||||
getStockAuditHistoryRouteHandler,
|
getStockAuditHistoryRouteHandler,
|
||||||
|
searchStockAuditsRouteHandler
|
||||||
} from '../../services/inventory/stockaudits.js';
|
} from '../../services/inventory/stockaudits.js';
|
||||||
|
|
||||||
// List stock audits
|
// List stock audits
|
||||||
@ -39,6 +40,11 @@ router.post('/', isAuthenticated, (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// get stock audit stats
|
// get stock audit stats
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchStockAuditsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
router.get('/stats', isAuthenticated, (req, res) => {
|
router.get('/stats', isAuthenticated, (req, res) => {
|
||||||
getStockAuditStatsRouteHandler(req, res);
|
getStockAuditStatsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
listStockEventsByPropertiesRouteHandler,
|
listStockEventsByPropertiesRouteHandler,
|
||||||
getStockEventStatsRouteHandler,
|
getStockEventStatsRouteHandler,
|
||||||
getStockEventHistoryRouteHandler,
|
getStockEventHistoryRouteHandler,
|
||||||
|
searchStockEventsRouteHandler
|
||||||
} from '../../services/inventory/stockevents.js';
|
} from '../../services/inventory/stockevents.js';
|
||||||
|
|
||||||
// list of stock events
|
// list of stock events
|
||||||
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchStockEventsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newStockEventRouteHandler(req, res);
|
newStockEventRouteHandler(req, res);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
listStockLocationsByPropertiesRouteHandler,
|
listStockLocationsByPropertiesRouteHandler,
|
||||||
getStockLocationStatsRouteHandler,
|
getStockLocationStatsRouteHandler,
|
||||||
getStockLocationHistoryRouteHandler,
|
getStockLocationHistoryRouteHandler,
|
||||||
|
searchStockLocationsRouteHandler
|
||||||
} from '../../services/inventory/stocklocations.js';
|
} from '../../services/inventory/stocklocations.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchStockLocationsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newStockLocationRouteHandler(req, res);
|
newStockLocationRouteHandler(req, res);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import {
|
|||||||
listStockTransfersByPropertiesRouteHandler,
|
listStockTransfersByPropertiesRouteHandler,
|
||||||
getStockTransferStatsRouteHandler,
|
getStockTransferStatsRouteHandler,
|
||||||
getStockTransferHistoryRouteHandler,
|
getStockTransferHistoryRouteHandler,
|
||||||
|
searchStockTransfersRouteHandler
|
||||||
} from '../../services/inventory/stocktransfers.js';
|
} from '../../services/inventory/stocktransfers.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchStockTransfersRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newStockTransferRouteHandler(req, res);
|
newStockTransferRouteHandler(req, res);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
getAppPasswordStatsRouteHandler,
|
getAppPasswordStatsRouteHandler,
|
||||||
getAppPasswordHistoryRouteHandler,
|
getAppPasswordHistoryRouteHandler,
|
||||||
regenerateSecretRouteHandler,
|
regenerateSecretRouteHandler,
|
||||||
|
searchAppPasswordsRouteHandler
|
||||||
} from '../../services/management/apppasswords.js';
|
} from '../../services/management/apppasswords.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -29,6 +30,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const masterFilter = req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {};
|
const masterFilter = req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {};
|
||||||
listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchAppPasswordsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newAppPasswordRouteHandler(req, res);
|
newAppPasswordRouteHandler(req, res);
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import {
|
|||||||
getAuditLogRouteHandler,
|
getAuditLogRouteHandler,
|
||||||
getAuditLogStatsRouteHandler,
|
getAuditLogStatsRouteHandler,
|
||||||
getAuditLogHistoryRouteHandler,
|
getAuditLogHistoryRouteHandler,
|
||||||
|
searchAuditLogsRouteHandler
|
||||||
} from '../../services/management/auditlogs.js';
|
} from '../../services/management/auditlogs.js';
|
||||||
import { parseFilter } from '../../utils.js';
|
import { parseFilter } from '../../utils.js';
|
||||||
|
|
||||||
@ -30,6 +31,11 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// get audit log stats
|
// get audit log stats
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchAuditLogsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
router.get('/stats', isAuthenticated, (req, res) => {
|
router.get('/stats', isAuthenticated, (req, res) => {
|
||||||
getAuditLogStatsRouteHandler(req, res);
|
getAuditLogStatsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listCouriersByPropertiesRouteHandler,
|
listCouriersByPropertiesRouteHandler,
|
||||||
getCourierStatsRouteHandler,
|
getCourierStatsRouteHandler,
|
||||||
getCourierHistoryRouteHandler,
|
getCourierHistoryRouteHandler,
|
||||||
|
searchCouriersRouteHandler
|
||||||
} from '../../services/management/courier.js';
|
} from '../../services/management/courier.js';
|
||||||
|
|
||||||
// list of couriers
|
// list of couriers
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listCouriersByPropertiesRouteHandler(req, res, properties, filter);
|
listCouriersByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchCouriersRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newCourierRouteHandler(req, res);
|
newCourierRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listCourierServicesByPropertiesRouteHandler,
|
listCourierServicesByPropertiesRouteHandler,
|
||||||
getCourierServiceStatsRouteHandler,
|
getCourierServiceStatsRouteHandler,
|
||||||
getCourierServiceHistoryRouteHandler,
|
getCourierServiceHistoryRouteHandler,
|
||||||
|
searchCourierServicesRouteHandler
|
||||||
} from '../../services/management/courierservice.js';
|
} from '../../services/management/courierservice.js';
|
||||||
|
|
||||||
// list of courier services
|
// list of courier services
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listCourierServicesByPropertiesRouteHandler(req, res, properties, filter);
|
listCourierServicesByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchCourierServicesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newCourierServiceRouteHandler(req, res);
|
newCourierServiceRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listDocumentJobsByPropertiesRouteHandler,
|
listDocumentJobsByPropertiesRouteHandler,
|
||||||
getDocumentJobStatsRouteHandler,
|
getDocumentJobStatsRouteHandler,
|
||||||
getDocumentJobHistoryRouteHandler,
|
getDocumentJobHistoryRouteHandler,
|
||||||
|
searchDocumentJobsRouteHandler
|
||||||
} from '../../services/management/documentjobs.js';
|
} from '../../services/management/documentjobs.js';
|
||||||
|
|
||||||
// list of document jobs
|
// list of document jobs
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter);
|
listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchDocumentJobsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newDocumentJobRouteHandler(req, res);
|
newDocumentJobRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listDocumentPrintersByPropertiesRouteHandler,
|
listDocumentPrintersByPropertiesRouteHandler,
|
||||||
getDocumentPrinterStatsRouteHandler,
|
getDocumentPrinterStatsRouteHandler,
|
||||||
getDocumentPrinterHistoryRouteHandler,
|
getDocumentPrinterHistoryRouteHandler,
|
||||||
|
searchDocumentPrintersRouteHandler
|
||||||
} from '../../services/management/documentprinters.js';
|
} from '../../services/management/documentprinters.js';
|
||||||
|
|
||||||
// list of document printers
|
// list of document printers
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter);
|
listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchDocumentPrintersRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newDocumentPrinterRouteHandler(req, res);
|
newDocumentPrinterRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listDocumentSizesByPropertiesRouteHandler,
|
listDocumentSizesByPropertiesRouteHandler,
|
||||||
getDocumentSizeStatsRouteHandler,
|
getDocumentSizeStatsRouteHandler,
|
||||||
getDocumentSizeHistoryRouteHandler,
|
getDocumentSizeHistoryRouteHandler,
|
||||||
|
searchDocumentSizesRouteHandler
|
||||||
} from '../../services/management/documentsizes.js';
|
} from '../../services/management/documentsizes.js';
|
||||||
|
|
||||||
// list of document sizes
|
// list of document sizes
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter);
|
listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchDocumentSizesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newDocumentSizeRouteHandler(req, res);
|
newDocumentSizeRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listDocumentTemplatesByPropertiesRouteHandler,
|
listDocumentTemplatesByPropertiesRouteHandler,
|
||||||
getDocumentTemplateStatsRouteHandler,
|
getDocumentTemplateStatsRouteHandler,
|
||||||
getDocumentTemplateHistoryRouteHandler,
|
getDocumentTemplateHistoryRouteHandler,
|
||||||
|
searchDocumentTemplatesRouteHandler
|
||||||
} from '../../services/management/documenttemplates.js';
|
} from '../../services/management/documenttemplates.js';
|
||||||
|
|
||||||
// list of document templates
|
// list of document templates
|
||||||
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchDocumentTemplatesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newDocumentTemplateRouteHandler(req, res);
|
newDocumentTemplateRouteHandler(req, res);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
deleteFilamentRouteHandler,
|
deleteFilamentRouteHandler,
|
||||||
getFilamentStatsRouteHandler,
|
getFilamentStatsRouteHandler,
|
||||||
getFilamentHistoryRouteHandler,
|
getFilamentHistoryRouteHandler,
|
||||||
|
searchFilamentsRouteHandler
|
||||||
} from '../../services/management/filaments.js';
|
} from '../../services/management/filaments.js';
|
||||||
|
|
||||||
// list of filaments
|
// list of filaments
|
||||||
@ -47,6 +48,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listFilamentsByPropertiesRouteHandler(req, res, properties, filter);
|
listFilamentsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchFilamentsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newFilamentRouteHandler(req, res);
|
newFilamentRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listFilamentSkusByPropertiesRouteHandler,
|
listFilamentSkusByPropertiesRouteHandler,
|
||||||
getFilamentSkuStatsRouteHandler,
|
getFilamentSkuStatsRouteHandler,
|
||||||
getFilamentSkuHistoryRouteHandler,
|
getFilamentSkuHistoryRouteHandler,
|
||||||
|
searchFilamentSkusRouteHandler
|
||||||
} from '../../services/management/filamentskus.js';
|
} from '../../services/management/filamentskus.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchFilamentSkusRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newFilamentSkuRouteHandler(req, res);
|
newFilamentSkuRouteHandler(req, res);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import {
|
|||||||
listFilesByPropertiesRouteHandler,
|
listFilesByPropertiesRouteHandler,
|
||||||
getFileStatsRouteHandler,
|
getFileStatsRouteHandler,
|
||||||
getFileHistoryRouteHandler,
|
getFileHistoryRouteHandler,
|
||||||
|
searchFilesRouteHandler
|
||||||
} from '../../services/management/files.js';
|
} from '../../services/management/files.js';
|
||||||
|
|
||||||
// list of files
|
// list of files
|
||||||
@ -30,6 +31,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listFilesByPropertiesRouteHandler(req, res, properties, filter);
|
listFilesByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchFilesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newFileRouteHandler(req, res);
|
newFileRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listHostsByPropertiesRouteHandler,
|
listHostsByPropertiesRouteHandler,
|
||||||
getHostStatsRouteHandler,
|
getHostStatsRouteHandler,
|
||||||
getHostHistoryRouteHandler,
|
getHostHistoryRouteHandler,
|
||||||
|
searchHostsRouteHandler
|
||||||
} from '../../services/management/hosts.js';
|
} from '../../services/management/hosts.js';
|
||||||
|
|
||||||
// list of hosts
|
// list of hosts
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listHostsByPropertiesRouteHandler(req, res, properties, filter);
|
listHostsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchHostsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newHostRouteHandler(req, res);
|
newHostRouteHandler(req, res);
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import {
|
|||||||
newMaterialRouteHandler,
|
newMaterialRouteHandler,
|
||||||
getMaterialStatsRouteHandler,
|
getMaterialStatsRouteHandler,
|
||||||
getMaterialHistoryRouteHandler,
|
getMaterialHistoryRouteHandler,
|
||||||
|
searchMaterialsRouteHandler,
|
||||||
} from '../../services/management/materials.js';
|
} from '../../services/management/materials.js';
|
||||||
|
|
||||||
// list of materials
|
// list of materials
|
||||||
@ -37,6 +38,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
listMaterialsByPropertiesRouteHandler(req, res, properties, filter);
|
listMaterialsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchMaterialsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newMaterialRouteHandler(req, res);
|
newMaterialRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listNoteTypesByPropertiesRouteHandler,
|
listNoteTypesByPropertiesRouteHandler,
|
||||||
getNoteTypeStatsRouteHandler,
|
getNoteTypeStatsRouteHandler,
|
||||||
getNoteTypeHistoryRouteHandler,
|
getNoteTypeHistoryRouteHandler,
|
||||||
|
searchNoteTypesRouteHandler
|
||||||
} from '../../services/management/notetypes.js';
|
} from '../../services/management/notetypes.js';
|
||||||
|
|
||||||
// list of note types
|
// list of note types
|
||||||
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchNoteTypesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newNoteTypeRouteHandler(req, res);
|
newNoteTypeRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listPartsByPropertiesRouteHandler,
|
listPartsByPropertiesRouteHandler,
|
||||||
getPartStatsRouteHandler,
|
getPartStatsRouteHandler,
|
||||||
getPartHistoryRouteHandler,
|
getPartHistoryRouteHandler,
|
||||||
|
searchPartsRouteHandler
|
||||||
} from '../../services/management/parts.js';
|
} from '../../services/management/parts.js';
|
||||||
|
|
||||||
// list of parts
|
// list of parts
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listPartsByPropertiesRouteHandler(req, res, properties, filter);
|
listPartsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchPartsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newPartRouteHandler(req, res);
|
newPartRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listPartSkusByPropertiesRouteHandler,
|
listPartSkusByPropertiesRouteHandler,
|
||||||
getPartSkuStatsRouteHandler,
|
getPartSkuStatsRouteHandler,
|
||||||
getPartSkuHistoryRouteHandler,
|
getPartSkuHistoryRouteHandler,
|
||||||
|
searchPartSkusRouteHandler
|
||||||
} from '../../services/management/partskus.js';
|
} from '../../services/management/partskus.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchPartSkusRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newPartSkuRouteHandler(req, res);
|
newPartSkuRouteHandler(req, res);
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import {
|
|||||||
listProductCategoriesByPropertiesRouteHandler,
|
listProductCategoriesByPropertiesRouteHandler,
|
||||||
listProductCategoriesRouteHandler,
|
listProductCategoriesRouteHandler,
|
||||||
newProductCategoryRouteHandler,
|
newProductCategoryRouteHandler,
|
||||||
|
searchProductCategoriesRouteHandler
|
||||||
} from '../../services/management/productcategories.js';
|
} from '../../services/management/productcategories.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter);
|
listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchProductCategoriesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newProductCategoryRouteHandler(req, res);
|
newProductCategoryRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listProductsByPropertiesRouteHandler,
|
listProductsByPropertiesRouteHandler,
|
||||||
getProductStatsRouteHandler,
|
getProductStatsRouteHandler,
|
||||||
getProductHistoryRouteHandler,
|
getProductHistoryRouteHandler,
|
||||||
|
searchProductsRouteHandler
|
||||||
} from '../../services/management/products.js';
|
} from '../../services/management/products.js';
|
||||||
|
|
||||||
// list of products
|
// list of products
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listProductsByPropertiesRouteHandler(req, res, properties, filter);
|
listProductsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchProductsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newProductRouteHandler(req, res);
|
newProductRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listProductSkusByPropertiesRouteHandler,
|
listProductSkusByPropertiesRouteHandler,
|
||||||
getProductSkuStatsRouteHandler,
|
getProductSkuStatsRouteHandler,
|
||||||
getProductSkuHistoryRouteHandler,
|
getProductSkuHistoryRouteHandler,
|
||||||
|
searchProductSkusRouteHandler
|
||||||
} from '../../services/management/productskus.js';
|
} from '../../services/management/productskus.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchProductSkusRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newProductSkuRouteHandler(req, res);
|
newProductSkuRouteHandler(req, res);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listTaxRatesByPropertiesRouteHandler,
|
listTaxRatesByPropertiesRouteHandler,
|
||||||
getTaxRateStatsRouteHandler,
|
getTaxRateStatsRouteHandler,
|
||||||
getTaxRateHistoryRouteHandler,
|
getTaxRateHistoryRouteHandler,
|
||||||
|
searchTaxRatesRouteHandler
|
||||||
} from '../../services/management/taxrates.js';
|
} from '../../services/management/taxrates.js';
|
||||||
|
|
||||||
// list of tax rates
|
// list of tax rates
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listTaxRatesByPropertiesRouteHandler(req, res, properties, filter);
|
listTaxRatesByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchTaxRatesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newTaxRateRouteHandler(req, res);
|
newTaxRateRouteHandler(req, res);
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import {
|
|||||||
getUserStatsRouteHandler,
|
getUserStatsRouteHandler,
|
||||||
getUserHistoryRouteHandler,
|
getUserHistoryRouteHandler,
|
||||||
setAppPasswordRouteHandler,
|
setAppPasswordRouteHandler,
|
||||||
|
searchUsersRouteHandler
|
||||||
} from '../../services/management/users.js';
|
} from '../../services/management/users.js';
|
||||||
|
|
||||||
// list of document templates
|
// list of document templates
|
||||||
@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchUsersRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// get user stats
|
// get user stats
|
||||||
router.get('/stats', isAuthenticated, (req, res) => {
|
router.get('/stats', isAuthenticated, (req, res) => {
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listVendorsByPropertiesRouteHandler,
|
listVendorsByPropertiesRouteHandler,
|
||||||
getVendorStatsRouteHandler,
|
getVendorStatsRouteHandler,
|
||||||
getVendorHistoryRouteHandler,
|
getVendorHistoryRouteHandler,
|
||||||
|
searchVendorsRouteHandler
|
||||||
} from '../../services/management/vendors.js';
|
} from '../../services/management/vendors.js';
|
||||||
|
|
||||||
// list of vendors
|
// list of vendors
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listVendorsByPropertiesRouteHandler(req, res, properties, filter);
|
listVendorsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchVendorsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newVendorRouteHandler(req, res);
|
newVendorRouteHandler(req, res);
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import {
|
|||||||
listGCodeFilesByPropertiesRouteHandler,
|
listGCodeFilesByPropertiesRouteHandler,
|
||||||
getGCodeFileContentRouteHandler,
|
getGCodeFileContentRouteHandler,
|
||||||
getGCodeFileStatsRouteHandler,
|
getGCodeFileStatsRouteHandler,
|
||||||
|
searchGCodeFilesRouteHandler
|
||||||
} from '../../services/production/gcodefiles.js';
|
} from '../../services/production/gcodefiles.js';
|
||||||
import { convertPropertiesString, getFilter } from '../../utils.js';
|
import { convertPropertiesString, getFilter } from '../../utils.js';
|
||||||
|
|
||||||
@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter);
|
listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchGCodeFilesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// create new gcodeFile
|
// create new gcodeFile
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import {
|
|||||||
deleteJobRouteHandler,
|
deleteJobRouteHandler,
|
||||||
getJobStatsRouteHandler,
|
getJobStatsRouteHandler,
|
||||||
getJobHistoryRouteHandler,
|
getJobHistoryRouteHandler,
|
||||||
|
searchJobsRouteHandler
|
||||||
} from '../../services/production/jobs.js';
|
} from '../../services/production/jobs.js';
|
||||||
import { convertPropertiesString, getFilter } from '../../utils.js';
|
import { convertPropertiesString, getFilter } from '../../utils.js';
|
||||||
|
|
||||||
@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listJobsByPropertiesRouteHandler(req, res, properties, filter);
|
listJobsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchJobsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newJobRouteHandler(req, res);
|
newJobRouteHandler(req, res);
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import {
|
|||||||
getPrinterStatsRouteHandler,
|
getPrinterStatsRouteHandler,
|
||||||
listPrintersByPropertiesRouteHandler,
|
listPrintersByPropertiesRouteHandler,
|
||||||
getPrinterHistoryRouteHandler,
|
getPrinterHistoryRouteHandler,
|
||||||
|
searchPrintersRouteHandler
|
||||||
} from '../../services/production/printers.js';
|
} from '../../services/production/printers.js';
|
||||||
import { convertPropertiesString, getFilter } from '../../utils.js';
|
import { convertPropertiesString, getFilter } from '../../utils.js';
|
||||||
|
|
||||||
@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listPrintersByPropertiesRouteHandler(req, res, properties, filter);
|
listPrintersByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchPrintersRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// create new printer
|
// create new printer
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import {
|
|||||||
getSubJobRouteHandler,
|
getSubJobRouteHandler,
|
||||||
getSubJobStatsRouteHandler,
|
getSubJobStatsRouteHandler,
|
||||||
getSubJobHistoryRouteHandler,
|
getSubJobHistoryRouteHandler,
|
||||||
|
searchSubJobsRouteHandler
|
||||||
} from '../../services/production/subjobs.js';
|
} from '../../services/production/subjobs.js';
|
||||||
import { getFilter, convertPropertiesString } from '../../utils.js';
|
import { getFilter, convertPropertiesString } from '../../utils.js';
|
||||||
|
|
||||||
@ -25,6 +26,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listSubJobsByPropertiesRouteHandler(req, res, properties, filter);
|
listSubJobsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchSubJobsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// get sub job stats
|
// get sub job stats
|
||||||
router.get('/stats', isAuthenticated, (req, res) => {
|
router.get('/stats', isAuthenticated, (req, res) => {
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listClientsByPropertiesRouteHandler,
|
listClientsByPropertiesRouteHandler,
|
||||||
getClientStatsRouteHandler,
|
getClientStatsRouteHandler,
|
||||||
getClientHistoryRouteHandler,
|
getClientHistoryRouteHandler,
|
||||||
|
searchClientsRouteHandler
|
||||||
} from '../../services/sales/clients.js';
|
} from '../../services/sales/clients.js';
|
||||||
|
|
||||||
// list of clients
|
// list of clients
|
||||||
@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listClientsByPropertiesRouteHandler(req, res, properties, filter);
|
listClientsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchClientsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newClientRouteHandler(req, res);
|
newClientRouteHandler(req, res);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import {
|
|||||||
getListingHistoryRouteHandler,
|
getListingHistoryRouteHandler,
|
||||||
publishListingRouteHandler,
|
publishListingRouteHandler,
|
||||||
unpublishListingRouteHandler,
|
unpublishListingRouteHandler,
|
||||||
|
searchListingsRouteHandler
|
||||||
} from '../../services/sales/listings.js';
|
} from '../../services/sales/listings.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -47,6 +48,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listListingsByPropertiesRouteHandler(req, res, properties, filter);
|
listListingsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchListingsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newListingRouteHandler(req, res);
|
newListingRouteHandler(req, res);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import {
|
|||||||
getListingVarientHistoryRouteHandler,
|
getListingVarientHistoryRouteHandler,
|
||||||
publishListingVarientRouteHandler,
|
publishListingVarientRouteHandler,
|
||||||
unpublishListingVarientRouteHandler,
|
unpublishListingVarientRouteHandler,
|
||||||
|
searchListingVarientsRouteHandler
|
||||||
} from '../../services/sales/listingvarients.js';
|
} from '../../services/sales/listingvarients.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -47,6 +48,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listListingVarientsByPropertiesRouteHandler(req, res, properties, filter);
|
listListingVarientsByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchListingVarientsRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newListingVarientRouteHandler(req, res);
|
newListingVarientRouteHandler(req, res);
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import {
|
|||||||
syncMarketplaceItemsRouteHandler,
|
syncMarketplaceItemsRouteHandler,
|
||||||
syncMarketplaceOrdersRouteHandler,
|
syncMarketplaceOrdersRouteHandler,
|
||||||
marketplaceWebhookRouteHandler,
|
marketplaceWebhookRouteHandler,
|
||||||
|
searchMarketplacesRouteHandler
|
||||||
} from '../../services/sales/marketplaces.js';
|
} from '../../services/sales/marketplaces.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, (req, res) => {
|
router.get('/', isAuthenticated, (req, res) => {
|
||||||
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
const filter = getFilter(req.query, allowedFilters, false);
|
const filter = getFilter(req.query, allowedFilters, false);
|
||||||
listMarketplacesByPropertiesRouteHandler(req, res, properties, filter);
|
listMarketplacesByPropertiesRouteHandler(req, res, properties, filter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchMarketplacesRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newMarketplaceRouteHandler(req, res);
|
newMarketplaceRouteHandler(req, res);
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import {
|
|||||||
postSalesOrderRouteHandler,
|
postSalesOrderRouteHandler,
|
||||||
confirmSalesOrderRouteHandler,
|
confirmSalesOrderRouteHandler,
|
||||||
cancelSalesOrderRouteHandler,
|
cancelSalesOrderRouteHandler,
|
||||||
|
searchSalesOrdersRouteHandler
|
||||||
} from '../../services/sales/salesorders.js';
|
} from '../../services/sales/salesorders.js';
|
||||||
|
|
||||||
// list of sales orders
|
// list of sales orders
|
||||||
@ -36,6 +37,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
router.get('/search', isAuthenticated, (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchSalesOrdersRouteHandler(req, res, search);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, (req, res) => {
|
router.post('/', isAuthenticated, (req, res) => {
|
||||||
newSalesOrderRouteHandler(req, res);
|
newSalesOrderRouteHandler(req, res);
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
checkStates,
|
checkStates,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js';
|
import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js';
|
||||||
import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js';
|
import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js';
|
||||||
@ -82,6 +83,14 @@ export const listInvoicesByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchInvoicesRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: invoiceModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getInvoiceRouteHandler = async (req, res) => {
|
export const getInvoiceRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const populateFields = [
|
const populateFields = [
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
checkStates,
|
checkStates,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
import { invoiceModel } from '../../database/schemas/finance/invoice.schema.js';
|
import { invoiceModel } from '../../database/schemas/finance/invoice.schema.js';
|
||||||
|
|
||||||
@ -79,6 +80,14 @@ export const listPaymentsByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchPaymentsRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: paymentModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getPaymentRouteHandler = async (req, res) => {
|
export const getPaymentRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const populateFields = [{ path: 'vendor' }, { path: 'client' }, { path: 'invoice' }];
|
const populateFields = [{ path: 'vendor' }, { path: 'client' }, { path: 'invoice' }];
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import {
|
|||||||
listObjectsByProperties,
|
listObjectsByProperties,
|
||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
const logger = log4js.getLogger('TaxRecords');
|
const logger = log4js.getLogger('TaxRecords');
|
||||||
logger.level = config.server.logLevel;
|
logger.level = config.server.logLevel;
|
||||||
@ -69,6 +70,14 @@ export const listTaxRecordsByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchTaxRecordsRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: taxRecordModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getTaxRecordRouteHandler = async (req, res) => {
|
export const getTaxRecordRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listObjectsByProperties,
|
listObjectsByProperties,
|
||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
const logger = log4js.getLogger('Filament Stocks');
|
const logger = log4js.getLogger('Filament Stocks');
|
||||||
logger.level = config.server.logLevel;
|
logger.level = config.server.logLevel;
|
||||||
@ -78,6 +79,14 @@ export const listFilamentStocksByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchFilamentStocksRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: filamentStockModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getFilamentStockRouteHandler = async (req, res) => {
|
export const getFilamentStockRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
listObjectsByProperties,
|
listObjectsByProperties,
|
||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
const logger = log4js.getLogger('Order Items');
|
const logger = log4js.getLogger('Order Items');
|
||||||
logger.level = config.server.logLevel;
|
logger.level = config.server.logLevel;
|
||||||
@ -123,6 +124,14 @@ export const listOrderItemsByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchOrderItemsRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: orderItemModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getOrderItemRouteHandler = async (req, res) => {
|
export const getOrderItemRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listObjectsByProperties,
|
listObjectsByProperties,
|
||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
const logger = log4js.getLogger('Part Stocks');
|
const logger = log4js.getLogger('Part Stocks');
|
||||||
logger.level = config.server.logLevel;
|
logger.level = config.server.logLevel;
|
||||||
@ -74,6 +75,14 @@ export const listPartStocksByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchPartStocksRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: partStockModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getPartStockRouteHandler = async (req, res) => {
|
export const getPartStockRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
checkStates,
|
checkStates,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
import { productSkuModel } from '../../database/schemas/management/productsku.schema.js';
|
import { productSkuModel } from '../../database/schemas/management/productsku.schema.js';
|
||||||
const logger = log4js.getLogger('Product Stocks');
|
const logger = log4js.getLogger('Product Stocks');
|
||||||
@ -80,6 +81,14 @@ export const listProductStocksByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchProductStocksRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: productStockModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getProductStockRouteHandler = async (req, res) => {
|
export const getProductStockRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
checkStates,
|
checkStates,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js';
|
import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js';
|
||||||
import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js';
|
import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js';
|
||||||
@ -78,6 +79,14 @@ export const listPurchaseOrdersByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchPurchaseOrdersRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: purchaseOrderModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getPurchaseOrderRouteHandler = async (req, res) => {
|
export const getPurchaseOrderRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
checkStates,
|
checkStates,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
const logger = log4js.getLogger('Shipments');
|
const logger = log4js.getLogger('Shipments');
|
||||||
logger.level = config.server.logLevel;
|
logger.level = config.server.logLevel;
|
||||||
@ -76,6 +77,14 @@ export const listShipmentsByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchShipmentsRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: shipmentModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getShipmentRouteHandler = async (req, res) => {
|
export const getShipmentRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
@ -3,7 +3,10 @@ import { stockAuditModel } from '../../database/schemas/inventory/stockaudit.sch
|
|||||||
import log4js from 'log4js';
|
import log4js from 'log4js';
|
||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
import { getAuditLogs } from '../../utils.js';
|
import { getAuditLogs } from '../../utils.js';
|
||||||
import { getModelStats, getModelHistory } from '../../database/database.js';
|
import {
|
||||||
|
getModelStats, getModelHistory,
|
||||||
|
searchObjects
|
||||||
|
} from '../../database/database.js';
|
||||||
|
|
||||||
const logger = log4js.getLogger('Stock Audits');
|
const logger = log4js.getLogger('Stock Audits');
|
||||||
logger.level = config.server.logLevel;
|
logger.level = config.server.logLevel;
|
||||||
@ -58,6 +61,14 @@ export const listStockAuditsRouteHandler = async (
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchStockAuditsRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: stockAuditModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getStockAuditRouteHandler = async (req, res) => {
|
export const getStockAuditRouteHandler = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import {
|
|||||||
listObjectsByProperties,
|
listObjectsByProperties,
|
||||||
getModelStats,
|
getModelStats,
|
||||||
getModelHistory,
|
getModelHistory,
|
||||||
|
searchObjects
|
||||||
} from '../../database/database.js';
|
} from '../../database/database.js';
|
||||||
const logger = log4js.getLogger('Stock Events');
|
const logger = log4js.getLogger('Stock Events');
|
||||||
logger.level = config.server.logLevel;
|
logger.level = config.server.logLevel;
|
||||||
@ -76,6 +77,14 @@ export const listStockEventsByPropertiesRouteHandler = async (
|
|||||||
res.send(result);
|
res.send(result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const searchStockEventsRouteHandler = async (req, res, search) => {
|
||||||
|
const result = await searchObjects({
|
||||||
|
model: stockEventModel,
|
||||||
|
search,
|
||||||
|
});
|
||||||
|
res.send(result);
|
||||||
|
};
|
||||||
|
|
||||||
export const getStockEventRouteHandler = async (req, res) => {
|
export const getStockEventRouteHandler = async (req, res) => {
|
||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
const result = await getObject({
|
const result = await getObject({
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user