MC AUTOPARTS
Nº Comprobante: {{ $venta->num_comprobante }}
Fecha: {{ $venta->fecha_hora }}
Cliente: {{ $venta->cliente ? Str::limit($venta->cliente->nombre, 20) : 'sin nombre' }}
@foreach($venta->detalles as $detalle) @endforeach
Cant Detalle P.Unt. Subtotal
@php $unidad = strtolower(trim($detalle->unidad_medida ?? 'unidad')); $cantidad = (float) $detalle->cantidad; // Verificar si el artículo tiene medida en metros o centímetros $esMetroOCentimetro = false; if ($detalle->articulo && $detalle->articulo->medida) { $nombreMedida = strtolower(trim($detalle->articulo->medida->nombre_medida ?? $detalle->articulo->medida->nombre ?? '')); if (strpos($nombreMedida, 'metro') !== false || strpos($nombreMedida, 'centimetro') !== false || strpos($nombreMedida, 'centímetro') !== false) { $esMetroOCentimetro = true; } } // Verificar si la cantidad tiene decimales significativos // Redondear a 3 decimales primero para evitar problemas de precisión $cantidadRedondeada = round($cantidad, 3); $parteEntera = floor($cantidadRedondeada); $parteDecimal = abs($cantidadRedondeada - $parteEntera); $tieneDecimales = $parteDecimal > 0.0001; // SIEMPRE mostrar con 2 decimales si: // 1. La unidad es metro o centímetro // 2. El artículo tiene medida en metros/centímetros // 3. La cantidad tiene decimales (aunque la unidad sea "Unidad") // Si tiene decimales, SIEMPRE mostrar con 2 decimales sin importar la unidad if ($unidad === 'centimetro' || $unidad === 'metro' || $unidad === 'metros' || $esMetroOCentimetro || $tieneDecimales) { // Siempre mostrar con 2 decimales echo number_format($cantidad, 2, '.', ''); } else { // Solo para Unidad y Paquete sin decimales, mostrar como entero echo number_format($cantidad, 0, '.', ''); } @endphp {{ Str::limit($detalle->articulo->nombre, 100) }} @if($detalle->articulo->codigo) ({{ $detalle->articulo->codigo }}) @endif @if($detalle->articulo->marca && $detalle->articulo->marca->nombre)
Marca: {{ Str::limit($detalle->articulo->marca->nombre, 30) }} @endif
{{ number_format($detalle->precio, 2) }} @php $subtotalSinDescuento = $detalle->cantidad * $detalle->precio; $descuento = (float) ($detalle->descuento ?? 0); $subtotalConDescuento = $subtotalSinDescuento - $descuento; @endphp @if($descuento > 0)
{{ number_format($subtotalSinDescuento, 2) }}
{{ number_format($subtotalConDescuento, 2) }}
Desc: -{{ number_format($descuento, 2) }}
@else {{ number_format($subtotalConDescuento, 2) }} @endif
TOTAL: {{ number_format($venta->total, 2) }}
@php $total = (float) $venta->total; $parteEntera = (int) $total; $parteDecimal = round(($total - $parteEntera) * 100); $centavos = str_pad($parteDecimal, 2, '0', STR_PAD_LEFT); // Usar el número en letras que viene del controlador // Si no viene, mostrar solo el número $textoNumero = isset($numeroEnLetras) && !empty($numeroEnLetras) ? $numeroEnLetras : 'CERO'; @endphp
SON: {{ $textoNumero }} {{ $centavos }}/100 Bolivianos