@if(count($recibo_num['recibo']['controles']) > 0)
@php
$comp = $recibo_num['recibo']['composicion_salarial'];
$total_sindical = $comp['sindical']['empleador'] + $comp['sindical']['trabajador'];
$total_seguridad_social = $comp['seguridad_social']['empleador'] + $comp['seguridad_social']['trabajador'];
$total_obra_social = $comp['obra_social']['empleador'] + $comp['obra_social']['trabajador'];
$total_inssjp = $comp['inssjp']['empleador'] + $comp['inssjp']['trabajador'];
$total_art = $comp['art']['empleador'];
$total_scvo = $comp['scvo']['empleador'];
$total_neto = (float) $recibo_num['recibo']['total_neto'];
$fmt = function ($v) { return '$ ' . number_format((float)$v, 2, ',', '.'); };
// Torta: Costo total empleador = Neto + cada categoría
$slices = [
['label' => 'Sueldo Neto', 'value' => $total_neto, 'color' => '#f6c042'],
['label' => 'Seguridad Social', 'value' => $total_seguridad_social, 'color' => '#e89b3c'],
['label' => 'Costo Sindical', 'value' => $total_sindical, 'color' => '#d97b2b'],
['label' => 'Obra Social', 'value' => $total_obra_social, 'color' => '#7b4fb8'],
['label' => 'PAMI', 'value' => $total_inssjp, 'color' => '#c0392b'],
['label' => 'ART', 'value' => $total_art, 'color' => '#3b6ea5'],
['label' => 'SCVO', 'value' => $total_scvo, 'color' => '#16a085'],
];
$slices = array_values(array_filter($slices, fn($s) => $s['value'] > 0));
$total_torta = array_sum(array_column($slices, 'value'));
// Generar paths SVG (donut)
$svg_paths = [];
if ($total_torta > 0) {
$cx = 60; $cy = 60; $r = 55;
$angulo = -M_PI / 2;
foreach ($slices as $s) {
$frac = $s['value'] / $total_torta;
$delta = $frac * 2 * M_PI;
$a2 = $angulo + $delta;
$x1 = $cx + $r * cos($angulo); $y1 = $cy + $r * sin($angulo);
$x2 = $cx + $r * cos($a2); $y2 = $cy + $r * sin($a2);
$largeArc = $delta > M_PI ? 1 : 0;
if ($frac >= 0.999) {
// Slice único: dibujar círculo completo
$path = "M {$cx},".($cy-$r)." A {$r},{$r} 0 1,1 ".($cx-0.01).",".($cy-$r)." Z";
} else {
$path = "M {$cx},{$cy} L {$x1},{$y1} A {$r},{$r} 0 {$largeArc},1 {$x2},{$y2} Z";
}
$svg_paths[] = ['d' => $path, 'fill' => $s['color']];
$angulo = $a2;
}
}
@endphp
{{-- Barra COMPOSICION SALARIAL --}}
| COMPOSICION SALARIAL: |
Remunerativo: {{ $fmt($recibo_num['recibo']['total_remun']) }} |
No Remunerativo: {{ $fmt($recibo_num['recibo']['total_no_remun']) }} |
Descuentos: {{ $fmt($recibo_num['recibo']['total_aportes']) }} |
|
SUELDO NETO {{ $fmt($total_neto) }}
|
{{-- Detalle de la composición salarial + Torta --}}
{{-- Tabla detalle --}}
|
Detalle de la composición salarial
|
| Total Costo Sindical |
{{ $fmt($total_sindical) }} |
Total costo INSSJP: |
{{ $fmt($total_inssjp) }} |
| Empleador |
{{ $fmt($comp['sindical']['empleador']) }} |
Trabajador |
{{ $fmt($comp['inssjp']['trabajador']) }} |
| Trabajador |
{{ $fmt($comp['sindical']['trabajador']) }} |
Empleador |
{{ $fmt($comp['inssjp']['empleador']) }} |
| Total Seguridad Social |
{{ $fmt($total_seguridad_social) }} |
Total costo ART: |
{{ $fmt($total_art) }} |
| Empleador |
{{ $fmt($comp['seguridad_social']['empleador']) }} |
Empleador |
{{ $fmt($comp['art']['empleador']) }} |
| Trabajador |
{{ $fmt($comp['seguridad_social']['trabajador']) }} |
|
|
| Total Obra Social: |
{{ $fmt($total_obra_social) }} |
Total Costo SCVO: |
{{ $fmt($total_scvo) }} |
| Empleador |
{{ $fmt($comp['obra_social']['empleador']) }} |
Empleador |
{{ $fmt($comp['scvo']['empleador']) }} |
| Trabajador |
{{ $fmt($comp['obra_social']['trabajador']) }} |
|
|
|
Nota: Seguridad social del empleador incluye SIPA, Fondo Nacional de Empleo y Asignaciones Familiares.
|
|
{{-- Torta + leyenda --}}
| Costo total empleador |
@if($total_torta > 0)
@endif
@foreach($slices as $s)
|
|
{{ $s['label'] }} |
@php
$pct = $total_torta > 0 ? $s['value'] * 100 / $total_torta : 0;
$pctFmt = $pct == 0 ? '0,0' : ($pct < 0.1 ? '<0,1' : number_format($pct, 1, ',', '.'));
@endphp
{{ $pctFmt }}%
|
@endforeach
|
|
@endif