[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.