@extends('layouts.enterprise')
@section('title', 'Clientes')
@section('content')
Clientes
Administra clientes, datos fiscales, reglas de validación RC y la lógica de agrupación de vistas previas por tipo de RC.
@if(session('ok'))
{{ session('ok') }}
@endif
@if($errors->any())
@foreach($errors->all() as $error)
- {{ $error }}
@endforeach
@endif
@php
$indexRoute = request()->routeIs('accountant.*') ? route('accountant.clients.index') : route('admin.clients.index');
$storeRoute = request()->routeIs('accountant.*') ? route('accountant.clients.store') : route('admin.clients.store');
$hasActiveFilters = (($filters['q'] ?? '') !== '') || (($filters['active'] ?? 'all') !== 'all');
$engineOptions = $groupingEngineOptions ?? [];
$inboundDefaults = $groupingInboundDefaults ?? [];
$ruleTypeOptions = $groupingRuleTypeOptions ?? [];
$oldGroupingEngine = old('grouping_engine', \App\Support\ClientRequestGrouping::ENGINE_RC_RULES);
$oldInboundConfig = old('grouping_engine_config', [
'mx_project_number_regex' => $inboundDefaults['mx_project_number_regex'] ?? '^MX\\d{8}$',
'n6_project_number_regex' => $inboundDefaults['n6_project_number_regex'] ?? '^N6MX\\d{4}$',
'dummy_sponsor_values' => implode(', ', $inboundDefaults['dummy_sponsor_values'] ?? ['DUMMY']),
'require_same_currency' => $inboundDefaults['require_same_currency'] ?? true,
]);
$oldRules = old('rc_grouping_rules', [['type' => 'prefix', 'value' => '']]);
@endphp
Filtros
@if($hasActiveFilters)
Activos
@endif
| ID |
Cliente |
RFC |
Email |
Teléfono |
Días pago |
Validación RC |
Agrupable |
Motor agrupación |
Configuración agrupación |
Movimientos |
Ingresos |
Egresos |
Vistas previas |
Estatus |
Acciones |
@forelse($clients as $client)
@php
$updateRoute = request()->routeIs('accountant.*')
? route('accountant.clients.update', $client)
: route('admin.clients.update', $client);
$clientRules = old('client_edit_id') == $client->id
? old('rc_grouping_rules', $client->rc_grouping_rules ?? [['type' => 'prefix', 'value' => '']])
: ($client->rc_grouping_rules ?? [['type' => 'prefix', 'value' => '']]);
$clientGroupingEngine = old('client_edit_id') == $client->id
? old('grouping_engine', $client->grouping_engine ?: \App\Support\ClientRequestGrouping::ENGINE_RC_RULES)
: ($client->grouping_engine ?: \App\Support\ClientRequestGrouping::ENGINE_RC_RULES);
$clientInboundConfig = old('client_edit_id') == $client->id
? old('grouping_engine_config', [
'mx_project_number_regex' => data_get($client->grouping_engine_config, 'mx_project_number_regex', $inboundDefaults['mx_project_number_regex'] ?? '^MX\\d{8}$'),
'n6_project_number_regex' => data_get($client->grouping_engine_config, 'n6_project_number_regex', $inboundDefaults['n6_project_number_regex'] ?? '^N6MX\\d{4}$'),
'dummy_sponsor_values' => implode(', ', data_get($client->grouping_engine_config, 'dummy_sponsor_values', $inboundDefaults['dummy_sponsor_values'] ?? ['DUMMY'])),
'require_same_currency' => data_get($client->grouping_engine_config, 'require_same_currency', $inboundDefaults['require_same_currency'] ?? true),
])
: [
'mx_project_number_regex' => data_get($client->grouping_engine_config, 'mx_project_number_regex', $inboundDefaults['mx_project_number_regex'] ?? '^MX\\d{8}$'),
'n6_project_number_regex' => data_get($client->grouping_engine_config, 'n6_project_number_regex', $inboundDefaults['n6_project_number_regex'] ?? '^N6MX\\d{4}$'),
'dummy_sponsor_values' => implode(', ', data_get($client->grouping_engine_config, 'dummy_sponsor_values', $inboundDefaults['dummy_sponsor_values'] ?? ['DUMMY'])),
'require_same_currency' => data_get($client->grouping_engine_config, 'require_same_currency', $inboundDefaults['require_same_currency'] ?? true),
];
@endphp
| {{ $client->id }} |
{{ $client->name }} |
{{ $client->rfc ?: '-' }} |
{{ $client->email ?: '-' }} |
{{ $client->phone ?: '-' }} |
{{ $client->payment_days !== null ? (int) $client->payment_days : '-' }} |
{{ $client->validation_rc ? 'Sí' : 'No' }}
|
{{ $client->is_groupable ? 'Sí' : 'No' }}
|
{{ $client->grouping_engine_label }}
|
{{ $client->grouping_rules_summary }}
|
{{ (int) $client->financial_movements_count }} |
${{ number_format((float) ($client->incomes_sum ?? 0), 2) }} |
${{ number_format((float) ($client->expenses_sum ?? 0), 2) }} |
{{ (int) $client->generated_invoices_count }} |
{{ $client->is_active ? 'Activo' : 'Inactivo' }}
|
Editar
|
@empty
| No hay clientes registrados. |
@endforelse
{{ $clients->onEachSide(1)->links('vendor.pagination.enterprise') }}