From a428e80afd49b14d84a73ed8b4fb4379cd0eea62 Mon Sep 17 00:00:00 2001 From: varun Date: Tue, 18 Apr 2023 05:52:16 -0400 Subject: [PATCH] added tanker running status to booking table --- src/controllers/supplierOrderController.js | 41 ++++++++++++---------- src/controllers/tanksController.js | 4 +-- src/models/tankers.js | 3 +- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/controllers/supplierOrderController.js b/src/controllers/supplierOrderController.js index 17717fde..c2cec06d 100644 --- a/src/controllers/supplierOrderController.js +++ b/src/controllers/supplierOrderController.js @@ -193,7 +193,7 @@ exports.getactivedeliveryboysofsupplier = async (req, reply) => { }; -const intervals = {}; + exports.deliveryboystartandstop = async (req, reply) => { try { @@ -212,34 +212,36 @@ exports.deliveryboystartandstop = async (req, reply) => { // console.log(receiver_tank_info,"1") const receiver_capacity = parseInt((receiver_tank_info.capacity).replace(/,/g, ''), 10) - // console.log(receiver_capacity,"2") + //console.log(bookingdata,customerId,receiver_tank,receiver_tank_info,receiver_capacity,"2") - + const intervals = {}; if(action === "start"){ // console.log("started") - start_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) - const initial_receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) + const start_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) + const initial_receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) - await Tankerbooking.findOneAndUpdate({bookingid:bookingId}, { $set: { initial_water_level: initial_receiver_waterlevel ,start_time:start_time} }); + await Tankerbooking.findOneAndUpdate({bookingid:bookingId}, { $set: { initial_water_level: initial_receiver_waterlevel ,start_time:start_time,tankerRunningStatus:"1"} }); let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) // console.log(receiver_waterlevel,"1") - const intervalId = setInterval(async function () { + intervals[bookingId]= setInterval(async function () { // Calculate new water levels const newWaterLevel = receiver_waterlevel+450; + const booking_data = await Tankerbooking.findOne({bookingid:bookingId}) + const tankerStatus = booking_data.tankerRunningStatus //console.log(newWaterLevel,"2",receiver_tank_info.tankName) // Check if updating should stop - if ((newWaterLevel/receiver_capacity)*100 >= 97 ) { - + if ((newWaterLevel/receiver_capacity)*100 >= 97, tankerStatus ==="0" ) { + clearInterval(intervals[bookingId]); // Clear the interval for this tank + delete intervals[bookingId]; + await Tankerbooking.findOneAndUpdate({bookingid:bookingId}, { $set: { initial_water_level: initial_receiver_waterlevel ,start_time:start_time,tankerRunningStatus:"0"} }); + - clearInterval(intervals[receiver_tank]); // Clear the interval for this tank - - delete intervals[receiver_tank]; stop_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) const final_tank_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:"sump"}); @@ -258,7 +260,7 @@ exports.deliveryboystartandstop = async (req, reply) => { // console.log(intervals,"check1") } }, 2000); - intervals[receiver_tank] = intervalId; + @@ -266,7 +268,7 @@ exports.deliveryboystartandstop = async (req, reply) => { // console.log(customerId,req.body.from,req.body.from_type,receiver_tank,req.body.to_type,) - reply.send({ status_code: 200, "start time": start_time,}); + reply.send({ status_code: 200, "start time": start_time,"initial water level":initial_receiver_waterlevel}); console.log(start_time) @@ -274,15 +276,16 @@ exports.deliveryboystartandstop = async (req, reply) => { } if (action === "stop") { + const booking_data = await Tankerbooking.findOne({bookingid: bookingId}) console.log(intervals,"hii3") try { - clearInterval(intervals[receiver_tank]); // Clear the interval for this tank - delete intervals[receiver_tank]; // Delete the interval ID for this tank from the intervals object + clearInterval(intervals[bookingId]); // Clear the interval for this tank + delete intervals[bookingId]; // Delete the interval ID for this tank from the intervals object } catch (err) { console.log(err); } - stop_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) + const stop_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) const final_tank_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:"sump"}); // console.log(final_tank_info,"hii") const final_receiver_waterlevel = parseInt(final_tank_info.waterlevel.replace(/,/g, ''), 10) @@ -290,8 +293,8 @@ exports.deliveryboystartandstop = async (req, reply) => { const start_water_level = parseInt(booking_data.initial_water_level.replace(/,/g, ''), 10) const quantity_delivered = final_receiver_waterlevel-start_water_level - await Tankerbooking.findOneAndUpdate({bookingid:bookingId}, { $set: { final_water_level: final_receiver_waterlevel ,stop_time:stop_time,quantityDelivered:quantity_delivered} }); - reply.send({ status_code: 200, "stop time": stop_time}); + await Tankerbooking.findOneAndUpdate({bookingid:bookingId}, { $set: { final_water_level: final_receiver_waterlevel ,stop_time:stop_time,quantityDelivered:quantity_delivered,tankerRunningStatus:"0"} }); + reply.send({ status_code: 200, "stop time": stop_time,"final water level":final_receiver_waterlevel}); } else { throw new Error("Invalid action"); } diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index ac54eb01..91fb7be9 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -227,7 +227,7 @@ exports.motorAction = async (req, reply) => { if(action === "start"){ - start_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) + const start_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) const supplier_tank = req.body.from const supplier_tank_type = (req.body.from_type).toLowerCase() @@ -406,7 +406,7 @@ exports.motorAction = async (req, reply) => { } else if (action === "stop") { - stop_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) + const stop_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) // console.log(stop_time) // clearInterval(intervalId); await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:(req.body.to_type).toLowerCase()}, { $set: { motor_status: "0" } }); diff --git a/src/models/tankers.js b/src/models/tankers.js index 7739fba5..be8e345e 100644 --- a/src/models/tankers.js +++ b/src/models/tankers.js @@ -62,7 +62,8 @@ const tankersbookingSchema = new mongoose.Schema({ supplierPhone : { type: String, default: null }, customerName : { type: String, default: null }, supplierName : { type: String, default: null }, - + tankerRunningStatus: { type: String, default: null }, + }); const boreSchema = new mongoose.Schema({