admin/controllers/deposit/index.js

/* ============================================================================ *\
|| ########################################################################## ||
|| # Auction Software Marketplace          Release: 0.6   Build 0.7         # ||
|| # ---------------------------------------------------------------------- # ||
|| # License # 35YAHCNR9344X6O666C123AB                                     # ||
|| # ---------------------------------------------------------------------- # ||
|| # Copyright ©2014–2021 Develop Scripts LLC. All Rights Reserved          # ||
|| # This file may not be redistributed in whole or significant part.       # ||
|| # ------------- AUCTION SOFTWARE IS NOT FREE SOFTWARE ------------------ # ||
|| # http://www.auctionsoftwaremarketplace.com|support@auctionsoftware.com  # ||
|| # ---------------------------------------------------------------------- # ||
|| ########################################################################## ||
\* ============================================================================ */

/* eslint-disable prefer-destructuring */
/* eslint-disable no-param-reassign */
const jwt = require('jsonwebtoken')
const admindepositModule = require('../../modules/deposit').default

const { jsonResponse } = require('../logger')

module.exports = {
    /**
     * depositFund
     *
     * @memberOf adminside.deposit
     * @param {admindepositModule.addfundDeposit} modules
     * @param {admindepositModule.creditsUserbalance} modules
     */
    depositFund: async (req, res) => {
        try {
            req.body.user_id = req.body.user_id ? req.body.user_id : 0
            req.body.amount = req.body.amount ? req.body.amount : 0
            req.body.remove_credit = 0
            req.body.credit_notes = req.body.credit_notes ? req.body.credit_notes : ''
            req.body.employee_name = req.body.employee_name ? req.body.employee_name : ''
            req.body.trans_id = req.body.trans_id ? req.body.trans_id : ''
            if (req.body.user_id > 0 && req.body.amount > 0) {
                const data = {}
                data.user_id = req.body.user_id
                data.amount = req.body.amount
                data.credit_notes = req.body.credit_notes
                data.credit_notes = req.body.credit_notes
                data.employee_name = req.body.employee_name
                data.trans_id = req.body.trans_id
                data.remove_credit = req.body.remove_credit
                data.withdraw = 0
                await admindepositModule.addfundDeposit(data, req.body.user_id)
                await admindepositModule.creditsUserbalance(data, 0)
            }
        } catch (e) {
            console.error(e)
            jsonResponse(res, 'error', {
                responseType: 3,
                message: 'Internal Server error!',
            })
        } finally {
            const responseData = {}
            jsonResponse(res, 'success', {
                responseType: 1,
                message: 'Status successfully changed',
                responseData,
            })
        }
    },
    /**
     * depositFundRemove
     *
     * @memberOf adminside.deposit
     * @param {admindepositModule.addfundDeposit} modules
     * @param {admindepositModule.creditsUserbalance} modules
     */
    depositFundRemove: async (req, res) => {
        try {
            req.body.user_id = req.body.user_id ? req.body.user_id : 0
            req.body.amount = req.body.amount ? req.body.amount : 0
            req.body.remove_credit = 1
            req.body.credit_notes = req.body.credit_notes ? req.body.credit_notes : ''
            req.body.employee_name = req.body.employee_name ? req.body.employee_name : ''
            req.body.trans_id = req.body.trans_id ? req.body.trans_id : ''
            if (req.body.user_id > 0 && req.body.amount > 0) {
                const data = {}
                data.user_id = req.body.user_id
                data.amount = req.body.amount
                data.credit_notes = req.body.credit_notes
                data.credit_notes = req.body.credit_notes
                data.employee_name = req.body.employee_name
                data.trans_id = req.body.trans_id
                data.remove_credit = req.body.remove_credit
                data.withdraw = 0
                await admindepositModule.addfundDeposit(data, req.body.user_id)
                await admindepositModule.creditsUserbalance(data, 1)
            }
        } catch (e) {
            console.error(e)
            jsonResponse(res, 'error', {
                responseType: 3,
                message: 'Internal Server error!',
            })
        } finally {
            const responseData = {}
            jsonResponse(res, 'success', {
                responseType: 1,
                message: 'Status successfully changed',
                responseData,
            })
        }
    },
    /**
     * depositFundlist
     *
     * @memberOf adminside.deposit
     * @param {admindepositModule.getUserbalance} modules
     */
    depositFundlist: async (req, res) => {
        try {
            req.body.user_id = req.body.user_id ? req.body.user_id : 0
            if (req.body.user_id > 0) {
                const responseData = {}
                await admindepositModule.getUserbalance(req, req.body.user_id)
                const [results1] = await Promise.all([
                    admindepositModule.getUserbalance(req, req.body.user_id),
                ])

                if (results1.length > 0) {
                    let totAmtAv = 0
                    results1.reverse()
                    results1.forEach(async (element) => {
                        if (element.withdraw === 0 && element.is_delete === 0) {
                            totAmtAv += parseFloat(element.amount)
                        } else {
                            totAmtAv -= parseFloat(element.amount)
                        }
                        element.tamtamt = parseFloat(totAmtAv).toFixed(2)
                        element.amount = parseFloat(element.amount).toFixed(2)
                    })
                    results1.reverse()
                }
                responseData.results = results1
                jsonResponse(res, 'success', {
                    responseType: 1,
                    message: 'Status successfully changed',
                    responseData,
                })
            }
        } catch (e) {
            console.error(e)
            jsonResponse(res, 'error', {
                responseType: 3,
                message: 'Internal Server error!',
            })
        }
    },
}