# Aplicație Access — Sistemul informatic al restaurantului Gourmet Hungaricum S.R.L.

Acest folder conține aplicația Microsoft Access realizată pentru proiectul APSI:
**5 tabele, 5 ecrane (formulare), 5 interogări și 5 rapoarte**,
plus scripturile care o construiesc automat.

## Conținut

| Fișier | Ce este |
|---|---|
| **`Restaurant_Gourmet.accdb`** | Bază de date Access reală, deja construită (Jackcess) — conține cele **5 tabele cu date** și **relațiile** dintre ele. Se deschide direct în Access. |
| **`add_objects.vbs`** | Adaugă peste fișierul de mai sus cele **5 interogări, 5 ecrane și 5 rapoarte** + meniul principal. |
| **`build_app.vbs`** | Variantă „de la zero”: reconstruiește **întreaga** aplicație (tabele + date + relații + interogări + ecrane + rapoarte + meniu) într-un fișier nou `Restaurant_Gourmet_APP.accdb`. |
| `csv/*.csv` | Datele celor 5 tabele (pentru import manual, UTF-8). |
| `sql/00_create_tables.sql` | `CREATE TABLE` + cheile externe (relațiile). |
| `sql/01–05_*.sql` | Textul SQL al celor 5 interogări (pentru *SQL View*). |
| `CreateAccdb.java` | Sursa Java/Jackcess folosită pentru a genera `.accdb`-ul cu tabele și date (rulează pe orice sistem, nu necesită Access). |

## Cum o folosești (Windows + Microsoft Access)

**Varianta recomandată — tot dintr-un singur script:**

1. Copiază folderul `access/` pe un calculator cu Microsoft Access instalat.
2. Dublu-clic pe **`build_app.vbs`** (sau `cscript build_app.vbs`).
   Se creează `Restaurant_Gourmet_APP.accdb`, gata de prezentat.

**Varianta alternativă — pornind de la baza deja construită:**

1. Deschide o dată **`Restaurant_Gourmet.accdb`** (vezi tabelele și datele).
2. Dublu-clic pe **`add_objects.vbs`** pentru a adăuga interogările, ecranele și rapoartele.

> **Notă (meniul principal / switchboard):** butoanele meniului principal sunt
> generate cu cod VBA. Pentru ca scriptul să le poată scrie, activează în Access:
> *File → Options → Trust Center → Trust Center Settings → Macro Settings →*
> **„Trust access to the VBA project object model”**. Dacă opțiunea este dezactivată,
> aplicația se construiește integral, doar butoanele meniului rămân fără cod (le poți
> adăuga manual sau lăsa ca atare — restul obiectelor funcționează).

## Obiectele aplicației și corespondența cu documentația

| Obiect | Tip | Sursă în lucrare |
|---|---|---|
| `CLIENT`, `ANGAJAT`, `PRODUS`, `COMANDA`, `DETALIU_COMANDA` | Tabele | §3.5, Anexa 1 |
| `frmClient`, `frmAngajat`, `frmProdus`, `frmComanda`, `frmMeniuPrincipal` | Ecrane | §3.7, Anexa 2 |
| `Q1_Comenzi_In_Derulare` … `Q5_Valoare_Per_Client` | Interogări | §3.8, Anexa 3 |
| `rptMeniu`, `rptClienti`, `rptComenziActive`, `rptPerformantaAngajati`, `rptVanzariClient` | Rapoarte | §3.9, Anexa 4 |

## Capturile pentru documentația LaTeX — automat (recomandat)

Rulează **`export_pdf.vbs`** (dublu-clic). Acesta exportă automat fiecare ecran,
interogare și raport în câte un fișier **PDF**, în subfolderul `export/`, cu numele
exacte așteptate de documentație. Apoi:

1. Copiază fișierele din `export/` în folderul
   `../Template-diploma-project-UnitBv/images/`.
2. Reconstruiește documentul: `make build`.

Macroul `\captura` din șablon folosește automat fie `images/<nume>.png`, fie
`images/<nume>.pdf`; deci PDF-urile exportate sunt preluate direct, fără alte modificări.
Singura excepție este **diagrama relațiilor** (`tab_relatii` / `rel_access`), care nu poate
fi exportată — pentru ea fă o captură de ecran manuală a ferestrei *Relationships*.

Numele fișierelor și obiectul corespunzător:

| Fișier (`.pdf` sau `.png`) | Obiect |
|---|---|
| `tab_relatii`, `rel_access` | Fereastra **Relationships** (doar captură manuală) |
| `frm_client`, `frm_angajat`, `frm_produs`, `frm_comanda`, `frm_meniu` | Ecranele |
| `qry_comenzi_derulare`, `qry_valoare_ridicata`, `qry_vanzari_angajat`, `qry_top_produse`, `qry_valoare_client` | Interogările Q1–Q5 |
| `rpt_meniu`, `rpt_clienti`, `rpt_comenzi_active`, `rpt_performanta`, `rpt_vanzari_client` | Rapoartele |

> **Format monetar:** sumele (salarii, prețuri, valori) sunt afișate în **lei**
> (ex. `38 lei`, `1.106 lei`), nu cu simbolul `$`. Formatarea este aplicată automat de
> scripturi pe câmpurile de tip monedă și pe coloanele calculate ale interogărilor.

Dacă preferi capturi de ecran reale în loc de PDF, salvează-le ca `.png` cu aceleași nume.

## Date și verificare

Setul de date conține 8 clienți, 6 angajați, 12 produse, 10 comenzi și 24 de linii de
comandă, însumând **1.106 lei** încasări. Valorile din interogări (vânzări pe angajat,
top produse, valoare pe client) sunt calculate din aceste date și coincid cu tabelele de
rezultate din anexele documentației.
