# Gazda Pensiuni v1.3 — pachet de test (descărcabil)

Programul de recepție pentru pensiuni de 2–10 camere. Fără abonamente, fără `npm install`,
fără server extern — rulează pe calculatorul tău.

## Pornire (Windows)

**Varianta A — instalator EXE (recomandat, fără instalare manuală de Node):**

1. Dublu-click pe **`Gazda-Pensiuni-Setup.exe`** (fișier unic;vine lângă acest pachet).
2. Avansează în wizard, apoi aplicația se instalează în `%LOCALAPPDATA%\GazdaPensiuni`, se creează
   scurtătura **„Gazda Pensiuni” pe desktop** și programul pornește singur. Se deschide browserul pe
   **http://localhost:8787**. La prima pornire apare ecranul de login cu butonul
   **„Intră în demo (date gata)”** — deschide o pensiune gata umplută (rezervări + facturi);
   contul propriu îl creezi cu „Cont nou”: completezi datele unității → adaugi camerele.
3. De acum pornești zilnic din scurtătura de pe desktop. Node.js vine **în pachet**
   (`runtime\node.exe`) — nu e nevoie să instalezi nimic în sistem.
4. Dezinstalare: **Panou de control → Aplicații instalate → Gazda Pensiuni** (sau `uninstall.exe`
   din dosarul aplicației). *Atenție: dezinstalarea poate șterge și datele (`pms.sqlite`) —
   copiază-le înainte dacă au valoare.*

**Varianta A2 — același instalator ca .cmd (dacă EXE-ul e blocat de politica firmei):**

1. Dublu-click pe **`Gazda-Pensiuni-Setup.cmd`** (fișier unic, lângă acest pachet).
2. Instalează în `%LOCALAPPDATA%\GazdaPensiuni`, creează scurtătura pe desktop și pornește
   programul — ca varianta EXE. Dezinstalare tot din Aplicații instalate sau `uninstall.cmd`.

**Varianta B — pachetul simplu (cere Node instalat):**

1. Instalează **Node.js LTS** o singură dată, dacă nu ai: https://nodejs.org
   Verifică în CMD: `node --version` (minim 22).
2. Dublu-click pe **`start-pms.bat`**.
3. Se deschide browserul pe **http://localhost:8787**. La prima pornire, baza nouă primește automat
   scenariul demo — intră pe el cu butonul **„Intră în demo (date gata)”**, sau creează-ți contul cu „Cont nou”
   (nume, nr. înregistrare / certificat de clasificare — cerut la check-in) → adaugi camerele.

Datele se salvează local în `pms/pms.sqlite`. Reset la baza demo: șterge fișierul `pms/pms.sqlite*` când serverul e **oprit**.

## Modul demo (date gata la prima pornire)

La PRIMA pornire, lansatorul încarcă un scenariu gata scris în baza nouă: **„Vila Dealuț — Bran”** —
4 camere, **13 rezervări** (trecute · în casă · viitoare · o cerere în așteptare), plăți și
două **facturi** (finală + avans pe firmă), cameră de curățat, oaspete fidel cu istoric.
Autentificare demo: **demo@gazda.ro / demo12345** — sau apesi direct pe butonul
**„Intră în demo (date gata)”** din ecranul de login.

Demo-ul e separat de contul tău: după ce îți creezi cont propriu („Cont nou”), datele tale
trăiesc lângă demo, fără să se amestece (izolare pe cont). Seed-ul e idempotent, iar datele
demo se regenerează la prima pornire de pe o bază curată ( șters cu serverul oprit).


## Ce e nou în v1.3 (adaptarea de la varianta hotel, verificată cu 118 teste)

- **Cote TVA cu temei citat** — fiecare cotă (cazare 11%, restaurant 11%, minibar 21%…) poartă
  articolul și URL-ul legii; raportul de TVA arată pe ce se sprijină fiecare linie, cu control
  „bază + TVA = brut”.
- **Planuri tarifare** — preț/noapte propriu sau derivat din alt plan (+/− % sau sumă fixă), cu
  restricții de vânzare (min/max nopți, închis la sosire/plecare). Refuzul la rezervare numește
  restricția. Tester de restricții în panou.
- **Pachete** — un preț unic, componente pe cote diferite (cazare 11%, mâncare 11%, minibar 21%);
  vânzare pe sejur cu câte o linie pe componentă, suma liniilor = exact prețul pachetului.
- **Taxe locale pe zonă** — taxă de stațiune / Salvamont configurabile din HCL-ul localității tale,
  cu temei scris; 5 exemple verificate (Brașov, București, Cluj, Constanța, Sinaia) pe care le
  copiezi din panou. Colectare pe turist la rezervare + raport „cât colectat / până când virat”.
- **Data de business + închiderea de zi** — ziua operațională avansează la „Închide ziua”,
  cu colectarea automată a taxelor locale pe noapte. NU dublează venitul: cazarea intră în
  factura de la plecare, ca până acum. O zi se închide o singură dată; nu se închide o zi viitoare.

Pe unde găsești totul: fila **„Tarife · Taxe · Ziua”** din meniul de sus.

## Restul funcțiilor (v1)

Rezervări + calendar, check-in cu fișa de cazare (SIT) și export CSV, servicii pe sejur, plăți,
facturi e-Factura (XML UBL pentru SPV, numerotare fără goluri), agenții și comisioane, rapoarte
lunare (ocupare, ADR, RevPAR, TVA pe cotă), sincronizare iCal cu Booking/Airbnb, istoric oaspete,
jurnal audit. Detalii: `pms/README.md`.

## Testare (opțional)

```
node pms/server.js        (terminal 1)
node pms/test.js          (terminal 2)  → 118/118 teste
```

Limitări cunoscute: XML e-Factura se validează structural (schema ANAF la producție), SIT = captură
+ export (API-ul oficial nu e încă public), backup = copie manuală cu serverul oprit.
