COGF7A — Modifica tipo/codice pagamento su DDT¶
Sorgente: cbl/cogf7a.cbl | Program-ID: COGF7A | Tipo: Programma GUI (maschera + elaborazione batch)
Menu: Vendite > Bolle Vendita > Modifica tipo/codice pagamento su DDT
Scopo¶
Modifica massiva del tipo e codice pagamento su DDT non fatturati di un cliente, in un intervallo di date. Supporta due modalita': controllo (solo log) e aggiornamento effettivo. Genera un log consultabile tramite GESLPRC.
Struttura della maschera¶
Screen: cogf7a-01.scr
| Campo | Variabile | Tipo | Note |
|---|---|---|---|
| Cliente | tm-ana-cod |
9(05) | Obbligatorio, tipo fisso 'C' (cliente) |
| Descrizione cliente | tm-ana-des |
x(40) | Compilato automaticamente da COGGEANA |
| Data partenza | tm-da-data |
9(08) YYYYMMDD | Obbligatorio, default 1o giorno mese corrente |
| Data arrivo | tm-a-data |
9(08) YYYYMMDD | Obbligatorio, default data odierna |
| Tipo pagamento | tm-tipo-pag |
x(01) | Obbligatorio, validato su COGTABEL tipo 22 |
| Descrizione tipo pag. | tm-tipo-pag-d |
x(30) | Compilato automaticamente |
| Codice pagamento | tm-pag |
9(02) | Obbligatorio, validato su COGTABEL tipo 14 |
| Descrizione pagamento | tm-pag-des |
x(30) | Compilato automaticamente |
| Elaborazione con aggiornamento | tm-aggiorna |
x(01) | S/N, default 'N' |
Logica di elaborazione¶
Inizializzazione (apri)¶
ctr-abil,z-99-init-program,x-carica-lingua,rd-azi,open-files.- Attiva il debug/log (GESLPRC):
gesdebug-loadconf,gesdebug-apri-principale. - Imposta
w-tm-cfg-debug = "S"per forzare la generazione del log.
Controllo cliente (x-controlla-tm-ana-cod)¶
Legge COGGEANA con tipo k-ana-tipo-cli. Se il cliente ha tipo/codice pagamento in anagrafica, li propone come default nei campi tm-tipo-pag e tm-pag.
Validazione (x-imposta-conferma)¶
Verifica tutti i campi: cliente codificato, date non invertite, tipo e codice pagamento esistenti in tabella.
Elaborazione (a-controlla / a-10-loop)¶
- Posiziona COGTESBO con chiave 2 (data):
start cogtesbo-notmin-chia2dallatm-da-data. - Loop sequenziale
rdnxt-cogtesbofino ates-data > tm-a-data. - Per ogni DDT trovato, verifica:
tes-tipocf = "C"(e' di un cliente) etes-nonno = tm-ana-cod(e' del cliente richiesto).- Il DDT non e' fatturato: legge COGRACCO con chiave 2 (
rac-key-bolla = tes-chia3); se trova un record, il DDT ha una fattura collegata e viene saltato. - Scrive nel log: "Trovato DDT: mag/anno/tipob/bolla con Tipo e Codice Pagam. xx/yy".
- Se
tm-aggiorna = "S": move tm-tipo-pag to tes-rbmove tm-pag to tes-pag1perform rwr-cogtesbo(REWRITE del record).- Se
tm-aggiorna = "N"(solo controllo): non modifica nulla.
Post-elaborazione¶
Al termine, chiude il log e propone la consultazione tramite GESLPRC con operazione "CONSULTA-PROCEDURA".
File utilizzati¶
| File logico | Chiave | Uso |
|---|---|---|
| FEURTAB (COGTABEL) | tipo + cod | Tabelle tipo pagamento (22) e codice pagamento (14) |
| COGGEANA | ana-tipo + ana-cod | Anagrafica clienti |
| COGTESBO | chiave 2 (tes-data + ...) |
Testate bolle (DDT) — lettura e riscrittura |
| COGRACCO | chiave 2 (rac-key-bolla) |
Raccordo bolle/fatture — per escludere DDT fatturati |
Programmi chiamati¶
| Programma | Modalita' | Scopo |
|---|---|---|
| COGS65W | CALL (via z-s65) | Ricerca/selezione anagrafica cliente |
| COGF28 | CALL | Ricerca tipo pagamento (F8) |
| GESLPRC | CALL | Consultazione log elaborazione |
Subroutine gesdebug-* |
PERFORM (via copy) | Gestione log di procedura |
Copybook principali¶
| Copybook | Contenuto |
|---|---|
utils52.cpy |
Subroutine calendario |
utils65.cpy |
Subroutine ricerca anagrafica COGS65W |
utilf28.cpy |
Subroutine ricerca tipo pagamento COGF28 |
utilw02.cpy |
Subroutine ricerca codice pagamento (WIN002) |
utilgesdebug.cpy |
Gestione log/debug GESLPRC |
cogconta.cpy |
Costanti contabilita' (k-ana-tipo-cli) |
cogtesbo.k02 |
Chiave secondaria 2 di COGTESBO (per data) |
cogracco.k02 |
Chiave secondaria 2 di COGRACCO (raccordo bolla/fattura) |
Note¶
- Il log viene sempre generato, sia in modalita' controllo che aggiornamento. Alla fine dell'elaborazione il programma propone automaticamente la consultazione.
- Il campo
tes-nonnocontiene il codice del cliente "proprietario" originale del DDT (non il destinatario): questo campo viene usato come filtro. - Il pattern di esclusione DDT fatturati si basa sulla presenza di un record in COGRACCO con la stessa chiave bolla (
tes-chia3).