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¶
a000/main—ctr-abil,open-files,rd-azi. Se invocato come slave (o16-ope):ins-autoesegue l'inserimento automatico e termina;da-rioimposta l'operativita' "da-riordino-interno".init-campi— azzeramento campi e caricamento estremi ordine dai campi di link (o70-tip/o70-ann/o70-num/o70-pro->wko-*).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".a10/a15— richiesta estremi ordine (anno via COGS52, numero); sewko-tipe' gia' valorizzato gli estremi non vengono richiesti. Controllo esistenza ordine e blocco per ordini a consegna singola (tor-valuni = "C").a20-go— recupero e display dati ordine: venditore, committente, date di decorrenza/scadenza.a30— richiesta data consegna (COGS52).src-righe-ordine— carica intm-tab-righe(occurs 0 to 200) le righe ordine daCOGRIGOR; per ciascuna calcola la quantita' gia' in consegna sommando i recordCOGCONOR(chia5) e propone come default la quantita' residua. Imposta il flag lavorazione (tmr-prd) in base a distinta base/temporanea/scorta.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.acc-50— controlli finali: almeno una quantita' significativa, nessun superamento del residuo; per la personalizzazione Eurocold (az-personal = "EC")controlli-matricole-coldvalida le combinazioni master/varianti tramite COGM97.agg-consegne— generazione consegne suCOGCONOR, scritte per due magazzini/progressivi (magazzino principaleaz-main-mage magazzino lavorazioneaz-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).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/acceptposizionali conline/col), non a griglia grafica: pattern legacy piu' datato rispetto agli altri gestori. - Uso estensivo di
GO TOe diPERFORM ... 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 mercelow-valuesper 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/a50disabilitate): la scelta del magazzino e' derivata daaz-main-mag/az-mag-cla. - Personalizzazione Eurocold (
az-personal = "EC"):controlli-matricole-coldimpone 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).