Vai al contenuto

COGM22 - Ristampa Trasferimenti

Intestazione

Campo Valore
Programma COGM22
Titolo Ristampa trasferimento tra magazzini
Posizione menu Magazzino > Trasferimenti > Ristampa

Scopo e logica generale

COGM22 e' un programma interattivo per la ristampa di documenti di trasferimento tra magazzini. Presenta una maschera di richiesta dati (magazzino, anno, tipo, numero, copie) e, dopo validazione, richiama il programma di stampa appropriato in base al tipo di documento: COGP38 per i documenti fiscali (tipo "U") e COGP28 per i documenti non fiscali (tipo "T").

Il programma puo' essere invocato anche come sottoprogramma (modalita' called) ricevendo direttamente i dati del documento da ristampare tramite la linkage section (utilcogm22.cpy).


Flusso principale

  1. Inizializzazione (apri): controllo abilitazione, z-99-init-program, caricamento lingua, lettura azienda, apertura file, tasti funzione, data di sistema, divisa conto, titolo maschera "Ristampa trasferimento", caricamento configurazione (x99-conf)
  2. Modalita' called: se cogm22-called = "COGM22-CALLED", i dati del documento vengono presi dalla linkage section e si salta direttamente alla validazione (a4)
  3. Accept parametri (a4 -> a-tm-mag -> a-tm-anno -> a-tm-tipo -> a-tm-numero -> a-tm-cop):
  4. Magazzino (tm-mag): con aiuto WIN036 (F8), validazione su COGMAGAZ
  5. Anno (tm-anno): con calendario COGS52 (F8)
  6. Tipo (tm-tipo): "U" o "T", con logica differente per personalizzazione "BN"
  7. Numero (tm-numero): validazione su COGTESBO + COGMOMAG per verificare esistenza documento e movimenti
  8. Copie (tm-cop): numero copie, minimo 1, default da configurazione
  9. Conferma (a-fine-dati): validazione globale con x-imposta-conferma, dialog conferma (solo se non called)
  10. Stampa:
  11. Se tm-doc-fis = "S" -> b1-fiscale: chiama COGP38xx (personalizzato per azienda)
  12. Se tm-doc-fis = "N" -> b2-non-fiscale: chiama COGP28xx (personalizzato per azienda)
  13. Chiusura (fine): chiusura file, chiusura finestra, z-99-exit-program

File e tabelle acceduti

File logico Record Modalita' Uso
FEURTAB cogfiles Input Tabella generica Eurosystem
COGMAGAZ magz-rec Input Validazione codice magazzino
COGTESBO tes-rec Input Testata bolle/trasferimenti (validazione documento)
COGMOMAG mag-rec Input Movimenti di magazzino (verifica esistenza righe)

I file specifici sono dichiarati in cogm22.select e cogm22.fd.


Strutture dati principali

tab-maschera (campi di input)

tm-chia:
  tm-mag          pic x(01)    Codice magazzino
  tm-anno         pic 9(04)    Anno documento
  tm-tipo         pic x(01)    Tipo documento ("U"/"T")
  tm-numero       pic 9(06)    Numero documento
tm-doc-fis        pic x(01)    Flag documento fiscale ("S"/"N")
tm-e-mag          pic x(01)    Magazzino di entrata (ricavato dal doc)
tm-stampa         pic x(01)    Flag stampa
tm-cop            pic 9(02)    Numero copie

tm-cfg (configurazione stampa)

tm-cfg-v-off      pic 9(02)    Offset verticale stampante
tm-cfg-h-off      pic 9(02)    Offset orizzontale stampante
tm-cfg-fl-sta     pic x(01)    Flag tipo stampa ("L" = layout particolare)
tm-cfg-sta-pre    pic x(01)    Stampa con anteprima
tm-cfg-rch-pre    pic x(01)    Richiesta anteprima
tm-cfg-cop        pic 9(02)    Copie predefinite

w-dati-called (linkage per modalita' called)

w-dc-called       pic x(01)    "S" se invocato da altro programma
w-dc-doc:
  w-dc-mag        pic x(01)    Magazzino
  w-dc-ann        pic 9(04)    Anno
  w-dc-tip        pic x(01)    Tipo
  w-dc-num        pic 9(06)    Numero

Copybook inclusi

Screen Designer

Copybook Contenuto
cogm22-01.scr Maschera principale (screen section)
cogm22.select SELECT dei file
cogm22.fd FD dei file
cogm22.wrk Working storage maschera
cogm22.decla Declaratives
cogm22.prc Procedure division (routine di lettura file)

Strutture dati e utility

Copybook Contenuto
cogfiles.cpy FD feurtab
wstato.cpy Working storage stato
wgrave.cpy Gestione errori gravi
wopenf.cpy Apertura file
wnscr.cpy Gestione schermo
cogazien.cpy Dati azienda
utilp38.cpy Interfaccia COGP38 (stampa documenti fiscali)
utilw36.cpy Interfaccia WIN036 (selezione magazzino)
utils52.cpy Interfaccia COGS52 (calendario)
utils54.cpy Interfaccia COGS54 (anteprima stampa)
utilu10.cpy Interfaccia COGU10 (utilita' divisa)
utilncnf.cpy Interfaccia RNEWCONF (configurazione)
k-u10.cpy Costanti COGU10
utilcogm22.cpy Interfaccia chiamata esterna (linkage)
wcont.cpy / wcont1.cpy Linkage section
getdcont.cpy Routine get divisa conto

Routine standard

Copybook Contenuto
stato.cpy Gestione stato file
stato1.cpy Gestione stato file (esteso)
winmsg.cpy Messaggi a finestra
grave.cpy Gestione errori gravi
mmmask.cpy Maschera principale (init/exit program)
opengen.cpy Apertura file generica
sendw36.cpy Invio a WIN036

Programmi chiamati (CALL)

Programma Scopo
WIN036 Selezione magazzino (F8 su tm-mag)
RNEWCONF Lettura configurazione (gruppi PRNTSTTRAS, TRASCOGM20, PRNTSTBOLL)
COGP38xx Stampa documento fiscale di trasferimento (personalizzato: COGP38 + az-personal)
COGP38L Stampa documento fiscale layout alternativo (se tm-cfg-fl-sta = "L")
COGP28xx Stampa documento non fiscale di trasferimento (personalizzato: COGP28 + az-personal)

Logica di business

Determinazione documento fiscale vs. non fiscale

Il tipo di documento determina il modulo di stampa: - Tipo "U" -> documento fiscale (tm-doc-fis = "S") -> stampa con COGP38 - Tipo "T" -> documento non fiscale (tm-doc-fis = "N") -> stampa con COGP28 - Eccezione: per personalizzazione "BN", entrambi i tipi sono considerati fiscali

Validazione del numero documento

La validazione del numero (x-controlla-tm-numero) esegue: 1. Lettura testata su COGTESBO con chiave mag/anno/tipo/numero 2. Lettura movimenti su COGMOMAG con st-cogmomag-notmin per verificare che il documento abbia righe 3. Determinazione direzione: se mag-entrusc = "U" (uscita), il magazzino di entrata viene preso dalla testata; se entrata, il documento viene invertito per trovare il corrispondente di uscita

Configurazione (RNEWCONF)

Il programma legge 6 parametri di configurazione da 3 gruppi: - PRNTSTTRAS (4 chiavi): euta-c022-v-off, euta-c022-h-off, euta-c022-sta-pre, euta-c022-rch-pre - TRASCOGM20 (1 chiave): euta-c024-fl-sta (flag tipo stampa) - PRNTSTBOLL (1 chiave): euta-c022-cop (copie predefinite)

Personalizzazione stampa

Il programma di stampa viene scelto dinamicamente: STRING 'COGP38' az-personal / STRING 'COGP28' az-personal. Se il programma personalizzato non esiste (overflow su CALL), viene usato quello generico (COGP38NO / COGP28).


Variabili di stato principali

Variabile Descrizione
tm-mag Codice magazzino del documento
tm-anno Anno del documento
tm-tipo Tipo documento ("U"/"T")
tm-numero Numero documento
tm-doc-fis Flag documento fiscale ("S"/"N")
tm-e-mag Magazzino di entrata
tm-cop Numero copie da stampare
w-dc-called "S" se invocato come sottoprogramma
az-personal Personalizzazione azienda (per selezione modulo stampa)