marjose123/pitaka is a Laravel package for a simple virtual wallet for laravel..
It currently has 0 GitHub stars and 1 downloads on Packagist (latest version 1.0.0).
Install it with composer require marjose123/pitaka.
Discover more Laravel packages by marjose123
or browse all Laravel packages to compare alternatives.
Last updated
"Pitaka" is a term commonly used in the Philippines that translates to "wallet" in English.
Easy creation of Wallets and its transactions.
$wallet = $user->wallets()->create([
'name' => 'Peso Wallet',
'slug' => 'peso-wallet',
'raw_balance' => 0,
'decimal_places' => 2,
'metadata' => [
'Currency' => 'PHP',
],
]);
$wallet->deposit(1000.58);
You can install the package via composer:
composer require marjose123/pitaka
composer dump-autoload
You can publish and run the migrations with:
php artisan vendor:publish --tag="pitaka-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="pitaka-config"
This is the contents of the published config file:
return [
/**
* --------------------------------------------------------------
* Wallet Migration
* --------------------------------------------------------------
* This will be used for the Wallet Table.
*/
'wallet_table' => [
'default_decimal_places' => 2,
],
/**
* -------------------------------------------------------------------
* Default User Wallet
* -------------------------------------------------------------------
*/
'user' => [
'wallet' => null, // Add your default wallet name here. This will be used if you don't provide a wallet name when calling `$user->wallet()`
],
];
You can do a transaction in your wallet by using user relationship or through model class.
[!CAUTION] Changing your wallet
decimal_placesvalue may affect your wallet balance result.
Check if the wallet balance is enough to do a transaction
$user->wallet('peso-wallet')->check(500) // will return true/false depending on how much amount left in the wallet
or
$product = Product::find(1);
$user->wallet('peso-wallet')->check($product)
Implement WalletTransaction contract to your Product class.
Creating a wallet transaction by depositing an amount. You can also use the Wallet model class instead.
$wallet = $user->wallets()->create([
'name' => 'Peso Wallet',
'slug' => 'peso-wallet',
'raw_balance' => 0,
'decimal_places' => 2,
'metadata' => [
'Currency' => 'PHP',
],
]);
$wallet->deposit(1000.58);
Creating a wallet transaction by paying an item/shop amount using your wallet.
$user->wallet('peso-wallet')->pay(500);
or
$product = Product::find(1);
$user->wallet('peso-wallet')->pay($product);
You can deduct or do a withdrawal from the wallet with/out fee.
$wallet->withdraw(amount: 900, feeAmount: 100);
or
$wallet->withdraw(1000);
You can transfer money to other wallets.
$wallet1->transfer(amount: 50, wallet: $wallet2, feeAmount: 50);
or
$wallet1->transfer(amount: 50, wallet: $wallet2);
$user->wallet('peso-wallet')->balance;
Return wallet balance in decimal format.
$user->wallet('peso-wallet')->balance_float;
composer package:test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.