COGV6A — Selezione Documenti da Fatturare
Sorgente: cbl/cogv6a.cbl | Tipo: Programma interattivo a griglia con filtri (2 pagine: Filtri + Risultati)
Menu: Vendite > Fatturazione > A singolo cliente > Selezione documenti da fatturare
Scopo
Presenta all'operatore l'elenco delle bolle (DDT) di vendita non ancora fatturate, ne consente la selezione multipla, verifica la coerenza delle selezioni (controllo univoco), e lancia la creazione delle fatture chiamando COGV60NO. Supporta anche la pre-stampa fac-simile (F9) senza creare la fattura effettiva.
Il programma imposta la data di ricerca con un range automatico: da (data sistema meno un anno, primo giorno del mese precedente) a (data sistema), modificabile dall'utente prima di avviare la ricerca. Per la personalizzazione BT (Blutekna, az-personal = "BT"), la data finale viene calcolata come ultimo giorno del mese precedente anziche' la data di sistema.
Struttura della maschera
La form e' organizzata in un tab-control a due pagine:
- Pagina 1 — Filtri (
k-pag-filtri): accetta i parametri di selezione; F7 o F3 avviano la ricerca.
- Pagina 2 — Risultati (
k-pag-risultati): mostra la griglia e-grid-det con i DDT trovati; l'operatore seleziona le righe e preme F3 per creare le fatture.
Filtri di selezione (Pagina Filtri)
| Campo |
Variabile |
Tipo |
Descrizione |
| Da data |
tm-data |
9(8) |
Data DDT iniziale (default: primo del mese precedente l'anno scorso) |
| A data |
tm-a-data |
9(8) |
Data DDT finale (default: data sistema; per personalizzazione BT: fine mese precedente) |
| Commessa |
tm-tsc |
x(10) |
Filtra i DDT collegati a questa commessa (solo se az-commesse = "M") |
| Tipo attivita |
tm-tip-att |
x(2) |
Filtra per tipo attivita dell'intervento o contratto (solo se az-assist = "S") |
| Bolle da estrarre |
tm-sosp |
x(1) |
"T" = tutte (default), "S" = solo sospese (tes-flagfat = "*"), "F" = solo non sospese |
| Area tecnica |
tm-areat |
x(3) |
Filtra per area tecnica (solo se az-assist = "S" o config info-crm-area-tecnica) |
Logica di selezione bolle (x-select-bolla)
La procedura x-select-bolla applica in sequenza i seguenti filtri su ciascun record di COGTESBO letto per data:
- Tipo CF: solo
tes-tipocf = "C" (clienti).
- Raccordo (prima verifica): se esiste un raccordo
COGRACCO sulla bolla con tipo diverso da tm-cfg-docmag, la bolla e' esclusa (gia' fatturata o raccordata ad altro documento non-magazzino).
- Flag sospensione (
tm-sosp): se il filtro non e' "T", esclude le bolle non conformi al flag.
- Area tecnica (
tm-areat): se valorizzato, chiama filtro-area-tec; cerca l'area sull'intervento collegato (ASNINDMG → ASNINTES → ASNCHTES) o sul CRM cliente (CRMS06).
- Gruppo aziende (config
tm-cfg-gruppo-aziende = "S"): legge COGTESAP e confronta tsa-grp-az-cod con tm-cfg-grp-az-azienda.
- Benestare cliente (
aap2-fl-benestare = "S"): legge la causale del DDT da COGTABEL (tipo 15). Se euta-cb-benestare = "G": esclusa. Se euta-cb-benestare = "A": inclusa solo se il benestare collegato (COGBSDAU → COGBSTES) ha stato 9 (pronto).
- Tipo bolla (
tes-tipob): per aziende cantine solo "I" e "S"; per tutte le altre accetta "B", "I", "D", "U", "S".
- Personalizzazione "MS": escluse le bolle con causale omaggio (
az-cau-oma).
- Causale fatturabile: la causale del DDT deve esistere in
COGTABEL (tipo 15), avere euta-cb-fl-eu = "U", euta-cb-con-fat = "SI", euta-cb-cli-for = "C".
- Raccordo (seconda verifica, non-MS): riconferma che non esista raccordo di tipo diverso da
tm-cfg-docmag.
- Commessa (solo se
az-commesse = "M" e tm-tsc valorizzato e az-ges-lo <> "S"): verifica il collegamento del DDT alla commessa tramite COGRIGCM (tipo "RD" o "RG").
- Tipo attivita (solo se
az-assist = "S" e tm-tip-att valorizzato): cerca il collegamento del DDT a un intervento (ASNINDMG → ASNINTES → ASNCHTES) o a un contratto (ASNCNFAT → ASNCNTES) con il tipo attivita corrispondente.
Controllo univoco (x-check-univoco)
Prima di lanciare la fatturazione (F3 sulla griglia), il programma verifica che tutte le righe selezionate (flag "F") siano compatibili per la creazione di una sola fattura. Il controllo confronta ogni riga con la prima selezionata (ri-mem):
| Campo verificato |
Messaggio di errore |
t-gor-r-nonno-cod |
"cliente di fatturazione non univoco." |
t-gor-r-cond-pag |
"tipo di pagamento non univoco." |
t-gor-r-pag1 |
"condizioni di pagamento non univoche." |
t-gor-r-divisa |
"divisa di pagamento non univoche." |
t-gor-r-raggrup |
"codice raggruppamento non univoco." |
t-gor-r-tipo-fat |
"tipo fatturazione non univoco." |
t-gor-r-brand |
"codice Brand non univoco." |
t-gor-r-bsts-contr |
"Ordine/contratto Benestare non univoco." |
| raccordo su DDT singolo |
"Documento X gia' fatturato." |
I DDT con flag sospensione (tm-r-sosp = "S") non possono essere selezionati: il tentativo di selezione genera il messaggio "DDT Sospeso: selezione non ammessa".
Selezione rapida — F2 "Seleziona tutto" (x-sel-tutto)
F2 opera in modalita' toggle:
- Se esistono righe gia' selezionate ("F"), le deseleziona tutte.
- Altrimenti, seleziona tutte le righe che hanno gli stessi valori di nonno-cod, cond-pag, pag1, divisa, raggrup, tipo-fat, brand, bsts-contr della riga corrente, escludendo i DDT sospesi (t-gor-r-sosp = " ").
Colonne della griglia (GRID-DET)
La griglia e' definita nel file di transito t-grid-det. Alcune colonne sono condizionalmente visibili in base alla configurazione aziendale.
Colonne sempre visibili (default)
| # |
Nome colonna |
Campo transito |
Tipo |
Descrizione |
| 1 |
Selezione |
t-gor-r-selezione |
x(1) |
"F" = selezionato, " " = non selezionato (modificabile) |
| 2 |
Documento |
t-gor-r-documento / -ed |
x(17) |
Chiave DDT (mag/anno/tipo/numero) |
| 3 |
Data |
t-gor-r-data |
9(8) |
Data DDT |
| 4 |
Cod. cliente (nonno) |
t-gor-r-nonno-cod |
9(5) |
Codice cliente di fatturazione |
| 5 |
Nome cliente |
t-gor-r-nonno-des |
x(40) |
Ragione sociale cliente fatturazione |
| 6 |
Cod. padre |
t-gor-r-padre-cod |
9(5) |
Codice sede/reparto |
| 7 |
Nome padre |
t-gor-r-padre-des |
x(40) |
Descrizione sede/reparto |
| 8 |
ID destinazione |
t-gor-r-id-dest |
9(4) |
ID destinatario merce |
| 9 |
Destinazione |
t-gor-r-destinazione |
x(100) |
Indirizzo destinazione (da COGDESTI o COGGEANA) |
| 10 |
Ordine |
t-gor-r-Ordine / -ed |
x(16) |
Riferimento ordine cliente (da COGU09) |
| 11 |
Cond. pag. |
t-gor-r-cond-pag |
x(1) |
Tipo di pagamento (tes-rb) |
| 12 |
Pag. 1 |
t-gor-r-pag1 |
9(2) |
Codice condizione di pagamento |
| 13 |
Pag. 1 desc. |
t-gor-r-pag1-d |
x(30) |
Descrizione condizione di pagamento (da COGTABEL) |
| 14 |
Divisa |
t-gor-r-divisa |
x(2) |
Valuta (tes-currency) |
| 15 |
Raggrup. |
t-gor-r-raggrup |
9(2) |
Codice raggruppamento fattura |
| 16 |
Causale |
t-gor-r-caus |
9(2) |
Codice causale DDT |
| 17 |
Causale desc. |
t-gor-r-caus-d |
x(30) |
Descrizione causale (da COGTABEL tipo causale) |
| 36 |
Reverse charge |
t-gor-r-Rever-ch |
x(7) |
Flag reverse charge (da COGDESOR tipo "BB") |
| 37 |
IVA agevolata |
t-gor-r-iva-agv |
x(7) |
Flag IVA agevolata |
| 38 |
Rit. acconto |
t-gor-r-rit-acc |
x(7) |
Flag ritenuta d'acconto |
| 39 |
Importo |
t-gor-r-importo |
s9(12)v9(6) |
Totale DDT (da COGS87.COB) |
| 42 |
Importo ivato |
t-gor-r-imp-iv |
s9(12)v9(6) |
Totale DDT ivato (da COGS87.COB) |
| 62 |
Sospeso |
t-gor-r-sosp |
x(1) |
"S" = DDT sospeso (da tes-flagfat) |
| 63 |
Descr. sospensione |
t-gor-r-sosp-des |
x(60) |
Motivazione sospensione (da COGDESOR tipo "BS") |
| 64 |
Op. sospensione |
t-gor-r-ope-sosp |
9(3) |
Operatore che ha sospeso |
| 65 |
Op. sosp. desc. |
t-gor-r-ope-sosp-d |
x(25) |
Nome operatore sospensione |
| 66 |
Data sosp. |
t-gor-r-data-sosp |
9(8) |
Data sospensione |
| 67 |
Op. sblocco |
t-gor-r-ope-sblo |
9(3) |
Operatore che ha sbloccato |
| 68 |
Op. sblocco desc. |
t-gor-r-ope-sblo-d |
x(25) |
Nome operatore sblocco |
| 69 |
Data sblocco |
t-gor-r-data-sblo |
9(8) |
Data sblocco |
Colonne visibili solo con az-ges-lo = "S" (gestione lotto)
| # |
Nome colonna |
Campo transito |
Tipo |
Descrizione |
| 24 |
Commessa lab. |
t-gor-r-com-lab |
x(10) |
Commessa lotto (da COGRACBB → COGZS1) |
| 25 |
Paziente |
t-gor-r-paziente |
x(30) |
Paziente (da COGZS1) |
| 26 |
Ora cons. |
t-gor-r-ora-com |
9(2) |
Ora consegna |
| 27 |
Min cons. |
t-gor-r-min-com |
9(2) |
Minuto consegna |
Colonne visibili solo con az-assist = "S" (modulo assistenza)
| # |
Nome colonna |
Campo transito |
Tipo |
Descrizione |
| 28 |
ID intervento |
t-gor-r-inter-id |
9(12) |
ID intervento (ASNINTES) |
| 29 |
Data intervento |
t-gor-r-inter-data |
9(8) |
Data intervento |
| 30 |
ID chiamata |
t-gor-r-ch-id |
9(12) |
ID chiamata (ASNCHTES) |
| 31 |
Data chiamata |
t-gor-r-ch-data |
9(8) |
Data chiamata |
| 32 |
Cliente chiamata |
t-gor-r-ch-cliente |
x(30) |
Cliente originale della chiamata |
| 33 |
Tipo attivita |
t-gor-r-tipo-attiv |
x(2) |
Codice tipo attivita |
| 34 |
Tipo att. desc. |
t-gor-r-tipo-attiv-d |
x(20) |
Descrizione tipo attivita |
| 35 |
Sospesa (chiamata) |
t-gor-r-sospesa |
x(7) |
Flag "S" se stato chiamata prevede astc-fat-sosp = "S" |
| 44 |
Responsabile |
t-gor-r-resp |
x(3) |
Codice responsabile chiamata |
| 47 |
Resp. desc. |
t-gor-r-resp-des |
x(30) |
Nome responsabile |
| 48 |
Area tecnica |
t-gor-r-areatec |
x(3) |
Codice area tecnica |
| 49 |
Area tec. desc. |
t-gor-r-atec-des |
x(40) |
Descrizione area tecnica |
| 50 |
Ora intervento |
t-gor-r-int-ora |
9(4) |
Ora intervento |
| 51 |
Oggetto chiamata |
t-gor-r-ch-ogge |
x(80) |
Oggetto chiamata |
| 52 |
Flag risolutivo |
t-gor-r-fl-risol |
x(1) |
Flag intervento risolutivo |
| 53 |
Note fatturazione |
t-gor-r-note-fatt |
x(500) |
Note di fatturazione (ASNINDAG tipo "F" e "T") |
| 54 |
Data chiusura int. |
t-gor-r-int-datach |
9(8) |
Data chiusura intervento (ASNINTE2) |
| 55 |
Ora chiusura int. |
t-gor-r-int-orach |
9(4) |
Ora chiusura intervento |
| 58 |
Tecnici |
t-gor-r-nome-tecnici |
x(30) |
Nomi tecnici intervento (da COGRIFER) |
| 59 |
Stato commessa |
t-gor-r-st-commessa |
x(2) |
Stato chiamata |
Colonne visibili solo con az-commesse = "M" (gestione commesse)
| # |
Nome colonna |
Campo transito |
Tipo |
Descrizione |
| 40 |
Commessa lav. |
t-gor-r-com-lav |
x(10) |
Codice commessa di lavoro (da COGRIGCM) |
| 56 |
Progetto commessa |
t-gor-r-com-progetto |
x(30) |
Numero progetto della commessa |
| 57 |
Desc. commessa |
t-gor-r-com-desc |
x(60) |
Descrizione breve commessa |
| 41 |
Cod. figlio |
t-gor-r-figlio-cod |
9(5) |
Codice figlio anagrafica |
| 43 |
Nome figlio |
t-gor-r-figlio-des |
x(40) |
Descrizione figlio anagrafica |
Colonne visibili solo con tm-cfg-gest-brand = "S" (gestione brand)
| # |
Nome colonna |
Campo transito |
Tipo |
Descrizione |
| 18 |
Tipo fatt. |
t-gor-r-tipo-fat |
x(2) |
Tipo fatturazione (da COGTESAP) |
| 19 |
Tipo fatt. desc. |
t-gor-r-tipo-fat-d |
x(20) |
Descrizione tipo fatturazione |
| 20 |
Brand |
t-gor-r-brand |
x(3) |
Codice brand (da COGTESAP) |
| 21 |
Brand desc. |
t-gor-r-Brand-d |
x(30) |
Descrizione brand (da COGBRAND) |
Colonne benestare (visibili sempre, valorizzate se esiste benestare)
| # |
Nome colonna |
Campo transito |
Tipo |
Descrizione |
| 60 |
ID benestare |
t-gor-r-bsts-id |
9(12) |
ID benestare (COGBSTES tipo "G" o "A") |
| 61 |
Contratto benestare |
t-gor-r-bsts-contr |
x(20) |
Codice ordine/contratto benestare |
Agente
| # |
Nome colonna |
Campo transito |
Tipo |
Descrizione |
| 22 |
Cod. agente |
t-gor-r-age-cod |
9(5) |
Codice agente (da tes-agente) |
| 23 |
Nome agente |
t-gor-r-age-des |
x(40) |
Nome agente (da COGGEANA tipo fornitore) |
Tasti funzione
| Tasto |
Azione |
| F2 |
Seleziona tutto / deseleziona tutto (sulla griglia) |
| F3 |
Avvia ricerca (dalla pagina filtri) / Crea fatture dai DDT selezionati (dalla griglia) |
| F5 |
Visualizza/modifica note di fatturazione dell'intervento (solo az-assist = "S") |
| F7 |
Avvia ricerca (equivalente a F3 dalla pagina filtri) |
| F8 |
Apre finestra di navigazione/dettaglio del documento (WIN016.COB) |
| F9 |
Fac-simile pre-stampa fatture selezionate (senza creare la fattura) |
| S-F2 |
Navigazione documento (COGMA3 classe "B") |
| S-F4 |
Gestione colonne griglia (GRIDADMN) |
| S-F5 |
Esporta griglia in Excel |
| S-F8 |
Apertura commessa di lavoro (COGG52) |
| F8 (su filtro) |
Help per tipo attivita (ASN016) o area tecnica (ASN035) |
Programmi chiamati (CALL)
| Programma |
Condizione |
Scopo |
| COGV60NO |
F3 con righe selezionate valide, o F9 per pre-stampa |
Crea le fatture dai DDT selezionati; riceve il file di transito tran-v60 e il flag cogv60-transito-pronto = k-yes. Quando cogv60-pre-stampa = "SI" (attivato da F9), genera solo l'anteprima fac-simile senza creare fatture ne' modificare lo stato dei DDT; quando cogv60-pre-stampa = spaces (attivato da F3), crea le fatture effettive |
| COGMA3 |
S-F2 |
Navigazione documento (classe "B", chiave dal DDT selezionato) |
| COGG52 |
S-F8 |
Apertura commessa di lavoro (g52-tsc-cod) |
| WIN016.COB |
F8 sulla griglia |
Dettaglio bolla (finestra) |
| GRIDADMN |
S-F4 / init griglia |
Gestione personalizzazione colonne |
| COGS87.COB |
scrivi-t-gor |
Calcolo totale DDT (imponibile e ivato) |
| COGU09 |
scrivi-t-gor |
Ricerca ordine cliente collegato al DDT |
| COGZS1 |
scrivi-t-gor (se az-ges-lo = "S") |
Lettura commessa lotto, paziente, ora consegna |
| CRMS06 |
filtro-area-tec e scrivi-t-gor |
Lettura informazione CRM area tecnica del cliente |
| ASN016 |
F8 su filtro tipo attivita |
Selezione tipo attivita |
| ASN035 |
F8 su filtro area tecnica |
Selezione area tecnica |
| RNEWCONF |
z99-confi |
Lettura parametri di configurazione |
| COGU10W |
a4-calcola-totale |
Formattazione importo totale selezionato |
| c$justify |
x-riempi-t-gor-r-ordine-ed |
Giustificazione stringa (utility runtime) |
File e tabelle utilizzati
File ISAM principali
| File |
Copybook |
Accesso |
Scopo |
| COGTESBO |
cogtesbo.cpy |
Lettura sequenziale per data (chia2) |
Testate DDT — sorgente principale della ricerca |
| COGRACCO |
cogracco.cpy |
Lettura per chiave bolla (chia2) |
Raccordi — verifica se il DDT e' gia' fatturato |
| COGGEANA |
coggeana.cpy |
Lettura diretta |
Anagrafica: nonno, padre, figlio, agente |
| COGTABEL |
cogtabel.cpy |
Lettura diretta |
Tabelle: causali bolla (tipo 15), condizioni pagamento, tipo fatturazione |
| COGTESAP |
cogtesap.cpy |
Lettura diretta |
Appendice testata: tipo fatturazione, brand |
| COGDESTI |
cogdesti.cpy |
Lettura diretta |
Destinatari merce |
| COGMOMAG |
cogmomag.cpy |
Lettura per chiave |
Movimenti magazzino (per ricerca ordine) |
| COGRIGCM |
cogrigcm.cpy |
Lettura sequenziale per chiave (chia2) |
Righe commesse — collegamento DDT-commessa |
| COGRACBB |
cogracbb.cpy |
Lettura sequenziale (chia2) |
Raccordi bolle lotto (modulo az-ges-lo) |
| COGBRAND |
cogbrand.cpy |
Lettura diretta |
Brand — descrizione |
| COGTESCM |
cogtescm.cpy |
Lettura diretta |
Testate commesse — progetto e descrizione |
| COGDESOR |
cogdesor.cpy |
Lettura/scrittura |
Dati accessori DDT: sospensione ("BS"), flag IVA ("BB") |
| COGANAP2 |
coganap2.cpy |
Lettura diretta |
Dati estesi anagrafica: flag benestare cliente |
| COGBSTES |
cogbstes.cpy |
Lettura per chiave (chia3) |
Testate benestare (tipo "G") |
| COGBSDAU |
cogbsdau.cpy |
Lettura sequenziale (chia2) |
Documenti benestare (tipo "A") |
| COGRIFER |
cogrifer.cpy |
Lettura diretta |
Referenti/tecnici (per nomi tecnici intervento) |
| PRNTOPER |
prntoper.cpy |
Lettura diretta |
Operatori — nome (per operatore sospensione/sblocco) |
| ASNINDMG |
asnindmg.cpy |
Lettura sequenziale (chia2) |
Indice movimenti magazzino interventi |
| ASNINTES |
asnintes.cpy |
Lettura diretta |
Testate interventi |
| ASNINTE2 |
asninte2.cpy |
Lettura diretta |
Dati aggiuntivi interventi (data/ora chiusura) |
| ASNCHTES |
asnchtes.cpy |
Lettura diretta |
Testate chiamate |
| ASNTPATT |
asntpatt.cpy |
Lettura diretta |
Tipi attivita |
| ASNSTCHM |
asnstchm.cpy |
Lettura diretta |
Stati chiamata |
| ASNAREAT |
asnareat.cpy |
Lettura diretta |
Aree tecniche |
| ASNRESPO |
asnrespo.cpy |
Lettura diretta |
Responsabili |
| ASNCNFAT |
asncnfat.cpy |
Lettura sequenziale (chia3) |
Fatture da contratti assistenza |
| ASNCNTES |
asncntes.cpy |
Lettura diretta |
Testate contratti assistenza |
| ASNINDAG |
asnindag.cpy |
Lettura diretta |
Allegati intervento (note fatturazione tipo "F", "T") |
File di transito
| File |
Scopo |
| t-grid-det |
File ISAM temporaneo con i DDT estratti, ordinati per visualizzazione in griglia. Una riga per DDT. Aperto/chiuso/cancellato dal programma. |
| tran-v60 |
File sequenziale temporaneo con i DDT selezionati, passato a COGV60NO. Path: ext-tmp-dir/#$COGV60.{operatore}. |
Parametri di configurazione (RNEWCONF)
| Gruppo |
Chiave |
Variabile interna |
Tipo |
Effetto |
CONTABIL |
tipo-doc-iva-docmag-vendita |
tm-cfg-docmag |
x(2) |
Tipo raccordo "bolla contabilizzata" (escluso dai controlli di fatturazione) |
ass-chiam |
gestione-tipo-attivita |
tm-cfg-gestione-tipo-attivita |
x(1) |
Abilita filtro tipo attivita |
azienda |
gestione-brand-marchio |
tm-cfg-gest-brand |
x(1) |
"S" = mostra colonne brand e tipo fatturazione |
contabil |
tipi-doc-per-causale |
tm-cfg-gest-cau |
x(1) |
Gestione causale (non documentata in dettaglio) |
abilita |
grp-az-azienda |
tm-cfg-grp-az-azienda |
x(4) |
Codice azienda del gruppo per filtro |
assist |
gestione-gruppo-aziende |
tm-cfg-gruppo-aziende |
x(1) |
"S" = filtra DDT per azienda del gruppo |
assist |
info-crm-area-tecnica |
tm-cfg-info-crm-area-tecnica |
9(4) |
Codice info CRM per area tecnica cliente (0 = disabilitato) |
Copybook inclusi
Working Storage
feurtab.fd, cogfiles.cpy, k-tipi-cogtabel.cpy, cogv6a.wrk, cogv6a.imppredf-wrk, cogv6a.tm, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgesdate.cpy, utilcogma3.cpy, utilgdad.cpy, utilasn016.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utils87.cpy, utils93.cpy, utilzs1.cpy, utilu09.cpy, utilu10.cpy, utilu20.cpy, utilu35w.cpy, utilasn035.cpy, utilcrms06.cpy, utilimppredf.cpy, utilncnf.cpy
Linkage Section
wcont.cpy, utilg52.cpy, utilcogv60.cpy, wcont1.cpy
Procedure Division
cogv6a.decla, cogv6a.prc, cogv6a.imppredf, call-u35.cpy, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy
Chiavi file ISAM (procedure I/O)
cogtesbo.k02, cogracco.k02, cogrigcm.k02, cogracbb.k02, asnindmg.k02, asncnfat.k03, cogbsdau.k02, cogbstes.k03, tran-v60.k01
Paragrafi chiave (PROCEDURE DIVISION)
| Paragrafo |
Scopo |
apri |
Inizializzazione: apre file, carica configurazioni, crea transito griglia, definisce pulsanti toolbar |
a0 |
Imposta titolo form, costruisce controlli, carica colonne griglia |
a4 |
Reset filtri, imposta ordinamento predefinito (per documento), carica filtro predefinito |
a-pag-filtri |
Posizionamento sulla pagina filtri, attivazione F7 |
a-tm-data … a-tm-areat |
Accept dei singoli campi filtro con validazione |
a-richiesta-conferma / a-controlla-filtri |
Validazione complessiva filtri prima della ricerca |
a-pag-risultati |
Posizionamento sulla pagina risultati |
a-leggi-dati |
Apre il transito, crea i record (z-grid-det-crea-transito), riordina, calcola totale |
a-grid-ini |
Carica i dati nella griglia; se vuoto avvisa e torna ai filtri |
a-grid |
Ciclo principale di gestione griglia: accept, eventi, tasti funzione |
a-grid-fine |
Uscita dalla griglia (ESC) |
z-grid-ricerca-dati |
Legge COGTESBO sequenzialmente per data e chiama tratta-cogtesbo |
tratta-cogtesbo |
Per ogni DDT letto: chiama x-select-bolla, se ok chiama scrivi-t-gor |
x-select-bolla |
Applica tutti i filtri di selezione (vedi sezione dedicata) |
filtro-area-tec |
Filtro area tecnica: cerca su intervento, poi su CRM cliente |
b2-verif-comm |
Verifica collegamento DDT-commessa tramite COGRIGCM |
b3-src-comm |
Recupera commessa e descrizione dal DDT (prima commessa trovata) |
scrivi-t-gor |
Popola il record di transito con tutti i dati del DDT (anagrafica, ordine, importo, commessa, benestare, intervento...) |
x-check-univoco |
Verifica univocita' dei DDT selezionati per fatturazione |
x-sel-tutto |
Logica "seleziona tutto / deseleziona tutto" (F2) |
x-lancio-fattura |
Scrive tran-v60 e lancia COGV60NO per creazione fatture |
x-prestampa |
Genera fac-simile fatture senza creare documenti effettivi. Valida che almeno una riga sia selezionata (messaggio: "Nessuna riga selezionata per Pre-stampa Fac-simile"); esclude DDT sospesi (t-gor-r-sosp = " "). Scrive su tran-v60 e chiama COGV60NO con cogv60-pre-stampa = "SI". Non modifica lo stato dei DDT |
x-cancella-fatturati |
Rimuove dal transito le righe fatturate con successo |
a4-calcola-totale |
Ricalcola numero documenti totali/selezionati e importo totale selezionato |
x-controlla-tm-r-selezione |
Validazione modifica colonna selezione: aggiorna transito, ricalcola univoco e totale |
x-controlla-tm-r-sosp |
Gestione sospensione/sblocco DDT: aggiorna tes-flagfat in COGTESBO e record in COGDESOR |
z99-confi |
Carica i 7 parametri di configurazione tramite RNEWCONF |
vis-colonne |
Imposta la visibilita' condizionale delle colonne griglia |
z-prepara-tm-grid |
Prepara la griglia (layout, colonne, personalizzazione via GRIDADMN) |
fine / z-chiudi |
Chiusura file, cancellazione transito, uscita programma |
Regole di business principali
- Solo clienti: vengono estratti esclusivamente i DDT intestati a clienti (
tes-tipocf = "C").
- Solo DDT non fatturati: la verifica avviene tramite
COGRACCO; un DDT e' escluso se ha un raccordo con tipo diverso da tm-cfg-docmag (che rappresenta la "bolla contabilizzata", non ancora fatturata).
- Causale obbligatoriamente fatturabile: la causale del DDT deve avere
euta-cb-fl-eu = "U", euta-cb-con-fat = "SI", euta-cb-cli-for = "C" in COGTABEL tipo 15.
- Sospensione DDT: il campo
tes-flagfat = "*" indica un DDT sospeso; puo' essere attivato/disattivato direttamente dalla colonna "Sospeso" in griglia con aggiornamento immediato su COGTESBO e tracciatura su COGDESOR (tipo "BS").
- Univocita' obbligatoria: i DDT selezionati per una stessa fattura devono avere identici: cliente, condizioni di pagamento, divisa, raggruppamento, tipo fatturazione, brand e contratto benestare.
- Benestare: se il cliente ha
aap2-fl-benestare = "S", i DDT con causale "da aggregare" (euta-cb-benestare = "G") vengono esclusi; i DDT con causale "da autorizzare" (euta-cb-benestare = "A") sono inclusi solo se il benestare e' nello stato 9 (pronto). Piu' DDT con benestare diverso non possono essere fatturati insieme (t-gor-r-bsts-contr deve essere univoco).
- Post-fatturazione: se
COGV60NO conferma la creazione (cogv60-fattura-creata = k-yes), le righe fatturate vengono rimosse dal transito e la griglia viene ricaricata.
- Personalizzazione "MS" (GSM/revisioni): le bolle con causale omaggio sono escluse dalla selezione.
Storico modifiche
| Data |
Descrizione |
| 2026-04-03 |
Default "A data": aggiunto condizionale su codice azienda (az-personal = "BT" per Blutekna). Per BT il campo "A data" viene calcolato come ultimo giorno del mese precedente tramite gesdate con operazione CERCA-FINE-MESE. Per tutte le altre aziende il comportamento resta invariato (data di sistema). La logica precedente (fine mese per tutti) era stata commentata il 4.3.2025 in favore della data sistema; ora e' ripristinata solo per BT. |
| 2026-04-19 |
La logica condizionale Blutekna (az-personal = "BT") per il calcolo data fine mese e' ora effettivamente attiva nel sorgente (il codice precedentemente commentato e' stato ripristinato con l'IF condizionale su az-personal). Per tutte le altre aziende resta datasis. |