Files
comun/utile/Teste/optiuni_test.prg
Marius Mutu 940bb39701 Import eFactura in lot: borderou cu ce lipseste, coada de contabilizare, alegerea contului
Borderoul tine per factura ce mai are de completat si daca are articole de gestiune
(camp gest, coloana si filtru), coada contabilizeaza in serie facturile bifate si
incheie cu un rezumat, iar contul de furnizor/client se alege din planul de conturi.
Cheia normalizata de articol, rezolvarea automata a partenerului si anularea in bloc
intra tot aici. Pozitia in lista se pastreaza peste reaplicarea filtrului.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aroafxp4z8bmM5oVECZRXY
2026-09-09 22:06:48 +03:00

78 lines
2.8 KiB
Plaintext

* optiuni_test.prg
* Salvarea si restaurarea randurilor din OPTIUNI atinse de teste. Testele scriu si sterg optiuni
* reale pe schema de test; fara restaurare, schema ramane fara ele si aplicatia porneste dupa
* comportamentul implicit.
* SalveazaOptiuni('A,B') la inceputul testului, RestaureazaOptiuni() la final: optiunile care
* existau isi recapata valoarea, tipul si descrierea; cele create de test se sterg.
PROCEDURE SalveazaOptiuni
LPARAMETERS tcListaVarname
IF TYPE('gcOptiuniTestIn') <> 'C'
PUBLIC gcOptiuniTestIn
ENDIF
gcOptiuniTestIn = "'" + STRTRAN(STRTRAN(UPPER(ALLTRIM(m.tcListaVarname)), ' ', ''), ',', "','") + "'"
IF USED('crsOptTestSalvate')
USE IN (SELECT('crsOptTestSalvate'))
ENDIF
goExecutor.oExecuta("select varname, vartype, program, varvalue, vardesc from optiuni" + ;
" where varname in (" + m.gcOptiuniTestIn + ")", 'crsOptTestBrut')
IF !USED('crsOptTestBrut')
RETURN
ENDIF
SELECT * FROM crsOptTestBrut INTO CURSOR crsOptTestSalvate READWRITE
USE IN (SELECT('crsOptTestBrut'))
ENDPROC
**********************************************************
PROCEDURE RestaureazaOptiuni
LOCAL lnSel, lcNume, lcExistente, lnCount
IF TYPE('gcOptiuniTestIn') <> 'C' OR !USED('crsOptTestSalvate')
RETURN
ENDIF
lnSel = SELECT()
lcExistente = ''
SELECT crsOptTestSalvate
SCAN
lcNume = UPPER(ALLTRIM(NVL(crsOptTestSalvate.varname, '')))
IF EMPTY(m.lcNume)
LOOP
ENDIF
lcExistente = m.lcExistente + IIF(EMPTY(m.lcExistente), '', ',') + "'" + m.lcNume + "'"
lnCount = 0
goExecutor.oSelecteaza2Value("select count(*) from optiuni where varname = '" + m.lcNume + "'", @lnCount)
IF NVL(m.lnCount, 0) > 0
goExecutor.oExecuta("update optiuni set vartype = " + SqlLit(crsOptTestSalvate.vartype) + ;
", program = " + SqlLit(crsOptTestSalvate.program) + ;
", varvalue = " + SqlLit(crsOptTestSalvate.varvalue) + ;
", vardesc = " + SqlLit(crsOptTestSalvate.vardesc) + ;
" where varname = '" + m.lcNume + "'")
ELSE
goExecutor.oExecuta("insert into optiuni (varname, vartype, program, varvalue, vardesc) values ('" + ;
m.lcNume + "', " + SqlLit(crsOptTestSalvate.vartype) + ", " + SqlLit(crsOptTestSalvate.program) + ;
", " + SqlLit(crsOptTestSalvate.varvalue) + ", " + SqlLit(crsOptTestSalvate.vardesc) + ")")
ENDIF
ENDSCAN
* optiunile cerute care lipseau inainte de test au fost create de el
goExecutor.oExecuta("delete from optiuni where varname in (" + m.gcOptiuniTestIn + ")" + ;
IIF(EMPTY(m.lcExistente), '', " and varname not in (" + m.lcExistente + ")"))
goExecutor.oExecuta('COMMIT')
SELECT (m.lnSel)
actualizeaza_optiuni()
ENDPROC
**********************************************************
FUNCTION SqlLit
LPARAMETERS tuValoare
IF ISNULL(m.tuValoare) OR EMPTY(NVL(m.tuValoare, ''))
RETURN 'null'
ENDIF
RETURN "'" + STRTRAN(ALLTRIM(m.tuValoare), "'", "''") + "'"
ENDFUNC