Vai al contenuto

COGG26 - Inserimento Prefattura Mediatori

Panoramica

Programma di inserimento bolle di vendita (prefatture) per i contratti mediatori. Gestisce la compilazione manuale o assistita (da ordini o buoni di prelievo) di un documento di uscita merci, con calcolo automatico di prezzi, sconti, IVA e totali. Il documento prodotto viene scritto su COGTESBO (testata) e COGRIGBP (righe).

Tipo: Programma gestionale a maschera DOS-style con due schermate principali (mm-1 testata, mm-2 righe), 23 file aperti.

Posizioni nel menu

Menu Percorso
Vendite Mediatori > Inserimento Prefattura

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB (cogfiles) Input Parametri generali / percorsi file
COGTABEL Input Tabella generica (causali, aliquote IVA, agenti, vettori, divise)
COGMERCI Input Anagrafica merci
COGGEANA Input Anagrafica generale (clienti/fornitori)
COGMAGA2 Input Anagrafica magazzini
COGTESBO I/O Testate bolle vendita
COGMOMAG I/O Movimenti magazzino
COGSLMAG I/O Saldi magazzino
COGTESOR Input Testate ordini
COGRIGOR Input Righe ordini
COGPREOR Input Prezzi aggiuntivi ordini
COGTESBP Input Testate buoni di prelievo
COGRIGBP I/O Righe bolle / prefatture (scrittura documento)
COGCAUZI Input Causali aziendali
COGDESAG Input Descrizioni aggiuntive anagrafiche
COGCONOR Input Consegne su ordine (sorgente righe)
COGDESOR Input Descrizioni aggiuntive righe ordine
COGTESLS Input Listini
COGGENER Input Relazioni generiche
COGCNDCF Input Condizioni commerciali
COGMERLT Input Merci per lotto
COGMLTAG Input Lotti magazzino
COGMOVLT I/O Movimenti lotti
COGTRASP Input Trasporti
TRAN-S16 Temp. File transito per COGS16 (esplosione distinta base)
TRAN-S47 Temp. File transito per descrizioni aggiuntive righe
TRAN-M96 Temp. File transito per COGM96 (distinta temporanea)
COGTRANS Temp. File transito righe da ordine (chiave ordine+merce+consegna)
COGTRANS2 Temp. File transito righe bolla per prezzo (chiave bolla+merce)
INPFIL Input File EAN barcode (import quantita' da lettore)

Copybook principali (working-storage)

Copybook Descrizione
wstato.cpy Stato I/O e flag verbo
wgrave.cpy Gestione errori gravi
wopenf.cpy Apertura file generica
wnscr.cpy Costanti video
utilf23.cpy Utility COGF23
utilm12.cpy Utility COGM12
utils21.cpy Utility COGS21 (selezione opzione S/N)
utils23.cpy Utility COGS23
utils25.cpy Utility COGS25
utils47.cpy Utility COGS47 (descrizioni aggiuntive)
utils52.cpy Utility COGS52 (input data)
utils58.cpy Utility COGS58 (descrizione AVA merci)
utils60.cpy Utility COGS60
utils65.cpy Utility COGS65 (ricerca anagrafica)
utils68.cpy Utility COGS68 (ricerca merce)
utils86.cpy Utility COGS86 (controllo fido)
utilm56.cpy Utility COGM56
utilm96.cpy Utility COGM96 (distinta temporanea)
utilu01.cpy Utility COGU01 (lettera d'intento)
utilu02.cpy Utility COGU02 (dati anagrafica IVA)
utilu03.cpy Utility COGU03
utilu09.cpy Utility COGU09
utilu10.cpy Utility COGU10 (cambio divisa)
utilu12.cpy Utility COGU12 (aggiornamento giacenza)
utilu20.cpy Utility COGU20
utilu22.cpy Utility COGU22
utilv64l.cpy Utility COGV64
utilw01.cpy Utility W01 (lookup causale)
utilw02.cpy Utility W02
utilw03.cpy Utility W03
utilw06.cpy Utility W06
utilw36.cpy Utility W36
utilw80.cpy Utility W80
utilw92.cpy Utility W92 (destinazione spedizione)
utilw96.cpy Utility W96
utilw97.cpy Utility W97 (selezione lotto)
cogazien.cpy Dati azienda corrente
utilncnf.cpy Utility NCNF (configurazione)
k-u10.cpy, wrk-u10.cpy Costanti e working per COGU10

Copybook linkage section

Copybook Descrizione
wcont.cpy Area comunicazione con chiamante (stringhe)
utilf45.cpy Utility F45
utill14.cpy Utility L14
utils01.cpy Utility COGS01 (gestione sessione)
utils08.cpy Utility COGS08
utils16.cpy Utility COGS16 (esplosione distinta)
utilv52.cpy Utility COGV52
utilv71.cpy Utility COGV71
utilw35.cpy Utility W35 (lookup divisa)
wcont1.cpy Area comunicazione estesa

Chiamate a sottoprogrammi (CALL)

Programma Paragrafo/contesto Scopo
COGS52 a10, a6-read-ord (data), send-s52 Input e validazione date
COGS21 a6, a8 Selezione opzione S/N
COGS65 a16 Ricerca e selezione anagrafica destinatario
COGS86 check-fido Controllo fido cliente
COGU02 a16, nonno-40 Determinazione tipo IVA cliente (esportatore, ecc.)
COGU10 vari Conversione valuta / cambio divisa
COGM96 a61-cogm96-, b3-cogm96- Gestione distinta base temporanea
COGS16 c-aggiorna (aggiornamento giacenze) Esplosione distinta base
COGU12 c-aggiorna (aggiornamento giacenze) Aggiornamento giacenza/impegno magazzino
COGU09 vari Utility generica
COGS01 z-chiudi Gestione sessione utente
COGS58 z-chiudi, x7-des-ava Descrizione AVA merci
COGA09 k-trasporti-id Calcolo importo trasporti (az-trasporti = 'S')
COGF22 integrazione distribuzione Precompilazione da funzione distribuzione (az-personal = "QS")

Logica di elaborazione

Flusso principale

  1. m-00: inizializzazione, costruzione nomi file temporanei, lettura configurazione NCNF.
  2. a0: apertura file, lettura dati azienda (rd-azi), lettura configurazione.
  3. a1: caricamento maschera testata (mm-1, 8 righe).
  4. a4: inizializzazione strutture, valorizzazione defaults (magazzino, tipo bolla, data odierna).
  5. a5 / a5-m96: apertura file transito (TRAN-S47, TRAN-M96) con gestione lock.
  6. a6: eventuale precompilazione da ordini (risposta S -> invio S14 per selezione ordini).
  7. a8: eventuale precompilazione da buoni di prelievo (risposta S -> invio S61).
  8. a108 / a10: input data documento, determinazione divisa di conto (COGU10).
  9. a15: input causale con verifica tipo uscita e flag fatturazione.
  10. a16: input destinatario (COGS65), verifica fido (COGS86), determinazione tipo IVA (COGU02), struttura padre/nonno.
  11. a78: input divisa documento (con lookup W35).
  12. a95: input codice raggruppamento per fattura.
  13. b-accept: loop di accettazione righe (merce, quantita', prezzo, sconti).
  14. c-aggiorna: scrittura documento (testata COGTESBO, righe COGRIGBP), aggiornamento giacenze e impegni magazzino.
  15. fine / z-chiudi: pulizia file temporanei, cancel programmi caricati, exit.

Precompilazione da ordine (paragrafi a-ordini / a1-righe / a2-consegne)

  • Legge le righe ordine (COGRIGOR) per ciascun ordine selezionato e scrive i record nel file temporaneo COGTRANS (chiave: testata-ordine + merce + rig-pro + consegna).
  • Se l'ordine ha consegne associate (tm-to-ind > 0), legge le consegne su COGCONOR e propone solo la quantita' residua (cor-qta - cor-qtacons).
  • Poi fill-tabella / a6-car-tab legge COGTRANS e popola tab-righe con le righe trovate.

Paragrafi chiave

Paragrafo Descrizione
a6-read-ord Legge la testata del primo ordine selezionato e valorizza i defaults della testata bolla (destinatario, causale, porto, vettori, ecc.)
a8-bdp Legge la testata del primo buono di prelievo e valorizza i defaults
nonno-30 / nonno-40 Risale la gerarchia cliente (figlio -> padre -> nonno) per la determinazione del soggetto fatturato e del fido
b-accept Loop principale di accettazione righe; gestisce tutte le funzionalita' (omaggio, distinta base, lotti, descrizioni aggiuntive, chiusura consegna)
b21-applica-sconti Applica gli sconti di listino o da ordine alla riga
c-aggiorna Scrittura definitiva del documento e aggiornamento magazzino
a4-fill-resto Popola i campi non derivati dall'ordine (codice IVA, aliquota, colli, imballi)
a5-dor Copia le descrizioni aggiuntive dell'ordine (COGDESOR) nel file transito TRAN-S47
a3-src-pre Cerca prezzi aggiuntivi da COGPREOR per la riga ordine corrente

Struttura tab-maschera (testata)

Campo Tipo Descrizione
tm-magazzino x(01) Magazzino documento
tm-tipobolla x(01) Tipo bolla (I=immediata, D=differita)
tm-triangolare x(01) Flag triangolare (T=si')
tm-dataop 9(08) Data operazione
tm-destina 9(05) Codice destinatario
tm-causale 9(02) Codice causale
tm-pagamento 9(02) Codice pagamento
tm-raggruppa 9(02) Raggruppamento per fattura
tm-vet1/2/3 x(29) Vettori
tm-agente 9(05) Agente
tm-committente 9(05) Committente (padre anagrafico)
tm-nonno 9(05) Nonno (padre del committente)
tm-divisa x(02) Codice divisa documento
tm-fattura x(01) Flag fatturazione dalla causale
tm-commessa Riferimento commessa (tsc + sottoc.)

Struttura tab-righe (array 100 elementi)

Campo Tipo Descrizione
tamerce x(09) Codice merce (gru+sot+cod)
tadesc x(43) Descrizione merce
taum x(02) Unita' di misura
taqta 9(07)v999 Quantita'
taprezzo 9(12)v999999 Prezzo unitario
taprensc 9(12)v999999 Prezzo netto sconti
tasc1/sc2 s9(02)v99 Sconti
taimpo s9(12)v999999 Importo riga
taiva / taali x/9 Codice e aliquota IVA
tarigcons Riferimento consegna (mag/ann/tip/num/pro)
tariford Riferimento ordine (ann/num/pro)
taclose x(01) Stato chiusura consegna: C=chiusa, R=riapre, spazio=chiude cons.
taomaggio x(01) Flag omaggio (O=omaggio)
talotto 9(06) Numero lotto

Configurazione (tm-cfg, letta da NCNF)

Campo Valori Significato
tm-cfg-acc-sco N/L Visualizzazione sconti: N=non mostrare, L=mostrare
tm-cfg-tip-tra M/D/V Tipo trasporto default
tm-cfg-tip-prv P/Q Tipo provvigione
tm-cfg-qta-dec S/N Quantita' con decimali
tm-cfg-vis-um S/N Visualizza unita' di misura
tm-cfg-sca-ord S/O/N/M Modalita' precompilazione ordini
tm-cfg-sca-bdp S/O/N Modalita' precompilazione buoni di prelievo
tm-cfg-rag-bdp x(02) Raggruppamento merci da buoni
tm-cfg-distrib S/N Modalita' distribuzione (az-personal = "QS")
tm-cfg-mod x(01) Modalita' specifica per personalizzazione

File temporanei

File Scopo
TRAN-S47 Descrizioni aggiuntive righe (chiave: bolla-riga + progressivo)
TRAN-S16 Transito per COGS16 (esplosione distinta base)
TRAN-M96 Transito per COGM96 (distinta temporanea); condiviso tra sessioni; viene bloccato all'apertura per evitare conflitti
COGTRANS Righe da ordine per precompilazione (chiave 1: ordine+merce+consegna; chiave 2: merce+bolla)
COGTRANS2 Dati prezzo riga per bolla (chiave 1: bolla+merce)

Note tecniche

  • Il programma supporta piu' personalizzazioni aziendali (az-personal): "GU" (Guidetti, che da' il nome al sorgente), "QS" (Quality Seed, con integrazione COGF22 per distribuzione), "EC" (Eurocold), "BN", "BE", "FX".
  • La gestione del fido cliente risale la gerarchia figlio-padre-nonno: il controllo viene effettuato sul soggetto al vertice (nonno se esiste, altrimenti padre, altrimenti destinatario).
  • Il blocco su TRAN-M96 (open output + verifica stato = '00') serve a impedire che due operatori usino contemporaneamente la funzione su COGM96.
  • I PERFORM ... THRU (es. a-ordini thru ex-a, b-accept thru ex-b, c-aggiorna thru ex-c) sono pattern legacy; i paragrafi ex-* sono marker di uscita del blocco.
  • Massimo 100 righe per documento (k-max-ele-bdp = 100, t-size = 100).
  • La gestione della divisa di conto usa COGU10 con operazione "GetDivisaConto" alla data documento; i prezzi da ordini in divisa diversa vengono convertiti con "Cambio".
  • Il programma puo' essere richiamato da COGF22 (distribuzione ordini) passando il file transito COGTRANS gia' precompilato nella linkage section (util-f22).