COGO20 - Creazione ordine da preventivo¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGO20 |
| Titolo | Creazione ordine (e opzionalmente commessa di lavorazione) a partire da preventivo |
| Modulo | Ordini / Magazzino / Produzione |
| Tipologia | Programma interattivo a maschera + griglia |
| Posizione menu | Ordini > Clienti > Creazione da Preventivo ; Magazzino > Produzione > Commesse > Creazione da Preventivo |
Scopo¶
Genera uno o piu' ordini cliente partendo da uno o piu' preventivi gia' inseriti. Opzionalmente, contestualmente all'ordine, crea:
- una merce padre per ogni raggruppamento di righe (con relativa distinta base)
- un listino di vendita sulla merce padre
- una commessa di lavorazione collegata all'ordine
- le consegne sulle righe ordine
- i collegamenti con eventuali note presenti sul preventivo
Il programma puo' essere richiamato direttamente dal menu oppure in modalita' "called" (w-dc-called = "S") da altri programmi, ricevendo via linkage il preventivo da elaborare.
Flusso principale¶
- Inizializzazione (
a000): lettura azienda, lettura configurazioni RNEWCONF, controllo CRM (CRMS06), apertura file (compresi due file di transitocogtransecogtrans2), caricamento divisa contabile. - Accettazione testata (
a4e a-tm-*): sequenza di accept dei campi: - elenco preventivi (fino a 20:
tm-anno-r/tm-numero-r) - data ordine, magazzino, flag impegno merce, data consegna prevista
- flag creazione commessa (
tm-commessa) - cliente (
tm-cli), divisa, condizioni pagamento (tm-pag-1/tm-tip-pag), listino di riferimento (tm-rif-lis), commessa di destinazione (tm-com), riferimento MGP, causale, brand, gruppo aziende - Lettura preventivi e popolazione tabella raggruppamenti (
tab-legame-rag): per ogni preventivo accettato, leggi le sue righe e raggruppale; mantieni il mapping(prev-anno, prev-num, prev-rag) -> rag-attuale. - Caricamento griglia dettaglio (
a-leggi-cogtrans,a-grid-det): una riga per raggruppamento, con descrizione, coefficiente, descrizione estesa, flag sub/giacenza/distinta/opzionale, codice IVA, prezzo acquisto. - Accept righe griglia (
a-accept-grid-det): l'utente puo' modificare descrizione, descrizione estesa, coefficiente, listino, flag. - Conferma (
a-richiesta-conferma): dialog di conferma con possibilita' di annullare. Le creazioni effettive sono delegate aCOGO20B: - chiamata con operazione di preparazione (carica preventivi, raggruppamenti, dettagli)
- chiamata con operazione finale di creazione ordine/commessa
COGO20Besegue: scrittura testata ordine (COGTESOR), righe (COGRIGOR), consegne (COGCONOR), creazione merce padre + distinta base (se richiesto), creazione listino, creazione commessa (COGG52), collegamento note- Uscita (
fine/z-chiudi): cleanup file di transito, chiusura,z-99-exit-program.
Configurazioni RNEWCONF¶
| Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|
| ordini | gestione-distinte-kit | tm-cfg-gestione-kit |
Modalita' kit/distinta |
| COMMESSE | tracciatura-flussi-finanziari | tm-cfg-tracciatura-flussi-finanziari |
Tracciatura finanziaria su commessa |
| commesse | commessa-impianto | tm-cfg-commessa-impianto |
Tipo commessa impianto |
| commesse | tipo-dossier-commessa | tm-cfg-tipo-dossier-commessa |
Tipo dossier sulla commessa |
| preventivi | uso-dossier-commessa | tm-cfg-uso-dossier-commessa |
Uso del dossier commessa |
| PREVENTIVI | MERCE-DESCRITTIVA | tm-cfg-merce-descrittiva |
Codice merce descrittiva |
| commesse | codifica-automatica | tm-cfg-comm-codifica-automatica |
Codifica automatica codice commessa |
| ABILITA | GRUPPO-AZIENDE | tm-cfg-gruppo-aziende |
Abilitazione gruppo aziende |
| preventivi | prest-da-prev-a-ordine | tm-cfg-prest-da-prev-a-ordine |
Trasferisci prestazioni da preventivo a ordine |
File acceduti¶
| File | Modalita' | Uso |
|---|---|---|
| FEURTAB | Input | Nomi file gestionale |
| COGTRANS (transito) | I-O | File di transito principale per raggruppamenti/righe (chiavi: chia1, chia2 ragr+riga+merce+prog, chia3 riga-kkk+chia1) |
| COGTRANS2 (transito) | I-O | Mapping legame raggruppamenti preventivo<->attuale (prog -> tlr-preventivo+prv-rag+act-rag) |
| TRAN-M96, TRBN-M96 (external) | I-O | File di transito M96 (gestione condizioni pagamento) |
| COGMERCI | Input/Out | Anagrafica merci (e merci padre create); chiavi cogmerci.k02, cogmerci.k03 |
| COGTESCM | Input/Out | Testate commesse di lavorazione; cogtescm.k03 |
| COGTESPR | Output (aggiornamento) | Testate preventivi (cogtespr.k01-agg) per marcare i preventivi consumati |
| COGTESOR / COGRIGOR / COGCONOR | Output | Testata, righe, consegne ordine cliente (via COGO20B) |
| COGG52 (commesse) | Output | Anagrafica commesse (via COGO20B) |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazioni |
| CRMS06 | Controlli CRM (restrizioni accesso) |
| COGU10 / COGU10W | Recupero divisa contabile |
| COGUA3 | Utility specifica |
| COGE22 | Gestione attrezzature/template |
| COGG52 | Anagrafica commesse |
| COGO20B | Motore vero e proprio di creazione ordine/commessa (operazioni multiple in cascata) |
| GRIDADMN | Gestione griglia dettaglio raggruppamenti |
Copybook inclusi¶
Screen Designer¶
cogo20.select, cogo20.fd, cogo20.wrk, cogo20.prc, cogo20.decla, cogo20-01.scr
Linkage / utility¶
utilcogo20b.cpy (interfaccia COGO20B), utilCOGO20.cpy (linkage chiamata called), utilcrms06.cpy, utilcogua3.cpy, utilm96.cpy, utildlg.cpy, utils01.cpy, utils16.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utilu10.cpy, utilu20.cpy, utilu35w.cpy, utilw01.cpy, utilw06.cpy, utilw36.cpy, utilw92.cpy, utile22.CPY, utilm12.CPY, utilncnf.cpy, utilo10.cpy, utilw35.cpy, utilg52.cpy, utilgdad.cpy
Costanti / framework¶
k-personal.cpy, cogazien.cpy, wgrid.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, wstato.cpy
Routine standard¶
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, sendw01.cpy, sendw06.cpy, sendw36.cpy, sendw92.cpy, msgmerce.cpy, call-u35.cpy
Chiavi secondarie¶
cogmerci.k02, cogmerci.k03, cogtescm.k03, cogtespr.k01-agg, cogtrans.k01, cogtrans.k02, cogtrans.k03, cogtran2.k01
Strutture dati chiave¶
tab-legame-rag¶
Mappa tra raggruppamenti del preventivo e raggruppamenti attuali nell'ordine in costruzione. Fino a 100 elementi:
| Campo | Pic | Descrizione |
|---|---|---|
| tlr-preventivo (ann+num) | 9(4)+9(6) | Preventivo origine |
| tlr-prv-rag | 9(2) | Raggruppamento sul preventivo |
| tlr-act-rag | 9(2) | Raggruppamento corrispondente sull'ordine attuale |
tab-maschera.tm-tabella¶
Tabella delle righe della griglia di dettaglio raggruppamenti (fino a k-max-ele-grid-det):
| Campo | Descrizione |
|---|---|
| tm-desc | Descrizione breve riga |
| tm-coeff | Coefficiente quantita' (es. per kit) |
| tm-descriz | Descrizione estesa |
| tm-fl-sub / tm-fl-gia / tm-fl-opz / tm-fl-dist / tm-fl-ci | Flag sub/giacenza/opzione/distinta/cliente interno |
| tm-num-lis | Listino specifico |
| tm-acq-cur / tm-acq-pre | Divisa e prezzo di acquisto |
Modalita' "called"¶
Tramite utilCOGO20.cpy il programma riceve w-dc-called = "S" e in tal caso accetta i parametri:
w-dc-ope(operazione)w-dc-ana-cod(cliente)w-dc-nom(anagrafica nominativi)w-dc-preventivo(anno+numero preventivo)
per andare in modalita' guidata da un programma chiamante (es. wizard di creazione ordine da CRM).
Note tecniche¶
- Limite preventivi multipli: fino a 20 preventivi possono essere elaborati contestualmente (vettore
tm-ele-prev). - Limite raggruppamenti: massimo 100 raggruppamenti gestiti in
tab-legame-rag. - Il programma non crea direttamente l'ordine: tutta la creazione vera e propria e' delegata a
COGO20B, che riceve il contesto viautil-cogo20be i file di transito gia' popolati. Questo permette di centralizzare in COGO20B la logica transazionale. - La creazione di una commessa (flag
tm-commessa = "S") richiede che il cliente abbia un nominativo padre/dossier compatibile (configurazionicommesse/tipo-dossier-commessa,preventivi/uso-dossier-commessa). - Per il listino di vendita sulla merce padre il programma usa il framework
utilo10.cpy(interfaccia COGO10W per la gestione listini).
Storico modifiche¶
| Data | Descrizione |
|---|---|
| 2023-07-10 | Aggiunta gestione gruppo aziende (configurazione ABILITA/GRUPPO-AZIENDE) |
| 2023-08-28 | Aggiunta opzione "trasferimento prestazioni da preventivo a ordine" (configurazione preventivi/prest-da-prev-a-ordine) |