Vai al contenuto

COGG64 - Esportazione serial numbers per causale

Intestazione

Campo Valore
Programma COGG64
Sorgente cbl/cogg64.cbl (1.288 righe)
Titolo Estrazione dati di vendita / serial numbers per causale
Tipo Interattivo (maschera carattere mm-1, non GUI)
Modulo Sistema
Posizione menu Sistema > Utility > Esportazioni > Serial x Causale

L'intestazione del sorgente lo dichiara come "Estrazione report di Vendita VEGE": e' nato come estrazione personalizzata per il cliente VEGE ed e' rimasto a menu come esportazione generica dei numeri di serie (matricole) usciti con le bolle, filtrati per causale.


Scopo

Estrae in un file di testo i movimenti di vendita corredati dei relativi numeri di serie / matricole (cogmtusc + cogmatri), abbinando ad ogni causale di magazzino una descrizione di esportazione definita dall'operatore in una griglia. Per ogni matricola uscita produce una riga con codice merce, seriale, prezzi (acquisto/vendita), importo trasporto, dati cliente e fornitore. Il file prodotto e' pensato per essere importato in sistemi terzi (originariamente il gestionale del cliente VEGE).

L'utente imposta:

  • Magazzino (tm-mag, vuoto = tutti);
  • Periodo movimenti (tm-da-data / tm-a-data), con proposta della data di consolidamento letta da cogtabel tipo 57;
  • Tipologia cliente da escludere (tm-filtro-tipologia, tabella tipo 84);
  • Nome file di esportazione (tm-name-export), selezionabile via finestra di sistema C$OPENSAVEBOX;
  • Griglia causale -> descrizione export (tm-t-cau / tm-t-exp-des), max 100 righe.

Tabelle e file usati

File Ruolo Chiavi/campi rilevanti
cogtesbo Testate bolle da estrarre e testate d'entrata correlate chiave 2 (tes-data, tes-mag, tes-anno, tes-tipob, tes-bolla3); tes-causale, tes-nonno, tes-colli
cogmtusc Matricole/seriali usciti con la bolla chiave 3 (mtu-fl-doc="B", mtu-bolla, mtu-merce, mtu-mat)
cogmatri Anagrafica matricola mtr-mat, mtr-sn (serial number), mtr-merce, mtr-ent* (bolla d'entrata)
cogmomag Righe movimento (per recupero prezzo vendita/acquisto) chiave primaria (mag-testa, mag-prog); chiave 3 (mag-mag3, mag-merce3, mag-da3, mag-tipob3, mag-bolla3); mag-prezzo
coggeana Anagrafica cliente / fornitore ana-tipo, ana-cod, ana-nome, ana-piva, ana-cofi
cogappog Appoggio anagrafica (tipologia statistica cliente) app-chia, app-tip-stt
cogtabel Tabelle: causali (tipo 15), tipologie cliente (tipo 84), data consolidamento (tipo 57) euta-tipo, euta-cod, euta-cb-des, euta-descr
cogmerci Descrizione merce e codice composto mer-chia, mer-gru, mer-sot, mer-cod, mer-descr
cogtrasp Documento di trasporto per importo trasporto tra-imp, tra-currency, tra-data
cogmagaz (cogmaga2) Anagrafica magazzino (validazione) magz-tipo="M", magz-cod, magz-nome
cogexport File di output exp-line pic x(350) + exp-cr + exp-lf (binary sequential)
cogmerap, cogmemor Aperti ma di supporto (catena FD condivisa) -

Il file di output e' binary sequential: ogni record e' una riga di 350 caratteri chiusa da CR/LF (wca-cod-cr / wca-cod-lf, impostati da ctr-abil).


Logica di elaborazione

  1. a000/a4 - apertura file, lettura azienda (rd-azi), divisa di conto (get-divisa-conto), abilitazione C$OPENSAVEBOX se ambiente Windows (az-sys = "W"), display maschera carattere.
  2. a10-a50 - richiesta parametri (magazzino, date via COGS52, tipologia da escludere, nome file via COGS23). Se il file esiste chiede conferma sovrascrittura.
  3. a60-a100 - editing della griglia causale/descrizione export; per ogni causale digitata valida su cogtabel tipo 15 e mostra la descrizione. F8 richiama l'aiuto causali (sendw01).
  4. b-elabora (F3) - elaborazione:
  5. compatta-tm-tab compatta la griglia eliminando i buchi;
  6. apre in output cogexport;
  7. scorre cogtesbo (chiave 2) dalla data iniziale, filtra per magazzino e data finale;
  8. cerca la causale della testata nella griglia; se non presente salta la bolla;
  9. carica cliente e partita IVA (coggeana), tipologia statistica (cogappog + cogtabel tipo 84) e applica il filtro esclusione tipologia;
  10. per ogni matricola uscita (cogmtusc/cogmatri) recupera prezzo di vendita da cogmomag sul documento d'uscita e prezzo di acquisto dalla bolla d'entrata (mtr-ent*), piu' l'importo trasporto da cogtrasp (convertito in divisa conto via COGU10 operazione "CambioAConto"/"Arrotonda") ripartito sui colli;
  11. compone exp-line con campi tra virgolette: prefisso "VI", codice merce (mer-gru+mer-sot+codice, con troncamento dello zero iniziale se az-personal = k-vege), descrizione, seriale, prezzi editati (COGU10 "Edita"), dati cliente, partita IVA fornitore, descrizione export causale, data e nome cliente;
  12. scrive il record e incrementa il contatore ctr-wr.
  13. Al termine chiude il file e mostra il numero di record esportati (box-msg).

Chiamate / COPY rilevanti

Programma Scopo
COGS52 Accept data (da/a)
COGS23 Accept/gestione nome file di esportazione
COGU10 Editing/conversione importi e cambio divisa
C$OPENSAVEBOX Finestra di sistema per scelta file (solo az-sys="W")
C$JUSTIFY -
sendw01, sendw36, sendw80 Aiuti su causali, magazzini, tipologie

COPY notevoli: opensave.def, utilu10.cpy, utilw80.cpy, utils23.cpy, utils52.cpy, GetDCont.cpy (divisa conto), le chiavi secondarie cogtesbo.k02, cogmomag.k02/k03/k04, cogmtusc.k03.


Note

  • Il prefisso record "VI" e il troncamento del codice merce sono retaggi della personalizzazione VEGE (az-personal = k-vege): sugli altri ambienti il codice merce e' esportato integrale.
  • L'estrazione lavora per matricola (numero di serie): una bolla con piu' matricole genera piu' righe; le matricole senza riga movimento vengono segnalate con box-msg e saltate.
  • Il recupero prezzo di vendita e' stato modificato (commento 20140922) per gestire il disallineamento date tra testata e righe, leggendo cogmomag per chiave primaria (mag-testa) anziche' per chiave 3.
  • Programma a maschera carattere con go to per il dispatch dei campi (schema classico dei vecchi editor a griglia); non e' un programma GUI.

Documentazione tecnica -- creata 2026-08-07