COGM28 -- Fattura a Cantiere¶
Sorgente: cbl/cogm28.cbl | Tipo: Programma interattivo (maschera caratteri) | Program-ID: COGM28
Menu:
- Vendite > Fatturazione > A Singolo Cliente
Scopo¶
COGM28 crea fatture di vendita a partire dai movimenti di uscita verso un magazzino/cantiere esterno. Raccoglie tutti i materiali usciti dal magazzino principale verso il cantiere in un periodo definito, li presenta in una griglia di righe fattura e, alla conferma, genera la fattura con registrazione contabile e movimenti di magazzino.
E' un programma con interfaccia a maschere caratteri (non Screen Designer), con due maschere principali: testata e righe.
Interfaccia utente¶
Maschera 1 -- Testata (mm-1)¶
| Campo | Tipo | Posizione | Descrizione |
|---|---|---|---|
tm-mag |
x(01) | lin 2, col 20 | Magazzino cantiere (F8 = ricerca COGW36) |
tm-data |
9(08) | lin 2, col 56 | Data fattura (COGS52 calendario) |
tm-data-mov-da |
9(08) | lin 3, col 20 | Data movimenti da |
tm-data-mov-a |
9(08) | lin 3, col 34 | Data movimenti a |
tm-cau |
9(02) | lin 3, col 56 | Causale (deve essere uscita + fatturazione; F8 = ricerca) |
tm-cli |
9(05) | lin 4, col 20 | Codice cliente (COGS65; auto se mag. esterno con collegamento) |
tm-pag1 |
9(02) | lin 5, col 20 | Codice pagamento (F8 = ricerca) |
tm-divisa |
x(02) | lin 6, col 20 | Divisa (default = divisa conto; F8 = ricerca) |
tm-tip-pag |
x(01) | lin 8, col 20 | Tipo pagamento (COGU22) |
tm-lis |
9(02) | lin 8, col 56 | Listino (0 = nessuno; F8 = ricerca COGW96) |
tm-des-1..4 |
x(40) | lin 9-12 | Descrizioni righe fattura (precaricate da configurazione) |
tm-not1..2 |
x(50) | lin 13-14 | Note |
tm-iva-prv |
x(02) | lin 15, col 20 | IVA forzata (F8 = ricerca) |
Maschera 2 -- Righe (mm-2)¶
Griglia a scorrimento con massimo 300 righe (t-size = 300), 12 visibili per pagina.
| Colonna | Campo | Tipo | Descrizione |
|---|---|---|---|
| Codice | tm-merce (gru/sot/cod) |
x(09) | Codice merce (COGS68 ricerca) |
| Descrizione | tm-des |
x(29) | Descrizione articolo (da COGMERCI) |
| UM | tm-um |
x(02) | Unita' di misura |
| Quantita' | tm-qta |
9(07)v999 | Quantita' (COGU20 accept numerico) |
| Prezzo | tm-pre |
9(12)v999999 | Prezzo unitario (COGU10 accept) |
| Importo | tm-imp |
9(12)v999999 | Importo calcolato (qta x prezzo) |
Tasti funzione¶
Testata¶
| Tasto | Funzione |
|---|---|
| Esc | Uscita |
| F1 | Configurazione |
| F2 | Campo precedente |
| F8 | Aiuto / Ricerca contestuale |
Righe¶
| Tasto | Funzione |
|---|---|
| Esc | Torna a testata |
| F2 | Campo/riga precedente |
| F3 | Conferma e genera fattura |
| F5 | Cancella riga |
| F7 | Descrizione aggiuntiva (COGS47) |
| F9 | Visualizza totale |
| Su/Giu'/PgUp/PgDn | Navigazione griglia |
Logica di Elaborazione¶
Flusso principale¶
- Inizializzazione: controllo abilitazione, apertura file, lettura azienda
- File di transito: apre il file
tran-s47temporaneo (#$COGM28.+ operatore) in output - Configurazione: lettura RNEWCONF (descrizioni default, parametro raggruppamento)
- Accept testata (a-05..a-90):
- Magazzino: validazione su COGMAGAZ; blocco se magazzino principale; auto-cliente se mag. esterno tipo "C"
- Data: calendario COGS52; lettura divisa contabile COGU10
- Periodo movimenti: date da/a
- Causale: validazione su COGTABEL; deve essere uscita (
euta-cb-fl-eu = "U") con fattura (euta-cb-con-fat = "SI") - Cliente: ricerca COGS65; lettura anagrafica COGGEANA; proposta pagamento/divisa/fascia/listino da anagrafica
- Pagamento, divisa, tipo pagamento, listino
- Descrizioni, note, IVA forzata
- Caricamento materiali (b4-carica): scansione dei movimenti di magazzino (COGMOMAG) del cantiere nel periodo indicato, con la causale selezionata; per ogni merce trovata, lettura da COGMERCI per descrizione/UM/IVA; ricerca prezzo da listino se configurato
- Accept righe (b-30..b-90): visualizzazione griglia, modifica quantita'/prezzi, cancellazione righe, descrizioni aggiuntive, visualizzazione totale
- Conferma (F3) e aggiornamento (c-aggiorna):
- Creazione testata bolla su COGTESBO
- Creazione righe movimento su COGMOMAG (una per ogni riga fattura)
- Aggiornamento saldi magazzino su COGSLMAG
- Gestione controvalori (COGU21)
- Registrazione contabile tramite COGF26 + COGP41
- Registrazione raggruppamento fatturazione (COGRAGFA, COGRIFBO, COGRRESI)
- Chiusura: chiude file
Ricerca prezzo (b3-src-lis)¶
Se il listino e' diverso da zero: 1. Legge il prezzo dal listino COGTESLS per la merce e il listino indicato 2. Se non trovato, cerca il prezzo nella testata bolla del cantiere 3. Se il raggruppamento e' attivo, raggruppa le righe per merce
Controllo IVA (b1-src-ali)¶
Per ogni merce, determina l'aliquota IVA tramite COGU02 (cerca-cod-iva), verificando anche l'esenzione art./articolo del cliente.
Ricerca dati magazzino (b2-src-map)¶
Per ogni merce, legge i dati dall'appoggio merce COGMERAP per determinare il conto e il centro di costo da utilizzare nella registrazione contabile.
File e Tabelle¶
File acceduti¶
| File/Tabella | Copybook FD | Uso |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella nomi file |
| COGTABEL | cogtabel.cpy, cnfgprog.cpy | Tabelle generiche (causali, pagamenti, divise, IVA) |
| COGMERCI | cogmerci.cpy | Anagrafica merci |
| COGGEANA | coggeana.cpy | Anagrafica clienti |
| COGMAGAZ | cogmaga2.cpy | Anagrafica magazzini |
| COGTESBO | cogtesbo.cpy | Testata bolle/fatture |
| COGMOMAG | cogmomag.cpy | Movimenti di magazzino |
| COGSLMAG | cogslmag.cpy | Saldi magazzino |
| COGCONTR | cogcontr.cpy | Controvalori |
| COGMERAP | cogmerap.cpy | Appoggio merci (conti, centri di costo) |
| COGDESAG | cogdesag.cpy | Descrizioni aggiuntive |
| COGTESLS | cogtesls.cpy | Testata listini |
| COGMERA2 | cogmera2.cpy | Dati aggiuntivi merci 2 |
| COGRAGFA | cogragfa.cpy | Raggruppamento fatturazione (external) |
| COGRIFBO | cogrifbo.cpy | Riferimenti bolle (external) |
| COGRRESI | cogrresi.cpy | Residui raggruppamento (external) |
| TRAN-S47 | tran-s47.cpy | Transito descrizioni aggiuntive |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGP41 | Creazione prima nota / registrazione contabile fattura |
| COGF26 | Gestione fatturazione |
| COGU21 | Calcolo controvalori |
| COGU12 | Utility calcolo |
| COGU02 | Ricerca codice IVA |
| COGU10 | Accept importo con gestione divisa |
| COGU20 | Accept numerico (quantita') |
| COGU22 | Accept tipo pagamento |
| COGS01 | Utility generali |
| COGS21 | Utility clienti |
| COGS25 | Utility generiche |
| COGS47 | Descrizioni aggiuntive merce |
| COGS52 | Accept data con calendario |
| COGS65 | Ricerca cliente |
| COGS68 | Ricerca merce strutturata |
| COGW36 | Ricerca magazzino |
| WIN023 | Ricerca banca |
| COGW96 | Ricerca listino |
| COGW01 | Ricerca causale |
| COGW02 | Ricerca pagamento |
| COGW11 | Ricerca codice IVA |
| COGW35 | Ricerca divisa |
Copybook principali¶
| Copybook | Contenuto |
|---|---|
cogazien.cpy |
Dati azienda |
utilp41.cpy |
Interfaccia COGP41 |
utilf26.cpy |
Interfaccia COGF26 |
utils21.cpy / utils25.cpy |
Utility clienti/generiche |
utils47.cpy |
Utility descrizioni aggiuntive |
utils52.cpy |
Utility calendario |
utils54.cpy |
Utility stampa |
utils65.cpy |
Utility ricerca cliente |
utils68.cpy |
Utility ricerca merce |
utilu01.cpy / utilu02.cpy |
Utility IVA |
utilu10.cpy |
Utility divise |
utilu12.cpy |
Utility calcolo |
utilu20.cpy |
Utility accept numerico |
utilu21.cpy |
Utility controvalori |
utilu22.cpy |
Utility tipo pagamento |
utilw01.cpy / utilw02.cpy |
Utility ricerche |
utilw11.cpy |
Utility ricerca IVA |
utilw36.cpy |
Utility ricerca magazzino |
utilw96.cpy |
Utility ricerca listino |
desport.cpy |
Descrizioni aspetto/porto |
Configurazioni¶
Lette tramite RNEWCONF nel paragrafo x99-src-cfg:
| Campo | Descrizione |
|---|---|
tm-cfg-des-1..4 |
Descrizioni righe predefinite |
tm-cfg-prd-da |
Origine prodotti ("M" = magazzino, "G" = generico) |
tm-cfg-fl-ragr |
"S" = raggruppa righe per merce |
tm-cfg-ragr-escluso (gru/sot) |
Gruppo merceologico escluso dal raggruppamento |
Note tecniche¶
- Il programma usa interfaccia a maschere caratteri (non Screen Designer): le maschere mm-1 e mm-2 sono definite direttamente nel sorgente come strutture dati
- Il file di transito TRAN-S47 e' creato nella directory temporanea con nome
#$COGM28.+ codice operatore - Il tipo bolla e' fisso "B" (bolla)
- Il magazzino selezionato non puo' essere il principale dell'azienda (
az-main-mag) - Se il magazzino e' esterno (tipo "C") con
magz-rap-antvalorizzato, il codice cliente viene proposto automaticamente - La tabella documenti (
tab-documenti, max 400 elementi) traccia i riferimenti alle bolle di uscita originali usate per la fatturazione - La variabile
w-currency-contocontiene la divisa contabile determinata tramite COGU10
Documentazione tecnica -- 2026-04-08