/var/www/greso.tech/server/nsm/controllers/order
NameSizeModeActions
comment/-0755rm
document/-0755rm
inventory/-0755rm
message/-0755rm
movement/-0755rm
payment/-0755rm
status/-0755rm
create.js127780644editdlrm
delete.js8280644editdlrm
details.js21680644editdlrm
edit.js140900644editdlrm
history.js11930644editdlrm
lead.js110190644editdlrm
list.js37870644editdlrm
search.js30470644editdlrm
Edit: /var/www/greso.tech/server/nsm/controllers/order/edit.js (14090B)
module.exports = function ({ db, logger }) { const { NotFound, BadRequest } = require('../../responseModels/errors') const { isSet, isEmail, isPhone, isEmpty, minLength, isNumber, isArray, parseBool } = require('../../utils/validator.util') return async (req, res, next) => { logger.child({ path: req.path, request: req.query }).info() let t1 = performance.now() let transaction = await db.sequelize.transaction() let changes = '' try { var { id, reference_number, rate, storage, fuel_surcharge, carrierRate, rate_multiply, companyId, userId, destinationUserId, salesRepId, qaId, warehouseId, providerId, app, valuation, discount_cash, pickupAddressId, deliveryAddressId, pickupAreaId, deliveryAreaId, hold, orderType, followUpDate, pickupDateFrom, pickupDateTo, deliveryDateFrom, deliveryDateTo, loadingDate, deliveryDate, edited_total, custom_total, edited_packages, custom_packages, edited_weight, custom_weight, edited_volume, custom_volume, orderItems } = req.body if (!isSet(id) || isEmpty(id)) { throw new BadRequest({ code: 400, lang: req.user?.languageCode }) } const order = await db.order.findOne({ where: { id: id } }) if (!order) { throw new NotFound({ lang: req.user?.languageCode }) } if (!isSet(companyId) || isEmpty(companyId)) { throw new BadRequest({ code: 2003, lang: req.user?.languageCode }) } order.companyId = companyId // not required if (isSet(orderType)){ if(isEmpty(orderType)) { throw new BadRequest({ code: 2124, lang: req.user?.languageCode }) }else{ if(order.orderType != orderType){ order.orderType = orderType changes += 'order type, ' } } } if (isSet(reference_number)){ if(isEmpty(reference_number)) { throw new BadRequest({ code: 2024, lang: req.user?.languageCode }) }else{ if(order.reference_number != reference_number){ order.reference_number = reference_number changes += 'ref #, ' } } } if (isSet(valuation)){ if(isEmpty(valuation)) { throw new BadRequest({ code: 2085, lang: req.user?.languageCode }) }else{ if(order.valuation != valuation){ order.valuation = valuation changes += 'valuation, ' } } } if (isSet(rate)){ if(isEmpty(rate)) { throw new BadRequest({ code: 2027, lang: req.user?.languageCode }) }else{ if(parseFloat(order.rate) != parseFloat(rate)){ order.rate = rate changes += 'rate, ' } } } if (isSet(fuel_surcharge)){ if(isEmpty(fuel_surcharge)) { throw new BadRequest({ code: 2086, lang: req.user?.languageCode }) }else{ if(parseFloat(order.fuel_surcharge) != parseFloat(fuel_surcharge)){ order.fuel_surcharge = fuel_surcharge changes += 'fuel surcharge, ' } } } if (isSet(carrierRate)){ if(isEmpty(carrierRate)) { throw new BadRequest({ code: 2027, lang: req.user?.languageCode }) }else{ if(parseFloat(order.carrierRate) != parseFloat(carrierRate)){ order.carrierRate = carrierRate changes += 'carrier rate, ' } } } if (isSet(userId)){ if(isEmpty(userId)) { throw new BadRequest({ code: 2011, lang: req.user?.languageCode }) }else{ if(order.userId != userId){ order.userId = userId changes += 'client, ' } } } if (isSet(destinationUserId)){ if(isEmpty(destinationUserId)) { throw new BadRequest({ code: 2048, lang: req.user?.languageCode }) }else{ if(order.destinationUserId != destinationUserId){ order.destinationUserId = destinationUserId changes += 'destination client, ' } } } if (isSet(salesRepId)){ if(isEmpty(salesRepId)) { throw new BadRequest({ code: 2047, lang: req.user?.languageCode }) }else{ if(order.salesRepId != salesRepId){ order.salesRepId = salesRepId changes += 'sales rep, ' } } } if (isSet(qaId)){ if(isEmpty(qaId)) { throw new BadRequest({ code: 2049, lang: req.user?.languageCode }) }else{ if(order.qaId != qaId){ order.qaId = qaId changes += 'QA, ' } } } if (isSet(warehouseId)){ if(isEmpty(warehouseId)) { throw new BadRequest({ code: 2053, lang: req.user?.languageCode }) }else{ if(order.warehouseId != warehouseId){ order.warehouseId = warehouseId changes += 'warehouse, ' } } } if (isSet(providerId)){ if(isEmpty(providerId)) { throw new BadRequest({ code: 2054, lang: req.user?.languageCode }) }else{ if(order.providerId != providerId){ order.providerId = providerId changes += 'provider, ' } } } if (isSet(app)){ if(isEmpty(app)) { throw new BadRequest({ code: 2016, lang: req.user?.languageCode }) }else{ order.app = app } } if (isSet(pickupAddressId)){ if(isEmpty(pickupAddressId)) { throw new BadRequest({ code: 2018, lang: req.user?.languageCode }) }else{ if(order.pickupAddressId != pickupAddressId){ order.pickupAddressId = pickupAddressId changes += 'pickup address, ' } } } if (isSet(deliveryAddressId)){ if(isEmpty(deliveryAddressId)) { throw new BadRequest({ code: 2019, lang: req.user?.languageCode }) }else{ if(order.deliveryAddressId != deliveryAddressId){ order.deliveryAddressId = deliveryAddressId changes += 'delivery address, ' } } } if (isSet(pickupAreaId)){ if(isEmpty(pickupAreaId)) { throw new BadRequest({ code: 2039, lang: req.user?.languageCode }) }else{ if(order.pickupAreaId != pickupAreaId){ order.pickupAreaId = pickupAreaId changes += 'pickup area, ' } } } if (isSet(deliveryAreaId)){ if(isEmpty(deliveryAreaId)) { throw new BadRequest({ code: 2040, lang: req.user?.languageCode }) }else{ if(order.deliveryAreaId != deliveryAreaId){ order.deliveryAreaId = deliveryAreaId changes += 'delivery area, ' } } } if (isSet(hold)){ if(isEmpty(hold)) { throw new BadRequest({ code: 2103, lang: req.user?.languageCode }) }else{ if(order.hold != parseBool(hold)){ order.hold = hold changes += 'hold, ' } } } if (isSet(followUpDate)){ if(isEmpty(followUpDate)) { throw new BadRequest({ code: 2102, lang: req.user?.languageCode }) }else{ const x = new Date(order.followUpDate).setHours(0,0,0,0); const y = new Date(followUpDate).setHours(0,0,0,0); if(x != y){ order.followUpDate = followUpDate changes += 'follow up date, ' } } } if (isSet(pickupDateFrom)){ if(isEmpty(pickupDateFrom)) { throw new BadRequest({ code: 2020, lang: req.user?.languageCode }) }else{ const x = new Date(order.pickupDateFrom).setHours(0,0,0,0); const y = new Date(pickupDateFrom).setHours(0,0,0,0); if(x != y){ order.pickupDateFrom = pickupDateFrom changes += 'pickup date, ' } } } if (isSet(pickupDateTo)){ if(isEmpty(pickupDateTo)) { throw new BadRequest({ code: 2022, lang: req.user?.languageCode }) }else{ const x = new Date(order.pickupDateTo).setHours(0,0,0,0); const y = new Date(pickupDateTo).setHours(0,0,0,0); if(x != y){ order.pickupDateTo = pickupDateTo changes += 'pickup window, ' } } } if (isSet(deliveryDateFrom)){ if(isEmpty(deliveryDateFrom)) { if(order.deliveryDateFrom != null){ order.deliveryDateFrom = null changes += 'reset delivery date, ' } }else{ const x = new Date(order.deliveryDateFrom).setHours(0,0,0,0); const y = new Date(deliveryDateFrom).setHours(0,0,0,0); if(x != y){ order.deliveryDateFrom = deliveryDateFrom changes += 'delivery date, ' } } } if (isSet(deliveryDateTo)){ if(isEmpty(deliveryDateTo)) { if(order.deliveryDateTo != null){ order.deliveryDateTo = null changes += 'reset delivery window, ' } }else{ const x = new Date(order.deliveryDateTo).setHours(0,0,0,0); const y = new Date(deliveryDateTo).setHours(0,0,0,0); if(x != y){ order.deliveryDateTo = deliveryDateTo changes += 'delivery window, ' } } } if (isSet(loadingDate)){ if(isEmpty(loadingDate)) { throw new BadRequest({ code: 2055, lang: req.user?.languageCode }) }else{ if(order.loadingDate != loadingDate){ order.loadingDate = loadingDate changes += 'loading date, ' } } } if (isSet(deliveryDate)){ if(isEmpty(deliveryDate)) { throw new BadRequest({ code: 2084, lang: req.user?.languageCode }) }else{ if(order.deliveryDate != deliveryDate){ order.deliveryDate = deliveryDate changes += 'Delivery date, ' } } } if (isSet(discount_cash)){ if(isEmpty(discount_cash)) { throw new BadRequest({ code: 2056, lang: req.user?.languageCode }) }else{ if(parseFloat(order.discount_cash) != parseFloat(discount_cash)){ order.discount_cash = discount_cash changes += 'discount cash, ' } } } if (isSet(rate_multiply)){ if(isEmpty(rate_multiply)) { throw new BadRequest({ code: 2057, lang: req.user?.languageCode }) }else{ if(order.rate_multiply != rate_multiply){ order.rate_multiply = rate_multiply changes += 'rate multiply, ' } } } if (isSet(storage)){ if(isEmpty(storage)) { throw new BadRequest({ code: 2100, lang: req.user?.languageCode }) }else{ if(order.storage != parseBool(storage)){ order.storage = parseBool(storage) changes += 'storage, ' } } } if (isSet(edited_packages)){ if(isEmpty(edited_packages)) { throw new BadRequest({ code: 2078, lang: req.user?.languageCode }) }else{ if(order.edited_packages != parseBool(edited_packages)){ order.edited_packages = parseBool(edited_packages) changes += 'edited packages, ' } } } if (isSet(custom_packages)){ if(isEmpty(custom_packages)) { throw new BadRequest({ code: 2079, lang: req.user?.languageCode }) }else{ if(parseFloat(order.custom_packages) != parseFloat(custom_packages)){ order.custom_packages = parseFloat(custom_packages) changes += 'custom packages, ' } } } if (isSet(edited_weight)){ if(isEmpty(edited_weight)) { throw new BadRequest({ code: 2070, lang: req.user?.languageCode }) }else{ if(order.edited_weight != parseBool(edited_weight)){ order.edited_weight = parseBool(edited_weight) changes += 'edited weight, ' } } } if (isSet(custom_weight)){ if(isEmpty(custom_weight)) { throw new BadRequest({ code: 2071, lang: req.user?.languageCode }) }else{ if(parseFloat(order.custom_weight) != parseFloat(custom_weight)){ order.custom_weight = parseFloat(custom_weight) changes += 'custom weight, ' } } } if (isSet(edited_volume)){ if(isEmpty(edited_volume)) { throw new BadRequest({ code: 2072, lang: req.user?.languageCode }) }else{ if(order.edited_volume != parseBool(edited_volume)){ order.edited_volume = parseBool(edited_volume) changes += 'edited volume, ' } } } if (isSet(custom_volume)){ if(isEmpty(custom_volume)) { throw new BadRequest({ code: 2073, lang: req.user?.languageCode }) }else{ if(parseFloat(order.custom_volume) != parseFloat(custom_volume)){ order.custom_volume = parseFloat(custom_volume) changes += 'custom volume, ' } } } if (isSet(edited_total)){ if(isEmpty(edited_total)) { throw new BadRequest({ code: 2061, lang: req.user?.languageCode }) }else{ if(order.edited_total != parseBool(edited_total)){ order.edited_total = parseBool(edited_total) changes += 'edited total, ' } } } if (isSet(custom_total)){ if(isEmpty(custom_total)) { throw new BadRequest({ code: 2062, lang: req.user?.languageCode }) }else{ if(parseFloat(order.custom_total) != parseFloat(custom_total)){ order.custom_total = parseFloat(custom_total) changes += 'custom total, ' } } } // if (isSet(orderItems) ){ // orderItems = JSON.parse(orderItems) // const oldItems = order.orderItems // if(isArray(orderItems)&& oldItems != orderItems){ // db.orderItems.destroy({ where: { orderId: order.id } }) // for (var i = 0; i < orderItems.length; i++) { // orderItems[i].orderId = order.id; // } // db.orderItems.bulkCreate(orderItems) // // order.orderItems = orderItems // } // } order.updateUserId = req.user.id; if(changes!=''){ await order.save() await db.orderHistory.create({ orderId: order.id, userId: req.user.id || null, status: order.status, comment: 'Edit ' + changes, createdAt: Date.now(), updatedAt: Date.now(), }) } transaction.commit() transaction = null await SERVICES.OrderService.OrderStatus(order, 'orderEdit') const time = performance.now() - t1 return res.status(200).json({ status: 'success', id: order.id, time }) } catch (err) { transaction?.rollback() next(err) } } }