Files
roaauto/docs/handoff_comenzi_luna_curenta.md
2026-09-22 19:43:55 +03:00

4.6 KiB

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.