Explorar o código

refactor: remove early payment discount and interest rate fields from StudentContract and related resources

alvesantos hai 19 horas
pai
achega
71f8a13429

+ 0 - 2
app/Http/Requests/StudentContractRequest.php

@@ -42,8 +42,6 @@ public function rules(): array
             'total_value'            => 'sometimes|nullable|numeric|min:0',
             'total_installments'     => 'sometimes|nullable|integer|min:1|max:13',
             'total_due_date'         => 'sometimes|nullable|date_format:Y-m-d',
-            'early_payment_discount' => 'sometimes|nullable|numeric|min:0|max:100',
-            'interest_rate'          => 'sometimes|nullable|numeric|min:0',
             'payment_method'         => 'sometimes|nullable|string|in:pix,credit_card,debit_card',
             'fine_cancelled'         => 'sometimes|nullable|numeric|min:0|max:100',
         ];

+ 0 - 2
app/Http/Resources/StudentContractResource.php

@@ -67,8 +67,6 @@ public function toArray(Request $request): array
                 ? Carbon::parse($this->total_due_date)->format('d/m/Y')
                 : null,
 
-            'early_payment_discount' => $this->early_payment_discount,
-            'interest_rate'          => $this->interest_rate,
             'payment_method'         => $this->payment_method,
             'fine_cancelled'         => $this->fine_cancelled,
             'status'                 => $this->status,

+ 0 - 2
app/Models/StudentContract.php

@@ -40,8 +40,6 @@
  * @property string|null $second_end_time
  * @property int|null $recurring_day
  * @property \Illuminate\Database\Eloquent\Collection<int, \App\Models\StudentContractInstallment> $installments
- * @property string|null $early_payment_discount
- * @property string|null $interest_rate
  * @property string|null $payment_method
  * @property string|null $file_url
  * @property string|null $file_type

+ 27 - 0
database/migrations/2026_08_18_000003_drop_unused_financial_fields_from_student_contracts.php

@@ -0,0 +1,27 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+/**
+ * "Desconto até o vencimento" e "Juros" saíram do formulário de contrato —
+ * não fazem mais parte do fluxo (a multa por atraso continua, via fine_cancelled).
+ */
+return new class extends Migration
+{
+    public function up(): void
+    {
+        Schema::table('student_contracts', function (Blueprint $table) {
+            $table->dropColumn(['early_payment_discount', 'interest_rate']);
+        });
+    }
+
+    public function down(): void
+    {
+        Schema::table('student_contracts', function (Blueprint $table) {
+            $table->decimal('early_payment_discount', 5, 2)->nullable();
+            $table->decimal('interest_rate', 5, 2)->nullable();
+        });
+    }
+};

+ 1 - 10
resources/views/student-contracts/contract.blade.php

@@ -120,10 +120,6 @@
     $totalContract = (float) ($contract->total_value ?? ($enrollmentValue + $classValue + $materialValue));
     $classDiscountPercentage = (float) ($modality?->classes_discount_percentage ?? 0);
 
-    $packageInstallments = max(1, (int) ($contract->package_installments ?? 1));
-    $classInstallmentValue = $classValue / $packageInstallments;
-    $punctualityValue = $classInstallmentValue * (1 - ((float) ($contract->early_payment_discount ?? 0) / 100));
-
     // Um bloco por valor que efetivamente gera cobrança (Matrícula/Aulas/
     // Materiais só aparecem aqui quando a modalidade marcou "permite
     // parcelar"; o que está "incluso no valor do curso" some daqui e entra
@@ -244,11 +240,6 @@
                     1ª parcela em {{ $date($block['due_date']) }}, demais todo dia {{ str_pad((string) ($contract->recurring_day ?? ''), 2, '0', STR_PAD_LEFT) }}
                 </div>
             @endforeach
-
-            @if ($contract->early_payment_discount)
-                <div class="line"><span class="label">DESCONTO POR PONTUALIDADE:</span> {{ $percentage($contract->early_payment_discount) }}</div>
-                <div class="line"><span class="label">VALOR DA PARCELA DE AULAS SE PAGO ATÉ O VENCIMENTO:</span> {{ $money($punctualityValue) }}</div>
-            @endif
         </td>
     </tr>
 </table>
@@ -307,7 +298,7 @@
 <p>6.4. E em caso de rescisão de contrato por desistência do CONTRATANTE ou pela inadimplência, hipóteses das cláusulas 6.1.3 e 6.1.4, além do pagamento das aulas dadas e não canceladas, deverá efetuar o pagamento da multa prevista na cláusula 4.2.</p>
 
 <div class="clause-title">Cláusula 7ª - CONDIÇÕES GERAIS</div>
-<p>7.1 - No caso de não pagamento dos valores acertados no Quadro Forma de Pagamento, fica ajustada a multa de 2% e os juros monetários de {{ $percentage($contract->interest_rate ?: 1) }} ao mês, ambos incidentes sobre o valor principal em débito, mais honorários advocatícios de 10% em caso de cobrança extrajudicial realizada por advogado da CONTRATADA e honorários advocatícios a serem arbitrado pelo juiz em caso de cobrança judicial.</p>
+<p>7.1 - No caso de não pagamento dos valores acertados no Quadro Forma de Pagamento, fica ajustada a multa de 2% e os juros monetários de 1% ao mês, ambos incidentes sobre o valor principal em débito, mais honorários advocatícios de 10% em caso de cobrança extrajudicial realizada por advogado da CONTRATADA e honorários advocatícios a serem arbitrado pelo juiz em caso de cobrança judicial.</p>
 <p>7.2 - O presente contrato não poderá ser cedido, nem transferido, sem a prévia e expressa anuência das partes.</p>
 <p>7.3 O CONTRATANTE autoriza a CONTRATADA a utilizar-se livre de quaisquer ônus, da imagem do aluno para fins exclusivos de divulgação da empresa, seus cursos e suas atividades podendo, para tanto, reproduzi-la ou divulga-la junto à Internet, jornais internos ou não e todos os demais meios de comunicação público ou privado.</p>
 <p>7.4. No final do ano, as aulas do curso serão suspensas durante o período de festas, de acordo com comunicado a ser enviado pela CONTRATADA para o CONTRATANTE.</p>