This commit is contained in:
2026-03-29 10:39:03 -04:00
parent e00669ae2c
commit ad1bb59f98
6 changed files with 1615 additions and 51 deletions
+89 -19
View File
@@ -203,11 +203,33 @@
</select>
<small style="display: block; margin-top: 6px; color: #666;">Leave on automatic to use the earliest-expiry batch first. Choose a batch here to consume that batch first instead.</small>
</div>
<div class="form-group">
<label for="dispenseMode">Dispense Mode *</label>
<select id="dispenseMode" onchange="updateDispenseModeUi()">
<option value="subunit">Subunit Quantity</option>
<option value="pack">Whole Packs</option>
</select>
</div>
<div class="form-group" id="dispenseQuantityGroup">
<label for="dispenseQuantity">Quantity *</label>
<input type="number" id="dispenseQuantity" step="0.1" onchange="updateAllocationPreview()">
</div>
<div class="form-row" id="dispensePackRow" style="display: none;">
<div class="form-group">
<label for="dispensePackSelect">Pack Type *</label>
<select id="dispensePackSelect" onchange="updateDispenseQuantityFromPack()">
<option value="">-- Select pack --</option>
</select>
</div>
<div class="form-group">
<label for="dispensePackCount">Pack Count *</label>
<input type="number" id="dispensePackCount" min="0.0001" step="0.0001" onchange="updateDispenseQuantityFromPack()">
<small id="dispensePackPreview" style="display: block; margin-top: 6px; color: #666;">Select a pack and whole-number count.</small>
</div>
</div>
<div class="form-group">
<label>
@@ -307,23 +329,21 @@
<input type="text" id="variantStrength" placeholder="e.g., 5.4mg, 10.8mg, 100ml" required>
</div>
<div class="form-row">
<div class="form-group">
<label for="variantQuantity">Quantity *</label>
<input type="number" id="variantQuantity" step="0.1" required>
</div>
<div class="form-group">
<label for="variantUnit">Unit *</label>
<select id="variantUnit">
<option value="tablets">Tablets</option>
<option value="bottles">Bottles</option>
<option value="boxes">boxes</option>
<option value="vials">Vials</option>
<option value="units">Units</option>
<option value="packets">Packets</option>
</select>
</div>
<div class="form-group">
<label for="variantUnit">Base Unit *</label>
<select id="variantUnit">
<option value="ml">ml</option>
<option value="tablets">tablets</option>
<option value="capsules">capsules</option>
<option value="units">units</option>
<option value="vials">vials</option>
</select>
</div>
<div class="form-group">
<label>Pack Sizes *</label>
<div id="variantPackRows" class="delivery-lines"></div>
<button type="button" id="addVariantPackRowBtn" class="btn btn-secondary btn-small">+ Add Another Size</button>
</div>
<div class="form-group">
@@ -358,7 +378,7 @@
</div>
<div class="form-group">
<label for="editVariantUnit">Unit *</label>
<label for="editVariantUnit">Base Unit *</label>
<select id="editVariantUnit">
<option value="tablets">Tablets</option>
<option value="bottles">Bottles</option>
@@ -575,6 +595,56 @@
</form>
</div>
</div>
<!-- Receive Delivery Modal -->
<div id="receiveDeliveryModal" class="modal">
<div class="modal-content modal-large receive-delivery-modal-content">
<span class="close">&times;</span>
<h2>Receive Delivery</h2>
<p id="receiveDeliveryDrugLabel" style="margin: 6px 0 16px; color: #666; font-weight: 600;"></p>
<form id="receiveDeliveryForm" novalidate>
<div id="deliveryLinesContainer" class="delivery-lines"></div>
<div class="delivery-toolbar">
<button type="button" id="addDeliveryLineBtn" class="btn btn-secondary">+ Add Delivery Line</button>
<button type="button" id="addVariantFromDeliveryBtn" class="btn btn-info">+ Add Variant</button>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Receive Delivery</button>
<button type="button" class="btn btn-secondary" id="cancelReceiveDeliveryBtn">Cancel</button>
</div>
</form>
</div>
</div>
<!-- Variant Pack Management Modal -->
<div id="variantPacksModal" class="modal">
<div class="modal-content modal-large">
<span class="close">&times;</span>
<h2>Pack Presentations</h2>
<p id="variantPacksLabel" style="margin: 6px 0 16px; color: #666; font-weight: 600;"></p>
<div class="form-group">
<h3 style="margin-bottom: 8px;">Add Pack Presentation</h3>
<form id="variantPacksForm">
<input type="hidden" id="variantPacksVariantId">
<div class="form-row">
<input type="text" id="variantPacksNewLabel" placeholder="Label (e.g., Bottle 300 ml)" required>
<input type="text" id="variantPacksNewUnit" placeholder="Pack Unit Name (e.g., bottle, box)" required>
<input type="number" id="variantPacksNewSize" min="0.0001" step="0.0001" placeholder="Size in base units" required>
<button type="submit" class="btn btn-primary btn-small">Add Pack</button>
</div>
</form>
</div>
<div id="variantPacksList" class="locations-list">
<p class="loading">Loading packs...</p>
</div>
<div class="form-actions">
<button type="button" class="btn btn-secondary" id="closeVariantPacksBtn">Close</button>
</div>
</div>
</div>
</div>
<script src="app.js"></script>