Vai al contenuto

COGP60 - Stampa Anomalie di Fornitura

Panoramica

Programma di stampa batch con maschera GUI che produce il "Report Anomalie di Fornitura": per un intervallo di fornitori e un intervallo di date, conta per ogni fornitore il numero di consegne (carichi da fornitore) e le anomalie riscontrate, raggruppate per codice/descrizione anomalia, con la relativa percentuale. Il calcolo avviene in due fasi: prima aggrega i dati in un file di transito temporaneo (COGTRANS), poi ne stampa il contenuto. Viene avviato dal menu ricevendo il gruppo linkage stringhe.

Posizione nel menu

Menu Percorso
Magazzino Entrate > Stampe > Stampa Anomalie di Fornitura

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
feurtab Indexed (via cogfiles.cpy) Contenitore delle tabelle COGE lette
COGTESBO Indexed Testate documenti/bolle: scansione per data (tes-chia2/tes-data-r), filtrata su tipo bolla C, tipo cliente/fornitore F e codice fornitore (tes-nonno)
COGGENER Indexed Tabella generica: righe di tipo AF (anomalie fornitura) collegate al documento (gnr-tip, gnr-parte-1/-2, gnr-des)
COGGEANA Indexed Anagrafica generale: recupero nome fornitore (ana-nome, tipo F) sia in fase di calcolo sia nella validazione maschera
COGTRANS Indexed (temporaneo) File di transito creato e distrutto dal programma: accumula i dati fornitore (tipo D) e i vettori anomalia (tipo V)
flsta Stampa File di stampa (record riga)

Copybook principali

Copybook Descrizione
cogfiles.cpy Layout record delle tabelle in feurtab
cogp60.select / cogp60.fd / cogp60.wrk / cogp60.prc / cogp60.decla / cogp60-01.scr File generati da Screens per il programma
cogazien.cpy Record azienda (az-sys, ecc.)
utils52.cpy Area parametri subroutine data / calendario (S52)
utils54.cpy Area parametri subroutine di stampa/conferma (S54)
utils65.cpy Area parametri ricerca clienti/fornitori (S65)
wstato / wopenf / wgrave / wnscr Copybook standard di stato/apertura/errori/schermo

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGS54 Selezione stampante / conferma stampa (80 col) e chiusura post-stampa (s54-after-print); fornisce anche s54-stm-lin (righe per pagina)
COGS65W Ricerca generalizzata fornitori per i campi "Da fornitore" e "A fornitore"

Logica di elaborazione

  1. apri: init programma, ctr-abil, lingua, rd-azi. Costruisce il nome del file di transito temporaneo in ext-tmp-dir (#$trsp60.<operatore>, univoco per operatore) e imposta fl_share in base al sistema operativo (az-sys = 'W'). Prepara la maschera "Report Anomalie di Fornitura".
  2. a4 + a-tm-*: default di data (1/1 - 31/12 dell'anno corrente) e accept dei campi maschera (tm-for-da, tm-for-a, tm-da-data, tm-a-data) con ricerca S65 sui fornitori, calendario S52 sulle date, gestione mouse (x-test-mouse) ed eccezioni. F3 porta a a-richiesta-conferma.
  3. Controlli campo (x-controlla-tm-for-da/-for-a/-da-data/-a-data): validazione fornitori su COGGEANA (tipo F), gestione estremi "dall'inizio"/"alla fine", coerenza degli intervalli. x-imposta-conferma li riesegue tutti.
  4. a-richiesta-conferma: COGS54 per la scelta stampante (80 col); se F3, procede alla fase di calcolo.
  5. Fase di calcolo (b_inib_end):
  6. b_ini: riapre COGTRANS in output (test "funzione gia' in uso"), poi in i-o.
  7. b_src/b_loop: scorre COGTESBO per data (start_tes/rdnxt_tes), filtra i documenti (tipo bolla C, tipo F, fornitore nell'intervallo). Per ogni consegna valida crea/aggiorna il record fornitore su COGTRANS (tipo D, via nuovo_for/aggio_for, incrementando trs-consegne).
  8. b_loop1: per ciascun documento scorre COGGENER cercando le righe AF collegate (gnr-parte-1 = tes-chia3); ogni anomalia incrementa il contatore anomalie del fornitore (record D) e il contatore del singolo vettore anomalia (record V, chiave trs-cod-af = parte 2 di COGGENER, descrizione da gnr-des).
  9. b_end: chiude e riapre COGTRANS in input.
  10. Fase di stampa (c_inic_end):
  11. c_ini: se non ci sono dati avvisa e torna a a4; se ci sono consegne ma nessuna anomalia chiede conferma all'operatore.
  12. c_loop: scorre i record fornitore (tipo D) di COGTRANS, stampa la testata di rottura fornitore (testa: consegne, anomalie, percentuale).
  13. c_loop1: per ogni fornitore scorre i vettori anomalia (tipo V) e stampa corpo (codice anomalia, descrizione, numero, percentuale sulle consegne). Gestione salto pagina con bool_new_pg1/bool_new_pg5 (soglie basate su s54-stm-lin).
  14. c_end: COGS54 con s54-after-print.
  15. fine/z-chiudi: z-close-files, chiusura e cancellazione del file COGTRANS (delete file), chiusura finestra, z-99-exit-program, exit program.

Note tecniche

  • COGTRANS e' una tabella temporanea dichiarata manualmente nel sorgente (SELECT esplicito nel file-control, FD e layout trs-rec nel file section): non e' gestita da Screens. Il nome file (nome_trs) e' costruito in ext-tmp-dir con suffisso operatore per garantire l'univocita' tra utenti concorrenti; l'apertura iniziale in output funge da lock ("Funzione gia' in uso dall'operatore").
  • Il record di transito ha due tipi (campo trs-tipo): D = riepilogo per fornitore (consegne, totale anomalie), V = vettore per singola anomalia (descrizione, conteggio).
  • Le percentuali (w_perc) sono calcolate come anomalie * 100 / consegne.
  • Le routine di I/O su COGTRANS/COGTESBO/COGGENER sono paragrafi dedicati (start_*, rdnxt_*, rd_trs, wr_trs, rwr_trs) con gestione di stato 99 (retry) ed errore grave (grave).
  • Presenti blocchi commentati legacy per la gestione dello SHARE di MS-DOS (opn_wind_for_dos, SYSTEM "SHARE"), non piu' attivi.
  • L'etichetta di menu "Stampa Anomalie di Fornitura" corrisponde alla funzione reale (report "Anomalie di Fornitura").