@csrf @method('PUT')
Modifier l'opération commerciale
@foreach(\App\Enums\OpeComRecipient::cases() as $recipient) @php $inputId = 'recipient_type_update_' . $opeCom->id . '_' . $recipient->value; @endphp recipient_type?->value === $recipient->value) > @endforeach
@php $types = \App\Enums\OpeCom::choosableCases(); $currentType = old('type', $opeCom->type?->value); @endphp @foreach($types as $index => $type) @php $inputId = 'opecom_type_update_' . $opeCom->id . '_' . $type->value; $isChecked = $currentType ? $currentType === $type->value : $index === 0; @endphp @endforeach
@php $dateStart = $opeCom->dates->firstWhere('type', 'date_start'); $dateEnd = $opeCom->dates->firstWhere('type', 'date_end'); $dateStartValue = $dateStart?->value; $dateEndValue = $dateEnd?->value; @endphp
@php $recipientTypeValue = old('recipient_type', $opeCom->recipient_type?->value ?? \App\Enums\OpeComRecipient::CLIENT->value); $currentTypeValue = old('type', $opeCom->type?->value); $prixLimiteValue = $opeCom->prices->firstWhere('type', 'limite_prix')?->value; $prixFixeValue = $opeCom->prices->firstWhere('type', 'prix_fixe')?->value; // Sélection à l'affichage uniquement si : // - ratio existe (non null) => ratio // - sinon si un prix_fixe existe => fixed // - sinon => aucun choix coché $amountMode = old('amount_mode', $opeCom->ratio !== null ? 'ratio' : ($prixFixeValue !== null ? 'fixed' : null)); @endphp
value || $amountMode !== 'ratio' ? 'disabled' : '' }} >
value || $amountMode !== 'ratio' ? 'disabled' : '' }} >
value || $amountMode !== 'fixed' ? 'disabled' : '' }} >
@php $commissionSupplementRateValue = $opeCom->rates?->firstWhere('type', 'commission')?->value; @endphp
value || $currentTypeValue !== \App\Enums\OpeCom::BOOST_DE_COMMISSION->value) ? 'disabled' : '' }} >
@php $selectedUserIds = $opeCom->users->pluck('id')->map(fn ($id) => (string) $id); $commercialisateursActif = $program->application?->commercialisateursActif ?? collect(); $isAllUsersSelected = (bool) $opeCom->default_users; $networks = $program->application?->networks()?->orderBy('name')->get() ?? collect(); $selectedNetworks = collect(old('networks', [])); $persistedCommissionOperator = match ((string) ($opeCom->mode_calcul ?? '')) { '>=' => 'gte', '=' => 'eq', '<=' => 'lte', default => null, }; $persistedCommissionValue = $opeCom->rate_calcul; $selectedCommissionOperator = old('commission_operator', $persistedCommissionOperator); $selectedCommissionValue = old('commission_value', $persistedCommissionValue); $hasCommissionSelected = $selectedCommissionOperator !== null && $selectedCommissionValue !== null && $selectedCommissionValue !== ''; @endphp
isNotEmpty() ? 'checked' : '' }} >
@if($networks->isNotEmpty()) @foreach($networks as $network) @php $isChecked = $selectedNetworks->contains((string) $network->id) || $selectedNetworks->contains($network->id); @endphp
@endforeach @else Aucune entreprise disponible @endif
%

@foreach($commercialisateursActif as $commercialisateur) @php $isChecked = $isAllUsersSelected || $selectedUserIds->contains((string) $commercialisateur->id); @endphp
@endforeach
@php // Lots cochés : strictement ceux présents en pivot. // Case "Tous les lots" : reflète UNIQUEMENT le flag `default_products` de l'ope_com. $programLots = $program->lots; $isAllSelected = (bool) $opeCom->default_products; @endphp

@foreach($programLots as $lot) @php // Cochage strictement basé sur la présence en pivot $isChecked = $lot->containsOpeComViaPivot($opeCom); $lotTypeLabel = ($lot->type && $lot->type !== \App\Enums\ProductType::NON_DEFINI) ? $lot->type->label() : null; $surfaceLabel = $lot->surface !== null ? number_format($lot->surface, 0, ',', ' ') . ' m²' : '—'; $prixTtc = $lot->getPrixLotTTC(); $priceLabel = $prixTtc > 0 ? number_format($prixTtc, 0, ',', ' ') . ' €' : '—'; @endphp
@endforeach
Utilisez l'éditeur pour mettre en forme votre texte
is_active ?? true)) >