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¶
main / apri- init programma,ctr-abil,rd-azi, apertura file,u-tipidoc(carica i codici tipo documento inaz-tipo-*). Attiva F3 come conferma; imposta la maschera "Modifica date fatture Cli/For".a4- resettab-maschera, caricamento controlli,acc-conf. Con ESC esce; alla conferma eseguea-anagrafe.a-anagrafe- scandisceCOGGEANAdall'inizio (st-coggeana-notmin+ looprdnxt-coggeana). Per ogni anagrafica:- incrementa il contatore clienti (
tm-c-l) e mostra codice/nome; - legge
COGAPPOGsulla stessa chiave (app-chia); se assente lo crea azzerandoapp-data-pm/app-data-um; - copia le due date correnti nei campi di lavoro e le azzera se palesemente non valide (anno > 2100, mese > 12, giorno > 31);
- esegue
b-fatture; se personalizzazioneEXesegue anchec-ordini; rwr-cogappogriscrive il record di appoggio con le date ricalcolate.b-fatture- per l'anagrafica corrente scandisceCOGFATTU(chiave 2,fat-tip-ana+fat-cli) e per i soli tipi documento pertinenti al tipo anagrafico (elencoaz-tipo-*distinto tra clienti "C" e fornitori "F") eseguedata-fat.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.c-ordini(solo personalizzazioneEX) - legge l'ultimo ordine del cliente suCOGTESOR(chiave 1 in discesa,rdprv); setor-datdecorrsuperaapp-data-umlo 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
COGAPPOGnon 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) ecogtesor.k02sono incluse manualmente a fine procedure division (non generate da Screens). - Il file usa
PERFORM ... THRUeGO TO(codice storico di conversione GUI 2008): non riflette lo stile attuale del codebase.