Files
tasks/CLAUDE.md
2026-04-21 15:46:20 +03:00

4.1 KiB

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.