Files
roaauto/docs/flux-vizualizare-comenzi.md
Marius Mutu 395e51e5bb sync SVN r18197
ROAAUTO 2.5.6: Vizualizare comenzi unificata cu Istoric comenzi (filtre si coloane noi), coloane manopera/materiale si total fara/cu TVA in vizualizare comenzi si facturi; versiune_db 2026_09_23_01.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cfkx1QfeDv987o8x1rAtrr
2026-09-23 22:13:59 +03:00

66 lines
4.2 KiB
Markdown

# Flux: ecranul „Vizualizare comenzi" (unificat: luna curenta + istoric)
## Lanț
- `Programe/oproceduri_vizualizare.prg:651` `Procedure vizualizare_comenzi` `Lparameters tlIstoric`
(`:652`) — **o singura procedura pentru ambele tile-uri**, nu doua separate. `pcschema`/`pcselect`
(`:658-667`) pe `auto_istoric_comenzi a`, cu **+6 campuri** fata de forma veche: `asigurator`,
`marca`, `masina`, `inspector`, `nr_dosar`, `inchis_fortat`. `pcorder = a.datai,a.nrord` (`:674`).
- **Capcană**: `pcfiltru = [1=2]` (`:672`) — cursorul `crscomenzi` se deschide **gol**; gridul se
populează abia la căutarea din formular. Neschimbat fata de forma veche.
- `gencursor('pocomenzi','crscomenzi',...)` (`:676`) → `pocomenzi.ca_baza1.afisare()` (`:677`) →
`Createobject('frm_viz_comenzi', m.tlIstoric)` (`:679`) → `.Show(1)` (`:680`).
- Tile-uri (`Clase/ofundal_dev.vc2`): `Page2.Cw4.do_actiune` (`:681`) `DO vizualizare_comenzi ...
WITH .F.` (`nid_cw=5`, luna curenta), `Page2.Cw5.do_actiune` (`:685`) `WITH .T.` (`nid_cw=6`,
istoric). Drepturile pe cele doua tile-uri raman separate (nid_cw diferit).
- Formular: `Clase/oviz_devize.vc2:14503` (`DEFINE CLASS frm_viz_comenzi`). Proprietate `lIstoric`
(`*p: listoric`, `:14590`), primita in `Init(tlIstoric)` — controleaza titlul (ISTORIC /
VIZUALIZARE COMENZI) si filtrul de mai jos.
- `frm_viz_comenzi.do_cauta` (`Clase/oviz_devize.vc2:15667`) — **aici** se bifurca cele doua moduri
si se construieste filtrul real:
- `lcFiltru = Iif(Thisform.lIstoric, [2=2], gcCondLuna)` (`:15679`) — istoricul vede tot, modul
"luna curenta" ramane limitat la `gcCondLuna`;
- + filtrele bifate: `ck_datai` (`:15681`), `ck_nrinmat` (`:15685`), `ck_nrord` (`:15689`),
`ck_nume` (`:15693`), `ck_asigurator` (`:15697`), `ck_inspector` (`:15701`), `ck_nr_dosar`
(`:15705`), `ck_series` (`:15709`), `ck_referinta` (`:15738`) — **ultimii 4 (asigurator,
inspector, nr_dosar, referinta) sunt noi**, nu existau in forma veche de "luna curenta";
- + `and a.id_tip = ...` dacă s-a ales un tip (`:15713`);
- + `and a.validat = 0/1` după `cbValidat` (`:15718-15722`);
- + `and a.inchis_fortat = 0/1` după `cbArhivat` (`:15724-15729`);
- apoi `Thisform.actualizeaza_grid1(lcFiltru)`.
- `actualizeaza_grid1` — pune `pocomenzi.ca_baza1.cfiltru`, reapelă `afisare()`, cu `save_grid` /
`restore_grid`.
- Coloane noi, adaugate **la coada** grid-ului (`Column22-27`, `:15021-15054`): `cAsigurator`,
`cMarca`, `cMasina`, `cInspector`, `cNr_dosar`, `cArhivat` (`IIF(inchis_fortat=1,'Da','Nu')`).
- `Cmd_sterge1`/`do_sterge` exista in clasa (`:14858`, `:15982`) dar `Visible = .F.` (`:14865`) —
butonul de stergere ramane ascuns, ca in fosta forma de istoric; activarea lui e o decizie
separata, netratata de unificare.
## Capcană: forma unificata e deschisa de `vizualizare_comenzi`, nu de `vizualizare_ist_comenzi`
`vizualizare_ist_comenzi` (`Programe/oproceduri_vizualizare.prg:445`) si clasa
`frm_istoric_comenzi` **raman inca in cod dar nu mai sunt apelate din niciun tile** — cautarea unei
proceduri "de istoric" dupa nume duce la codul gresit. Cod mort, de sters.
## Valorile implicite ale combo-urilor (contează la orice măsurătoare)
| combo | implicit | efect în `do_cauta` |
|---|---|---|
| `cbArhivat` | `"Active"` (`Clase/oviz_devize.vc2:14453`) | mereu `and a.inchis_fortat = 0` (`:15726`) |
| `cbValidat` | `"<Toate>"` (`:14471`) | nimic |
| `cbtip_deviz` | `"<Toate tipurile>"` (`:65`, clasa `ctip_deviz`) | nimic |
## Ecranul pereche „Vizualizare facturi"
- `Programe/oproceduri_vizualizare.prg:231` `Procedure vizualizare_facturi` — sursa
`auto_facturi_emise a` (`:247`); `pcFiltru = [1=2]` (`:253`), deci din nou cursor gol.
- Filtrul real e în `frm_viz_facturi.do_cauta` (`Clase/oviz_devize.vc2:17795`) și **nu** folosește
`gcCondLuna` (linia e comentată la `:17800`), ci `extract(month from dataact)=gnLuna` +
`extract(year from dataact)=gnAn` (`:17799`) + checkbox-uri; `actualizeaza_grid1` (`:17837`).
- Formular: `Clase/oviz_devize.vc2:16936` (`DEFINE CLASS frm_viz_facturi`).
## Editare de grid
- Coloane noi **doar la coadă** — preferințele de grid (`gridprefs.tmp` din GridExtras) se aplică
pozițional; o coloană inserată la mijloc mută toate preferințele salvate.