Kasir/app/Models/Transaksi.php
2025-09-09 17:27:29 +07:00

61 lines
1.4 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Transaksi extends Model
{
/** @use HasFactory<\Database\Factories\TransaksiFactory> */
use HasFactory;
protected $fillable = [
'kode_transaksi', // ✅ Tambahin kolom kode transaksi
'id_kasir',
'id_sales',
'nama_sales',
'nama_pembeli',
'no_hp',
'alamat',
'ongkos_bikin',
'total_harga',
'created_at',
];
protected $hidden = ['updated_at', 'deleted_at'];
// ✅ Auto-generate kode_transaksi saat create
protected static function boot()
{
parent::boot();
// Setelah transaksi berhasil dibuat (sudah punya ID)
static::created(function ($transaksi) {
if (!$transaksi->kode_transaksi) {
$prefix = "TRS";
$date = $transaksi->created_at->format('Ymd');
$number = str_pad($transaksi->id, 4, '0', STR_PAD_LEFT);
$transaksi->kode_transaksi = $prefix . $date . $number;
$transaksi->save();
}
});
}
public function kasir()
{
return $this->belongsTo(User::class, 'id_kasir');
}
public function sales()
{
return $this->belongsTo(Sales::class, 'id_sales');
}
public function itemTransaksi()
{
return $this->hasMany(ItemTransaksi::class, 'id_transaksi');
}
}