/* ============================================================================ *\
|| ########################################################################## ||
|| # 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 # ||
|| # ---------------------------------------------------------------------- # ||
|| ########################################################################## ||
\* ============================================================================ */
const dateFormat = require('dateformat')
const md5 = require('md5')
const _ = require('underscore')
const moment = require('moment')
const mysqclass = require('./mysqli').default
const commonProduct = require('../../common/products').default
/**
* @class class to handle product functions
*/
class adminBidDepositModule {
/**
* Get all products
* @param {object} req request data
* @param {string} count count for the pagination
* @returns {object} sql response
*/
static async fetchProductsAll(req, count) {
const data = req.body
const mysql = {}
let row = ''
let order = ''
const sortorder = data.orderby
let where = ''
let limitf = ''
const dateNow = dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss')
if (typeof req.body.limit === 'undefined') {
req.body.limit = global.configurations.variables.search_limit || 25
}
if (typeof req.body.page === 'undefined') {
req.body.page = 1
}
if (sortorder === 1) {
order = 'order by p.date_closed asc'
} else if (sortorder === 2) {
order = 'order by p.id desc '
}
if (req.body.market_status) {
if (Array.isArray(req.body.market_status)) {
const values = req.body.market_status.join('","')
where += ` AND p.market_status in ("${values}") `
} else if (typeof req.body.market_status === 'string') {
where += ` AND p.market_status = "${req.body.market_status}" `
}
} else {
where += ` `
}
if (req.body.similars) {
where += commonProduct.similarData(req)
}
if (req.body.filters) {
where += commonProduct.filterData(req)
}
const baseTableUsed = global.configColumns.projects
const customTableUsed = global.configColumns.custom_projects
const generatedData = commonProduct.generateJoinWithColum(baseTableUsed, customTableUsed, [
'id',
])
console.log('generatedData', generatedData)
mysql.customTableJoin = generatedData.customTableJoin
mysql.columns = generatedData.rowstoFetch
mysql.mainTable = generatedData.mainTableJoin
row = count === 1 ? 'get_all_bid_deposit_search' : 'get_all_bid_deposit_search_limit'
const limitrg = req.body.limit
let uidc = 0
if (req.user) {
uidc = typeof req.user.id === 'undefined' ? 0 : req.user.id
}
let escapeData = []
if (count === 1) {
let pagen = (req.body.page - 1) * limitrg
if (parseInt(pagen, 10) < 0) {
pagen = 0
}
limitf = ` limit ${pagen},${limitrg}`
escapeData = [uidc]
} else {
escapeData = [uidc]
}
mysql.where = where
mysql.order = order
mysql.limitf = limitf
mysql.dateNow = dateNow
const strQuery = await mysqclass.mysqli(mysql, row)
const dataReturn = await global.mysql.query(strQuery, escapeData)
console.log('Bid Deposit Query', strQuery, escapeData)
return dataReturn
}
/**
* Get all deposits
* @param {object} req request data
* @param {string} count count for the pagination
* @returns {object} sql response
*/
static async fetchDepositsAll(req, count) {
const mysql = {}
let where = '1 '
let limitf = ''
let order = ''
let row = ''
const baseTableUsed = global.configColumns.bid_deposit
const customTableUsed = { enabled: 0 }
if (typeof req.body.limit === 'undefined') {
req.body.limit = global.configurations.variables.search_limit || 25
}
if (typeof req.body.page === 'undefined') {
req.body.page = 1
}
if (req.body.filters) {
where += commonProduct.filterData(req)
}
if (req.body.orderby || req.body.order) {
const sortReturn = commonProduct.sortOrderData(req, where)
if (sortReturn.order) {
order = sortReturn.order
}
if (sortReturn.where) {
where += sortReturn.where
}
}
const limitrg = req.body.limit
if (count === 1) {
let pagen = (req.body.page - 1) * limitrg
if (parseInt(pagen, 10) < 0) {
pagen = 0
}
limitf = ` limit ${pagen},${limitrg}`
}
const generatedData = commonProduct.generateJoinWithColum(
baseTableUsed,
customTableUsed,
[],
)
mysql.customTableJoin = generatedData.customTableJoin
mysql.mainTableJoin = generatedData.mainTableJoin
mysql.columns = generatedData.rowstoFetch
mysql.order = order
mysql.where = where
mysql.limitf = limitf
const additionalTable = global.configColumns.projects
const customAdditionalTable = global.configColumns.custom_projects
const additionalGeneratedData = commonProduct.additionalTableJoin(
additionalTable,
customAdditionalTable,
baseTableUsed,
'inner join',
'id',
'type_id',
)
mysql.customTableJoin = `${mysql.customTableJoin} ${additionalGeneratedData.customTableJoin}`
mysql.columns = mysql.columns.concat(additionalGeneratedData.rowstoFetch)
const additionalTable2 = global.configColumns.users
const customAdditionalTable2 = global.configColumns.custom_users
const additionalGeneratedData2 = commonProduct.additionalTableJoin(
additionalTable2,
customAdditionalTable2,
baseTableUsed,
'inner join',
'id',
'user_id',
)
mysql.customTableJoin = `${mysql.customTableJoin} ${additionalGeneratedData2.customTableJoin}`
mysql.columns = mysql.columns.concat(additionalGeneratedData2.rowstoFetch)
row =
count === 1
? 'get_all_bid_deposit_transactions'
: 'get_all_bid_deposit_transactions_limit'
const escapeData = []
const strQuery = await mysqclass.mysqli(mysql, row)
const data = await global.mysql.query(strQuery, escapeData)
return data
}
}
module.exports.default = adminBidDepositModule