[ FREE / ESX ] Illama Billing - The most advanced billing system ever!


Illama Billing - FiveM Script


:uk: English Version

:clipboard: Overview

Illama Billing is a secure and efficient billing script for FiveM, designed to simplify the management of personal and job-related bills. It supports advanced features such as recurring payments, group billing, and real-time notifications, ensuring a seamless experience for players and server administrators.


:star2: Features

:control_knobs: Bill Management

  1. Personal Bills:

    • Manage pending personal bills.
    • Actions: Pay, delete, or view bill details.
  2. Job-Related Bills:

    • Create or manage bills linked to your job.
    • Supports standard and recurring bills.
    • Allows group billing for configured jobs.
  3. Complete History:

    • Search all your past transactions, whether personal or job-related.

:bulb: Bill Creation

  1. New Bills:

    • Fully customizable (amount, reason).
    • Ideal for one-time or unique bills.
  2. Recurring Bills:

    • Set up subscriptions (monthly, weekly) with customizable intervals.
  3. Group Billing:

    • Available for personal bills and configured jobs.
    • Choose from three distribution methods:
      • Equal distribution: The total amount is evenly split among group members.
      • Fixed amount per member: Each group member is billed the same fixed amount.
      • Percentage-based distribution: The total amount is divided based on specified percentages.
  4. Preconfigured Templates:

    • Example: Minor speeding violations ($750 for police).

:money_with_wings: Payments and Actions

  1. Payment Options:

    • :dollar: Pay in cash.
    • :bank: Pay via bank transfer.
  2. Recurring Payment Management:

    • Cancel or configure advance payments.
    • View detailed payment history.

:hammer_and_wrench: Advanced Features

:gear: Technical Details

  • Player Selection:
    • Identify nearby players and issue bills to them.
  • Permission Verification:
    • Limit access to features based on job and grade.

:globe_with_meridians: Multi-Language Support

  • Supports over five languages, configurable via localization files.

:zap: Performance

  • Optimized to run at 0.00ms, ensuring minimal impact on server performance.

:shield: Job Support

:policeman: Police

Example configuration:

['police'] = {
        minGrade = 0,
        label = 'LSPD',
        maxAmount = 100000,
        allowRecurring = true,
        allowGroup = false,
        allowCheck = true,
        recurringMaxAmount = 50000,
        templates = {
            {
                label = "ExcÚs de vitesse léger",
                reason = "ExcÚs de vitesse inférieur à 30km/h",
                amount = 750
            },
            {
                label = "Autre (personnalisé)",
                reason = "",
                amount = 0
            }
        },
        recurringTemplates = {
            {
                label = "Protection Mensuelle Standard",
                reason = "Service de protection mensuel - Forfait standard",
                amount = 5000,
                interval = 30
            },
            {
                label = "Protection Mensuelle Premium",
                reason = "Service de protection mensuel - Forfait premium",
                amount = 10000,
                interval = 30
            },
            {
                label = "Autre (personnalisé)",
                reason = "",
                amount = 0,
                interval = 0
            }
        },
        webhooks = {
            bill_created = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 3447003
            },
            bill_paid = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 3066993
            },
            bill_deleted = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 15158332
            },
            recurring_created = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 10181046
            },
            recurring_payment = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 15105570
            },
            installment_created = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 3447003
            },
            installment_payment = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 10181046
            },
            logo = "YOUR_IMAGE_URL"
        }
    },

:open_file_folder: Data Management

  1. SQL Integration:

    • Required: Import the SQL file located at Install/sql.sql into your database.
    • Includes all necessary tables for smooth script functionality.
  2. Easy Configuration:

    • Add new jobs, templates, or recurring options as per your server’s needs.

:handshake: Dependencies

Before starting the script, ensure the following dependencies are installed and loaded:

  1. OX Lib: For notifications and context menus.
  2. ES Extended: Base framework for ESX.

Both dependencies must be started before loading the Illama Billing script.


:hammer_and_wrench: Installation Guide

  1. Download the script release directly from the GitHub Releases page. Do not use git clone, as the script will not work properly without the release version.
  2. Place the script in your resources folder.
  3. Import the SQL file into your database (Install/sql.sql).
  4. Add the following to your server.cfg:
    ensure ox_lib
    ensure es_extended
    ensure illama_billing
    
  5. Start your server and enjoy!

:handshake: Support & Community

  • Contact: Illama on Discord for any issues or questions.
  • Join the Community: Get updates, support, and access to future features.

Voici la version complÚte en français du README pour Illama Billing - Script FiveM :


Illama Billing - Script FiveM


:fr: Version Française

:clipboard: Présentation

Illama Billing est un script de facturation sécurisé et performant pour FiveM, conçu pour simplifier la gestion des factures personnelles et professionnelles. Il prend en charge des fonctionnalités avancées telles que les paiements récurrents, les factures de groupe et les notifications en temps réel, offrant une expérience fluide pour les joueurs et les administrateurs de serveurs.


:star2: Fonctionnalités

:control_knobs: Gestion des factures

  1. Factures personnelles :

    • GĂ©rez vos factures personnelles en attente.
    • Actions : payer, supprimer ou consulter les dĂ©tails des factures.
  2. Factures d’entreprise :

    • CrĂ©ez ou gĂ©rez des factures liĂ©es Ă  votre mĂ©tier.
    • Prend en charge les factures standards et rĂ©currentes.
    • Permet la facturation de groupe pour les mĂ©tiers configurĂ©s.
  3. Historique complet :

    • Recherchez toutes vos transactions passĂ©es, qu’elles soient personnelles ou professionnelles.

:bulb: Création de factures

  1. Nouvelles factures :

    • EntiĂšrement personnalisable (montant, raison).
    • IdĂ©al pour des factures uniques ou spĂ©cifiques.
  2. Factures récurrentes :

    • Configurez des abonnements (mensuels, hebdomadaires) avec des intervalles personnalisĂ©s.
  3. Factures de groupe :

    • Disponible pour les factures personnelles et les mĂ©tiers configurĂ©s.
    • Trois modes de rĂ©partition disponibles :
      • RĂ©partition Ă©gale : Le montant total est divisĂ© Ă©quitablement entre les membres du groupe.
      • Montant fixe : Chaque membre reçoit une facture du mĂȘme montant.
      • RĂ©partition par pourcentage : Le montant total est rĂ©parti selon des pourcentages dĂ©finis.
  4. ModÚles prédéfinis :

    • Exemple : ExcĂšs de vitesse lĂ©ger (750 $ pour la police).

:money_with_wings: Paiements et actions

  1. Options de paiement :

    • :dollar: Payer en espĂšces.
    • :bank: Payer via une banque.
  2. Gestion des paiements récurrents :

    • Annulez ou configurez des paiements anticipĂ©s.
    • Consultez l’historique dĂ©taillĂ© des paiements.

:hammer_and_wrench: Fonctionnalités avancées

:gear: Détails techniques

  • SĂ©lection des joueurs :
    • Identifiez les joueurs proches et Ă©mettez des factures.
  • VĂ©rification des permissions :
    • Limitez l’accĂšs aux fonctionnalitĂ©s en fonction du mĂ©tier et du grade.

:globe_with_meridians: Support multilingue

  • Supporte plus de cinq langues, configurable via des fichiers de localisation.

:zap: Performance

  • OptimisĂ© pour fonctionner Ă  0.00ms, minimisant l’impact sur les performances du serveur.

:shield: Support métier

:policeman: Police

Exemple de configuration :

['police'] = {
        minGrade = 0,
        label = 'LSPD',
        maxAmount = 100000,
        allowRecurring = true,
        allowGroup = false,
        allowCheck = true,
        recurringMaxAmount = 50000,
        templates = {
            {
                label = "ExcÚs de vitesse léger",
                reason = "ExcÚs de vitesse inférieur à 30km/h",
                amount = 750
            },
            {
                label = "Autre (personnalisé)",
                reason = "",
                amount = 0
            }
        },
        recurringTemplates = {
            {
                label = "Protection Mensuelle Standard",
                reason = "Service de protection mensuel - Forfait standard",
                amount = 5000,
                interval = 30
            },
            {
                label = "Protection Mensuelle Premium",
                reason = "Service de protection mensuel - Forfait premium",
                amount = 10000,
                interval = 30
            },
            {
                label = "Autre (personnalisé)",
                reason = "",
                amount = 0,
                interval = 0
            }
        },
        webhooks = {
            bill_created = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 3447003
            },
            bill_paid = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 3066993
            },
            bill_deleted = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 15158332
            },
            recurring_created = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 10181046
            },
            recurring_payment = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 15105570
            },
            installment_created = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 3447003
            },
            installment_payment = {
                enabled = true,
                url = "YOUR_WEBHOOK_URL",
                color = 10181046
            },
            logo = "YOUR_IMAGE_URL"
        }
    },

:open_file_folder: Gestion des données

  1. Intégration SQL :

    • Obligatoire : Importez le fichier SQL situĂ© dans Install/sql.sql dans votre base de donnĂ©es.
    • Inclut toutes les tables nĂ©cessaires au bon fonctionnement du script.
  2. Configuration simple :

    • Ajoutez de nouveaux mĂ©tiers, modĂšles ou options rĂ©currentes en fonction des besoins de votre serveur.

:handshake: Dépendances

Avant de démarrer le script, assurez-vous que les dépendances suivantes sont installées et chargées :

  1. OX Lib : Pour les notifications et les menus contextuels.
  2. ES Extended : Framework de base pour ESX.

Ces dĂ©pendances doivent ĂȘtre dĂ©marrĂ©es avant de charger le script Illama Billing.


:hammer_and_wrench: Guide d’installation

  1. Téléchargez directement la release du script depuis la page GitHub Releases. Ne pas utiliser git clone, car le script ne fonctionnera pas correctement sans la version de release.
  2. Placez le script dans votre dossier resources.
  3. Importez le fichier SQL dans votre base de données (Install/sql.sql).
  4. Ajoutez les lignes suivantes dans votre server.cfg :
    ensure ox_lib
    ensure es_extended
    ensure illama_billing
    
  5. Lancez votre serveur et profitez-en !

:handshake: Support et communauté

  • Contact : Illama sur Discord pour toute question ou problĂšme.
  • Rejoignez la communautĂ© : BĂ©nĂ©ficiez des mises Ă  jour, du support et des fonctionnalitĂ©s futures.

Illama Billing - YouTube Preview

Illama Billing - Main GitHub

Illama Billing - Main releases


2 Likes

Version 2.0.5 de illama_billing. Les modifications/ajouts sont les suivants :

  • Correction : Correction des traductions manquantes pour les factures groupĂ©es.
  • Correction : Correction d’un bug liĂ© Ă  une description invalide lors de la crĂ©ation d’une facture groupĂ©e.

Version 2.0.5 of illama_billing. The modifications/additions are as follows:

  • Fix: Fixed missing translations for grouped invoices.
  • Fix: Fixed a bug with invalid description when creating a grouped invoice.

Version 2.0.6 de illama_billing. Les modifications/ajouts sont les suivants :

  • Ajout : Mode sombre/jour pour les Ă©lĂ©ments avec un affichage.

Version 2.0.6 of illama_billing. The modifications/additions are as follows:

  • Add: Dark/light mode for elements with a display.

Salut j’ai un petit soucis

voila je veut faire une facture avec mon job police mais sa ne fonctionne pas

je selectionne ExcÚs de vitesse léger je valide et sa me dit Description invalide
qaund je passe par Autre (personnalisé) aucun soucis

j’ai tester de changer dans le config et jai mit

{
label = “ExcĂšs de vitesse lĂ©ger”,
reason = “ExcĂšs de vitesse infĂ©rieur Ă  30km/h”,
amount = 0
},
sa mouvre bien la facture personaliser et sa fonctionne

ensuite j’ai une petite question
comment je peut integrer la facture a un des script que j’utilise ?
je te met la fonction

RegisterServerEvent(‘brutal_policejob:server:GiveFine’)
AddEventHandler(‘brutal_policejob:server:GiveFine’, function(job, jobname, targetIdentifier, name, price, targetname)
if targetname == nil then
targetname = GetPlayerNameFunction(source)
end

if type(targetIdentifier) == 'number' then
    targetIdentifier = GetIdentifier(targetIdentifier)
end

if Config.Billing:lower() == 'esx_billing' then
    MySQL.insert('INSERT INTO billing (identifier, sender, target_type, target, label, amount) VALUES (?, ?, ?, ?, ?, ?)', {targetIdentifier, 'society_'..job, 'society', 'society_'..job, name, price})
elseif Config.Billing:lower() == 'okokbilling' then
    MySQL.insert('INSERT INTO okokbilling (ref_id, fees_amount, receiver_identifier, receiver_name, author_identifier, author_name, society, society_name, item, invoice_value, status, notes, sent_date, limit_pay_date) VALUES (CONCAT("OK", UPPER(LEFT(UUID(), 8))), 0, @receiver_identifier, @receiver_name, @author_identifier, @author_name, @society, @society_name, @item, @invoice_value, @status, @notes, CURRENT_TIMESTAMP(), DATE_ADD(CURRENT_DATE, INTERVAL 7 DAY))', {
        ['@receiver_identifier'] = targetIdentifier,
        ['@receiver_name'] = targetname,
        ['@author_identifier'] = 'society_'..job,
        ['@author_name'] = name,
        ['@society'] = 'society_'..job,
        ['@society_name'] = jobname,
        ['@item'] = name,
        ['@invoice_value'] = price,
        ['@status'] = 'unpaid',
        ['@notes'] = ''
    })
elseif Config.Billing:lower() == 'jaksam_billing' then
    MySQL.insert('INSERT INTO billing (identifier, sender, target_type, target, label, amount) VALUES (?, ?, ?, ?, ?, ?)', {targetIdentifier, 'society_'..job, 'society', 'society_'..job, name, price})
end

TriggerClientEvent('brutal_policejob:client:SendNotify', source, Config.Notify[22][1], Config.Notify[22][2], Config.Notify[22][3], Config.Notify[22][4])
DiscordWebhook('FineCreated', '**'.. Config.Webhooks.Locale['Text'] ..':** '..name..'\n**'.. Config.Webhooks.Locale['Amount'] ..':** '..price..' '..Config.MoneyForm..'\n\n**__'.. Config.Webhooks.Locale['Receiver']..'__**\n**'.. Config.Webhooks.Locale['PlayerName'] ..':** '..targetname..'\n**'.. Config.Webhooks.Locale['Identifier'] ..':** '..targetIdentifier..'\n\n**__'.. Config.Webhooks.Locale['Assistant']..'__**\n**'.. Config.Webhooks.Locale['Job']..':** '.. job ..'\n**'.. Config.Webhooks.Locale['PlayerName']..':** '.. GetPlayerNameFunction(source)..' ['.. source ..']\n**'.. Config.Webhooks.Locale['Identifier'] ..':** '.. GetIdentifier(source))

end)

merci d’avance

Salut,

Je t’invites Ă  m’envoyer un message Discord Ă  mon Discord personnel au plus vite afin de rĂ©soudre ce soucis dans le plus bref dĂ©lais.

Discord: Illama

Cordialement,
Max

illama_billing_v.2.0.7

Version 2.0.7 de illama_billing. Les modifications/ajouts sont les suivants :

  • Ajout : Un nouveau fichier sql2.sql si le premier sql.sql ne fonctionne pas.

Version 2.0.7 of illama_billing. The modifications/additions are as follows:

  • Added: A new sql2.sql file if the first sql.sql does not work.

illama_billing_v.2.0.8

Version 2.0.8 de illama_billing. Les modifications/ajouts sont les suivants :

  • Corrections : Correction de l’erreur de description invalide lors de crĂ©ation de factures prĂ©faites sur les factures de sociĂ©tĂ©.

Version 2.0.8 of illama_billing. The modifications/additions are as follows:

  • Corrections : Correction of the invalid description error when creating preferred invoices on company invoices.

illama_billing_v.2.0.9

Version 2.0.9 de illama_billing. Les modifications/ajouts sont les suivants :

  • Corrections : Mise Ă  jour du code de vĂ©rification de la version pour une meilleur efficacitĂ©.

Version 2.0.9 of illama_billing. The modifications/additions are as follows:

  • Corrections : Update of the verification code of the version for better efficiency.

illama_billing_v.2.1.0

Version 2.1.0 de illama_billing. Les modifications/ajouts sont les suivants :

  • Ajout : Ajout d’une demande de confirmation de suppression Ă  l’envoyeur lorsqu’un client supprime une facture.

Version 2.1.0 of illama_billing. The modifications/additions are as follows:

  • Add : Add a request for confirmation of deletion to the sender when a customer deletes an invoice.

illama_billing_v.2.1.1

Version 2.1.1. de illama_billing. Les modifications/ajouts sont les suivants :

  • Ajout : Ajout d’une nouvelle option. Si AllowCheckAll est Ă  True dans la configuration, alors le mĂ©tier peut vĂ©rifier TOUTES les factures impayĂ©es, et pas seulement celles de la sociĂ©tĂ©.

Version 2.1.1. of illama_billing. Changes/additions are as follows:

  • Added: Added a new option. If AllowCheckAll is True in the configuration, then the job can check ALL unpaid invoices, not just the company’s.

illama_billing_v.2.1.2 Latest

Version 2.1.2. de illama_billing. Les modifications/ajouts sont les suivants :

  • Ajout : Ajout de la possibilitĂ© de crĂ©er les factures via le menu Ox_target. Celui-ci est nĂ©cessaire d’ĂȘtre installĂ© sur le serveur Ă©tant donnĂ© qu’il s’agit dĂ©sormais d’une dĂ©pendance.
  • Modification : Dans le fichier de configuration (config.lua), deux nouvelles options appraissent pour les mĂ©tiers qui sont allowPersonal = true et allowSociety = true. Celle-ci sont en lien avec l’ajout du OX_target et ont besoin d’ĂȘtre TOUJOURS Ă  true.

Version 2.1.2 of illama_billing. The changes/additions are as follows:

  • Addition: Added the ability to create invoices via the Ox_target menu. This must be installed on the server, as it is now a dependency.
  • Modification: In the configuration file (config.lua), two new options appear for businesses: allowPersonal = true and allowSociety = true. These are related to the addition of OX_target and must ALWAYS be set to true.

Salut je t’ai envoyer une demande sur discord

merci a toi

Il as regler le soucis au top , rapiditĂ© , a l’ecoute et le script est enormeeee

Version 2.1.4 de illama_billing. Les modifications/ajouts sont les suivants :

  • Modification : RĂ©solution d’une erreur de description invalide lors de la crĂ©ation de factures prĂ©faites.

Version 2.1.4 of illama_billing. The changes/additions are as follows:

  • Modification: Resolve the error invalid description that occurs when trying to make a premake bill.

I have a small problem. When I issue invoices for payment in installments, when the due date approaches, I start getting errors on the server console and the payment isn’t processed.

I have a small problem. When I issue invoices for payment in installments, when the due date approaches, I start getting errors on the server console and the payment isn’t processed.

UPDATE

  • Ok my bad, need to launch the 2 SQL files to work.