Vai al contenuto

COGD32 -- Importazione Gruppi Sconto

Sorgente: cbl/cogd32.cbl | Tipo: Programma interattivo GUI (importazione batch) | Program-ID: COGD32

Menu:

  • Magazzino > Archivi & Tabelle > Importazioni > Gruppi sconto

Scopo

Importazione di gruppi sconto da file esterno (CSV delimitato o Excel XLS). Legge un file con codice merce e condizioni commerciali (prezzo e/o percentuali di sconto), valida i codici merce su COGRACMC e aggiorna la tabella COGSCONT per il gruppo indicato.


File e Tabelle

File/Tabella Copybook Uso
FEURTAB cogfiles.cpy Input -- Tabella path file
COGRACMC cogd32.fd / cogd32.prc Input -- Raccordo codice merce per validazione
COGSCONT cogd32.fd / cogd32.prc I-O -- Tabella sconti/prezzi per gruppo
COGSEQUE (inline) Input -- File sequenziale importazione
COGRISUL (inline) Output -- File segnalazioni scarti

Programmi chiamati

Programma Scopo
COGU10W Determina la divisa conto corrente per la data
RNEWCONF Carica configurazione (delimitatore colonne Excel)
ESTRXLS Conversione file Excel XLS in formato testo
OPENFILE Apre il file segnalazioni nel viewer di sistema
C$OPENSAVEBOX Finestra di dialogo selezione file
C$COPY Copia file (supporto thin client)

Copybook principali

  • cogd32.select, .fd, .wrk, .prc -- Definizioni Screens (file, working, procedure I/O)
  • cogd32-01.scr -- Screen section della maschera
  • cogd32.decla -- Declaratives per gestione errori I/O
  • cogfiles.cpy -- Descrizione record FEURTAB
  • cogazien.cpy -- Dati azienda corrente
  • utilncnf.cpy -- Interfaccia RNEWCONF (configurazioni)
  • utilw81.cpy -- Interfaccia ricerca generica (W81, per selezione gruppo)
  • utilu10.cpy -- Interfaccia COGU10W (divisa)
  • utilu20.cpy -- Utility U20
  • utilopenfile.cpy -- Interfaccia OPENFILE
  • utilestrxls.cpy -- Interfaccia ESTRXLS (conversione Excel)
  • opensave.def -- Definizioni C$OPENSAVEBOX
  • sendw81.cpy -- Invio ricerca W81

Logica di Elaborazione

Configurazione

Il programma legge da RNEWCONF:

Chiave Gruppo Descrizione
delimitatore-colonne-excel cogesys Carattere delimitatore colonne nel file CSV

Flusso principale

  1. Inizializzazione (apri): init programma, open file, carica configurazione delimitatore, determina divisa corrente (COGU10W con GetDivisaConto).
  2. Accept maschera (a-tm-file, a-tm-gruppo): input del file sorgente e del gruppo sconto di destinazione.
  3. Conferma (a-richiesta-conferma): valida i campi, chiede conferma utente.
  4. Cancellazione preventiva (a-10-loop): scorre COGSCONT per scc-tip = "G" e scc-gruppo-sconto = tm-gruppo, cancella tutte le righe del gruppo (solo quelle senza anagrafica, scc-ana = k-ana-null).
  5. Preparazione file (a-inizio-carica): copia il file nella directory temporanea; se e' XLS chiama ESTRXLS per convertirlo in testo.
  6. Importazione (b-importa / b-10-loop): legge il file riga per riga, esegue UNSTRING con il delimitatore, normalizza i separatori decimali (. e : -> ,), converte con NUMVAL. Per ogni riga:
  7. Valida il codice merce tramite lettura su COGRACMC (rd-cogracmc)
  8. Se merce non trovata: scarta, incrementa tm-scartati, scrive su file segnalazioni
  9. Se trovata: compone il record COGSCONT con scc-tip = "G", scc-gruppo-sconto, scc-merce (da COGRACMC), scc-currency, scc-pre / scc-sco-1 / scc-sco-2. Esegue WRITE; se chiave duplicata, esegue REWRITE.
  10. Segnalazioni: se ci sono scarti, propone apertura del file di log tramite OPENFILE.

Struttura record file importazione

Campo Variabile Tipo
Operazione w-seq-operaz PIC X(01)
Codice merce w-seq-merce PIC X(30)
Prezzo w-seq-pre PIC X(10)
Sconto 1 w-seq-sco1 PIC X(10)
Sconto 2 w-seq-sco2 PIC X(10)

Documentazione tecnica -- 2026-04-28