87 lines
3.2 KiB
PHP
87 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\OrdenProduccionResource\Pages;
|
|
|
|
use App\Filament\Resources\OrdenProduccionResource;
|
|
use App\Models\OrdenProduccion;
|
|
use Filament\Resources\Pages\Page;
|
|
use Filament\Infolists\Infolist;
|
|
use Filament\Infolists\Components\{Section, TextEntry, Grid};
|
|
|
|
class VerFlujoOjalesPresillas extends Page
|
|
{
|
|
protected static string $resource = OrdenProduccionResource::class;
|
|
|
|
protected static string $view = 'filament.resources.orden-produccion-resource.pages.ver-flujo-ojales-presillas';
|
|
|
|
protected static ?string $title = 'Flujo de Ojales y Prensillas';
|
|
|
|
public OrdenProduccion $record;
|
|
|
|
public function mount(int | string $record): void
|
|
{
|
|
$this->record = OrdenProduccion::findOrFail($record);
|
|
}
|
|
|
|
public function getFlujoData(): array
|
|
{
|
|
$op = $this->record;
|
|
|
|
// Datos de Confección
|
|
$cantidadRecibidaConfeccion = $op->confecciones()
|
|
->whereNotNull('fecha_recepcion')
|
|
->sum('cantidad_recibida');
|
|
|
|
// Datos de Ojales
|
|
$ojales = $op->ojales;
|
|
$ojalesData = $ojales->map(function ($ojal) {
|
|
return [
|
|
'cantidad' => $ojal->cantidad_enviada,
|
|
'proveedor' => $ojal->proveedor?->nombre ?? 'Sin proveedor',
|
|
'operario' => $ojal->usuarioAsignado?->name ?? '-',
|
|
'terminado' => $ojal->terminada,
|
|
'fecha' => $ojal->fecha_envio?->format('d/m/Y') ?? '-',
|
|
];
|
|
});
|
|
|
|
$ojalesTerminados = $ojales->where('terminada', true)->sum('cantidad_enviada');
|
|
$ojalesPendientes = $ojales->where('terminada', false)->sum('cantidad_enviada');
|
|
|
|
// Datos de Prensillas
|
|
$prensillas = $op->prensillas;
|
|
$prensillasData = $prensillas->map(function ($prensilla) {
|
|
return [
|
|
'cantidad' => $prensilla->cantidad_enviada,
|
|
'proveedor' => $prensilla->proveedor?->nombre ?? 'Sin proveedor',
|
|
'operario' => $prensilla->usuarioAsignado?->name ?? '-',
|
|
'terminado' => $prensilla->terminada,
|
|
'fecha' => $prensilla->fecha_envio?->format('d/m/Y') ?? '-',
|
|
];
|
|
});
|
|
|
|
$prensillasTerminadas = $prensillas->where('terminada', true)->sum('cantidad_enviada');
|
|
$prensillasPendientes = $prensillas->where('terminada', false)->sum('cantidad_enviada');
|
|
|
|
// Verificación de ambos procesos
|
|
$verificacion = $op->verificarProcesosCompletos();
|
|
|
|
return [
|
|
'confeccion_recibida' => $cantidadRecibidaConfeccion,
|
|
'ojales' => [
|
|
'total' => $ojales->sum('cantidad_enviada'),
|
|
'terminados' => $ojalesTerminados,
|
|
'pendientes' => $ojalesPendientes,
|
|
'registros' => $ojalesData,
|
|
],
|
|
'prensillas' => [
|
|
'total' => $prensillas->sum('cantidad_enviada'),
|
|
'terminadas' => $prensillasTerminadas,
|
|
'pendientes' => $prensillasPendientes,
|
|
'registros' => $prensillasData,
|
|
],
|
|
'verificacion' => $verificacion,
|
|
'disponible_tintoreria' => $op->getCantidadDisponibleParaTintoreria(),
|
|
];
|
|
}
|
|
}
|