COGG52 - Gestione Commesse (tabella Commesse)¶
Scopo¶
Programma GUI standalone per la gestione dell'anagrafica delle commesse. Presenta una maschera multi-pagina a tab-control (testata, dati aggiuntivi, dati PA/IBAN, griglia sottocommesse) e permette inserimento, variazione e cancellazione della commessa (COGTESCM) con i relativi dati aggiuntivi (COGTCMAG), sottocommesse con budget (COGRIGCM + COGBUDSC), descrizioni/note e collegamenti a preventivi, ordini, cantieri e CRM. Integra il calcolo dei totali economici (costi/ricavi/margini) tramite COGUA0 e numerose funzioni collegate lanciate da tasti funzione e menu a tendina. E' richiamabile da altri programmi (g52-called = "COGG52-CALLED").
Menu¶
Vendite > Commesse > Tabelle > Commesse
File e tabelle¶
| File | Tipo | Descrizione |
|---|---|---|
| COGTESCM | Indicizzato | Testata commessa (tabella primaria). Chiave secondaria .k03 su tipo/codice anagrafica (st-cogtescm-notmin-chia3). Lettura + scrittura (rd-, rd-...-lk, wr-, rwr-, del-) |
| COGTCMAG | Indicizzato | Dati aggiuntivi commessa (cliente assistenza, destinazione, agente, merce/prestazione, date effettive). Chiave secondaria .k02 (st-cogtcmag-notmin-chia2). Lettura + scrittura |
| COGRIGCM | Indicizzato | Righe commessa: sottocommesse (tip "SC") e ordini collegati (tip "OR"). Scansione st-cogrigcm-notmin / rdnxt-. Lettura + scrittura |
| COGBUDSC | Indicizzato | Budget per sottocommessa (costi materiali/manodopera/altri, ore manodopera). Lettura + scrittura |
| COGSOTCM | Indicizzato | Anagrafica sottocommesse. Sola lettura (validazione/descrizione) |
| COGGEANA | Indicizzato | Anagrafica clienti/fornitori/agenti (ana-tipo, ana-cod). Sola lettura |
| COGTABEL | Indicizzato | Tabelle di sistema (tipo commessa, raggruppamento, stati IBAN, agente). Sola lettura |
| COGTESOR | Indicizzato | Testata ordini. Sola lettura (collegamento ordine-commessa, chiusura automatica) |
| COGRIGOR | Indicizzato | Righe ordine. Lettura + scrittura (azzeramento riferimento commessa in canc-rif-rigor) |
| COGDESTI | Indicizzato | Destinazioni diverse. Sola lettura |
| COGDESCR | Indicizzato | Descrizioni/note documento. Lettura + scrittura |
| COGMERCI | Indicizzato | Anagrafica merci/prestazioni. Sola lettura (validazione prestazione) |
| COGTPRAG | Indicizzato | Preventivi. Sola lettura (info da preventivo) |
| COGCMMGP / COGMAGPE | Indicizzato | Raccordo cantieri/magazzino (personalizzazione). Lettura + cancellazione |
| ASNMATRI | Indicizzato | Matricole assistenza. Chiave secondaria .k02. Sola lettura (scheda CRM) |
| LODTMDES | Indicizzato (temporaneo) | Buffer descrizioni/note; nome file con PID #$COGG52_<pid>.<oper>; aperto/cancellato dal programma |
| T-DETTAGLIO | Indicizzato (temporaneo) | File di scambio con COGUA0 per i totali economici; nome <tmp>/COGUA0_<oper>; l'apertura output con stato != 00 segnala "funzione gia' in uso dall'operatore" |
| T-GRID-DET | Indicizzato (temporaneo) | Transito della griglia sottocommesse (apri/crea/riordina/carica-tab) |
Copybook¶
File e select¶
feurtab.fd,cogfiles.cpycogg52.select,cogg52.fd,cogg52.wrk,cogg52.decla,cogg52.prccogg52-01.scr(screen section)lodtmdes.fd,lodtmdes.cpy— file temporaneo descrizionicogua0-t-dettaglio.fd,cogua0-t-dettaglio.cpy— file temporaneo scambio con COGUA0- Chiavi secondarie incluse manualmente a fine procedure:
cogtescm.k03,cogtcmag.k02,asnmatri.k02
Working-storage standard¶
costanti-commesse.cpy,k-personal.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpy
Utilita'¶
wgrid.cpy,utilgdad.cpy— gestione griglia (GRIDADMN)utilu10.cpy,utilu20.cpy,utilu70.cpy,utilu35w.cpy— editor importi/valuta, tipo commessa, accept codiceutils52.cpy,utils65.cpy,utils68.cpy,utils25.cpy— subroutine campi (data, anagrafica, numeratore)utildlg.cpy— dialog a bottoni (DIALOGS)utilcogu03w.cpy— gestione banca/IBAN (COGU03W)utile35.cpy,utilagprg.cpy,utilzde.cpy— agente, note multi-riga (COGZDEW)utilncnf.cpy— configurazioni RNEWCONFutilgesdebug.cpy— logging/debug- Linkage moduli chiamati (parametri
util-*):utilcogo45.cpy,utilcogua4.cpy,utilcogma3.cpy,utilcogx06.cpy,utilcogga4.cpy,utilw92.cpy,utilcrmk10.cpy,utilcrms06.cpy,utilcrm030.cpy,utilcogg4d.cpy,utilcogg4f.cpy,utilcogg48.cpy,utilcoguc0.cpy,utilcogua0.cpy,utilcogg4b.cpy
Linkage¶
wcont.cpy,wcont1.cpyutilg15.cpy,utilg32.cpy,utilg52.cpy,utilg53.cpy,utilg56.cpy,utilg60.cpy— parametri moduli di raccordo/stampautilw35.cpy,utila69.cpy,utilx49.cpy,utilcogv60.cpy,utilcogv13.cpy
Procedure¶
grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy
CALL¶
| Programma | Descrizione |
|---|---|
| COGUA0 | Calcolo totali economici commessa (costi/ricavi MO/MAT/ALT, fatturato, differenze) su file temporaneo t-dettaglio |
| COGUA4 | Aggiornamento matricola/DB da ordini (codifica B) o da giacenza (F5) |
| COGS25 | Numeratore progressivo (cod 31) per codifica automatica del codice commessa |
| COGU35 | Accept del codice commessa (via call-u35-accept) |
| COGS65W | Accept con aiuto anagrafica clienti/fornitori/agente |
| COGU10W | Editor importi / valuta |
| COGU03W | Gestione banca / IBAN (ABI, CAB) |
| COGG32 | Accept codice responsabile / capo dipendente |
| COGU70 | Aiuto/selezione tipo commessa (F8) |
| COGA69 | Aiuto raggruppamento commessa (F8) |
| COGE35 | Aiuto agente/fornitore (F8) |
| COGG48 | Aiuto sottocommessa nella cella griglia (F8) |
| COGMA3 | Navigazione filiera documenti su commessa (Shift+F2) |
| COGX06 | Giacenze di commessa (F2) |
| COGGA4 | Analisi commessa (Shift+F5) |
| COGG4D | Gestione fabbisogni commessa (Shift+F8, voce menu) |
| COGG4B | Movimentazione e chiusura commessa (voce menu) |
| COGV13 | Merci fornitori della prestazione (Shift+F9) |
| COGV60NO | Generazione fattura / prefattura (dialog-fa) |
| CRM030 | Scheda CRM per matricola/modello (Shift+F6) |
| CRMK10 | Gestione dossier collegato (Shift+F7) |
| CRMS06 | Lettura info scheda CRM (data prevista chiusura) da preventivo |
| COGUC0 | Galleria documenti (F1, se az-arc-ott = "S") |
| COGG4F | Pianificazione cantiere (Shift+F1) |
| COGG60 | Raccordo tecnici/commesse (F5) |
| COGG15 | Raccordo cantieri/commesse (F6) |
| COGX49 | Gestione giornalieri per commessa (F7) |
| COGG53 | Stampa commessa (F9, parametro "B") |
| COGO45 | Chiusura automatica ordini clienti collegati |
| COGZDEW | Editor note multi-riga su file di lavoro |
| SWN118 | Sincronizzazione chiave commessa con KPN (x-sincronizza-kpn, "ESPORTA-KEY") |
| GRIDADMN | Amministrazione/preparazione griglia sottocommesse |
| W$MENU | Menu principale a tendina (File / Operazioni / Help) |
| DIALOGS | Dialog a bottoni (scelta raccordo, fattura/prefattura) |
| RNEWCONF | Lettura configurazioni (gruppi "commesse", "assist", "ass-chiam") |
Logica di elaborazione¶
apri: init programma,ctr-abil,rd-azi,open-files,x-carica-lingua, apertura log debug; lettura configurazioni (x99-confi); recupero divisa di conto viaCOGU10; composizione nomi dei file temporanei con dir temp/PID.a4: (ri)aprelodtmdes(output poi i-o), imposta il tab-control sulla pagina 1, apre/crea/riordina il transito griglia, carica i controlli, crea il menu a tendina (x-crea-menu), e gestisce il ramo "Inserimento"/chiamato.a-tm-tsc: accept del codice commessa (viacall-u35-accept/COGU35); gestisce la codifica automatica (N/A/B) e il tasto F1 "nuovo codice".a10-ok: lettura commessa daCOGTESCM; se esiste imposta modalita' variazione (fl-ela = "V"), carica la griglia sottocommesse (carica-griglia-2), chiamaCOGUA0e popola i totali economici; se non esiste passa a inserimento (x1-tf-inserimento) e alle note (a-carica-note).a-pagina-1...a-pagina-4: ingressi nelle pagine del tab-control; ognuna attiva/disattiva i tasti funzione pertinenti e ricarica i controlli.a-tm-*(una ventina di accept): campi di testata e dettaglio (progetto, descrizione breve, anagrafica, cliente assistenza, destinazione, stato, tipo, raggruppamento, divisa, importo preventivo, manodopera, date, prestazione/merce, agente, responsabile/capo, sottocommessa definitiva, CUP/CIG, IBAN, nota). Schema standard: aiuto -> accept/subroutine ->z-99-exception-form-> gestione mouse/F2/tasti-funzione ->x-controlla-*.a-grid-det/a-accept-grid-det: gestione della griglia sottocommesse (accept, Shift+F4 GRIDADMN, Shift+F5 export Excel, Ctrl+A nuova riga, Ctrl+E elimina riga, F3/F4 conferma/cancella, menu popup).tasti-funzione: dispatcher centrale dei tasti funzione e delle voci di menu; instrada verso i programmi collegati (giacenze, analisi, fabbisogni, filiera, CRM, dossier, cantieri, stampa, ecc.).x-test-mouse: routing del focus del mouse in base alla pagina attiva (w-tab-current-page-test) e al control-id, mappandoevent-control-idsul paragrafoa-tm-*corrispondente.a-richiesta-conferma: conferma finale (acc-conf); su F3 esegue salvataggio (modify-commessaoinsert-commessa), su F4 cancellazione (delete-commessa); poi eventualedialog-fa(fattura/prefattura, aggiornamento DB, merci fornitori).- Salvataggio (
a1-riempi-record,insert-commessa,modify-commessa,delete-commessa,aggiorna-sottocom): scrivonoCOGTESCM/COGTCMAG, le righe sottocommessaCOGRIGCM+ budgetCOGBUDSC, le descrizioniCOGDESCR; per la codifica "B" creano anche la commessa "base" e la matricola viaCOGUA4.chiusura-ordini(PCASE-3769) chiude viaCOGO45gli ordini clienti aperti quando la commessa passa a stato "C". fine/z-chiudi: chiusura debug,cancelCOGUA0, close/delete dei file temporanei (t-dettaglio,t-grid-det,lodtmdes), distruzione del menu,exit program.
Note tecniche¶
- Tab-control a 4 pagine (
s-mm-1-tab-01..04) pilotato dae-tab-control;w-tab-current-page/w-tab-current-page-testtracciano la pagina attiva;z-99-event-form-1agestiscecmd-tabchanged.x-test-mousee' il dispatcher centrale che, in base a pagina + control-id, salta al paragrafoa-tm-*corretto (id di testata < 100, id di pagina 101-499). - Menu a tendina custom creato a runtime via
W$MENU(thm-main,thm-file,thm-operazioni,thm-help) con voci abilitate/disabilitate dinamicamente in base allo stato variazione/inserimento (fl-ela); le voci sono intercettate comefunziointasti-funzione(costantik-menu-id-gestione-fabb,k-menu-id-movim-chiusura,k-menu-id-config). - Pulsanti bitmap custom (~14 pulsanti da 5 file bitmap: commesse, magazzino, dossier, ecc.) ciascuno legato a un'eccezione tastiera, abilitati/disabilitati via
x-attiva-pbc/x-disattiva-pbc. - Codifica automatica del codice commessa (config
codifica-automatica): "Z" nessuna (manuale), "A" progressiva viaCOGS25, "B" per cliente/destinazione (formatocodice/progressivo, cerca il prossimo libero suCOGTCMAGaltrimenti numeratoreCOGS25); per la codifica "B" all'inserimento crea anche la commessa "base" e la matricola viaCOGUA4. - Codifica sottocommessa (config
TIPO-NUMERAZIONE-SOTTOCOMMESSE,tm-cfg-tip-num-sot): numerica se "N", altrimenti alfanumerica. - Griglia sottocommesse con budget: colonne budget materiali/manodopera/altri e ore-manodopera (
COGBUDSC), con controllo di quadratura ore (somma ore riga <= totale manodopera commessa); aggiunta/eliminazione riga bloccate se e' attivo un filtro di griglia. - Integrazione preventivo/CRM: se la commessa nasce da preventivo (
tm-preventivo) leggeCOGTPRAG-> id-crm ->CRMS06per la data prevista di chiusura. - Sincronizzazione KPN: a ogni insert/modify/delete chiama
SWN118per esportare la chiave commessa. - Personalizzazioni azienda: rami condizionati da
az-personal(label "P.O.", obblighi raggruppamento/responsabile, regole di cancellazione con righe e cantiere) e daaz-arc-ott(galleria documenti),az-naz-default(stato IBAN). - Chiusura ordini automatica (config
ass-chiam/chiusura-automatica-ordini): al passaggio della commessa a stato "C",chiusura-ordinichiude viaCOGO45gli ordini clienti aperti collegati. - Tracciatura modifiche: nel sorgente non sono presenti marcatori
*>DOC:; le modifiche storiche sono annotate con il vecchio stile a data in colonna 1-6 (es.140526,230224,181023,260216) e con riferimenti puntuali (es. PCASE-3769 inchiusura-ordini). - Export: griglia esportabile in Excel (Shift+F5); stampa commessa via
COGG53(F9).