master^2
Bhaskar 3 months ago
parent 996df9bc2e
commit 37884120e2

@ -2035,7 +2035,7 @@ exports.editTankDimensions = async (req, reply) => {
}); });
} }
if (!height || !width || !length || !unit) { if (height === undefined || width === undefined || length === undefined || !unit) {
return reply.code(400).send({ return reply.code(400).send({
success: false, success: false,
message: 'height, width, length and unit are required in body' message: 'height, width, length and unit are required in body'
@ -2061,31 +2061,30 @@ exports.editTankDimensions = async (req, reply) => {
}); });
} }
// Step 1: Convert to feet if input is cm // Step 1: Convert to feet if input is in cm (keep floats)
let heightInFeet, widthInFeet, lengthInFeet; let heightInFeet, widthInFeet, lengthInFeet;
if (unit === 'cm') { if (unit === 'cm') {
heightInFeet = heightNum / 30.48; heightInFeet = Number((heightNum / 30.48).toFixed(2));
widthInFeet = widthNum / 30.48; widthInFeet = Number((widthNum / 30.48).toFixed(2));
lengthInFeet = lengthNum / 30.48; lengthInFeet = Number((lengthNum / 30.48).toFixed(2));
} else { } else {
heightInFeet = heightNum; heightInFeet = Number(heightNum.toFixed(2));
widthInFeet = widthNum; widthInFeet = Number(widthNum.toFixed(2));
lengthInFeet = lengthNum; lengthInFeet = Number(lengthNum.toFixed(2));
} }
// Round to nearest integer
const heightFeetInt = Math.round(heightInFeet);
const widthFeetInt = Math.round(widthInFeet);
const lengthFeetInt = Math.round(lengthInFeet);
// Step 2: Calculate capacity & waterCapacityPerCm (still use float here for precision) // Step 2: Calculate capacity & waterCapacityPerCm (use floats for precision)
const height_m = heightFeetInt * 0.3048; const height_m = heightInFeet * 0.3048;
const width_m = widthFeetInt * 0.3048; const width_m = widthInFeet * 0.3048;
const length_m = lengthFeetInt * 0.3048; const length_m = lengthInFeet * 0.3048;
const capacity = Math.round(length_m * width_m * height_m * 1000); // liters, integer // const capacity = length_m * width_m * height_m * 1000; // in liters
const waterCapacityPerCm = Math.round(length_m * width_m * 0.01 * 1000); // liters per cm, integer // const waterCapacityPerCm = length_m * width_m * 0.01 * 1000; // liters per cm
const capacity = Number((length_m * width_m * height_m * 1000).toFixed(2));
const waterCapacityPerCm = Number((length_m * width_m * 0.01 * 1000).toFixed(2));
// Step 3: Find install record // Step 3: Find install record
const installRecord = await Install.findOne({ const installRecord = await Install.findOne({
@ -2123,7 +2122,7 @@ exports.editTankDimensions = async (req, reply) => {
}); });
} }
// Step 5: Update tank dimensions in feet & calculated fields // Step 5: Update tank dimensions (use floats, convert to string to store)
const updatedTank = await Tank.findOneAndUpdate( const updatedTank = await Tank.findOneAndUpdate(
{ {
customerId, customerId,
@ -2132,12 +2131,13 @@ exports.editTankDimensions = async (req, reply) => {
}, },
{ {
$set: { $set: {
height: heightFeetInt, // save as integer in feet height: heightInFeet,
width: widthFeetInt, width: widthInFeet,
length: lengthFeetInt, length: lengthInFeet,
capacity: capacity.toString(), // save as string capacity: capacity.toString(),
waterCapacityPerCm: waterCapacityPerCm.toString() waterCapacityPerCm: waterCapacityPerCm.toString()
} }
}, },
{ new: true } { new: true }
).lean(); ).lean();
@ -2175,6 +2175,7 @@ exports.editTankDimensions = async (req, reply) => {
exports.updateWorkStatusAndProductStatus = async (req, reply) => { exports.updateWorkStatusAndProductStatus = async (req, reply) => {
try { try {
const { connectedTo, teamMemberId, customerId } = req.params; const { connectedTo, teamMemberId, customerId } = req.params;

Loading…
Cancel
Save