Vai al contenuto

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)

  1. ctr-abil, z-99-init-program, x-carica-lingua, rd-azi, open-files.
  2. Attiva il debug/log (GESLPRC): gesdebug-loadconf, gesdebug-apri-principale.
  3. 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)

  1. Posiziona COGTESBO con chiave 2 (data): start cogtesbo-notmin-chia2 dalla tm-da-data.
  2. Loop sequenziale rdnxt-cogtesbo fino a tes-data > tm-a-data.
  3. Per ogni DDT trovato, verifica:
  4. tes-tipocf = "C" (e' di un cliente) e tes-nonno = tm-ana-cod (e' del cliente richiesto).
  5. 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.
  6. Scrive nel log: "Trovato DDT: mag/anno/tipob/bolla con Tipo e Codice Pagam. xx/yy".
  7. Se tm-aggiorna = "S":
  8. move tm-tipo-pag to tes-rb
  9. move tm-pag to tes-pag1
  10. perform rwr-cogtesbo (REWRITE del record).
  11. 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-nonno contiene 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).