Vai al contenuto

COGO42 - Visualizzazione Nuovi Ordini da E-commerce

Panoramica

Programma interattivo per la visualizzazione e gestione degli ordini provenienti dal canale e-commerce (ordini web, tipo "W"). Presenta in griglia gli ordini web non ancora trasferiti nella numerazione standard. Permette di aprire l'ordine in gestione (COGO10), e dopo la modifica di trasformarlo in ordine standard rinumerando testata, righe, consegne, record COGDESOR, COGMOVDB e COGDESCR. Supporta la stampa dell'ordine (COGO65) e della packing list (COGP86) dopo il passaggio. Se l'operatore e' associato a un agente, filtra automaticamente tramite COGS96.

Posizioni nel menu

Menu Percorso
Ordini Clienti > Visualizzazioni > Ordini da E-commerce

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema
COGGEANA Input Anagrafica clienti/fornitori
COGTESOR I-O Testata ordini (lock per rinumerazione)
COGRIGOR I-O Righe ordini (inserimento nuova, cancellazione vecchia)
COGCONOR I-O Consegne ordini (rewrite con nuovo numero)
COGDESOR I-O Link ordini web / ordini standard (lettura, inserimento, cancellazione)
COGTORAG I-O Testata raggruppamento ordini (rinumerazione)
COGMOVDB I-O Movimenti distinta base (rinumerazione tipi VT e VC)
COGDESCR I-O Descrizioni aggiuntive (rinumerazione tipi OP e OC)
BOGDESOR Output Buffer scrittura COGDESOR rinumerato
BOGDESCR Output Buffer scrittura COGDESCR rinumerato
TRAN-COGS96 I-O (temp) File di transito per elaborazione filtro agenti

Copybook principali

Copybook Descrizione
cogo42.select SELECT dei file
cogo42.fd File Description
cogo42.wrk Working storage generata
cogo42.prc Procedure generate da Screens
cogo42-01.scr Screen section
wgrid.cpy Variabili gestione griglia
utilgdad.cpy Interfaccia GRIDADMN
utildlg.cpy Interfaccia DIALOGS
utilp86.cpy Interfaccia COGP86 (stampa packing list)
utils25.cpy Interfaccia COGS25 (numerazione ordini)
utils52.cpy Interfaccia COGS52
utils65.cpy Interfaccia COGS65W
utilw15.cpy Interfaccia WIN015 (dettaglio ordine)
utilcogs96.cpy Interfaccia COGS96 (filtro agenti)
utilo10.cpy Interfaccia COGO10 (gestione ordini, linkage)
utilo65.cpy Interfaccia COGO65 (stampa ordine, linkage)

Chiamate a sottoprogrammi (CALL)

Programma Scopo
GRIDADMN Gestione griglia avanzata
COGO10 Gestione ordini clienti (richiamato come "called" per visualizzazione/modifica ordine web)
COGO65 Stampa ordine (dopo passaggio a standard)
COGP86 Stampa packing list (dopo passaggio a standard)
COGS25 Numerazione ordini: ottiene il prossimo numero disponibile per ordini standard
COGS65W Accept codice agente con ricerca
COGS96 Gestione filtro agenti per operatore
WIN015 Finestra dettaglio ordine (F8)
DIALOGS Gestione dialogo operazioni post-passaggio (Esc/F8 packing/F9 stampa)

Logica di elaborazione

Flusso principale

  1. Inizializzazione (apri): apre file, carica lingua, configura tasti funzione (F3 conferma/gestione, F8 aiuto/dettaglio, F9 ricerca avanzata, S-F4/S-F5 griglia). Carica agenti operatore tramite carica-agenti. Se l'operatore non ha agenti validi, il programma termina.
  2. Filtro agente (a-tm-age): accept del codice agente (0 = tutti). Valida che l'agente esista in anagrafica. Se agente specificato, filtra per quell'agente.
  3. Caricamento griglia (carica-tab): esegue spaginamento su COGDESOR partendo da tipo "W". Per ogni record, legge la testata ordine (COGTESOR) per verificare che non sia in stato temporaneo ("T") e che rientri nel filtro agente (se specificato, oppure filtro da COGS96). Popola la griglia con: codice/descrizione cliente, conferma, ordine (anno/numero/progressivo), agente (codice/descrizione).
  4. Navigazione griglia (a-grid): gestisce paginamento, F3 (apre COGO10 per gestione ordine), F8 (WIN015 dettaglio), S-F4/S-F5 (personalizzazione/export).

Passaggio a ordine standard (b1-passa)

Procedura centrale del programma, invocata quando l'utente conferma il passaggio dopo la modifica in COGO10:

  1. Numerazione (b1-10): chiama COGS25 con codice 10 per ottenere il prossimo numero ordine standard. Verifica che il numero non sia gia' occupato (loop in caso di collisione).
  2. Nuova testata: legge la testata ordine web con lock, cambia il numero, imposta operatore e data operazione, scrive la nuova testata con wr-cogtesor.
  3. Testata aggiuntiva (COGTORAG): legge con lock, scrive con nuovo numero, cancella il vecchio record.
  4. Righe (b1-10-loop): scorre tutte le righe (COGRIGOR) dell'ordine web. Per ogni riga:
  5. Rinumera i record COGDESOR collegati (tipi "O" e "W") tramite b1-cogdesor
  6. Rinumera i record COGDESCR collegati (tipi "OP" e "OC") tramite b2-cogdescr
  7. Scrive la nuova riga con wr-cogrigor, cancella la vecchia con del-cogrigor
  8. Cancellazione vecchia testata (b1-30): rilegge e cancella la testata ordine web originale.
  9. Consegne (b1-30-start): scorre COGCONOR chiave 2 per l'ordine web, aggiorna il numero ordine su ogni consegna con rwr-cogconor.
  10. Link web (b1-50): legge e cancella il record COGDESOR tipo "W" che collegava l'ordine alla numerazione web.
  11. COGMOVDB (b11-cambia-cogmovdb): rinumera i record di tipo "VT" (raccordo riga/opzioni) e "VC" (raccordo riga/componenti).
  12. Dialogo finale (b1-70-ok): presenta un dialogo DIALOGS con le opzioni:
  13. Esc: prosegui senza stampare
  14. F8: stampa packing list (COGP86)
  15. F9: stampa ordine (COGO65)

Personalizzazione griglia

Per la personalizzazione "ES" (Artic Seals), la colonna 4 (agente) viene resa visibile; per le altre personalizzazioni viene nascosta.

Note tecniche

  • Il programma non usa un file di transito proprio per la griglia: usa lo spaginamento diretto su COGDESOR tipo "W".
  • La rinumerazione e' completa: tocca COGTESOR, COGTORAG, COGRIGOR, COGCONOR, COGDESOR (tipi O e W), COGDESCR (tipi OP e OC), COGMOVDB (tipi VT e VC). L'ordine delle operazioni e' critico: prima si creano i nuovi record, poi si cancellano i vecchi.
  • La procedura b1-cogdesor e b2-cogdescr usano il pattern: scrivi il record rinumerato su un buffer (BOGDESOR/BOGDESCR), poi cancella l'originale.
  • La griglia supporta fino a 900 elementi (k-max-ele-tab).
  • Se l'operatore non ha agenti validi (fl-ok-age = "N"), il programma termina immediatamente.
  • Dimensione sorgente: circa 53K, circa 1.200 righe.