From 2d5688b66e57302e810b67ddd18927ddb56c5e46 Mon Sep 17 00:00:00 2001 From: Nisse Lommerde Date: Fri, 11 Apr 2025 16:17:51 -0400 Subject: [PATCH] #132: Inches / cm toggle for order page Also shows size unit on PDFs --- README.md | 3 +++ .../Admin/Resources/OrderResource.php | 21 +++++++++++++----- .../OrderResource/Pages/CreateOrder.php | 1 + .../OrderResource/Pages/EditOrder.php | 2 ++ app/Models/ProductService.php | 1 + app/Models/ServiceFile.php | 1 + config/app.php | 2 +- database/factories/ServiceFileFactory.php | 1 - ...5_add_size_unit_to_service_files_table.php | 22 +++++++++++++++++++ resources/views/pdf/order.blade.php | 12 ++++++---- 10 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 database/migrations/2025_04_11_191235_add_size_unit_to_service_files_table.php diff --git a/README.md b/README.md index 9242bf9..04b923d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ # Changelog +**2025-04-11** +- Fixed #132 - Inches / cm toggle for order page (and show unit on pdf) + **2025-04-10** - Fixed #145 - Default order sort is incorrect (newest will always show on top now) - Fixed #142 - Packing Slip content field should be required diff --git a/app/Filament/Admin/Resources/OrderResource.php b/app/Filament/Admin/Resources/OrderResource.php index d461d37..af585c1 100644 --- a/app/Filament/Admin/Resources/OrderResource.php +++ b/app/Filament/Admin/Resources/OrderResource.php @@ -230,7 +230,7 @@ public static function form(Form $form): Form ->prefix('h') ->rules('numeric'), ]) - ->label('Dimensions (inches)') + ->label('Dimensions') ->columnSpan(4), TextInput::make('amount') @@ -247,17 +247,28 @@ public static function form(Form $form): Form ->rules('numeric'), ]), - Grid::make(9) + Grid::make(19) ->schema([ TextInput::make('serviceFileCode') ->label('Code') ->datalist(ServiceFile::all()->unique('code')->pluck('code')->toArray()) - ->columnSpan(1) + ->columnSpan(2) ->placeholder('A1234'), + Select::make('serviceFileSizeUnit') + ->columnSpan(2) + ->selectablePlaceholder(false) + ->label('Unit') + ->options([ + 'in' => 'Inches', + 'cm' => 'cm', + ]), + Textarea::make('notes') - ->placeholder('Thread colors...') - ->columnSpan(8), + ->placeholder('Thread colors... (press enter for new line)') + ->autosize() + ->rows(1) + ->columnSpan(15), ]), ]) ->reorderable() diff --git a/app/Filament/Admin/Resources/OrderResource/Pages/CreateOrder.php b/app/Filament/Admin/Resources/OrderResource/Pages/CreateOrder.php index 747fc13..913d3cc 100644 --- a/app/Filament/Admin/Resources/OrderResource/Pages/CreateOrder.php +++ b/app/Filament/Admin/Resources/OrderResource/Pages/CreateOrder.php @@ -63,6 +63,7 @@ protected function handleRecordCreation(array $data): Order 'width' => $service['serviceFileWidth'] ?? null, 'height' => $service['serviceFileHeight'] ?? null, 'setup_number' => $service['serviceFileSetupNumber'] ?? null, + 'size_unit' => $service['serviceFileSizeUnit'] ?? 'inch', ]); ProductService::create([ diff --git a/app/Filament/Admin/Resources/OrderResource/Pages/EditOrder.php b/app/Filament/Admin/Resources/OrderResource/Pages/EditOrder.php index 70775fa..d82daf1 100644 --- a/app/Filament/Admin/Resources/OrderResource/Pages/EditOrder.php +++ b/app/Filament/Admin/Resources/OrderResource/Pages/EditOrder.php @@ -68,6 +68,7 @@ protected function mutateFormDataBeforeFill(array $data): array 'serviceFileHeight' => $service->serviceFile->height ?? '', 'serviceFileCode' => $service->serviceFile->code ?? '', 'serviceFileSetupNumber' => $service->serviceFile->setup_number ?? '', + 'serviceFileSizeUnit' => $service->serviceFile->size_unit ?? 'inch', ]; } @@ -139,6 +140,7 @@ public function handleRecordUpdate(Model $record, array $data): Model 'width' => $service['serviceFileWidth'] ?? null, 'height' => $service['serviceFileHeight'] ?? null, 'setup_number' => $service['serviceFileSetupNumber'] ?? null, + 'size_unit' => $service['serviceFileSizeUnit'] ?? 'inch', ]); ProductService::create([ diff --git a/app/Models/ProductService.php b/app/Models/ProductService.php index 811263a..35157d3 100644 --- a/app/Models/ProductService.php +++ b/app/Models/ProductService.php @@ -26,6 +26,7 @@ class ProductService extends Model 'amount', 'amount_price', 'notes', + 'size_unit', ]; protected $appends = [ diff --git a/app/Models/ServiceFile.php b/app/Models/ServiceFile.php index 2bde33b..1ac05db 100644 --- a/app/Models/ServiceFile.php +++ b/app/Models/ServiceFile.php @@ -19,6 +19,7 @@ class ServiceFile extends Model 'width', 'height', 'setup_number', + 'size_unit', ]; /** diff --git a/config/app.php b/config/app.php index 457c34c..7d29135 100644 --- a/config/app.php +++ b/config/app.php @@ -25,7 +25,7 @@ | or any other location as required by the application or its packages. */ - 'version' => '20250410', + 'version' => '20250411', /* |-------------------------------------------------------------------------- diff --git a/database/factories/ServiceFileFactory.php b/database/factories/ServiceFileFactory.php index 6a2dc22..7661154 100644 --- a/database/factories/ServiceFileFactory.php +++ b/database/factories/ServiceFileFactory.php @@ -19,7 +19,6 @@ public function definition(): array 'name' => $this->faker->word(), 'width' => round($this->faker->randomFloat(2, 0, 10), 1), 'height' => round($this->faker->randomFloat(2, 0, 10), 1), - 'unit' => 'inch', ]; } } diff --git a/database/migrations/2025_04_11_191235_add_size_unit_to_service_files_table.php b/database/migrations/2025_04_11_191235_add_size_unit_to_service_files_table.php new file mode 100644 index 0000000..8609194 --- /dev/null +++ b/database/migrations/2025_04_11_191235_add_size_unit_to_service_files_table.php @@ -0,0 +1,22 @@ +string('size_unit')->default('in'); + }); + } + + public function down(): void + { + Schema::table('service_files', function (Blueprint $table) { + $table->dropColumn('size_unit'); + }); + } +}; diff --git a/resources/views/pdf/order.blade.php b/resources/views/pdf/order.blade.php index 2b4085d..ef159e1 100644 --- a/resources/views/pdf/order.blade.php +++ b/resources/views/pdf/order.blade.php @@ -155,7 +155,7 @@ @foreach($order->orderProducts as $product) - {{$product->sku}} + {{$product->sku}} {{$product->product_name}} {{$product->color}} {{$product->productSizes()->get()->where('size', 'xs')->first()->amount ?? ''}} @@ -190,6 +190,7 @@ Logo Name & Instructions Width Height + Unit QTY @@ -203,17 +204,17 @@
- {{$service->serviceFile->code}} + {{$service->serviceFile->code ?? ''}}
- {{$service->serviceFile->name}} + {{$service->serviceFile->name ?? ''}}

- {{$service->notes}} + {{$service->notes ?? ''}}
@@ -222,6 +223,9 @@ {{$service->serviceFile->height}} + + {{$service->serviceFile->size_unit}} + {{$service->amount}}