• Non ci sono risultati.

Il workflow dei CIG sarà composto dalle seguenti operazioni: • Inserimento di un nuovo CIG;

• Associazione di un Partecipante ad un CIG; • Associazione di un Aggiudicatario ad un CIG;

• Ricerca dei CIG per effettuare modifiche o per visualizzarne i dati; • Censire soggetti.

61

Figura 4.16, sottomenù della macroarea Gestione CIG

Tramite il tasto Gestione CIG, posto nel menù principale, l’utente aprirà un sottomenù in cui saranno presenti le diverse funzionalità messe a disposizione.

Vediamo quindi nel dettaglio le diverse funzionalità offerte da questa macroarea.

4.3.1 Inserisci, ricerca e modifica CIG

62

Figura 4.17, oggetti astratti delle sezioni Inserisci e Ricerca e modifica CIG

L’utente, cliccando su tasto Inserisci CIG, verrà riportato sulla pagina che permetterà di inserire un nuovo CIG specificandone tutti i campi; essa sarà composta da un solo input form denominato T_CIG. In questo caso l’unica personalizzazione introdotta sarà quella che aggiunge, dopo l’operazione di salvataggio, un rimando tramite “dispatcher” alla pagina riepilogativa dei dati appena inseriti. Da questa pagina l’utente potrà, tramite diversi bottoni appositamente configurati, aggiungere al CIG dei soggetti Partecipanti o Aggiudicatari e di associare il CIG ad un documento precedentemente caricato.

Cliccando invece sul tasto Ricerca e modifica CIG l’utente potrà effettuare una ricerca personalizzata dei vari CIG salvati nel DB, visualizzandone il risultato nel report associato; all’interno della pagina sarà anche presente un input form che permetterà di aggiornare un CIG selezionato: infatti, nel report saranno presenti, per ogni risultato della ricerca, due link ipertestuali che permetteranno di modificare o di vedere il riepilogo completo del CIG selezionato. La pagina di riepilogo sarà la stessa di quella ottenuta in fase di inserimento, quindi permetterà sempre di associare Partecipanti o Aggiudicatari ed un documento precedentemente caricato

al CIG selezionato.

Anche in questo caso l’input form prevede, grazie ad una customizzazione, di rimandare automaticamente al riepilogo dei dati del CIG non appena avviene il salvataggio delle modifiche.

63

Figura 4.18, report riepilogativo di un CIG inserito

Notiamo in alto il button che permette di navigare tra le diverse funzionalità messe a disposizione. La pagina riepilogativa conterrà diversi elementi:

• Un oggetto button che permetterà di navigare tra le diverse funzionalià; • Un report colonnato dei dati del CIG;

• Un report dei Partecipanti associati al CIG; • Un report degli Aggiudicatari associati al CIG; • Un report dell’eventuale documento associato al CIG.

Per mostrare correttamente i dati del CIG caricato è stato necessario scrivere un QUERY con diverse condizioni, in quanto ha senso mostrare la descrizione dei dati rappresentati da delle FK e non il loro codice

numerico progressivo.

Ecco quindi la QUERY completa che popola il report colonnato del CIG: SELECT AA_T_CIG_CIG, AA_T_CIG_OGGETTO, AA_T_CIG_IMPORTO, TO_CHAR(AA_T_CIG_DATA_VERBALE,'DD-MM-YYYY') AS AA_T_CIG_DATA_VERBALE, AA_T_CIG_IMPORTO_LIQ, TO_CHAR(AA_T_CIG_DATA_INIZIO,'DD-MM-YYYY') AS AA_T_CIG_DATA_INIZIO, TO_CHAR(AA_T_CIG_DATA_FINE,'DD-MM-YYYY') AS AA_T_CIG_DATA_FINE, AA_T_CIG_PROV, stapp.AA_T_CIG_STAZAPP_DESCR, rup.AA_T_CIG_STAZAPP_RUP_DESCR, tip.AA_T_CIG_TIPO_DESCR, contr.AA_T_CIG_SCELTA_CONTR_DESCR, CASE

WHEN AA_T_CIG_VALIDATO = 'S' THEN 'Validato' WHEN AA_T_CIG_VALIDATO = 'N' THEN 'Non validato' ELSE 'Non specificato'

64

TO_CHAR(AA_T_CIG_DATA_FINE_CONTROLLI,'DD-MM-YYYY') AS AA_T_CIG_DATA_FINE_CONTROLLI

FROM AA_T_CIG cig, AA_T_CIG_STAZAPP stapp, AA_T_CIG_STAZAPP_RUP rup, AA_T_CIG_TIPO tip, AA_T_CIG_SCELTA_CONTR contr

WHERE AA_T_CIG_CODICE =<cod>

AND cig.AA_T_CIG_STAZAPP_CODICE=stapp.AA_T_CIG_STAZAPP_CODICE

AND cig.AA_T_CIG_STAZAPP_RUP_CODICE=rup.AA_T_CIG_STAZAPP_RUP_CODICE AND cig.AA_T_CIG_TIPO_CODICE=tip.AA_T_CIG_TIPO_CODICE

AND cig.AA_T_CIG_SCELTA_CONTR_CODICE=contr.AA_T_CIG_SCELTA_CONTR_CODICE Tra le condizioni è presente la selezione del CIG tramite il parametro “<cod>”, il quale rappresenterà il codice del CIG inserito o selezionato, ed eventualmente aggiornato, in fase di ricerca.

Le pagine create per aggiungere Partecipanti o Aggiudicatari, raggiungibili attraverso gli appositi tasti, saranno molto simili tra loro: entrambe presenteranno un bottone di navigazione che rimanda alle funzionalità rimaste ed al riepilogo, un report dei soggetti già associati e un report dei soggetti potenzialmente associabili. Quest’ultimo report presenta, per ogni soggetto, un link ipertestuale che rimanda ad un’altra pagina contenente l’input form di associazione: questo è stato customizzato in modo da mostrare, nella sua intestazione, il CIG e l’utente selezionati, chiedendo quindi conferma all’utente prima di effettuare l’associazione, il quale potrà annullare l’operazione tornando indietro o confermare il salvataggio dei dati. A seguito del salvataggio l’input form rimanda alla relativa pagina di associazione in modo tale che l’utente possa aggiungere altri soggetti Partecipanti o Aggiudicatari al CIG selezionato.

La pagina creata per associare un documento ad un CIG presenta, al suo interno, diversi oggetti non sempre visibili:

• L’oggetto button, che permette la navigazione, sarà sempre visibile;

• Il report V_DOC_CIG_IF mostra l’eventuale documento associato al CIG, quindi sarà visibile soltanto in presenza di quest’ultimo;

• Il report V_DOC_TOT sarà visibile soltanto se il CIG non ha un documento associato, e mostrerà tutti gli atti presenti nel DB a cui non è stato associato un CIG;

• L’input form T_DOC_CIG è inizialmente invisibile.

Questa visualizzazione diversificata è ottenuta tramite una customizzazione dei report: richiamando, infatti, la Select precedentemente creata, denominata S_DOC_VIS, tramite una chiamata Ajax il BMF deciderà quale

report mostrare.

La QUERY utilizzata è la seguente: SELECT

CASE

WHEN AA_T_CIG_CODICE IN( SELECT

DOC.AA_T_CIG_CODICE

FROM AA_T_CIG CIG, AA_T_DOCUMENTO DOC

WHERE CIG.AA_T_CIG_CODICE = DOC.AA_T_CIG_CODICE) THEN 1 ELSE 0

END AS val, CASE

WHEN AA_T_CIG_CODICE IN( SELECT

DOC.AA_T_CIG_CODICE

FROM AA_T_CIG CIG, AA_T_DOCUMENTO DOC

WHERE CIG.AA_T_CIG_CODICE = DOC.AA_T_CIG_CODICE) THEN 1 ELSE 0

END AS descr FROM AA_T_CIG

65 WHERE AA_T_CIG_CODICE = <cod>

Per poter quindi risalire alla presenza o meno di un documento associato al CIG è stata utilizzata una QUERY annidata che trova tutti i CIG il cui codice è presente nella tabella T_CIG e T_DOCUMENTO, ovvero un insieme di CIG a cui è stato già associato un documento; se il CIG su cui stiamo lavorando appartiene a questo insieme allora otterremo come risultato, sia per “val” che per “descr”, 1, mentre se non è presente otterremo 0. Quindi nella customizzazione è stato aggiunto il seguente codice:

$.ajax({

type: "POST",

data: {name1:'AA_T_CIG_CODICE',value1:cod}, dataType: Global.dataType,

contentType: "application/x-www-form-urlencoded; charset=utf-8", url:Global.serverDomain+Global.cxt+"/ws/config/result.bmf?idObjec t=S_DOC_VIS", success: function(response) { ris = Number(response[0]["DESCR"]); if(ris==0){ $('#collapsible_data').hide(); } } });

La chiamata Ajax, di cui vediamo quella presente nella customizzazione del report che mostra il documento associato al CIG, richiama la Select S_DOC_VIS appena vista e, in base al risultato ottenuto, nasconde o meno

il report.

La customizzazione del secondo report sarà identica se non per la condizione utilizzata: verificherà infatti che il risultato della QUERY sia 1 e non 0. In questo modo si garantisce la visualizzazione di uno soltanto dei due report presenti.

Perciò quando l’utente entra in questa schermata potrà effettuare due operazioni: se il CIG ha già un documento associato potrà visualizzarlo e navigare tra le altre funzionalità grazie al button presente, oppure, se il CIG non ha un documento associato, potrà decidere di associarne uno tra quelli presenti. Il secondo report, infatti, presenta per ogni documento un collegamento ipertestuale che carica i dati nell’input form presente nella pagina: una volta cliccato sul link il report verrà nascosto mentre diverrà visibile l’input form. Questo è possibile grazie ad una customizzazione dell’input form in cui, a seguito del caricamento dei dati, il BMF riceverà l’istruzione di nascondere il report e di mostrare l’input form secondo il seguente codice:

afterLoadRecord: function() { $('#V_DOC_TOT_id').parent().parent().hide(); $('#inputform_id').children('h4').text(...); $('#inputform_id').children('h4').show(); $('#AA_T_STATO_CODICE,label[for ="AA_T_STATO_CODICE"]').show(); $('#btn_reset').show(); $('#btn_save').show(); }

In sequenza, a seguito del caricamento dei dati nell’input form tramite la funzione “afterLoadRecord”, avvengono le seguenti cose:

• Il report viene nascosto;

66 • Viene quindi mostrata l’intestazione dell’input form; • Viene mostrato il campo dell’input form;

• Vengono quindi mostrati i tasti per annullare e per salvare.

Nell’intestazione dell’input form saranno specificati il CIG ed il documento selezionati, e verrà chiesto all’utente di confermare o di annullare l’operazione; in entrambi i casi si verrà riportati alla pagina riepilogativa

del CIG selezionato.

Ecco un esempio di visualizzazione a seguito della selezione di un documento:

Figura 4.19, titolo personalizzato per associazione documenti a CIG

4.3.2 Gestisci soggetti

Cliccando sul tasto Gestisci soggetti l’utente verrà indirizzato in una pagina contenente un report di tutti i soggetti censiti ed un input form utile ad inserirne di nuovi; questi soggetti saranno associabili ai diversi CIG con il ruolo di Partecipanti o Aggiudicatari.

Ecco la mappa degli oggetti che compongono questa pagina:

Figura 4.20, oggetti astratti della sezione Gestisci soggetti

Documenti correlati