sync SVN r18196
This commit is contained in:
72
docs/handoff_comenzi_luna_curenta.md
Normal file
72
docs/handoff_comenzi_luna_curenta.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user