Vai al contenuto

COGI57 - Legge art.62 Pagamenti per Cliente

Sorgente: cbl/cogi57.cbl | Program-ID: COGI57 | Tipo: Programma interattivo (maschera con griglia, modalita' aggiornamento/selezione)

Menu: Vendite > Fatturazione > Tabelle > Legge art.62 Pagamenti per Cliente


Scopo

Gestisce, per singolo cliente, i codici di pagamento specifici previsti dalla normativa "art.62" (deperibili). Ogni riga associa a un cliente un codice pagamento merci "BI", con relativa descrizione, codice di pagamento standard collegato e codice di raggruppamento bolle.

I dati sono memorizzati come record della tabella generica COGTABEL con tipo alfanumerico "BI": la chiave euta-cod e' composta dai 5 caratteri del codice cliente + 1 carattere del codice art.62. Il programma puo' essere richiamato in modalita' selezione tramite il linkage utilcogi57.

Pattern standard "tabella anagrafica" con griglia editabile e duplice modalita' aggiornamento/selezione (analogo ad ASN020, ma su COGTABEL).


Struttura della maschera

Screen definita in cogi57-01.scr. Unica griglia e-tm-tab (array tm-grid-dati, max k-max-ele-tab = 500 righe). Colonne principali:

  • tm-ana-cod / tm-ana-des: codice e ragione sociale cliente (letta da COGGEANA, tipo "C")
  • tm-cod: codice art.62 (identificatore "BI", 6o carattere della chiave)
  • tm-des: descrizione
  • tm-cod-pag / tm-des-cod-pag: codice pagamento standard collegato (tipo k-euta-tipo-pag = 14) e sua descrizione
  • tm-raggr: codice di raggruppamento per bolle

Campi tecnici per il tracciamento modifiche: tm-cli-prec (codice cliente originale), tm-cod-prec (codice art.62 originale), tm-fl-riga-mod.

Titolo maschera: "Legge.art.62 Pagamenti specifici per cliente".


Logica di elaborazione

Apertura (apri): init, apertura file, lettura azienda. Valuta il linkage utilcogi57: se cogi57-called = "COGI57" e cogi57-caller valorizzato imposta modalita' "S" (selezione), altrimenti "A" (aggiornamento). Definisce i tasti funzione a seconda della modalita' (F3 selezione/modifica in "S", F3 aggiorna in "A"; sempre Invio, F8 aiuto, S-F4 griglia, Ctrl+A aggiungi, Ctrl+E elimina).

Caricamento griglia (a4 / a10-loop): start su COGTABEL con euta-tipo-x = "BI", scan sequenziale fino a k-max-ele-tab. Per ogni record: estrae codice cliente (euta-cod (1:5)) e codice art.62 (euta-cod (6:1)), legge la ragione sociale da COGGEANA, riporta descrizione, codice pagamento e raggruppamento. In a30 risolve la descrizione del codice pagamento leggendo COGTABEL tipo 14.

Gestione griglia (a-grid / a-accept-grid): - F3 (modo A): valida e salva -> a1-aggiorna -> b-aggiorna. Se chiamato in selezione, dopo il salvataggio torna in modalita' "S". - F3 (modo S): conferma selezione (cogi57-out-cod / cogi57-out-des) e ritorna. - Invio (modo S): seleziona il codice art.62 corrente e ritorna. - Ctrl+A / Ctrl+E: aggiungi / elimina riga (solo in modo A). - S-F4: GRIDADMN per personalizzazione griglia.

Aiuti da cella (z-usa-tf-tm-tab-ep, F8): - Su colonna codice art.62 (gcn-cod): chiama COGI56 per selezionare il codice art.62 da tabella. - Su colonna codice pagamento (gcn-cod-pag): chiama WIN002 per selezionare il codice pagamento.

Aggiornamento (b-aggiorna): confronto standard tm-cod vs tm-cod-prec (e tm-ana-cod vs tm-cli-prec) per decidere insert/modifica/cancella su COGTABEL: - tm-cod = tm-cod-prec e stesso cliente: modifica (b2-modifica, solo se tm-fl-riga-mod = "S") - tm-cod-prec vuoto: inserimento (b1-inserisci) - tm-cod vuoto: cancellazione (b3-cancella) - chiavi diverse: cancella vecchio + inserisce nuovo

Dopo ogni scrittura/cancellazione su COGTABEL viene eseguito x-sincronizza-kpn, che chiama SWN065 con operazione "ESPORTA-KEY" per allineare la chiave verso KPN (accodamento variazioni per sincronizzazione esterna).

Controlli campo: codice art.62 esistente su COGTABEL tipo "BH" (x-controlla-tm-cod), descrizione obbligatoria (x-controlla-tm-des), codice pagamento esistente su tipo 14 (x-controlla-tm-cod-pag), raggruppamento bolle obbligatorio (x-controlla-tm-raggr).


File utilizzati

File Tipo Descrizione
FEURTAB (COGTABEL) I-O Tabella generica; tipo "BI" = pagamenti art.62 per cliente (record principale), tipo 14 = codici pagamento, tipo "BH" = codici art.62
COGGEANA Input Anagrafica clienti/fornitori (ragione sociale)

Programmi chiamati

Programma Scopo
COGI56 Selezione codice art.62 (aiuto F8 su cella codice)
WIN002 Selezione codice pagamento (aiuto F8 su cella pagamento)
SWN065 Sincronizzazione chiave verso KPN (x-sincronizza-kpn, op. "ESPORTA-KEY")
GRIDADMN Gestione/personalizzazione griglia

Sono inoltre chiamate le usuali subroutine di accept griglia generate da Screen Designer.


Copybook principali

Copybook Contenuto
cogi57.select, cogi57.fd, cogi57.wrk, cogi57-01.scr, cogi57.prc, cogi57.decla File Screen Designer (in cbl/screens/)
feurtab.fd, cogfiles.cpy FD e layout COGTABEL
utilcogi57.cpy Linkage del programma (chiamata in selezione)
utilcogi56.cpy Linkage COGI56
utilagprg.cpy Linkage SWN065 (sincronizzazione KPN)
utilw02.cpy Linkage WIN002
utils65.cpy, utilu20.cpy Linkage subroutine accept anagrafica / utility
wgrid.cpy, utilgdad.cpy Working griglia + linkage GRIDADMN
cogazien.cpy, capazien.cpy Dati azienda (base e consorzi)
wgrave, wnscr, wopenf, wstato Working storage standard

Note tecniche

  • Il "codice deperibilita" (art.62) e' un record COGTABEL di tipo alfanumerico "BI"; la chiave concatena codice cliente (5) + codice art.62 (1). La descrizione dei codici pagamento collegati si legge da COGTABEL tipo 14, i codici art.62 selezionabili da tipo "BH".
  • In b1-inserisci, la conferma di sovrascrittura in caso di chiave gia' esistente e' commentata (acc-conf-custom disabilitato): l'inserimento riscrive comunque il record.
  • La sincronizzazione KPN (SWN065) e' eseguita dopo ogni insert/modifica/cancella per propagare le variazioni delle chiavi.
  • La griglia e' in sola lettura quando il programma e' in modalita' selezione (z-event-tm-tab-ep imposta event-action-fail-terminate se a-modalita = "S").
  • Il programma include capazien.cpy (dati azienda consorzi), disponibile sotto cap/cpy/.