2026-04-07 16:05:41 +03:00

Database Search & Update — User Guide

A fullscreen touchscreen application for querying and updating article/box weight (mass) records stored in a MariaDB database.


UI Layout (top to bottom)

┌─────────────────────────────────────┬────────┐
│  Database Search & Update           │  Exit  │
├──────┬──────────────────────────────┴────────┤
│  ID: │  [scan / type here]                   │
│ Mass:│  [current mass]  Last update: ...     │
├──────┴───────────────────────────────────────┤
│  Article type detected: PRODUCT  [Override]  │
├───────────────┬──────────────┬───────────────┤
│  Add/Update   │ Reset Values │   Settings    │
├───────────────┴──────────────┴───────────────┤
│  Update Values                               │
│  ID:   [read-only — original barcode]        │
│  Mass: [editable]                            │
│  [Confirm Add/Update]        [Delete]        │
├──────────────────────────────────────────────┤
│  Status bar                                  │
├──────────────────────────────────────────────┤
│  [ 1 ]  [ 2 ]  [ 3 ]                        │
│  [ 4 ]  [ 5 ]  [ 6 ]    Numeric keypad      │
│  [ 7 ]  [ 8 ]  [ 9 ]                        │
│  [ . ]  [ 0 ]  [ ⌫ ]                        │
│  [           Enter           ]               │
└──────────────────────────────────────────────┘

Article / Box Auto-Detection

When a barcode is entered in the ID field the app automatically classifies it:

Rule Type DB key used
Exactly 8 digits BOX Leading zeros stripped — e.g. 000000033
Anything else PRODUCT Used as-is

The detected type is shown in the mode bar (blue = PRODUCT, amber = BOX).

Manual Override

Press Override type to flip the detected type between BOX and PRODUCT.
The mode bar shows [Manual] while an override is active.
Typing a new ID resets the override back to auto-detection.


Typical Workflow

  1. Scan or type the article/box code into the ID field.

  2. Press Enter on the keypad or the physical Enter key.

  3. The app queries the database and fills:

    • Mass — current stored weight
    • Last update — date and time of the last mass change

    If the article is not in the database yet, Mass stays empty and the status bar shows "not found".

2 — Add / Update

  1. After a search (found or not found), press Add/Update.
  2. The Update Values frame activates:
    • ID (read-only) — shows the original barcode as scanned
    • Mass — pre-filled with the current value, fully editable; keyboard focus moves here automatically
  3. Clear the Mass field and type the new weight using the numeric keypad or a physical keyboard.
  4. Press Confirm Add/Update.
    • If the record exists → UPDATE mass, t_update WHERE id = ?
    • If the record is new → INSERT with the current timestamp
  5. On success all fields are cleared and focus returns to the ID field.

3 — Delete

  1. After a search (found), press Add/Update to load the record into the Update Values frame.
  2. Press Delete → a confirmation popup appears.
  3. Confirm to permanently remove the record from the database.

4 — Reset Values

Clears all fields (ID, Mass, Update Values frame) and returns focus to the ID field without touching the database.


Numeric Keypad

Key Action
09 Append digit to the active field
. Append decimal point
Delete last character
Enter Trigger database search (when ID field is active)

The keypad always targets the currently focused field (ID or Mass).


Settings

Press Settings to change the database server address.

Field Default
Server IP / hostname localhost (loaded from config.json)

Test Connection checks connectivity before saving.
Save persists the new address to config.json next to the executable.


Log Files

Both files are created next to config.json (same folder as the .exe when running the built binary, or the project root when running from source).

app_actions.log

One line per database action:

2026-04-09 15:30:45 | SEARCH_FOUND      | id=4                    | mass=3446.0, t_update=None
2026-04-09 15:31:02 | UPDATE            | id=4                    | mass=3440.0
2026-04-09 15:45:10 | INSERT            | id=12345                | mass=1200.0
2026-04-09 16:00:00 | DELETE            | id=7                    | rows_deleted=1
Action Description
APP_START Application launched
SEARCH_FOUND ID found in database
SEARCH_NOT_FOUND ID not in database
UPDATE Mass updated on existing record
INSERT New record created
DELETE Record removed
DELETE_NOT_FOUND Delete attempted on non-existent ID
LOG_PURGE Old log entries removed at startup
*_ERROR Any database exception

Lines older than 30 days are automatically removed each time the app starts.

db_debug.log

Verbose internal debug log (SQL statements, connection events, row counts) for troubleshooting.


Database

Detail Value
Engine MariaDB / MySQL
Database cantare_injectie
Table offsystemsCounting
Columns id VARCHAR(20) · mass REAL · t_update DATETIME

The table and the t_update column are created automatically on first run if they do not exist.


Running from Source

cd "C:\Users\Dell\Desktop\db_interface"
.\venv\Scripts\python.exe main.py

Running the Built Binary

dist\DatabaseApp.exe

Copy your existing config.json next to the .exe to keep the saved server IP, or set it via Settings on first launch.

Description
No description provided
Readme 274 MiB
Languages
Python 98.1%
Batchfile 1.9%