2022-02-05 15:44:29 +00:00
local QBCore = exports [ ' qb-core ' ] : GetCoreObject ( )
RegisterServerEvent ( ' jim-payments:Tickets:Give ' )
AddEventHandler ( ' jim-payments:Tickets:Give ' , function ( amount , job )
for k , v in pairs ( QBCore.Functions . GetPlayers ( ) ) do
local Player = QBCore.Functions . GetPlayer ( v )
if Player ~= nil then
if Player.PlayerData . job.name == job and Player.PlayerData . job.onduty then
if amount >= Config.Jobs [ job ] . MinAmountforTicket then
Player.Functions . AddItem ( ' payticket ' , 1 , false , { [ " quality " ] = nil } )
TriggerClientEvent ( ' QBCore:Notify ' , Player.PlayerData . source , ' Receipt received ' , ' success ' )
TriggerClientEvent ( ' inventory:client:ItemBox ' , Player.PlayerData . source , QBCore.Shared . Items [ ' payticket ' ] , " add " , 1 )
elseif amount < Config.Jobs [ job ] . MinAmountforTicket then
TriggerClientEvent ( " QBCore:Notify " , Player.PlayerData . source , " Amount too low, didn't receive a receipt " , " error " )
end
end
end
end
end )
RegisterServerEvent ( ' jim-payments:Tickets:Sell ' )
AddEventHandler ( ' jim-payments:Tickets:Sell ' , function ( data )
local Player = QBCore.Functions . GetPlayer ( source )
if Player.Functions . GetItemByName ( " payticket " ) == nil then TriggerClientEvent ( ' QBCore:Notify ' , source , " No tickets to trade " , ' error ' ) return
else
tickets = Player.Functions . GetItemByName ( " payticket " ) . amount
Player.Functions . RemoveItem ( ' payticket ' , tickets )
2022-02-05 20:15:02 +00:00
pay = ( tickets * Config.Jobs [ Player.PlayerData . job.name ] . PayPerTicket )
2022-02-05 20:02:29 +00:00
Player.Functions . AddMoney ( ' bank ' , pay , ' ticket-payment ' )
2022-02-05 15:44:29 +00:00
TriggerClientEvent ( ' inventory:client:ItemBox ' , source , QBCore.Shared . Items [ ' payticket ' ] , " remove " , tickets )
TriggerClientEvent ( ' QBCore:Notify ' , source , " Tickets: " .. tickets .. " Total: $ " .. pay , ' success ' )
end
end )
2022-02-09 12:55:49 +00:00
QBCore.Functions . CreateCallback ( ' jim-payments:Ticket:Count ' , function ( source , cb )
if QBCore.Functions . GetPlayer ( source ) . Functions.GetItemByName ( ' payticket ' ) == nil then amount = 0
else amount = QBCore.Functions . GetPlayer ( source ) . Functions.GetItemByName ( ' payticket ' ) . amount end
cb ( amount )
end )
2022-02-05 15:44:29 +00:00
RegisterServerEvent ( " jim-payments:server:Charge " , function ( citizen , price , billtype )
local biller = QBCore.Functions . GetPlayer ( source )
local billed = QBCore.Functions . GetPlayer ( tonumber ( citizen ) )
local amount = tonumber ( price )
local billtype = string.lower ( tostring ( billtype ) )
if billed ~= nil then
if billtype == " cash " then balance = billed.Functions . GetMoney ( billtype )
2022-02-09 12:55:49 +00:00
--if source == tonumber(citizen) then TriggerClientEvent('QBCore:Notify', source, 'You Cannot Bill Yourself', 'error') return end
2022-02-05 15:44:29 +00:00
if balance >= amount then
billed.Functions . RemoveMoney ( ' cash ' , amount ) TriggerEvent ( " qb-bossmenu:server:addAccountMoney " , tostring ( biller.PlayerData . job.name ) , amount )
TriggerEvent ( ' jim-payments:Tickets:Give ' , amount , tostring ( biller.PlayerData . job.name ) )
elseif balance < amount then
TriggerClientEvent ( " QBCore:Notify " , source , " Customer doesn't have enough cash to pay " , " error " )
TriggerClientEvent ( " QBCore:Notify " , tonumber ( citizen ) , " You don't have enough cash to pay " , " error " )
end
elseif billtype == " card " then
2022-02-09 12:55:49 +00:00
--if biller.PlayerData.citizenid == billed.PlayerData.citizenid then TriggerClientEvent('QBCore:Notify', source, 'You Cannot Bill Yourself', 'error') return end
2022-02-05 15:44:29 +00:00
if amount and amount > 0 then
MySQL.Async . insert (
' INSERT INTO phone_invoices (citizenid, amount, society, sender, sendercitizenid) VALUES (?, ?, ?, ?, ?) ' ,
{ billed.PlayerData . citizenid , amount , biller.PlayerData . job.name ,
biller.PlayerData . charinfo.firstname , biller.PlayerData . citizenid } )
TriggerClientEvent ( ' qb-phone:RefreshPhone ' , billed.PlayerData . source )
TriggerClientEvent ( ' QBCore:Notify ' , source , ' Invoice Successfully Sent ' , ' success ' )
TriggerClientEvent ( ' QBCore:Notify ' , billed.PlayerData . source , ' New Invoice Received ' )
else TriggerClientEvent ( ' QBCore:Notify ' , source , ' Must Be A Valid Amount Above 0 ' , ' error ' ) end
end
else TriggerClientEvent ( ' QBCore:Notify ' , source , ' Player Not Online ' , ' error ' ) end
end )
2022-02-09 12:55:49 +00:00
QBCore.Functions . CreateCallback ( ' jim-payments:Name:Find ' , function ( source , cb , user )
local Player = QBCore.Functions . GetPlayer ( tonumber ( user ) )
name = Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname
cb ( name )
end )