4 | 12 | {{ message }} 13 |
14 |7 | {{ description }} 8 |
9 |
10 |
7 |
'
22 | file: 'README.md'
23 |
24 | - name: Deploy to GitHub Pages 🚀
25 | uses: JamesIves/github-pages-deploy-action@v4
26 | with:
27 | branch: main
28 | folder: '.'
--------------------------------------------------------------------------------
/app/Providers/EventServiceProvider.php:
--------------------------------------------------------------------------------
1 | >
17 | */
18 | protected $listen = [
19 | Registered::class => [
20 | SendEmailVerificationNotification::class,
21 | SeedDefaultCategories::class,
22 | ],
23 | ];
24 |
25 | /**
26 | * Register any events for your application.
27 | */
28 | public function boot(): void
29 | {
30 | //
31 | }
32 |
33 | /**
34 | * Determine if events and listeners should be automatically discovered.
35 | */
36 | public function shouldDiscoverEvents(): bool
37 | {
38 | return false;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/app/Models/CashAccount.php:
--------------------------------------------------------------------------------
1 | 'object'
29 | ];
30 |
31 | public function user()
32 | {
33 | return $this->hasOne('App\Models\User', 'id', 'user_id');
34 | }
35 |
36 | public function institution()
37 | {
38 | return $this->hasOne('App\Models\Institution', 'id', 'institution_id');
39 | }
40 |
41 | public function rules()
42 | {
43 | return $this->morphMany(Rule::class, 'accountable');
44 | }
45 |
46 | public function getTypeAttribute()
47 | {
48 | return 'cash-account';
49 | }
50 | }
--------------------------------------------------------------------------------
/app/Services/Categories/IndexCategories.php:
--------------------------------------------------------------------------------
1 | request = $request;
18 | $this->query = Category::query();
19 |
20 | $this->applySearch();
21 | $this->applyOrder();
22 |
23 | if( $this->paginate ){
24 | $categories = $this->query->paginate( $this->take );
25 | }else{
26 | $categories = $this->query->get();
27 | }
28 |
29 | return $categories;
30 | }
31 |
32 | private function applySearch()
33 | {
34 | if( $this->request->has('term') ){
35 | $this->query->where( 'name', 'LIKE', "%{$this->term}%" );
36 | }
37 | }
38 |
39 | private function applyOrder()
40 | {
41 | $this->query->orderBy(
42 | $this->request->input('orderBy', 'name'),
43 | $this->request->input('orderDirection', 'asc')
44 | );
45 | }
46 | }
--------------------------------------------------------------------------------
/docs/components/DocumentDrivenNotFound.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | resource_path('views'),
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled View Path
23 | |--------------------------------------------------------------------------
24 | |
25 | | This option determines where all the compiled Blade templates will be
26 | | stored for your application. Typically, this is within the storage
27 | | directory. However, as usual, you are free to change this value.
28 | |
29 | */
30 |
31 | 'compiled' => env(
32 | 'VIEW_COMPILED_PATH',
33 | realpath(storage_path('framework/views'))
34 | ),
35 |
36 | ];
37 |
--------------------------------------------------------------------------------
/app/Services/Rules/StoreRule.php:
--------------------------------------------------------------------------------
1 | findAccount( $data->account );
16 |
17 | Rule::create([
18 | 'accountable_id' => $account->id,
19 | 'accountable_type' => get_class( $account ),
20 | 'search_string' => $data->searchString,
21 | 'replace_string' => $data->replaceString,
22 | 'category_id' => $data->category['id'],
23 | ]);
24 | }
25 |
26 | private function findAccount( $account )
27 | {
28 | switch( $account['type'] ){
29 | case 'cash-account':
30 | return CashAccount::find( $account['id'] );
31 | break;
32 | case 'credit-card':
33 | return CreditCard::find( $account['id'] );
34 | break;
35 | case 'loan':
36 | return Loan::find( $account['id'] );
37 | break;
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/app/Models/Loan.php:
--------------------------------------------------------------------------------
1 | 'object'
31 | ];
32 |
33 | public function user()
34 | {
35 | return $this->hasOne('App\Models\User', 'id', 'user_id');
36 | }
37 |
38 | public function institution()
39 | {
40 | return $this->hasOne('App\Models\Institution', 'id', 'institution_id');
41 | }
42 |
43 | public function rules()
44 | {
45 | return $this->morphMany(Rule::class, 'accountable');
46 | }
47 |
48 | public function getTypeAttribute()
49 | {
50 | return 'loan';
51 | }
52 | }
--------------------------------------------------------------------------------
/resources/js/Components/Icons/SuccessNotificationIcon.vue:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/app/Data/CreditCardData.php:
--------------------------------------------------------------------------------
1 | user()->id,
27 | institutionId: $request->input('institution_id'),
28 | brand: $request->input('brand'),
29 | name: $request->input('name'),
30 | description: $request->input('description'),
31 | interestRate: $request->input('interest_rate') ? $request->input('interest_rate') : 0.00,
32 | creditLimit: $request->input('credit_limit'),
33 | balance: $request->input('balance'),
34 | );
35 | }
36 | }
--------------------------------------------------------------------------------
/resources/js/Pages/Accounts/Partials/AccountSummary.vue:
--------------------------------------------------------------------------------
1 |
2 | 4 | © Copyright {{ copyright }}. All rights reserved. 5 |
6 |