Vai al contenuto

COGG18 — Inserimento Consegne su contratti mediatori

Sorgente: cbl/cogg18.cbl | Tipo: interattivo a maschera | Program-ID: COGG18

Menu: Vendite > Mediatori > Inserimento Consegne


Scopo

Inserimento delle consegne a valere su un contratto/ordine mediatore (contratto di tipo "C"). A partire da un ordine venditore, il programma espone le righe merce con la quantita' ordinata, la quantita' gia' in consegna e la quantita' residua, consentendo all'operatore di digitare le quantita' da consegnare. Alla conferma genera i record di consegna (COGCONOR) e aggiorna l'impegno dei componenti per le righe che innescano lavorazione.

Sono previste due modalita' non interattive di funzionamento come "slave" (pilotate da o16-ope sulla user-area in linkage): ins-auto (inserimento automatico di una consegna con data fine validita' ordine) e da-rio (da riordino interno). Nel funzionamento come slave da riordino, all'uscita viene verificato che tutte le merci in ordine risultino coperte da consegne (controllo-se-tutto-consegnato).

File e tabelle principali

File/Tabella Copybook Uso
COGTESOR cogtesor.fd/.cpy, cogtesor.k01 Testata ordine/contratto: lettura estremi ordine, cliente/destinatario, decorrenza/scadenza (rd-cogtesor)
COGRIGOR cogrigor.fd/.cpy, cogrigor.k01, cogrigor.k02 Righe ordine: caricamento merci, quantita' ordinata e consegnata (src-righe-ordine)
COGCONOR cogconor.fd/.cpy, k01/k01-agg/k02/k05 File consegne ordini: scrittura record consegna e ricerca quantita' gia' consegnata (agg-consegne, chiave chia5)
COGGEANA coggeana.fd/.cpy, coggeana.k01 Anagrafica: recupero nome venditore e committente (rd-coggeana)
COGMERCI cogmerci.fd/.cpy, cogmerci.k01 Descrizione merce, flag distinta base/padre/tipo distinta/scorta (rd-cogmerci)
COGTABEL cogtabel.fd/.cpy, cogtabel.k01 Configurazione (tabella 70, arg. PROG/COGO05): numero righe ordine per la scansione
COGMAGA2 cogmaga2.fd/.cpy, cogmaga2.k01 Anagrafica magazzini (accesso predisposto)

Flusso principale

  1. a000 / mainctr-abil, open-files, rd-azi. Se invocato come slave (o16-ope): ins-auto esegue l'inserimento automatico e termina; da-rio imposta l'operativita' "da-riordino-interno".
  2. init-campi — azzeramento campi e caricamento estremi ordine dai campi di link (o70-tip/o70-ann/o70-num/o70-pro -> wko-*).
  3. x99-src-cfg / x99-rd-cfg / x99-cfg-init — lettura configurazione dalla tabella 70 (euta-tipo = 70, euta-cfg-arg = "PROG", euta-cfg-key = "COGO05") per stabilire il tipo di scansione righe ordine (tm-ord-righe); default "P".
  4. a10 / a15 — richiesta estremi ordine (anno via COGS52, numero); se wko-tip e' gia' valorizzato gli estremi non vengono richiesti. Controllo esistenza ordine e blocco per ordini a consegna singola (tor-valuni = "C").
  5. a20-go — recupero e display dati ordine: venditore, committente, date di decorrenza/scadenza.
  6. a30 — richiesta data consegna (COGS52).
  7. src-righe-ordine — carica in tm-tab-righe (occurs 0 to 200) le righe ordine da COGRIGOR; per ciascuna calcola la quantita' gia' in consegna sommando i record COGCONOR (chia5) e propone come default la quantita' residua. Imposta il flag lavorazione (tmr-prd) in base a distinta base/temporanea/scorta.
  8. disp-tab / acc-00 — visualizzazione tabellare con scroll e accept delle quantita' da consegnare riga per riga; controllo che la consegna non superi il residuo ordine.
  9. acc-50 — controlli finali: almeno una quantita' significativa, nessun superamento del residuo; per la personalizzazione Eurocold (az-personal = "EC") controlli-matricole-cold valida le combinazioni master/varianti tramite COGM97.
  10. agg-consegne — generazione consegne su COGCONOR, scritte per due magazzini/progressivi (magazzino principale az-main-mag e magazzino lavorazione az-mag-cla), con numerazione da COGS25. Per le righe che innescano lavorazione richiama COGS16 (impegno componenti); per le distinte temporanee (tmr-tip-dis = "V") richiama COGM96. Inserisce anche il record di testa con merce a low-values (a2-testa).
  11. fine / z-chiudi — chiusura file, cancel "COGS16"/"COGM96", chiusura finestra, z-99-exit-program.

Sottoprogrammi chiamati

Programma Ruolo
COGS52 Accept/verifica data (anno ordine e data consegna) — util-s52
COGS25 Assegnazione numerazione consegne per magazzino/anno — util-s25
COGS16 Aggiornamento impegno componenti per le righe che generano lavorazione
COGM96 Aggiornamento impegno componenti per distinte temporanee (Ins-Consegna) — util-m96
COGM97 Solo Eurocold: ricerca schede tecniche master/varianti per il controllo matricole (ricerca-no-gest)
COGS68 Visualizzazione/ricerca merce nella tabella righe (util-s68, versione a carattere)
COGN12 Modifica configurazione (paragrafo x99-conf, non innescato dal flusso interattivo standard)

Note

  • Maschera a caratteri (mm-1, disp/accept posizionali con line/col), non a griglia grafica: pattern legacy piu' datato rispetto agli altri gestori.
  • Uso estensivo di GO TO e di PERFORM ... THRU (src-righe-ordine THRU ex-sro, agg-consegne THRU ex-agg-c, ecc.), coerente con lo stile del sorgente originale.
  • Le consegne vengono scritte in doppia coppia di record: magazzino principale (io-pro = 0) e magazzino di lavorazione/classe (io-pro = 1), piu' un record di testa con merce low-values per la ricerca da ordine.
  • Blocco specifico: il riferimento a un ordine con "consegna singola" (tor-valuni = "C") non e' ammesso.
  • Il campo magazzino in maschera e' commentato (righe tm-mag/a50 disabilitate): la scelta del magazzino e' derivata da az-main-mag/az-mag-cla.
  • Personalizzazione Eurocold (az-personal = "EC"): controlli-matricole-cold impone vincoli sulle combinazioni di schede master/varianti (tramite COGM97) per consentire la creazione di un'unica matricola coerente per consegna.
  • Il tipo contratto e' forzato a "C" (move 'C' to tm-tipo).