230 lines
		
	
	
	
		
			8.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			230 lines
		
	
	
	
		
			8.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| QBCore.Functions.CreateCallback('roadphone:getCodeMBilling2', function(source, cb)
 | |
| 
 | |
|     local billings = exports[Config.codemBilling2Folder]:GetPlayerUnpaidBillings(source)
 | |
| 
 | |
|     cb(billings)
 | |
|  
 | |
| end)
 | |
| 
 | |
| 
 | |
| RegisterServerEvent("roadphone:server:codem:payBill")
 | |
| AddEventHandler("roadphone:server:codem:payBill", function(id)
 | |
| 
 | |
|     local _source = source
 | |
| 
 | |
|     exports[Config.codemBilling2Folder]:PayBilling(_source, id)
 | |
| 
 | |
| 
 | |
| end)
 | |
| 
 | |
| if Config.bcsCompanyManager then
 | |
| 
 | |
|     QBCore.Functions.CreateCallback('roadphone:getbilling', function(source, cb)
 | |
|         local e = QBCore.Functions.GetPlayer(source)
 | |
|         MySQL.Async.fetchAll('SELECT * FROM billings WHERE identifier = @identifier AND `status` = "unpaid"', {
 | |
|             ["@identifier"] = e.PlayerData.citizenid
 | |
|         }, function(result)
 | |
|             local billingg = {}
 | |
|             for i = 1, #result, 1 do
 | |
|                 local jobName = "None"
 | |
|                 jobName = result[i].company
 | |
|                 table.insert(billingg, {
 | |
|                     id = result[i].id,
 | |
|                     label = result[i].description,
 | |
|                     sender = jobName,
 | |
|                     target = result[i].biller_id,
 | |
|                     amount = result[i].price
 | |
|                 })
 | |
|             end
 | |
|             cb(billingg)
 | |
|         end)
 | |
|     end)
 | |
| elseif Config.JaksamBilling then
 | |
|     QBCore.Functions.CreateCallback('roadphone:getbilling', function(source, cb)
 | |
|         local e = QBCore.Functions.GetPlayer(source)
 | |
|         MySQL.Async.fetchAll('SELECT * FROM billing WHERE identifier = @identifier', {
 | |
|             ["@identifier"] = e.PlayerData.citizenid
 | |
|         }, function(result)
 | |
|             local billing = {}
 | |
|             for i = 1, #result do
 | |
|                 local jobName = "None"
 | |
|                 if result[i].target_type == "society" then
 | |
|                     jobName = result[i].target:gsub("society_", "")
 | |
|                 else
 | |
|                     jobName = getNameFromIdentifier(result[i].sender)
 | |
|                     if jobName == nil then
 | |
|                         jobName = "Unkown"
 | |
|                     end
 | |
|                 end
 | |
|                 table.insert(billing, {
 | |
|                     id = result[i].id,
 | |
|                     label = result[i].label,
 | |
|                     sender = jobName,
 | |
|                     target = result[i].target,
 | |
|                     amount = result[i].amount
 | |
|                 })
 | |
|             end
 | |
|             cb(billing)
 | |
|         end)
 | |
|     end)
 | |
| 
 | |
| else
 | |
| 
 | |
|     QBCore.Functions.CreateCallback('roadphone:getbilling', function(source, cb)
 | |
|         local e = QBCore.Functions.GetPlayer(source)
 | |
|         MySQL.Async.fetchAll('SELECT * FROM phone_invoices WHERE citizenid = @identifier', {
 | |
|             ["@identifier"] = e.PlayerData.citizenid
 | |
|         }, function(result)
 | |
|             local billing = {}
 | |
|             for i = 1, #result, 1 do
 | |
| 
 | |
|                 local sender = getNameFromIdentifier(result[i].sendercitizenid)
 | |
|                 if sender == nil then
 | |
|                     sender = "Unkown"
 | |
|                 end
 | |
|                 table.insert(billing, {
 | |
|                     id = result[i].id,
 | |
|                     label = "Bill",
 | |
|                     sender = sender,
 | |
|                     target = result[i].citizenid,
 | |
|                     amount = result[i].amount
 | |
|                 })
 | |
|             end
 | |
|             cb(billing)
 | |
|         end)
 | |
|     end)
 | |
| end
 | |
| 
 | |
| QBCore.Functions.CreateCallback('roadphone:server:getbillingdata', function(source, cb, id)
 | |
|     MySQL.Async.fetchAll('SELECT * FROM billing WHERE id = @id', {
 | |
|         ['@id'] = id
 | |
|     }, function(data)
 | |
|         cb(data[1])
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| if not Config.bcsCompanyManager then
 | |
|     RegisterServerEvent("roadphone:server:payBill")
 | |
|     AddEventHandler("roadphone:server:payBill", function(id)
 | |
|         local src = source
 | |
|         local xPlayer = QBCore.Functions.GetPlayer(src)
 | |
| 
 | |
|         MySQL.Async.fetchAll('SELECT * FROM phone_invoices WHERE id = @id', {
 | |
|             ['@id'] = id
 | |
|         }, function(data)
 | |
| 
 | |
|             local SenderPly = QBCore.Functions.GetPlayerByCitizenId(data[1].sendercitizenid)
 | |
| 
 | |
|             xPlayer.Functions.RemoveMoney('bank', data[1].amount, "paid-invoice")
 | |
|             exports['qb-management']:AddMoney(data[1].society, data[1].amount)
 | |
|             MySQL.Async.execute('DELETE FROM phone_invoices WHERE id = @id', {
 | |
|                 ['@id'] = id
 | |
|             })
 | |
| 
 | |
|             TriggerClientEvent('roadphone:sendNotification', src, {
 | |
|                 apptitle = 'APP_BILLING_NAME',
 | |
|                 title = Lang:t('info.info.billing_paid') .. data[1].amount,
 | |
|                 img = '/public/img/Apps/light_mode/billing.webp'
 | |
|             })
 | |
| 
 | |
|             if SenderPly then
 | |
|                 TriggerClientEvent('roadphone:sendNotification', SenderPly.PlayerData.source, {
 | |
|                     apptitle = 'APP_BILLING_NAME',
 | |
|                     title = Lang:t('info.info.billing_paid') .. data[1].amount,
 | |
|                     img = '/public/img/Apps/light_mode/billing.webp'
 | |
|                 })
 | |
|             end
 | |
|         end)
 | |
| 
 | |
|         TriggerClientEvent('roadphone:updatebilling', src)
 | |
|     end)
 | |
| 
 | |
| elseif Config.bcsCompanyManager then
 | |
|     RegisterServerEvent("roadphone:server:payBill")
 | |
|     AddEventHandler("roadphone:server:payBill", function(id)
 | |
|         local src = source
 | |
|         local xPlayer = QBCore.Functions.GetPlayer(src)
 | |
| 
 | |
|         MySQL.Async.fetchAll('SELECT * FROM billing WHERE id = @id', {
 | |
|             ['@id'] = id
 | |
|         }, function(data)
 | |
| 
 | |
|             local xTarget = QBCore.Functions.GetPlayerByCitizenId(data[1].sender)
 | |
|             local target = data[1].biller_id
 | |
|             local amount = data[1].price
 | |
| 
 | |
|             if xTarget then
 | |
|                 if amount then
 | |
|                     if xPlayer.Functions.GetMoney('bank') >= amount then
 | |
| 
 | |
|                         MySQL.Async.execute('UPDATE billings SET `status`="paid" WHERE id = @id', {
 | |
|                             ['@id'] = id
 | |
|                         }, function(rowsChanged)
 | |
|                             xTarget.Functions.AddMoney('bank', amount, 'bill received')
 | |
|                             xPlayer.Functions.RemoveMoney('bank', amount, 'bill paid')
 | |
| 
 | |
|                             TriggerClientEvent('roadphone:sendNotification', src, {
 | |
|                                 apptitle = 'APP_BILLING_NAME',
 | |
|                                 title = Lang:t('info.billing_paid') .. amount,
 | |
|                                 img = '/public/img/Apps/light_mode/billing.webp'
 | |
|                             })
 | |
|                             TriggerClientEvent('roadphone:sendNotification', xTarget.PlayerData.source, {
 | |
|                                 apptitle = 'APP_BILLING_NAME',
 | |
|                                 title = Lang:t('info.billing_paid') .. amount,
 | |
|                                 img = '/public/img/Apps/light_mode/billing.webp'
 | |
|                             })
 | |
| 
 | |
|                             TriggerClientEvent('roadphone:updatebilling', xPlayer.PlayerData.source)
 | |
|                             TriggerClientEvent('roadphone:updatebilling', xTarget.PlayerData.source)
 | |
| 
 | |
|                         end)
 | |
| 
 | |
|                     else
 | |
| 
 | |
|                         TriggerClientEvent('roadphone:sendNotification', src, {
 | |
|                             apptitle = 'APP_BILLING_NAME',
 | |
|                             title = Lang:t('info.billing_nomoney') .. amount,
 | |
|                             img = '/public/img/Apps/light_mode/billing.webp'
 | |
|                         })
 | |
| 
 | |
|                     end
 | |
| 
 | |
|                 else
 | |
| 
 | |
|                     TriggerClientEvent('roadphone:sendNotification', src, {
 | |
|                         apptitle = 'APP_BILLING_NAME',
 | |
|                         title = Lang:t('info.billing_nomoney') .. amount,
 | |
|                         img = '/public/img/Apps/light_mode/billing.webp'
 | |
|                     })
 | |
|                 end
 | |
| 
 | |
|             end
 | |
|         end)
 | |
|     end)
 | |
| end
 | |
| 
 | |
| QBCore.Functions.CreateCallback('roadphone:server:getBillingIDS', function(source, cb)
 | |
| 
 | |
|     local xPlayer = QBCore.Functions.GetPlayer(source)
 | |
| 
 | |
|     if not xPlayer then
 | |
|         return
 | |
|     end
 | |
| 
 | |
|     MySQL.Async.fetchAll('SELECT id FROM billing WHERE identifier = @identifier', {
 | |
|         ['@identifier'] = xPlayer.PlayerData.citizenid
 | |
|     }, function(result)
 | |
|         cb(result)
 | |
|     end)
 | |
| 
 | |
| end)
 | |
| 
 | |
| if Config.JaksamBilling then
 | |
|     AddEventHandler("billing_ui:onBillCreated",
 | |
|         function(billId, senderIdentfier, targetIdentifier, amount, date, unixDate)
 | |
|             local xPlayer = QBCore.Functions.GetPlayerByCitizenId(targetIdentifier)
 | |
|             if xPlayer then
 | |
|                 TriggerClientEvent('roadphone:updatebilling', xPlayer.PlayerData.source)
 | |
|             end
 | |
|         end)
 | |
| end
 | 
