Untitled

 avatar
unknown
plain_text
a month ago
1.7 kB
2
Indexable
exports.updateOrderDetails = catchAsync(async (req, res, next) => {

  const {tracking_number, colis_number, note, payment_value, shipping_company, shipping_company_website,
    delivery_estimate ,orderId } = req.body;

    const order = await Order.findById(toObjectId(orderId, next));
    if (!order) {
      return next(new AppError('Order not found', 400));
    }
    if (shipping_company) {
      order.shipping_company = shipping_company;
    }
    if (shipping_company_website) {
      order.shipping_company_website = shipping_company_website;
    }
    if (tracking_number) {
    order.nb_tracking = tracking_number;
    }
    if (colis_number) {
      order.nb_colis = colis_number;
    }
    if (note) {
      order.note = note;
    }
    if (payment_value) {
      if (order.payment_status != 'partial paid') {
        return next(new AppError('order is not partial paid !', 400));
      }
      if (Number(payment_value) > order.totalPrice) {
        return next(new AppError('payment value too large !', 400));
      }
      order.payment_value = +Number.parseFloat(payment_value).toFixed(2);
    }
    if(delivery_estimate){
       if(!delivery_estimate?.start || !delivery_estimate?.end){
          return next(new AppError('delivery_estimate params not correct', 400));
       }
       let start_date = new Date(delivery_estimate?.start);
       let end_date = new Date(delivery_estimate?.end);
       order.delivery_estimate.start = start_date;
       order.delivery_estimate.end = end_date;
    }
    


    await order.save();
    res.status(200).json({ message: 'success', data: order });

})
Editor is loading...
Leave a Comment