'datetime', ]; protected static function boot() { parent::boot(); static::creating(function ($model) { if (empty($model->doc_no)) { $today = date('Ymd'); $prefix = 'ADJ' . $today; $lastDoc = static::where('doc_no', 'like', $prefix . '%') ->orderBy('doc_no', 'desc') ->first(); if ($lastDoc) { $lastNumber = substr($lastDoc->doc_no, -2); $nextNumber = str_pad((int)$lastNumber + 1, 2, '0', STR_PAD_LEFT); } else { $nextNumber = '01'; } $model->doc_no = $prefix . $nextNumber; } }); } public function warehouse(): BelongsTo { return $this->belongsTo(Warehouse::class); } public function countDoc(): BelongsTo { return $this->belongsTo(InventoryCountDoc::class, 'count_doc_id'); } public function items(): HasMany { return $this->hasMany(InventoryAdjustItem::class, 'adjust_doc_id'); } public function createdBy(): BelongsTo { return $this->belongsTo(User::class, 'created_by'); } public function postedBy(): BelongsTo { return $this->belongsTo(User::class, 'posted_by'); } }