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.
| 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
- 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.
- 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.
- 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).
- 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:
- 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).
- Nuova testata: legge la testata ordine web con lock, cambia il numero, imposta operatore e data operazione, scrive la nuova testata con
wr-cogtesor.
- Testata aggiuntiva (COGTORAG): legge con lock, scrive con nuovo numero, cancella il vecchio record.
- Righe (
b1-10-loop): scorre tutte le righe (COGRIGOR) dell'ordine web. Per ogni riga:
- Rinumera i record COGDESOR collegati (tipi "O" e "W") tramite
b1-cogdesor
- Rinumera i record COGDESCR collegati (tipi "OP" e "OC") tramite
b2-cogdescr
- Scrive la nuova riga con
wr-cogrigor, cancella la vecchia con del-cogrigor
- Cancellazione vecchia testata (
b1-30): rilegge e cancella la testata ordine web originale.
- Consegne (
b1-30-start): scorre COGCONOR chiave 2 per l'ordine web, aggiorna il numero ordine su ogni consegna con rwr-cogconor.
- Link web (
b1-50): legge e cancella il record COGDESOR tipo "W" che collegava l'ordine alla numerazione web.
- COGMOVDB (
b11-cambia-cogmovdb): rinumera i record di tipo "VT" (raccordo riga/opzioni) e "VC" (raccordo riga/componenti).
- Dialogo finale (
b1-70-ok): presenta un dialogo DIALOGS con le opzioni:
- Esc: prosegui senza stampare
- F8: stampa packing list (COGP86)
- 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.