Bhaskara Kishore 2 years ago
commit dc5a34bbbb

@ -1,4 +1,4 @@
const { Tanker, Tankerbooking,Bore,GovtPipeLine } = require('../models/tankers')
const { Tanker, Tankerbooking,Bore,GovtPipeLine,UserSupplierAccounts } = require('../models/tankers')
const { User,Counter, generateBookingId,resetCounter,generateCustomerId } = require('../models/User')
const { Supplier, generateSupplierId, FriendRequest,DeliveryBoy} = require("../models/supplier")
@ -674,3 +674,96 @@ exports.deleteBookingInfo = async (req, reply) => {
throw boom.boomify(err);
}
};
exports.distrubanceStatus = async (req, reply) => {
try {
const bookingid = req.params.bookingid;
const action = req.body.action
const booking = await Tankerbooking.findOne({ bookingid:bookingid });
const distrubance_price = parseInt(booking.distrubance_price .replace(/,/g, ''), 10)
const actual_price = parseInt(booking.actual_price.replace(/,/g, ''), 10)
const amount_due = parseInt(booking.amount_due .replace(/,/g, ''), 10)
const price_variation = actual_price-distrubance_price
if (action === "accept") {
await Tankerbooking.findOneAndUpdate({ bookingid:bookingid }, { $set: { amount_due: actual_price,amount_difference:"0" } });
}
if (action === "reject") {
await Tankerbooking.findOneAndUpdate({ bookingid:bookingid }, { $set: { amount_due: distrubance_price,amount_difference:"0" } });
}
reply.send({ status_code: 200, data: booking});
// return tank;
} catch (err) {
throw boom.boomify(err);
}
};
exports.UserSupplierAccounts = async (req, reply) => {
try {
const customerId = req.params.customerId;
const supplierId = req.body.supplierId
const booking = await Tankerbooking.find({ customerId:customerId,supplierId:supplierId,orderStatus:"delivered"});
const delivered_tankers = booking.length
console.log(delivered_tankers, booking.length)
let amount_due = 0
let amount_advance = 0
let TotalAmountPaid = 0
for (let i = 0; i < booking.length; i++) {
let order = booking[i];
TotalAmountPaid += parseInt(order.amount_paid.replace(/,/g, ''), 10)
amount_due += parseInt(order.amount_due.replace(/,/g, ''), 10)
}
console.log("TotalAmountPaid:", TotalAmountPaid);
console.log("amount_due:", amount_due);
const user_accounts = await UserSupplierAccounts.findOne({ customerId:customerId,supplierId:supplierId });
if (user_accounts) {
await UserSupplierAccounts.findOneAndUpdate({ customerId:customerId,supplierId:supplierId }, { $set: { amount_due: amount_due,amount_paid:TotalAmountPaid,delivered_tankers:delivered_tankers } });
}
else{
UserSupplierData = {
customerId:customerId,
supplierId: supplierId,
amount_due: amount_due,
amount_paid: TotalAmountPaid,
amount_advance: amount_advance,
delivered_tankers:delivered_tankers
};
var user_supplier_accounts = new UserSupplierAccounts(UserSupplierData);
checkFormEncoding = isUserFormUrlEncoded(req);
if (checkFormEncoding.isUserFormUrlEncoded) {
user_supplier_accounts.customerId = customerId
user_supplier_accounts.supplierId = supplierId;
user_supplier_accounts.amount_due = amount_due;
user_supplier_accounts.amount_paid = TotalAmountPaid;
user_supplier_accounts.amount_advance = amount_advance;
user_supplier_accounts.delivered_tankers = delivered_tankers;
}
const inserteduser_supplier_accounts_data = await user_supplier_accounts.save();
}
reply.send({ status_code: 200, count: booking.length, data: booking,TotalAmountPaid:TotalAmountPaid,amount_due:amount_due });
} catch (err) {
throw boom.boomify(err);
}
};

@ -44,7 +44,7 @@ const tankersbookingSchema = new mongoose.Schema({
typeofwater: { type: String, default: null },
capacity: { type: String, default: null },
address: { type: String, default: null },
price: { type: String, default: "750" },
actual_price: { type: String, default: "750" },
payment_status : { type: String, default: "due" },
orderStatus: { type: String, default: "pending" },
delivery_agent : { type: String, default: "null" },
@ -57,6 +57,8 @@ const tankersbookingSchema = new mongoose.Schema({
quantityDelivered: { type: String, default: null},
amount_paid: { type: String, default: null },
amount_due: { type: String, default: null },
distrubance_price: { type: String, default: "none" },
amount_difference: { type: String, default: "none" },
payment_mode: { type: String, default: null },
remarks : { type: String, default: null },
customerPhone : { type: String, default: null },
@ -90,6 +92,15 @@ const GovtPipeLineSchema = new mongoose.Schema({
});
const UserSupplierAccountsSchema = new mongoose.Schema({
customerId: { type: String, default: null },
supplierId: { type: String, default: null },
amount_due: { type: String, default: null },
amount_paid:{ type: String, default: null },
amount_advance: { type: String, default: null },
delivered_tankers: { type: String, default: null },
});
@ -97,9 +108,11 @@ const Tanker = mongoose.model("Tanker", tankersSchema);
const Tankerbooking = mongoose.model("Tankerbooking", tankersbookingSchema);
const Bore = mongoose.model("Bore", boreSchema);
const GovtPipeLine = mongoose.model("GovtPipeLine", GovtPipeLineSchema);
const UserSupplierAccounts = mongoose.model("UserSupplierAccounts", UserSupplierAccountsSchema);
// Exporting our model objects
module.exports = {
Tanker, Tankerbooking,Bore,GovtPipeLine
Tanker, Tankerbooking,Bore,GovtPipeLine,UserSupplierAccounts
}

@ -731,6 +731,78 @@ module.exports = function (fastify, opts, next) {
handler: tankersController.deleteBookingInfo,
});
fastify.route({
method: "PUT",
url: "/api/distrubanceStatus/:bookingid",
schema: {
tags: ["Tanker-Data"],
summary: "This is for disrtubance status",
params: {
required: ["bookingid"],
type: "object",
properties: {
bookingid: {
type: "string",
description: "bookingid",
},
},
},
body: {
type: "object",
// required: ['phone'],
properties: {
action: { type: "string" },
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: tankersController.distrubanceStatus,
});
fastify.route({
method: "PUT",
url: "/api/UserSupplierAccounts/:customerId",
schema: {
tags: ["Tanker-Data"],
summary: "This is for user and supplier accounts",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
body: {
type: "object",
// required: ['phone'],
properties: {
supplierId: { type: "string" },
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: tankersController.UserSupplierAccounts,
});
next();
}

Loading…
Cancel
Save