Ver Fonte

refactor: altera obrigatoriedade dos campos de valores monetarios e remove input dos campos de semana no request de associados a package

Gustavo Mantovani há 1 dia atrás
pai
commit
b420267815

+ 19 - 18
app/Http/Requests/ClassPackageRequest.php

@@ -13,26 +13,27 @@ public function rules(): array
         return [
             'name'                    => "$required|string|max:255",
             'quantity_classes'        => "$required|integer|min:1",
-            'contract_value'          => "$required|numeric|min:0",
-            'contract_register_value' => "$required|numeric|min:0",
+            'contract_value'          => 'nullable|numeric|min:0',
+            'contract_register_value' => 'nullable|numeric|min:0',
             'contrat_discount_value'  => 'nullable|numeric|min:0',
             'class_duration_minutes'  => "$required|integer|min:1|max:1440",
-            'weekday'                 => 'nullable|integer|min:0|max:6|required_with:start_time',
-            'start_time'              => 'nullable|date_format:H:i|required_with:weekday',
-            'second_weekday'          => 'nullable|integer|min:0|max:6|different:weekday|required_with:second_start_time',
-            'second_start_time'       => 'nullable|date_format:H:i|required_with:second_weekday',
-
-            'materials'                => 'nullable|array',
-            'materials.*.product_id'   => 'required_with:materials|integer|exists:products,id',
-            'materials.*.quantity'     => 'required_with:materials|integer|min:1',
-            'materials.*.price'        => 'required_with:materials|numeric|min:0',
-
-            'group_ids'                        => 'nullable|array',
-            'group_ids.*'                      => 'integer|exists:groups,id',
-
-            'unit_visibilities'                => 'nullable|array',
-            'unit_visibilities.*.unit_id'      => 'required_with:unit_visibilities|integer|exists:units,id',
-            'unit_visibilities.*.visible'      => 'required_with:unit_visibilities|boolean',
+
+            // 'weekday'           => 'nullable|integer|min:0|max:6|required_with:start_time',
+            // 'start_time'        => 'nullable|date_format:H:i|required_with:weekday',
+            // 'second_weekday'    => 'nullable|integer|min:0|max:6|different:weekday|required_with:second_start_time',
+            // 'second_start_time' => 'nullable|date_format:H:i|required_with:second_weekday',
+
+            'materials'              => 'nullable|array',
+            'materials.*.product_id' => 'required_with:materials|integer|exists:products,id',
+            'materials.*.quantity'   => 'required_with:materials|integer|min:1',
+            'materials.*.price'      => 'required_with:materials|numeric|min:0',
+
+            'group_ids'   => 'nullable|array',
+            'group_ids.*' => 'integer|exists:groups,id',
+
+            'unit_visibilities'           => 'nullable|array',
+            'unit_visibilities.*.unit_id' => 'required_with:unit_visibilities|integer|exists:units,id',
+            'unit_visibilities.*.visible' => 'required_with:unit_visibilities|boolean',
         ];
     }
 }

+ 7 - 6
app/Http/Requests/ClassPackageUnitRequest.php

@@ -13,15 +13,16 @@ public function rules(): array
         return [
             'name'                    => "$required|string|max:255",
             'quantity_classes'        => "$required|integer|min:1",
-            'contract_value'          => "$required|numeric|min:0",
-            'contract_register_value' => "$required|numeric|min:0",
+            'contract_value'          => 'nullable|numeric|min:0',
+            'contract_register_value' => 'nullable|numeric|min:0',
             'contrat_discount_value'  => 'nullable|numeric|min:0',
             'visible'                 => 'sometimes|boolean',
             'class_duration_minutes'  => "$required|integer|min:1|max:1440",
-            'weekday'                 => 'nullable|integer|min:0|max:6|required_with:start_time',
-            'start_time'              => 'nullable|date_format:H:i|required_with:weekday',
-            'second_weekday'          => 'nullable|integer|min:0|max:6|different:weekday|required_with:second_start_time',
-            'second_start_time'       => 'nullable|date_format:H:i|required_with:second_weekday',
+
+            // 'weekday'           => 'nullable|integer|min:0|max:6|required_with:start_time',
+            // 'start_time'        => 'nullable|date_format:H:i|required_with:weekday',
+            // 'second_weekday'    => 'nullable|integer|min:0|max:6|different:weekday|required_with:second_start_time',
+            // 'second_start_time' => 'nullable|date_format:H:i|required_with:second_weekday',
 
             'materials'              => 'nullable|array',
             'materials.*.product_id' => 'required_with:materials|integer|exists:products,id',

+ 1 - 1
app/Http/Requests/StudentContractRequest.php

@@ -13,7 +13,7 @@ public function rules(): array
             'protocol'                 => 'sometimes|nullable|string|max:255',
             'signature_date'           => 'sometimes|nullable|date_format:Y-m-d',
             'end_date'                 => 'sometimes|nullable|date_format:Y-m-d',
-            'class_package_unit_id'    => 'sometimes|nullable|exists:class_package_units,id',
+            'class_package_unit_id'    => 'required|exists:class_package_units,id',
             'class_quantity'           => 'sometimes|nullable|integer|min:1',
             'weekday'                  => 'sometimes|nullable|integer|min:0|max:6',
             'start_time'               => 'sometimes|nullable|date_format:H:i',

+ 32 - 0
database/migrations/2026_08_10_000001_make_contract_values_nullable_on_class_packages.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    public function up(): void
+    {
+        foreach (['class_packages', 'class_package_units'] as $tableName) {
+            Schema::table($tableName, function (Blueprint $table) {
+                $table->decimal('contract_value', 10, 2)->nullable()->change();
+                $table->decimal('contract_register_value', 10, 2)->nullable()->change();
+            });
+        }
+    }
+
+    public function down(): void
+    {
+        foreach (['class_packages', 'class_package_units'] as $tableName) {
+            DB::table($tableName)->whereNull('contract_value')->update(['contract_value' => 0]);
+            DB::table($tableName)->whereNull('contract_register_value')->update(['contract_register_value' => 0]);
+
+            Schema::table($tableName, function (Blueprint $table) {
+                $table->decimal('contract_value', 10, 2)->nullable(false)->change();
+                $table->decimal('contract_register_value', 10, 2)->nullable(false)->change();
+            });
+        }
+    }
+};

+ 1 - 0
lang/en/validation.php

@@ -219,6 +219,7 @@
         'neighborhood' => 'Neighborhood',
         'complement' => 'Address Complement',
         'city_id' => 'City',
+        'class_package_unit_id' => 'Class Package Unit',
         'state_id' => 'State',
         'email' => 'Email',
         'document_number' => 'Student CPF',

+ 1 - 0
lang/es/validation.php

@@ -219,6 +219,7 @@
         'neighborhood' => 'Barrio',
         'complement' => 'Complemento de Dirección',
         'city_id' => 'Ciudad',
+        'class_package_unit_id' => 'Unidad del Paquete de Clases',
         'state_id' => 'Estado',
         'email' => 'Correo Electrónico',
         'document_number' => 'CPF del Estudiante',

+ 1 - 0
lang/pt/validation.php

@@ -220,6 +220,7 @@
         'neighborhood' => 'Bairro',
         'complement' => 'Complemento',
         'city_id' => 'Cidade',
+        'class_package_unit_id' => 'Unidade do Pacote de Aulas',
         'state_id' => 'Estado',
         'email' => 'E-mail',
         'document_number' => 'CPF do Estudante',