Commit Β·
e59a4f7
1
Parent(s): 4732447
feat: migrate to live neon database and integrated frontend
Browse files- frontend/index.html +44 -25
frontend/index.html
CHANGED
|
@@ -3,7 +3,8 @@
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8"/>
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
| 6 |
-
<title>SmiloCAD Dental Laboratory</title>
|
|
|
|
| 7 |
<link rel="stylesheet" href="/css/style.css"/>
|
| 8 |
</head>
|
| 9 |
<body>
|
|
@@ -24,7 +25,7 @@
|
|
| 24 |
|
| 25 |
<div class="app-body" id="page-invoice">
|
| 26 |
<div class="inv-card">
|
| 27 |
-
|
| 28 |
<div class="inv-header-band">
|
| 29 |
<div>
|
| 30 |
<div class="lab-title">SmiloCAD Dental Laboratory</div>
|
|
@@ -32,7 +33,7 @@
|
|
| 32 |
</div>
|
| 33 |
<div class="inv-badge-block">
|
| 34 |
<div class="inv-badge-label">Invoice</div>
|
| 35 |
-
<div
|
| 36 |
</div>
|
| 37 |
</div>
|
| 38 |
|
|
@@ -47,15 +48,25 @@
|
|
| 47 |
<input type="date" class="form-control" id="inv-date">
|
| 48 |
</div>
|
| 49 |
</div>
|
| 50 |
-
|
| 51 |
-
<div class="form-grid form-grid-3" style="margin-top:
|
| 52 |
-
<
|
| 53 |
-
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
</div>
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
|
|
|
| 59 |
</div>
|
| 60 |
</div>
|
| 61 |
|
|
@@ -69,41 +80,49 @@
|
|
| 69 |
<th>Qty</th>
|
| 70 |
<th>Price (PKR)</th>
|
| 71 |
<th>Total</th>
|
| 72 |
-
<th>β</th>
|
| 73 |
</tr>
|
| 74 |
</thead>
|
| 75 |
-
<tbody id="rows-body">
|
| 76 |
-
</tbody>
|
| 77 |
</table>
|
| 78 |
<button class="add-row-btn" onclick="Rows.add()">+ Add Row</button>
|
| 79 |
</div>
|
| 80 |
|
| 81 |
<div class="inv-section">
|
| 82 |
-
<div style="max-width:
|
| 83 |
-
<div class="summary-row">
|
| 84 |
-
<span>Subtotal</span>
|
| 85 |
-
<span id="summary-subtotal">PKR 0</span>
|
| 86 |
-
</div>
|
| 87 |
<div class="summary-row received">
|
| 88 |
<span>Received</span>
|
| 89 |
-
<input type="number" id="received-input" placeholder="0">
|
| 90 |
</div>
|
| 91 |
-
<div class="summary-row net">
|
| 92 |
-
|
| 93 |
-
<span id="summary-
|
| 94 |
</div>
|
| 95 |
</div>
|
| 96 |
</div>
|
| 97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
<div class="action-bar">
|
| 99 |
-
<button class="btn btn-save"
|
| 100 |
-
<button class="btn btn-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
</div>
|
| 102 |
|
| 103 |
</div>
|
| 104 |
</div>
|
| 105 |
|
| 106 |
<div class="app-body" id="page-history" style="display:none">
|
|
|
|
|
|
|
| 107 |
<div class="hist-list" id="hist-list"></div>
|
| 108 |
</div>
|
| 109 |
|
|
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8"/>
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
| 6 |
+
<title>SmiloCAD Dental Laboratory β Invoice System</title>
|
| 7 |
+
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;700&display=swap" rel="stylesheet"/>
|
| 8 |
<link rel="stylesheet" href="/css/style.css"/>
|
| 9 |
</head>
|
| 10 |
<body>
|
|
|
|
| 25 |
|
| 26 |
<div class="app-body" id="page-invoice">
|
| 27 |
<div class="inv-card">
|
| 28 |
+
|
| 29 |
<div class="inv-header-band">
|
| 30 |
<div>
|
| 31 |
<div class="lab-title">SmiloCAD Dental Laboratory</div>
|
|
|
|
| 33 |
</div>
|
| 34 |
<div class="inv-badge-block">
|
| 35 |
<div class="inv-badge-label">Invoice</div>
|
| 36 |
+
<div class="inv-number-pill" id="display-inv-number">#NEW</div>
|
| 37 |
</div>
|
| 38 |
</div>
|
| 39 |
|
|
|
|
| 48 |
<input type="date" class="form-control" id="inv-date">
|
| 49 |
</div>
|
| 50 |
</div>
|
| 51 |
+
|
| 52 |
+
<div class="form-grid form-grid-3" style="margin-top:15px">
|
| 53 |
+
<div class="form-group">
|
| 54 |
+
<label>Doctor Name</label>
|
| 55 |
+
<input class="form-control" id="doctor-name" placeholder="Dr. Name">
|
| 56 |
+
</div>
|
| 57 |
+
<div class="form-group">
|
| 58 |
+
<label>Clinic Name</label>
|
| 59 |
+
<input class="form-control" id="clinic" placeholder="Clinic Name">
|
| 60 |
+
</div>
|
| 61 |
+
<div class="form-group">
|
| 62 |
+
<label>Patient Name</label>
|
| 63 |
+
<input class="form-control" id="patient" placeholder="Patient Name">
|
| 64 |
+
</div>
|
| 65 |
</div>
|
| 66 |
+
|
| 67 |
+
<div class="form-group" style="margin-top:15px">
|
| 68 |
+
<label>Shade</label>
|
| 69 |
+
<input class="form-control" id="shade" placeholder="e.g. A1, B2">
|
| 70 |
</div>
|
| 71 |
</div>
|
| 72 |
|
|
|
|
| 80 |
<th>Qty</th>
|
| 81 |
<th>Price (PKR)</th>
|
| 82 |
<th>Total</th>
|
| 83 |
+
<th class="center">β</th>
|
| 84 |
</tr>
|
| 85 |
</thead>
|
| 86 |
+
<tbody id="rows-body"></tbody>
|
|
|
|
| 87 |
</table>
|
| 88 |
<button class="add-row-btn" onclick="Rows.add()">+ Add Row</button>
|
| 89 |
</div>
|
| 90 |
|
| 91 |
<div class="inv-section">
|
| 92 |
+
<div style="max-width:320px; margin-left:auto;">
|
| 93 |
+
<div class="summary-row"><span>Subtotal</span><span id="summary-subtotal">PKR 0</span></div>
|
|
|
|
|
|
|
|
|
|
| 94 |
<div class="summary-row received">
|
| 95 |
<span>Received</span>
|
| 96 |
+
<input class="received-input" type="number" id="received-input" placeholder="0">
|
| 97 |
</div>
|
| 98 |
+
<div class="summary-row net"><span>Remaining</span><span id="summary-remaining">PKR 0</span></div>
|
| 99 |
+
<div class="summary-row net" style="border-top:1px solid #eee; margin-top:5px; padding-top:5px;">
|
| 100 |
+
<span style="font-weight:800">Total</span><span id="summary-total" style="font-weight:800">PKR 0</span>
|
| 101 |
</div>
|
| 102 |
</div>
|
| 103 |
</div>
|
| 104 |
|
| 105 |
+
<div class="inv-section" style="border-bottom:none">
|
| 106 |
+
<label style="font-size:0.85rem; font-weight:700; color:#555">Notes</label>
|
| 107 |
+
<textarea class="form-control" id="notes" rows="2" placeholder="Instructions..."></textarea>
|
| 108 |
+
</div>
|
| 109 |
+
|
| 110 |
<div class="action-bar">
|
| 111 |
+
<button class="btn btn-save" onclick="App.save()">πΎ Save</button>
|
| 112 |
+
<button class="btn btn-pdf" onclick="App.downloadPDF()">β¬οΈ PDF</button>
|
| 113 |
+
<button class="btn btn-print" onclick="App.print()">π¨οΈ Print</button>
|
| 114 |
+
<button class="btn btn-excel" onclick="App.exportExcel()">π Excel</button>
|
| 115 |
+
<div class="btn-spacer"></div>
|
| 116 |
+
<button class="btn btn-new" onclick="App.newInvoice()">π New</button>
|
| 117 |
+
<button class="btn btn-clear" onclick="App.clear()">ποΈ Clear</button>
|
| 118 |
</div>
|
| 119 |
|
| 120 |
</div>
|
| 121 |
</div>
|
| 122 |
|
| 123 |
<div class="app-body" id="page-history" style="display:none">
|
| 124 |
+
<div class="page-heading"><h2>Invoice History</h2><span class="count-pill" id="history-count">0</span></div>
|
| 125 |
+
<div class="search-wrap"><input id="search-input" placeholder="Search..." oninput="History.filter()"></div>
|
| 126 |
<div class="hist-list" id="hist-list"></div>
|
| 127 |
</div>
|
| 128 |
|