Vai al contenuto

COGP97 - Ristampa ordinata DDT per periodo

Panoramica

COGP97 e' un programma con maschera GUI di selezione che ristampa in blocco i DDT (documenti di trasporto) emessi in un periodo, potendoli ordinare per numero documento oppure per "giro" (sequenza di consegna dell'agente, funzione riservata alla gestione pasticcerie). La selezione dei documenti viene scaricata su un file di transito ordinato (COGTRANS), poi per ciascun record del transito viene richiamato COGV52 che esegue la stampa del singolo DDT. Viene lanciato da menu con l'area comune stringhe; l'operatore imposta periodo, ordinamento, cliente, tipo bolla ed eventuale agente, poi conferma con F3.

Posizione nel menu

Menu Percorso
Magazzino Uscite > Bolle Accompagnatorie > Stampe > Ristampa ordinata ddt

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
COGTESBO Indicizzato (input) Testate bolle/DDT; scansione per data via chiave secondaria chia2 (st-cogtesbo-notmin-chia2), filtrando su tipo bolla, causale, cliente, periodo
COGTABEL Indicizzato (input) Tabelle di codifica; letta con euta-tipo = 15 sulla causale per verificare che il documento sia di tipo "Uscita/Cliente/con fattura"
COGDEST2 Indicizzato (input) Destinazioni con agente collegato (dst2-agente-1); usata per l'ordinamento per giro
COGGRDAY Indicizzato (input) Sequenze giro/giornata dell'agente; scansione via chiave secondaria chia2 per recuperare il numero di sequenza (grd-seq) nel giro
COGGEANA Indicizzato (input) Anagrafica generale; letta per la ragione sociale di cliente e agente
COGMOMAG Indicizzato (input) Movimenti bolla; usato in x6-pre-bolle per verificare le righe delle pre-bolle
COGANRAG Indicizzato (input) Raggruppamenti anagrafica merci; letto (chiave chia3, classe GP) per escludere pre-bolle con merci non trasformabili
COGTRANS Indicizzato (transito temporaneo) File di appoggio ordinato con i DDT selezionati (trs-rec), creato/svuotato e riletto per lanciare le stampe

Il transito ha nome costruito in apri (#$COGP97. + operatore in ext-tmp-dir).

Copybook principali

Copybook Descrizione
cogp97.select / cogp97.fd / cogp97.wrk / cogp97.prc / cogp97.decla Componenti generati da Screens
cogp97-01.scr Screen di selezione parametri
k-tipi-cogtabel.cpy Costanti tipo per COGTABEL
cogazien.cpy Dati azienda
utildlg.cpy Area per dialog (parti commentate)
utilpsw005.cpy / utilpsw006.cpy Aree per PSW005 (verifica stampabilita') e PSW006 (trasformazione pre-bolla)
utils52.cpy / utils54.cpy / utils65.cpy Aree subroutine data, stampa, ricerca anagrafica
utilu78.cpy Area per COGU78 (gestione documento, parti commentate)
utilncnf.cpy Area per la lettura configurazioni RNEWCONF
utilgesdebug.cpy / gesdebug.cpy Logging di procedura (GESLPRC)
utilu30b.cpy / utilv52.cpy Aree di linkage per la chiamata a COGV52
cogtesbo.k02 / coggrday.k02 / coganrag.k03 / cogtrans.k01 Routine I/O su chiavi secondarie delle tabelle usate
wgrave / wnscr / wopenf / wstato / grave / mmmask / opengen / stato / stato1 / winmsg Copybook standard

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGV52 Stampa del singolo DDT (v52-called = 'COGV52-CALLED', bolla in v52-bolla); ritorna v52-fine-stampa = 'S' se l'operatore preme ESC per interrompere
COGS65W Ricerca/validazione anagrafica cliente e agente
PSW005 Verifica se il documento e' stampabile (operazione DOC-STAMPABILE), solo per gestione pasticcerie
PSW006 Trasformazione pre-bolla in bolla senza stampa DDT (operazione CHIUDI-PREBOLLA), in x6-10-ok
GESLPRC Consultazione del log di procedura a fine elaborazione (operazione CONSULTA-PROCEDURA)
RNEWCONF Lettura configurazioni (gruppo abilita/gestione-pasticcerie e past/cau-bdc-trasformato)
DTPRG / PRGDT Conversione data<->progressivo per impostare il default periodo nella gestione pasticcerie

Sottoprogrammi commentati

COGU78 e DIALOGS sono presenti solo in blocchi commentati (vecchia logica di trasformazione pre-bolla con dialog interattivo), non attivi.

Logica di elaborazione

  1. apri / main: inizializza programma e logging (gesdebug-*), legge la configurazione (x99-src-cfg via RNEWCONF: flag gestione pasticcerie e causale bolla-di-consegna trasformata), costruisce il nome del transito, imposta tasti funzione e visualizza la maschera.

  2. a4 e paragrafi a-tm-*: selezione parametri. Data inizio/fine (a-tm-data-da, a-tm-data-a), ordinamento (a-tm-ordi: N per numero, G per giro), cliente (a-tm-cli-da), tipo bolla (a-tm-tipo-bolla: T tutte, N non legate a ordine, S legate a ordine) e agente/giro (a-tm-agente, abilitato solo se ordinamento per giro). In modalita' pasticceria il default ordinamento e' G sul giorno successivo.

  3. a-richiesta-conferma: rivalida i campi e conferma con F3.

  4. Preparazione stampa: apre il log di procedura, ricrea il transito (open output poi open i-o). Se pasticceria e ordinamento per giro, esegue x6-pre-bolle per trasformare in automatico le pre-bolle valide (via PSW006).

  5. a-00-loop: scansione COGTESBO nel periodo. Filtra: tipo bolla I/D/B (escludendo B in pasticceria), filtro tipo bolla legata/non legata a ordine (tes-fl-ord), verifica causale su COGTABEL (Uscita/Cliente/con fattura), filtro cliente. In pasticceria applica anche il controllo PSW005 (documento stampabile).

  6. Scrittura sul transito (wr-cogtrans/rwr-cogtrans):

  7. ordinamento N: chiave trs-ordine = chiave documento;
  8. ordinamento G: recupera destinazione (COGDEST2) e agente, cerca la sequenza nel giro (COGGRDAY su chia2) e compone trs-ordine con la ragione sociale agente + sequenza; i DDT senza giro vanno con trs-ordine a spazi (ordinati prima).

  9. a-90 / b-00-read: scansione del transito ordinato; per ogni record logga e chiama COGV52 per stampare il DDT (v52-bolla = trs-tes-chia3, 1 copia). Se COGV52 ritorna v52-fine-stampa = 'S' (ESC), interrompe il ciclo.

  10. b-90 / fine / z-chiudi: logga i conteggi, chiude il log, offre la consultazione del log via GESLPRC, e in pasticceria chiude il DB PSW005 (CHIUDI-DB).

Note tecniche

  • La configurazione RNEWCONF letta e': gruppo abilita chiave gestione-pasticcerie (vedi gestione-pasticcerie) e gruppo past chiave cau-bdc-trasformato. L'ordinamento per giro e la trasformazione pre-bolle sono attivi solo se la gestione pasticcerie e' S.
  • Il record del transito COGTRANS e' stato allargato nel tempo: trs-ordine da 20 a 50 caratteri (26/05/2025) e aggiunti trs-dst2-agente-1 e trs-grd-seq (27/03/2025) per gestire l'ordinamento e il log per agente.
  • Il controllo di esclusione dei documenti "non stampabili" (PSW005) ha avuto storia alterna (commenti da 12/08/2025, 25/11/2025, 26/01/2026): allo stato del sorgente l'esclusione e' attiva.
  • L'accept pp ... before time 300 dopo ogni stampa introduce una micro-pausa che consente l'intercettazione di eventi tra una stampa e la successiva.
  • La stampa vera e propria e' delegata interamente a COGV52; COGP97 e' quindi un orchestratore di selezione, ordinamento e ristampa in blocco.