|
|
@@ -106,23 +106,35 @@
|
|
|
: null,
|
|
|
])->filter()->implode(' e ');
|
|
|
|
|
|
- $materialValue = (float) ($package?->contract_material_value ?? 0);
|
|
|
- $classValue = (float) ($contract->package_value ?? 0);
|
|
|
+ $pricingModeLabels = ['pavao' => 'Pavão', 'irrecusavel' => 'Irrecusável'];
|
|
|
+ $pricingModeLabel = $pricingModeLabels[$contract->pricing_mode] ?? null;
|
|
|
+ $modality = match ($contract->pricing_mode) {
|
|
|
+ 'pavao' => $package?->pavaoProposalUnit,
|
|
|
+ 'irrecusavel' => $package?->irrecusableProposalUnit,
|
|
|
+ default => null,
|
|
|
+ };
|
|
|
+
|
|
|
$enrollmentValue = (float) ($contract->tax_register ?? 0);
|
|
|
- $totalContract = $materialValue + $classValue + $enrollmentValue;
|
|
|
- $classDiscount = (float) ($package?->contrat_discount_value ?? 0);
|
|
|
- $classOriginalValue = $classValue + $classDiscount;
|
|
|
- $classDiscountPercentage = $classOriginalValue > 0
|
|
|
- ? ($classDiscount / $classOriginalValue) * 100
|
|
|
- : 0;
|
|
|
+ $classValue = (float) ($contract->package_value ?? 0);
|
|
|
+ $materialValue = (float) ($contract->materials_value ?? 0);
|
|
|
+ $totalContract = (float) ($contract->total_value ?? ($enrollmentValue + $classValue + $materialValue));
|
|
|
+ $classDiscountPercentage = (float) ($modality?->classes_discount_percentage ?? 0);
|
|
|
+
|
|
|
$packageInstallments = max(1, (int) ($contract->package_installments ?? 1));
|
|
|
- $enrollmentInstallments = max(0, (int) ($contract->installments ?? 0));
|
|
|
$classInstallmentValue = $classValue / $packageInstallments;
|
|
|
$punctualityValue = $classInstallmentValue * (1 - ((float) ($contract->early_payment_discount ?? 0) / 100));
|
|
|
- $totalInstallments = $packageInstallments + $enrollmentInstallments;
|
|
|
- $installmentDescription = $enrollmentInstallments > 0
|
|
|
- ? ' (Matrícula + '.$packageInstallments.'x)'
|
|
|
- : '';
|
|
|
+
|
|
|
+ // 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
|
|
|
+ // só no bloco "Total do Curso").
|
|
|
+ $installmentBlocks = collect([
|
|
|
+ ['label' => 'Matrícula', 'value' => $enrollmentValue, 'installments' => (int) ($contract->installments ?? 0), 'due_date' => $contract->enrollment_due_date],
|
|
|
+ ['label' => 'Aulas', 'value' => $classValue, 'installments' => (int) ($contract->package_installments ?? 0), 'due_date' => $contract->package_due_date],
|
|
|
+ ['label' => 'Materiais', 'value' => $materialValue, 'installments' => (int) ($contract->materials_installments ?? 0), 'due_date' => $contract->materials_due_date],
|
|
|
+ ['label' => 'Total do Curso', 'value' => $totalContract, 'installments' => (int) ($contract->total_installments ?? 0), 'due_date' => $contract->total_due_date],
|
|
|
+ ])->filter(fn ($block) => $block['value'] > 0 && $block['installments'] > 0)
|
|
|
+ ->map(fn ($block) => [...$block, 'installment_value' => $block['value'] / $block['installments']]);
|
|
|
|
|
|
$issueDate = ($contract->signature_date ?? now())->copy();
|
|
|
$studentAge = $student?->birth_date
|
|
|
@@ -204,23 +216,39 @@
|
|
|
<tr><td colspan="3"><span class="label">Dia(s) e horário(s):</span> {{ $schedule }}</td></tr>
|
|
|
<tr>
|
|
|
<td colspan="2"><span class="label">DURAÇÃO:</span> DE {{ $date($contract->signature_date) }} ATÉ {{ $date($contract->end_date) }}</td>
|
|
|
- <td><span class="label">MODALIDADE:</span> {{ $package?->name }}</td>
|
|
|
+ <td>
|
|
|
+ <span class="label">MODALIDADE:</span> {{ $package?->name }}
|
|
|
+ @if ($pricingModeLabel)
|
|
|
+ — Contrato {{ $pricingModeLabel }}
|
|
|
+ @endif
|
|
|
+ </td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <td><span class="label">TOTAL CONTRATO:</span> {{ $money($totalContract) }}</td>
|
|
|
- <td><span class="label">DESCONTO AULAS:</span> {{ $money($classDiscount) }} ({{ $percentage($classDiscountPercentage) }})</td>
|
|
|
- <td><span class="label">AULAS COM DESCONTO:</span> {{ $money($classValue) }}</td>
|
|
|
+ <td colspan="3">
|
|
|
+ <span class="label">TOTAL CONTRATO:</span> {{ $money($totalContract) }}
|
|
|
+ @if ($classDiscountPercentage > 0)
|
|
|
+ <span class="label">DESCONTO AULAS (pontualidade):</span> {{ $percentage($classDiscountPercentage) }}
|
|
|
+ @endif
|
|
|
+ </td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td colspan="3">
|
|
|
<div class="line"><span class="label">TAXA DE MATRÍCULA:</span> {{ $money($enrollmentValue) }}</div>
|
|
|
- <div class="line"><span class="label">MATERIAL:</span> {{ $money($materialValue) }} EM 1 vez</div>
|
|
|
- <div class="line"><span class="label">AULAS (- {{ $percentage($classDiscountPercentage) }}):</span> {{ $money($classValue) }}</div>
|
|
|
- <div class="line"><span class="label">Nº DE PARCELAS:</span> {{ $totalInstallments }} vezes{{ $installmentDescription }}</div>
|
|
|
- <div class="line"><span class="label">VALOR:</span> {{ $money($classInstallmentValue) }}</div>
|
|
|
- <div class="line"><span class="label">VENCIMENTO:</span> todo dia {{ str_pad((string) ($contract->recurring_day ?? ''), 2, '0', STR_PAD_LEFT) }}</div>
|
|
|
- <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 SE PAGO ATÉ O VENCIMENTO:</span> {{ $money($punctualityValue) }}</div>
|
|
|
+ <div class="line"><span class="label">MATERIAL:</span> {{ $money($materialValue) }}</div>
|
|
|
+ <div class="line"><span class="label">AULAS:</span> {{ $money($classValue) }}</div>
|
|
|
+
|
|
|
+ @foreach ($installmentBlocks as $block)
|
|
|
+ <div class="line">
|
|
|
+ <span class="label">{{ mb_strtoupper($block['label']) }}:</span>
|
|
|
+ {{ $block['installments'] }}x de {{ $money($block['installment_value']) }},
|
|
|
+ 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>
|