set of helper functions and classes to simplify tax (VAT) calculations within Laravel applications. that allow developers to easily integrate tax calculation functionalities into their projects with multi tax profiles settings and (fixed, percentage) ways. it's offers a straightforward and efficient solution Designed to streamline the process of handling taxes.
Laravel 8.x or up , for version 2.x .
composer require omaralalwi/laravel-taxifypublish the package's configuration file:
php artisan vendor:publish --tag=taxifyFor applications running Laravel versions 7.x and older, use version 1.0.4.
composer require omaralalwi/laravel-taxify:^1.0.4laravel taxify many of helper functions to simplify usage.
calculateTax().calculateTaxForCollection().getTaxAmount().getTaxRate().getTaxType().getTaxRateAsPercentage().
- use
calculateTaxto get Tax As object (default).
$amount = 250;
$taxAmount = calculateTax($amount,'profileName')->tax_amount; // 37.5Another way to get Detailed Result.
$amount = 250;
$tax = calculateTax($amount,'profileName');Result (Object)
$tax = {
"amount_with_tax": 287.5,
"tax_amount": 37.5,
"tax_rate": 0.15,
}Note: the second param refer to profile, we mad it null to take default profile, second param can take (default, null,''') all three values mean default.
like calculateTax but this for a many amounts .
- use
calculateTaxForCollectionto get a tax for a collection of amounts by passing amounts as array (first param) -> Result wanted as object (default).
// you can pass number as float or integer
$productAmount = 250;
$featureAmount = 70.5;
$warrantyAmount = 30.60;
$chargeAmount = 90;
$tax = calculateTaxForCollection([$productAmount,$featureAmount, $warrantyAmount, $chargeAmount]);Result (object)
$tax = {
"amount_with_tax": 507.265,
"tax_amount": 66.165,
"tax_rate": 0.15,
}$taxAmount = $tax->tax_amount // 66.165- use
getTaxAmountto get Tax Amount as number
$amount = 250;
getTaxAmount($amount); // Result 25- use
getTaxRateto get Tax Rate or amount (according to tax type for specified profile in config file)
getTaxRate()
// Result 0.15getTaxRate('sales') // fore specific profile
// Result 50 , here the result is fixed number because the profile type is fixed amount Not percentageif profile tax type is fixed will return the amount (read the tax rate as amount), else will return the tax rate.
Note: for default profile no need to pass `profileName.
- use
getTaxTypeto you can get Tax Type
getTaxType('profileName')
// Result: fixed or percentage // depend on profile settingsyou can get Tax Rate As Percentage
- you can get a tax rate percentage (for percentage type only)
getTaxRateAsPercentage(); // Result '10.00%'Note: for default profile no need to pass it
after you published config file .
You can configure Laravel Taxify by adding the following default configuration keys to your .env file. If you do not add these, the default values will be used.
For a percentage tax type:
DEFAULT_TAXIFY_PROFILE="default"
TAXIFY_DEFAULT_RATE="0.10"
TAXIFY_DEFAULT_TYPE="percentage"example configuration for fixed tax type:
DEFAULT_TAXIFY_PROFILE="default"
TAXIFY_DEFAULT_RATE=50
TAXIFY_DEFAULT_TYPE="fixed"Note: The TAXIFY_DEFAULT_RATE is a number representing the rate when the type is percentage or the amount when type is fixed.
You can add more than one of tax profile in config/taxify.php .
- Calculate tax for individual amounts or a collection of amounts
- Retrieve tax amount, rate, and type for any profile as individual.
- Retrieve tax
amount_with_taxandtax_amountandtax_ratefor any profile as individual for one amount or a collection of amounts - Get tax rate as a percentage (for percentage type only)
- Customizable configuration options through environment variables easy.
- helper functions easy-to-use.
- support all php and laravel versions.
- Exception Handling: Robust error handling to ensure smooth operation and easy debugging.
- Logging: Automatic logging of errors and exceptions for better error tracking and debugging.
- Unit Tests.
php artisan test --filter TaxifyTestPlease see CONTRIBUTING for details.
this todo list , contain the tasks that we planning to working on them, you can choose one of them and develop it if you want to contribute.
If you discover any security related issues, please email [email protected].
The MIT License (MIT). Please see License File for more information.
-
Lexi Translate simplify managing translations for multilingual Eloquent models with power of morph relationships and caching . -
Gpdf Open Source HTML to PDF converter for PHP & Laravel Applications, supports Arabic content out-of-the-box and other languages.. -
laravel Deployer Streamlined Deployment for Laravel and Node.js apps, with Zero-Downtime and various environments and branches. -
laravel Trash Cleaner clean logs and debug files for debugging packages. -
laravel Time Craft simple trait and helper functions that allow you, Effortlessly manage date and time queries in Laravel apps. -
Laravel Startkit Laravel Admin Dashboard, Admin Template with Frontend Template, for scalable Laravel projects.