Vai al contenuto

Ciclo Attivo — Ordini, DDT, Fatturazione (B1)

Panoramica

Il ciclo attivo copre il flusso completo dalla richiesta d'acquisto/ordine fino alla contabilizzazione della fattura. I 4 programmi principali analizzati totalizzano ~40.500 righe COBOL (di cui 32.547 solo per COGV50W).

COGO00 (Richieste d'acquisto) → Creazione ordini (COGTESOR)
                                        ↓
COGV50W (Inserimento DDT/bolle uscita) → Evasione ordini → Documento di trasporto
                                        ↓
COGV63 (Stampa fatture) → Selezione fatture → COGP41 (stampa effettiva)
                                        ↓
COGE50 (Contabilizzazione) → COGE51 (scritture contabili) → Prima nota

1. COGO00 — Gestione Richieste di Acquisto

Identificazione

  • Programma: COGO00
  • Area: Magazzino / Ordini (con gestione gruppo aziende)
  • Descrizione: Gestione/visualizzazione richieste di acquisto (RdA)
  • Righe: 4.354 (+ ~9.000 righe di copybook cogo00.prc generato da Screens)
  • Framework: Screens 2.13.1

Funzionalita' principale

COGO00 gestisce le Richieste di Acquisto (RdA) in contesto multi-azienda (gruppo aziende). Presenta una griglia filtrata per data/azienda/fornitore, permette l'editing delle quantita' e la creazione automatica di ordini (COGTESOR + COGRIGOR) dalle righe selezionate.

Prerequisito: richiede gestione-gruppo-aziende = "S" in RNEWCONF.

Flusso operativo

  1. Inizializzazione: verifica permessi, apre file, carica configurazione RNEWCONF (7 parametri)
  2. Filtri utente:
  3. Intervallo date (tm-data-da / tm-data-a)
  4. Flag "In corso" e/o "Completate"
  5. Filtro opzionale per azienda richiedente e fornitore
  6. Caricamento griglia: legge COGRDACQ filtrato → popola file transito (T-GRID-DET)
  7. Controlla autorizzazione operatore via COGS0B
  8. Editing griglia: l'utente puo':
  9. Modificare quantita' e date (→ rewrite COGRDACQ)
  10. Cancellare righe (rda-fl-canc = "C")
  11. Selezionare righe per creazione ordini
  12. Creazione ordini (S-F7):
  13. Raggruppa le righe selezionate per fornitore/azienda/magazzino
  14. Per ogni gruppo:
    • Genera numero ordine progressivo via COGS25
    • Crea testata ordine (COGTESOR) con tipo "C" (cliente) o "F" (fornitore)
    • Per ogni riga: crea dettaglio (COGRIGOR), cerca prezzo via COGS01, aggiorna magazzino via COGU12
    • Crea consegne automatiche via COGO16C

Determinazione tipo ordine

Se fornitore RdA corrisponde a un'azienda del gruppo:
  → Ordine tipo "C" (ordine cliente — infragruppo)
Altrimenti:
  → Ordine tipo "F" (ordine a fornitore esterno)

Causali magazzino (configurabili via RNEWCONF)

Configurazione Gruppo Chiave Uso
Consumo MP grp-azi rda-cau-cons-mp Ordini verso magazzino principale
Consumo MS grp-azi rda-cau-cons-ms Ordini verso magazzino secondario
Vendita MP grp-azi rda-cau-vend-mp Ordini cliente (infragruppo) MP
Vendita MS grp-azi rda-cau-vend-ms Ordini cliente (infragruppo) MS
Acquisto MP grp-azi rda-cau-acq-mp Ordini a fornitori

File principali

File Prefisso Operazioni Descrizione
COGRDACQ rda- Read/Rewrite Richieste di acquisto (sorgente)
COGTESOR tor- Write Testate ordini (destinazione)
COGRIGOR ror- Write Righe ordini
COGTORAG tar- Write Supplemento testata (trasporto)
COGRORAG rar- Write Supplemento riga (riordino)
COGRORA2 ra2- Write Importi calcolati riga
COGMERCI mer- Read Anagrafica merci
COGGEANA ana- Read Anagrafica clienti/fornitori
COGAZGRP azg- Read Gruppo aziende

Catena di chiamata

Programma Funzione
COGS25 Numerazione ordini
COGS01 / COGS01F Lookup prezzi di acquisto
COGU12 Aggiornamento saldi magazzino (quantita' ordinata)
COGU09 Verifica disponibilita' magazzino
COGO16C / COGO16F Creazione consegne automatiche
COGS0B Autorizzazione operatore per gruppo aziende
GRP002 Gestione gruppo aziende
GRIDADMN Gestione griglia
COGU10 Formattazione valuta
RNEWCONF Lettura configurazione

2. COGV50W — Inserimento DDT / Bolle Uscita

Identificazione

  • Programma: COGV50 (wrapper) → COGV50W (versione grafica)
  • Area: Magazzino > Uscite / Vendite > Bolle
  • Descrizione: Inserimento DDT uscita (Documento di Trasporto)
  • Righe: 32.547 (il programma piu' grande del gestionale)
  • Framework: Screens 2.13.2
  • Variante classica: COGV50C (15.255 righe) — selezionata da RNEWCONF versione-programmi-ddt

Funzionalita' principale

COGV50W e' il programma centrale per la creazione e gestione dei DDT (bolle di uscita). Gestisce testata documento, righe merce con calcolo prezzi, movimentazione magazzino, evasione ordini e integrazione con fatturazione.

Architettura

  • Form a 4 schede (pagine tab) per l'interfaccia utente
  • ~200+ paragrafi nella PROCEDURE DIVISION
  • ~80 file di database
  • ~75 integrazioni con programmi esterni
  • 92 parametri RNEWCONF

Flusso operativo (sintesi)

  1. Creazione testata (righe ~14.914+):
  2. Numerazione automatica o manuale via COGS25
  3. Selezione magazzino (con split per-riga)
  4. Separazione merci deperibili (Art. 62)
  5. Dati cliente, trasporto, vettore, destinazione
  6. Inserimento righe (righe ~16.698+):
  7. Movimentazione magazzino via COGM96 (impegno/accettazione)
  8. Calcolo prezzo con 2 livelli di sconto
  9. Gestione IVA (incluso reverse charge)
  10. Supporto unita' alternative, lotti, agenti
  11. Tracking numeri seriali/matricole
  12. Evasione ordini (righe ~16.578+):
  13. Collegamento automatico a ordini di vendita (COGTESOR)
  14. Tracking consegne parziali
  15. Chiusura ordine (COGU09) quando completamente evaso
  16. Cancellazione (righe ~9.366+):
  17. 12+ controlli di validazione pre-cancellazione
  18. Storno contabile via COGD92
  19. Rilascio giacenza via COGM96
  20. Ripristino stato ordine

File chiave

File Prefisso Descrizione
COGTESBO tes- Testata bolle (documento principale)
COGMOMAG mom- Movimenti di magazzino (righe)
COGMOAG / COGMOAG2 / COGMOAG3 moa- Dettagli aggiuntivi righe
COGTESOR tor- Testate ordini (per evasione)
COGMERCI mer- Anagrafica merci
COGGEANA ana- Anagrafica clienti/fornitori
COGTABEL euta- Tabelle configurazione

Lookup COGTABEL chiave

Tipo Funzione
23 Gruppi sconto
54 Imballi/unita'
67 Tabelle sconto
73 Esenzioni IVA
89 Reverse charge IVA

Funzionalita' speciali

  • Multi-magazzino con allocazione per-riga
  • Separazione merci deperibili (Art. 62 D.L. 1/2012)
  • Prezzi IVA inclusa per clienti privati
  • Tracking lotti e numeri seriali
  • Provvigioni agenti con calcolo commissione
  • Export Excel della griglia

Caricamento automatico S/N da BdP di origine (2026-05-22)

Quando un DDT viene generato a partire da un Buono di Prelievo (trs2-bdp-num <> zero), e la merce e' matricolata (mer-fl-sn = "T") e la configurazione tm-cfg-movimentazione-sn = "S", COGV50W carica automaticamente in griglia i serial number gia' raccordati al BdP origine senza richiedere all'operatore di reinserirli.

Flusso (paragrafo carica-sn-da-bdp-merce, chiamato da f2-10-loop durante il caricamento riga da TRAN2)

Per ogni riga del BdP viene effettuata una doppia scansione di COGGENER per i tipi CM (matricola collegata) e CS (serial in chiaro non riconciliato), filtrando per chiave testata del BdP origine (gnr-parte-1 = trs2-bdp-chia1) e per merce (gnr-cm-merce = w-sn-in-merce).

Per ogni legame CM: 1. Risoluzione S/N reale: lettura COGMATRI tramite mtr-mat = gnr-parte-2 (1:12). Se la matricola non esiste, il S/N viene scartato con log critico-cliente. 2. Lookup ubicazione: chiamata COGU07 cerca-sn-link con u07-sn-padre = mtr-sn. 3. Validazione ubicazione: estratto in nuovo paragrafo valida-ubicazione-sn, riusato anche dal flusso manuale a-tm-sn-uscita. Verifica coerenza magazzino principale/secondario in base a tm-cb-ms-segno e modalita' magazzino (riga/testata via tm-cfg-gestione-mpu-riga). Se incoerente, S/N scartato con log critico-cliente. 4. Check duplicato in transito: lettura T-SN per mtr-sn; se gia' presente esce senza errore (idempotenza su ri-caricamenti). 5. Scrittura T-SN: inizializza il record di transito S/N e chiama z-aggiungi-sn-a-griglia (riuso del flusso esistente di aggiunta riga in griglia). Se x-f3-ok-parziale = "N", scarta con log critico-cliente. 6. Contatore w-sn-out-trovati-cm incrementato.

Per ogni legame CS (serial in chiaro non riconciliato a matricola), viene solo emesso un warning "S/N {sn} presente sul bdp ma non esistente, non incluso" e incrementato w-sn-out-trovati-cs. Il S/N non viene caricato in griglia perche' privo di anagrafica matricola.

Variabili working storage nuove

  • Gruppo w-sn-input (input al paragrafo): w-sn-in-bdp-chia1 (chiave testata BdP origine), w-sn-in-merce, w-sn-in-riga-grid.
  • Gruppo w-sn-output (contatori): w-sn-out-trovati-cm, w-sn-out-trovati-cs, w-sn-out-scartati.
  • w-ubicazione-sn-ok PIC X(01) — output di valida-ubicazione-sn, sostituisce i go to a-tm-sn-uscita precedentemente in linea.
  • w-gnr-tip PIC X(02) — tipo legame in elaborazione (CM/CS), evita duplicazione del blocco di scansione COGGENER.

Refactor valida-ubicazione-sn

Il blocco di validazione magazzino (uscita da secondario vs principale, magazzino su riga vs testata) era duplicato in linea nel flusso manuale di inserimento S/N. E' stato estratto in un paragrafo autocontenuto che restituisce w-ubicazione-sn-ok = "S"/"N". Il flusso manuale ora chiama perform valida-ubicazione-sn e poi if w-ubicazione-sn-ok = "N" go to a-tm-sn-uscita. Comportamento invariato per il caso manuale.

Origine dati S/N nei legami COGGENER

I legami CM su BdP sono prodotti da SWN139 (import BDPC da Areagate, sezione "Import Serial Number su BDPC") e dalla creazione manuale BdP in COGSA0. I legami CS sono prodotti dallo stesso flusso quando il S/N trasmesso non risulta in anagrafica matricole (fallback). Il nuovo flusso di COGV50W propaga questi legami sul DDT mantenendo coerenza fra BdP e bolla di uscita.

Descrizioni doganali automatiche (clienti extracomunitari)

Per i clienti extracomunitari, COGV50W aggiunge automaticamente descrizioni aggiuntive (COGDESAG) su ogni riga merce del DDT, con le informazioni doganali richieste dall'esportazione.

Condizioni di attivazione (riga 17299):

  • w-fl-ic = "E" — cliente classificato come esportatore (determinato via COGU02)
  • w-ana-st-cod <> "RSM" — non San Marino
  • mer-classe = "M" — solo merci (non servizi/prestazioni)
  • tm-cfg-des-extracom = "S" — configurazione RNEWCONF abilitata

Riga 1: HS Code e Origine (c-crea-des-extracom-1, riga 17986):

HS CODE: XXXX.XX.XX ORIGIN: YYY
  • mer-nom-dogana da COGMERCI — nomenclatura doganale (8 cifre, formattata con punti)
  • ma3-made-in da COGMERA3 — paese di fabbricazione/origine

Riga 2: Valore di origine (c-crea-des-extracom-2, riga 17998):

VOC: 99999.99
  • Calcolato come mer-coe-lav * mag-qtamagaz (coefficiente lavorazione x quantita')
  • Generata solo per clienti svizzeri (w-ana-st-cod = "CH") — modifica 01/07/25 richiesta da BM Solution

Logica anti-duplicazione (righe 17260-17288): prima di aggiungere le note, il programma scorre le descrizioni aggiuntive esistenti (TRAN-S47) e verifica se iniziano con "HS CODE:" o "VOC:". Se gia' presenti le riscrive con dati aggiornati; se assenti le aggiunge in coda.

Comportamento in inserimento e modifica: il blocco descrizioni e' all'interno di c-inserimento-riga (riga 16698), che viene eseguita sia all'inserimento di nuove righe sia alla variazione di righe esistenti. In fase di aggiornamento (UPDATE), c-aggiornamento-righe (riga 15437) esegue una cancellazione+reinserimento per ogni riga modificata (tm-fl-riga-mod = "S", righe 15522-15524). Le descrizioni aggiuntive vengono prima cancellate tutte (riga 17243-17254, aggiunto 16/01/2015) e poi rigenerate. Poiche' mer-nom-dogana (COGMERCI) e ma3-made-in (COGMERA3) sono letti in tempo reale dentro c-inserimento-riga (riga 17296-17306), se l'operatore ha nel frattempo compilato i dati doganali mancanti sull'anagrafica merce le descrizioni verranno generate correttamente al successivo salvataggio — a condizione che la riga del DDT risulti modificata.


3. COGV63 — Stampa/Ristampa Fatture

Identificazione

  • Programma: COGV63
  • Autore: Andrea Parmeggiani - Eurosystem
  • Area: Magazzino > Uscite > Fatture / Vendite > Fatturazione
  • Descrizione: Ristampa fatture e note di accredito
  • Righe: 2.034
  • Menu: 13 voci diverse (il programma piu' riusato nel menu)

Funzionalita' principale

COGV63 e' un selettore di fatture che raccoglie i parametri dall'utente e poi delega la stampa vera e propria a COGP41. Supporta diversi tipi documento e gestisce anche l'export DDT allegati in PDF.

Tipi documento supportati

Parametro Tipo Descrizione
"N" Nota di accredito Note credito clienti
"I" Fattura accompagnatoria Fattura con DDT integrato
"R" Ricevuta fiscale Ricevuta (incluso scontrino telematico)
"F" / "T" Fattura riepilogativa Fattura standard
"CO" Corrispettivi Con gestione scontrino telematico

Flusso operativo

  1. Caricamento tipi documento: dal setup azienda (az-tipo-*) e opzionalmente da COGBABEL (tipi per causale)
  2. Acquisizione parametri:
  3. Tipo documento (con dropdown)
  4. Anno e numero fattura iniziale (con navigazione F5/F6/F9/F10)
  5. Anno e numero fattura finale
  6. Numero copie
  7. Flag allegato DDT
  8. Validazione: verifica esistenza in COGRACCO, controlla data per scontrini telematici
  9. Stampa: CALL "COGP41" con parametri fattura
  10. Export DDT allegati (opzionale):
  11. Per ogni DDT collegato via COGRACCO → COGV52 (PCL) → SVIEW (PDF)
  12. Copia in cartella tm-cfg-path-allegati-fattura
Tasto Funzione
F5 Fattura precedente
F6 Fattura successiva
F9 Prima fattura dell'anno
F10 Ultima fattura dell'anno

Gestione scontrini telematici

Se tipo = "CO" e data >= data attivazione scontrino telematico:

  • F5: crea scontrino telematico (→ coga5e2k o coga5sid)
  • F7: stampa documento commerciale (→ COGP41)
  • Tipo registratore: "E" (elettronico) o "S" (Signature ID)

Catena di chiamata

Programma Funzione
COGP41 Stampa fatture (programma di stampa effettivo)
COGV52 Archiviazione DDT (genera PCL)
SVIEW Conversione PCL → PDF
COPIAF Operazioni file (copia/cancella/shell)
WIN067 Dialog lookup tipo documento
RNEWCONF Configurazione stampa (~30 chiavi)
DIALOGS Dialog scontrino telematico
coga5e2k Invio scontrino telematico (registratore elettronico)
coga5sid Invio scontrino telematico (Signature ID)

Configurazioni RNEWCONF

Gruppo Chiavi principali Funzione
FATTBATCH euta-c055-tip-fat Tipo fattura batch
PRNTSTFATT euta-c021-* (22 chiavi) Config stampante (emulazione, copie, offset)
STAMPAFAT modo-stampa Modalita' stampa
contabil data-attivazione-scontrino-telematico Data attivazione telematico
contabil collegamento-registratore-fiscale Flag registratore
contabil tipo-registratore-fiscale Tipo (E/S)
contabil path-allegati-fattura Percorso export PDF

4. COGE50 — Contabilizzazione Fatture

Identificazione

  • Programma: COGE50
  • Area: Contabilita' > Fatturazione / Vendite > Fatturazione
  • Descrizione: Aggiornamento contabilita' da fatture
  • Righe: 1.527

Funzionalita' principale

COGE50 registra le fatture in prima nota: per ogni fattura nel range selezionato, chiama COGE51 che esegue le scritture contabili effettive (dare/avere su piano dei conti), poi presenta un prospetto di controllo con i conti movimentati.

Flusso operativo

  1. Configurazione: carica 20 conti contabili da RNEWCONF (gruppo FATTCARICA):
  2. Conti spese e bolli (CO/GE, C/C, terzi)
  3. Conto incassi, omaggi, studio professionale
  4. Conti ricariche (intra/extra comunitarie)
  5. Validazione conti: verifica esistenza in COGTABEL tipo 16/18 → risolve mastro/conto/sottoconto
  6. Acquisizione parametri:
  7. Tipo documento (fattura/nota credito)
  8. Anno fiscale
  9. Range numeri fattura (auto-proposto: dalla prima non contabilizzata all'ultima)
  10. Ciclo contabilizzazione (ela-00):
  11. Per ogni fattura nel range:
    • CALL "COGE51" → scritture contabili in prima nota
    • rwr-cogfattu → marca fattura come contabilizzata (fat-num-pno ≠ 0)
    • Se gestione incassi attiva: CALL "COGJ15" per tracking incassi
    • Accumula importi per conto in array tabrie (fino a 1.500 conti)
  12. Prospetto di controllo (ela-50):
  13. Intestazione: range fatture, divisa
  14. Dettaglio: conto | descrizione | dare | avere
  15. Totale: verifica quadratura dare = avere
  16. Aggiornamento azienda: scrive ultimo numero contabilizzato

Auto-proposta range fatture

Numero iniziale:
  Cerca all'indietro da 9999999 l'ultima fattura con fat-num-pno ≠ 0
  → Propone la successiva
Numero finale:
  Cerca all'indietro da 9999999 l'ultima fattura con fat-num-pno = 0
  → Propone quella come fine range

Conti contabili configurati (RNEWCONF gruppo FATTCARICA)

Chiave Tipo COGTABEL Descrizione
cg-spese 16 Conto CO/GE spese
cg-bolli 16 Conto CO/GE bolli
cc-spese 18 Conto C/C spese bancarie
cc-bolli 18 Conto C/C bolli bancari
to-spese - Conto terzi spese
to-bolli - Conto terzi bolli
c-incas - Flag gestione incassi (S/N)
cc-incas - Conto incassi
cg-omaggio - Conto omaggi CO/GE
perc-stu - Percentuale studio
ric-sta - Stato ricarica
c-r-ita / c-r-int / c-r-ext - Conti ricarica Italia/intra/extra CE

File principali

File Prefisso Operazioni Descrizione
COGFATTU fat- Read/Rewrite Testate fatture (sorgente)
COGPNONC pno- Read Prima nota non contabilizzata
COGPNCON pco- Read Piano dei conti
COGARIVA iva- Read Archivio IVA
COGAZIEN az- Read/Rewrite Record azienda (ultimo nr contabilizzato)
FLSTA - Write (seq) Output stampa prospetto

Catena di chiamata

Programma Funzione
COGE51 Contabilizzazione singola fattura (logica core)
COGJ15 Gestione incassi (opzionale)
COGS54 Gestione spool stampante
COGU10W Formattazione importi (4 chiamate)
WIN067 Dialog lookup tipo documento
RNEWCONF Lettura configurazione

5. Tabella riepilogativa

Programma Righe Funzione Input Output
COGO00 4.354 Gestione RdA → creazione ordini COGRDACQ COGTESOR, COGRIGOR
COGV50W 32.547 Inserimento DDT / bolle uscita COGTESOR, COGMERCI COGTESBO, COGMOMAG
COGV63 2.034 Selezione e stampa fatture COGFATTU, COGRACCO Stampa via COGP41, PDF
COGE50 1.527 Contabilizzazione fatture COGFATTU COGPNONC (via COGE51)

6. File del ciclo attivo

File Prefisso Descrizione
COGRDACQ rda- Richieste di acquisto
COGTESOR tor- Testate ordini
COGRIGOR ror- Righe ordini
COGTORAG tar- Supplemento testata ordine (trasporto)
COGRORAG rar- Supplemento riga ordine
COGRORA2 ra2- Importi calcolati riga ordine
COGTESBO tes- Testate bolle/DDT
COGMOMAG mom- Movimenti di magazzino
COGMOAG moa- Dettagli movimenti (livello 1)
COGMOAG2 - Dettagli movimenti (livello 2)
COGMOAG3 - Dettagli movimenti (livello 3)
COGFATTU fat- Testate fatture
COGRACCO rac- Raccordo fatture-bolle

7. Note tecniche

Pattern wrapper

COGV50 usa il pattern wrapper con selezione versione via RNEWCONF:

ncnf-gruppo = "uscite"
ncnf-chiave = "versione-programmi-ddt"
Se valore = "GRAFICA" → CALL "COGV50W"
Altrimenti            → CALL "COGV50C"

Questo pattern permette di passare dalla versione classica a quella grafica senza modificare il menu.

Dimensione COGV50W

Con 32.547 righe, COGV50W e' il programma piu' grande dell'intero gestionale. Questo riflette la complessita' del processo DDT:

  • Gestione multi-magazzino
  • Calcolo prezzi con sconti a cascata
  • Evasione ordini con consegne parziali
  • Movimentazione magazzino in tempo reale
  • Integrazione fatturazione
  • Gestione lotti, matricole, agenti
  • 92 parametri RNEWCONF

Flusso contabile

COGV63 (stampa)  →  COGP41 (stampa effettiva)
         ↓
COGE50 (contabilizzazione)  →  COGE51 (scritture per singola fattura)
                                    ↓
                              COGPNONC (prima nota non contabilizzata)
                                    ↓
                              COGE79 (contabilizzazione PN → COGCOATT)

Sottoprogrammi chiave non ancora documentati

Programma Funzione Richiamato da
COGP41 Stampa fatture effettiva COGV63
COGE51 Contabilizzazione singola fattura COGE50
COGM96 Movimentazione magazzino (impegno/accettazione) COGV50W
COGD92 Storno contabile COGV50W (cancellazione)
COGO16C Creazione consegne automatiche COGO00
COGJ15 Gestione incassi COGE50