This commit is contained in:
Dwi Swandhana
2026-05-04 06:32:22 +07:00
parent fe89a024a1
commit 16eac8512e
11 changed files with 466 additions and 56 deletions
+15 -2
View File
@@ -23,6 +23,7 @@ class GudangPos extends Component
public string $selectedKode = '';
public string $satuanTransaksi = 'besar';
public int $qty = 1;
public string $keterangan = '';
public string $search = '';
@@ -70,6 +71,7 @@ class GudangPos extends Component
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
$this->qty = 1;
$this->keterangan = '';
$this->satuanTransaksi = (string) ($parsed['satuan_transaksi'] ?? 'besar');
$this->syncSatuanAvailability();
$this->dispatch('gudangpos-open-modal');
@@ -95,6 +97,7 @@ class GudangPos extends Component
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
$this->qty = 1;
$this->keterangan = '';
$this->syncSatuanAvailability();
$this->dispatch('gudangpos-open-modal');
}
@@ -122,6 +125,7 @@ class GudangPos extends Component
}
$qty = (int) $this->qty;
$keterangan = trim((string) $this->keterangan);
if ($qty <= 0) {
$this->toast('error', 'Jumlah harus lebih dari 0.');
return;
@@ -135,7 +139,11 @@ class GudangPos extends Component
$found = false;
foreach ($this->cart as $i => $line) {
if (($line['kode'] ?? '') === $kode && ($line['satuan_transaksi'] ?? '') === $this->satuanTransaksi) {
if (
($line['kode'] ?? '') === $kode
&& ($line['satuan_transaksi'] ?? '') === $this->satuanTransaksi
&& trim((string) ($line['keterangan'] ?? '')) === $keterangan
) {
$this->cart[$i]['qty'] = ((int) ($this->cart[$i]['qty'] ?? 0)) + $qty;
$found = true;
break;
@@ -148,10 +156,12 @@ class GudangPos extends Component
'jenis' => (string) ($jenis->jenis ?? ''),
'qty' => $qty,
'satuan_transaksi' => $this->satuanTransaksi,
'keterangan' => $keterangan,
];
}
$this->qty = 1;
$this->keterangan = '';
$this->dispatch('gudangpos-close-modal');
$this->dispatch('gudangpos-focus', field: 'scan');
}
@@ -204,6 +214,7 @@ class GudangPos extends Component
$kode = $service->sanitizeKode((string) ($line['kode'] ?? ''));
$qty = (int) ($line['qty'] ?? 0);
$satuan = (string) ($line['satuan_transaksi'] ?? 'besar');
$keterangan = trim((string) ($line['keterangan'] ?? ''));
if ($kode === '' || $qty <= 0) {
$this->toast('error', 'Ada item keranjang yang tidak valid.');
return;
@@ -241,6 +252,7 @@ class GudangPos extends Component
'qty' => $qty,
'qty_base' => $qtyBase,
'satuan_transaksi' => $satuan,
'keterangan' => $keterangan,
];
}
@@ -259,7 +271,7 @@ class GudangPos extends Component
'satuan_transaksi' => (string) $row['satuan_transaksi'],
'masa_expired' => null,
'jenis' => (string) ($jenis->jenis ?? ''),
'keterangan' => '',
'keterangan' => (string) ($row['keterangan'] ?? ''),
'marking' => '',
]);
}
@@ -267,6 +279,7 @@ class GudangPos extends Component
$this->cart = [];
$this->qty = 1;
$this->keterangan = '';
$this->toast('success', 'Barang keluar berhasil diproses.');
$this->dispatch('gudang-refresh');
$this->dispatch('gudangpos-close-modal');