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