up
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\OrdenProduccion;
|
||||
use Filament\Widgets\Widget;
|
||||
|
||||
class PipelineOrdersWidget extends Widget
|
||||
{
|
||||
protected static string $view = 'filament.widgets.pipeline-orders-widget';
|
||||
|
||||
public $states = [
|
||||
'en_corte' => 'En corte',
|
||||
'en_confeccion' => 'En confección',
|
||||
'en_tintoreria' => 'En tintorería',
|
||||
'en_acabados' => 'En acabados',
|
||||
'finalizada' => 'Finalizada',
|
||||
];
|
||||
|
||||
public $ordersByState = [];
|
||||
|
||||
public function mount()
|
||||
{
|
||||
$this->loadOrders();
|
||||
}
|
||||
|
||||
public function loadOrders()
|
||||
{
|
||||
$this->ordersByState = [];
|
||||
foreach (array_keys($this->states) as $s) {
|
||||
$this->ordersByState[$s] = OrdenProduccion::where('estado', $s)
|
||||
->orderBy('fecha_entrega_estimada')
|
||||
->limit(12)
|
||||
->get();
|
||||
}
|
||||
}
|
||||
|
||||
// Allow external refresh
|
||||
protected function getListeners(): array
|
||||
{
|
||||
return [
|
||||
'pipelineUpdated' => 'loadOrders',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Filament;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\OrdenProduccion;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class OrdenProduccionController extends Controller
|
||||
{
|
||||
public function changeState(Request $request, OrdenProduccion $orden)
|
||||
{
|
||||
$data = $request->validate([
|
||||
'state' => ['required', 'in:en_corte,en_confeccion,en_tintoreria,en_acabados,finalizada'],
|
||||
]);
|
||||
|
||||
try {
|
||||
$orden->update(['estado' => $data['state']]);
|
||||
return response()->json(['ok' => true, 'state' => $data['state']]);
|
||||
} catch (ValidationException $e) {
|
||||
return response()->json(['ok' => false, 'message' => $e->getMessage()], 422);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['ok' => false, 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function advance(Request $request, OrdenProduccion $orden)
|
||||
{
|
||||
try {
|
||||
$orden->avanzarEstado();
|
||||
return response()->json(['ok' => true, 'state' => $orden->estado]);
|
||||
} catch (ValidationException $e) {
|
||||
return response()->json(['ok' => false, 'message' => $e->getMessage()], 422);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['ok' => false, 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user