COGO05W - Gestione ordini clienti (worker)
Intestazione
| Campo |
Valore |
| Programma |
COGO05W |
| Titolo |
Inserimento/modifica ordine cliente (modulo worker) |
| Modulo |
Ordini |
| Programma chiamante |
COGO05 (inserimento), COGO10W (gestione) |
| Posizione menu |
Ordini > Clienti > Inserimento / Gestione |
Scopo e logica generale
COGO05W e' il modulo worker per l'inserimento e la modifica degli ordini cliente. Viene chiamato da COGO05 (inserimento nuovo ordine) o da COGO10W (gestione ordine esistente) e implementa l'intera logica di interazione con l'utente, calcolo prezzi/sconti, validazione e salvataggio.
L'interfaccia e' organizzata in 3 schede:
- TS1: Dati testata (cliente, causale, magazzino, listino, pagamento)
- TS2: Dati testata aggiuntivi (date, riferimenti, note)
- RIG: Griglia righe ordine (articoli, quantita', prezzi, sconti)
Flusso principale
- Inizializzazione: caricamento configurazione (tipo 70), controllo restrizioni CRM (CRMS12), setup tasti funzione personalizzati (7 pulsanti custom), preparazione interfaccia a 3 schede
- Selezione/caricamento ordine:
- Se chiamato per nuovo ordine: prepara testata vuota
- Se chiamato per modifica: carica testata (COGTESOR) e righe (file transito tran-o05)
- Verifica RMA/conto anticipo collegato (COGU30)
- Interazione testata (TS1/TS2):
- Accept campi con validazione: numero ordine, cliente/gruppo, causale, magazzino, listino, pagamento
- Auto-popolamento: magazzino da causale, listino da cliente, condizioni pagamento
- Interazione griglia righe (RIG):
- Inserimento/modifica articoli tramite griglia GRIDADMN (max 1.500 righe)
- Auto-fill da anagrafica merci: UM, descrizione, codice IVA
- Calcolo automatico: prezzi da listino, sconti, importi netti
- Gestione varianti (COGV30), margini (COGMAH), garanzie (COGMA3)
- Validazione e salvataggio:
- Verifica RMA/conto anticipo
- Aggiornamento testata COGTESOR e righe
- Sincronizzazione su tabelle derivate (COGRIGOR, COGCONOR)
- Eventuale export (COGO58) e creazione chiamate assistenza (ASNS11)
- Uscita: chiusura file transito, ritorno al chiamante
File e tabelle acceduti
| File |
Record |
Modalita' |
Uso |
| FEURTAB |
feurtab |
Input |
Parametri azienda |
| COGTESOR |
tor-rec |
I-O |
Testata ordini clienti |
| COGTORAG |
tar-rec |
I-O |
Dati aggiuntivi ordine |
| COGMERCI |
mer-rec |
Input |
Anagrafica merci |
| COGRACMC |
rcm-rec |
Input |
Codici merce avanzati/alternativi |
| LODTMDES |
lodtmdes |
I-O |
Tabella dettagli alloggi |
| tran-s47 |
Transito |
I-O |
File transito S47 |
| tran-u30 |
Transito |
I-O |
File transito U30 |
| tran-o05 |
Transito |
I-O |
File transito righe ordine |
| tran-o55 |
Transito |
I-O |
File transito O55 |
| tran-s16 |
Transito |
I-O |
File transito S16 |
| tran-m96 / trbn-m96 |
Transito |
I-O |
File transito M96 |
| tran-f88 |
Transito |
I-O |
File transito F88 |
| inpfil |
Sequenziale |
Input |
File input EAN/quantita' |
| filestra |
Line sequential |
I-O |
File lavoro (max 5.000 record) |
Chiavi secondarie
| Copybook |
Tabella |
Scopo |
cogmagaz.k03 |
COGMAGAZ |
Ricerca magazzini |
cogmerci.k03 |
COGMERCI |
Ricerca merci per codice alternativo |
cogtesor.k02 / .k03 |
COGTESOR |
Ricerca ordini per cliente / per riferimento |
cogconor.k02 / .k05 |
COGCONOR |
Ricerca consegne |
coglavor.k05 |
COGLAVOR |
Ricerca lavorazioni |
cogrigbp.k04 |
COGRIGBP |
Ricerca righe buoni prelievo |
cogracmc.k02 |
COGRACMC |
Ricerca codici merce avanzati |
Copybook inclusi
Costanti e configurazione
| Copybook |
Contenuto |
k-u10.cpy / k-personal.cpy |
Costanti divisa e personalizzazione |
costanti-tgls.cpy / costanti-stampaggio.cpy |
Costanti produzione |
k-tipi-cogtabel.cpy |
Tipi tabelle configurazione |
k-modelli-ie-int-dm.cpy |
Modelli interscambio documenti |
Screen Designer
| Copybook |
Contenuto |
cogo05w.prc |
Procedure Screen Designer |
cogo05w.wrk / .fd / .select |
Working storage, FD, SELECT generati |
Utility e interfacce
| Copybook |
Contenuto |
utilcogpa9.cpy |
Import da Excel (PA9) |
utilcrms06.cpy / utilcrms08.cpy / utilcrms09.cpy |
Interfacce CRM |
wgrid.cpy / utilgdad.cpy |
Gestione griglia |
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy / cogazien.cpy |
Working storage comuni |
Programmi chiamati (CALL)
Gestione ordine
| Programma |
Scopo |
| CRMS12 |
Controllo restrizioni CRM |
| COGU30 |
Verifica RMA/conto anticipo |
| COGO08 |
Manipolazione dettagli ordine |
| COGO58 |
Esportazione ordine |
| COGO65 |
Elaborazione specifica cliente |
| COGO74 |
Verifica impegni documento |
Anagrafica e prezzi
| Programma |
Scopo |
| COGE08C |
Gestione attrezzature |
| COGE18 / COGE22 / COGE35 |
Template/lista/dettagli attrezzature |
| COGE67 / COGE69 / COGE89 |
Analisi/gestione costi |
| COGMAH |
Calcolo margine |
| COGQ38 |
Gestione preventivi |
| COGS86 |
MRP/schedulazione |
| COGV30 / COGV35 |
Gestione varianti |
| COGMA3 |
Gestione garanzie |
| COGM90 |
Gestione macchine |
| COGB64 |
Gestione blocchi |
Interfaccia
| Programma |
Scopo |
| GRIDADMN |
Amministrazione griglia (aggiungi/elimina righe) |
| DIALOGS |
Finestre di dialogo |
| WIN015 |
Integrazione Modena Funghi |
| WIN096 |
Condizioni pagamento |
| GRP002 |
Gestione gruppi clienti |
| NTFORD |
Note ordine |
Utility
| Programma |
Scopo |
| ASNS11 |
Creazione chiamata assistenza |
| CRM049 |
Gestione priorita' CRM |
| COGD89 |
Esposizione debito cliente |
Tasti funzione
| Tasto |
Contesto |
Funzione |
| F1 |
Griglia |
Previsione produzione |
| F2 |
Griglia |
Giacenza disponibile |
| F3 |
Vari |
Conferma/salva |
| F5 |
Griglia |
Listino cliente specifico |
| F6 |
Griglia |
Chiudi riga / Sostituzione/accodamento |
| F7 |
Testata/griglia |
Note aggiuntive |
| F8 |
Griglia |
Gestione margine |
| F9 |
Testata |
Nuova versione ordine |
| S-F2 |
Vari |
Filiera documenti |
| S-F6 |
Griglia |
Esplodi distinta base destinazione |
| ESC |
Vari |
Indietro/esci |
Logica di business
Calcolo prezzi e sconti
Per ogni riga della griglia:
- Alla digitazione del codice merce: auto-fill UM, descrizione, codice IVA da COGMERCI
- Ricerca prezzo da listino (COGS01) in base a: listino configurato, cliente, data ordine
- Applicazione sconti: sconti cliente, sconti articolo, sconti manuali
- Calcolo importo netto:
Qta x (Prezzo lordo - Sconto1% - Sconto2%)
- Ricalcolo totali documento (
x4-totali)
Gestione RMA e conto anticipo
Se l'ordine e' collegato a un RMA o conto anticipo (verifica tramite COGU30):
- La modifica e' limitata alla sola testata (w-aggiorno-solo-testata)
- Non e' possibile aggiungere righe
Cliente di fatturazione su commesse (TASK-2268)
Quando si genera una commessa da un ordine e il cliente dell'ordine ha un cliente "padre" (tor-destina), il padre diventa il cliente di fatturazione (g52-ana-cod) e il cliente dell'ordine diventa il cliente di destinazione (g52-cli-dst). Precedentemente il cliente dell'ordine era sempre usato come cliente di fatturazione.
Import da Excel
Tramite COGPA9, supporta l'importazione righe da file Excel con campi:
- Codice merce (master/minor), quantita', prezzo lordo, sconti, prezzo netto, importo
Limiti
- Massimo 1.500 righe per ordine
- Se l'ordine e' gia' evaso (fatturato), la modifica righe e' bloccata salvo configurazione
tm-cfg-modifica-se-evaso = "S"
Pattern architetturali
- Worker module: non ha interfaccia menu propria, viene invocato da COGO05 (inserimento) o COGO10W (gestione)
- Interfaccia a 3 schede: testata (2 pagine) + griglia righe
- File transito multipli: 7 file transito per gestione dati intermedi (tran-o05, tran-s47, tran-u30, ecc.)
- Griglia con 1.500 righe max: gestione performance con caricamento paginato
- 30+ sottoprogrammi: forte integrazione con moduli CRM, magazzino, produzione, assistenza
- Calcolo on-the-fly: prezzi e totali ricalcolati ad ogni modifica riga
Casistica problemi noti
Riapertura ordine chiuso: consegne e BDP orfani
- Sintomo: Dopo aggiunta righe a un ordine gia' evaso e chiuso automaticamente (COGU13), i BDP risultano collegati a consegne inesistenti. L'ordine appare non evaso nonostante il DDT emesso.
- Causa: Il flag
tm-chiu viene caricato da tor-chiu all'apertura e non ricalcolato all'aggiunta di nuove righe. La procedura tratta-consegne cancella le consegne esistenti, ma COGO16CW trova tor-chiu = "C" e esce senza ricrearle.
- Correzione: Reset di
tor-chiu (da "C" a spaces) prima della chiamata a tratta-consegne, con riscrittura su COGTESOR. COGO16CW ricrea correttamente le consegne.
- Riferimento: dettaglio — ClickUp 869cknur6
Commessa da ordine: cliente padre/figlio non gestito
- Sintomo: Creando una commessa da ordine cliente, i dati del cliente di fatturazione e destinatario risultavano errati quando il cliente era collegato a un cliente "padre".
- Causa: COGO05W non valorizzava il cliente di fatturazione con il cliente padre ne' impostava il cliente dell'ordine come destinatario.
- Correzione: Valorizzato il cliente padre come fatturazione e il cliente ordine come destinatario nella creazione commessa.
- Riferimento: dettaglio — ClickUp 869at2cax
Storico modifiche
2026-05-14: TASK-5052 - Riferimento chiamata sulla descrizione ordine
Dopo la creazione di una chiamata di assistenza tramite ASNS11 (che restituisce asns11-chiamata > 0), se l'ordine corrente e' caricato in tor-rec, COGO05W compone la stringa "Chiamata:NNNN" (dove NNNN e' l'id chiamata) e la appende a tor-descr/tor-descr1:
- se
tor-descr e' vuoto, la stringa viene scritta da capo;
- altrimenti viene calcolata la posizione del primo carattere libero in coda a
tor-descr (scan da destra) e, se restano almeno 21 caratteri, la stringa viene aggiunta a partire dalla colonna successiva;
- se la prima riga descrizione e' piena, la logica si ripete su
tor-descr1;
- al termine viene eseguita
rwr-cogtesor per persistere l'aggiornamento.
L'operazione si affianca all'analoga implementata in ASN110 (collegamento manuale ordine -> chiamata): tutte le strade di creazione/collegamento marcano l'ordine con "Chiamata:NNNN" cosi' che gli operatori vedano l'aggancio direttamente dalla testata ordine senza navigare ad ASN210.