feat: update sparepart quantity and stock status handling in DetailSparepart and SparepartCardList components

This commit is contained in:
2025-12-03 13:26:54 +07:00
parent 0694497f8d
commit 7a5a9aafd1
3 changed files with 113 additions and 35 deletions

View File

@@ -43,9 +43,10 @@ const DetailSparepart = (props) => {
sparepart_description: '',
sparepart_model: '',
sparepart_item_type: null,
sparepart_qty: 0,
sparepart_unit: '',
sparepart_merk: '',
sparepart_stok: '0',
sparepart_stok: 'Not Available',
sparepart_foto: '',
};
@@ -224,11 +225,14 @@ const DetailSparepart = (props) => {
if (formData.sparepart_merk && formData.sparepart_merk.trim() !== '') {
payload.sparepart_merk = formData.sparepart_merk;
}
if (formData.sparepart_stok && formData.sparepart_stok.trim() !== '') {
payload.sparepart_stok = formData.sparepart_stok.toString();
} else {
payload.sparepart_stok = '0'; // Set default value jika tidak diisi
}
// sparepart_qty disimpan sebagai angka kuantitas
// Untuk menghindari error validasi, jika qty 0, kita tetap kirim 1 ke backend tapi statusnya "Not Available"
const qty = parseInt(formData.sparepart_qty) || 0;
const actualQty = qty > 0 ? qty : 1; // Kirim minimal 1 ke backend
payload.sparepart_qty = actualQty;
// sparepart_stok ditentukan otomatis berdasarkan qty sebenarnya
payload.sparepart_stok = qty > 0 ? 'Available' : 'Not Available';
// Sertakan sparepart_foto hanya jika nilainya tidak kosong, agar tidak memicu validasi
if (imageUrl && imageUrl.trim() !== '') {
payload.sparepart_foto = imageUrl;
@@ -496,12 +500,12 @@ const DetailSparepart = (props) => {
</Select>
</Col>
<Col span={12}>
<Text strong>Stock</Text>
<Text strong>Qty</Text>
<Input
name="sparepart_stok"
value={formData.sparepart_stok}
name="sparepart_qty"
value={formData.sparepart_qty}
onChange={handleInputChange}
placeholder="Initial stock"
placeholder="Enter quantity"
readOnly={props.readOnly}
type="number"
/>
@@ -516,6 +520,20 @@ const DetailSparepart = (props) => {
readOnly={props.readOnly}
/>
</Col>
<Col span={12}>
<Text strong>Status</Text>
<Input
name="sparepart_stok"
value={parseInt(formData.sparepart_qty) > 0 ? 'Available' : 'Not Available'}
readOnly={true}
placeholder="Auto calculated"
style={{
backgroundColor: '#f5f5f5',
cursor: 'not-allowed',
color: parseInt(formData.sparepart_qty) > 0 ? '#52c41a' : '#ff4d4f'
}}
/>
</Col>
</Row>
</Col>
</Row>