86 lines
2.4 KiB
PHP
86 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Carbon\Carbon;
|
|
use Filament\Facades\Filament;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
class ProductionQuantity extends Model
|
|
{
|
|
use SoftDeletes;
|
|
|
|
public static $importing = false; // Add this flag
|
|
|
|
protected $fillable = [
|
|
"plant_id",
|
|
"shift_id",
|
|
"line_id",
|
|
"item_id",
|
|
"serial_number",
|
|
"production_order",
|
|
"operator_id",
|
|
];
|
|
|
|
public function plant(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Plant::class);
|
|
}
|
|
|
|
public function shift(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Shift::class);
|
|
}
|
|
|
|
public function line(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Line::class);
|
|
}
|
|
|
|
public function item(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Item::class);
|
|
}
|
|
|
|
protected static function booted()
|
|
{
|
|
static::created(function ($productionQuantity) {
|
|
|
|
if (static::$importing) { // Check flag here
|
|
return;
|
|
}
|
|
|
|
$productionPlan = ProductionPlan::where('plant_id', $productionQuantity->plant_id)
|
|
->where('shift_id', $productionQuantity->shift_id)
|
|
->where('line_id', $productionQuantity->line_id)
|
|
->whereDate('created_at', today())
|
|
// ->where('plan_quantity', $productionQuantity->plan_quantity)
|
|
->latest()
|
|
->first();
|
|
|
|
if (!$productionPlan)
|
|
{
|
|
$productionPlan = ProductionPlan::where('plant_id', $productionQuantity->plant_id)
|
|
->where('shift_id', $productionQuantity->shift_id)
|
|
->where('line_id', $productionQuantity->line_id)
|
|
->whereDate('created_at', Carbon::yesterday())
|
|
// ->where('plan_quantity', $productionQuantity->plan_quantity)
|
|
->latest()
|
|
->first();
|
|
}
|
|
|
|
$operatorName = Filament::auth()->user()->name;
|
|
|
|
if ($productionPlan) {
|
|
$productionPlan->update([
|
|
'production_quantity' => $productionPlan->production_quantity + 1,
|
|
'updated_at' => now(),
|
|
'operator_id'=> $operatorName,
|
|
]);
|
|
}
|
|
});
|
|
}
|
|
}
|