Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

users.bank doesn't exist #1

Closed
john1299 opened this issue Mar 31, 2021 · 1 comment
Closed

users.bank doesn't exist #1

john1299 opened this issue Mar 31, 2021 · 1 comment
Labels

Comments

@john1299
Copy link

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

@BenoursonJ
Copy link
Owner

BenoursonJ commented Mar 31, 2021

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants