Anda di halaman 1dari 3

Efficacia BAC

Tutti i dati necessari per la presentazione delle info in homepage verranno calcolati
preventivamente e memorizzati su una tabella di appoggio (SFA_REPORT_STORE).
L’aggiornamento massivo verrà fatto ogni mattina, tramite update dei dati già presenti in tabella
e l’insert di quelli mancanti.
Per risolvere il problema dell’aggiornamento in tempo reale ( e mostrare quindi il tachimetro
di previsione ) si è pensato ad un trigger da far scattare in caso di update degli “impegni” che
aggiorni automaticamente le ore riguardanti l’accoppiata BAC,MERCATO ( probabilmente
dall’agenda il info arrivano per ACCOUNT, ma non è un problema ).

Per quanto riguarda le pagine di dettaglio, a parte il dettaglio del mese corrente, tutte gli altri
tipi di ricerca verranno eseguiti sulla tabella SFA_REPORT_STORE. Occorrerà bindare alcune
info aggiuntive per permettere le medie pesate in caso di presentazione dati a ACCOUNT
MANAGER e MERCATI.

I dettagli per il mese corrente (quindi la possibilita’ di selezionare con granularita’ alla giornata)
verrà calcolata “al volo” dal sistema (sempre a livello di DB)

Ricapitolando
Tachimetro Home Page
Account: Query Diretta su SFA_EFFICACIA_BAC
Account Manager: Media su una lista di valori di ritorno di SFA_EFFICACIA_BAC ( dipendente
dagli Account in gestione )
Mercato: Media su una lista di valori di ritorno di SFA_EFFICACIA_BAC ( dipendente dagli
Account del mercato )
TAB 1 ( dettagli efficacia BAC)
Dettaglio ad oggi: esattamente come il tachimetro della home page
Dettaglio mese attuale
Account: Calcolati al volo da “func” (aggregato max 30 entry)
Account Manager: media pesata in base ai bac che pesano di più sulla zona (ovvero
bac con il maggior numero di venditori)
Mercato: media pesata in base alle zone che pesano di piu sul mercato ( ovvero zone
con maggior numero di venditori?)

Dettaglio mesi precedenti ( tabella SFA_EFFICACIA_BAC )


Account: Query Diretta su SFA_EFFICACIA_BAC
Account Manager: Media su una lista di valori di ritorno da SFA_EFFICACIA_BAC
Mercato:: media su lista di valori di ritorno da SFA_EFFICACIA_BAC
TAB 2 ( diagramma a torta )
Viene calcolato tramite query diretta sulla tabella riepologativa delle visite effettuate
dall’account.
Anche in questo caso la query dovrà prendere in input una lista di Account (basterebbe
uno, ma non costa niente fare una lista... magari poi ci serve) una startDate ed una
endDate
TAB 3 ( dettaglia per account o dettaglia per mercato)
Viene calcolato mediante query diretta su SFA_EFFICACIA_BAC e viene visualizzato
sottoforma tabellare invece che di tachimetro (come nel TAB 1 ). L’analisi non specifica
che si possano effettuare visualizzazioni nei mesi precedenti (non credo sia significativo
ma meglio evidenziarlo).

Entità fondamentali da implementare


Oracle Table: SFA_CALENDARIO: sarebbe opportuno definire la tabella che contenga
le festività (sabati e domeniche c
OracleTable: SFA_REPORT_STORE - Tabella che si occupa del mantenimento delle
informazioni necessarie per la gestione dei report.
Cosi’ costituita:
BAC: insieme all’agenzia identificano un venditore
AGENZIA: insieme al bac identificano un venditore
G_LAVORATIVI_AD_OGGI: giorni lavorativi da inizio mese corrente
G_LAVORATIVI_TOT_MESE: giorni lavorativi di tutto il mese corrente
ORE_ASSENZA_AD_OGGI: tramite l’agenda si ricavano
ORE_IMPEGNI_TOT_AD_OGGI: tramite l’agenda si ricavano
ORE_IMPEGNI_ACQ_AD_OGGI: tramite l’agenda si ricavano
R_EFF_BAC_AD_OGGI: Efficacia BAC (risultato da mostrare)
R_EFF_BAC_STIMATA_MESE: Efficacia BAC Stimata per fine mese
R_ACQ_AD_OGGI: acquisizione (risultato da mostrare)
R_ACQ_STIMATA_MESE: acquisizione stimata per fine mese

OracleProcedure “updateProc”: Procedura lanciata ogni mattina. Si occupa di richiamare


la OracleFunction “reportBaseInfo” e di inserire i risultati cosi’ ottenuti in tabella di appoggio
SFA_REPORT_STORE

OracleFunction “reportBaseInfo”:
IN: bac,agenzia, startDate, endDate
OUT: oggetto tipo SFA_REPORT_STORE%ROWTYPE
Calcola gli aggregati delle seguenti informazioni a partire dall’accoppiata BAC ed
AGENZIA passata in input.
G_LAVORATIVI_AD_OGGI
G_LAVORATIVI_TOT_MESE
ORE_ASSENZA_AD_OGGI
ORE_IMPEGNI_TOT_AD_OGGI
ORE_IMPEGNI_ACQ_AD_OGGI
Una volta ottenuti tutti gli aggregati precedentemente listati, richiama
“calcolaEfficaciaBAC” passando i parametri

“calcolaAcquisizioni” passando i parametri

OracleFunction “calcolaEfficaciaBAC”
OracleFunction “calcolaAcquisizioni”
OracleTrigger “updateSfaReportStore”

Regole di calcolo del dato aggregato


● oreLavorative=8,5
● giorniLavorativi= all’interno dell’intervallo selezionato occorre calcolare i giorni lavorativi
( sarebbe opportuno creare una tabella calendario, dove andare ad inserire le festività
compresi sabati e domeniche)
● oreAssenza = all’interno dell’intervallo selezionato, occorre calcolare le ore di assenza
dell’account. (dove trovarle? sulle tabelle dell’agenda?)
● oreLavorate = (giorniLavorativi* 8,5) - oreAssenza
● oreGestioneOperativa= oreLavorate * 20 / 100
● oreDedicateAgliImpegni = calcolare dagli impegni tutte le ore nell’intervallo utilizzate per
impegni diversi da “gestione operativa” (occorre farsi dare i codici utilizzati per i vari tipo
di impegno)
● oreDiVisitaEffettuate = oreLavorate - oreGestioneOperativa - oreDedicateAgliImpegni
● obiettivoEffettivo =
oreDiVisitaEffettuate / 8,5*<SFA_VISITE_OBIETTIVI.N_VISITE_GIORNO>
● datoTachimetro = VisitaEffettuate - obiettivoEffettivo

NUOVA ANALISI