@extends('layouts.ownerLayout') @section('title', 'Detalle de Grupo Mariachi') @section('vendor-style') @vite([ 'resources/assets/vendor/libs/datatables-bs5/datatables.bootstrap5.scss', 'resources/assets/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.scss', 'resources/assets/vendor/libs/datatables-buttons-bs5/buttons.bootstrap5.scss' ]) @endsection @section('vendor-script') @vite([ 'resources/assets/vendor/libs/datatables-bs5/datatables-bootstrap5.js' ]) @endsection @section('page-script') @vite('resources/assets/js/owner-price-rules.js') @endsection @section('content')
Volver a grupos

{{ $group->name }}

Código interno: {{ $group->code }} · Creado {{ $group->created_at?->format('d/m/Y H:i') }}

{{ strtoupper(mb_substr($group->name, 0, 1)) }}
{{ $group->name }}
{{ $group->description ?: 'Grupo mariachi' }}
{{ number_format($stats['serenatas']) }}
Serenatas
{{ number_format($stats['paquetes']) }}
Paquetes
Datos
  • Nombre:{{ $group->name }}
  • Descripción:{{ $group->description ?: 'Sin descripción' }}
  • Estado: {{ $group->is_active ? 'Activo' : 'Inactivo' }}
  • Grupo principal: {{ $group->is_default ? 'Sí' : 'No' }}
  • Clientes vinculados:{{ number_format($stats['clientes']) }}
  • Última serenata:{{ $stats['ultima_serenata'] ? \Illuminate\Support\Carbon::parse($stats['ultima_serenata'])->format('d/m/Y') : 'Sin serenatas' }}
  • Total cobrado:${{ number_format((float) $stats['total_cobrado'], 0, ',', '.') }}
Resumen del grupo
Catálogo propio

Paquetes: {{ $stats['paquetes'] }}

Obsequios: {{ $stats['obsequios'] }}

Artistas: {{ $stats['artistas'] }}

Otros costos: {{ $stats['otros_costos'] }}

Operación

Serenatas registradas: {{ $stats['serenatas'] }}

Clientes vinculados: {{ $stats['clientes'] }}

Total facturado: ${{ number_format((float) $stats['total_cobrado'], 0, ',', '.') }}

Paquetes del grupo
{{ number_format($packages->total()) }} resultados
Limpiar
@forelse($packages as $item) @php $packagePayload = json_encode([ 'id' => (int) $item->id, 'name' => (string) $item->name, 'city' => (string) $item->city, 'internal_cost' => (float) $item->internal_cost, 'commission_amount' => (float) $item->commission_amount, 'base_price' => (float) $item->base_price, 'sort_order' => (int) $item->sort_order, 'is_active' => (bool) $item->is_active, 'is_default' => (bool) $item->is_default, 'gift_codes' => array_values($item->gift_codes ?? []), 'artist_codes' => array_values($item->artist_codes ?? []), 'other_cost_codes' => array_values($item->other_cost_codes ?? []), ], JSON_UNESCAPED_UNICODE); @endphp @empty @endforelse
NombreCiudadCosto internoComisiónPrecioIncluyeEstadoOrdenAcciones
{{ $item->name }} @if($item->is_default)Por defecto@endif {{ $item->city }} ${{ number_format((float) $item->internal_cost, 0, ',', '.') }} ${{ number_format((float) $item->commission_amount, 0, ',', '.') }} ${{ number_format((float) $item->base_price, 0, ',', '.') }} Obsequios: {{ count($item->gift_codes ?? []) }}
Artistas: {{ count($item->artist_codes ?? []) }}
Otros costos: {{ count($item->other_cost_codes ?? []) }}
{{ $item->is_active ? 'Activo' : 'Inactivo' }} {{ $item->sort_order }}
Este grupo aún no tiene paquetes.
@if($packages->hasPages())
{{ $packages->onEachSide(1)->links() }}
@endif
Obsequios del grupo
{{ number_format($giftItems->total()) }} resultados
Limpiar
@forelse($giftItems as $item) @php $giftPayload = json_encode([ 'id' => (int) $item->id, 'name' => (string) $item->name, 'type' => (string) $item->type, 'internal_cost' => (float) $item->internal_cost, 'base_price' => (float) $item->base_price, 'is_active' => (bool) $item->is_active, 'is_default' => (bool) $item->is_default, 'sort_order' => (int) $item->sort_order, ], JSON_UNESCAPED_UNICODE); @endphp @empty @endforelse
NombreTipoCosto internoPrecioEstadoPor defectoOrdenAcciones
{{ $item->name }} {{ $item->type === 'additional' ? 'Adicional' : 'Incluido' }} ${{ number_format((float) $item->internal_cost, 0, ',', '.') }} ${{ number_format((float) $item->base_price, 0, ',', '.') }} {{ $item->is_active ? 'Activo' : 'Inactivo' }} {{ $item->is_default ? 'Sí' : 'No' }} {{ $item->sort_order }}
Este grupo aún no tiene obsequios.
@if($giftItems->hasPages())
{{ $giftItems->onEachSide(1)->links() }}
@endif
Artistas del grupo
{{ number_format($artistItems->total()) }} resultados
Limpiar
@forelse($artistItems as $item) @php $artistPayload = json_encode([ 'id' => (int) $item->id, 'name' => (string) $item->name, 'type' => (string) $item->type, 'internal_cost' => (float) $item->internal_cost, 'base_price' => (float) $item->base_price, 'is_active' => (bool) $item->is_active, 'sort_order' => (int) $item->sort_order, ], JSON_UNESCAPED_UNICODE); @endphp @empty @endforelse
NombreTipoCosto internoPrecioEstadoOrdenAcciones
{{ $item->name }} {{ $item->type === 'additional' ? 'Adicional' : 'Incluido' }} ${{ number_format((float) $item->internal_cost, 0, ',', '.') }} ${{ number_format((float) $item->base_price, 0, ',', '.') }} {{ $item->is_active ? 'Activo' : 'Inactivo' }} {{ $item->sort_order }}
Este grupo aún no tiene artistas.
@if($artistItems->hasPages())
{{ $artistItems->onEachSide(1)->links() }}
@endif
Otros costos del grupo
{{ number_format($otherCostItems->total()) }} resultados
Limpiar
@forelse($otherCostItems as $item) @php $otherCostPayload = json_encode([ 'id' => (int) $item->id, 'name' => (string) $item->name, 'internal_cost' => (float) $item->internal_cost, 'base_price' => (float) $item->base_price, 'is_active' => (bool) $item->is_active, 'sort_order' => (int) $item->sort_order, ], JSON_UNESCAPED_UNICODE); @endphp @empty @endforelse
NombreCosto internoPrecioEstadoOrdenAcciones
{{ $item->name }} ${{ number_format((float) $item->internal_cost, 0, ',', '.') }} ${{ number_format((float) $item->base_price, 0, ',', '.') }} {{ $item->is_active ? 'Activo' : 'Inactivo' }} {{ $item->sort_order }}
Este grupo aún no tiene otros costos.
@if($otherCostItems->hasPages())
{{ $otherCostItems->onEachSide(1)->links() }}
@endif
Serenatas del grupo
{{ number_format($serenatas->total()) }} resultados
Limpiar
@forelse($serenatas as $serenata) @empty @endforelse
CódigoFechaEstadoPagoTotalAcciones
{{ $serenata->code }} {{ optional($serenata->event_date)->format('d/m/Y') }} {{ $serenata->eventWindowLabel() }} {{ $serenata->service_status }} {{ $serenata->payment_status }} ${{ number_format((float) $serenata->total_charged, 0, ',', '.') }} Ver
Este grupo aún no tiene serenatas.
@if($serenatas->hasPages())
{{ $serenatas->onEachSide(1)->links() }}
@endif
Clientes del grupo
{{ number_format($customers->total()) }} resultados
Limpiar
@forelse($customers as $customer) @empty @endforelse
NombreCorreoContactoEstadoAcciones
{{ $customer->name }} {{ $customer->email ?: '-' }} {{ $customer->formatted_mobile ?: '-' }} {{ $customer->is_active ? 'Activo' : 'Inactivo' }} Ver
Este grupo aún no tiene clientes.
@if($customers->hasPages())
{{ $customers->onEachSide(1)->links() }}
@endif
@php $giftIncludedOptions = $packageCatalogGifts->where('type', 'included')->values(); $giftAdditionalOptions = $packageCatalogGifts->where('type', 'additional')->values(); $giftRuleCatalog = $packageCatalogGifts->map(fn ($item) => [ 'code' => $item->code, 'name' => $item->name, 'type' => $item->type, 'internal_cost' => (float) $item->internal_cost, 'base_price' => (float) $item->base_price, ])->values()->all(); $artistRuleCatalog = $packageCatalogArtists->map(fn ($item) => [ 'code' => $item->code, 'name' => $item->name, 'internal_cost' => (float) $item->internal_cost, 'base_price' => (float) $item->base_price, ])->values()->all(); $otherCostRuleCatalog = $packageCatalogOtherCosts->map(fn ($item) => [ 'code' => $item->code, 'name' => $item->name, 'internal_cost' => (float) $item->internal_cost, 'base_price' => (float) $item->base_price, ])->values()->all(); @endphp @include('content.owner.settings.partials.price-rules-modal') @endsection