Vai al contenuto

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

  1. Inizializzazione: controllo abilitazione, apertura file, lettura azienda
  2. File di transito: apre il file tran-s47 temporaneo (#$COGM28. + operatore) in output
  3. Configurazione: lettura RNEWCONF (descrizioni default, parametro raggruppamento)
  4. Accept testata (a-05..a-90):
  5. Magazzino: validazione su COGMAGAZ; blocco se magazzino principale; auto-cliente se mag. esterno tipo "C"
  6. Data: calendario COGS52; lettura divisa contabile COGU10
  7. Periodo movimenti: date da/a
  8. Causale: validazione su COGTABEL; deve essere uscita (euta-cb-fl-eu = "U") con fattura (euta-cb-con-fat = "SI")
  9. Cliente: ricerca COGS65; lettura anagrafica COGGEANA; proposta pagamento/divisa/fascia/listino da anagrafica
  10. Pagamento, divisa, tipo pagamento, listino
  11. Descrizioni, note, IVA forzata
  12. 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
  13. Accept righe (b-30..b-90): visualizzazione griglia, modifica quantita'/prezzi, cancellazione righe, descrizioni aggiuntive, visualizzazione totale
  14. Conferma (F3) e aggiornamento (c-aggiorna):
  15. Creazione testata bolla su COGTESBO
  16. Creazione righe movimento su COGMOMAG (una per ogni riga fattura)
  17. Aggiornamento saldi magazzino su COGSLMAG
  18. Gestione controvalori (COGU21)
  19. Registrazione contabile tramite COGF26 + COGP41
  20. Registrazione raggruppamento fatturazione (COGRAGFA, COGRIFBO, COGRRESI)
  21. 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-ant valorizzato, 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-conto contiene la divisa contabile determinata tramite COGU10

Documentazione tecnica -- 2026-04-08