BenoursonJ/ESX-Banker-Job-Upgraded

users.bank doesn't exist

john1299 opened this issue · 1 comments

function CheckPretExpire(d, h, m) in server.lua - users.bank column doesnt exist.

Bank is under the accounts column in es_extended v1 and v2

Here is the alternative code which requires replacement of the whole function in server.lua.
Querying the accounts column requires the data to be parsed by json.

---CHECK EXPIRATION PRET ®Benourson#9496
function CheckPretExpire(d, h, m)
	print(os.date ("%c") .. _U('checking_expired_deadline_loans_start'))
	MySQL.Async.fetchAll('SELECT bank_lent_money.id, bank_lent_money.clientID, bank_lent_money.amount, bank_lent_money.amountNextDeadline, bank_lent_money.alreadyPaid, bank_lent_money.remainDeadlines, bank_lent_money.timeBeforeDeadline, bank_lent_money.deadlines FROM bank_lent_money WHERE bank_lent_money.status = "Ouvert" AND bank_lent_money.timeLeft = "0" AND bank_lent_money.remainDeadlines > "0"',
	{}, function(result) 
		for i=1, #result, 1 do
			MySQL.Async.fetchAll('SELECT users.accounts FROM users WHERE users.identifier = @clientID', 
			{['@clientID'] = result[i].clientID}, function(bankmoney) 
				local playerbank = json.decode(bankmoney[1].accounts)["bank"] 
                local playerAccounts = json.decode(bankmoney[1].accounts)
				if result[i].remainDeadlines > 1 then
					--User can pay
					if playerbank > result[i].amountNextDeadline then
						MySQL.Async.execute('UPDATE bank_lent_money SET bank_lent_money.remainDeadlines = @remainingDeadlines, bank_lent_money.alreadyPaid = @alreadyPaid, bank_lent_money.timeLeft = @timeLeft WHERE bank_lent_money.id = @identifiant', 
						{
							['@identifiant']   			= result[i].id,
							['@remainingDeadlines']   	= result[i].remainDeadlines - 1,
							['@alreadyPaid']   			= result[i].alreadyPaid + result[i].amountNextDeadline,
							['@timeLeft']   			= result[i].timeBeforeDeadline	
						})
                        playerAccounts["bank"] = playerAccounts["bank"] - result[i].amountNextDeadline
						MySQL.Async.execute('UPDATE users SET users.accounts = @account WHERE users.identifier = @clientID', 
						{
							['@account']    				= json.encode(playerAccounts),
							['@clientID']   				= result[i].clientID	
						})
						TriggerEvent('esx_addonaccount:getSharedAccount', 'society_banker', function(account)
								account.addMoney(result[i].amountNextDeadline)
						end)
					-- User cannot pay	
					else
						MySQL.Async.execute('UPDATE bank_lent_money SET bank_lent_money.status = @status WHERE bank_lent_money.id = @identifiant', 
						{
							['@identifiant']   			= result[i].id,
							['@status']					= _U('unpayed_freeze') .. os.date ("%c")
						})
					end
				else
					--User can pay
					if playerbank > result[i].amountNextDeadline then
						MySQL.Async.execute('UPDATE bank_lent_money SET bank_lent_money.remainDeadlines = 0, bank_lent_money.alreadyPaid = @alreadyPaid, bank_lent_money.timeLeft = 0, bank_lent_money.status = "Clos" WHERE bank_lent_money.id = @identifiant', 
						{
							['@identifiant']   			= result[i].id,
							['@alreadyPaid']   			= result[i].alreadyPaid + result[i].amountNextDeadline
						})
                        playerAccounts["bank"] = playerAccounts["bank"] - result[i].amountNextDeadline
						MySQL.Async.execute('UPDATE users SET users.accounts = @accounts WHERE users.identifier = @clientID', 
						{
							['@accounts']   				= json.encode(playerAccounts),
							['@clientID']   				= result[i].clientID	
						})
						TriggerEvent('esx_addonaccount:getSharedAccount', 'society_banker', function(account)
							account.addMoney(result[i].amountNextDeadline)
						end)
					-- User cannot pay	
					else
						MySQL.Async.execute('UPDATE bank_lent_money SET bank_lent_money.status = @status WHERE bank_lent_money.id = @identifiant', 
						{
							['@identifiant']   			= result[i].id,
							['@status']					= _U('unpayed_freeze') .. os.date ("%c")
						})
					end
				end
			end)
		end
	end)
	print(os.date ("%c") .. _U('checking_expired_deadline_loans_end'))
end
TriggerEvent('cron:runAt', Config.CRONLoanTime[1], Config.CRONLoanTime[2], CheckPretExpire)