From 542815d95f725822b0cc7b8bf17d1601399e2bb1 Mon Sep 17 00:00:00 2001 From: pawan-dot <71133473+pawan-dot@users.noreply.github.com> Date: Mon, 6 Feb 2023 18:02:09 +0530 Subject: [PATCH] product and franchisee change --- resources/Orders/orderController.js | 33 +++++++++++++++++++++++-- resources/Orders/orderModel.js | 22 +++++++++++++++-- resources/Orders/orderRoute.js | 7 ++++-- resources/Products/ProductController.js | 8 +++++- resources/Products/ProductModel.js | 22 +++++++++++++++++ resources/Temple/TempleModel.js | 1 + 6 files changed, 86 insertions(+), 7 deletions(-) diff --git a/resources/Orders/orderController.js b/resources/Orders/orderController.js index eb7930f..c34f18b 100644 --- a/resources/Orders/orderController.js +++ b/resources/Orders/orderController.js @@ -53,7 +53,7 @@ export const getAllOrder = async (req, res) => { const order = await Order.find().populate({ path: "user", select: "name -_id", - }); + }).sort({ createdAt: -1 }); if (order) { res.status(201).json({ success: true, @@ -68,4 +68,33 @@ export const getAllOrder = async (req, res) => { res.status(500).json({ msg: error.message ? error.message : 'Something went Wrong' }) } -} \ No newline at end of file +} +export const deleteOneOrder = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + if (!req.params.id) return res.status(400).json({ message: "please Provide Order Id" }); + const getOrder = await Order.findById(req.params.id); + if (!getOrder) { + return res.status(404).json({ + success: false, + msg: "No Order Found!" + }); + + } + const order = await Order.findByIdAndDelete(req.params.id) + + await order.remove(); + res.status(200).json({ + success: true, + msg: "Order Deleted Successfully!!", + + }); + + } catch (error) { + console.log(error); + res.status(500).json({ msg: error.message ? error.message : 'Something went Wrong' }) + } + +} + + diff --git a/resources/Orders/orderModel.js b/resources/Orders/orderModel.js index 94008cb..83e5b9c 100644 --- a/resources/Orders/orderModel.js +++ b/resources/Orders/orderModel.js @@ -10,7 +10,7 @@ const orderSchema = new mongoose.Schema( required: true, }, - shippingInfo: [{ + shippingInfo: { name: { type: String, required: true, }, address: { type: String, @@ -44,7 +44,7 @@ const orderSchema = new mongoose.Schema( type: mongoose.Schema.ObjectId, ref: "Temple", }, - }], + }, orderItems: [ { name: { @@ -64,6 +64,24 @@ const orderSchema = new mongoose.Schema( type: String, default: '', }, + taxRate: { + type: Number, + default: 0 + }, + + PriceWithTax: { + type: Number, + default: '', + }, + taxName: { + type: String, + default: '', + }, + taxId: { + type: String, + default: '' + }, + product: { type: mongoose.Schema.ObjectId, ref: "Product", diff --git a/resources/Orders/orderRoute.js b/resources/Orders/orderRoute.js index f4e8001..4a151ea 100644 --- a/resources/Orders/orderRoute.js +++ b/resources/Orders/orderRoute.js @@ -1,11 +1,14 @@ -import { createOrder, getAllOrder } from "./orderController.js"; +import { createOrder, deleteOneOrder, getAllOrder } from "./orderController.js"; import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js"; import express from 'express' const router = express.Router() router.route("/order/create").post(isAuthenticatedUser, authorizeRoles("admin"), createOrder) router.route("/order/getAll").get(isAuthenticatedUser, authorizeRoles("admin"), getAllOrder) +router.route("/order/delete/:id").delete(isAuthenticatedUser, authorizeRoles("admin"), deleteOneOrder) + + // router.route("/product/getAll/").get(getAllProduct) -export default router; \ No newline at end of file +export default router \ No newline at end of file diff --git a/resources/Products/ProductController.js b/resources/Products/ProductController.js index 823d7ef..57fe6cc 100644 --- a/resources/Products/ProductController.js +++ b/resources/Products/ProductController.js @@ -29,6 +29,7 @@ export const createProduct = async (req, res) => { const data = await Product.create({ ...req.body, + image: { public_id: myCloud.public_id, url: myCloud.secure_url, @@ -99,11 +100,16 @@ export const updateProduct = async (req, res) => { name: req.body.name, description: req.body.description, base_Price: req.body.base_Price, + base_Price_With_Tax: req.body.base_Price_With_Tax, price_Level_2: req.body.price_Level_2, + price_Level_2_With_Tax: req.body.price_Level_2_With_Tax, price_Level_3: req.body.price_Level_3, - }; + price_Level_3_With_Tax: req.body.price_Level_3_With_Tax, + + } + if (req.files) { const image_file = req.files.image; const getProduct = await Product.findById(req.params.id); diff --git a/resources/Products/ProductModel.js b/resources/Products/ProductModel.js index a5edeb8..0b77293 100644 --- a/resources/Products/ProductModel.js +++ b/resources/Products/ProductModel.js @@ -18,18 +18,40 @@ const productSchema = new Schema({ required: [true, "Please Enter product Price"], maxLength: [8, "Price cannot exceed 8 characters"], }, + base_Price_With_Tax: { + type: Number, + required: [true, "Please Enter product Price"], + maxLength: [8, "Price cannot exceed 8 characters"], + }, + price_Level_2: { type: Number, required: true, maxLength: [8, "price leval2 cannot exceed 8 characters"], }, + price_Level_2_With_Tax: { + type: Number, + required: [true, "Please Enter product Price"], + maxLength: [8, "Price cannot exceed 8 characters"], + }, + price_Level_3: { type: Number, required: true, maxLength: [8, "price leval3 cannot exceed 8 characters"], }, + price_Level_3_With_Tax: { + type: Number, + required: [true, "Please Enter product Price"], + maxLength: [8, "Price cannot exceed 8 characters"], + }, + taxId: { + type: Schema.Types.ObjectId, + + ref: "Tax" + }, image: { diff --git a/resources/Temple/TempleModel.js b/resources/Temple/TempleModel.js index da4a43c..9bc6304 100644 --- a/resources/Temple/TempleModel.js +++ b/resources/Temple/TempleModel.js @@ -18,6 +18,7 @@ const TempleSchema = new Schema( ref: "Product", }, ], + price_Lable: { type: String, default: "" }, url: { type: String, default: "" }, short_url: { type: String, default: "" }, banner: { type: Object, default: { url: "", public_id: "" } },