COGY60 -- Conteggio C/fatture da emettere¶
Sorgente: cbl/cogy60.cbl | Program-ID: COGY60 | Tipo: Elaborazione interattiva / Generazione P.N.
Menu: Contabilita' > Bilancio > Utility > Conteggio C/fatture da emettere
Scopo¶
Analizza i buoni di consegna (COGTESBO) in un intervallo date per individuare quelli con ricavi non ancora fatturati o fatturati in esercizi successivi. Per ogni buono individuato, scandisce le righe di magazzino (COGMOMAG), determina la contropartita di ricavo e, in modalita' definitiva, genera movimenti di prima nota contabile (COGPNONC) per rilevare il conto "Fatture da emettere". Produce opzionalmente un file CSV per esportazione Excel e una stampa riepilogativa.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB (COGTABEL) | Indicizzato | Input | Tabella generica (tipo 15: causali magazzino, tipo 16: conti COGE per reparto) |
| COGTESBO | Indicizzato | Input | Testata buoni di consegna (tes-*) |
| COGMOMAG | Indicizzato | Input | Righe movimenti magazzino (mag-*) |
| COGRACCO | Indicizzato | Input | Raccordi fatture (rac-*) |
| COGRACBB | Indicizzato | Input | Raccordi bolle (rbb-*) |
| LODPRESC | Indicizzato | Input | Prescrizioni/prestazioni (lpm-*) |
| COGPNONC | Indicizzato | I-O | Prima nota non contabilizzata (scrittura movimenti) |
| COGSLPCO | Indicizzato | Input | Saldi piano dei conti |
| COGPNCON | Indicizzato | Input | Piano dei conti |
| COGGEANA | Indicizzato | Input | Anagrafica generale |
| COGTRANS | Indicizzato | I-O | File transito 1: partite (#$cogy60.{oper}) |
| COGTRANS2 | Indicizzato | I-O | File transito 2: contropartite (#$cogy60-2.{oper}) |
| COGTRANS3 | Indicizzato | I-O | File transito 3: totali per conto (#$cogy60-3.{oper}) |
| COGTRANS4 | Indicizzato | I-O | File transito 4: documenti (#$cogy60-4.{oper}) |
| FILEASC2 | Sequenziale | Output | File CSV esportazione Excel |
| FILELOG | Sequenziale | Output | Log operazioni |
| FLSTA | Sequenziale | Output | File di stampa |
| T-DETTAGLIO | Indicizzato | I-O | File transito prestazioni (#$cogy60_prestazioni.{oper}) |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGS54 | Gestione stampa (anteprima/stampante/file) |
| COGS52W | Gestione date con calendario |
| COGS25 | Numeratori progressivi (prendi-num) |
| COGU10W | Conversione importi/divisa |
| COGU01 | Utility anagrafiche |
| COGU02 | Utility conti |
| RNEWCONF | Configurazione (percorso specifico COGY60) |
| GRIDTOXS | Apertura file Excel esportato |
| COGS95 | Gestione check-box |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
cogy60.wrk, .select, .fd, .decla, cogy60-01.scr |
Definizioni Screens |
cogfiles.cpy |
Record COGTABEL (euta-*) |
cogconta.cpy |
Struttura contabilita' (conta-*) |
cogzs5-t-dettaglio.fd, .cpy |
File transito dettaglio prestazioni |
flsta.fd, flsta.cpy |
File di stampa |
utilncnf.cpy |
Utility RNEWCONF |
utilp41.cpy, utils25.cpy, utils52.cpy, utils54.cpy |
Utility varie |
utilu01.cpy, utilu02.cpy, utilu10.cpy |
Utility anagrafiche/importi |
utilu88.cpy, utilu35w.cpy |
Utility |
utilz61.cpy |
Linkage specifico COGY60/COGY61 |
utilzs1.cpy |
Utility commesse |
Struttura del programma¶
Parametri maschera¶
| Variabile | Campo | Descrizione |
|---|---|---|
| tm-divisa | Divisa | Codice divisa |
| tm-da-data | Da data | Data inizio analisi (AAAAMMGG) |
| tm-a-data | A data | Data fine analisi |
| tm-data-reg | Data reg. | Data registrazione contabile P.N. |
| tm-prova | Prova | S = solo conteggio, N = genera P.N. |
| tm-excel | Excel | S = genera CSV |
| tm-fatturati | Fatturati | S = includi fatturati in esercizi successivi |
| tm-non-fatturati | Non fatt. | S = includi non fatturati |
| tm-cli | Cliente | Filtro opzionale per cliente |
Configurazione RNEWCONF¶
| Variabile | Descrizione |
|---|---|
| tm-cfg-fat-emettere | Sottoconto "Fatture da emettere" |
| tm-cfg-to | Tipo operazione per i movimenti P.N. |
| tm-cfg-tipo-mag | Tipo magazzino da escludere |
Flusso principale¶
-
apri: inizializzazione, apertura file transito, lettura configurazione RNEWCONF.
-
a4: default date (anno precedente intero), prova = "S", excel = "S".
-
Sequenza accept: da-data, a-data, prova, excel, fatturati, non-fatturati, data-reg.
-
a-richiesta-conferma: conferma stampa (COGS54), apertura file transito.
-
Scansione buoni (
ricerca-acconti-10): - Scansione COGTESBO (chiave 2: per data) nell'intervallo
tm-da-data/tm-a-data. - Filtro causale: solo causali con
euta-cb-cli-for = 'C',euta-cb-fl-eu = 'U',euta-cb-con-fat = 'SI'(tipo 15 di COGTABEL). - Filtro fatturazione: ricerca su COGRACCO. Se fatturato nello stesso anno del buono o in anni precedenti, salta. Considera
tm-fatturatietm-non-fatturatiper decidere inclusione. - Filtro prestazioni: esclude buoni collegati a prestazioni con ora-cns 15 o 45 (tramite COGRACBB + LODPRESC).
-
Controllo soglia:
controllo-sogliacalcola w-valore; se <= 4 scarta (accumula in w-valore-scarto). -
scan-bol / scan-bol-20: per ogni buono individuato, scansione righe COGMOMAG:
- Determinazione contropartita ricavo tramite
a1-imposta-cp-reparto-tipologia(COGS12) o tabella tipo 16. - Scrittura riga Excel (
scrivi-excel). -
Accumulo per contropartita su COGTRANS2.
-
scan-bol-70: se
tm-prova != "S", esegueaggiorna(generazione P.N.) escri-cogracbb. Esegueagg-cogtran3(accumulo totali per conto su COGTRANS3). -
aggiorna: prende numero documento progressivo (
prendi-num), scansiona COGTRANS2 per le contropartite del buono, chiamaagg-pnoper ogni contropartita. -
agg-pno: genera due righe di P.N. per ogni contropartita:
- Riga AVERE sul conto ricavo (trs2-contropartita)
-
Riga DARE sul conto "Fatture da emettere" (tm-cfg-fat-emettere)
-
ricerca-blocchi: stampa riepilogo per contropartita (scansione COGTRANS3,
write-riga). -
a-100-10: chiusura stampa, apertura file Excel se richiesto.
Note¶
- I file transito (#$cogy60.*) sono per operatore per evitare conflitti di concorrenza.
- Il separatore CSV e' il carattere TAB (x'09').
- Il programma condivide la struttura con COGY61 (storno ricavi), con differenze nella logica di selezione dei buoni e nella generazione dei movimenti.
Documentazione tecnica -- 2026-04-28