diff --git a/src/controllers/supplierOrderController.js b/src/controllers/supplierOrderController.js index 18401651..71225bb8 100644 --- a/src/controllers/supplierOrderController.js +++ b/src/controllers/supplierOrderController.js @@ -432,3 +432,46 @@ exports.supplierAccounts = async (req, reply) => { } }; + + +exports.tankerAccounts = async (req, reply) => { + try { + + const booking = await Tankerbooking.find({supplierId: req.params.supplierId,customerId:req.body.customerId,tankerName:req.body.tankerName}) + //console.log(booking) + + let acceptedCount = 0; + let pendingRejectedCount = 0; + let deliveredCount = 0; + let deliveredTotalPrice = 0; + let deliveredTotalAmountPaid = 0; + let deliveredTotalAmountDue = 0; + + for (let i = 0; i < booking.length; i++) { + let order = booking[i]; + if (order.orderStatus === "accepted") { + acceptedCount++; + } else if (order.orderStatus === "pending" || order.orderStatus === "rejected") { + pendingRejectedCount++; + } else if (order.orderStatus === "delivered") { + deliveredCount++; + deliveredTotalPrice += parseInt(order.price.replace(/,/g, ''), 10) + deliveredTotalAmountPaid += parseInt(order.amount_paid.replace(/,/g, ''), 10) + deliveredTotalAmountDue += parseInt(order.amount_due.replace(/,/g, ''), 10) + } + } + + console.log("Accepted orders count:", acceptedCount); + console.log("Pending or rejected orders count:", pendingRejectedCount); + console.log("Delivered orders count:", deliveredCount); + console.log("Delivered orders total price:", deliveredTotalPrice); + console.log("Delivered orders total amount paid:", deliveredTotalAmountPaid); + console.log("Delivered orders total amount due:", deliveredTotalAmountDue); + + + reply.send({ status_code: 200, count: booking.length, data: booking,acceptedCount:acceptedCount,pendingRejectedCount:pendingRejectedCount,deliveredCount:deliveredCount,deliveredTotalPrice:deliveredTotalPrice,deliveredTotalAmountPaid:deliveredTotalAmountPaid,deliveredTotalAmountDue:deliveredTotalAmountDue }); + } catch (err) { + throw boom.boomify(err); + } +}; + diff --git a/src/routes/supplierOrdersRoutes.js b/src/routes/supplierOrdersRoutes.js index 38bafb0c..e5b7f645 100644 --- a/src/routes/supplierOrdersRoutes.js +++ b/src/routes/supplierOrdersRoutes.js @@ -350,6 +350,47 @@ module.exports = function (fastify, opts, next) { }); + fastify.route({ + method: "PUT", + url: "/api/tankerAccounts/:supplierId", + schema: { + tags: ["Supplier"], + summary: "This is for tanker accounts", + params: { + required: ["supplierId"], + type: "object", + properties: { + supplierId: { + type: "string", + description: "supplierId", + }, + }, + }, + body: { + type: "object", + // required: ['phone'], + properties: { + + customerId: { type: "string" }, + tankerName: { type: "string" }, + + }, + }, + security: [ + { + basicAuth: [], + }, + ], + }, + // preHandler: [ + // fastify.auth([fastify.operatorAuthenticate]), + // validationHandler.validatePhoneFormat, + // ], + preHandler: fastify.auth([fastify.authenticate]), + handler: supplierOrderController.tankerAccounts, + }); + + next(); }