Vai al contenuto

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:

  1. Tipo CF: solo tes-tipocf = "C" (clienti).
  2. 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).
  3. Flag sospensione (tm-sosp): se il filtro non e' "T", esclude le bolle non conformi al flag.
  4. Area tecnica (tm-areat): se valorizzato, chiama filtro-area-tec; cerca l'area sull'intervento collegato (ASNINDMGASNINTESASNCHTES) o sul CRM cliente (CRMS06).
  5. Gruppo aziende (config tm-cfg-gruppo-aziende = "S"): legge COGTESAP e confronta tsa-grp-az-cod con tm-cfg-grp-az-azienda.
  6. 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 (COGBSDAUCOGBSTES) ha stato 9 (pronto).
  7. Tipo bolla (tes-tipob): per aziende cantine solo "I" e "S"; per tutte le altre accetta "B", "I", "D", "U", "S".
  8. Personalizzazione "MS": escluse le bolle con causale omaggio (az-cau-oma).
  9. 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".
  10. Raccordo (seconda verifica, non-MS): riconferma che non esista raccordo di tipo diverso da tm-cfg-docmag.
  11. 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").
  12. Tipo attivita (solo se az-assist = "S" e tm-tip-att valorizzato): cerca il collegamento del DDT a un intervento (ASNINDMGASNINTESASNCHTES) o a un contratto (ASNCNFATASNCNTES) 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-dataa-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

  1. Solo clienti: vengono estratti esclusivamente i DDT intestati a clienti (tes-tipocf = "C").
  2. 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).
  3. 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.
  4. 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").
  5. Univocita' obbligatoria: i DDT selezionati per una stessa fattura devono avere identici: cliente, condizioni di pagamento, divisa, raggruppamento, tipo fatturazione, brand e contratto benestare.
  6. 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).
  7. Post-fatturazione: se COGV60NO conferma la creazione (cogv60-fattura-creata = k-yes), le righe fatturate vengono rimosse dal transito e la griglia viene ricaricata.
  8. 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.