Optional animal
This commit is contained in:
@@ -223,18 +223,41 @@ async function handleAddDrug(e) {
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await fetch(`${API_URL}/drugs`, {
|
||||
// Create the drug first
|
||||
const drugResponse = await fetch(`${API_URL}/drugs`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(drugData)
|
||||
});
|
||||
|
||||
if (!response.ok) throw new Error('Failed to add drug');
|
||||
if (!drugResponse.ok) throw new Error('Failed to add drug');
|
||||
const createdDrug = await drugResponse.json();
|
||||
|
||||
// Check if initial variant data was provided
|
||||
const variantStrength = document.getElementById('initialVariantStrength').value.trim();
|
||||
if (variantStrength) {
|
||||
const variantData = {
|
||||
strength: variantStrength,
|
||||
quantity: parseFloat(document.getElementById('initialVariantQuantity').value) || 0,
|
||||
unit: document.getElementById('initialVariantUnit').value || 'units',
|
||||
low_stock_threshold: parseFloat(document.getElementById('initialVariantThreshold').value) || 10
|
||||
};
|
||||
|
||||
const variantResponse = await fetch(`${API_URL}/drugs/${createdDrug.id}/variants`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(variantData)
|
||||
});
|
||||
|
||||
if (!variantResponse.ok) throw new Error('Failed to add variant');
|
||||
}
|
||||
|
||||
document.getElementById('drugForm').reset();
|
||||
document.getElementById('initialVariantUnit').value = 'units';
|
||||
document.getElementById('initialVariantThreshold').value = '10';
|
||||
closeModal(document.getElementById('addModal'));
|
||||
await loadDrugs();
|
||||
alert('Drug added successfully! Now add variants for this drug.');
|
||||
alert('Drug added successfully!');
|
||||
} catch (error) {
|
||||
console.error('Error adding drug:', error);
|
||||
alert('Failed to add drug. Check the console for details.');
|
||||
@@ -251,8 +274,8 @@ async function handleDispenseDrug(e) {
|
||||
const userName = document.getElementById('dispenseUser').value;
|
||||
const notes = document.getElementById('dispenseNotes').value;
|
||||
|
||||
if (!variantId || !quantity || !animalName || !userName) {
|
||||
alert('Please fill in all required fields');
|
||||
if (!variantId || isNaN(quantity) || quantity <= 0 || !userName) {
|
||||
alert('Please fill in all required fields (Drug Variant, Quantity > 0, Dispensed by)');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -358,7 +381,13 @@ async function handleAddVariant(e) {
|
||||
|
||||
// Open edit variant modal
|
||||
function openEditVariantModal(variantId) {
|
||||
const variant = currentDrug.variants.find(v => v.id === variantId);
|
||||
// Find the variant from all drugs
|
||||
let variant = null;
|
||||
for (const drug of allDrugs) {
|
||||
variant = drug.variants.find(v => v.id === variantId);
|
||||
if (variant) break;
|
||||
}
|
||||
|
||||
if (!variant) return;
|
||||
|
||||
document.getElementById('editVariantId').value = variant.id;
|
||||
|
||||
Reference in New Issue
Block a user