|
||
Funzioni
Le funzioni si possono utilizzare in normali query. Normalmente richiedono uno o più parametri di input e restituiscono un risultato.
Giacenza di magazzino
FN_GIACENZA_ARTICOLO (ARTICOLI.ID_ARTICOLI) GIACENZA
Restituisce la giacenza di magazzino all'ultimo movimento
FN_GIACENZA_ART_MAG( Campo id articolo , Campo id magazzino , campo data )
Restituisce la giacenza di magazzino su un magazzino ad una data
NULL nel campo data determina il calcolo all'ultimo movimento
Ultimo prezzo d'acquisto
FN_ACQ_ULTIMO (ID_ARTICOLO, ID_MAGAZZINO , DAL , AL)
Restituisce l'ultimo prezzo di acquisto considerando i movimenti di magazzino da una data ad una data
Il formato delle date deve essere es. '01/GEN/2008'
Residuo ordini clienti
FN_RESIDUO_ORDINI_ART( ARTICOLI.ID_ARTICOLI , 'C','Q')
Restituisce la quantità residua ordini clienti
FN_RESIDUO_ORDINI_ART( ARTICOLI.ID_ARTICOLI , 'C','V')
Restituisce la quantità residua ordini fornitori
FN_RESIDUO_ORDINI_ART( ARTICOLI.ID_ARTICOLI , 'C','Q','01/GEN/2002')
Restituisce la quantità residua ordini clienti dalla data indicata
FN_RESIDUO_ORDINI_ART( ARTICOLI.ID_ARTICOLI , 'C','Q','01/GEN/2002','01/FEB/2002')
Restituisce la quantità residua ordini clienti per il periodo indicato
'F' invece di 'C' restituisce gli stessi valori per gli ordini fornitori
Quantità evadibile
FN_QTA_EVADIBILE( ID_ARTICOLO , ID_ORDDCLI_RIEP , FLAG , ID_MAGAZZINO )
FLAG: 0 esprime il valore assoluto 1 esprime il valore %
ID_MAGAZZINO se NULL considera tutti i magazzini
Campi aggiuntivi articoli
FN_CAMPI_AGG_BY_COD( ARTICOLI.ID_ARTICOLI, 'CODICE_INTERNO1' )
restituisce il valore del campo aggiuntivo con codice interno specificato
FN_CAMPI_AGG_BY_COD restituisce il contenuto della stringa
FN_CAMPI_AGG_BY_CODT restituisce il contenuto della data
FN_CAMPI_AGG_BY_CODI restituisce il contenuto del numero
Accetta come parametro l' id dell' articolo
il codice interno del campo aggiuntivo e, in caso di campo aggiuntivo tipo lista
un parametro che indica se farsi restituire il codice , la descrizione o entrambi
'C' restituisce il codice, 'D' la descrizione, NULL restituisce CODICE-DESCRIZIONE
Campi aggiuntivi documenti
FN_CAMPI_AGG_DOC( ID_ORDTCLI , 'CA_PROVA' ,'OT' ,'NESSUNO' )
se non è gestito il campo o se il valore è NULL restituisce 'NESSUNO'
Campi aggiuntivi clienti e fornitori
FN_CAMPI_AGG_CF( CLIFOR.ID_CLIFOR, 'NOME CAMPO AGGIUNTIVO1' )
restituisce il valore del campo aggiuntivo di cui è specificato il nome
Relazione articoli clienti e fornitori
FN_CODART_CLIFOR ( ID_ARTICOLO , ID_CLIFOR , TIPO , CAMPO )
TIPO -- 0 = CLIENTE , 1 = Fornitore
CAMPO -- C = CODICE , N = NOTE
Restituisce il codice articolo cliente/fornitore o le relative note per l'id articolo e l'id cliente o fornitore indicati
es: FN_CODART_CLIFOR( ORDDCLI_RIEP.ID_ART , ORDTCLI.ID_CLI ,0,'C' )
restituisce il codice articolo attribuito dal cliente relativamente alla riga di ordine attiva
Per eseguire divisioni in cui il divisore può essere 0
FN_DIV0(Campo dividendo,Campo divisore)
Per ridurre a numerico un campo alfabetico
FN_TO_NUM (nome campo)
Per ottenere il valore della settimana da un campo data
TO_CHAR ( :CAMPO_DATA , 'WW')
restituisce 01, 02....
Per ottenere il valore del mese da un campo data
FN_MESE ( TO_CHAR ( :CAMPO_DATA , 'MM') , 1 )
restituisce 01-gen, 02-feb.....
FN_MESE ( TO_CHAR ( :CAMPO_DATA, 'MM' ) , 0 )
restituisce Gennaio, Febbraio....
TO_CHAR ( :CAMPO_DATA , 'MM')
restituisce 01, 02......
Per ottenere il valore dell'anno da un campo data
TO_CHAR ( :DATA_SCAD , 'YYYY')
Per riempire a sinistra una stringa
UPDATE CLIFOR T SET
FN_RIEMPI( RTRIM( T.CODCLI_CONTA) ,5 , '0'
WHERE T.CODCLI_CONTA IS NOT NULL
AND T.TIPOCLI = 'S'
nell'esempio i codici cliente vengono portati a lunghezza fissa 5 riempiendo di 0 a sinistra
vecchio codice 1 nuovo codice 00001
Invece di '0' può essere indicato spazio oppure un carattere
Parametri globali
FN_PGN( 'DOCUMENTI CLI' ,'STAMPA FATTURE (1)' ,1 ,999 )
'DOCUMENTI CLI' è la SEZIONE
'STAMPA FATTURE (1)' è il TIPO
1 è il NUMERO DEL CAMPO
999 è il VALORE CHE MI RITORNA SE NON HA TROVATO IL PARAMETRO O SE IL SUO VALORE E' "NULL"
Calcolo del budget
FN_BUDGET_ART
(
in_TIPO_FILTER IN VARCHAR , -- ART-MAGDFS , ART , ART-CLI
in_TIPO_RANGE IN VARCHAR , -- DATA (YYYYMMDD) , MESE , NULL = TUTTO
in_ID_BUDGET_TIPI IN NUMBER ,
in_FILTER_1 IN VARCHAR ,
in_FILTER_2 IN VARCHAR ,
in_RANGE_1 IN VARCHAR DEFAULT NULL ,
in_RANGE_2 IN VARCHAR DEFAULT NULL
)
- Filtro budget :
Articolo
Articolo - Deposito
Articolo - Cliente ( standard )
- Range periodo :
intervallo di date ( al momento non ricalcola i dati in base al giorno del mese , ma si può fare semplicemente ... se servisse )
intervallo di mesi
tutto
Esempio 1
- Calcolo del Budget Articolo - Deposito , nel periodo indicato nelle statistiche , viene utilizzato un Tipo Budget convenzionale con descrizione contente (*)
Formula
FN_BUDGET_ART( 'ART-MAGDFS' ,
'DATA' ,
BT.ID_BUDGET_TIPI ,
:ID_ARTICOLO ,
SUBSTR( :SEZIONE1,1,3) ,
TO_CHAR( T.DATE1 ,'YYYYMMDD' ) ,
TO_CHAR( T.DATE2 ,'YYYYMMDD' )
)
Altre Tabelle
TTV_$PARAMS T,
BUDGET_TIPI BT
Filtri
WHERE BT.DESCRIZIONE LIKE '%(*)%'
******************************************
Esempio 2
- Calcolo del Budget Articolo - Deposito , nel mese gennaio , viene utilizzato un Tipo Budget convenzionale con descrizione contente (*)
Formula
FN_BUDGET_ART( 'ART-MAGDFS' ,
'MESE' ,
BT.ID_BUDGET_TIPI ,
:ID_ARTICOLO ,
SUBSTR( :SEZIONE1,1,3) ,
'1' ,
'1'
)
Altre Tabelle
TTV_$PARAMS T,
BUDGET_TIPI BT
Filtri
WHERE BT.DESCRIZIONE LIKE '%(*)%'
******************************************
Esempio 3
- Calcolo del Budget Articolo , nel mese gennaio , viene utilizzato un Tipo Budget convenzionale con descrizione contente (*)
Formula
FN_BUDGET_ART( 'ART' ,
'MESE' ,
BT.ID_BUDGET_TIPI ,
:ID_ARTICOLO ,
NULL ,
'1' ,
'1'
)
Altre Tabelle
TTV_$PARAMS T,
BUDGET_TIPI BT
Filtri
WHERE BT.DESCRIZIONE LIKE '%(*)%'
Calcolo di una data in base al calendario di TESEO
FN_DATA_LEAD_TIME( FN_TO_DATE( :DATA_PROD ,'DD/MM/YY' ) ,
FN_CAMPI_AGG_BY_CODI( :ID_ARTICOLO ,'PIPPO' ) ,
1 )
La funzione richiede 3 argomenti
1) data di partenza per il calcolo (nell'esempio viene utilizzato un campo della griglia quindi è necessaria la funzione FN_TO_DATE per renderlo
utilizzabile. Se si fosse utilizzato un campo del data base la funzione non sarebbe stata necessaria)
2) il numero da aggiungere o togliere (Nell'esempio si tratta del valore di un campo aggiuntivo, tuttavia può trattarsi di un valore numerico o di un campo del data base
3) i valori 1 o -1 indicano rispettivamente che il valore numerico va aggiunto o tolto dalla data di partenza
Funzione per ottenere gli sconti assegnati ad un cliente
FN_SCONTI_CLI_STD
(
pID_CLI IN NUMBER,
pID_ART IN NUMBER,
pDATA IN DATE,
pQTA IN NUMBER,
pID_VALUTA IN NUMBER,
pID_AGE IN NUMBER DEFAULT 0,
pID_UM IN NUMBER DEFAULT 0,
pID_CATEGO IN NUMBER DEFAULT 0,
pFLAG_SCONTO_FISSO IN NUMBER DEFAULT 0,
pID_ID_GRUPPO_MERC IN NUMBER DEFAULT NULL ,
pID_ID_CATEGORIA_MERC IN NUMBER DEFAULT NULL ,
pID_ID_CAT_CLIENTE IN NUMBER DEFAULT NULL
)
I parametri con l'istruzione DEFAULT sono facoltativi (se non vengono passati assumono il valore di Default zero oppure null)
Restituisce una stringa con i valori di sc1,sc2,ecc. separati da ;
Calcolo differenza tra una data di griglia e la data di sistema
:DATA_CONS_DET - TRUNC (SYSDATE)
TRUNC serve ad eliminare ore minuti e secondi dalla data di sistema