diff --git a/.gitignore b/.gitignore index 5a9f4c7..967cbec 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,7 @@ bash.exe.stackdump # Setari locale Claude Code (specifice masinii, nu proiectului) .claude/ + +# Exporturi surse Oracle (regenerabile cu docs/oracle_export.md, prea mari pentru git) +*.pck +*.PCK diff --git a/docs/oracle_export.md b/docs/oracle_export.md new file mode 100644 index 0000000..cf864eb --- /dev/null +++ b/docs/oracle_export.md @@ -0,0 +1,61 @@ +# Export surse Oracle (PACK_CONTAFIN & co.) — cum se face + +`PACK_CONTAFIN.pck` din acest folder este exportul sursei pachetului PL/SQL `PACK_CONTAFIN`. +**Claude Code își face singur exportul/reîmprospătarea** — nu mai e nevoie de export manual din +PL/SQL Developer. + +## Conexiune + +- Client: `D:\ROA\instantclient_19_18\sqlplus.exe` (`TNS_ADMIN` e deja setat spre același folder). +- Alias TNS: `ROA_CENTRAL` → `10.0.20.121:1521`, `SERVICE_NAME=ROA` (vezi `tnsnames.ora`). +- Schema/utilizator: `MARIUSM_AUTO` (schema de dezvoltare a lui Marius). +- **Parola nu e versionată** — se află local, în `D:\ROA\ROAGEST\docs\local\oracle.md` + (folder ignorat de git), pe mașina de lucru. + +`PACK_CONTAFIN` există în schemele `MARIUSM_AUTO` (dev) și `ACN`, plus un sinonim `PUBLIC`. +Exportul de referință se face din `MARIUSM_AUTO`. + +## Gotcha sqlplus pe Windows/PowerShell + +Nu trimite SQL prin pipe din PowerShell (`'select...' | sqlplus`) — BOM-ul UTF-16 sparge parserul +(`SP2-0734: unknown command beginning "select..."`). Scrie un fișier `.sql` cu encoding **ASCII** +și rulează-l cu `@fisier.sql`. + +## Comanda de export (re-generare .pck) + +```sql +-- export_pack.sql +set pagesize 0 linesize 400 trimspool on feedback off heading off termout off +spool D:\ROA\ROAGEST\COMUN\docs\PACK_CONTAFIN.pck +select text from all_source where owner='MARIUSM_AUTO' and name='PACK_CONTAFIN' and type='PACKAGE' order by line; +select '/' from dual; +select text from all_source where owner='MARIUSM_AUTO' and name='PACK_CONTAFIN' and type='PACKAGE BODY' order by line; +select '/' from dual; +spool off +exit +``` + +```powershell +& 'D:\ROA\instantclient_19_18\sqlplus.exe' -L -S 'MARIUSM_AUTO/@ROA_CENTRAL' '@export_pack.sql' +``` + +Același tipar merge pentru orice alt pachet/procedură (`PACK_SESIUNE`, `PACK_PRETURI`, …) sau pentru +DDL de tabele/view-uri (`all_tab_columns`, `dbms_metadata.get_ddl`). + +## Ce e strict necesar de știut despre PACK_CONTAFIN + +Pachetul central de **scriere a documentelor** — clientul VFP populează tabelele temporare +`ACT_TEMP`/`RUL_TEMP` (prin `oscrie_in_fisiere`-ul din COMUN), apoi pachetul distribuie: + +- `SCRIE_IN_FISIERE` — orchestratorul (apelat per document). +- `SCRIE_IN_ACT` — `ACT_TEMP` → `ACT` (notele contabile). +- `SCRIE_IN_RUL` — `RUL_TEMP` → `RUL` (mișcările de stoc); completează `COD`, `DATAORA`, `ID_FACT` + (min. `id_fact` fără conturi 5xx), `ID_SUCURSALA`, `DATAIN`/`DATAOUT` din `dataact`, opțional + `ID_RUL_AUX` pe furnizor (opțiunea de firmă `RULAJFURNIZOR`). **Scrie exact ce e în RUL_TEMP — nu + derivă rulaje din ACT**, deci filtrarea liniilor de rulaj se face în clientul VFP. +- `SCRIE_IN_RUL_OBINV` / `SCRIE_IN_STOC` / `SCRIE_IN_STOC_OBINV` — variantele pentru obiecte de + inventar și actualizarea stocului. +- `VERIFICA_NOTE_CONTABILE`, `SCRIE_JC_2007`/`SCRIE_JV_2007` (jurnale TVA), + `SCRIE_IN_BALANTA(_PARTENERI)`, `sterge_document`, `finalizeaza_document_*`. +- Stare de sesiune prin settere/gettere (`SET_COD`/`GET_COD`, `SET_IDFACT`, `SET_ID_SUCURSALA`, …) + + `PACK_SESIUNE` (an/lună, opțiuni firmă).