From f5a588d631fe37ed676d12c18b9aafcfe9e83b2f Mon Sep 17 00:00:00 2001 From: ponzischeme89 Date: Tue, 2 Jun 2026 15:41:53 +1200 Subject: [PATCH] Dockerfile updates --- backend/Dockerfile | 1 + backend/app/api/throughput.py | 4 + backend/app/db/migrations.py | 5 + backend/app/models/throughput.py | 10 + backend/app/schemas/throughput.py | 22 ++ backend/app/seed.py | 13 +- backend/app/seed_access.py | 1 + backend/app/services/throughput_service.py | 33 +- backend/pyproject.toml | 2 +- backend/tests/_repro_throughput_post.py | 62 ++++ backend/tests/test_throughput.py | 5 +- deploy/migrate-to-postgres.sh | 2 + frontend/package.json | 2 +- .../throughput/ThroughputProductPicker.svelte | 338 ++++++++++++++++++ frontend/src/lib/types.ts | 10 + frontend/src/routes/throughput/+page.svelte | 330 ++++++++--------- .../src/routes/throughput/add/+page.svelte | 122 ++++--- input_data/Operations Throughput.xlsx | Bin 0 -> 95696 bytes 18 files changed, 742 insertions(+), 220 deletions(-) create mode 100644 backend/tests/_repro_throughput_post.py create mode 100644 frontend/src/lib/components/throughput/ThroughputProductPicker.svelte create mode 100644 input_data/Operations Throughput.xlsx diff --git a/backend/Dockerfile b/backend/Dockerfile index f302af4..78cd4f3 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -9,6 +9,7 @@ RUN addgroup --system app && adduser --system --ingroup app app COPY backend /app COPY ["input_data/1.xlsx", "/app/input_data/1.xlsx"] +COPY ["input_data/Operations Throughput.xlsx", "/app/input_data/Operations Throughput.xlsx"] COPY ["Input Cost Spreadsheet(1).xlsx", "/app/Input Cost Spreadsheet(1).xlsx"] RUN pip install --no-cache-dir --upgrade pip && \ diff --git a/backend/app/api/throughput.py b/backend/app/api/throughput.py index 73c6c3e..38e5fd2 100644 --- a/backend/app/api/throughput.py +++ b/backend/app/api/throughput.py @@ -161,6 +161,10 @@ def create_entry( label_correct=payload.label_correct, bag_sealed=payload.bag_sealed, pallet_good_condition=payload.pallet_good_condition, + for_order=payload.for_order, + for_stock=payload.for_stock, + job_number=payload.job_number, + stock_quantity=payload.stock_quantity if payload.for_stock else None, sample_box_no=payload.sample_box_no, test_weight_1=payload.test_weight_1, test_weight_2=payload.test_weight_2, diff --git a/backend/app/db/migrations.py b/backend/app/db/migrations.py index efbe34e..07dc0a2 100644 --- a/backend/app/db/migrations.py +++ b/backend/app/db/migrations.py @@ -103,6 +103,11 @@ _LEGACY_COLUMN_PATCHES: tuple[tuple[str, str, str], ...] = ( ("users", "password_hash", "VARCHAR(255)"), ("products", "visible", "BOOLEAN NOT NULL DEFAULT TRUE"), ("throughput_products", "is_stock_item", "BOOLEAN NOT NULL DEFAULT TRUE"), + ("throughput_products", "client_name", "VARCHAR(255)"), + ("production_throughput_entries", "for_order", "BOOLEAN NOT NULL DEFAULT FALSE"), + ("production_throughput_entries", "for_stock", "BOOLEAN NOT NULL DEFAULT FALSE"), + ("production_throughput_entries", "job_number", "VARCHAR(64)"), + ("production_throughput_entries", "stock_quantity", "FLOAT"), ) diff --git a/backend/app/models/throughput.py b/backend/app/models/throughput.py index 87bcd70..bd67497 100644 --- a/backend/app/models/throughput.py +++ b/backend/app/models/throughput.py @@ -19,6 +19,7 @@ class ThroughputProduct(Base): tenant_id: Mapped[str] = mapped_column(String(64), default="default", index=True) item_id: Mapped[str | None] = mapped_column(String(64), nullable=True) name: Mapped[str] = mapped_column(String(255)) + client_name: Mapped[str | None] = mapped_column(String(255), nullable=True) default_bag_size: Mapped[float | None] = mapped_column(Float, nullable=True) is_bulka_default: Mapped[bool] = mapped_column(Boolean, default=False) active: Mapped[bool] = mapped_column(Boolean, default=True) @@ -48,6 +49,15 @@ class ProductionThroughput(Base): bag_sealed: Mapped[bool] = mapped_column(Boolean, default=True) pallet_good_condition: Mapped[bool] = mapped_column(Boolean, default=True) + # Where the run is destined. A run can be for a client order, for stock, or + # split across both. job_number records the Order Circle job for the order + # portion; stock_quantity records how much of a split goes into stock (in the + # same unit as `quantity`). + for_order: Mapped[bool] = mapped_column(Boolean, default=False) + for_stock: Mapped[bool] = mapped_column(Boolean, default=False) + job_number: Mapped[str | None] = mapped_column(String(64), nullable=True) + stock_quantity: Mapped[float | None] = mapped_column(Float, nullable=True) + sample_box_no: Mapped[str | None] = mapped_column(String(64), nullable=True) test_weight_1: Mapped[float | None] = mapped_column(Float, nullable=True) diff --git a/backend/app/schemas/throughput.py b/backend/app/schemas/throughput.py index ac993f3..94ede52 100644 --- a/backend/app/schemas/throughput.py +++ b/backend/app/schemas/throughput.py @@ -13,6 +13,7 @@ class ThroughputProductBase(BaseModel): model_config = ConfigDict(extra="forbid") item_id: str | None = Field(default=None, max_length=64) name: str = Field(min_length=1, max_length=255) + client_name: str | None = Field(default=None, max_length=255) default_bag_size: float | None = Field(default=None, ge=0) is_bulka_default: bool = False active: bool = True @@ -28,6 +29,7 @@ class ThroughputProductUpdate(BaseModel): model_config = ConfigDict(extra="forbid") item_id: str | None = Field(default=None, max_length=64) name: str | None = Field(default=None, min_length=1, max_length=255) + client_name: str | None = Field(default=None, max_length=255) default_bag_size: float | None = Field(default=None, ge=0) is_bulka_default: bool | None = None active: bool | None = None @@ -53,6 +55,10 @@ class ThroughputEntryBase(BaseModel): label_correct: bool = True bag_sealed: bool = True pallet_good_condition: bool = True + for_order: bool = False + for_stock: bool = False + job_number: str | None = Field(default=None, max_length=64) + stock_quantity: float | None = Field(default=None, ge=0) sample_box_no: str | None = Field(default=None, max_length=64) test_weight_1: float | None = Field(default=None, ge=0) test_weight_2: float | None = Field(default=None, ge=0) @@ -64,6 +70,14 @@ class ThroughputEntryBase(BaseModel): staff_name: str | None = Field(default=None, max_length=255) notes: str | None = Field(default=None, max_length=2000) + @field_validator("job_number") + @classmethod + def _normalize_job_number(cls, value: str | None) -> str | None: + if value is None: + return None + stripped = value.strip() + return stripped or None + @field_validator("staff_name") @classmethod def _normalize_staff(cls, value: str | None) -> str | None: @@ -87,6 +101,10 @@ class ThroughputEntryUpdate(BaseModel): label_correct: bool | None = None bag_sealed: bool | None = None pallet_good_condition: bool | None = None + for_order: bool | None = None + for_stock: bool | None = None + job_number: str | None = Field(default=None, max_length=64) + stock_quantity: float | None = Field(default=None, ge=0) sample_box_no: str | None = Field(default=None, max_length=64) test_weight_1: float | None = Field(default=None, ge=0) test_weight_2: float | None = Field(default=None, ge=0) @@ -110,6 +128,10 @@ class ThroughputEntryRead(BaseModel): label_correct: bool bag_sealed: bool pallet_good_condition: bool + for_order: bool + for_stock: bool + job_number: str | None + stock_quantity: float | None sample_box_no: str | None test_weight_1: float | None test_weight_2: float | None diff --git a/backend/app/seed.py b/backend/app/seed.py index 3433b7d..bf190de 100644 --- a/backend/app/seed.py +++ b/backend/app/seed.py @@ -794,15 +794,19 @@ def seed_throughput_products_from_costing(db) -> dict[str, int]: default_bag_size = _infer_throughput_bag_size(costing_product) is_bulka_default = _infer_throughput_bulka_default(costing_product) + client_name = (costing_product.client_name or "").strip() or None product = (by_item.get(item_id) if item_id else None) or by_name.get(name_key) if product is None: product = ThroughputProduct( tenant_id=TENANT_ID, item_id=item_id, name=name, + client_name=client_name, default_bag_size=default_bag_size, is_bulka_default=is_bulka_default, - active=costing_product.visible, + # Every costing SKU should be selectable in the throughput picker + # (the Client filter + search keep the long list manageable). + active=True, is_stock_item=True, notes="Seeded from costing products", ) @@ -830,8 +834,11 @@ def seed_throughput_products_from_costing(db) -> dict[str, int]: if product.is_bulka_default != is_bulka_default: product.is_bulka_default = is_bulka_default changed = True - if product.active != costing_product.visible: - product.active = costing_product.visible + if product.client_name != client_name: + product.client_name = client_name + changed = True + if product.active is not True: + product.active = True changed = True if product.is_stock_item is not True: product.is_stock_item = True diff --git a/backend/app/seed_access.py b/backend/app/seed_access.py index 1966dda..99426cf 100644 --- a/backend/app/seed_access.py +++ b/backend/app/seed_access.py @@ -51,6 +51,7 @@ ROLE_DEFINITIONS: dict[str, dict] = { "edit_raw_materials", "view_products", "view_mixes", + "edit_mixes", "view_throughput", "edit_throughput", "view_users", diff --git a/backend/app/services/throughput_service.py b/backend/app/services/throughput_service.py index 6c70125..0b7f570 100644 --- a/backend/app/services/throughput_service.py +++ b/backend/app/services/throughput_service.py @@ -1,6 +1,7 @@ from __future__ import annotations import logging +import os from datetime import date, datetime from pathlib import Path from typing import Iterable @@ -16,6 +17,10 @@ logger = logging.getLogger("data_entry_app.throughput") PRODUCTION_SHEET = "Production" NAMES_SHEET = "Names" +# The historical throughput export. Bundled into the image under input_data/ so +# the seed can import it on a fresh deployment (e.g. a new Postgres volume). +WORKBOOK_FILENAME = "Operations Throughput.xlsx" + # Anything at or above this kg/bag is treated as a bulka batch, not a per-bag count. _BULKA_BAG_SIZE_THRESHOLD = 100.0 @@ -57,6 +62,10 @@ def serialize_entry(entry: ProductionThroughput) -> dict: "label_correct": entry.label_correct, "bag_sealed": entry.bag_sealed, "pallet_good_condition": entry.pallet_good_condition, + "for_order": entry.for_order, + "for_stock": entry.for_stock, + "job_number": entry.job_number, + "stock_quantity": entry.stock_quantity, "sample_box_no": entry.sample_box_no, "test_weight_1": entry.test_weight_1, "test_weight_2": entry.test_weight_2, @@ -323,16 +332,30 @@ def import_workbook(db: Session, workbook_path: Path, tenant_id: str) -> dict: def workbook_candidates() -> Iterable[Path]: repo_root = Path(__file__).resolve().parents[3] + cwd = Path.cwd() + + env_value = os.getenv("THROUGHPUT_WORKBOOK_PATH") + env_path = Path(env_value.strip()) if isinstance(env_value, str) and env_value.strip() else None + + # input_data/ is where the workbook is bundled in the image; in the + # container the working directory is /app, so cwd/input_data resolves it. candidates = [ - repo_root / "Operations Throughput.xlsx", - repo_root.parent / "Operations Throughput.xlsx", - Path.cwd() / "Operations Throughput.xlsx", - Path("/srv/lean101-clients") / "Operations Throughput.xlsx", - Path("/app") / "Operations Throughput.xlsx", + env_path, + repo_root / "input_data" / WORKBOOK_FILENAME, + cwd / "input_data" / WORKBOOK_FILENAME, + Path("/app") / "input_data" / WORKBOOK_FILENAME, + Path("/srv/lean101-clients") / "input_data" / WORKBOOK_FILENAME, + repo_root / WORKBOOK_FILENAME, + repo_root.parent / WORKBOOK_FILENAME, + cwd / WORKBOOK_FILENAME, + Path("/srv/lean101-clients") / WORKBOOK_FILENAME, + Path("/app") / WORKBOOK_FILENAME, ] seen: set[str] = set() ordered: list[Path] = [] for candidate in candidates: + if candidate is None: + continue key = str(candidate) if key in seen: continue diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 4af15b9..87eb17b 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "data-entry-app-backend" -version = "0.1.8" +version = "0.1.9" description = "Costing platform MVP backend" requires-python = ">=3.11" dependencies = [ diff --git a/backend/tests/_repro_throughput_post.py b/backend/tests/_repro_throughput_post.py new file mode 100644 index 0000000..26f27c3 --- /dev/null +++ b/backend/tests/_repro_throughput_post.py @@ -0,0 +1,62 @@ +from fastapi import FastAPI +from fastapi.testclient import TestClient +from sqlalchemy import create_engine +from sqlalchemy.orm import sessionmaker + +from app.db.session import Base, get_db +from app.core.access import INTERNAL_USER_SUBJECT, INTERNAL_USER_TENANT_ID +from app.core.security import issue_token +from app.models.access import User +from app.models.throughput import ThroughputProduct +from app.api.throughput import router as throughput_router +from app.seed import seed_access + + +def run(): + engine = create_engine("sqlite:///:memory:", connect_args={"check_same_thread": False}) + Base.metadata.create_all(bind=engine) + db = sessionmaker(bind=engine, expire_on_commit=False)() + seed_access(db) + + product = ThroughputProduct( + tenant_id=INTERNAL_USER_TENANT_ID, + name="Test Product 20kg", + default_bag_size=20, + active=True, + ) + db.add(product) + db.commit() + + app = FastAPI() + app.dependency_overrides[get_db] = lambda: iter([db]) + app.include_router(throughput_router) + client = TestClient(app) + + ops = db.query(User).filter_by(email="ops@hunterstockfeeds.com").one() + token = issue_token({"sub": INTERNAL_USER_SUBJECT, "user_id": ops.id, "email": ops.email}) + + payload = { + "production_date": "2026-06-01", + "product_id": product.id, + "product_name_snapshot": "Test Product 20kg", + "bag_size": 20, + "quantity": 10, + "quantity_type": "bags", + "for_order": True, + "for_stock": False, + "job_number": "JOB123", + "stock_quantity": None, + "staff_name": "Jake", + "notes": None, + } + resp = client.post( + "/api/throughput/entries", + json=payload, + headers={"Authorization": f"Bearer {token}"}, + ) + print("STATUS:", resp.status_code) + print("BODY:", resp.text[:1500]) + + +if __name__ == "__main__": + run() diff --git a/backend/tests/test_throughput.py b/backend/tests/test_throughput.py index f9e4d60..5dcd095 100644 --- a/backend/tests/test_throughput.py +++ b/backend/tests/test_throughput.py @@ -197,9 +197,12 @@ def test_seed_throughput_products_from_costing_products(): assert products[0].default_bag_size == 20 assert products[0].is_bulka_default is False assert products[0].active is True + assert products[0].client_name == "Hunter" assert products[1].default_bag_size is None assert products[1].is_bulka_default is True - assert products[1].active is False + # Every costing SKU is selectable in the throughput picker, even hidden ones. + assert products[1].active is True + assert products[1].client_name == "Hunter" def test_seed_throughput_products_from_costing_updates_existing_by_item_id(): diff --git a/deploy/migrate-to-postgres.sh b/deploy/migrate-to-postgres.sh index b76fb88..aafd26e 100644 --- a/deploy/migrate-to-postgres.sh +++ b/deploy/migrate-to-postgres.sh @@ -405,6 +405,8 @@ TABLE_ORDER = [ "costing_results", "mix_calculator_sessions", "mix_calculator_session_lines", + "throughput_products", + "production_throughput_entries", ] def migrate(): diff --git a/frontend/package.json b/frontend/package.json index 4aa8a0a..4743465 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "hunter-app", - "version": "0.1.8", + "version": "0.1.9", "private": true, "type": "module", "scripts": { diff --git a/frontend/src/lib/components/throughput/ThroughputProductPicker.svelte b/frontend/src/lib/components/throughput/ThroughputProductPicker.svelte new file mode 100644 index 0000000..b26e091 --- /dev/null +++ b/frontend/src/lib/components/throughput/ThroughputProductPicker.svelte @@ -0,0 +1,338 @@ + + +
(focused = true)} onfocusout={onFocusOut}> +
+ + +
+ +
+ + (open = true)} + onkeydown={onKeydown} + /> + {#if productId} + + {/if} + + {#if open && !disabled} +
    + {#if filtered.length === 0} +
  • No products match.
  • + {:else} + {#each filtered.slice(0, 50) as product, i (product.id)} +
  • { + e.preventDefault(); + choose(product); + }} + onmouseenter={() => (highlighted = i)} + > + {product.name} + + {#if product.client_name}{product.client_name}{/if} + {#if product.item_id}#{product.item_id}{/if} + + {#if String(product.id) === productId} + + {/if} +
  • + {/each} + {#if filtered.length > 50} +
  • + Showing first 50 of {filtered.length} — keep typing to narrow. +
  • + {/if} + {/if} +
+ {/if} +
+
+ + diff --git a/frontend/src/lib/types.ts b/frontend/src/lib/types.ts index d18d64b..83f3c25 100644 --- a/frontend/src/lib/types.ts +++ b/frontend/src/lib/types.ts @@ -394,6 +394,7 @@ export type ThroughputProduct = { tenant_id: string; item_id: string | null; name: string; + client_name: string | null; default_bag_size: number | null; is_bulka_default: boolean; active: boolean; @@ -416,6 +417,10 @@ export type ThroughputEntry = { label_correct: boolean; bag_sealed: boolean; pallet_good_condition: boolean; + for_order: boolean; + for_stock: boolean; + job_number: string | null; + stock_quantity: number | null; sample_box_no: string | null; test_weight_1: number | null; test_weight_2: number | null; @@ -442,6 +447,10 @@ export type ThroughputEntryCreateInput = { label_correct?: boolean; bag_sealed?: boolean; pallet_good_condition?: boolean; + for_order?: boolean; + for_stock?: boolean; + job_number?: string | null; + stock_quantity?: number | null; sample_box_no?: string | null; test_weight_1?: number | null; test_weight_2?: number | null; @@ -466,6 +475,7 @@ export type ThroughputEntryListParams = { export type ThroughputProductCreateInput = { item_id?: string | null; name: string; + client_name?: string | null; default_bag_size?: number | null; is_bulka_default?: boolean; active?: boolean; diff --git a/frontend/src/routes/throughput/+page.svelte b/frontend/src/routes/throughput/+page.svelte index 6b67c7d..2d2ce44 100644 --- a/frontend/src/routes/throughput/+page.svelte +++ b/frontend/src/routes/throughput/+page.svelte @@ -6,18 +6,37 @@ ThroughputProduct, ThroughputQuantityType } from '$lib/types'; - import { Plus, ShieldCheck, TriangleAlert, Search, X } from 'lucide-svelte'; + import { Plus, TriangleAlert, Search, X } from 'lucide-svelte'; import { fade } from 'svelte/transition'; + import ThroughputProductPicker from '$lib/components/throughput/ThroughputProductPicker.svelte'; let { data } = $props<{ data: { entries: ThroughputEntry[]; products: ThroughputProduct[] } }>(); let entries = $state(data.entries ?? []); const products = $derived(data.products ?? []); - // A run is "going into stock" when the operator marks it so; everything else - // is a client order. The marker is the word "Stock" in the notes field. + // A run is "going into stock" when the operator ticks the stock checkpoint. + // Older imported rows pre-date that flag, so fall back to the notes marker. function isStockEntry(entry: ThroughputEntry): boolean { - return /stock/i.test(entry.notes ?? ''); + return entry.for_stock || (!entry.for_order && /stock/i.test(entry.notes ?? '')); + } + + // The destination shown in the log: an order (with job number), stock, or a + // split across both. + function destinationOf(entry: ThroughputEntry): { label: string; detail: string | null } { + const unit = entry.quantity_type === 'bags' ? 'bags' : 'kg'; + if (entry.for_order && entry.for_stock) { + const stock = entry.stock_quantity != null ? `${formatNumber(entry.stock_quantity, 1)} ${unit} to stock` : 'split'; + const job = entry.job_number ? `Order ${entry.job_number}` : 'Order'; + return { label: 'Split', detail: `${job} · ${stock}` }; + } + if (entry.for_order) { + return { label: 'Order', detail: entry.job_number ? `Job ${entry.job_number}` : null }; + } + if (isStockEntry(entry)) { + return { label: 'Stock', detail: null }; + } + return { label: '—', detail: null }; } // ── Inline "spreadsheet" add row ────────────────────────────── @@ -29,17 +48,20 @@ let nBagSize = $state(''); let nStaff = $state(''); let nNotes = $state(''); - // QA checks start unchecked on purpose: the operator must confirm each one. - let nScalesChecked = $state(false); - let nLabelCorrect = $state(false); - let nBagSealed = $state(false); - let nPalletGood = $state(false); + // Destination checkpoints: a run can go to a client order, to stock, or both. + let nForOrder = $state(false); let nForStock = $state(false); + let nJobNumber = $state(''); + let nStockQty = $state(''); let showNote = $state(false); let saving = $state(false); let addError = $state(''); let highlightId = $state(null); + // When both checkpoints are ticked the run is split, so we need to know how + // much goes to stock (the rest belongs to the order). + const isSplit = $derived(nForOrder && nForStock); + const selectedNewProduct = $derived( nProductId ? products.find((p: ThroughputProduct) => String(p.id) === nProductId) ?? null : null ); @@ -88,11 +110,30 @@ return; } - // Fold the "going into stock" marker into the notes, which is where stock - // runs are identified. - let finalNotes = nNotes.trim(); - if (nForStock && !/stock/i.test(finalNotes)) { - finalNotes = finalNotes ? `Stock. ${finalNotes}` : 'Stock'; + if (!nForOrder && !nForStock) { + addError = 'Mark where this run goes: for an order, for stock, or both.'; + return; + } + + const job = nJobNumber.trim(); + if (nForOrder && !job) { + addError = 'Enter the job number for the order.'; + return; + } + + // For a split, the operator records how much goes to stock; the remainder + // belongs to the order. Whole runs (stock-only or order-only) don't need it. + let stockQty: number | null = null; + if (isSplit) { + stockQty = toNum(nStockQty); + if (stockQty === null || stockQty <= 0) { + addError = `Enter how much goes to stock (in ${nType === 'bags' ? 'bags' : 'kg'}).`; + return; + } + if (stockQty >= qty) { + addError = 'Stock amount must be less than the total packed for a split.'; + return; + } } saving = true; @@ -104,12 +145,12 @@ bag_size: nType === 'bags' ? bag : null, quantity: qty, quantity_type: nType, - scales_checked: nScalesChecked, - label_correct: nLabelCorrect, - bag_sealed: nBagSealed, - pallet_good_condition: nPalletGood, + for_order: nForOrder, + for_stock: nForStock, + job_number: nForOrder ? job : null, + stock_quantity: stockQty, staff_name: nStaff.trim() || null, - notes: finalNotes || null + notes: nNotes.trim() || null }); entries = [created, ...entries]; highlightId = created.id; @@ -122,11 +163,10 @@ nType = 'bags'; nBagSize = ''; nNotes = ''; - nScalesChecked = false; - nLabelCorrect = false; - nBagSealed = false; - nPalletGood = false; + nForOrder = false; nForStock = false; + nJobNumber = ''; + nStockQty = ''; showNote = false; } catch (err) { addError = err instanceof Error ? err.message : 'Could not save. Please try again.'; @@ -185,15 +225,15 @@ const totals = $derived.by(() => { let totalKg = 0; let totalBags = 0; - let qaFailures = 0; + let stockCount = 0; for (const entry of entries) { totalKg += entry.calculated_kg || 0; if (entry.quantity_type === 'bags') { totalBags += entry.quantity || 0; } - if (!entry.qa_passed) qaFailures += 1; + if (isStockEntry(entry)) stockCount += 1; } - return { totalKg, totalBags, qaFailures, count: entries.length }; + return { totalKg, totalBags, stockCount, count: entries.length }; }); function formatDate(value: string) { @@ -226,27 +266,17 @@
-
0}> +
- {#if totals.qaFailures > 0} - - - {formatNumber(totals.qaFailures)} {totals.qaFailures === 1 ? 'entry needs' : 'entries need'} attention - A quality check did not pass. Look for the amber rows below. - - {:else if totals.count > 0} - - - All quality checks passed - Every entry in this view is good to go. - - {:else} - - + + {#if totals.count > 0} + Production log + {formatNumber(totals.stockCount)} of {formatNumber(totals.count)} {totals.count === 1 ? 'run' : 'runs'} going to stock. + {:else} Nothing logged yet Fill the green row below to add your first entry. - - {/if} + {/if} +
@@ -348,7 +378,7 @@ Product Packed Packed by - Quality + Destination Notes
@@ -357,14 +387,9 @@ Date
-
+
Product - +
Packed @@ -405,14 +430,37 @@ Packed by
-
- Quality checks -
- - - - +
+ Destination +
+ +
+ {#if nForOrder} + + {/if} + {#if isSplit} + + {/if}
- {#if showNote} {addError} {/if} - Full form for QA checks and test weights + Open full form (sample box & test weights)
@@ -455,7 +500,8 @@ {/each} {:else} {#each entries as entry (entry.id)} -
+ {@const dest = destinationOf(entry)} +
Date {formatDate(entry.production_date)} @@ -463,9 +509,6 @@ Product {entry.product_name_snapshot} - {#if isStockEntry(entry)} - Stock - {/if} Packed @@ -476,13 +519,15 @@ Packed by {entry.staff_name ?? '—'} - - Quality - {#if entry.qa_passed} - Passed - {:else} - Needs a look - {/if} + + Destination + {dest.label} + {#if dest.detail}{dest.detail}{/if} {#if entry.notes}

Note{entry.notes}

@@ -526,32 +571,11 @@ border: 1px solid #bfe6c8; border-radius: 0.9rem; } - .status-band.has-issues { - background: #fdf6e9; - border-color: #ecd9a8; - } .qa-status { display: flex; align-items: center; gap: 0.9rem; } - .qa-icon { - display: inline-flex; - align-items: center; - justify-content: center; - width: 3rem; - height: 3rem; - flex-shrink: 0; - border-radius: 50%; - background: #fff; - color: var(--color-success); - } - .status-band.has-issues .qa-icon { - color: var(--color-warning); - } - .qa-icon-quiet { - color: var(--color-text-muted); - } .qa-words { display: flex; flex-direction: column; @@ -794,12 +818,6 @@ .row:hover { background: #fafbfc; } - .row.needs-attention { - background: #fdf6e9; - } - .row.needs-attention:hover { - background: #fbf0db; - } .row.just-added { animation: flash-in 1.8s ease-out; } @@ -816,24 +834,16 @@ .product-name { font-weight: 600; } - .stock-tag { - display: inline-flex; - align-items: center; - gap: 0.35rem; - padding: 0.18rem 0.55rem; - border-radius: 999px; - font-size: 0.82rem; - font-weight: 650; - line-height: 1.2; - background: #e8f1fc; - color: #0b5cad; + .col-dest { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 0.25rem; } - .stock-tag::before { - content: ''; - width: 0.5rem; - height: 0.5rem; - border-radius: 50%; - background: currentColor; + .dest-detail { + font-size: 0.88rem; + color: var(--color-text-secondary); + font-variant-numeric: tabular-nums; } .col-packed { display: flex; @@ -868,13 +878,17 @@ font-weight: 650; white-space: nowrap; } - .pill-pass { + .pill-stock { + background: #e8f1fc; + color: #0b5cad; + } + .pill-order { background: var(--color-brand-tint); color: var(--color-success); } - .pill-attention { - background: #fbedcf; - color: #8a5a00; + .pill-split { + background: #f3e8fc; + color: #6b21a8; } .row-notes { grid-column: 1 / -1; @@ -888,7 +902,7 @@ /* ── Inline spreadsheet add row ───────────────────────────── */ .add-row { display: grid; - grid-template-columns: 9rem minmax(0, 1.4fr) minmax(0, 1.4fr) minmax(0, 1fr) 11rem auto; + grid-template-columns: 9rem minmax(0, 1.6fr) minmax(0, 1.3fr) minmax(0, 0.9fr) minmax(0, 1.6fr) auto; gap: 0.6rem 1rem; align-items: start; padding: 1rem 1.5rem 1.1rem; @@ -947,35 +961,49 @@ color: var(--color-success); font-variant-numeric: tabular-nums; } - .qa-checks { + .add-dest { + gap: 0.4rem; + } + .dest-options { display: flex; - flex-direction: column; + flex-wrap: wrap; gap: 0.35rem; } - .qa-check { + .dest-toggle { display: inline-flex; align-items: center; - gap: 0.5rem; - font-size: 0.95rem; - font-weight: 500; - color: var(--color-text-primary); - line-height: 1.15; + gap: 0.4rem; + padding: 0.3rem 0.6rem; + border: 1px solid #aedcbb; + border-radius: 0.5rem; + background: var(--color-bg-surface); + font-size: 0.92rem; + font-weight: 600; + color: var(--color-text-secondary); cursor: pointer; user-select: none; } - .qa-check input { - width: 1.3rem; - height: 1.3rem; + .dest-toggle input { + width: 1.2rem; + height: 1.2rem; min-height: 0; margin: 0; flex-shrink: 0; accent-color: var(--color-brand); cursor: pointer; } - .qa-check input:focus-visible { + .dest-toggle input:focus-visible { outline: 2px solid var(--color-brand); outline-offset: 2px; } + .dest-toggle.on { + border-color: var(--color-brand); + background: var(--color-brand-tint); + color: var(--color-success); + } + .dest-input { + width: 100%; + } .add-action { justify-content: center; } @@ -1017,32 +1045,6 @@ gap: 1rem; flex-wrap: wrap; } - .stock-toggle { - display: inline-flex; - align-items: center; - gap: 0.45rem; - padding: 0.35rem 0.7rem; - border: 1px solid #aedcbb; - border-radius: 0.5rem; - background: var(--color-bg-surface); - font-size: 0.95rem; - font-weight: 600; - color: var(--color-text-secondary); - cursor: pointer; - user-select: none; - } - .stock-toggle input { - width: 1.2rem; - height: 1.2rem; - margin: 0; - accent-color: #0b5cad; - cursor: pointer; - } - .stock-toggle.on { - border-color: #9ccaf3; - background: #e8f1fc; - color: #0b5cad; - } .link-button { padding: 0.25rem 0; background: none; @@ -1146,9 +1148,6 @@ border: 1px solid var(--color-border); border-radius: 0.7rem; } - .row.needs-attention { - border-color: #ecd9a8; - } .col-product, .row-notes { grid-column: 1 / -1; @@ -1161,7 +1160,7 @@ .col-product, .col-packed, .col-staff, - .col-qa { + .col-dest { display: flex; flex-direction: column; gap: 0.05rem; @@ -1180,6 +1179,7 @@ display: block; } .add-cell:nth-child(2), + .add-dest, .add-action { grid-column: 1 / -1; } diff --git a/frontend/src/routes/throughput/add/+page.svelte b/frontend/src/routes/throughput/add/+page.svelte index 8cde531..365ed26 100644 --- a/frontend/src/routes/throughput/add/+page.svelte +++ b/frontend/src/routes/throughput/add/+page.svelte @@ -7,6 +7,7 @@ ThroughputQuantityType } from '$lib/types'; import { CheckCircle2, AlertTriangle, ArrowLeft } from 'lucide-svelte'; + import ThroughputProductPicker from '$lib/components/throughput/ThroughputProductPicker.svelte'; let { data } = $props<{ data: { products: ThroughputProduct[] } }>(); const products = $derived(data.products ?? []); @@ -18,10 +19,10 @@ let bagSize = $state(''); let quantity = $state(''); let quantityType = $state('bags'); - let scalesChecked = $state(true); - let labelCorrect = $state(true); - let bagSealed = $state(true); - let palletGood = $state(true); + let forOrder = $state(false); + let forStock = $state(false); + let jobNumber = $state(''); + let stockQty = $state(''); let sampleBoxNo = $state(''); let tw1 = $state(''); let tw2 = $state(''); @@ -39,6 +40,8 @@ productId ? products.find((p: ThroughputProduct) => String(p.id) === productId) ?? null : null ); + const isSplit = $derived(forOrder && forStock); + $effect(() => { if (selectedProduct) { if (!bagSize && selectedProduct.default_bag_size != null) { @@ -50,8 +53,6 @@ } }); - const qaWarning = $derived(!(scalesChecked && labelCorrect && bagSealed && palletGood)); - function toNum(value: string): number | null { const trimmed = value.trim(); if (!trimmed) return null; @@ -64,10 +65,10 @@ bagSize = ''; quantity = ''; quantityType = 'bags'; - scalesChecked = true; - labelCorrect = true; - bagSealed = true; - palletGood = true; + forOrder = false; + forStock = false; + jobNumber = ''; + stockQty = ''; sampleBoxNo = ''; tw1 = ''; tw2 = ''; @@ -97,15 +98,37 @@ return null; } + if (!forOrder && !forStock) { + errorMessage = 'Mark where this run goes: for an order, for stock, or both.'; + return null; + } + const job = jobNumber.trim(); + if (forOrder && !job) { + errorMessage = 'Enter the job number for the order.'; + return null; + } + let stock: number | null = null; + if (isSplit) { + stock = toNum(stockQty); + if (stock === null || stock <= 0) { + errorMessage = `Enter how much goes to stock (in ${quantityType === 'bags' ? 'bags' : 'kg'}).`; + return null; + } + if (stock >= qty) { + errorMessage = 'Stock amount must be less than the total packed for a split.'; + return null; + } + } + return { production_date: productionDate, product_id: Number(productId), product_name_snapshot: selectedProduct?.name ?? '', bag_size: bag, - scales_checked: scalesChecked, - label_correct: labelCorrect, - bag_sealed: bagSealed, - pallet_good_condition: palletGood, + for_order: forOrder, + for_stock: forStock, + job_number: forOrder ? job : null, + stock_quantity: stock, sample_box_no: sampleBoxNo.trim() || null, test_weight_1: toNum(tw1), test_weight_2: toNum(tw2), @@ -162,15 +185,10 @@ - +
+ Product * + +
-
- QA checklist - - - - - {#if qaWarning} -

One or more QA checks failed — this entry will be flagged.

- {/if} +
+ Where does this run go? +
+ + +
+
+ {#if forOrder} + + {/if} + {#if isSplit} + + {/if} +
@@ -308,25 +337,30 @@ font-weight: 600; font-size: 0.85rem; } - .qa { + .picker-field { + display: flex; + flex-direction: column; + gap: 0.3rem; + font-size: 0.85rem; + } + .picker-label { + font-weight: 500; + } + .dest-checks { + display: flex; + flex-wrap: wrap; + gap: 0.4rem 1.25rem; + } + .dest-fields { display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 0.4rem 1rem; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 0.5rem 1rem; } .check { flex-direction: row; align-items: center; gap: 0.45rem; } - .qa-warning { - grid-column: 1 / -1; - margin: 0; - color: #92400e; - display: inline-flex; - align-items: center; - gap: 0.35rem; - font-size: 0.85rem; - } .weight-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); diff --git a/input_data/Operations Throughput.xlsx b/input_data/Operations Throughput.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..91f89938d842c5aa4e46954c9bab42b6b33ab757 GIT binary patch literal 95696 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

ZcQmz)@ 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

Ja- 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 literal 0 HcmV?d00001