From c11917f8ced2c2e498fc50e7b4546431fa031369 Mon Sep 17 00:00:00 2001 From: varun Date: Wed, 29 Mar 2023 08:19:45 -0400 Subject: [PATCH] made changes in supplier and delivery --- src/controllers/supplierOrderController.js | 81 ------- src/controllers/tankersController.js | 270 ++++----------------- src/routes/supplierOrdersRoutes.js | 52 ++++ 3 files changed, 105 insertions(+), 298 deletions(-) diff --git a/src/controllers/supplierOrderController.js b/src/controllers/supplierOrderController.js index 7ce10e38..2727a6f9 100644 --- a/src/controllers/supplierOrderController.js +++ b/src/controllers/supplierOrderController.js @@ -108,84 +108,6 @@ exports.orderNow = async (req, reply) => { } }; -<<<<<<< HEAD -======= - exports.getactiveDeliveryboys = async (req, reply) => { - try { - await DeliveryBoy.find({supplierId: req.params.supplierId,status:"active"}) - .exec() - .then((docs) => { - reply.send({ status_code: 200, data: docs, count: docs.length }); - }) - .catch((err) => { - console.log(err); - reply.send({ error: err }); - }); - } catch (err) { - throw boom.boomify(err); - } - }; - - -exports.verifyPhone = async (req, reply) => { - console.log("-------------------------------------------------"); - try { - phone = req.body.phone; - phoneVerificationCode = req.body.phoneVerificationCode; - - // check if user exists in the system. If user exists , display message that - // username is not available - console.log( - "this is the phone and verification code", - phone, - phoneVerificationCode - ); - userExists = await Supplier.findOne({ - phone: phone, - phoneVerified: false, - phoneVerificationCode: phoneVerificationCode, - }); - console.log(userExists); - if (userExists) { - // update the phoneVerified flag to true. - const filter = { - phone: phone, - phoneVerificationCode: phoneVerificationCode, - }; - const update = { phoneVerified: true }; - const doc = await Supplier.findOneAndUpdate(filter, update); - updatedUser = await Supplier.findOne({ phone: phone }); - - if (updatedUser.phoneVerified) { - reply.send('{"armintatankdata":{"error":false,"verified": true}}'); - } else { - error = { - armintatankdata: { - error: true, - code: 10005, - message: "10005 - Verification code entered cannot be validated.", - }, - }; - req.body.regError = error; - reply.send(error); - } - } else { - error = { - armintatankdata: { - error: true, - code: 10005, - message: "10005 - Verification code entered cannot be validated.", - }, - }; - - req.body.regError = error; - reply.send(error); - } - } catch (err) { - throw boom.boomify(err); - } -}; ->>>>>>> 60bf11771a70cdf5e9aebea6b1d85864dc4d8918 exports.getbookingsofsupplier = async (req, reply) => { try { @@ -221,7 +143,4 @@ exports.getbookingsofdeliveryboy = async (req, reply) => { throw boom.boomify(err); } }; -<<<<<<< HEAD -======= ->>>>>>> 60bf11771a70cdf5e9aebea6b1d85864dc4d8918 diff --git a/src/controllers/tankersController.js b/src/controllers/tankersController.js index 0919dbb2..21874994 100644 --- a/src/controllers/tankersController.js +++ b/src/controllers/tankersController.js @@ -1,6 +1,5 @@ const { Tanker, Tankerbooking,Bore,GovtPipeLine } = require('../models/tankers') const { User,Counter, generateBookingId,resetCounter,generateCustomerId } = require('../models/User') -const { Tank } = require('../models/tanks') const { FriendRequest } = require('../models/supplier') //const User = require("../models/User"); @@ -19,7 +18,7 @@ exports.addTankers = async (req, reply) => { //const username = req.params.username; -console.log(req.params); + console.log(req.params); const supplierId = req.params.supplierId; //console.log(loginObject.user.username) // const userInfo = await User.findOne({ username: username.toString() }); @@ -194,8 +193,6 @@ exports.tankerBooking = async (req, reply) => { else { bookingsData = { - tankname:req.body.tankname, - tankLocation:req.body.tankLocation, tankerName:tankerName, customerId:customerId, bookingid : bookingId, @@ -203,6 +200,8 @@ exports.tankerBooking = async (req, reply) => { capacity: req.body.capacity, address: req.body.address, dateOfOrder: req.body.dateOfOrder, + price:req.body.price, + supplierId:req.body.supplierId //date: req.body.date, // time: req.body.time, @@ -215,14 +214,14 @@ exports.tankerBooking = async (req, reply) => { usertobeInserted = checkFormEncoding.tankersBookingData; console.log("thsi true url string"); tankersBookingData.customerId = customerId; - tankersBookingData.tankname = usertobeInserted.tankname; - tankersBookingData.tankLocation = usertobeInserted.tankLocation; tankersBookingData.tankerName = tankerName; tankersBookingData.bookingid = bookingId; tankersBookingData.capacity = usertobeInserted.capacity; tankersBookingData.typeofwater = usertobeInserted.typeofwater; tankersBookingData.address = usertobeInserted.address; tankersBookingData.dateOfOrder = usertobeInserted.dateOfOrder; + tankersBookingData.price = usertobeInserted.price; + tankersBookingData.supplierId = usertobeInserted.supplierId; //tankersBookingData.date = usertobeInserted.date; //tankersBookingData.time = usertobeInserted.time; @@ -305,6 +304,54 @@ exports.getTankersBookingdetails = async (req, reply) => { }; +exports.getAllTankersBookingdetails = async (req, reply) => { + const limit = parseInt(req.query.limit) || 100; + const page = parseInt(req.query.page) || 1; + const startindex = (page - 1) * limit; + const supplierId = req.params.supplierId + try { + await Tankerbooking.find( { supplierId:supplierId }) + .limit(limit) + .skip(startindex) + .exec() + .then((docs) => { + reply.send({ status_code: 200, data: docs, count: docs.length }); + }) + .catch((err) => { + console.log(err); + reply.send({ error: err }); + }); + } catch (err) { + throw boom.boomify(err); + } +}; + + + +exports.getAllTankersaccepted = async (req, reply) => { + const limit = parseInt(req.query.limit) || 100; + const page = parseInt(req.query.page) || 1; + const startindex = (page - 1) * limit; + const supplierId = req.params.supplierId + try { + await Tankerbooking.find( { supplierId, orderStatus: ["accepted","rejected"] }) + .limit(limit) + .skip(startindex) + .exec() + .then((docs) => { + reply.send({ status_code: 200, data: docs, count: docs.length }); + }) + .catch((err) => { + console.log(err); + reply.send({ error: err }); + }); + } catch (err) { + throw boom.boomify(err); + } +}; + + + exports.addBores = async (req, reply) => { try { @@ -587,214 +634,3 @@ exports.connectstatus = async (req, reply) => { - -exports.deliveryboystart = async (req, reply) => { - try { - //let start_time,stop_time - const customerId = req.params.customerId; - const tankLocation = req.body.tankLocation; - const action = req.body.action - const receiver_tank = req.body.tankname - const receiver_tank_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:tankLocation.toLowerCase()}); - const receiver_capacity = parseInt((receiver_tank_info.capacity).replace(/,/g, ''), 10) - const desired_water_percentage = parseInt((req.body.percentage).replace(/,/g, ''), 10) - const intervals = {}; - - - if(action === "start"){ - 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() - const receiver_type = (req.body.to_type).toLowerCase() - console.log(supplier_tank) - - - if(supplier_tank_type==="sump" && receiver_type === "overhead"){ - await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "1" } }); - - const supplier_tank_info1 = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); - //console.log(supplier_tank_info1) - //const initial_update = parseInt(supplier_tank_info1.waterlevel.replace(/,/g, ''), 10)-200; - // await Tank.findOneAndUpdate({customerId, tankName: supplier_tank,tankLocation:supplier_tank_type}, { $set: { waterlevel: initial_update } }); - const supplier_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); - - // await changingfrom_tankwaterlevel(customerId,initial_update,supplier_tank_info); - let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) - // console.log(supplier_waterlevel) - let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) - intervals[receiver_tank] = setInterval(async function () { - // Calculate new water levels - const supplier_tank_info2 = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); - const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:receiver_type}); - const newWaterLevel = receiver_waterlevel + 350//Math.floor(supplier_waterlevel * 0.1); - const newSupplierWaterLevel = supplier_waterlevel//Math.floor(supplier_waterlevel * 0.1); - const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) - console.log((newSupplierWaterLevel/supplier_capacity)*100) - // Check if updating should stop - if ((newSupplierWaterLevel/supplier_capacity)*100 <= 5 || (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0") { - clearInterval(intervals[receiver_tank]); // Clear the interval for this tank - delete intervals[receiver_tank]; - await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "0" } }); - - console.log("end for"+receiver_tank); - } else { - // Update water levels in database - //supplier_waterlevel = newSupplierWaterLevel; - receiver_waterlevel = newWaterLevel; - console.log((newSupplierWaterLevel/supplier_capacity)*100) - // console.log((newWaterLevel/receiver_capacity)*100) - console.log(receiver_tank+""+newWaterLevel+""+"bore to sump") - await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { waterlevel: newWaterLevel } }) - if (supplier_tank_info2.motor_status==="0"){ - supplier_waterlevel = parseInt(supplier_tank_info2.waterlevel.replace(/,/g, ''), 10)-350 - console.log(supplier_tank+""+newSupplierWaterLevel+""+"s to oh") - await Tank.findOneAndUpdate({customerId, tankName: supplier_tank,tankLocation:supplier_tank_type}, { $set: { waterlevel: supplier_waterlevel } }) - } - - } - }, 2000); - - } - - - - // if(supplier_tank_type==="sump" && receiver_type === "overhead"){ - // await Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { motor_status: 1 } }); - - // // console.log(rcvr_info.motor_status) - // const supplier_tank_info1 = await Tank.findOne({ customerId ,tankName:supplier_tank}); - // initial_update = parseInt(supplier_tank_info1.capacity.replace(/,/g, ''), 10)/2; - - // await Tank.findOneAndUpdate({customerId, tankName: supplier_tank}, { $set: { waterlevel: initial_update } }); - // const supplier_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank}); - - // let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) - // let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) - // intervalId = setInterval(async function () { - // const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank}); - // const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) - // // Calculate new water levels - // const newWaterLevel = receiver_waterlevel + 200//Math.floor(supplier_waterlevel * 0.1); - // const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel + 350);// Math.floor(supplier_waterlevel * 0.15)); - // // console.log(newWaterLevel) - // // console.log(newSupplierWaterLevel) - // // console.log(rcvr_info.motor_status) - // // console.log(rcvr_info.tankName) - - // // Check if updating should stop - // if ( (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === 0) { - - // clearInterval(intervalId) - // await Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { motor_status: 0 } }); - - // console.log("end"); - // } else { - // // Update water levels in database - // supplier_waterlevel = newSupplierWaterLevel; - // receiver_waterlevel = newWaterLevel; - // // console.log((newSupplierWaterLevel/supplier_capacity)*100) - // // console.log((newWaterLevel/receiver_capacity)*100) - // await Promise.all([ - // Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { waterlevel: newWaterLevel } }), - // Tank.findOneAndUpdate({customerId, tankName: supplier_tank}, { $set: { waterlevel: newSupplierWaterLevel } }) - // ]); - // } - // }, 2000); - - - // } - - if(supplier_tank_type==="bore" && receiver_type === "sump"){ - const receiver_capacity = parseInt(receiver_tank_info.capacity.replace(/,/g, ''), 10) - // console.log(receiver_capacity,"0",receiver_tank_info.tankName) - await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "1" } }); - - let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) - // console.log(receiver_waterlevel,"1") - intervals[receiver_tank] = setInterval(async function () { - // Calculate new water levels - const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:receiver_type}); - //console.log(rcvr_info) - //console.log(rcvr_info.motor_status) - const newWaterLevel = receiver_waterlevel+450; - //console.log(newWaterLevel,"2",receiver_tank_info.tankName) - // Check if updating should stop - if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" ) { - - await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "0" } }); - clearInterval(intervals[receiver_tank]); // Clear the interval for this tank - delete intervals[receiver_tank]; - console.log("end for" + receiver_tank); - } else { - // Update water levels in database - - receiver_waterlevel = newWaterLevel; - console.log(receiver_tank+""+newWaterLevel+""+"bore to sump") - //console.log((newWaterLevel/receiver_capacity)*100,"4",receiver_tank_info.tankName) - await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { waterlevel: newWaterLevel } }) - } - }, 2000); - - } - // console.log(customerId,req.body.from,req.body.from_type,receiver_tank,req.body.to_type,) - motorData = { - - customerId:customerId, - supplierTank : req.body.from, - supplier_type: req.body.from_type, - receiverTank: receiver_tank, - receiver_type: req.body.to_type, - startTime: req.body.startTime, - stopTime: req.body.stopTime, - - - - }; - var motorData = new MotorData(motorData); - - checkFormEncoding = isUserFormUrlEncoded(req); - if (checkFormEncoding.isUserFormUrlEncoded) { - usertobeInserted = checkFormEncoding.motorData; - console.log("thsi true url string"); - motorData.customerId = customerId; - motorData.supplierTank = req.body.from; - motorData.receiverTank = receiver_tank; - motorData.supplier_type = req.body.from_type; - motorData.receiver_type = req.body.to_type; - motorData.startTime = usertobeInserted.startTime; - motorData.stopTime = usertobeInserted.stopTime; - - - } - const motor_data = await motorData.save(); - // reply.send({ status_code: 200, data: motor_data }); - - - - - reply.send({ status_code: 200, "start time": start_time, data: motor_data}); - console.log(start_time) - return motor_data - - - } - - else if (action === "stop") { - 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" } }); - - reply.send({ status_code: 200, "stop time": stop_time}); - } else { - throw new Error("Invalid action"); - } - - return { message: 'Water level updates started' }; - - } catch (err) { - throw new Error(`Failed to start/stop water level updates: ${err.message}`); - - }; -}; diff --git a/src/routes/supplierOrdersRoutes.js b/src/routes/supplierOrdersRoutes.js index 68386971..4e49f0e9 100644 --- a/src/routes/supplierOrdersRoutes.js +++ b/src/routes/supplierOrdersRoutes.js @@ -106,6 +106,58 @@ module.exports = function (fastify, opts, next) { + fastify.get("/api/getsupplierbookings/:supplierId", { + schema: { + tags: ["Supplier"], + description: "This is for Get supplier bookings Data", + summary: "This is for to Get supplier bookings Data", + params: { + required: ["supplierId"], + type: "object", + properties: { + supplierId: { + type: "string", + description: "supplierId", + }, + }, + }, + security: [ + { + basicAuth: [], + }, + ], + }, + preHandler: fastify.auth([fastify.authenticate]), + handler: supplierOrderController.getbookingsofsupplier, + }); + + fastify.get("/api/getdeliveryboybookings/:agent_mobile", { + schema: { + tags: ["Supplier"], + description: "This is for Get delivery bookings Data", + summary: "This is for to Get delivery bookings Data", + params: { + required: ["agent_mobile"], + type: "object", + properties: { + agent_mobile: { + type: "string", + description: "agent_mobile", + }, + }, + }, + security: [ + { + basicAuth: [], + }, + ], + }, + preHandler: fastify.auth([fastify.authenticate]), + handler: supplierOrderController.getbookingsofdeliveryboy, + }); + + + next(); }