This commit is contained in:
Sibunnayak 2024-11-02 12:19:03 +05:30
commit 8222e21770
6 changed files with 151 additions and 14 deletions

4
app.js
View File

@ -140,7 +140,7 @@ import orderRoute from "./resources/Orders/orderRoute.js";
import DepartureRouter from "./resources/Departure/DepartureRoute.js"; import DepartureRouter from "./resources/Departure/DepartureRoute.js";
import InformationRoute from "./resources/Informations/InformationRoute.js"; import InformationRoute from "./resources/Informations/InformationRoute.js";
import Testimonial from "./resources/Testimonials/TestimonialRoute.js"; import Testimonial from "./resources/Testimonials/TestimonialRoute.js";
import Transporter from "./resources/setting/Transporter/transporterRoutes.js";
import StateRouter from "./resources/setting/state/state_routes.js"; import StateRouter from "./resources/setting/state/state_routes.js";
// //
import LanguageRoute from "./resources/setting/Language/language_routes.js"; import LanguageRoute from "./resources/setting/Language/language_routes.js";
@ -299,6 +299,8 @@ app.use("/api", VisitRDandPDRoute);
app.use('/api',AnnouncementRoute) app.use('/api',AnnouncementRoute)
app.use('/api/transporter',Transporter)
//config specialty //config specialty
// app.use("/api/config/specialty", SpecialtiesRouter); // app.use("/api/config/specialty", SpecialtiesRouter);

View File

@ -34,7 +34,8 @@ const orderItemSchema = new Schema({
type: Number, type: Number,
required: true, required: true,
}, },
processquantity: { //updated quantity processquantity: {
//updated quantity
type: Number, type: Number,
required: true, required: true,
default: 1, default: 1,
@ -58,6 +59,7 @@ const invoiceSchema = new mongoose.Schema({
}, },
invoiceAmount: { type: Number, required: true }, invoiceAmount: { type: Number, required: true },
courier_name: { type: String }, courier_name: { type: String },
transpoter_Name: { type: String },
courier_tracking_id: { type: String }, courier_tracking_id: { type: String },
courierStatus: { courierStatus: {
type: String, type: String,
@ -71,10 +73,10 @@ const invoiceSchema = new mongoose.Schema({
}, },
}); });
// Middleware to set the processing date only when the invoice is created // Middleware to set the processing date only when the invoice is created
invoiceSchema.pre('save', function (next) { invoiceSchema.pre("save", function (next) {
if (this.isNew && !this.courierstatus_timeline.processing) { if (this.isNew && !this.courierstatus_timeline.processing) {
this.courierstatus_timeline.processing = new Date(); this.courierstatus_timeline.processing = new Date();
} }
next(); next();
}); });
export const Invoice = mongoose.model("Invoice", invoiceSchema); export const Invoice = mongoose.model("Invoice", invoiceSchema);

View File

@ -55,7 +55,6 @@ const orderItemSchema = new Schema({
}, },
}); });
const pdOrderSchema = new Schema( const pdOrderSchema = new Schema(
{ {
paymentMode: { paymentMode: {
@ -84,14 +83,19 @@ const pdOrderSchema = new Schema(
type: Number, type: Number,
required: true, required: true,
}, },
status: { status: {
type: String, type: String,
enum: ['new','pending','processing','dispatched', 'cancelled', 'delivered'], enum: [
default: 'new' "new",
"pending",
"processing",
"dispatched",
"cancelled",
"delivered",
],
default: "new",
}, },
invoices: [ invoices: [{ type: mongoose.Schema.Types.ObjectId, ref: "Invoice" }],
{ type: mongoose.Schema.Types.ObjectId, ref: 'Invoice' }
],
uniqueId: { uniqueId: {
type: String, type: String,
unique: true, unique: true,
@ -116,7 +120,7 @@ const pdOrderSchema = new Schema(
); );
// Middleware to generate uniqueId before saving the document // Middleware to generate uniqueId before saving the document
pdOrderSchema.pre('save', async function(next) { pdOrderSchema.pre("save", async function (next) {
if (this.isNew) { if (this.isNew) {
const year = new Date().getFullYear().toString().slice(-2); // Get the last 2 digits of the year const year = new Date().getFullYear().toString().slice(-2); // Get the last 2 digits of the year
const orderItemCount = this.orderItem.length; // Count the number of order items const orderItemCount = this.orderItem.length; // Count the number of order items
@ -128,4 +132,3 @@ pdOrderSchema.pre('save', async function(next) {
}); });
export const PdOrder = mongoose.model("PdOrder", pdOrderSchema); export const PdOrder = mongoose.model("PdOrder", pdOrderSchema);

View File

@ -0,0 +1,86 @@
import { Transporter } from "./transporterModal.js";
// Create a new transporter
export const createTransporter = async (req, res) => {
try {
const { transporterName } = req.body;
const newTransporter = await Transporter.create({ transporterName });
res.status(201).json({
message: "Transporter added successfully",
transporter: newTransporter,
});
} catch (error) {
res.status(500).json({ message: "Error adding transporter", error });
}
};
// Read all transporters
export const getTransporters = async (req, res) => {
try {
const transporters = await Transporter.find();
res.status(200).json({ transporters });
} catch (error) {
res.status(500).json({ message: "Error fetching transporters", error });
}
};
// Update transporter by ID
export const updateTransporter = async (req, res) => {
try {
const { transporterName } = req.body;
const transporterId = req.params.id;
const updatedTransporter = await Transporter.findByIdAndUpdate(
transporterId,
{ transporterName },
{ new: true, runValidators: true }
);
if (!updatedTransporter) {
return res.status(404).json({ message: "Transporter not found" });
}
res.status(200).json({
message: "Transporter updated successfully",
transporter: updatedTransporter,
});
} catch (error) {
res.status(500).json({ message: "Error updating transporter", error });
}
};
// Delete transporter by ID
export const deleteTransporter = async (req, res) => {
try {
const transporterId = req.params.id;
const deletedTransporter = await Transporter.findByIdAndDelete(
transporterId
);
if (!deletedTransporter) {
return res.status(404).json({ message: "Transporter not found" });
}
res.status(200).json({ message: "Transporter deleted successfully" });
} catch (error) {
res.status(500).json({ message: "Error deleting transporter", error });
}
};
export const getTransporterById = async (req, res) => {
try {
const transporterId = req.params.id;
const transporter = await Transporter.findById(transporterId);
if (!transporter) {
return res.status(404).json({ message: "Transporter not found" });
}
res.status(200).json({ transporter });
} catch (error) {
res.status(500).json({ message: "Error fetching transporter", error });
}
};

View File

@ -0,0 +1,13 @@
import mongoose from "mongoose";
const transporterSchema = new mongoose.Schema(
{
transporterName: {
type: String,
required: true,
trim: true,
},
},
{ timestamps: true }
); // This automatically adds createdAt and updatedAt fields
export const Transporter = mongoose.model("Transporter", transporterSchema);

View File

@ -0,0 +1,31 @@
import express from "express";
import {
authorizeRoles,
isAuthenticatedUser,
} from "../../../middlewares/auth.js";
import {
createTransporter,
deleteTransporter,
getTransporters,
updateTransporter,
} from "./transporterController.js";
const router = express.Router();
router
.route("/add")
.post(isAuthenticatedUser, authorizeRoles("admin"), createTransporter);
router
.route("/edit/:id")
.patch(isAuthenticatedUser, authorizeRoles("admin"), updateTransporter);
router
.route("/delete/:id")
.delete(isAuthenticatedUser, authorizeRoles("admin"), deleteTransporter);
router
.route("/get")
.get(isAuthenticatedUser, authorizeRoles("admin"), getTransporters);
export default router;