[ESX - ENG/DE] myBills - Billing with Partial Payment, Bill Requests and Discord Webhooks

A script by Luiiis

No reviews yet.
[ESX - ENG/DE] myBills - Billing with Partial Payment, Bill Requests and Discord Webhooks main image

Full Description

Hey guys,

today I want to present my billing system which provides some special features, which are extremely useful - especially for roleplay servers.

Features:

  • When you issue an invoice the other player have to accept the invoice. This also avoids that players receive invoices just “for fun”.
  • When a player doesn’t pay his bills, they are automatically and partly paid every night. There is also a menu included, so the player can view his partly paid invoices. Also he can pay the remaining amount through this menu
  • Every player have the opportunity to issue an invoice (can be disabled in the Config)
  • No need to change your scripts: I’ve left the sendBill event completely like it was in ESX, so you just have to turn off esx_bills to make this work.
  • As always full translation and config file.

Showcase Video:

Main menu:
main

Confirmation menu:
receivemenu

Part payment menu:
partpay
You can set up a time, when the bills should be partly paid. For testing you can also use the command /paytaxbills in the server console.

Discord Notifications:
You can set up notifications for societies in the Config.lua. When you use this, there will be notifications when a player issues a society invoice:


Of course you can set up this for all societies (companies), which for example want to broadcast this on their discord.

Configuration is super easy:
1.) Create new Discord webhook
2.) Set up your webhook in the Config.lua

Config.useDiscordWebhooks = true
Config.Webhooks = {
    ['society_police'] = GetConvar("webhook_police_invoice", "Failed to load webhook error!"),
    ['society_example'] = GetConvar("webhook_example", "Failed to load webhook error!"),
}

To add Convars, you can just add

set webhook_example "https://discordapp.com/api/webhooks/........" <- your webhook link

to your server.cfg.
3.) Finished, when an employee of society_example issues an invoice (also with his job menu) there will be a Discord notify.

Language config:
German and English are already set up.

Translations
Translation = {

    ['de'] = {
        ['bills'] = 'Rechnungen',
        ['give_bill'] = 'Rechnung ausstellen',
        ['give_bill_desc'] = 'Stelle eine Rechnung aus',
        ['reason'] = 'Grund:',
        ['insert_reason'] = 'Gebe einen Grund ein',
        ['amount'] = 'Betrag:',
        ['insert_amount'] = 'Betrag eingeben',
        ['submit_bill'] = '~g~Rechnung ausstellen',
        ['taxbills'] = 'Rechnungen in Teilzahlung',
        ['taxbills_desc'] = '~r~Offener Betrag ~s~/ ~o~Gesamt',
        ['private'] = 'Privat',

        ['dialog_title'] = 'Rechnung erhalten',
        ['dialog_accept'] = '~g~Rechnung annehmen',
        ['dialog_reject'] = '~r~Rechnung ablehnen',

        ['bill_paid'] = '~g~Die Rechnung i.H.v. ~w~',
        ['bill_paid2'] = '$ ~g~wurde bezahlt.',
        ['society_bill_paid'] = '~g~Eine von dir ausgestellte Rechnung i.H.v. ~w~',
        ['society_bill_paid2'] = '$ ~g~wurde bezahlt.',

        ['not_enough_money'] = '~r~Du hast nicht genügend Geld!',
        ['bill_given'] = '~g~Anfrage für die Rechnung weitergegeben.',
        ['bill_accepted'] = '~g~Deine Rechnung wurde akzeptiert.',
        ['target_bill_accepted'] = '~g~Du hast die Rechnung akzeptiert.',
        ['bill_rejected'] = '~r~Deine Rechnung wurde abgelehnt.',
        ['target_bill_rejected'] = '~r~Du hast die Rechnung abgelehnt.',

        ['discord_new_invoice'] = 'Neue Rechnung',
        ['discord_msg'] = ' hat ',
        ['discord_msg2'] = ' eine Rechnung i.H.v. ',
        ['discord_msg3'] = '$ für ',
        ['discord_msg4'] = ' ausgestellt.',

        ['paid_taxbill'] = 'Ein Teil deiner Rechnungen wurde ~g~bezahlt~s~ : ~g~$',
    },

    ['en'] = {
        ['bills'] = 'Bills',
        ['give_bill'] = 'Issue an invoice',
        ['give_bill_desc'] = 'Issue an invoice to somebody',
        ['reason'] = 'Reason:',
        ['insert_reason'] = 'Enter a reason',
        ['amount'] = 'Amount:',
        ['insert_amount'] = 'Enter an amount',
        ['submit_bill'] = '~g~Confirm',
        ['taxbills'] = 'Part payment invoices',
        ['taxbills_desc'] = '~r~Remaining amount ~s~/ ~o~Total',
        ['private'] = 'Privat',

        ['dialog_title'] = 'Received invoice',
        ['dialog_accept'] = '~g~Accept',
        ['dialog_reject'] = '~r~Reject',

        ['bill_paid'] = '~g~The bill of ~w~',
        ['bill_paid2'] = '$ ~g~was paid.',
        ['society_bill_paid'] = '~g~One of your bills of ~w~',
        ['society_bill_paid2'] = '$ ~g~was paid.',

        ['not_enough_money'] = '~r~You do not have enough money!',
        ['bill_given'] = '~g~Request sent for the invoice.',
        ['bill_accepted'] = '~g~Your bill was accepted.',
        ['target_bill_accepted'] = '~g~You have accepted the bill.',
        ['bill_rejected'] = '~r~Your bill was rejected.',
        ['target_bill_rejected'] = '~r~You have rejected the bill.',

        ['discord_new_invoice'] = 'New invoice',
        ['discord_msg'] = ' has given ',
        ['discord_msg2'] = ' a bill with an amount of ',
        ['discord_msg3'] = '$ for ',
        ['discord_msg4'] = '.',

        ['paid_taxbill'] = 'A part of your remaining invoices was ~g~paid~s~ : ~g~$',
    }
}

Dependencies:

  • ESX
  • NativeUI
  • cron

Price: 3,90€ / 4,80$ (tax included)
Download at https://luis-scripts.tebex.io/package/4238312

There is an optional EnhancedUI avalable for myBilling: You can get further information here: EnhancedUI for myBilling

Important note: If you’re currently using esx_billing, you can change without any effort to this script:
You only have to import the new .sql file for the partial payment. All open invoices and events are still working.

Config Merger
Have you tried Config Merger? Merge your configs easily