Vai al contenuto

COGR23 - Ricostruzione date movimento clienti/fornitori

Sorgente: cbl/cogr23.cbl | Tipo: Programma di menu / elaborazione GUI | Program-ID: COGR23

Menu: Sistema > Archivi > Ricostruzioni [Date Movimento Cli/For]


Scopo

COGR23 ricostruisce, per ogni anagrafica cliente e fornitore, la data del primo movimento e la data dell'ultimo movimento, ricavandole scandendo le fatture registrate. Le due date vengono memorizzate sull'archivio di appoggio anagrafiche COGAPPOG nei campi app-data-pm (primo movimento) e app-data-um (ultimo movimento).

La funzione e' un ricalcolo massivo: azzera la logica precedente e riscrive le due date desumendole dalla data di movimento (fat-damov...) delle fatture appartenenti a ciascuna anagrafica. Nella personalizzazione EX (Eurofrutta) considera in aggiunta l'ultimo ordine del cliente per estendere la data ultimo movimento.

Non ci sono opzioni di aggiornamento/simulazione: alla conferma con F3 l'elaborazione riscrive direttamente COGAPPOG. La maschera mostra solo contatori di avanzamento (clienti letti, fatture lette, fatture considerate) e la descrizione dell'anagrafica in lavorazione.

File e tabelle principali

File/Tabella Copybook Uso
COGGEANA cogfiles.cpy (ana-rec) Anagrafica clienti/fornitori: scansione completa (sorgente del ciclo)
COGAPPOG cogappog.cpy (app-rec) Archivio appoggio anagrafiche: lettura/creazione e riscrittura di app-data-pm / app-data-um (destinazione)
COGFATTU cogfiles.cpy (fat-rec) + cogfattu.k02 Fatture: scansione per anagrafica (chiave 2 per cli/for), da cui si legge fat-damov...
COGTESOR cogfiles.cpy (tor-rec) + cogtesor.k02 Testata ordini (solo personalizzazione EX): ultimo ordine per estendere app-data-um
COGTABEL cogfiles.cpy (tipi documento) Tabelle tipi documento, caricate da u-tipidoc (utipidoc.cpy)

Flusso principale

  1. main / apri - init programma, ctr-abil, rd-azi, apertura file, u-tipidoc (carica i codici tipo documento in az-tipo-*). Attiva F3 come conferma; imposta la maschera "Modifica date fatture Cli/For".
  2. a4 - reset tab-maschera, caricamento controlli, acc-conf. Con ESC esce; alla conferma esegue a-anagrafe.
  3. a-anagrafe - scandisce COGGEANA dall'inizio (st-coggeana-notmin + loop rdnxt-coggeana). Per ogni anagrafica:
  4. incrementa il contatore clienti (tm-c-l) e mostra codice/nome;
  5. legge COGAPPOG sulla stessa chiave (app-chia); se assente lo crea azzerando app-data-pm/app-data-um;
  6. copia le due date correnti nei campi di lavoro e le azzera se palesemente non valide (anno > 2100, mese > 12, giorno > 31);
  7. esegue b-fatture; se personalizzazione EX esegue anche c-ordini;
  8. rwr-cogappog riscrive il record di appoggio con le date ricalcolate.
  9. b-fatture - per l'anagrafica corrente scandisce COGFATTU (chiave 2, fat-tip-ana + fat-cli) e per i soli tipi documento pertinenti al tipo anagrafico (elenco az-tipo-* distinto tra clienti "C" e fornitori "F") esegue data-fat.
  10. data-fat - compone la data movimento della fattura (fat-damovaa/fat-damovmm/fat-damovgg) e aggiorna gli estremi: se piu' antica la usa come primo movimento (app-data-pm), se piu' recente come ultimo movimento (app-data-um); inizializza gli estremi vuoti alla prima fattura trovata.
  11. c-ordini (solo personalizzazione EX) - legge l'ultimo ordine del cliente su COGTESOR (chiave 1 in discesa, rdprv); se tor-datdecorr supera app-data-um lo adotta come ultimo movimento, e se il primo movimento e' vuoto lo allinea.

Contatori maschera

Campo Significato
tm-c-l Anagrafiche (clienti/fornitori) elaborate
tm-f-l Fatture lette (scandite)
tm-f-c Fatture considerate (rientranti nei tipi documento validi)

Note

  • Non e' prevista una modalita' di sola simulazione: la conferma con F3 riscrive direttamente COGAPPOG. Le date ricalcolate sostituiscono i valori precedenti.
  • Se il record COGAPPOG non esiste per l'anagrafica, viene creato con date azzerate prima del ricalcolo.
  • La discriminazione dei tipi documento validi e' basata sui codici az-tipo-* (batch, nota accredito, immediata, corrispettivi, giornaliero, extra, split payment, PA, fornitore, nota fornitore, autofattura, ecc.) caricati in fase di init; i tipi non elencati vengono comunque contati come "letti" ma non concorrono alle date.
  • La chiave secondaria cogfattu.k02 (per cliente/fornitore) e cogtesor.k02 sono incluse manualmente a fine procedure division (non generate da Screens).
  • Il file usa PERFORM ... THRU e GO TO (codice storico di conversione GUI 2008): non riflette lo stile attuale del codebase.