61 lines
1.4 KiB
PHP
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');
|
|
}
|
|
}
|