Vai al contenuto

COGP12 - Listino per Riordino (stampa alimentari con barcode)

Panoramica

Programma di stampa batch con maschera GUI, che produce un listino articoli su stampante laser KYOCERA (linguaggio PRESCRIBE). Per ogni prodotto nell'intervallo selezionato stampa descrizione, codice interno, barcode EAN, quantita' per confezione, prezzo di acquisto (prezzo medio da COGL61), prezzo di vendita (dal listino "L") e il progressivo acquistato nell'anno. E' pensato come supporto al riordino. Viene avviato dal menu ricevendo il gruppo linkage stringhe.

Posizione nel menu

Menu Percorso
Magazzino Archivi & Tabelle > Stampe > Listini > Listino x Riordino

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
feurtab Indexed (via cogfiles.cpy) Contenitore delle tabelle COGE lette
COGMERCI Indexed Anagrafica articoli/merci: scansione principale nell'intervallo tm-da-merce..tm-a-merce (chiave mer-chia)
COGTESLS Indexed Testata listini: recupero divisa del listino "L" (tls-div)
COGLISNW Indexed Righe listino (nuovo formato): prezzo di vendita valido alla data (lnw-pre) per listino "L", fascia 1, rif 1
COGMOMAG Indexed Movimenti di magazzino: somma del progressivo acquistato nell'anno (mag-entrusc = 'E', mag-tipob3 = 'C'), chiave mag-chia3a
flsta Stampa File di stampa (record riga)

Copybook principali

Copybook Descrizione
cogfiles.cpy Layout record delle tabelle in feurtab
cogp12.select / cogp12.fd / cogp12.wrk / cogp12.prc / cogp12.decla / cogp12-01.scr File generati da Screens per il programma
k-u10.cpy Costanti per la subroutine di editing importi COGU10
cogazien.cpy Record azienda (verifica az-laser, az-int, az-main-mag)
utils54.cpy Area parametri subroutine di stampa/conferma (S54)
utilu10.cpy Area parametri subroutine di editing valuta (U10)
utils68.cpy Area parametri ricerca merci (S68)
utilcogl61.cpy Area parametri per COGL61 (prezzo medio)
getdcont.cpy Paragrafo get-divisa-conto (divisa di conto tramite COGU10W)
wstato / wopenf / wgrave / wnscr Copybook standard di stato/apertura/errori/schermo

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGS54 Selezione stampante / conferma stampa (emulazione PRESCRIBE, 132 col) e chiusura post-stampa
COGU10W Editing/formattazione importi in valuta (prezzo vendita e prezzo acquisto) e divisa di conto
COGS68W Ricerca generalizzata articoli/merci per i campi "Da Prodotto" e "A Prodotto"
COGL61 Utility che restituisce prezzo medio acquisto dell'articolo alla data (cerca-prmed)

Note su chiamate indirette

get-divisa-conto (da getdcont.cpy) chiama a sua volta cogu10w.

Logica di elaborazione

  1. apri: init programma, ctr-abil, lingua, rd-azi, open-files. Verifica az-laser = 'L': se manca la stampante laser KYOCERA mostra un messaggio e va a fine. Prepara i controlli di ricerca merci (S68) e la data di sistema; recupera la divisa di conto (get-divisa-conto).
  2. a4 / a-tm-da-merce / a-tm-a-merce: accept dei due prodotti estremi con ricerca S68, gestione mouse (x-test-mouse) ed eccezioni; controlli in x-controlla-tm-da-merce/x-controlla-tm-a-merce (verifica esistenza su COGMERCI, gestione valori nulli "dall'inizio"/"alla fine", coerenza da<=a).
  3. a-tm-conf: alla conferma (F3) esegue x-imposta-conferma; a222 chiama COGS54 per la scelta stampante (emulazione PRESCRIBE).
  4. st-10: inizio elaborazione. Imposta la testata con la data odierna, gestisce l'estremo finale ZZ/ZZ/99999, fa start su COGMERCI.
  5. st-10-loop: scorre COGMERCI; per ogni articolo entro l'estremo finale:
  6. st-30-loop: cerca sul listino COGLISNW (tipo "L", fascia 1, rif 1) il prezzo di vendita valido alla data (lnw-pre con lnw-data not > datasis); la divisa del listino e' letta da COGTESLS.
  7. st-40: formatta il prezzo di vendita con COGU10W.
  8. st-50-loop: somma il progressivo acquistato nell'anno scorrendo COGMOMAG (solo entrate E con tipo bolla C dell'anno corrente).
  9. st-60: gestisce salto pagina (testa), stampa riga articolo, barcode (wr-barc con mer-ean), prezzo di acquisto tramite COGL61/cerca-prmed e COGU10W, quantita' confezione; disegna box e linee di prefincato.
  10. st-80-end: chiude il flusso di stampa (RES; EXIT;), messaggio di fine.
  11. z-chiudi / fine: COGS54 con s54-after-print, z-close-files, chiusura finestra, z-99-exit-program, cancel "COGL61", exit program.

Note tecniche

  • Stampa specifica per stampante laser KYOCERA: le righe sono comandi PRESCRIBE (TEXT, BARC, BOX, MAP/DAP, FONT, SCPI, PAGE, RES) scritti su riga tramite le routine wr-riga-n (testo normale), wr-riga-e (testo a fine riga) e wr-barc (barcode EAN mer-ean). Il programma esce subito se az-laser non e' 'L'.
  • Il commento sorgente indica "Stampa listino alimentari": il programma e' una variante alimentare/retail (barcode, prezzo per confezione, progressivo acquistato); l'etichetta di menu "Listino x Riordino" ne descrive la finalita' operativa. Nessuna discrepanza sostanziale.
  • Il prezzo di vendita e' preso dal listino nuovo COGLISNW (tipo "L", fascia 1, rif 1) valido alla data; il prezzo di acquisto e' il prezzo medio restituito da COGL61 (cerca-prmed, cogl61-in-prezacq = 'S').
  • Salto pagina gestito con contatore ctr-rig (soglia 26 righe corpo); reinizializzazione stampante quando ctr-rig > 100 (!R! RES).
  • Righe di dettaglio numeriche editate in valuta di conto tramite COGU10W.