# Handoff: cercetare "ecran comenzi in luna curenta" (read-only) Sarcina: identificare ecran ROAAUTO pentru lista de comenzi (work orders) din luna curenta, la cererea team-lead. Cercetare READ-ONLY — nu s-a modificat niciun fisier din proiect. Toate constatarile au fost deja transmise integral catre `team-lead` prin doua mesaje SendMessage (cu citate exacte de cod si file:line). Acest fisier e doar predarea pe disc, conform REGULA ZERO — pentru cazul in care mesajele s-ar pierde. ## Stare: COMPLET pentru intrebarile puse pana acum (2 runde) Nu exista lucru neterminat, nu exista fisiere editate, nu exista tranzactii deschise, nu exista date de test consumate. Subagentul nu a scris/modificat cod. ## Inventar constatari (file:line) ### Runda 1 — identificarea ecranului - Punct de intrare: tile dashboard "Comenzi în luna curentă" - `Clase/ofundal_dev.vc2:266` — caption `Label_item1.Caption` - `Clase/ofundal_dev.vc2:681-682` — `DO vizualizare_comenzi IN oproceduri_vizualizare.prg` - Procedura care construieste cursorul: `Programe/oproceduri_vizualizare.prg:649-678` (`Procedure vizualizare_comenzi`), sursa = view Oracle `auto_normare_comenzi`, cursor `crscomenzi`, porneste cu `pcfiltru=[1=2]` (grid gol la deschidere), deschide formularul `frm_viz_comenzi`. - Filtrul real de "luna curenta" = `gcCondLuna`, aplicat in formular la `do_cauta` (`Clase/oviz_devize.vc2:15148`, clasa `frm_viz_comenzi` incepe la `:14503`). - `gcCondLuna` definit in `Programe/ovariabile_globale.prg:14-18` — NU e "creat luna asta", ci "luna de lucru curenta (gnLuna/gnAn) SAU comenzi mai vechi inca deschise/nefacturate/ nevalidate". - Coloane grid (13) + Oracle view sursa + lipsa camp manopera/piese calculat — detaliate in mesajul 1 catre team-lead. ### Runda 2 — detalii cerute explicit (puncte 1-4) 1. Grid `frm_viz_comenzi`: `Clase/oviz_devize.vc2:14745` (ADD OBJECT 'grdcomenzi', ColumnCount=13, RecordSource="crscomenzi"), coloane 1-13 la liniile 14760-14818, headere la 14827-14962. Coloana noua → extinde `ColumnCount` + bloc `ColumnN` acolo, plus camp adaugat in `pcschema`/`pcselect` din `oproceduri_vizualizare.prg:656-666`. 2. Preferinte grid per utilizator: mecanism `GridExtras` (`COMUN/utile/GridExtras/gridextras.vc2:337-1434`, clasa `gridextra`), instantiat ca `Gridextra1` (`Clase/oviz_devize.vc2:15065`), pornit din `Init` (`:15438-15441`) prin `this.gridextra1.setup()`. `restoregridpreferences` (`gridextras.vc2:1051`) si `savegridpreferences` (`:1130`) salveaza perechi `ColumnOrder,Width` **pozitional pe index de coloana** (nu pe nume/ControlSource) in `%APPDATA%\...\gridprefs.tmp`, cheie `SYS(1272, grid)`. Confirma capcana din `COMUN/docs/capcana_grid_preferinte_utilizator.md`: coloana noua trebuie adaugata la coada (ultimul index), nu in mijloc. 3. `gencursor()`: `COMUN/programe/gencursor.prg:1` — creeaza `NEWOBJECT('deca_baza')` + `.ADDOBJECT('ca_baza1','ca_baza')`. Clasa `ca_baza` (`COMUN/clase/decabaza.vc2:7`) e bazata pe `cursoradapter` (via `_cabase`/`_ca_base.vcx` — FetchSize nu am gasit sa fie suprascris explicit, ramane implicit din `_ca_base.vcx`, neverificat). `afisare()` (`decabaza.vc2:36-74`) taie SQL-ul de la `WHERE` incolo si il reconstruieste cu `cfiltru` curent — aici se inlocuieste `1=2` cu filtrul real. 4. Ecran cu coloanele `AUTO_ISTORIC_COMENZI` (VAL_MANOPERA_FACTURA etc.): DA, exista deja — `frm_istoric_comenzi` (`Clase/oviz_devize.vc2:9115-10506`), grid cu `ColumnCount=25`, coloanele 19-25 (`:9579-9622`) afiseaza exact `valctva_factura, val_manopera_factura, val_materiale_factura, val_materiale_ach, val_materiale_vz, ore_manopera, val_manopera`. Filtrul de luna NU e `gcCondLuna` — `do_cauta` (`:10190`) porneste cu `lcFiltru=[2=2]` (fara restrictie de luna), filtrare doar optionala prin checkbox-uri UI. ## Ce s-a stabilit deja (sa nu se reia) - Ecranul-tinta pt "comenzi in luna curenta" = `frm_viz_comenzi` (nu `frm_istoric_comenzi`, nu `vizualizare_manopera`). - Query-ul de baza si mecanismul de filtrare (gencursor + ca_baza.afisare) sunt clarificate, nu mai cauta SQL-ul de la zero. - Capcana pozitionala GridExtras e confirmata in cod, nu doar in doc. ## Interzis / neverificat - Nu am citit `_ca_base.vcx` — FetchSize exact al CursorAdapter-ului ramane neconfirmat daca devine relevant (ex. pentru performanta pe volum mare). - Nu am cautat DDL-ul view-urilor Oracle (`auto_normare_comenzi`, `auto_istoric_comenzi`) — nu exista in acest repo VFP; ar necesita acces Oracle (`roa-oracle-production-access`). ## Comanda de rulare teste N/A — sarcina a fost strict cercetare/cautare in cod, fara modificari, fara teste rulate.