85 lines
4.1 KiB
Markdown
85 lines
4.1 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
Visual FoxPro 9.0 desktop application for task/project management and software distribution tracking. The app manages work assignments (tasks/lucrări), client software versions, and generates ROA update XML files for client auto-update mechanisms. Backend is Oracle via ODBC. Language of code and comments is Romanian.
|
|
|
|
## Building & Running
|
|
|
|
There is no command-line build system. Compilation happens inside the Visual FoxPro 9.0 IDE:
|
|
|
|
- **Build executable:** Open `tasks.pjx` in VFP IDE → Project → Build Executable → produces `tasks.exe`
|
|
- **Run interactively:** `tasks.exe` (GUI mode)
|
|
- **Run silently with auto XML generation:** `tasks.exe "s" "xml_roa_auto"`
|
|
|
|
No test framework and no linter exist for this project.
|
|
|
|
## Configuration
|
|
|
|
`settings.ini` (at project root) is the primary configuration file. Key sections:
|
|
|
|
- `[connection]` — Oracle ODBC credentials for `CENTRAL`, `CONTAFIN_ORACLE`, `SOFT_SERII` schemas
|
|
- `[folder]` — Output paths for ROA XML, SQL scripts, and Contafin exports
|
|
- `[script]` — SQL script filename prefixes per module
|
|
- `[wrap]` — Executable wrapping/encryption settings
|
|
|
|
A template lives at `settings.ini.tmpl`.
|
|
|
|
## Architecture
|
|
|
|
### Entry Point & Initialization
|
|
|
|
`programe/main.prg` is the startup module. It sets global variables, loads class libraries, configures paths from `settings.ini`, establishes the Oracle connection (via `conecteaza()` in `programe/proceduri_sql.prg`), and opens the main menu/form.
|
|
|
|
Key globals set in `main.prg`: `gnHandle` (DB connection), `gcAppPath`, `gcDataPath`, `gcTempPath`, `gnIdUtilizator`, `gnIdClient`, `gnIdProgram`, `gcProgrameChangeLogsFile`.
|
|
|
|
### File Types
|
|
|
|
| Extension | Purpose |
|
|
|-----------|---------|
|
|
| `.prg` | Source procedures/functions |
|
|
| `.scx/.sct` | Form definition + code |
|
|
| `.vcx/.vct` | Class library definition + code |
|
|
| `.frx/.frt` | Report definition + code |
|
|
| `.mnx/.mnt/.mpr` | Menu definition |
|
|
| `.fxp` | Compiled program (auto-generated) |
|
|
| `.pjx/.pjt` | VFP project file |
|
|
|
|
### Core Modules
|
|
|
|
**`programe/proceduri_sql.prg`** — Database layer. `conecteaza(host, user, pass)` opens ODBC connection into `gnHandle`. `executaSql(cSql)` runs queries.
|
|
|
|
**`programe/oproceduri_comune.prg`** — Defines `oexecutor` class: the main SQL execution object with properties `nHandle`, `cSql`, `cCursor`, `nSucces`, `cEroare`, `lReconnect`. `oExecute()` runs queries and populates cursors, handles reconnection.
|
|
|
|
**`programe/proceduri.prg`** — Business logic: `EditTask()`, `EditLucrare()`, `genereaza_xml_roa()`, `genereaza_xml_roa_tot()`. The XML generation queries `VSC_PROGRAME_CLIENTI` and writes `ROASTART_<client>.xml` to the configured output folder.
|
|
|
|
**`programe/actualizare_roa.prg` / `clase/actualizareroa.vcx`** — ROA update generation workflow.
|
|
|
|
**`programe/generare_script.prg` / `clase/generare_script.vcx`** — SQL migration script generation.
|
|
|
|
**`clase/execute_script.vcx`** — Applies SQL scripts to target databases with progress tracking, logging, and rollback on error. Output goes to timestamped folders under `roa_central/`.
|
|
|
|
**`programe/rapoarte.prg`** — Report runner using `utile/foxypreviewer.app` for PDF/RTF/HTML output. Report templates are `.frx` files in `rapoarte/`.
|
|
|
|
### UI Layer
|
|
|
|
Forms are in `ferestre/` (`.scx` files). All inherit from `clase/_frm_base.vcx`. Grids inherit from `clase/_grd_base.vcx`. The main tasks form is `ferestre/frm_tasks.scx`.
|
|
|
|
### Data Flow
|
|
|
|
```
|
|
settings.ini → conecteaza() → gnHandle (Oracle ODBC)
|
|
↓
|
|
oexecutor.oExecute(cSql) → cursor
|
|
↓
|
|
Business logic (proceduri.prg, *.vcx classes)
|
|
↓
|
|
Forms (ferestre/*.scx) / Reports (rapoarte/*.frx) / XML output
|
|
```
|
|
|
|
### Version History
|
|
|
|
`changelog_tasks.txt` contains the full version history in Romanian. Current version: **1.1.14** (January 2021). `programe_changelogs.xml` tracks program-level change metadata for the ROA distribution system.
|