AhmadYarAI commited on
Commit
e59a4f7
Β·
1 Parent(s): 4732447

feat: migrate to live neon database and integrated frontend

Browse files
Files changed (1) hide show
  1. 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 id="display-inv-number" class="inv-number-pill">#NEW</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: 15px;">
52
- <input class="form-control" id="doctor-name" placeholder="Dr. Name">
53
- <input class="form-control" id="clinic" placeholder="Clinic Name">
54
- <input class="form-control" id="patient" placeholder="Patient Name">
 
 
 
 
 
 
 
 
 
55
  </div>
56
- <div class="form-group" style="margin-top: 15px;">
57
- <label>Shade</label>
58
- <input class="form-control" id="shade" placeholder="e.g. A1, B2">
 
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:300px; margin-left:auto;">
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
- <span>Remaining</span>
93
- <span id="summary-remaining">PKR 0</span>
94
  </div>
95
  </div>
96
  </div>
97
 
 
 
 
 
 
98
  <div class="action-bar">
99
- <button class="btn btn-save" onclick="App.save()">πŸ’Ύ Save Invoice</button>
100
- <button class="btn btn-new" onclick="App.newInvoice()">πŸ“„ New</button>
 
 
 
 
 
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