fix: fixed createWarehouseSchema API

This commit is contained in:
Sathishkumar Krishnan
2021-12-31 13:36:37 +05:30
parent ab925e236b
commit 5d9f2f7af2

View File

@@ -60,7 +60,7 @@ const createAreas = async (areas, zone) => {
await areaObj.save();
if (area.rows) {
areaObj.rows = await createRows(zone.areas, area);
areaObj.rows = await createRows(area.rows, areaObj);
}
areasArr.push(areaObj);
}
@@ -80,7 +80,7 @@ const createRows = async (rows, area) => {
await rowObj.save();
if (row.bays) {
rowObj.bays = await createBays(row.bays, row);
rowObj.bays = await createBays(row.bays, rowObj);
}
rowsArr.push(rowObj);
}
@@ -101,7 +101,7 @@ const createBays = async (bays, row) => {
await bayObj.save();
if (bay.levels) {
bayObj.levels = await createLevels(bay.levels, bay);
bayObj.levels = await createLevels(bay.levels, bayObj);
}
baysArr.push(bayObj);
}
@@ -120,8 +120,8 @@ const createLevels = async (levels, bay) => {
});
await levelObj.save();
if (level.levels) {
levelObj.subLevels = await createSublevels(level.subLevels, level);
if (level.subLevels) {
levelObj.sub_levels = await createSublevels(level.subLevels, levelObj);
}
levelsArr.push(levelObj);
}
@@ -129,7 +129,7 @@ const createLevels = async (levels, bay) => {
};
const createSublevels = async (subLevels, level, parent = undefined, depth = 0) => {
const subLevelsArr = [];
const sub_levels_list = [];
for (const subLevel of subLevels) {
const subLevelObj = await Sublevel.create({
name: subLevel.name,
@@ -137,28 +137,30 @@ const createSublevels = async (subLevels, level, parent = undefined, depth = 0)
specs: subLevel.specs,
main_level_id: level._id,
current_depth: depth,
parent_subLevel_id: parent ? parent._id : undefined,
parent_sublevel_id: parent ? parent._id : undefined,
has_inventory: subLevel.has_inventory,
inventory: subLevel.inventory,
preferred_inventory: subLevel.preferred_inventory,
});
const sub_levels = {
positions: subLevel.positions,
type: subLevel.type,
sub_level_id: subLevelObj._id,
};
sub_levels_list.push(sub_levels);
if (depth > 0 && parent) {
parent.sub_levels = parent.sub_levels.concat(sub_levels);
await parent.save();
}
if (subLevel.sub_levels) {
const subSubLevels = await createSublevels(subLevel.sub_levels, level, subLevelObj, depth + 1);
subLevelObj.sub_levels = subSubLevels.map((_) => {
return {
type: _.type,
depth: _.depth,
sub_level_id: _._id,
};
});
subLevelObj.sub_levels = await createSublevels(subLevel.sub_levels, level, subLevelObj, depth + 1);
await subLevelObj.save();
}
subLevelsArr.push(subLevelObj);
}
return subLevelsArr;
return sub_levels_list;
};
const createInventory = async ({ name, type }) => {
@@ -251,7 +253,7 @@ module.exports = {
}
warehouseSchema.warehouse = warehouse;
if (!req.body.warehouse.zones) {
if (req.body.warehouse.zones !== undefined && Array.isArray(req.body.warehouse.zones)) {
const zones = await createZones(req.body.warehouse.zones, warehouse);
if (!zones) {
res.status(400).send({