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¶
- 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) - Modalita' called: se
cogm22-called= "COGM22-CALLED", i dati del documento vengono presi dalla linkage section e si salta direttamente alla validazione (a4) - Accept parametri (
a4->a-tm-mag->a-tm-anno->a-tm-tipo->a-tm-numero->a-tm-cop): - Magazzino (
tm-mag): con aiuto WIN036 (F8), validazione su COGMAGAZ - Anno (
tm-anno): con calendario COGS52 (F8) - Tipo (
tm-tipo): "U" o "T", con logica differente per personalizzazione "BN" - Numero (
tm-numero): validazione su COGTESBO + COGMOMAG per verificare esistenza documento e movimenti - Copie (
tm-cop): numero copie, minimo 1, default da configurazione - Conferma (
a-fine-dati): validazione globale conx-imposta-conferma, dialog conferma (solo se non called) - Stampa:
- Se
tm-doc-fis= "S" ->b1-fiscale: chiama COGP38xx (personalizzato per azienda) - Se
tm-doc-fis= "N" ->b2-non-fiscale: chiama COGP28xx (personalizzato per azienda) - 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.selectecogm22.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) |