Files
roaregistratura/Teste/test_init_env_registratura.prg
Marius Mutu 6769eb61d1 Registratura: adaugare/editare fara erori la partener NULL, lista doar ultimul document, fonturi Arial 10 (M1-M5)
M1 modifica_reg_dg: garda id_part NULL/empty (mesaj + Return .F.), NVL pe id_part/nr_pag, functia intoarce succes.
M2 validare partener in toate cele 3 puncte de salvare, INAINTE de blocarea campurilor (Command2.Click salveaza inainte sa blocheze; bara laterala si Page3.Deactivate nu mai salveaza/prompteaza cu partener NULL).
M3 do_adauga: documentul nou intra direct in editare (llock=.F., focus cmdDenumire); eliminat mesajul fals "Toate modificarile au efect imediat!".
M4 viz_registratura + do_cauta: filtru initial "doar ultimul document" (subquery max(id_reg)); fara criterii de cautare se pastreaza filtrul, nu se incarca toata baza.
M5 fonturi: eliminate 154 suprascrieri "Arial Narrow" si rebazate 96 controale baseclass pe COMUN _baza.vcx (textbox/label/checkbox/commandbutton/optiongroup); Init de grid propaga fontul la coloane si headere (fara asta raman Arial 9 - verificat empiric).

Teste: harness headless (init env dedicat, form, adaugare+editare cu verificare in baza) + test UI vizual cu screenshots pe fluxul real (19 PASS / 0 FAIL). Diff-uri de audit in docs/diff_runda1_*.patch.

M6 (build EXE) BLOCAT headless: roaRegistratura.pjx refera 48 fisiere hardcodate pe "c:\program files\...\vfp 9" (masina 32-bit din 2021) + COMUN\utile\hpdf\ReportOutput\ctl32_progressbar.vcx redenumit _old; necesita repathing o data in VFP9 IDE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018H9za5A9Tk6wcLFof6seds
2026-07-23 18:53:12 +03:00

190 lines
6.2 KiB
Plaintext

* test_init_env_registratura.prg
* Init mediu NEINTERACTIV pentru teste headless ROAREGISTRATURA
* (echivalentul COMUN\utile\Teste\test_init_env_auto.prg, dar pentru acest proiect).
* SET PATH / CLASSLIB / PROCEDURE preluate din Programe\roaregistratura.prg (a se mentine sincron).
*
* Utilizare (dintr-un script apelant):
* DO Teste\test_init_env_registratura WITH 'CENTRAL', 'MARIUSM_AUTO', 'parola'
* IF gnHandle <= 0 ... eroare conectare
* ATENTIE: NU se ruleaza pe baza de productie (JCSSERVER / CONTAFIN_ORACLE).
LPARAMETERS tcHost, tcSchema, tcPassword, tnAn, tnLuna
tcHost = IIF(EMPTY(tcHost), 'CENTRAL', tcHost)
tcSchema = IIF(EMPTY(tcSchema), 'MARIUSM_AUTO', tcSchema)
tcPassword = IIF(EMPTY(tcPassword), 'ROMFASTSOFT', tcPassword)
SET DELETED ON
SET ANSI ON
SET EXACT ON
SET SAFETY OFF
CLOSE DATABASES
SET CENTURY ON
SET DATE DMY
SET NULLDISPLAY TO ''
SET SQLBUFFERING ON
PUBLIC CT_SUCCES, CT_INSUCCES, crlf, gnAn, gnLuna, gnIdUtil, gnIdFirma, gcS, gcFirma, ;
gcNumeProgram, gcAppName, buton, gnButon, pnButon, gcAcces, glParametri, glQuit
CT_SUCCES = 1
CT_INSUCCES = -1
crlf = CHR(13) + CHR(10)
gnAn = IIF(EMPTY(tnAn), YEAR(DATE()), tnAn)
gnLuna = IIF(EMPTY(tnLuna), MONTH(DATE()), tnLuna)
gnIdUtil = -3
gnIdFirma = 110
gcS = UPPER(ALLTRIM(tcSchema))
gcFirma = m.gcS
gcNumeProgram = [ROAREGISTRATURA]
gcAppName = [ROAREGISTRATURA]
glParametri = .T.
glQuit = .F.
buton = 1
gnButon = 1
pnButon = 1
gcAcces = [1;2;3;4;5;6;7;8;]
* globale cerute de oserii_numere/oinit_optiuni (sincron cu test_init_env_auto.prg)
PUBLIC gnIdSucursala, gnIdMama, glEMama, gcCondSucursala, glLunaInchisa, gcUserName
gnIdSucursala = NULL
gnIdMama = 0
glEMama = .F.
gcCondSucursala = []
glLunaInchisa = .F.
gcUserName = [MARIUS M]
* vezi comentariul din test_init_env_auto.prg: PUBLIC, nu Declare
PUBLIC nror(65000)
PUBLIC gcAppPath, DIRGEN, gcBasePath, gcTempPath, gcGeneralIniFile, gcSettingsFile
gcAppPath = [D:\ROA\ROAREGISTRATURA\]
SET DEFAULT TO (gcAppPath)
LOCAL lcPath
lcPath = gcAppPath + 'Date;' + ;
gcAppPath + 'Include;' + ;
gcAppPath + 'FERESTRE;' + ;
gcAppPath + 'GRAFICE;' + ;
gcAppPath + 'CLASE;' + ;
gcAppPath + 'MENIURI;' + ;
gcAppPath + 'PROGRAME;' + ;
gcAppPath + 'RAPOARTE;' + ;
gcAppPath + 'COMUN\CLASE;' + ;
gcAppPath + 'COMUN\FERESTRE;' + ;
gcAppPath + 'COMUN\PROGRAME;' + ;
gcAppPath + 'COMUN\GRAFICE;' + ;
gcAppPath + 'COMUN\RAPOARTE;' + ;
gcAppPath + 'COMUN\UTILE\CTL32;' + ;
gcAppPath + 'COMUN\UTILE\HPDF;' + ;
gcAppPath + 'COMUN\UTILE\WEB;' + ;
gcAppPath + 'COMUN\UTILE\TESTE;' + ;
ADDBS(SUBSTR(gcAppPath,1,RAT([\],gcAppPath,2)))+[COMUNROA\]
SET PATH TO &lcPath ADDITIVE
*CLASE - sincron cu Programe\roaregistratura.prg
SET CLASSLIB TO clase\roaregistratura ADDITIVE
SET CLASSLIB TO CAUT ADDITIVE
SET CLASSLIB TO ooptiuni ADDITIVE
SET CLASSLIB TO registry ADDITIVE
SET CLASSLIB TO decabaza ADDITIVE
SET CLASSLIB TO cauta_alfa_forms ADDITIVE
SET CLASSLIB TO ferestre_oracle ADDITIVE
SET CLASSLIB TO caut_ora ADDITIVE
SET CLASSLIB TO ferestre_registratura ADDITIVE
SET CLASSLIB TO onomenclatoare ADDITIVE
SET CLASSLIB TO Messagebox ADDITIVE
SET CLASSLIB TO otoolbar ADDITIVE
SET CLASSLIB TO ferestre_cere_date ADDITIVE
SET CLASSLIB TO orapoarte_comun ADDITIVE
SET CLASSLIB TO onom_articole ADDITIVE
SET CLASSLIB TO serii_numere.vcx ADDITIVE
SET CLASSLIB TO ferestre_atasamente.vcx ADDITIVE
SET CLASSLIB TO wwdialogs.vcx ADDITIVE
SET CLASSLIB TO appwiz.vcx ADDITIVE
SET CLASSLIB TO accessibility.vcx ADDITIVE
SET CLASSLIB TO ofundal_registratura.vcx ADDITIVE
*PROCEDURI - sincron cu Programe\roaregistratura.prg
SET PROCEDURE TO quitapp ADDITIVE
SET PROCEDURE TO init_program ADDITIVE
SET PROCEDURE TO oproceduri_comune ADDITIVE
SET PROCEDURE TO gencursor.prg ADDITIVE
SET PROCEDURE TO update_nomenclator.prg ADDITIVE
SET PROCEDURE TO onomenclatoare ADDITIVE
SET PROCEDURE TO oproceduri_ams ADDITIVE
SET PROCEDURE TO ocautare ADDITIVE
SET PROCEDURE TO oinit_optiuni ADDITIVE
SET PROCEDURE TO osecurity ADDITIVE
SET PROCEDURE TO oproceduri_roaregistratura ADDITIVE
SET PROCEDURE TO acces_meniu ADDITIVE
SET PROCEDURE TO oheader ADDITIVE
SET PROCEDURE TO oparteneri_contracte ADDITIVE
SET PROCEDURE TO oproceduri_maintenance.prg ADDITIVE
SET PROCEDURE TO cauta_alfa ADDITIVE
SET PROCEDURE TO ini.prg ADDITIVE
SET PROCEDURE TO oserii_numere ADDITIVE
SET PROCEDURE TO oproceduri_atasamente ADDITIVE
SET PROCEDURE TO oexport.prg ADDITIVE
SET PROCEDURE TO iniacces.prg ADDITIVE
SET PROCEDURE TO filebringer.prg ADDITIVE
SET PROCEDURE TO log_mesaje.prg ADDITIVE
SET PROCEDURE TO wwutils.prg ADDITIVE && ShortPath() folosit de Log_Mesaje.Init
DECLARE INTEGER GetPrivateProfileString IN WIN32API ;
STRING, STRING, STRING, STRING @, INTEGER, STRING
DECLARE INTEGER WritePrivateProfileString IN Win32Api ;
STRING, STRING, STRING, STRING
DECLARE INTEGER PathFileExists IN shlwapi STRING pszPath
PUBLIC poLog, goLog, goApp
poLog = NEWOBJECT("Log_Mesaje","Log_Mesaje.prg")
goLog = poLog
goApp = CREATEOBJECT("wzApplication")
DIRGEN = [D:\ROA\]
gcBasePath = DIRGEN
gcGeneralIniFile = DIRGEN + "settings.ini"
gcSettingsFile = m.gcGeneralIniFile
gcTempPath = ADDBS(SYS(2023)) + gcS + [\]
IF !DIRECTORY(gcTempPath)
MD (gcTempPath)
ENDIF
PUBLIC gnHandle, goExecutor, goConn, goFirma, goCalendar
gnHandle = 0
goExecutor = CREATEOBJECT("oExecutor")
goConn = CREATEOBJECT("oConn")
goConn.Connect(m.tcHost, m.tcSchema, m.tcPassword)
IF m.gnHandle <= 0
RETURN .F.
ENDIF
LOCAL llSucces, lcSql
goFirma = NULL
llSucces = goExecutor.oExecuta("select * from syn_v_nom_firme where schema = ?gcS", "cFirma")
IF m.llSucces
SELECT cFirma
gnIdFirma = id_firma
gcFirma = ALLTRIM(firma)
SCATTER NAME goFirma
ELSE
goFirma = CREATEOBJECT('custom')
goFirma.AddProperty('cod_fiscal', '')
goFirma.AddProperty('schema', m.gcS)
goFirma.AddProperty('firma', m.gcS)
ENDIF
USE IN (SELECT('cFirma'))
CREATE CURSOR dual (dummy c(10))
INSERT INTO dual (dummy) VALUES ("")
* sesiune Oracle (pachetele pot lipsi din unele scheme - nu oprim initul)
lcSql = [begin pack_sesiune.set_Id_Util(?gnIdUtil); end;]
llSucces = goExecutor.oExecuta(lcSql)
lcSql = [begin pack_sesiune.setluna(?gnLuna); pack_sesiune.setan(?gnAn); end;]
llSucces = goExecutor.oExecuta(lcSql)
* variabilele globale ale aplicatiei folosite de fluxul registratura
PUBLIC poReg, goRegistratura, podg_dg, podg_referinte, podg_obs, podg_link, goFundal
STORE '' TO poReg, goRegistratura
RETURN .T.