Vai al contenuto

ASN040 - Gestione veicoli

Sorgente: cbl/asn040.cbl (1.488 righe) | Tipo: Programma interattivo a griglia editabile con integrazione CRM/anagrafica nominativi

Menu: Assist 2.0 > Archivi > Tabelle > Veicoli


Scopo

Gestisce l'anagrafica dei veicoli dell'assistenza tecnica (mezzi dei tecnici / furgoni officina). Ogni veicolo e' identificato dalla targa e associa descrizione, dati di lettura chilometrica (data lettura, km letti, km rilevati), operatore CRM di riferimento, magazzino, tipo veicolo, peso massimo in kg e — a seconda delle configurazioni — magazzino di partenza (interno/esterno) e tecnico collegato. I veicoli sono memorizzati nel file ASNVEICL e gestiti in griglia editabile con inserimento, modifica ed eliminazione.

Il programma integra la creazione/aggiornamento di schede CRM (nominativi) per i veicoli e la sincronizzazione con il sistema esterno KPN.

Opera in due modalita':

  • Standalone (da menu): gestione completa (aggiungi/modifica/elimina) con F3 aggiorna.
  • Called (asn040-called = k-program-id e asn040-caller valorizzato): funge da lookup — INVIO su una riga restituisce targa e descrizione al chiamante (asn040-out-cod/asn040-out-des), con F3 in coppia selezione/modifica.

Interfaccia chiamato (linkage)

util-asn040 (copybook utilasn040.cpy):

Campo Tipo Uso
asn040-caller x(08) Identificativo del chiamante
asn040-called x(08) Identificativo del chiamato (confrontato con k-program-id)
asn040-in-cod x(10) Codice di input (non usato in questa versione)
asn040-out-cod x(10) Targa selezionata restituita al chiamante (output)
asn040-out-des x(60) Descrizione veicolo selezionato (output)

File acceduti

Lettura/scrittura (file principale)

File Copybook (rec) Uso
ASNVEICL avei-rec Anagrafica veicoli. Chiave avei-targa. Campi: avei-des, avei-data-lettura, avei-km-letti, avei-km-rilevati, avei-cod-crm, avei-mag, avei-tipo-veicolo, avei-peso-max-kg, avei-cod-nom (scheda CRM), avei-mag-tip, avei-mag-sec

Lettura (decodifiche/validazioni)

File Copybook (rec) Uso
COGMAGAZ magz-rec Magazzini (tipo "M"): magz-nome
COGMAGPE mgp-rec Magazzini periferici/esterni (tipo "E"): mgp-nome
COGRIFER rif-rec Riferimenti/tecnici (tipo "C"): rif-nome
PRNTOPER ptop-rec Profilo operatore: validazione codice CRM (ptop-cod)

Lettura/scrittura (integrazione tecnici)

File Copybook (rec) Uso
COGANAT2 atn2-rec Estensione anagrafica tecnico (rif tipo "C"): campi atn2-veicolo, atn2-mag-tip, atn2-mag-cod. Letto per precaricare il tecnico collegato al veicolo e aggiornato in fase di salvataggio quando tecnici-mag-fisso = "S"

Copybook incluse (principali)

  • Configurazioni: utilncnf.cpy
  • Working-storage generali: wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • Griglia e amministrazione: wgrid.cpy, utilgdad.cpy
  • Utility/lookup (linkage sottoprogrammi): utilu10.cpy, utilu20.cpy, utils52.cpy, utilt20.cpy, utilw36.cpy, utilw115.cpy, utilcrm030.cpy, utilcrms07.cpy, utilcrms06.cpy, utilg67.cpy, utilagprg.cpy, utilg32.cpy (linkage)
  • Send lookup magazzino: sendw36.cpy, sendw115.cpy
  • Fine procedure: grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, asn040.prc

Programmi chiamati

Programma Contesto Scopo
COGT20 F8 su colonna codice CRM Lookup operatore CRM; ritorna t20-out-cod
COGG67 F8 su colonna riferimento (tecnico), se tecnici-mag-fisso = "S" Lookup fornitore/tecnico (g67-in-param = "T"); ritorna g67-cod
CRM030 F5 su riga con scheda CRM (tm-cod-nom valorizzato) Apertura scheda CRM del veicolo (CRM030-CALLED, nominativo in crm030-nom)
CRMS07 Inserimento/modifica veicolo con tipologia-crm-veicolo configurata e senza scheda Crea la scheda CRM (nominativo) del veicolo; ritorna crms07-nom
CRMS06 Dopo creazione scheda o F7 (operatore 888) Scrive l'informazione targa sulla scheda CRM (crms06-inf/crms06-dato)
SWN021 x-sincronizza-kpn (dopo ogni scrittura/modifica/cancellazione) Esporta la chiave veicolo verso KPN (AGPRG-CALLED, ESPORTA-KEY)
GRIDADMN Prepara / S-F4 / Modify-Record Preparazione e amministrazione griglia
COGW36 / COGW115 Lookup magazzino (via sendw36/sendw115) Ricerca magazzino interno (W36) o esterno (W115)
RNEWCONF x99-confi (init e F1) Lettura configurazioni veicoli/CRM

Configurazioni RNEWCONF (x99-confi)

Idx Gruppo Parametro Variabile Effetto
01 assist tecnici-uso-mag-secondari tm-cfg-tecnici-uso-mag-secondari Se "S" la gestione magazzino usa il magazzino secondario/esterno (mag-sec, lookup COGW115) al posto del magazzino interno (COGW36)
02 assist tecnici-mag-fisso tm-cfg-tecnici-mag-fisso Se "S" abilita l'associazione veicolo-tecnico: precarica il tecnico da COGANAT2 e in salvataggio aggiorna atn2-veicolo/atn2-mag-tip/atn2-mag-cod
03 assist tipologia-crm-veicolo tm-cfg-tipologia-crm-veicolo Tipologia CRM da usare per creare la scheda nominativo del veicolo (CRMS07) quando manca
04 OFF-AUTO INFO-CRM-TARGA tm-cfg-info-crm-targa (numerico) Codice informazione CRM in cui scrivere la targa (CRMS06); abilita anche il tasto F7 (per operatore 888)

Logica di elaborazione

Avvio (apri)

Init programma, ctr-abil, apertura file, rilevamento modalita' called, x99-confi, abilitazione tasti funzione (F1, F5 scheda, F7 scheda auto, F8 aiuto/calendario, S-F4, CTRL-A, CTRL-E, F9; F3 selezione/modifica in called oppure F3 aggiorna in standalone), preparazione griglia.

Caricamento griglia (a4 / a10-loop / a30)

  1. Scorre ASNVEICL (a10-loop): per ogni veicolo carica in griglia targa (e targa precedente per il confronto di aggiornamento), descrizione, dati di lettura, codice CRM, magazzino (con descrizione da COGMAGAZ), tipo veicolo, codice nominativo CRM, peso max, tipo magazzino (mag-tip, default "I") e magazzino secondario (con descrizione da COGMAGPE).
  2. Se tecnici-mag-fisso = "S" (a30-tec): scorre COGANAT2 per i tecnici e, per ciascun veicolo collegato (atn2-veicolo), riporta in griglia il codice tecnico e il nome (da COGRIFER).
  3. Costruisce la griglia.

Gestione griglia (a-grid / a-accept-grid)

  • INVIO (in called, modalita' selezione): restituisce targa e descrizione al chiamante e termina.
  • F5: apre la scheda CRM del veicolo (CRM030) se il nominativo e' valorizzato.
  • F7 (operatore 888, info-crm-targa configurato): dopo conferma, scorre tutti i veicoli con scheda CRM e sincronizza l'informazione targa (CRMS06).
  • S-F4: amministrazione griglia.
  • F1: rilancia configurazioni in modifica.
  • F3: verifica abilitazioni (inserimento w-abi-ins, aggiornamento w-abi-agg); in standalone valida e salva (a1-aggiorna); in called commuta selezione/aggiornamento salvando all'uscita dall'aggiornamento.
  • CTRL-A (modalita' aggiornamento): aggiunge una riga; imposta il tipo magazzino iniziale ("E" se tecnici-uso-mag-secondari = "S", altrimenti "I").
  • CTRL-E (modalita' aggiornamento): verifica abilitazione cancellazione (w-abi-del), conferma e azzera la riga mantenendo targa precedente e tecnico precedente per la successiva cancellazione fisica.

Salvataggio (b-aggiorna)

Confronta targa corrente e targa precedente riga per riga per decidere l'operazione:

  • targa vuota + targa-prec valorizzata -> b3-cancella (del-asnveicl);
  • targa = targa-prec e riga modificata -> b2-modifica (rwr-asnveicl);
  • targa-prec vuota -> b1-inserisci (nuovo veicolo);
  • targa != targa-prec -> b3-cancella + b1-inserisci.

In inserimento (b1-inserisci) se la targa esiste gia' chiede conferma di sovrascrittura. Sia inserimento sia modifica gestiscono, se configurato:

  • creazione scheda CRM del veicolo (CRMS07) e scrittura informazione targa (CRMS06);
  • aggiornamento del legame veicolo-tecnico su COGANAT2 (con cancellazione del riferimento sul tecnico precedente, evitando di cancellare riferimenti gia' riassegnati in righe precedenti);
  • sincronizzazione KPN (x-sincronizza-kpn -> SWN021).

Gestione errori e validazioni

  • Targa duplicata (x-controlla-tm-targa): due righe non possono avere la stessa targa (m-asn040-9-1).
  • Descrizione obbligatoria (x-controlla-tm-des): se la targa e' valorizzata la descrizione e' obbligatoria (m-des-obb).
  • Magazzino (x-controlla-tm-mag): deve esistere su COGMAGAZ tipo "M" (m-asn040-10-1); imposta mag-tip = "I".
  • Magazzino secondario (x-controlla-tm-mag-sec): deve esistere su COGMAGPE tipo "E" (m-asn040-10-1); imposta mag-tip = "E".
  • Riferimento/tecnico (x-controlla-tm-rif-cod): deve esistere su COGRIFER tipo "C" (m-asn040-12).
  • Codice CRM (x-controlla-tm-cod-crm): deve esistere su PRNTOPER (m-asn040-11-1).
  • Abilitazioni: F3 verifica w-abi-ins/w-abi-agg (m-asn040-3-1/m-asn040-4-1); CTRL-E verifica w-abi-del; modifica riga esistente in griglia verifica w-abi-agg (m-no-abi-modifica).
  • Cancellazione (c1-ctrl-canc): non consentita a griglia vuota (m-asn040-6-1).

Note implementative

  • L'editabilita' delle colonne magazzino e' pilotata da tecnici-uso-mag-secondari: con "S" e' editabile solo il magazzino secondario (esterno), altrimenti solo il magazzino interno; le celle in alternativa sono rese non accettabili (z-tm-tab-mag-be-ep / z-tm-tab-mag-sec-be-ep).
  • La colonna riferimento tecnico e' editabile solo con tecnici-mag-fisso = "S" (z-tm-tab-rif-cod-be-ep).
  • Il tasto F7 (sincronizzazione informazione targa su CRM) e' riservato all'operatore 888 e attivo solo se info-crm-targa e' configurato.
  • Ogni operazione di scrittura, modifica o cancellazione veicolo innesca la sincronizzazione con KPN via SWN021 (ESPORTA-KEY), garantendo l'allineamento del sistema esterno.