Proper string formatting, no more hardcoded $ signs

This commit is contained in:
ElPumpo
2018-11-25 16:08:28 +01:00
parent e8fbc009a8
commit 786d6d24a0
9 changed files with 157 additions and 187 deletions
+17 -25
View File
@@ -23,38 +23,30 @@ end)
function ShowBillsMenu()
ESX.TriggerServerCallback('esx_billing:getBills', function(bills)
ESX.UI.Menu.CloseAll()
local elements = {}
for i=1, #bills, 1 do
table.insert(elements, {label = bills[i].label .. ' - <span style="color: red;">$' .. bills[i].amount .. '</span>', value = bills[i].id})
table.insert(elements, {
label = ('%s - <span style="color:red;">%s</span>'):format(bills[i].label, _U('invoices_item', ESX.Math.GroupDigits(bills[i].amount))),
billID = bills[i].id
})
end
ESX.UI.Menu.Open(
'default', GetCurrentResourceName(), 'billing',
{
title = _U('invoices'),
align = 'bottom-right',
elements = elements
},
function(data, menu)
menu.close()
local billId = data.current.value
ESX.TriggerServerCallback('esx_billing:payBill', function()
ShowBillsMenu()
end, billId)
end,
function(data, menu)
menu.close()
end
)
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'billing',
{
title = _U('invoices'),
align = 'bottom-right',
elements = elements
}, function(data, menu)
menu.close()
ESX.TriggerServerCallback('esx_billing:payBill', function()
ShowBillsMenu()
end, data.current.billID)
end, function(data, menu)
menu.close()
end)
end)
end
+1
View File
@@ -1,5 +1,6 @@
Locales['br'] = {
['invoices'] = 'faturas',
['invoices_item'] = '$%s',
['received_invoice'] = 'você ~r~recebeu~s~ uma fatura',
['paid_invoice'] = 'você ~g~pagou~s~ uma fatura de ~r~$%s~s~',
['received_payment'] = 'você ~g~recebeu~s~ um pagamento de ~r~$%s~s~',
+1
View File
@@ -1,5 +1,6 @@
Locales['de'] = {
['invoices'] = 'rechnungen',
['invoices_item'] = '$%s',
['received_invoice'] = 'you hast eine Rechnung ~r~erhlaten~s~',
['paid_invoice'] = 'du ~g~bezahlst~s~ eine Rechnung von ~r~$%s~s~',
['received_payment'] = 'du ~g~erhältst~s~ eine Zahlung von ~r~$%s~s~',
+1
View File
@@ -1,5 +1,6 @@
Locales['en'] = {
['invoices'] = 'invoices',
['invoices_item'] = '$%s',
['received_invoice'] = 'you have just ~r~received~s~ an invoice',
['paid_invoice'] = 'you ~g~paid~s~ an invoice of ~r~$%s~s~',
['received_payment'] = 'you ~g~received~s~ a payment of ~r~$%s~s~',
+1
View File
@@ -1,5 +1,6 @@
Locales['es'] = {
['invoices'] = 'facturas',
['invoices_item'] = '€%s',
['received_invoice'] = 'has ~r~recibido~s~ una multa',
['paid_invoice'] = 'has ~g~pagado~s~ una multa de ~r~€%s~s~',
['received_payment'] = 'has ~g~recibido~s~ un pago de ~g~€%s~s~',
+1
View File
@@ -1,5 +1,6 @@
Locales['fi'] = {
['invoices'] = 'laskut',
['invoices_item'] = '$%s',
['received_invoice'] = 'sinä ~r~sait~s~ laskun',
['paid_invoice'] = 'sinä ~g~maksoit~s~ laskun suuruudelta ~r~$%s~s~',
['received_payment'] = 'sinä ~g~sait~s~ maksun suuruudelta ~r~$%s~s~',
+1
View File
@@ -1,5 +1,6 @@
Locales['fr'] = {
['invoices'] = 'factures',
['invoices_item'] = '$%s',
['received_invoice'] = 'vous avez ~r~reçu~s~ une facture',
['paid_invoice'] = 'vous avez ~g~payé~s~ une facture de ~r~$%s~s~',
['received_payment'] = 'vous avez ~g~reçu~s~ un paiement de ~g~$%s~s~',
+1
View File
@@ -1,5 +1,6 @@
Locales['sv'] = {
['invoices'] = 'räkningar',
['invoices_item'] = '%s SEK',
['received_invoice'] = 'du har ~y~mottagit~s~ en räkning',
['paid_invoice'] = 'du ~y~betalade~s~ precis en räkning på ~g~%s SEK~s~',
['received_payment'] = 'du har ~y~mottagit~s~ en räkning på ~g~%s SEK~s~',
+133 -162
View File
@@ -7,47 +7,42 @@ AddEventHandler('esx_billing:sendBill', function(playerId, sharedAccountName, la
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
local xTarget = ESX.GetPlayerFromId(playerId)
amount = ESX.Math.Round(amount)
TriggerEvent('esx_addonaccount:getSharedAccount', sharedAccountName, function(account)
if amount < 0 then
print('esx_billing: ' .. GetPlayerName(_source) .. ' tried sending a negative bill!')
print(('esx_billing: %s attempted to send a negative bill!'):format(xPlayer.identifier))
elseif account == nil then
if xTarget ~= nil then
MySQL.Async.execute(
'INSERT INTO billing (identifier, sender, target_type, target, label, amount) VALUES (@identifier, @sender, @target_type, @target, @label, @amount)',
{
['@identifier'] = xTarget.identifier,
['@sender'] = xPlayer.identifier,
['@target_type'] = 'player',
['@target'] = xPlayer.identifier,
['@label'] = label,
['@amount'] = amount
},
function(rowsChanged)
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_invoice'))
end
)
MySQL.Async.execute('INSERT INTO billing (identifier, sender, target_type, target, label, amount) VALUES (@identifier, @sender, @target_type, @target, @label, @amount)',
{
['@identifier'] = xTarget.identifier,
['@sender'] = xPlayer.identifier,
['@target_type'] = 'player',
['@target'] = xPlayer.identifier,
['@label'] = label,
['@amount'] = amount
}, function(rowsChanged)
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_invoice'))
end)
end
else
if xTarget ~= nil then
MySQL.Async.execute(
'INSERT INTO billing (identifier, sender, target_type, target, label, amount) VALUES (@identifier, @sender, @target_type, @target, @label, @amount)',
{
['@identifier'] = xTarget.identifier,
['@sender'] = xPlayer.identifier,
['@target_type'] = 'society',
['@target'] = sharedAccountName,
['@label'] = label,
['@amount'] = amount
},
function(rowsChanged)
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_invoice'))
end
)
MySQL.Async.execute('INSERT INTO billing (identifier, sender, target_type, target, label, amount) VALUES (@identifier, @sender, @target_type, @target, @label, @amount)',
{
['@identifier'] = xTarget.identifier,
['@sender'] = xPlayer.identifier,
['@target_type'] = 'society',
['@target'] = sharedAccountName,
['@label'] = label,
['@amount'] = amount
}, function(rowsChanged)
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_invoice'))
end)
end
end
@@ -58,180 +53,156 @@ end)
ESX.RegisterServerCallback('esx_billing:getBills', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
MySQL.Async.fetchAll(
'SELECT * FROM billing WHERE identifier = @identifier',
{
['@identifier'] = xPlayer.identifier
},
function(result)
local bills = {}
for i=1, #result, 1 do
table.insert(bills, {
id = result[i].id,
identifier = result[i].identifier,
sender = result[i].sender,
targetType = result[i].target_type,
target = result[i].target,
label = result[i].label,
amount = result[i].amount
})
end
cb(bills)
MySQL.Async.fetchAll('SELECT * FROM billing WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
local bills = {}
for i=1, #result, 1 do
table.insert(bills, {
id = result[i].id,
identifier = result[i].identifier,
sender = result[i].sender,
targetType = result[i].target_type,
target = result[i].target,
label = result[i].label,
amount = result[i].amount
})
end
)
cb(bills)
end)
end)
ESX.RegisterServerCallback('esx_billing:getTargetBills', function(source, cb, target)
local xPlayer = ESX.GetPlayerFromId(target)
MySQL.Async.fetchAll(
'SELECT * FROM billing WHERE identifier = @identifier',
{
['@identifier'] = xPlayer.identifier
},
function(result)
local bills = {}
for i=1, #result, 1 do
table.insert(bills, {
id = result[i].id,
identifier = result[i].identifier,
sender = result[i].sender,
targetType = result[i].target_type,
target = result[i].target,
label = result[i].label,
amount = result[i].amount
})
end
cb(bills)
MySQL.Async.fetchAll('SELECT * FROM billing WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
local bills = {}
for i=1, #result, 1 do
table.insert(bills, {
id = result[i].id,
identifier = result[i].identifier,
sender = result[i].sender,
targetType = result[i].target_type,
target = result[i].target,
label = result[i].label,
amount = result[i].amount
})
end
)
cb(bills)
end)
end)
ESX.RegisterServerCallback('esx_billing:payBill', function(source, cb, id)
local xPlayer = ESX.GetPlayerFromId(source)
MySQL.Async.fetchAll(
'SELECT * FROM billing WHERE id = @id',
{
['@id'] = id
}, function(result)
MySQL.Async.fetchAll('SELECT * FROM billing WHERE id = @id', {
['@id'] = id
}, function(result)
local sender = result[1].sender
local targetType = result[1].target_type
local target = result[1].target
local amount = result[1].amount
local sender = result[1].sender
local targetType = result[1].target_type
local target = result[1].target
local amount = result[1].amount
local xTarget = ESX.GetPlayerFromIdentifier(sender)
local xTarget = ESX.GetPlayerFromIdentifier(sender)
if targetType == 'player' then
if targetType == 'player' then
if xTarget ~= nil then
if xTarget ~= nil then
if xPlayer.getMoney() >= amount then
if xPlayer.getMoney() >= amount then
MySQL.Async.execute('DELETE from billing WHERE id = @id',
{
['@id'] = id
}, function(rowsChanged)
xPlayer.removeMoney(amount)
xTarget.addMoney(amount)
MySQL.Async.execute('DELETE from billing WHERE id = @id', {
['@id'] = id
}, function(rowsChanged)
xPlayer.removeMoney(amount)
xTarget.addMoney(amount)
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', amount))
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', amount))
cb()
end)
elseif xPlayer.getBank() >= amount then
MySQL.Async.execute('DELETE from billing WHERE id = @id',
{
['@id'] = id
}, function(rowsChanged)
xPlayer.removeAccountMoney('bank', amount)
xTarget.addAccountMoney('bank', amount)
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', amount))
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', amount))
cb()
end)
else
TriggerClientEvent('esx:showNotification', xTarget.source, _U('target_no_money'))
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('no_money'))
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', ESX.Math.GroupDigits(amount)))
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', ESX.Math.GroupDigits(amount)))
cb()
end
end)
elseif xPlayer.getBank() >= amount then
MySQL.Async.execute('DELETE from billing WHERE id = @id', {
['@id'] = id
}, function(rowsChanged)
xPlayer.removeAccountMoney('bank', amount)
xTarget.addAccountMoney('bank', amount)
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', ESX.Math.GroupDigits(amount)))
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', ESX.Math.GroupDigits(amount)))
cb()
end)
else
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('player_not_online'))
TriggerClientEvent('esx:showNotification', xTarget.source, _U('target_no_money'))
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('no_money'))
cb()
end
else
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('player_not_online'))
cb()
end
TriggerEvent('esx_addonaccount:getSharedAccount', target, function(account)
else
if xPlayer.getMoney() >= amount then
TriggerEvent('esx_addonaccount:getSharedAccount', target, function(account)
MySQL.Async.execute('DELETE from billing WHERE id = @id',
{
['@id'] = id
}, function(rowsChanged)
xPlayer.removeMoney(amount)
account.addMoney(amount)
if xPlayer.getMoney() >= amount then
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', amount))
if xTarget ~= nil then
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', amount))
end
cb()
end)
elseif xPlayer.getBank() >= amount then
MySQL.Async.execute('DELETE from billing WHERE id = @id',
{
['@id'] = id
}, function(rowsChanged)
xPlayer.removeAccountMoney('bank', amount)
account.addMoney(amount)
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', amount))
if xTarget ~= nil then
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', amount))
end
cb()
end)
else
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('no_money'))
MySQL.Async.execute('DELETE from billing WHERE id = @id', {
['@id'] = id
}, function(rowsChanged)
xPlayer.removeMoney(amount)
account.addMoney(amount)
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', ESX.Math.GroupDigits(amount)))
if xTarget ~= nil then
TriggerClientEvent('esx:showNotification', xTarget.source, _U('target_no_money'))
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', ESX.Math.GroupDigits(amount)))
end
cb()
end
end)
end)
end
elseif xPlayer.getBank() >= amount then
MySQL.Async.execute('DELETE from billing WHERE id = @id', {
['@id'] = id
}, function(rowsChanged)
xPlayer.removeAccountMoney('bank', amount)
account.addMoney(amount)
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_invoice', ESX.Math.GroupDigits(amount)))
if xTarget ~= nil then
TriggerClientEvent('esx:showNotification', xTarget.source, _U('received_payment', ESX.Math.GroupDigits(amount)))
end
cb()
end)
else
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('no_money'))
if xTarget ~= nil then
TriggerClientEvent('esx:showNotification', xTarget.source, _U('target_no_money'))
end
cb()
end
end)
end
)
end)
end)