{{--
Prix du lot
@php $priceLines = $lot->getPriceDisplayLines(); @endphp @if(!empty($priceLines)) @foreach($priceLines as $line)
@if($line['label'] === 'Prix immo TTC' || $line['label'] === 'Prix immo HT') {{ $line['label'] }} {{ $line['value'] }} @elseif($loop->last) {{ $line['label'] }} {{ $line['value'] }} @else {{ $line['label'] }} {{ $line['value'] }} @endif
@endforeach @else
Aucun prix renseigné pour ce lot
@endif --}} @isset($prixVenteTotalParFiscalites)
Prix du lot (synthèse par fiscalité)
@foreach($prixVenteTotalParFiscalites as $index => $pvTab) @php $pv = $pvTab['result']; @endphp
@if(!empty($pv['note']))
{{ $pv['note'] }}
@endif @if(!empty($pv['lignes']))
Prix & fiscalité
Informations financières du lot
@php $pvLignes = is_array($pv['lignes']) ? $pv['lignes'] : []; // Masquer les lignes "Prix des annexes" si (inclus + non inclus) = 0 $annexesNonInclus = 0.0; $annexesInclus = 0.0; foreach ($pvLignes as $ligne) { $code = (string) ($ligne['code'] ?? ''); if ($code === 'annexes_ttc') { $annexesNonInclus = (float) ($ligne['montant'] ?? 0); } elseif ($code === 'annexes_ttc_inclus') { $annexesInclus = (float) ($ligne['montant'] ?? 0); } } if ($annexesNonInclus <= 0 && $annexesInclus <= 0) { $pvLignes = array_values(array_filter($pvLignes, function ($ligne): bool { $code = (string) ($ligne['code'] ?? ''); return ! str_starts_with($code, 'annexes_'); })); } // Masquer les lignes annexes à 0 (non incluses / incluses) $pvLignes = array_values(array_filter($pvLignes, function ($ligne): bool { $code = (string) ($ligne['code'] ?? ''); if (! str_starts_with($code, 'annexes_')) { return true; } return (float) ($ligne['montant'] ?? 0) > 0; })); $pvSections = [ 'Prix du foncier' => [], 'Prix des travaux' => [], 'Prix du lot' => [], 'Prix des annexes' => [], 'Autres' => [], ]; foreach ($pvLignes as $ligne) { $code = (string) ($ligne['code'] ?? ''); if (str_starts_with($code, 'immo_')) { $pvSections['Prix du lot'][] = $ligne; continue; } if (str_starts_with($code, 'mobilier_')) { $pvSections['Prix du lot'][] = $ligne; continue; } if (str_starts_with($code, 'foncier_')) { $pvSections['Prix du foncier'][] = $ligne; continue; } if (str_starts_with($code, 'travaux_')) { $pvSections['Prix des travaux'][] = $ligne; continue; } if (str_starts_with($code, 'annexes_')) { $pvSections['Prix des annexes'][] = $ligne; continue; } $pvSections['Autres'][] = $ligne; } @endphp
@foreach($pvSections as $sectionTitle => $sectionLines) @if(!empty($sectionLines)) @foreach($sectionLines as $ligne) @endforeach @endif @endforeach
{{ $sectionTitle }}
{{ $ligne['libelle'] }} {{ number_format((float) $ligne['montant'], 2, ',', ' ') }} €
Total {{ number_format((float) $pv['total'], 2, ',', ' ') }} €
@else

Aucune ligne de détail pour ce mode de calcul.

@endif @if(!empty($pv['financement']))
Financement
{{ $pv['financement']['libelle'] ?? '' }}
@if(!empty($pv['financement']['lignes'])) @php $finLignes = is_array($pv['financement']['lignes']) ? $pv['financement']['lignes'] : []; // Masquer les lignes "Prix des annexes" si (inclus + non inclus) = 0 $finAnnexesNonInclus = 0.0; $finAnnexesInclus = 0.0; foreach ($finLignes as $ligne) { $code = (string) ($ligne['code'] ?? ''); if ($code === 'annexes_ttc') { $finAnnexesNonInclus = (float) ($ligne['montant'] ?? 0); } elseif ($code === 'annexes_ttc_inclus') { $finAnnexesInclus = (float) ($ligne['montant'] ?? 0); } } if ($finAnnexesNonInclus <= 0 && $finAnnexesInclus <= 0) { $finLignes = array_values(array_filter($finLignes, function ($ligne): bool { $code = (string) ($ligne['code'] ?? ''); return ! str_starts_with($code, 'annexes_'); })); } // Masquer les lignes annexes à 0 (non incluses / incluses) $finLignes = array_values(array_filter($finLignes, function ($ligne): bool { $code = (string) ($ligne['code'] ?? ''); if (! str_starts_with($code, 'annexes_')) { return true; } return (float) ($ligne['montant'] ?? 0) > 0; })); $finSections = [ 'Prix du lot' => [], 'Prix du foncier' => [], 'Prix des annexes' => [], 'Frais' => [], 'Autres' => [], ]; foreach ($finLignes as $ligne) { $code = (string) ($ligne['code'] ?? ''); if ($code === 'prix_vente_total') { $finSections['Prix du lot'][] = $ligne; continue; } if (str_starts_with($code, 'foncier_')) { $finSections['Prix du foncier'][] = $ligne; continue; } if (str_starts_with($code, 'annexes_')) { $finSections['Prix des annexes'][] = $ligne; continue; } if ($code === 'frais_notaire') { $finSections['Frais'][] = $ligne; continue; } $finSections['Autres'][] = $ligne; } @endphp
@foreach($finSections as $sectionTitle => $sectionLines) @if(!empty($sectionLines)) @foreach($sectionLines as $fl) @endforeach @endif @endforeach
{{ $sectionTitle }}
{{ $fl['libelle'] }} {{ number_format((float) $fl['montant'], 2, ',', ' ') }} €
@endif
Montant à financer {{ number_format((float) $pv['financement']['montant'], 2, ',', ' ') }} €
@endif @php $chargeTaxeFonciere = (float) (($lot->prices->firstWhere('type', 'taxe_fonciere')->value ?? 0)); $chargeCopropriete = (float) (($lot->prices->firstWhere('type', 'charge_copropriete')->value ?? 0)); @endphp
Recettes & charges
Informations complémentaires
Charges
@if($chargeTaxeFonciere > 0 || $chargeCopropriete > 0)
@if($chargeTaxeFonciere > 0) @endif @if($chargeCopropriete > 0) @endif
Charges foncière {{ number_format($chargeTaxeFonciere, 2, ',', ' ') }} €
Charges de copro {{ number_format($chargeCopropriete, 2, ',', ' ') }} €
@else

Aucune charge renseignée.

@endif
@php $fraisNotaire = 0.0; if (!empty($pv['financement']['lignes']) && is_array($pv['financement']['lignes'])) { foreach ($pv['financement']['lignes'] as $fl) { if (($fl['code'] ?? null) === 'frais_notaire') { $fraisNotaire = (float) ($fl['montant'] ?? 0); break; } } } if ($fraisNotaire <= 0) { $fraisNotaire = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeFrais::FRAIS_NOTAIRE->value)->value ?? 0)); } $fraisMiseCopro = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeFrais::FRAIS_MISE_COPRO->value)->value ?? 0)); $depotGarantie = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeFrais::DEPOT_GARANTIE->value)->value ?? 0)); $fraisGerance = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeFrais::FRAIS_GERANCE->value)->value ?? 0)); $fiscaliteValue = $pv['fiscalite_utilisee']['value'] ?? null; $showGerance = in_array($fiscaliteValue, [ \App\Enums\Fiscalite::LMNP_SEVICES_AVEC_TVA->value, \App\Enums\Fiscalite::LMNP_SEVICES_SANS_TVA->value, ], true); $hasAnyFrais = ($fraisNotaire > 0) || ($fraisMiseCopro > 0) || ($depotGarantie > 0) || ($showGerance && $fraisGerance > 0); @endphp
Frais et prix supplémentaires
@if($hasAnyFrais)
@if($fraisNotaire > 0) @endif @if($fraisMiseCopro > 0) @endif @if($depotGarantie > 0) @endif @if($showGerance && $fraisGerance > 0) @endif
Frais de notaire {{ number_format($fraisNotaire, 2, ',', ' ') }} €
Frais de mise en copropriété {{ number_format($fraisMiseCopro, 2, ',', ' ') }} €
Dépot de garantie {{ number_format($depotGarantie, 2, ',', ' ') }} €
Frais de gérance {{ number_format($fraisGerance, 2, ',', ' ') }} €
@else

Aucun frais supplémentaire renseigné.

@endif
@php $loyerMensuelTtc = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeLoyer::MENSUEL_TTC->value)->value ?? 0)); $loyerMensuelHt = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeLoyer::MENSUEL_HT->value)->value ?? 0)); $loyerMensuelPlafonneDispositifFiscal = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeLoyer::MENSUEL_PLAFONNE_DISPOSITIF_FISCAL->value)->value ?? 0)); $loyerMensuelSocialJeanBrun = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeLoyer::MENSUEL_SOCIAL_JEAN_BRUN->value)->value ?? 0)); $loyerMensuelTresSocialJeanBrun = (float) (($lot->prices->firstWhere('type', \App\Enums\PriceTypeLoyer::MENSUEL_TRES_SOCIAL_JEAN_BRUN->value)->value ?? 0)); $showLoyerMensuelTtcPrixMarche = in_array($fiscaliteValue, [ \App\Enums\Fiscalite::MALRAUX->value, \App\Enums\Fiscalite::RESIDENCE_PRINCIPALE->value, \App\Enums\Fiscalite::DEFICIT_FONCIER->value, \App\Enums\Fiscalite::LMNP_SEVICES_AVEC_TVA->value, \App\Enums\Fiscalite::LMNP_SEVICES_SANS_TVA->value, \App\Enums\Fiscalite::LMNP_ANCIEN->value, \App\Enums\Fiscalite::MONUMENT_HISTORIQUE->value, ], true); $showLoyerMensuelHtPrixMarche = in_array($fiscaliteValue, [ \App\Enums\Fiscalite::LMNP_SEVICES_AVEC_TVA->value, \App\Enums\Fiscalite::LMNP_SEVICES_SANS_TVA->value, ], true); $showLoyerMensuelPlafonneDispositifFiscal = in_array($fiscaliteValue, [ \App\Enums\Fiscalite::DENORMANDIE->value, \App\Enums\Fiscalite::DENORMANDIE_OPTIMISE_AU_DF->value, \App\Enums\Fiscalite::JEAN_BRUN_NEUF->value, \App\Enums\Fiscalite::JEAN_BRUN_ANCIEN->value, \App\Enums\Fiscalite::LLI->value, ], true); $showLoyerJeanBrun = in_array($fiscaliteValue, [ \App\Enums\Fiscalite::JEAN_BRUN_NEUF->value, \App\Enums\Fiscalite::JEAN_BRUN_ANCIEN->value, ], true); $hasAnyLoyer = ($showLoyerMensuelTtcPrixMarche && $loyerMensuelTtc > 0) || ($showLoyerMensuelHtPrixMarche && $loyerMensuelHt > 0) || ($showLoyerMensuelPlafonneDispositifFiscal && $loyerMensuelPlafonneDispositifFiscal > 0) || ($showLoyerJeanBrun && $loyerMensuelSocialJeanBrun > 0) || ($showLoyerJeanBrun && $loyerMensuelTresSocialJeanBrun > 0); @endphp
Loyers
@if($hasAnyLoyer)
@if($showLoyerMensuelTtcPrixMarche && $loyerMensuelTtc > 0) @endif @if($showLoyerMensuelHtPrixMarche && $loyerMensuelHt > 0) @endif @if($showLoyerMensuelPlafonneDispositifFiscal && $loyerMensuelPlafonneDispositifFiscal > 0) @endif @if($showLoyerJeanBrun && $loyerMensuelSocialJeanBrun > 0) @endif @if($showLoyerJeanBrun && $loyerMensuelTresSocialJeanBrun > 0) @endif
Loyer mensuel TTC (prix du marché) {{ number_format($loyerMensuelTtc, 2, ',', ' ') }} €
Loyer mensuel HT (prix du marché) {{ number_format($loyerMensuelHt, 2, ',', ' ') }} €
Loyer mensuel plafonné selon dispositif fiscal {{ number_format($loyerMensuelPlafonneDispositifFiscal, 2, ',', ' ') }} €
Loyer social Jean Brun {{ number_format($loyerMensuelSocialJeanBrun, 2, ',', ' ') }} €
Loyer très social Jean Brun {{ number_format($loyerMensuelTresSocialJeanBrun, 2, ',', ' ') }} €
@else

Aucun loyer renseigné.

@endif
@endforeach
@endisset