Bladeren bron

update local scopes

3.x
Andrew Wallo 1 maand geleden
bovenliggende
commit
8e4c18dfe9

+ 5
- 2
app/Models/Accounting/Account.php Bestand weergeven

13
 use App\Utilities\Currency\CurrencyAccessor;
13
 use App\Utilities\Currency\CurrencyAccessor;
14
 use Database\Factories\Accounting\AccountFactory;
14
 use Database\Factories\Accounting\AccountFactory;
15
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
15
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
16
+use Illuminate\Database\Eloquent\Attributes\Scope;
16
 use Illuminate\Database\Eloquent\Builder;
17
 use Illuminate\Database\Eloquent\Builder;
17
 use Illuminate\Database\Eloquent\Casts\Attribute;
18
 use Illuminate\Database\Eloquent\Casts\Attribute;
18
 use Illuminate\Database\Eloquent\Factories\Factory;
19
 use Illuminate\Database\Eloquent\Factories\Factory;
86
         return $this->hasOne(Adjustment::class, 'account_id');
87
         return $this->hasOne(Adjustment::class, 'account_id');
87
     }
88
     }
88
 
89
 
89
-    public function scopeBudgetable(Builder $query): Builder
90
+    #[Scope]
91
+    protected function budgetable(Builder $query): Builder
90
     {
92
     {
91
         return $query->whereIn('category', [
93
         return $query->whereIn('category', [
92
             AccountCategory::Revenue,
94
             AccountCategory::Revenue,
111
             ->where('currency_code', CurrencyAccessor::getDefaultCurrency());
113
             ->where('currency_code', CurrencyAccessor::getDefaultCurrency());
112
     }
114
     }
113
 
115
 
114
-    public function scopeWithLastTransactionDate(Builder $query): Builder
116
+    #[Scope]
117
+    protected function withLastTransactionDate(Builder $query): Builder
115
     {
118
     {
116
         return $query->addSelect([
119
         return $query->addSelect([
117
             'last_transaction_date' => JournalEntry::select(DB::raw('MAX(transactions.posted_at)'))
120
             'last_transaction_date' => JournalEntry::select(DB::raw('MAX(transactions.posted_at)'))

+ 3
- 1
app/Models/Accounting/Bill.php Bestand weergeven

22
 use Filament\Actions\ReplicateAction;
22
 use Filament\Actions\ReplicateAction;
23
 use Illuminate\Database\Eloquent\Attributes\CollectedBy;
23
 use Illuminate\Database\Eloquent\Attributes\CollectedBy;
24
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
24
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
25
+use Illuminate\Database\Eloquent\Attributes\Scope;
25
 use Illuminate\Database\Eloquent\Builder;
26
 use Illuminate\Database\Eloquent\Builder;
26
 use Illuminate\Database\Eloquent\Model;
27
 use Illuminate\Database\Eloquent\Model;
27
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
28
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
196
         return $this->initialTransaction()->exists();
197
         return $this->initialTransaction()->exists();
197
     }
198
     }
198
 
199
 
199
-    public function scopeUnpaid(Builder $query): Builder
200
+    #[Scope]
201
+    protected function unpaid(Builder $query): Builder
200
     {
202
     {
201
         return $query->whereIn('status', [
203
         return $query->whereIn('status', [
202
             BillStatus::Open,
204
             BillStatus::Open,

+ 9
- 4
app/Models/Accounting/Budget.php Bestand weergeven

12
 use Filament\Actions\Action;
12
 use Filament\Actions\Action;
13
 use Filament\Actions\MountableAction;
13
 use Filament\Actions\MountableAction;
14
 use Filament\Actions\ReplicateAction;
14
 use Filament\Actions\ReplicateAction;
15
+use Illuminate\Database\Eloquent\Attributes\Scope;
15
 use Illuminate\Database\Eloquent\Builder;
16
 use Illuminate\Database\Eloquent\Builder;
16
 use Illuminate\Database\Eloquent\Casts\Attribute;
17
 use Illuminate\Database\Eloquent\Casts\Attribute;
17
 use Illuminate\Database\Eloquent\Factories\HasFactory;
18
 use Illuminate\Database\Eloquent\Factories\HasFactory;
136
         return $this->allocations()->exists();
137
         return $this->allocations()->exists();
137
     }
138
     }
138
 
139
 
139
-    public function scopeDraft(Builder $query): Builder
140
+    #[Scope]
141
+    protected function draft(Builder $query): Builder
140
     {
142
     {
141
         return $query->where('status', BudgetStatus::Draft);
143
         return $query->where('status', BudgetStatus::Draft);
142
     }
144
     }
143
 
145
 
144
-    public function scopeActive(Builder $query): Builder
146
+    #[Scope]
147
+    protected function active(Builder $query): Builder
145
     {
148
     {
146
         return $query->where('status', BudgetStatus::Active);
149
         return $query->where('status', BudgetStatus::Active);
147
     }
150
     }
148
 
151
 
149
-    public function scopeClosed(Builder $query): Builder
152
+    #[Scope]
153
+    protected function closed(Builder $query): Builder
150
     {
154
     {
151
         return $query->where('status', BudgetStatus::Closed);
155
         return $query->where('status', BudgetStatus::Closed);
152
     }
156
     }
153
 
157
 
154
-    public function scopeCurrentlyActive(Builder $query): Builder
158
+    #[Scope]
159
+    protected function currentlyActive(Builder $query): Builder
155
     {
160
     {
156
         return $query->active()
161
         return $query->active()
157
             ->where('start_date', '<=', company_now())
162
             ->where('start_date', '<=', company_now())

+ 3
- 1
app/Models/Accounting/Estimate.php Bestand weergeven

21
 use Filament\Notifications\Notification;
21
 use Filament\Notifications\Notification;
22
 use Illuminate\Database\Eloquent\Attributes\CollectedBy;
22
 use Illuminate\Database\Eloquent\Attributes\CollectedBy;
23
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
23
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
24
+use Illuminate\Database\Eloquent\Attributes\Scope;
24
 use Illuminate\Database\Eloquent\Builder;
25
 use Illuminate\Database\Eloquent\Builder;
25
 use Illuminate\Database\Eloquent\Casts\Attribute;
26
 use Illuminate\Database\Eloquent\Casts\Attribute;
26
 use Illuminate\Database\Eloquent\Model;
27
 use Illuminate\Database\Eloquent\Model;
212
             && ! $this->wasConverted();
213
             && ! $this->wasConverted();
213
     }
214
     }
214
 
215
 
215
-    public function scopeActive(Builder $query): Builder
216
+    #[Scope]
217
+    protected function active(Builder $query): Builder
216
     {
218
     {
217
         return $query->whereIn('status', [
219
         return $query->whereIn('status', [
218
             EstimateStatus::Unsent,
220
             EstimateStatus::Unsent,

+ 7
- 3
app/Models/Accounting/Invoice.php Bestand weergeven

26
 use Filament\Support\Enums\Alignment;
26
 use Filament\Support\Enums\Alignment;
27
 use Illuminate\Database\Eloquent\Attributes\CollectedBy;
27
 use Illuminate\Database\Eloquent\Attributes\CollectedBy;
28
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
28
 use Illuminate\Database\Eloquent\Attributes\ObservedBy;
29
+use Illuminate\Database\Eloquent\Attributes\Scope;
29
 use Illuminate\Database\Eloquent\Builder;
30
 use Illuminate\Database\Eloquent\Builder;
30
 use Illuminate\Database\Eloquent\Casts\Attribute;
31
 use Illuminate\Database\Eloquent\Casts\Attribute;
31
 use Illuminate\Database\Eloquent\Model;
32
 use Illuminate\Database\Eloquent\Model;
181
         return $this->amount_due;
182
         return $this->amount_due;
182
     }
183
     }
183
 
184
 
184
-    public function scopeUnpaid(Builder $query): Builder
185
+    #[Scope]
186
+    protected function unpaid(Builder $query): Builder
185
     {
187
     {
186
         return $query->whereIn('status', InvoiceStatus::unpaidStatuses());
188
         return $query->whereIn('status', InvoiceStatus::unpaidStatuses());
187
     }
189
     }
188
 
190
 
189
     // TODO: Consider storing the numeric part of the invoice number separately
191
     // TODO: Consider storing the numeric part of the invoice number separately
190
-    public function scopeByNumber(Builder $query, string $number): Builder
192
+    #[Scope]
193
+    protected function byNumber(Builder $query, string $number): Builder
191
     {
194
     {
192
         $invoicePrefix = DocumentDefault::invoice()->first()->number_prefix ?? '';
195
         $invoicePrefix = DocumentDefault::invoice()->first()->number_prefix ?? '';
193
 
196
 
197
         });
200
         });
198
     }
201
     }
199
 
202
 
200
-    public function scopeOverdue(Builder $query): Builder
203
+    #[Scope]
204
+    protected function overdue(Builder $query): Builder
201
     {
205
     {
202
         return $query
206
         return $query
203
             ->unpaid()
207
             ->unpaid()

+ 11
- 5
app/Models/Setting/DocumentDefault.php Bestand weergeven

10
 use App\Enums\Setting\PaymentTerms;
10
 use App\Enums\Setting\PaymentTerms;
11
 use App\Enums\Setting\Template;
11
 use App\Enums\Setting\Template;
12
 use Database\Factories\Setting\DocumentDefaultFactory;
12
 use Database\Factories\Setting\DocumentDefaultFactory;
13
+use Illuminate\Database\Eloquent\Attributes\Scope;
13
 use Illuminate\Database\Eloquent\Builder;
14
 use Illuminate\Database\Eloquent\Builder;
14
 use Illuminate\Database\Eloquent\Casts\AsArrayObject;
15
 use Illuminate\Database\Eloquent\Casts\AsArrayObject;
15
 use Illuminate\Database\Eloquent\Casts\Attribute;
16
 use Illuminate\Database\Eloquent\Casts\Attribute;
73
         });
74
         });
74
     }
75
     }
75
 
76
 
76
-    public function scopeType(Builder $query, string | DocumentType $type): Builder
77
+    #[Scope]
78
+    protected function type(Builder $query, string | DocumentType $type): Builder
77
     {
79
     {
78
         return $query->where('type', $type);
80
         return $query->where('type', $type);
79
     }
81
     }
80
 
82
 
81
-    public function scopeInvoice(Builder $query): Builder
83
+    #[Scope]
84
+    protected function invoice(Builder $query): Builder
82
     {
85
     {
83
         return $query->type(DocumentType::Invoice);
86
         return $query->type(DocumentType::Invoice);
84
     }
87
     }
85
 
88
 
86
-    public function scopeRecurringInvoice(Builder $query): Builder
89
+    #[Scope]
90
+    protected function recurringInvoice(Builder $query): Builder
87
     {
91
     {
88
         return $query->type(DocumentType::RecurringInvoice);
92
         return $query->type(DocumentType::RecurringInvoice);
89
     }
93
     }
90
 
94
 
91
-    public function scopeBill(Builder $query): Builder
95
+    #[Scope]
96
+    protected function bill(Builder $query): Builder
92
     {
97
     {
93
         return $query->type(DocumentType::Bill);
98
         return $query->type(DocumentType::Bill);
94
     }
99
     }
95
 
100
 
96
-    public function scopeEstimate(Builder $query): Builder
101
+    #[Scope]
102
+    protected function estimate(Builder $query): Builder
97
     {
103
     {
98
         return $query->type(DocumentType::Estimate);
104
         return $query->type(DocumentType::Estimate);
99
     }
105
     }

Laden…
Annuleren
Opslaan