How Can We Help?
Opened from a button on the Manufacturing Dashboard, the Production
Status Board lists production batches (“lists”) grouped into four sections, with a per-series
glazed count and a completion percentage for every production station or department
flagged for the dashboard. It is OpenJanela’s standard production dashboard, shown to every company.
The four sections
Every batch that has been released to the shop floor and is not yet complete appears in
exactly one section, decided by the batch’s production start date — not by the
Estimated Glazing Date typed on the board itself:
| Section | Rule |
|---|---|
| SU Only | Evaluated first: any list carrying items from the sealed-unit-only series, regardless of its date. |
| Past Due | Production start date is before today. |
| Due Today | Production start date is today. |
| Future | Production start date is after today, or not set at all. |
The board’s Glazing Date Assigned column shows this same date — a batch has no separate
glazing-date field. It is also what the Estimated Glazing Date cell shows before anyone edits
it (see below).
Columns
- List — the batch id (short); hover the cell for the full batch number as a
tooltip. - Glazing Date Assigned — the production start date (see above).
- One column per series (series where
isseg = 0and the series is active) — the number of frames (window units) of that series in the list. A list with none of that series shows a blank cell, not “0”. Click a non-blank cell to drill into the list’s items of that series with each assembly’s status. - Total Glass — done/total glass across the whole list.
- Large Glass — count of panes over the configured weight, width or height limit (see Company Preferences reference). Reads 0 until the limits are set.
- SU Supplier — first letter of each sealed-unit supplier’s name the list draws on, e.g.
V,C, orC.Vwhen it draws on more than one. - One column per flagged station or department (
show_on_dashboard = 1)
— left to right in its dashboard sequence (then by id) — the routings to the column’s stations
that have been scanned at their own station, out of all routings to those stations. A flagged
department sums the work of every station that points to it (see the callout
below; an assembly routed to two stations of the department counts twice); a flagged ordinary
station shows its own work. A member station that is itself flagged gets its own column and
still counts inside its flagged department. The cell is coloured green at 100%, amber from 90% to 99%, and red below 90%; click
a cell to drill into it (see below). - Estimated Glazing Date — editable, see below.
- Notes — editable, see below.
Column headers (the List header, the per-series and per-department headers, Total Glass, Large
Glass, SU Supplier) show a short label and carry the full name as a tooltip; a series or
department name longer than 12 characters is cut with an ellipsis in the header itself but shown
in full in the tooltip.
A column is a
production_stations row with show_on_dashboard = 1.A department is itself a row in
production_stations (the same table real stationslive in) with
is_department = 1; flag the department and its column sums the workat each of its member stations — the members need no flag. A station becomes a
member of a department by setting its own
department_id to the department’sid. An unflagged station whose department is not flagged either is not shown, and its scans are
not counted anywhere on this board.
dashboard_label gives the column its (short)header, falling back to the row’s own description when blank;
dashboard_sequence sets its left-to-rightposition. A station also needs
is_glazing_station set to 1 to count as a “glazing”scan for the per-series and Total Glass “done” counts — this flag is checked per physical
station, not per department. There is no setup screen for any of these flags yet (phase 1) —
they must be set directly in the database.
Drilling into a department’s cell
Because a department’s percentage can hide which of its member stations is actually behind,
clicking a department’s cell for a list opens a dialog listing every assembly of that list
routed to the department’s stations (for a flagged ordinary station’s column: routed to that
station): barcode, order / item / qty, the
assembly description, the member station it is routed to, whether it has been
scanned there (and when), and where it is now — its most recent scan anywhere,
station and time. Use it to find, inside a department that reads e.g. 80%, which particular
station and which particular units are the ones not yet scanned.
Drilling into a series cell
A series cell that is not blank is clickable — hover it and a “Click for details” tooltip
shows. Clicking it opens a dialog with one section per item of that list carrying the series:
an item header (the item’s image, its order / item numbers, and its description) above
a table listing every assembly of that item — unit (qty of total), assembly,
box #, status, last station and last scan time. Status follows the
same order used everywhere else in the app — Shipped, Ready, Packing, In Process (shown as
“Glazed” once the unit has been scanned at a glazing station), or Not Started. Images load one
at a time in the background after the dialog opens, so the dialog itself is not held up
waiting for them.
The two editable cells
Both cells save as soon as you commit the edit (click away or press Enter) — there is no
Save button.
- Estimated Glazing Date shows the production start date in muted, italic grey until
someone picks a date; picking one switches it to normal styling and the picked date is used
from then on. Clearing the picker returns the cell to the production start date, muted
again. - Notes is free text. Hovering a saved note shows a tooltip naming who entered it and
when.
If a save fails, the cell keeps showing exactly what you typed or picked and an inline message
reads “Not saved: …” — it does not silently revert. A refresh landing while you are
actively editing a cell, or while its save has not yet reached the server, leaves that cell’s
whole section (its table) as it is, so other rows in that same section also keep their old
values until the next refresh; the other sections refresh normally.