feat: update sparepart quantity and stock status handling in DetailSparepart and SparepartCardList components
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user