Vai al contenuto

COGX52 - Visualizzazione e Cancellazione Rilevazione Presenze

Scopo

Visualizza le rilevazioni di presenza dei tecnici (COGLOGTN) in un intervallo di date, con i dati derivati da giornaliero magazzino (COGDMRIG/COGDMTES), righe commesse (COGRIGCM) e anagrafiche collegate. Permette la cancellazione massiva delle rilevazioni filtrate, con propagazione sulle strutture collegate e rebuild finale degli indici.

Vendite > Commesse > Visualizzazioni > Visualizza e Cancella

File e tabelle

File Tipo Descrizione
FEURTAB Parametri File parametri di ambiente
COGLOGTN Indicizzato Log presenze tecnico (chiave 1 = tip+cod+data+ora; chia2 = data)
COGRIFER Indicizzato Anagrafica riferimenti (tecnici, "C")
COGTESCM Indicizzato Testate commesse (lettura descrizione breve)
COGSOTCM Indicizzato Sottocommesse
COGDMRIG Indicizzato Giornaliero magazzino, righe (cancellata/decrementata in canc)
COGDMTES Indicizzato Giornaliero magazzino, testate
COGCOMTN Indicizzato Tecnici per commessa (cancellazione)
COGRIGCM Indicizzato Righe commesse (chiave commessa+chia1)
COGMERCI Indicizzato Anagrafica merci (per classe merce e listino)
T-TAB1 File temporaneo Griglia di transito caricata da z-tab1-crea-transito

Copybook

File e select

  • feurtab.fd, cogfiles.cpy
  • cogx52.select, cogx52.fd, cogx52.wrk, cogx52.tm, cogx52.imppredf-wrk, cogx52.imppredf
  • cogx52-01.scr, cogx52.decla, cogx52.prc

Working-storage standard

  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy

Utility

  • wgrid.cpy, utilgdad.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utils93.cpy
  • utilu10.cpy, utilu20.cpy, utilu35w.cpy, utilimppredf.cpy, utildlg.cpy, utilncnf.cpy, utilgesdebug.cpy, utilcogl61.cpy
  • k-u10.cpy

Linkage

  • wcont.cpy, utilg32.cpy, utils01f.cpy, wcont1.cpy

Procedure finali

  • grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, gesdebug.cpy, coglogtn.k02, call-u35.cpy

CALL

Programma Scopo
GRIDADMN Gestione griglia (Prepara)
COGG32 Ricerca tecnico (call-g32-tcn-cod)
COGS01F Lettura listino fornitore (per merci classe "S")
COGL61 Prezzo acquisto generico (per merci non "S")
COGU10 Editing/cambio valute
W$MENU Pop-up menu griglia (right-click)
C$SYSTEM Esecuzione vutil per rebuild file
POPFILES Chiusura/riapertura file durante rebuild

Logica di elaborazione

  1. Inizializzazione (apri): apre file, costruisce pop-up menu (build-main-popup-tab1), pulsanti custom (bitmap "ricerca" per salva/cerca filtro), prepara griglia.
  2. Selezione filtri (a4 → accept a-tm-tcn-cod, a-tm-data-da, a-tm-data-a): tecnico via COGG32 + COGRIFER (tip="C"); data-da/data-a con validazione data-da <= data-a. Conferma con F3.
  3. Caricamento dati (a-leggi-datiz-tab1-crea-transitocaricamento-dati):
  4. Se tecnico vuoto/"0000000000": start su COGLOGTN chiave secondaria (data), fl-key=2
  5. Altrimenti start su chiave primaria con ltn-tcn-tip="C" + ltn-tcn-cod, fl-key=1
  6. Loop rdnxt-coglogtn finche' ltn-data <= tm-data-a; per ogni record carica-dati-sub-logtn:
    • decodifica tecnico (COGRIFER), commessa (COGTESCM), sottocommessa (COGSOTCM)
    • converte tempo in ore (w-tempo-hr = ltn-tempo / 60)
    • cerca riga giornaliero magazzino (G, sede az-main-mag, anno/num da data, riga ltn-dmr-doc-rig)
    • calcola costo via cerca-prezzo-for: se merce classe "S" usa COGS01F (listino 1), altrimenti COGL61
    • inserisce riga in T-TAB1 (z-tab1-inserisci-t-rec)
  7. Visualizzazione e ordinamento (a-grid-iniz-tab1-carica-tab): ordinamento iniziale fisso su gcn-r-data asc.
  8. Loop principale (a-grid / a-accept-grid):
  9. F4: cancella-dati (vedi sotto)
  10. F5: imposta w-fl-rebuild = yes
  11. Shift+F4: GRIDADMN admin
  12. Shift+F5: z-esporta-tab1 (export Excel)
  13. Right-click: pop-up menu via W$MENU
  14. Cancellazione massiva (cancella-daticanc-collegati):
  15. Scan COGLOGTN sull'intervallo (stessa logica di selezione)
  16. Per ogni record: cancella COGCOMTN, decrementa/cancella COGDMRIG (dmr-qta-doc -= w-tempo-hr), cancella/aggiorna COGRIGCM, cancella COGLOGTN; se nessuna riga COGDMRIG residua per la testata, cancella COGDMTES
  17. Setta w-fl-rebuild = yes
  18. Chiusura (z-chiudirebuild-dati):
  19. Se rebuild richiesto: chiude file via POPFILES, lancia vutil[32].exe -re -a su nf-name-137, 189, 190, 191, 192, 193 (COGLOGTN, COGCOMTN, COGDMRIG, COGDMTES, COGRIGCM, etc.), riapre file.

Struttura griglia di transito (T-TAB1)

Definita in cogx52.tm + utility utilcogl61.cpy; campi principali (record t-gor-r-rec): - data, tecnico (cod+des), commessa (tsc+des), sottocommessa (sot+des) - ora-ini, ora-fin, tempo (minuti), qta (ore), prezzo, valore, costo - merce (cm), um, contatto (cnt)

Note tecniche

  • Programma legacy con uso esteso di GO TO, PERFORM ... THRU. Aggregazione campi "x" (es. t-gor-r-data-x, t-gor-r-tcn-x) per visualizzare i valori solo al cambio rispetto alla riga precedente (raggruppamento visivo).
  • Salva/Cerca filtro predefinito tramite imppredf (al momento commentato in codice).
  • Cancellazione "soft" sui giornalieri: decrementa la quantita' e ricalcola valore/val-fifo; cancella la riga solo se qta-doc = 0.
  • Pricing fornitore: classe merce "S" → COGS01F listino 1; altre classi → COGL61 (richiesta solo prezzo acquisto).
  • Conversione divisa via COGU10 quando la valuta del listino non coincide con quella del giornaliero.