Andrew Wallo 6 月之前
父節點
當前提交
af84cfd1bb
共有 1 個檔案被更改,包括 11 行新增35 行删除
  1. 11
    35
      app/Filament/Company/Resources/Purchases/BillResource.php

+ 11
- 35
app/Filament/Company/Resources/Purchases/BillResource.php 查看文件

@@ -2,13 +2,16 @@
2 2
 
3 3
 namespace App\Filament\Company\Resources\Purchases;
4 4
 
5
+use App\Enums\Accounting\AdjustmentCategory;
5 6
 use App\Enums\Accounting\AdjustmentStatus;
7
+use App\Enums\Accounting\AdjustmentType;
6 8
 use App\Enums\Accounting\BillStatus;
7 9
 use App\Enums\Accounting\DocumentDiscountMethod;
8 10
 use App\Enums\Accounting\DocumentType;
9 11
 use App\Enums\Accounting\PaymentMethod;
10 12
 use App\Filament\Company\Resources\Purchases\BillResource\Pages;
11 13
 use App\Filament\Company\Resources\Purchases\VendorResource\RelationManagers\BillsRelationManager;
14
+use App\Filament\Forms\Components\CreateAdjustmentSelect;
12 15
 use App\Filament\Forms\Components\CreateCurrencySelect;
13 16
 use App\Filament\Forms\Components\DocumentTotals;
14 17
 use App\Filament\Tables\Actions\ReplicateBulkAction;
@@ -209,51 +212,24 @@ class BillResource extends Resource
209 212
                                     ->live()
210 213
                                     ->maxValue(9999999999.99)
211 214
                                     ->default(0),
212
-                                Forms\Components\Select::make('purchaseTaxes')
215
+                                CreateAdjustmentSelect::make('purchaseTaxes')
213 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 220
                                     ->saveRelationshipsUsing(null)
231 221
                                     ->dehydrated(true)
232 222
                                     ->preload()
233 223
                                     ->multiple()
234 224
                                     ->live()
235 225
                                     ->searchable(),
236
-                                Forms\Components\Select::make('purchaseDiscounts')
226
+                                CreateAdjustmentSelect::make('purchaseDiscounts')
237 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 231
                                     ->saveRelationshipsUsing(null)
255 232
                                     ->dehydrated(true)
256
-                                    ->preload()
257 233
                                     ->multiple()
258 234
                                     ->live()
259 235
                                     ->hidden(function (Forms\Get $get) {

Loading…
取消
儲存