diff --git a/src/controllers/supplierOrderController.js b/src/controllers/supplierOrderController.js index 8ee5715a..e543a5a9 100644 --- a/src/controllers/supplierOrderController.js +++ b/src/controllers/supplierOrderController.js @@ -368,3 +368,48 @@ exports.userAccounts = async (req, reply) => { } }; + + + + +exports.supplierAccounts = async (req, reply) => { + try { + + const booking = await Tankerbooking.find({supplierId: req.params.supplierId}) + // 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 67b38f4f..38bafb0c 100644 --- a/src/routes/supplierOrdersRoutes.js +++ b/src/routes/supplierOrdersRoutes.js @@ -324,6 +324,33 @@ module.exports = function (fastify, opts, next) { + fastify.get("/api/supplierAccounts/:supplierId", { + schema: { + tags: ["Supplier"], + description: "This is for Get accounts of Supplier", + summary: "This is for to Get accounts of Supplier", + params: { + required: ["supplierId"], + type: "object", + properties: { + supplierId: { + type: "string", + description: "supplierId", + }, + }, + }, + security: [ + { + basicAuth: [], + }, + ], + }, + preHandler: fastify.auth([fastify.authenticate]), + handler: supplierOrderController.supplierAccounts, + }); + + + next(); }