Vai al contenuto

COGF70 - Controllo Trasporti

Sorgente: cbl/cogf70.cbl | Program-ID: COGF70 | Tipo: Consultazione/stampa con parametri di selezione e griglia paginata

Menu: Vendite > Ristorni > Controllo Trasporti


Scopo

Estrae, visualizza e stampa i movimenti (bolle) su cui e' addebitato un costo di trasporto, ai fini del controllo dei ristorni. Per un intervallo di date ed eventualmente un singolo cliente/vettore, scandisce le testate bolle marcate come "trasporto" (tes-fl-tra = "S"), recupera il costo del trasporto dalla tabella trasporti (COGTRASP), risolve il riferimento fattura (COGRACCO -> COGFATTU) e presenta i dati in griglia raggruppati per cliente con totali. Supporta stampa e esportazione Excel.

Gli importi sono espressi nella divisa di conto e formattati tramite COGU10W.


Struttura della maschera

Screen definita in cogf70-01.scr. Due fasi: parametri e griglia paginata (e-tm-tab, ID k-id-grid).

Fase parametri (campi tab-maschera)

Campo Descrizione
tm-tra-vet / tm-nome Codice e nome cliente/vettore (COGS65W; 0 = tutti i clienti)
tm-da-data / tm-a-data Intervallo date (COGS52)
tm-divisa Divisa (impostata alla divisa di conto)
tm-totale Totale trasporti (read-only, formattato via COGU10W)

Sequenza accept: a-tm-tra-vet -> a-tm-da-data -> a-tm-a-data -> a-richiesta-conferma.

Fase griglia (array tm-ele, max k-max-ele-tab = 100)

Colonne (record grid-record): data bolla, cliente, bolla (mag/anno/tipo/numero), riferimento fattura, importo trasporto, flag accantonamento (fl-acc). Righe di rottura "Totale cliente" (identificate da tm-mm = 99).

Griglia paginata (z-99-accept-paged-grid) con Pag+/Pag- su file di transito indicizzato. Tasti funzione: F3 conferma, F9 stampa (COGS54), S-F4 griglia, S-F5 esporta Excel, F8 aiuto/calendario, F2 campo precedente.


Logica di elaborazione

Apertura (apri): init, lettura azienda, apertura file, lettura divisa di conto (get-divisa-conto). Attiva i tasti funzione. Crea il file di transito indicizzato cogtrans con nome #$COGF70.<operatore> in temp-dir; se apertura in output fallisce (stato non 00) segnala "Funzione gia' in uso dall'operatore".

Reset (a4): svuota la griglia, imposta il periodo di default (1/1 - 31/12 dell'anno corrente), la divisa di conto e azzera il totale.

Estrazione (a-ricerca): scandisce COGTESBO per data (chiave 2) nell'intervallo tm-da-data..tm-a-data. Per ogni testata: - ammette solo movimenti verso cliente (tes-tipocf = "C") marcati trasporto (tes-fl-tra = "S"); - se filtrato per vettore, richiede tm-tra-vet = tes-nonno; - legge il costo trasporto da COGTRASP (rd-cogtrasp, tes-chia3); - il primo trasporto del vettore viene lasciato a costo zero (regola commentata nel sorgente); - risolve il nome cliente (COGGEANA), imposta la divisa di conto e cerca il riferimento fattura (search-fattu); - scrive il record su cogtrans (wr-cogtrans) e aggiorna/scrive un record di totale per vettore (chiave con trs-data = 99999999).

Riferimento fattura (search-fattu): da COGRACCO (chiave 2 per bolla) ricava tipo/anno/numero fattura, il nome intestatario (COGGEANA) e, da COGFATTU, la descrizione pagamento/Ri.Ba. (COGU22, sendu22.cpy).

Griglia (carica-tab / a-grid): carica una pagina dal file di transito (x-spaginamento-start -> rst-not-less) e la costruisce via GRIDADMN. Le righe con tm-mm = 99 diventano righe "Totale cliente". Pag+/Pag- ripaginano (pg-after-pg-dwn / pg-after-pg-up), S-F5 esporta Excel, F9 stampa.

Stampa (stampa): dialogo COGS54, poi scan completo di cogtrans con testata di pagina/vettore, righe di dettaglio e code con totale per cliente e totale generale. Se le divise dei movimenti non sono omogenee, il totale mostra "!!".

Chiusura (fine / z-chiudi): chiude i file, chiude ed elimina cogtrans, chiude la finestra.


File utilizzati

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda
COGTESBO ISAM Input Testate bolle/documenti (chiave 2 per data; filtro trasporto)
COGTRASP ISAM Input Tabella costi trasporto per documento
COGRACCO ISAM Input Raccordo bolla/fattura (chiave 2 per bolla)
COGFATTU ISAM Input Fatture (per descrizione pagamento/Ri.Ba.)
COGGEANA ISAM Input Anagrafica clienti (nomi)
cogtrans Temp I-O File di transito indicizzato (chiave trs-chia1, chiave alt. trs-vet-cod; creato/eliminato a runtime)
FLSTA Temp File di stampa

Programmi chiamati

Programma Utilizzo
COGS65W Accept codice cliente/vettore con aiuto (F8)
COGS52W Accept campo data (F8 calendario)
COGU10W Formattazione/edit importi in divisa
COGU22 Descrizione tipo pagamento/Ri.Ba. (via sendu22.cpy)
COGS54 Dialogo e gestione stampa (F9)
GRIDADMN Gestione/personalizzazione griglia

Copybook principali

Copybook Contenuto
cogf70.select, cogf70.fd, cogf70.wrk, cogf70-01.scr, cogf70.decla, cogf70.prc Screen Designer: select, FD, working, screen, declaratives, procedure
cogfiles.cpy, flsta.fd, flsta.cpy Layout FEURTAB e file di stampa
cogtrans.k01 Chiave primaria file di transito (dichiarato manualmente nel sorgente: SELECT/FD)
cogtesbo.k02, cogracco.k02 Chiavi secondarie testate bolle / raccordo (data e bolla)
k-u10.cpy Costanti divise
utils65.cpy, utils52.cpy, utils54.cpy, utils68.cpy, utils20.cpy, utile35.cpy, utilu09.cpy, utilu10.cpy, utilu22.cpy, utils15.cpy Linkage subroutine di accept/utility/stampa
sendu22.cpy Chiamata a COGU22 (descrizione pagamento)
dtab.cpy, fscrol2.cpy, utilpggr.cpy, GetDCont.cpy Utility date, scroll, griglia paginata, divisa di conto
wgrave, wnscr, wopenf, wstato, cogazien Working storage standard + dati azienda
wgrid.cpy, utilgdad.cpy Working griglia + linkage GRIDADMN
mmmask.cpy Programma standalone (init/exit)

Note tecniche

  • Il file di transito cogtrans e' dichiarato manualmente (SELECT, FD, .k01) perche' file temporaneo non gestibile da Screens; il nome include l'operatore (wo-oper) per l'univocita' ed e' eliminato in uscita.
  • Il record di totale per vettore e' distinto dai record di dettaglio impostando trs-data = 99999999; in griglia la riga di rottura "Totale cliente" e' riconosciuta da tm-mm = 99.
  • Il primo trasporto di ogni vettore viene lasciato a costo zero (comportamento previsto, tra-imp = 0 su invalid key nella lettura per chiave trs-vet-cod).
  • Tutti gli importi sono riportati nella divisa di conto (w-currency-conto); in stampa, se i movimenti hanno divise diverse, il totale evidenzia l'incongruenza con "!!".
  • Il programma e' in formato sorgente originale (source-computer acu-cobol, goback finale), convertito a interfaccia Windows con griglia GRIDADMN.