Vai al contenuto

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

  1. Inizializzazione: caricamento configurazione (tipo 70), controllo restrizioni CRM (CRMS12), setup tasti funzione personalizzati (7 pulsanti custom), preparazione interfaccia a 3 schede
  2. Selezione/caricamento ordine:
  3. Se chiamato per nuovo ordine: prepara testata vuota
  4. Se chiamato per modifica: carica testata (COGTESOR) e righe (file transito tran-o05)
  5. Verifica RMA/conto anticipo collegato (COGU30)
  6. Interazione testata (TS1/TS2):
  7. Accept campi con validazione: numero ordine, cliente/gruppo, causale, magazzino, listino, pagamento
  8. Auto-popolamento: magazzino da causale, listino da cliente, condizioni pagamento
  9. Interazione griglia righe (RIG):
  10. Inserimento/modifica articoli tramite griglia GRIDADMN (max 1.500 righe)
  11. Auto-fill da anagrafica merci: UM, descrizione, codice IVA
  12. Calcolo automatico: prezzi da listino, sconti, importi netti
  13. Gestione varianti (COGV30), margini (COGMAH), garanzie (COGMA3)
  14. Validazione e salvataggio:
  15. Verifica RMA/conto anticipo
  16. Aggiornamento testata COGTESOR e righe
  17. Sincronizzazione su tabelle derivate (COGRIGOR, COGCONOR)
  18. Eventuale export (COGO58) e creazione chiamate assistenza (ASNS11)
  19. 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:

  1. Alla digitazione del codice merce: auto-fill UM, descrizione, codice IVA da COGMERCI
  2. Ricerca prezzo da listino (COGS01) in base a: listino configurato, cliente, data ordine
  3. Applicazione sconti: sconti cliente, sconti articolo, sconti manuali
  4. Calcolo importo netto: Qta x (Prezzo lordo - Sconto1% - Sconto2%)
  5. 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: dettaglioClickUp 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: dettaglioClickUp 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.