Vai al contenuto

COGF71 — Scadenzario Per Agente

Sorgente: cbl/cogf71.cbl | Program-ID: COGF71 | Tipo: Consultazione/stampa con parametri di selezione e griglia risultati

Menu: Contabilita' > Clienti a Part.Aperte > Scadenzario Per Agente


Scopo

Estrae e visualizza lo scadenzario delle partite aperte raggruppato per agente (o sub-agente). Elabora i dati dalla prima nota contabile (via COGS77), li carica su file di transito indicizzati e li presenta in griglia con totali per cliente e per agente. Supporta stampa e esportazione Excel.


Struttura della maschera

Screen definita in cogf71-01.scr. Due fasi:

Fase parametri (campi tab-maschera.tm-dati)

  • tm-tipo-estr: tipo estrazione — "A" (per agente) o altro (per sub-agente)
  • tm-agente / tm-desc-age: codice e descrizione agente (COGS65W)
  • tm-age2 / tm-desc-age2: sub-agente (COGS65W)
  • tm-tipo-divisa: "C" (divisa conto) o "I" (divisa originale)
  • tm-stato-partite: "T" (tutte), "A" (aperte), "C" (chiuse)
  • tm-codice / tm-raso: codice e ragione sociale anagrafica (COGS65W)
  • tm-fat-tip / tm-fat-tip-des: tipo partita/documento
  • tm-no-tipo-partita: "S" esclude, "N" include il tipo selezionato
  • tm-datada / tm-dataa: intervallo date (COGS52)
  • tm-tipag: tipo pagamento (COGU22)
  • tm-attiva-escl / tm-data-escl: esclusione Ri.Ba. con data limite

Fase risultati (griglia e-tm-tab)

Array tm-righe (max 100 elementi) con campi: codice cliente, nome, tipo pagamento, fattura (anno/tipo/numero/scadenza), data fattura, data scadenza, importo, segno, sospensione, note, agente, sub-agente, divisa.

Griglia read-only (begin-entry -> fail-terminate).

Pulsanti custom bitmap: agente precedente (F5), agente successivo (F6), visualizza immagine (F4).


Logica di elaborazione

Inizializzazione

  1. Apre files, legge azienda. Se consorzi, legge configurazione consorzi e agente operatore.
  2. Apre file Ri.Ba. (nutariba, nutsriba); se non esistono imposta sw-rb = "NO RB".
  3. Legge esercizio contabile da COGTABEL tipo 66.
  4. Crea file temporanei cogtrans2, cogtrans, cogtrans3 nella directory temp.
  5. Se richiamato da altro programma (w45-caller), preimposta i parametri dal linkage util-w45.
  6. Imposta tipo "C" (clienti) come default, tipo pagamento "T" (tutti).

Sequenza accept parametri

a-tm-tipo-estr > a-tm-agente > a-tm-age2 > a-tm-tipo-divisa > a-tm-stato-partite > a-tm-codice > a-tm-fat-tip > a-tm-no-tipo-partita > a-tm-datada > a-tm-dataa > a-tm-tipag > a-tm-attiva-escl > a-tm-data-escl > a-inizio-dati.

Estrazione dati (a-inizio-dati-ok e seguenti)

  1. Cerca parametri partite (acce-24a): legge COGTABEL tipo 45 per configurazione partite aperte.
  2. Chiama COGS77 (una-pre-0): con funzione "R-VAL-ANA", calcola partite aperte e le scrive su file COGWPNO.
  3. Legge COGWPNO (una-20b): per ogni partita aperta:
  4. Legge anagrafica cliente (rd-coggeana).
  5. Cerca raccordo fattura/DDT (cogracco) per determinare il sub-agente (tes-age2).
  6. Filtra per agente/sub-agente, tipo documento, personalizzazioni consorzio/agenzia, tipo pagamento.
  7. Cerca Ri.Ba. se il pagamento e' di tipo "I" o "R".
  8. Risolve nomi agente e sub-agente.
  9. Scrive su cogtrans2 (file di transito ordinato per agente/nome/codice/data).

  10. Costruzione griglia (ela-10, ela-20, par-00):

  11. Legge cogtrans2 in ordine chiave secondaria (agente/nome/codice/data).
  12. Chiama COGS51 per stato sospensione di ogni partita.
  13. Gestisce rotture per cliente (rot-nome) e per agente (rot-agente) con righe di totale.
  14. Scrive su cogtrans (file ordinato per visualizzazione in griglia) e cogtrans3 (totali per agente).
  15. Sottrae importi di ritenuta d'acconto non a pagare (da cogritac).
  • F5/F6: navigazione agente precedente/successivo (tramite cogtrans3).
  • F9: stampa report (via st-stampa).
  • F8: dettaglio partita.
  • Shift+F5: esporta in Excel.

File utilizzati

File Tipo Descrizione
COGTABEL (feurtab) Input Tabella generica (tipo 45 = config partite, tipo 66 = esercizio)
COGWPNO Input File partite calcolate da COGS77
COGGEANA Input Anagrafica clienti/fornitori
COGRACCO Input Raccordo fattura/DDT
COGTESBO Input Testate bolle (per sub-agente)
COGRITAC Input Ritenute d'acconto
COGAGZON Input Zone agente (per filtro consorzi)
NUTARIBA Input Archivio Ri.Ba. (opzionale)
NUTSRIBA Input Archivio Ri.Ba. storico (opzionale)
PRNTOPER Input Operatore/agente (per consorzi)
cogtrans2 Temp I-O File di transito partite ordinato per agente
cogtrans Temp I-O File di transito per visualizzazione griglia
cogtrans3 Temp I-O File totali per agente
FLSTA Temp File di stampa

Programmi chiamati

Programma Scopo
COGS77 Calcolo partite aperte (funzione "R-VAL-ANA")
COGS51 Stato sospensione partita
COGS65W Accept codice anagrafico (clienti, fornitori, agenti)
COGS52W Accept campo data
COGS60W Accept combo-box (tipo estrazione, tipo divisa, stato partite)
COGS95W Accept check-box (esclusione Ri.Ba., escludi tipo partita)
COGU10W Gestione divisa di conto
COGU22 Accept tipo pagamento
WIN067 Selezione tipo documento
COGU06 Visualizzazione immagine (F4)
GRIDADMN Gestione griglia

Copybook principali

Copybook Contenuto
cogf71.select Select del programma
cogf71.fd FD file aggiuntivi
cogf71.wrk Working-storage generata
cogf71-01.scr Screen section
cogf71.decla Declaratives
cogfiles.cpy FD COGTABEL
cogwpno.cpy Record COGWPNO (partite)
cogconta.cpy Record esercizio contabile
cogmovpa.cpy Record movimenti partite
capazien.cpy Dati azienda consorzi
utilw45.cpy Linkage per chiamata esterna
utilncnf.cpy Configurazioni
wgrid.cpy Variabili gestione griglia
utilgdad.cpy Interfaccia GRIDADMN

Note tecniche

  • Il programma gestisce tre file di transito temporanei nella directory temp, con nome che include operatore e timestamp per evitare conflitti.
  • Il codice agente per la riga totale e' "TTTTT" (non piu' 99999, per evitare conflitti con agenti reali — TASK-993).
  • In ambiente consorzi (AgriCenter, ecc.), vengono applicati filtri aggiuntivi per agenzia/polo/sede basati su az-personal, az-main-age, w-ptop-age.
  • L'estrazione sottrae le ritenute d'acconto non a pagare (rit-totritac - rit-ritac) dall'importo della partita.
  • La griglia e' completamente read-only.