COGVA0 - Bolle Accompagnatorie (Ins. rapido da ordine)¶
Sorgente: cbl/cogva0.cbl | Program-ID: COGVA0 | Tipo: Programma interattivo (standalone, GUI con griglia)
Menu: Magazzino > Uscite > Bolle Accompagnatorie > Ins. rapido da ordine
Scopo¶
Fatturazione/inserimento rapido di bolle accompagnatorie a partire dagli ordini clienti aperti. Dati magazzino, data documento e cliente, il programma legge tutti gli ordini non chiusi del cliente (COGTESOR) e le relative righe consegna aperte (COGCONOR con qta consegnata inferiore alla qta ordinata), le carica in un file di lavoro temporaneo (COGTRANS) e le presenta in una griglia navigabile con spaginamento. L'operatore seleziona le righe consegna omogenee (stessi pagamento, listino, RB, causale, raggruppamento e destinazione) e con F3 innesca la creazione della testata bolla (COGTESBO) e dei movimenti magazzino (COGMOMAG) di tipo "I", aggiornando giacenze e legami consegna/ordine. L'accesso e' riservato alla personalizzazione k-personal-torric-imp.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indexed | Input | Tabella nomi file |
| COGTRANS | Indexed | Output / I-O | File di lavoro temporaneo (nome a runtime: #$trscogva0.{wo-oper}) con 4 chiavi; contiene le righe consegna estratte, la selezione e i riferimenti ordine |
| COGTABEL | Indexed | Input | Tabella generica (tipo 23 cod. "SC" gruppo sconti incondizionati; tipo 67 aliquote IVA) |
| COGMERCI | Indexed | Input | Anagrafica merci (codice IVA, um, confezione, contrassegno, gestione SN) |
| COGGEANA | Indexed | Input | Anagrafica clienti/fornitori (cliente consegna e cliente fatturazione) |
| COGMAGAZ | Indexed | Input | Anagrafica magazzini |
| COGTESBO | Indexed | I-O | Testate bolle/documenti magazzino (scrittura testata "I") |
| COGMOMAG | Indexed | I-O | Movimenti magazzino (scrittura righe bolla) |
| COGMOAGG | Indexed | I-O | Movimenti aggiuntivi (prezzo ivato per clienti privati con configurazione Privato-Ivato) |
| COGTESOR | Indexed | Input | Testate ordini clienti |
| COGRIGOR | Indexed | Input | Righe ordine clienti (prezzo, sconti, qta ordinata/consegnata) |
| COGCONOR | Indexed | Input | Righe consegna ordini |
| COGMERAP | Indexed | Input | Merci per reparto (gestione reparti, tipo config odonto/gestione-reparti) |
| COGMATRI | Indexed | Input | Anagrafica matricole/serial number |
| COGMTUSC | Indexed | Input | Matricole in uscita (controllo aggancio SN alla bolla) |
| exp-grid | Line sequential | Output | File di appoggio per export griglia in Excel |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd | SELECT tabella nomi file |
| cogfiles.cpy | Record FEURTAB |
| cogva0.select / cogva0.fd | SELECT/FD dei file gestiti (generati da Screens) |
| cogva0.wrk | Working-storage generata da Screens |
| k-u10.cpy | Costanti importi |
| k-personal.cpy | Costanti personalizzazioni (k-personal-torric-imp, ecc.) |
| wgrave.cpy | Gestione errori gravi |
| wnscr.cpy | Dati schermo |
| wopenf.cpy | Apertura file |
| wstato.cpy | Stato I/O |
| cogazien.cpy | Dati azienda |
| utilu10.cpy | Utility importi COGU10 |
| wgrid.cpy | Gestione griglia |
| utilgdad.cpy | Linkage GRIDADMN |
| utils25.cpy | Utility numerazione COGS25 |
| utils52.cpy | Utility date COGS52 |
| utils65.cpy | Utility ricerca anagrafica COGS65W |
| utilu09.cpy | Linkage COGU09 (legami consegna/ordine, chiusura documenti) |
| utilu12.cpy | Linkage COGU12 (aggiornamento giacenze) |
| utilw36.cpy | Linkage COGW36 (aiuto magazzino) |
| utildlg.cpy | Linkage DIALOGS |
| utilncnf.cpy | Linkage RNEWCONF (configurazioni) |
| wcont.cpy | Linkage stringhe comuni |
| utill14.cpy | Linkage COGL14 (matricole) |
| utilv52.cpy | Linkage COGV52 (stampa bolla) |
| wcont1.cpy | Linkage area utente 2 |
| grave.cpy | Paragrafi errori gravi |
| mmmask.cpy | Paragrafi init/exit programma |
| opengen.cpy | Apertura file |
| stato.cpy / stato1.cpy | Controllo stato I/O |
| winmsg.cpy | Messaggi a video |
| sendw36.cpy | Paragrafi COGW36 |
| cogva0.prc | Paragrafi generati da Screens |
| dtab.cpy | Utility tabelle |
| fscrol2.cpy | Utility scrolling griglia |
| utilpggr.cpy | Utility griglia paginata |
| cogtrans.k01 .. .k04 | Accesso COGTRANS per le 4 chiavi |
| cogtesor.k03 | Chiave secondaria COGTESOR |
| cogconor.k05 | Chiave secondaria COGCONOR |
| cogmtusc.k03 | Chiave secondaria COGMTUSC |
Logica di elaborazione¶
- Inizializzazione (
apri): lettura dati azienda, apertura file, verifica personalizzazione. Seaz-personalnon e'k-personal-torric-impil programma segnala "Funzione Non Abilitata" e termina. Vengono attivati i tasti funzione (F1 configura, F3 conferma/aggiorna, F8 aiuto/calendario, Shift-F4 griglia, Shift-F5 export Excel, invio seleziona, F5 seleziona tutto). - Configurazioni (
x99-confi): tramite RNEWCONF vengono lette causale default inserimento uscita "I" (causali/causale-ins-uscita-i), protocollo ICE (progcogv51/euta-c041-icee-ice-sn), Privato-Ivato (FATTURAZ/PRIVATO-IVATO) e gestione reparti (odonto/gestione-reparti). Da COGTABEL tipo 23 cod. "SC" viene ricavato il gruppo/sottogruppo degli sconti incondizionati. - Input dati testata (
a-tm-mag..a-tm-ordinamento): magazzino (defaultaz-main-mag, aiuto via COGW36), data documento (default data di sistema, validazione COGS52/calendario), cliente (COGS65W, con eventuale cliente fatturazione = padre anagrafico) e criterio di ordinamento della griglia ("M" merce, "N" numero ordine, "D" data, che selezionano rispettivamente le chiavi 2/3/4 di COGTRANS). - Estrazione righe (
carica-file): scorre gli ordini aperti del cliente (COGTESOR chiave 2, escludendo quelli chiusitor-chiu = "C"); per ogni ordine legge le righe consegna (COGCONOR chiave 5) scartando merci nulle, righe chiuse (cor-fl-close = "C") o gia' interamente consegnate (cor-qtacons >= cor-qta). Ogni riga valida viene scritta in COGTRANS con le tre chiavi alternative composte (merce, ordine, data). - Costruzione griglia (
carica-tab/z-costruisci-grid): il file temporaneo viene spaginato in griglia tramite GRIDADMN, con supporto Page-Up/Page-Down. Se non ci sono record estratti viene mostrato "Nessun record estratto!". - Selezione righe (
a-grid, ramoinvio): la selezione/deselezione di una riga marcatrs-sel = "SELEZIONATO"in COGTRANS. La prima riga selezionata fissa le condizioni (pagamento, listino, RB, causale, raggruppamento, destinazione); righe con condizioni diverse non sono selezionabili. F5 seleziona/deseleziona tutte le righe. - Controllo omogeneita' (
x1-controllo): prima della creazione verifica che tutte le righe selezionate abbiano condizioni identiche, altrimenti blocca l'aggiornamento. - Creazione documento (
x3-crea-doc): con F3 e conferma vengono create le bolle di tipo "I". Alla prima riga selezionata viene creata la testata (x31-testata): numerazione da COGS25 (cod. 3 per tipo "I"), scrittura COGTESBO con dati derivati dall'ordine e dall'anagrafica (pagamento, RB, listino, causale con fallback sutm-cfg-cau-def-i, vettori, agenti, ecc.). Per ogni riga viene scritto il movimento COGMOMAG con qta residua, prezzo netto sconti (arrotondato via COGU10), valore, marcatura sconto incondizionato ("E"/"U"), colli, reparto se abilitato. Per clienti privati con Privato-Ivato attivo il prezzo viene scorporato dell'IVA (aliquota da COGTABEL tipo 67) e memorizzato il prezzo ivato in COGMOAGG. - Aggiornamenti collegati: dopo la scrittura di ogni movimento vengono richiamati COGU12 (aggiornamento giacenza) e COGU09 (
crea-legameper collegare movimento-riga consegna-ordine). A fine ciclo COGU09 (riapertura-o-chiusura) chiude eventualmente consegne/ordini evasi. - Post-creazione (
x3-99): dialogo DIALOGS con opzioni Continua, F3 gestione bolla (COGV56), F9 stampa bolla (COGV52) e, seaz-ges-sn = "S", F6 gestione matricole (COGL14). In uscita, con gestione SN attiva, viene verificato l'aggancio completo dei serial number alla bolla (controlla-aggancio-matricole) con avviso se incompleto.
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura parametri di configurazione |
| GRIDADMN | Gestione griglia (prepara, add/modify record, svuota, personalizzazione utente) |
| COGS25 | Numerazione documenti (numero bolla) |
| COGS52 | Gestione input data con validazione |
| COGS65W | Ricerca/selezione anagrafica cliente |
| COGU10 / COGU10W | Gestione e arrotondamento importi e valute |
| COGU12 | Aggiornamento giacenze magazzino |
| COGU09 | Creazione legami movimento/consegna/ordine e riapertura/chiusura documenti |
| COGW36 (send-w36) | Aiuto/ricerca magazzino |
| DIALOGS | Finestra di dialogo post-creazione bolla |
| COGL14 | Gestione matricole/serial number |
| COGV56 | Gestione bolla creata |
| COGV52 | Stampa bolla |