/var/www/qr4y.com/server/delivery/api/controllers/order
NameSizeModeActions
accept.js14550644editdlrm
add_waiter.js13920644editdlrm
arrived.js14020644editdlrm
cancel.js19090644editdlrm
complete.js23280644editdlrm
confirmed.js25730644editdlrm
create.js62500644editdlrm
delete.js9120644editdlrm
delivery.js14670644editdlrm
details.js18110644editdlrm
edit.js8840644editdlrm
history.js15500644editdlrm
list.js35520644editdlrm
pay.js51080644editdlrm
printed.js12610644editdlrm
ready.js14570644editdlrm
remove_waiter.js10000644editdlrm
set_table.js11050644editdlrm
set_user.js10980644editdlrm
statistic.js61160644editdlrm
Edit: /var/www/qr4y.com/server/delivery/api/controllers/order/pay.js (5108B)
const { NotFound, BadRequest, ApiError } = require('../../responseModels/errors') module.exports = function ({ db, logger }) { return async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() let transaction = await db.sequelize.transaction() try { // checkPermission(req, 'order_delete') const { orderId, userId, summ } = req.body if (!summ) throw new BadRequest({ lang: req.user?.languageCode }) if (!orderId) throw new BadRequest({ lang: req.user?.languageCode }) if (!userId) throw new BadRequest({ lang: req.user?.languageCode }) let order = await SERVICES.OrderService.GetOrder(orderId) // const order = await db.order.findOne({ where: { id: orderId } }) if (!order) { throw new NotFound({ lang: req.user?.languageCode }) } const user = await db.user.findOne({ where: { id: userId } }) if (!user) { throw new NotFound({ lang: req.user?.languageCode }) } let orderPay = await db.orderPay.findOne({ where: { orderId: order.id } }) if (!orderPay) { orderPay = await db.orderPay.create({ orderId: order.id, userId: user.id, payTypeId: order.payTypeId, summ: summ, status: 'paid' }) } else if (orderPay.status === 'not_paid') { if (!parseFloat(summ) !== parseFloat(orderPay.summ)) { // throw new BadRequest({ code: 1031, lang: req.user?.languageCode }) } // безнал // if (!order.payType.isCash) { // if (!order.userId) throw new NotFound({ code: 1028, lang: req.user?.languageCode }) // // var accountClient = await db.account.findOne({ where: { userId: order.userId, type: ACCOUNT_TYPE.CLIENT } }) // // if (!accountClient) // // accountClient = await db.account.create({ // // branchId: order?.branchId, // // companyId: order?.companyId, // // userId: user?.id, // // type: 'cash', // // balance: '0', // // description: 'Bill autocreate' // // }) // // // throw new NotFound({ code: 1030, lang: req.user?.languageCode }) // // // проверить остаток на счете // // if (parseFloat(accountClient.balance) < parseFloat(summ)) { // // throw new BadRequest({ code: 1031, lang: req.user?.languageCode }) // // } // // снятие со счета клиента // // const accountClientBalance = parseFloat(accountClient.balance) // // accountClient.balance = accountClientBalance - parseFloat(summ) // // await db.accountHistory.create({ // // accountId: accountClient.id, // // summ: parseFloat(summ) * -1, // // balanceBefore: accountClientBalance, // // balanceAfter: accountClient.balance, // // event: ACCOUNT_HISTORY_EVENT.TRANSFER // // }) // // await accountClient.save() // // зачисление на счет филиала // const accountBranch = await db.account.findOne({ where: { branchId: order.branchId, type: ACCOUNT_TYPE.BRANCH } }) // if (!accountBranch) throw new NotFound({ code: 1051, lang: req.user?.languageCode }) // const accountBranchBalance = parseFloat(accountBranch.balance) // accountBranch.balance = accountBranchBalance + parseFloat(summ) // await db.accountHistory.create({ // accountId: accountBranch.id, // summ: parseFloat(summ), // balanceBefore: accountBranchBalance, // balanceAfter: accountBranch.balance, // event: ACCOUNT_HISTORY_EVENT.TRANSFER // }) // await accountBranch.save() // } else { // наличные // зачисление в кассу филиала const accountBranch = await db.account.findOne({ where: { branchId: order.branchId, type: ACCOUNT_TYPE.CASH } }) if (!accountBranch) throw new NotFound({ code: 1052, lang: req.user?.languageCode }) const accountBranchBalance = parseFloat(accountBranch.balance) accountBranch.balance = accountBranchBalance + parseFloat(summ) await db.accountHistory.create({ accountId: accountBranch.id, summ: parseFloat(summ), balanceBefore: accountBranchBalance, balanceAfter: accountBranch.balance, event: ACCOUNT_HISTORY_EVENT.TRANSFER }) await accountBranch.save() // } orderPay.status = 'paid' orderPay.summ = summ await orderPay.save() order.pay_status_order = 'paid' order.pay_status_delivery = 'paid' order.payAt = Date.now() await order.save() await SERVICES.OrderService.PayOrder(order, orderPay) } else if (orderPay.status === 'paid') { if (order.pay_status_order !== 'paid') { order.pay_status_order = 'paid' order.pay_status_delivery = 'paid' order.payAt = Date.now() await order.save() } await SERVICES.OrderService.PayOrder(order, orderPay) } transaction.commit() transaction = null if (order.deliveryServerId) { await SERVICES.DeliveryService.UpdateOrder(order.id) } return res.status(200).json({ status: 'success', id: order.id }) } catch (err) { transaction?.rollback() next(err) } } }