feat: profile_photo en contratos activos, notificaciones bilingues en reportes y foto en panel usuarios

- API contratos activos (cliente y proveedor): agrega campo profile_photo (técnico asignado o supplier, null si no tiene)
- Notificaciones push bilingues en comentarios de reporte: "Nueva actividad en tu reporte" / "New activity on your report"
- Moderador en web panel notifica a cliente y proveedor al comentar, con prefijo Moderador/Moderator
- Panel usuarios: columna de foto de perfil entre ID y Nombre

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 17:17:14 -06:00
parent 38da1b56ce
commit 0ed98c96ee
40 changed files with 1390 additions and 651 deletions

View File

@@ -0,0 +1,56 @@
<div class="container-fluid">
<div class="row mb-3">
<div class="col">
<h3>Pagos Realizados</h3>
</div>
</div>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Archivo</th>
<th>Generado por</th>
<th>Fecha de generación</th>
<th>Rango de fechas</th>
<th></th>
</tr>
</thead>
<tbody>
@forelse($batches as $batch)
<tr>
<td>{{ $batch->id }}</td>
<td>{{ $batch->file_name }}</td>
<td>{{ optional($batch->user)->name ?? '—' }}</td>
<td>{{ $batch->created_at->format('d/m/Y H:i') }}</td>
<td>
@if($batch->date_from || $batch->date_to)
{{ $batch->date_from ? \Carbon\Carbon::parse($batch->date_from)->format('d/m/Y') : '—' }}
al
{{ $batch->date_to ? \Carbon\Carbon::parse($batch->date_to)->format('d/m/Y') : '—' }}
@else
Todos los registros
@endif
</td>
<td>
<a href="{{ url('payment-batches/' . $batch->id . '/download') }}"
class="btn btn-sm btn-outline-primary">
<i class="fa fa-download"></i> Descargar
</a>
</td>
</tr>
@empty
<tr>
<td colspan="6" class="text-center text-muted">Sin pagos realizados aún.</td>
</tr>
@endforelse
</tbody>
</table>
{{ $batches->links() }}
</div>