Vai al contenuto

COSO09 - Stampa Schede Anagrafiche Soci

Scopo

Stampa delle schede anagrafiche complete dei soci dell'Unione, con layout dettagliato tipo "scheda" che include tutti i dati anagrafici, bancari, superfici e situazione contabile (dare/avere/saldo). Filtri per intervallo soci, zona e ordinamento.

Contabilita' > Unione soci/clienti > Stampa Schede anagrafiche (2 posizioni)

File e tabelle

File Tipo Utilizzo
FEURTAB (COGTABEL) Indicizzato Tabelle generali (zone tipo 06/90)
UNANASO Indicizzato Anagrafica soci/clienti unione
FLSTA Stampa File di stampa

Il file UNANASO e' acceduto tramite chiave primaria e chiave secondaria k04 (unanaso.k04).

Copybook

Working-Storage

  • coso09.wrk — variabili specifiche
  • k-u10.cpy — costanti utility divise
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy — standard
  • cogazien.cpy — dati azienda

Utility

  • utils52.cpy — gestione date
  • utils54.cpy — gestione stampante
  • utils65.cpy — ricerca anagrafiche
  • utilu10.cpy — utility divise
  • utilo30.cpy — ricerca zone

Screen

  • coso09-01.scr — definizione maschera

Procedure Division

  • coso09.decla — declaratives
  • coso09.prc — procedure standard
  • getdcont.cpy — calcolo dare/avere/saldo da movimenti
  • unanaso.k04 — chiave secondaria (zona/tipo/codice)
  • grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy — standard finali

CALL a sottoprogrammi

Programma Funzione
COSO30 Ricerca zone (tipo 06/90)
COGS54 Gestione stampante (apertura/chiusura)
COGS65W Ricerca anagrafiche soci

Logica di elaborazione

Parametri maschera

Campo Variabile Valori
Da socio tm-socioda Codice inizio (0 = dall'inizio)
A socio tm-socioa Codice fine (0 = alla fine)
Zona tm-zona Codice zona; 999 = tutte; obbligatorio
Ordinamento tm-gen-zona G=Generale (per codice), Z=Per zona

Flusso di stampa

  1. Raccolta parametri con validazione
  2. Apertura stampante tramite COGS54 (120 caratteri)
  3. Posizionamento su UNANASO:
  4. Se ordinamento "G" (generale): st-unanaso-notmin da tm-socioda
  5. Se ordinamento "Z" (per zona): st-unanaso-chia4-notmin (chiave k04 — zona)
  6. Lettura sequenziale con filtri:
  7. Tipo anagrafica = "C" (soci)
  8. Intervallo codici tm-socioda / tm-socioa
  9. Zona specifica o tutte (999)
  10. Per ogni socio: stampa scheda completa con intestazione

Contenuto scheda stampata

Per ogni socio viene stampato: - Intestazione: eventuale indicazione "DIMESSO" con anno - Ragione sociale: codice e nome - Indirizzo: composto da anas-ind + anas-civico - Localita': comune, provincia, CAP - Dati fiscali: partita IVA, codice fiscale - Dati bancari: ABI, CAB, conto corrente - Superficie: dati conferimenti - Situazione contabile: dare, avere, saldo (calcolati tramite getdcont.cpy)

Validazioni

  • Codice socio deve essere < 90000
  • Zona obbligatoria (non puo' essere zero)
  • Zona deve esistere in COGTABEL (tipo 06/90), tranne 999 ("Tutte le zone")

Gestione divisa

All'apertura chiama get-divisa-conto per determinare la divisa corrente del conto.

Note tecniche

  • Larghezza stampa: 120 caratteri (k-chr-stampa).
  • Usa mmmask.cpy (programma standalone).
  • Accesso per zona tramite chiave secondaria unanaso.k04 (zona1/zona2/tipo/codice).
  • La copybook getdcont.cpy calcola i totali dare/avere/saldo leggendo i movimenti contabili relativi al socio.
  • Il tipo anagrafica per i soci e' k-ana-tipo-cli ("C").
  • Indirizzo composto con STRING di anas-ind e anas-civico.

Storico modifiche

Maggio 2026 — Rimosso fallback condizione su tipo socio

In fase di lettura condizioni anagrafica (euta-tipo = 06, scan su cogtabel per ogni socio), il programma cercava una condizione codificata come ana3-cond1/ana3-cond2 (lookup rd-tab). Se la lettura falliva, veniva ritentato un fallback con anas-tiposocio come euta-codso1.

Il fallback e' stato rimosso: ora se la lettura rd-tab con ana3-cond1/ana3-cond2 fallisce, la descrizione condizione resta vuota (poi marcata con * dalla logica successiva). Le schede stampate possono quindi mostrare condizioni "non risolte" dove prima veniva applicato il default per tipo socio.