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
147 lines
6.1 KiB
Plaintext
147 lines
6.1 KiB
Plaintext
Procedure viz_registratura
|
|
|
|
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
|
|
lcSchema = [id_reg n(8), id_part n(10), denumire c(70), id_pers n(10), pers_contact c(70), data d, numar c(20), numar_intern c(20), data_intern d, ]+;
|
|
[descriere c(100), ie N(1), observatii M, ]+;
|
|
[id_fdoc n(5), fel_document c(30), id_mediu n(5), mediu_transmisie c(30), avizat n(1), ]+;
|
|
[util c(30), dataora t , ]+;
|
|
[utils c(30), dataoras t , ]+;
|
|
[util_avizat c(30), dataora_avizat t, are_obs N(1), are_link n(1), ]+;
|
|
[id_responsabil n(10), nresp c(70), nr_pag N(4), sters n(1),id_proiect n(10),proiect v(200)]
|
|
|
|
lcSelect = [select id_reg, id_part, denumire, id_pers, pers_contact, data, numar, numar_intern, data_intern, ]+;
|
|
[ descriere, ie, observatii, id_fdoc, fel_document, id_mediu, mediu_transmisie, avizat, ]+;
|
|
[ util, dataora, utils, dataoras, util_avizat, dataora_avizat, are_obs, are_link, id_responsabil, nresp, nr_pag, sters,id_proiect,proiect ]+;
|
|
[from vregistratura]
|
|
|
|
lcOrder = []
|
|
lcgroup = []
|
|
lcFiltru = [sters=0 and id_reg=(select max(id_reg) from vregistratura where sters=0)] && *!* 23.07.2026 MM - initial doar ultimul document (P4)
|
|
lcFiltruOriginal = []
|
|
llModParam = .T.
|
|
llAfiseaza = .F.
|
|
|
|
gencursor('poReg','cRegistratura', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
|
poReg.ca_baza1.afisare()
|
|
|
|
Endproc && viz_registratura
|
|
*!* ***-----------------------------------------------------------------------------------------------------------------------------
|
|
Procedure make_cursoare_reg
|
|
Parameters tlToate
|
|
&& imi creeaza cursoarele pt. modificare date generale contract
|
|
|
|
Local llToate && pt. toate contractele (folosesc la listare fisa contractului)
|
|
llToate = tlToate
|
|
|
|
DO make_crsAtasamente IN oproceduri_atasamente.prg
|
|
Do make_cRegReferinte
|
|
|
|
Endproc && make_cursoare_reg
|
|
*!* ***-----------------------------------------------------------------------------------------------------------------------------
|
|
*!* Procedure make_cRegLink
|
|
*!* Parameters tlToate
|
|
|
|
*!* Private poLink
|
|
*!* Store '' To poLink
|
|
|
|
*!* Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
|
|
*!* lcSchema = [id_link N(5), id_reg n(5), denumire_link c(50), link c(200), nume_fisier c(200), fisier w, dataora t, utilizator c(100) ]
|
|
|
|
*!* lcSelect = [select l.id_link, l.id_reg, l.denumire as denumire_link, l.link, l.nume_fisier , '' as fisier, ]+;
|
|
*!* [ l.dataora, u.utilizator ]+;
|
|
*!* [ from reg_linkuri l ]+;
|
|
*!* [ left join syn_vutilizatori u on l.id_util = u.id_util ]
|
|
|
|
*!* lcOrder = [l.nume_fisier, l.denumire]
|
|
*!* lcgroup = []
|
|
*!* lcFiltru = []
|
|
*!* lcFiltruOriginal = [l.sters=0 and l.nume_fisier is not null and l.id_reg =]+Alltrim(Str(goRegistratura.id_reg))
|
|
*!* llModParam = .T.
|
|
*!* llAfiseaza = .F.
|
|
|
|
*!* gencursor('poLink','cRegLink', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
|
*!* poLink.ca_baza1.afisare()
|
|
|
|
*!* Endproc && cRegLink
|
|
***-----------------------------------------------------------------------------------------------------------------------------
|
|
Procedure make_cRegReferinte
|
|
|
|
lcSel = [{call pack_registratura.caut_referinte(?goRegistratura.numar,?goRegistratura.Data,?goRegistratura.id_part)}]
|
|
lcCursor = 'cRegReferinte'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
If lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Return
|
|
Endif
|
|
|
|
Endproc && make_cRegReferinte
|
|
***-----------------------------------------------------------------------------------------------------------------------------
|
|
Procedure adauga_registratura
|
|
Parameters tcAlias, tnNumarIntern
|
|
|
|
Local lcAlias
|
|
lcAlias = tcAlias
|
|
|
|
Private pnId_reg, pnNumarIntern
|
|
Store 0 To pnId_reg
|
|
pnNumarIntern = tnNumarIntern
|
|
|
|
lcSql = [begin pack_registratura.adauga_registratura(?@pnId_reg, ?pnNumarIntern); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
|
|
If lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Return
|
|
Endif
|
|
|
|
Return pnId_reg
|
|
Endproc && adauga_registratura
|
|
***-----------------------------------------------------------------------------------------------------------------------------
|
|
Procedure modifica_reg_dg
|
|
Parameters toRegistratura
|
|
|
|
Local loRegistratura
|
|
loRegistratura = toRegistratura
|
|
|
|
*!* 23.07.2026 MM - garda partener NULL/empty (P2), functia intoarce .T./.F.
|
|
If Isnull(loRegistratura.id_part) Or Empty(loRegistratura.id_part)
|
|
AMESSAGEBOX("Alegeti partenerul inainte de salvare!",0+48,"Atentie")
|
|
Return .F.
|
|
Endif
|
|
|
|
Local lcId_reg, lcId_part, lcId_pers, lcData, lcNumar, lcData_intern, lcNumar_intern, lcDescriere, lcObservatii, lcIdUtil
|
|
Local lnSucces
|
|
lnSucces = -1
|
|
|
|
lcId_reg = Alltrim(Str(loRegistratura.id_reg))
|
|
lcId_part = Nvl(Alltrim(Str(loRegistratura.id_part)),'NULL')
|
|
lcId_pers = Nvl(Alltrim(Str(loRegistratura.id_pers)),'NULL')
|
|
lcId_responsabil = Nvl(Alltrim(Str(loRegistratura.id_responsabil)),'NULL')
|
|
lcData = Dtos(loRegistratura.Data)
|
|
lcNumar = Nvl(Alltrim(loRegistratura.numar),"")
|
|
lcData_intern = Dtos(loRegistratura.Data_intern)
|
|
lcNumar_intern = Nvl(Alltrim(loRegistratura.numar_intern),"")
|
|
lcIE = Nvl(Alltrim(Str(loRegistratura.ie)),'0')
|
|
lcDescriere = Nvl(Alltrim(loRegistratura.descriere),"")
|
|
lcObservatii = Nvl(Alltrim(loRegistratura.observatii)," ")
|
|
lcId_fdoc = Nvl(Alltrim(Str(loRegistratura.id_fdoc)),'NULL')
|
|
lcId_mediu = Nvl(Alltrim(Str(loRegistratura.id_mediu)),'NULL')
|
|
lcNr_pag = Nvl(Alltrim(Str(loRegistratura.nr_pag)),'NULL')
|
|
lcIdUtil = Alltrim(Str(gnIdUtil))
|
|
|
|
lcSql = [begin pack_registratura.modifica_registratura(] + lcId_reg + [,] + lcId_part + [,] + lcId_pers + [,] + lcId_responsabil + ;
|
|
[, TO_DATE(]+Iif(!Empty(lcData) And !Isnull(lcData),[']+lcData+['],[NULL])+[,'YYYY-MM-DD'),']+lcNumar + ;
|
|
[', TO_DATE(]+Iif(!Empty(lcData_intern) And !Isnull(lcData_intern),[']+lcData_intern+['],[NULL])+[,'YYYY-MM-DD'),']+lcNumar_intern + [',]+;
|
|
lcIE + [,'] + lcDescriere + [','] + lcObservatii + [',] + lcId_fdoc + [,] + lcId_mediu + [,] + lcNr_pag + [,] + lcIdUtil + [); end;]
|
|
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
|
|
If lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
Return (lnSucces >= 0)
|
|
Endproc && modifica_reg_dg
|
|
***-----------------------------------------------------------------------------------------------------------------------------
|
|
|