Andrew Wallo 6 months ago
parent
commit
af84cfd1bb
1 changed files with 11 additions and 35 deletions
  1. 11
    35
      app/Filament/Company/Resources/Purchases/BillResource.php

+ 11
- 35
app/Filament/Company/Resources/Purchases/BillResource.php View File

2
 
2
 
3
 namespace App\Filament\Company\Resources\Purchases;
3
 namespace App\Filament\Company\Resources\Purchases;
4
 
4
 
5
+use App\Enums\Accounting\AdjustmentCategory;
5
 use App\Enums\Accounting\AdjustmentStatus;
6
 use App\Enums\Accounting\AdjustmentStatus;
7
+use App\Enums\Accounting\AdjustmentType;
6
 use App\Enums\Accounting\BillStatus;
8
 use App\Enums\Accounting\BillStatus;
7
 use App\Enums\Accounting\DocumentDiscountMethod;
9
 use App\Enums\Accounting\DocumentDiscountMethod;
8
 use App\Enums\Accounting\DocumentType;
10
 use App\Enums\Accounting\DocumentType;
9
 use App\Enums\Accounting\PaymentMethod;
11
 use App\Enums\Accounting\PaymentMethod;
10
 use App\Filament\Company\Resources\Purchases\BillResource\Pages;
12
 use App\Filament\Company\Resources\Purchases\BillResource\Pages;
11
 use App\Filament\Company\Resources\Purchases\VendorResource\RelationManagers\BillsRelationManager;
13
 use App\Filament\Company\Resources\Purchases\VendorResource\RelationManagers\BillsRelationManager;
14
+use App\Filament\Forms\Components\CreateAdjustmentSelect;
12
 use App\Filament\Forms\Components\CreateCurrencySelect;
15
 use App\Filament\Forms\Components\CreateCurrencySelect;
13
 use App\Filament\Forms\Components\DocumentTotals;
16
 use App\Filament\Forms\Components\DocumentTotals;
14
 use App\Filament\Tables\Actions\ReplicateBulkAction;
17
 use App\Filament\Tables\Actions\ReplicateBulkAction;
209
                                     ->live()
212
                                     ->live()
210
                                     ->maxValue(9999999999.99)
213
                                     ->maxValue(9999999999.99)
211
                                     ->default(0),
214
                                     ->default(0),
212
-                                Forms\Components\Select::make('purchaseTaxes')
215
+                                CreateAdjustmentSelect::make('purchaseTaxes')
213
                                     ->label('Taxes')
216
                                     ->label('Taxes')
214
-                                    ->relationship(
215
-                                        name: 'purchaseTaxes',
216
-                                        titleAttribute: 'name',
217
-                                        modifyQueryUsing: function (Builder $query, ?DocumentLineItem $record) {
218
-                                            $existingAdjustmentIds = $record?->purchaseTaxes()
219
-                                                ->pluck('adjustments.id')
220
-                                                ->toArray() ?? [];
221
-
222
-                                            $query->where(function ($query) use ($existingAdjustmentIds) {
223
-                                                $query->where('status', AdjustmentStatus::Active)
224
-                                                    ->orWhereIn('adjustments.id', $existingAdjustmentIds);
225
-                                            });
226
-
227
-                                            return $query;
228
-                                        }
229
-                                    )
217
+                                    ->category(AdjustmentCategory::Tax)
218
+                                    ->type(AdjustmentType::Purchase)
219
+                                    ->adjustmentsRelationship('purchaseTaxes')
230
                                     ->saveRelationshipsUsing(null)
220
                                     ->saveRelationshipsUsing(null)
231
                                     ->dehydrated(true)
221
                                     ->dehydrated(true)
232
                                     ->preload()
222
                                     ->preload()
233
                                     ->multiple()
223
                                     ->multiple()
234
                                     ->live()
224
                                     ->live()
235
                                     ->searchable(),
225
                                     ->searchable(),
236
-                                Forms\Components\Select::make('purchaseDiscounts')
226
+                                CreateAdjustmentSelect::make('purchaseDiscounts')
237
                                     ->label('Discounts')
227
                                     ->label('Discounts')
238
-                                    ->relationship(
239
-                                        name: 'purchaseDiscounts',
240
-                                        titleAttribute: 'name',
241
-                                        modifyQueryUsing: function (Builder $query, ?DocumentLineItem $record) {
242
-                                            $existingAdjustmentIds = $record?->purchaseDiscounts()
243
-                                                ->pluck('adjustments.id')
244
-                                                ->toArray() ?? [];
245
-
246
-                                            $query->where(function ($query) use ($existingAdjustmentIds) {
247
-                                                $query->where('status', AdjustmentStatus::Active)
248
-                                                    ->orWhereIn('adjustments.id', $existingAdjustmentIds);
249
-                                            });
250
-
251
-                                            return $query;
252
-                                        }
253
-                                    )
228
+                                    ->category(AdjustmentCategory::Discount)
229
+                                    ->type(AdjustmentType::Purchase)
230
+                                    ->adjustmentsRelationship('purchaseDiscounts')
254
                                     ->saveRelationshipsUsing(null)
231
                                     ->saveRelationshipsUsing(null)
255
                                     ->dehydrated(true)
232
                                     ->dehydrated(true)
256
-                                    ->preload()
257
                                     ->multiple()
233
                                     ->multiple()
258
                                     ->live()
234
                                     ->live()
259
                                     ->hidden(function (Forms\Get $get) {
235
                                     ->hidden(function (Forms\Get $get) {

Loading…
Cancel
Save