mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-10 19:21:27 +03:30
remove the validation for cycle number in store label and add an eloquent event for updating cycle number when cycle is saved.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Events;
|
||||
|
||||
use App\Models\Cycle;
|
||||
use Illuminate\Broadcasting\Channel;
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Broadcasting\PresenceChannel;
|
||||
use Illuminate\Broadcasting\PrivateChannel;
|
||||
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class CycleSaved
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*/
|
||||
|
||||
public Cycle $cycle;
|
||||
|
||||
public function __construct(Cycle $cycle)
|
||||
{
|
||||
$this->cycle = $cycle;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the channels the event should broadcast on.
|
||||
*
|
||||
* @return array<int, \Illuminate\Broadcasting\Channel>
|
||||
*/
|
||||
public function broadcastOn(): array
|
||||
{
|
||||
return [
|
||||
// new PrivateChannel('channel-name'),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ class StoreLabelRequest extends FormRequest
|
||||
'sterile_date' => 'required|date',
|
||||
'expire_date' => 'required|date',
|
||||
'sterilizer_id' => 'required',
|
||||
'cycle_number' => 'required|exists:cycles,cycle_number',
|
||||
'cycle_number' => 'required',
|
||||
'lot_number' => 'required',
|
||||
'package_id' => 'required|exists:packages,id',
|
||||
];
|
||||
@@ -39,7 +39,7 @@ class StoreLabelRequest extends FormRequest
|
||||
'sterile_date' => 'required',
|
||||
'expire_date' => 'required',
|
||||
'sterilizer_id' => 'required',
|
||||
'cycle_number' => 'required|exists:cycles,cycle_number',
|
||||
'cycle_number' => 'required',
|
||||
'lot_number' => 'required',
|
||||
'package_id' => 'required|exists:packages,id',
|
||||
];
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Listeners;
|
||||
|
||||
use App\Events\CycleSaved;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
|
||||
class UpdateLabelsCycleNumber
|
||||
{
|
||||
/**
|
||||
* Create the event listener.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the event.
|
||||
*/
|
||||
public function handle(CycleSaved $event): void
|
||||
{
|
||||
$cycle = $event->cycle;
|
||||
$cycleNumber = $cycle->cycle_number;
|
||||
|
||||
$cycle->labels()->update(['cycle_number' => $cycleNumber]);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Events\CycleSaved;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -14,6 +15,17 @@ class Cycle extends Model
|
||||
'date', 'user_id', 'cycle_number', 'sterilizer_id', 'note', 'verified', 'unique_id'
|
||||
];
|
||||
|
||||
protected static function booted()
|
||||
{
|
||||
static::created(function ($cycle) {
|
||||
event(new CycleSaved($cycle));
|
||||
});
|
||||
|
||||
static::updated(function ($cycle) {
|
||||
event(new CycleSaved($cycle));
|
||||
});
|
||||
}
|
||||
|
||||
public function user(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
|
||||
@@ -18,6 +18,9 @@ class EventServiceProvider extends ServiceProvider
|
||||
Registered::class => [
|
||||
SendEmailVerificationNotification::class,
|
||||
],
|
||||
\App\Events\CycleSaved::class => [
|
||||
\App\Listeners\UpdateLabelsCycleNumber::class,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user