57 lines
1.4 KiB
PHP
57 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Nova\Actions;
|
|
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Queue\InteractsWithQueue;
|
|
use Illuminate\Support\Collection;
|
|
use Laravel\Nova\Actions\Action;
|
|
use Laravel\Nova\Fields\ActionFields;
|
|
use Laravel\Nova\Fields\Select;
|
|
use Laravel\Nova\Fields\Boolean;
|
|
use Laravel\Nova\Fields\BelongsToMany;
|
|
use Laravel\Nova\Fields\Text;
|
|
use Laravel\Nova\Fields\Textarea;
|
|
use Laravel\Nova\Fields\Number;
|
|
use Laravel\Nova\Fields\Currency;
|
|
use Laravel\Nova\Fields\DateTime;
|
|
use Laravel\Nova\Http\Requests\NovaRequest;
|
|
use App\Models\RepairOrder;
|
|
use App\Models\Vehicle;
|
|
use Carbon\Carbon;
|
|
|
|
|
|
class OrderParts extends Action
|
|
{
|
|
use InteractsWithQueue, Queueable;
|
|
|
|
public $name = 'Order Parts';
|
|
|
|
public function handle(ActionFields $fields, Collection $models): \Laravel\Nova\Actions\ActionResponse
|
|
{
|
|
foreach ($models as $part) {
|
|
// In a real implementation, this would create a purchase order
|
|
// For now, we'll just update the quantity
|
|
$part->quantity_in_stock += $fields->quantity;
|
|
$part->save();
|
|
}
|
|
|
|
return Action::message('Parts have been ordered successfully.');
|
|
}
|
|
|
|
public function fields(NovaRequest $request): array
|
|
{
|
|
return [
|
|
Number::make('Quantity')
|
|
->rules('required', 'numeric', 'min:1')
|
|
->default(1),
|
|
];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|