From eea4683c5b5c8c7ea6cef676037eaed77af0925b Mon Sep 17 00:00:00 2001 From: Eric Harding Date: Sat, 11 Jul 2026 20:07:33 -0400 Subject: [PATCH] clean up some fields. Increase font size and contrast --- public/css/style.css | 15 ++++++--- src/routes/clocks.ts | 2 +- src/routes/orders.ts | 43 ++++++-------------------- src/schema.sql | 9 ++---- src/views/customers/_clock_options.njk | 2 +- src/views/invoice.njk | 6 +--- src/views/orders/_order_summary.njk | 7 +++-- src/views/orders/detail.njk | 9 ++---- src/views/orders/new.njk | 8 +---- 9 files changed, 32 insertions(+), 69 deletions(-) diff --git a/public/css/style.css b/public/css/style.css index 6e97c56..20126a6 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -6,24 +6,28 @@ /* Wood tones */ --color-wood-dark: #4A2810; /* dark mahogany — nav, headings */ - --color-wood-mid: #8B5E3C; /* medium walnut — buttons, interactive */ + --color-wood-mid: #6B4527; /* dark walnut — buttons, interactive (darkened for contrast) */ --color-wood-light: #B5842A; /* brass — hover states, focus rings */ /* Text */ --color-text: #2C1A0E; /* near-black brown — body copy */ - --color-text-muted: #7A5C42; /* faded oak — labels, secondary info */ + --color-text-muted: #5A3D22; /* dark oak — labels, secondary info (darkened for contrast) */ --color-text-on-dark: #F2E8D5; /* parchment — text on dark backgrounds */ /* Status */ - --color-status-open: #8B5E3C; /* walnut */ - --color-status-inprogress:#B5842A; /* brass */ - --color-status-done: #5C7A42; /* muted forest green */ + --color-status-open: #6B4527; /* dark walnut */ + --color-status-inprogress:#7A5419; /* dark brass */ + --color-status-done: #47602F; /* muted forest green */ --color-status-paid: #3D5C2A; /* deeper green */ --font-heading: Georgia, 'Times New Roman', serif; --font-body: system-ui, sans-serif; } +html { + font-size: 150%; /* Dad's eyes aren't what they used to be */ +} + * { box-sizing: border-box; } body { @@ -372,6 +376,7 @@ button.danger { } @media print { + html { font-size: 100%; } /* keep the printed invoice at normal scale so it still fits one page */ .no-print { display: none !important; } body { background: white; } .invoice { box-shadow: none; padding: 0; } diff --git a/src/routes/clocks.ts b/src/routes/clocks.ts index 5fa78a3..f9fe3bd 100644 --- a/src/routes/clocks.ts +++ b/src/routes/clocks.ts @@ -14,7 +14,7 @@ router.get('/by-customer', (req, res) => { const clocks = db .prepare( - `SELECT id, manufacturer, model, description + `SELECT id, description, note FROM clocks WHERE customer_id = ? ORDER BY id DESC` ) .all(customerId); diff --git a/src/routes/orders.ts b/src/routes/orders.ts index da3b19e..cee5de2 100644 --- a/src/routes/orders.ts +++ b/src/routes/orders.ts @@ -28,8 +28,7 @@ export function getOrderDetail(id: string | number) { .prepare( `SELECT so.*, c.name AS customer_name, c.address_line1, c.address_line2, c.city, c.state, c.zip, c.phone, c.alt_phone, c.email, - cl.manufacturer, cl.model, cl.serial_number, cl.alternate_id, cl.reference, - cl.description AS clock_description + cl.description AS clock_description, cl.note AS clock_note FROM service_orders so JOIN customers c ON c.id = so.customer_id LEFT JOIN clocks cl ON cl.id = so.clock_id @@ -123,32 +122,12 @@ router.post('/orders', (req, res) => { let clockId = b.existing_clock_id ? Number(b.existing_clock_id) : null; if (!clockId) { - const newClockFields = [ - b.new_clock_manufacturer, - b.new_clock_model, - b.new_clock_serial_number, - b.new_clock_alternate_id, - b.new_clock_reference, - b.new_clock_description, - ]; - const hasNewClock = newClockFields.some((v) => v && v.trim()); + const hasNewClock = [b.new_clock_description, b.new_clock_note].some((v) => v && v.trim()); if (hasNewClock) { const info = db - .prepare( - `INSERT INTO clocks - (customer_id, manufacturer, model, serial_number, alternate_id, reference, description) - VALUES (?, ?, ?, ?, ?, ?, ?)` - ) - .run( - customerId, - b.new_clock_manufacturer || null, - b.new_clock_model || null, - b.new_clock_serial_number || null, - b.new_clock_alternate_id || null, - b.new_clock_reference || null, - b.new_clock_description || null - ); + .prepare(`INSERT INTO clocks (customer_id, description, note) VALUES (?, ?, ?)`) + .run(customerId, b.new_clock_description || null, b.new_clock_note || null); clockId = Number(info.lastInsertRowid); } } @@ -158,17 +137,14 @@ router.post('/orders', (req, res) => { const orderInfo = db .prepare( `INSERT INTO service_orders - (order_number, customer_id, clock_id, job_type, service_rep, technician, - date_in, due_date, cust_po, terms) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` + (order_number, customer_id, clock_id, job_type, date_in, due_date, cust_po, terms) + VALUES (?, ?, ?, ?, ?, ?, ?, ?)` ) .run( orderNumber, customerId, clockId, b.job_type || null, - b.service_rep || null, - b.technician || null, b.date_in || todayStr(), b.due_date || null, b.cust_po || null, @@ -243,19 +219,18 @@ router.post('/orders/:id', (req, res) => { db.prepare( `UPDATE service_orders SET - job_type = ?, service_rep = ?, technician = ?, status = ?, - date_out = ?, due_date = ?, cust_po = ?, terms = ?, + job_type = ?, status = ?, + date_out = ?, due_date = ?, cust_po = ?, terms = ?, internal_note = ?, tax = ?, shipping = ?, pickup_delivery = ?, service_call = ?, disposal = ?, amount_paid = ? WHERE id = ?` ).run( b.job_type || null, - b.service_rep || null, - b.technician || null, STATUSES.includes(b.status) ? b.status : 'OPEN', b.date_out || null, b.due_date || null, b.cust_po || null, b.terms || null, + b.internal_note || null, parseCents(b.tax), parseCents(b.shipping), parseCents(b.pickup_delivery), diff --git a/src/schema.sql b/src/schema.sql index 2619658..0f38673 100644 --- a/src/schema.sql +++ b/src/schema.sql @@ -15,12 +15,8 @@ CREATE TABLE customers ( CREATE TABLE clocks ( id INTEGER PRIMARY KEY AUTOINCREMENT, customer_id INTEGER NOT NULL REFERENCES customers(id), - manufacturer TEXT, - model TEXT, - serial_number TEXT, - alternate_id TEXT, - reference TEXT, description TEXT, + note TEXT, created_at TEXT DEFAULT (datetime('now')) ); @@ -33,14 +29,13 @@ CREATE TABLE service_orders ( '31 DAY','CLEANING','ESTIMATE','FIT UP/REPLACE', 'HOUSE CALL','MOVE CLOCK','OVERHAUL','SERVICE', 'WALK IN SERVICE')), - service_rep TEXT, - technician TEXT, status TEXT DEFAULT 'OPEN' CHECK (status IN ('OPEN','IN PROGRESS','DONE','PAID')), date_in TEXT DEFAULT (date('now')), date_out TEXT, due_date TEXT, cust_po TEXT, terms TEXT, + internal_note TEXT, -- staff-only; never printed on the invoice -- money summary (cents) tax INTEGER DEFAULT 0, shipping INTEGER DEFAULT 0, diff --git a/src/views/customers/_clock_options.njk b/src/views/customers/_clock_options.njk index 743f702..f098c19 100644 --- a/src/views/customers/_clock_options.njk +++ b/src/views/customers/_clock_options.njk @@ -1,6 +1,6 @@ {% for clock in clocks %} {% endfor %} diff --git a/src/views/invoice.njk b/src/views/invoice.njk index 1428ed6..f319372 100644 --- a/src/views/invoice.njk +++ b/src/views/invoice.njk @@ -37,15 +37,11 @@

Clock

- {% if order.manufacturer or order.model %}

{{ order.manufacturer or '' }} {{ order.model or '' }}

{% endif %} - {% if order.serial_number %}

Serial: {{ order.serial_number }}

{% endif %} - {% if order.reference %}

Reference: {{ order.reference }}

{% endif %} + {% if order.clock_description %}

{{ order.clock_description }}

{% endif %}

Order Info

Job Type: {{ order.job_type or '' }}

- {% if order.service_rep %}

Rep: {{ order.service_rep }}

{% endif %} - {% if order.technician %}

Technician: {{ order.technician }}

{% endif %} {% if order.cust_po %}

PO: {{ order.cust_po }}

{% endif %} {% if order.terms %}

Terms: {{ order.terms }}

{% endif %}
diff --git a/src/views/orders/_order_summary.njk b/src/views/orders/_order_summary.njk index 7eaa74f..1fe2efb 100644 --- a/src/views/orders/_order_summary.njk +++ b/src/views/orders/_order_summary.njk @@ -19,8 +19,6 @@ {% endfor %} - - @@ -28,6 +26,11 @@ + +
diff --git a/src/views/orders/detail.njk b/src/views/orders/detail.njk index b9688b9..5609a13 100644 --- a/src/views/orders/detail.njk +++ b/src/views/orders/detail.njk @@ -24,14 +24,9 @@

Clock

- {% if order.manufacturer or order.model %} -

{{ order.manufacturer or '' }} {{ order.model or '' }}

- {% endif %} - {% if order.serial_number %}

Serial: {{ order.serial_number }}

{% endif %} - {% if order.alternate_id %}

Alt ID: {{ order.alternate_id }}

{% endif %} - {% if order.reference %}

Reference: {{ order.reference }}

{% endif %} {% if order.clock_description %}

{{ order.clock_description }}

{% endif %} - {% if not order.manufacturer and not order.model and not order.clock_description %} + {% if order.clock_note %}

{{ order.clock_note }}

{% endif %} + {% if not order.clock_description and not order.clock_note %}

No clock on file.

{% endif %}
diff --git a/src/views/orders/new.njk b/src/views/orders/new.njk index b3a51fc..3462742 100644 --- a/src/views/orders/new.njk +++ b/src/views/orders/new.njk @@ -46,12 +46,8 @@
- - - - - +
@@ -67,8 +63,6 @@ {% endfor %} - -