- borderou si import eFactura: bifele de cautare arata numarul de documente in eticheta, inca
de la deschiderea ferestrei. Numararea se face local din cursorul deja adus cand nicio bifa
nu e bifata (cursorul e chiar setul de baza) si prin interogare doar cand o bifa e bifata,
ca sa nu apara interogari inutile. Latimile bifelor au fost marite: erau croite exact pe
textul original, iar " (N)" era taiat de marginea controlului.
- verificare cod fiscal: starea partenerului include "TVA la incasare", cu perioada in detalii;
sursa e ANAF live sau cache-ul ISTORIC_CODURI_FISCALE (ocautare.prg, validare.prg).
- modificare nota: lista de explicatii TVA se filtreaza dupa cota TVA a liniei curente
(omodificari.vc2, caut_explicatie_tva din oproceduri_comune.prg).
- istoric coduri fiscale: coloane nefolosite ascunse, adaugate cele venite de la ANAF
(TVA la incasare, split TVA, inactiv si perioadele aferente) - overificari.vc2.
- docs/scripturi-migrare-db.md: regulile de rulare manuala pe schema tinta si un pachet per script.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8Ham1HJ8BB2v9nbtWgdZq
oDateFactura.Init completa clientul de pe contract fara cod fiscal, spre
deosebire de ramura de comanda. Formularul de cerere date arata acum codul
fiscal si permite verificarea ANAF fara a intra in cautarea de client.
todos: punct 10 - integrare contracte in ROAFACTURARE.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HdKazj8DDksshTb2vB3gZz
- ooperatii_comune: verific_partener nu mai construieste SQL NULL cand contul
primit e NULL (EMPTY(.NULL.) e .F. in VFP)
- utile\context_watch.ps1 si utile\docs_revizie_check.ps1: masurarea contextului
sesiunii si cadenta reviziei de documentatie, prin hook-uri Claude Code
(instalare in docs\monitorizare-context.md)
- reguli_lucru: delegare la subagenti, modificari minime si scoped, scrierea si
revizuirea documentatiei, changelog strictul necesar (regulile 3, 6, 9, 11, 12)
- scripturi-migrare-db: continutul unui script (scoped, fara select, idempotent)
- teste noi pentru cele doua erori din achizitia de import
- restul documentatiei compactata, fara pierdere de reguli
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K
Nvl() evalueaza ambele argumente, deci .nume era citit chiar cand cursorul avea
doar denumire - eroare "Variable 'NUME' is not found". Inlocuit cu Iif() pe
Type() in Detalii si VerificaAlegere.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K
VERIFICARE_CIF salva a doua oara in istoric ceea ce traseul ANAF (SalveazaIstoricDinCursor) tocmai
salvase, cu alte valori pentru PLATITORTVAMFIN si DATATVAMFIN, deci o apasare pe verificarea ANAF
lasa doua randuri in ISTORIC_CODURI_FISCALE. Pe traseul ANAF a doua salvare nu se mai face; traseele
MFIN/VIES raman neschimbate. Partea de baza de date: co_2026_08_02_05_COMUN_PACK_ISTORIC_CF.sql (SVN r17942).
Formularul de verificare in masa foloseste azi numai serviciul web ANAF (chkANAF fortat pe .T. in
Init), deci antetele arata sursa corecta: "Platitor TVA ANAF", "Firma ANAF" si "Data verificata"
(coloana arata data pentru care s-a interogat, nu data luarii in evidenta TVA). In fereastra cu
istoricul unui cod fiscal, coloanele DATATVAMFIN si PLATITORTVAMFIN sunt ascunse - dupa modificarea
din pachet raman inghetate.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018LkXBVHUNkb7Quq36TfQcs
Dupa fuziunea istoricelor de coduri fiscale, ID-ul nu mai urmeaza ordinea cronologica,
deci row_number() ordonat pe id putea intoarce un rand vechi ca stare curenta.
Ordonarea trece pe dataorav_anaf desc, cu id desc ca departajare.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014sKVgMkowK4HpbFxBQVM22
caut_partener primeste tlVerificaANAF/tdDataDoc (acelasi bloc ca la caut_parteneri) si citeste
tip_persoana din vnom_parteneri, ca banda de stare sa distinga CNP de CIF, nu dupa lungimea codului.
Apelanti pe documente: factura si partenerul DVI din achizitia de import (data din formular,
dDataAct), furnizorul de la finalizarea NIR-ului (data cade pe poAct.dataact) si schimbarea
furnizorului pe rulaj.
verific_partener si verificare_note_contabile (ooperatii_comune.prg) cer verificarea si cand
completeaza partenerul lipsa pe cont, la salvarea documentului.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K
Lotul ramas pentru ANAF se construia cu un Scan fara filtru pe cui_n, deci codurile
care nu sunt CUI RO valid (cod gol, alta tara, peste 10 cifre) erau retrimise la fiecare
rulare - fereastra arata "Verific codurile fiscale 1..16 / 16" desi cele 903 coduri reale
veneau din cache, iar cererea plecata spre ANAF era goala: {"cui":0} -> 404.
- lotul ramas: Scan For cui_n <> 0.
- NormalizeazaCoduriCursor: cui_n se completeaza doar daca trece si algoritmul cifrei de
control (VerificareCod.VALIDARE_CIF), nu doar tara RO / numai cifre / maxim 10 caractere;
plus Val() <> 0, ca un cod de zerouri sa nu ajunga la ANAF drept cui:0. VALIDARE_CIF nu
s-a atins, e doar apelata.
- ANAF_SincronWebService_PlatitorTva: acelasi filtru la compunerea cererii (cele doua
trebuie sa ramana identice) si LOOP cand grupul nu are niciun CUI valid, deci fara
cerere HTTP goala.
Verificat: compilare curata; test headless pe NormalizeazaCoduriCursor (RO7320118, 7320118,
RO25501, "RO 1879855" trec; 7320119 cu cifra de control gresita, 0, cod gol, BG123456789,
CNP de 13 cifre sunt excluse). Fara fals-pozitive pe date reale: toate cele 903 coduri
confirmate de ANAF pe ROMFAST trec algoritmul.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JCzVWfqscv1xyo5uvJiWiW
Verificarea "in masa" (VerificaListaCIF ... 'MASA') pica pe ORA-01795 peste 1000
de coduri, iar esecul trimitea tot lotul la ANAF, cu pauze de o secunda la fiecare
100 de coduri. Pe langa asta, fiecare rand servit din cache era salvat inapoi in
istoric si logat separat.
- programe/validare.prg: CitesteIstoricPentruCoduri citeste pe transe de maxim
1000 de coduri legate cu OR in aceeasi interogare (fara obiecte noi in baza,
compatibil cu Oracle 10g); plasa de siguranta cere codurile neacoperite o
singura data, nu cod cu cod; SalveazaIstoricDinCursor sare peste randurile cu
sursa CACHE*; bucla de log per rand devine o singura linie cu totalul.
- clase/overificari.vc2: completarea tabelului de parteneri foloseste index pe
codul normalizat si SEEK in loc de LOCATE cu UDF (era patratic).
- utile/Teste/cache_anaf/: harness-uri de masurare si non-regresie pentru
timpii de mai jos.
Masurat pe MARIUSM_AUTO, cu ANAF blocat: 1000 de coduri 5,1 s -> 0,318 s;
1001 coduri 16,6 s cu ORA-01795 -> 0,553 s fara eroare; 3000 de coduri 1,565 s;
200 de coduri din cache 3,93 s -> 0,05 s, cu 0 randuri noi in istoric;
completarea tabelului pentru 2000 de parteneri 11,97 s -> 0,028 s.
Randurile intoarse si verdictele raman identice.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JCzVWfqscv1xyo5uvJiWiW
Verificarile de partener nu mai depind exclusiv de raspunsul ANAF: se citeste
intai cache-ul din ISTORIC_CODURI_FISCALE (mutat in CONTAFIN_ORACLE), cu
provenienta afisata pe ecrane (sursa / data_sursa) si cu plasa de siguranta
cand ANAF tace. Ordinea cache/ANAF e configurabila; cache-ul expira.
- programe/validare.prg: verificare single si pe loturi peste cache, contract
404 separat de caderea de serviciu, expirarea cache-ului, corectii la
verdictul pe firma si la etichetarea CACHE_INDISP.
- programe/ocautare.prg: plasa de siguranta si banda de provenienta la cautarea
de partener.
- programe/oproceduri_comune.prg: VERIFICA_RTVAI_DATA citeste si cache-ul.
- clase/overificari.vc2: propagarea provenientei in interfata.
- utile/Teste/: harness-uri de testare headless - echivalenta cache/ANAF pe 200
de coduri reale, marginile pe inactiv si TVA la incasare, mock batch ANAF,
baseline D394 si sondele de diagnostic ANAF.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JCzVWfqscv1xyo5uvJiWiW
- TVA-ul de pe DVI poate avea valuta si curs proprii, diferite de ale facturii
(rand "protejat": rand_dvi/valuta_proprie pe introdc, sparge_tva_protejat).
- Discount financiar pe factura: rand tip_rand='G' (401 = 767), TVA calculat pe
baza diminuata, marfa si preturile articolelor pe valoarea integrala.
- Factura multi-cota: randurile S, G si T se sparg pe cotele articolelor, cu
explicatia TVA din familia coloanei si alinierea T -> S.
- Teste noi in utile/Teste/achizitie_import (discount, DVI, cote, e2e).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U9uDgDfUQXbh2Neib36CN8
Pe toate cele trei pagini (Facturi emise, Primite, Trimise) doua bife noi, colorate
ca randurile pe care le filtreaza: turcuaz "Cu diferente Reg. TVA" (jtotctva
completat, dar diferenta peste 0,15 lei sau eFactura in valuta) si gri "Lipsa din
Reg. TVA" (jtotctva null). Bifate impreuna se aduna cu OR.
Culorile din grid: gri = nu e in registru, turcuaz = diferenta peste 0,15 lei sau
necalculabila, alb = se potriveste. Expresia DynamicBackColor e sparta in doua
siruri, VFP nu accepta constante peste 255 caractere.
diferenta ramane NULL cand jtotctva e NULL (nu 0 fals), la fel ca la facturile
primite/trimise; jtotctva si diferenta sunt acum nullable in cursorul de facturi
emise.
Corectat lcFiltru3, care se construia din lcFiltru2 si pierdea conditiile paginii.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FW7zDopcHo2fHq5L53MjMM
Galbenul de la randurile cu diferenta fata de Registrul TVA devine turcoaz in borderou,
ca sa insemne acelasi lucru in ambele ferestre: gri = factura nu e in registru,
turcoaz = e in registru dar valoarea difera cu peste 0.15 lei ori nu se poate compara
(factura in valuta), alb = se potriveste.
Importul preia regulile corectate ieri in borderou: diferenta ramane goala cand factura
nu e in registru sau e in valuta si tine cont de semnul notei de credit, iar jtotctva si
diferenta se declara nullable in cursor (altfel NULL devine 0 si gri-ul nu mai apare).
Pana acum importul colora orice diferenta de un ban si dadea turcoaz fals pe notele de
credit si pe facturile in valuta.
Filtrul initial al cursorului din fereastra de import compara data_act cu un interval
[prima zi a lunii, prima zi a lunii urmatoare) in loc de extract(year/month from data_act),
deci poate folosi IDX_ANAF_EFACTURA_1(FACTURA_EMISA, XDATA_ACT, DATA_RASPUNS). Filtrul
rula la fiecare deschidere a ferestrei, nu era amanat ca la borderou.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FW7zDopcHo2fHq5L53MjMM
Potrivirea pe numar compara nract cu grupurile de cifre extrase din xnumar_act,
in loc sa aplice un regex peste nract. Predicatul devine sargabil, deci foloseste
IDX_JC2007_003/IDX_JV2007_003 in loc sa scaneze toata luna din jurnal pentru
fiecare factura: borderoul de facturi trimise trece de la 97 de secunde la sub una
(masurat pe o firma cu 6006 facturi si 6466 randuri in jurnal).
Rezerva pe suma egala se pastreaza, dar in view se leaga prin COALESCE, nu prin OR:
se evalueaza doar pentru facturile pe care numarul nu le-a gasit. Legata prin OR,
potrivea nediferentiat orice document cu aceeasi suma la acelasi partener in aceeasi
zi - pana la 49 de documente pentru o factura - si afisa o "Diferenta" gresita.
jcnt si coloana "Pot." se elimina: dupa corectarea potrivirii numarul de documente
potrivite e practic intotdeauna 1, iar starea "nu e in registru" se citeste din
jtotctva IS NULL. jtotctva se declara nullable in cursor, altfel NULL-ul devine 0 si
randurile fara potrivire nu s-ar mai colora.
Pragul de la care un rand devine galben urca de la 0.01 la 0.15 lei: la 0.01 ieseau
841 de randuri galbene din 6006, toate diferente de rotunjire sub 0.11 lei.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FW7zDopcHo2fHq5L53MjMM
Dialogul din Initializari > Optiuni utilizator arata separat setarea
utilizatorului curent, setarea firmei, implicitul programului si starea
de pe calculator. Butonul "Nu" sterge setarea proprie (DELETE in
OPTIUNI_UTIL + reincarcarea cursorului), ca utilizatorul sa revina la
setarea firmei sau la implicit; setarea firmei nu se modifica de aici.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti
vizeFactura (anaf_efactura.prg), facturi primite: expresia diferentei scade jtva_ti din
jtotctva, ca la ecranul de import. Borderoul era ecranul din changelog, dar r17913 modificase
doar vizImportEFactura.
Scoate si sonda pe user_tab_columns din import_efactura.prg: versiune_db.txt este
2026_07_28_01 (exact scriptul care adauga jtva_ti), iar pack_migrare.VerificaVersiune nu lasa
programul sa porneasca pe o baza mai veche, deci coloana exista sigur.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti
SufixPerioadaTVA lipea intervalul direct dupa verdict ("Neplatitor TVA
05/07/2002 - 18/04/2012"), ceea ce se citea ca perioada in care partenerul NU a
fost platitor - exact pe dos. Eticheta spune acum ce reprezinta: "inregistrat TVA
<de la> - <pana la>", respectiv "cod TVA anulat din <data>". Detaliile F4 arata
perioada si in ramurile "Nu exista partener cu CUI ..." si "Nu s-a putut citi
lista de parteneri", unde lipsea - adica tocmai in cazul in care utilizatorul
n-avea de unde sa afle ce inseamna datele din banda de stare.
ANAF_ComutaVerificare afisa un mesaj informativ si apoi cerea neconditionat
valoarea noua, propunand valoarea curenta. Cand verificarea era oprita local din
settings.ini, valoarea propusa era 0, iar un Enter reflex o salva ca optiune de
utilizator - ceea ce transforma tacut o oprire locala in oprire pe orice
calculator. Mesajul intreaba acum Da/Nu si propune 9 (oprire locala) in loc de 0.
reguli_lucru.md pct. 2: istoricul modificarilor sta doar in antetul fisierului,
la fel in .prg si in package-urile/procedurile PL/SQL Oracle; in corpul codului
doar comentarii functionale, niciodata data/autor/"am modificat".
Adaugat docs/sold-neexigibil-reportat-jc2007-jv2007.md: jc2007/jv2007 tin o linie
per factura PER PERIOADA (soldul neexigibil se reporteaza lunar), deci orice
interogare pe sold se filtreaza pe an/luna.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti
Expresia diferentei scade jtva_ti din jtotctva pentru facturile primite. Sonda pe user_tab_columns
inainte de construirea SELECT-ului, ca borderoul sa se deschida si daca migrarea DB nu a ajuns inca
la client. lcSchema (schema pozitionala) neatinsa.
SVN r17913; script DB in DATABASE r17912.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti
L1: perioada de TVA (inceput, sfarsit, anulare din oficiu) si mesajul ANAF integral propagate din
cursor pana in banda si in dialogul F4. Banda arata data doar la discordanta, anulare sau perioada
incheiata; F4 o arata intotdeauna.
L2: clasele de esec CNP si COD_INVALID au text propriu in F4, in loc de mesajul fals
'ANAF nu a raspuns'. Garda Vartype pe parametrul nou tnTipPersoana pentru apelantii cu vechea
semnatura (fisier partajat de ROACONT/ROAGEST/ROAFACTURARE).
SVN r17910.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti
Serviciul ANAF intoarce HTTP 404 cu corp complet pentru codurile inexistente
({"found":[],"notFound":[...]}), iar wrapper-ul citea corpul doar pe 200 - deci
verdictul "cod inexistent" nu aparea niciodata. Corpul se citeste acum la orice
status, iar verdictul se da doar cand notFound contine chiar codul interogat;
orice alt corp neinteles inseamna "nu a raspuns", nu acuzatie.
Timeout-uri reale pe apelurile web (2/2/3/3): garda Pemstatus din jurul lui
SetTimeouts intoarce .F. pe obiectul COM legat tarziu, deci timeout-urile nu se
aplicau, iar o gazda care inghite pachetele bloca interfata ~21 s per rand.
Aceleasi timeout-uri si pe drumul batch. Fallback-ul Microsoft.XMLHTTP, fara
timeout, a fost scos de pe calea single.
Cand serviciul nu raspunde, verificarile se opresc 10 minute si banda arata ca
au fost sarite, in loc sa taca. La deschiderea formularului pleaca o sonda
asincrona de disponibilitate, cu termen de viata, guard de reintrare si Abort()
la inchidere; randul care asteapta verdictul nu face apel propriu. Cache doar pe
rezultate pozitive. Codul fiscal nenumeric primeste mesaj propriu, in banda si
in detaliile F4.
ParseJsonANAFv8 restaureaza formatul datei si pe calea de eroare (o exceptie
lasa toata sesiunea pe YMD).
Teste: suita headless 70/70, cu sonda si clasele de esec mock-uite (fara retea)
si fixture peste corpurile 404 masurate pe serviciul real.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti
ocautare.prg - miezul functionalitatii:
- anaf_verif_cautare: verdictul ANAF pe randul curent din formularul de cautare
(label sub grid), la data documentului; discordantele si codurile fiscale invalide
cu rosu; F4 sau click deschide detaliile.
- ANAF_StarePartener, cu cache pe sesiune, excludere parteneri externi si persoane
fizice; ANAF_ValidareCod pentru CIF/CNP.
- ANAF_NivelVerificare: cascada RC_ANAF_VERIF_SELECTIE (kill-switch settings.ini >
optiuni utilizator > optiuni firma > implicit 1), cu cache invalidat la schimbarea
firmei sau utilizatorului; ANAF_ComutaVerificare pentru punctul de meniu.
- Detalii: alegerea variantei corecte de partener din perechea RO / fara RO, cu
discriminator "are documente in perioada"; dupa Da sau Nu se inchide cautarea si
se revine in formular cu partenerul ales (AplicaInlocuirePartenerANAF).
- ANAF_CaData: data documentului poate veni si ca DateTime (tact.dataact).
- Banda proprie sub grid pentru label: formularul creste cu 54, gridul isi pierde
ancorarea de jos si primeste inaltimea din AjusteazaBanda, legata de Resize si
Activate - formularul isi reaseaza gridul dupa Show, deci Activate e momentul util.
validare.prg: ANAF_VerificaCuiSingle, wrapper single-CUI peste serviciul ANAF, cu
data verificarii si o singura eroare logata pe sesiune.
cauta_alfa.prg: hook generic - ataseaza poVerifAlegere pe formularul de cautare
inainte de Show si il detaseaza dupa.
Apelanti opt-in (lVerificaANAF): baza.vc2 (lookup-ul generic de partener din
formularele actbaza/actbaza2007 lansate din meniuri), onote_contabile.vc2 (partener
debit/credit), omodificari.vc2 (do_cauta din cele trei clase de modificare, cu data
notei), ofacturare.vc2 (client, furnizor). Casa/banca ramane in afara: acolo partenerul
se alege pentru imperecherea facturilor.
cauta_alfa_forms.vc2: F4 deschide detaliile, iar terminarea cautarii trece prin
VerificaAlegere.
Teste: suita headless pentru fluxul de verificare (utile/Teste/partener_anaf/), cu
mock pentru apelul ANAF si pentru dialoguri.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019H3r66sVojGhgaKq5niu1u
AnafeFacturaServer.ImportZipLocal (programe/anaf_efactura.prg): dezarhiveaza
arhiva aleasa de utilizator, ia xml-ul facturii (ignora semnatura MFinante),
ParseEFactura, decide FACTURA PRIMITA/TRIMISA dupa codul fiscal al firmei
curente, copiaza arhiva in directorul local de raspunsuri si scrie in Oracle
prin acelasi lant ca descarcarea din SPV (cursor temporar canaf_efactura_temp
+ cUpdateFactura + UpdateDb -> pack_anaf.AdaugaRaspunsFactura si
anaf_efactura_detalii). Fara SQL scris de mana si fara duplicarea maparii de
campuri.
clase/anaf_efactura.vcx (clasa anaf_efactura, metoda citesteraspunsuri):
optiunea 8 in meniul butonului "Raspunsuri" - "Import arhiva zip de pe disc...".
Necesar cand mesajul nu mai e in lista de raspunsuri ANAF (expira dupa 60 zile)
si factura primita nu a ajuns in borderou.
Testare (CENTRAL/MARIUSM_AUTO, ianuarie 2026, 12 PASS / 0 FAIL):
utile/Teste/efactura_import/ - garda pe cod fiscal, import complet cu verificarea
campurilor si a liniilor in anaf_efactura_detalii, factura vizibila in grila reala
"Facturi primite in SPV".
utile/Teste/test_init_env_auto.prg: adauga goFirma.codfiscalfro ca in start_firma
(ostartfirma.prg) - proprietatea nu e coloana in v_firme, iar fara ea orice cod
care o citeste nepazit crapa in mediul headless.
docs/depanare_testare_vfp.md: verificarea de sintaxa prin compilare headless
(config.fpw cu SAFETY=OFF, copie in scratchpad) si capcana literalelor string
mai lungi de 255 de caractere (eroare de compilare, nu de runtime).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RqJ7D5ftMbChDyz5mpVkCd
Permite editarea celor 3 explicatii pe fiecare rand in grila apelantului
(ROACONT frm_introd_compact2007). Strict aditiv: 3 campuri in plus in
cursor, restul comportamentului neschimbat pentru celelalte produse ROA.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015DQoCUF3QSCgQCwCBK1qbz