Funzioni runtime business X++

Questo articolo descrive le funzioni di runtime aziendale.

Queste funzioni immettono dati finanziari e calcolano formule.

cTerm

Calcola il numero di periodi necessari per il valore di investimento corrente per produrre un valore di destinazione.

Syntax

real cTerm(real interest, real future_value, real current_value)

Parameters

Parameter Description
interest Tasso di interesse.
future_value Valore di destinazione.
current_value Valore di investimento corrente.

Return value

Numero di periodi necessari per raggiungere future_value.

Remarks

I parametri current_value e future_value devono usare lo stesso segno (più o meno).

Example

static void cTermExample(Args _arg)
{
    real r;
    ;
    r = cTerm(10.0, 500.00, 100.00);
    print "The cTerm is " + num2Str(r, 2, 2, 1, 1);
    pause;
}

ddb

Calcola l'ammortamento accelerato di un cespite.

Syntax

real ddb(real price, real scrap, real life, int period)

Parameters

Parameter Description
price Prezzo di acquisto dell'asset.
scrap Valore residuo dell'asset che si scrive.
life Durata prevista dell'asset.
period Periodo in cui calcolare l'ammortamento.

Return value

Ammortamento del bene.

Remarks

Il valore del libro per un periodo specifico equivale al prezzo di acquisto meno l'ammortamento accumulato per i periodi precedenti:

  • Valore libro per Periodo 1 = Prezzo
  • Valore del libro per Periodo 2 = Valore book per periodo 1 - Ammortamento per periodo 1
  • Valore libro per Periodo n = Valore book per periodo (n-1) - Ammortamento per periodo (n-1)

Esistono tre variazioni per il calcolo dell'ammortamento: Se periodo > di vita:

  • Ammortamento = 0

Se (valore libro per Periodo n) – ((Valore libro per Periodo n) × 2 ÷ Valore < residuo:

  • Ammortamento = (valore libro per periodo n) - Valore residuo

In tutti gli altri casi: Ammortamento = (valore libro per periodo n) × 2 ÷ Le funzioni syd e sln calcolano anche l'ammortamento di un bene. Le funzioni syd e ddb consentono un ammortamento più elevato per gli anni precedenti, mentre sln calcola un ammortamento lineare.

ddb(12000,2000,10,1); //Returns the value 2400.
ddb(12000,2000,10,3); //Returns the value 1536.

dg

Calcola il rapporto di contributo, basato sul prezzo di vendita e sul prezzo di acquisto. Se il valore del parametro di vendita è 0,0, il calcolo non può essere eseguito.

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale Prezzo di vendita.
purchase Prezzo di acquisto.

Return value

Rapporto contributi.

Remarks

dg(1000,300); //Returns the value 0.7.
dg(100,30); //Returns the value 0.7.
dg(20000, 11000); //Returns the value 0.45.

fV

Calcola il valore futuro di un investimento.

Syntax

real fV(real amount, real interest, real life)

Parameters

Parameter Description
amount Importo pagato in durante ogni periodo.
interest Tasso di interesse.
life Numero di periodi di investimento.

Return value

Valore futuro dell'investimento.

Remarks

fV(100,0.14,10); //Returns the value 1933.73.
fV(400,0.10,5); //Returns the value 2442.04.

idg

Calcola il prezzo di vendita, in base al prezzo di acquisto e al rapporto di contributo.

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase Prezzo di acquisto.
contribution_ratio Rapporto contributi.

Return value

Prezzo di vendita.

Remarks

Se il rapporto contributi è uguale a 1,0, il calcolo non può essere eseguito. La funzione idg è l'inverso della funzione dg .

idg(300,0.7); //Returns the value 1000.
idg(11000,0.45); //Returns the value 20000.

intvMax

Recupera il numero di intervalli per il periodo specificato quando il punto viene diviso in parti come specificato dal parametro func .

int intvMax(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date Fine del periodo, che deve essere successivo al parametro ref_date .
ref_date Inizio del periodo.
func Valore di enumerazione di sistema IntvScale che indica l'unità di divisione.

Remarks

Ecco i valori possibili per il parametro func :

  • None
  • YearMonthDay
  • YearMonth
  • Year
  • MonthDay
  • Month
  • Day
  • YearQuarter
  • Quarter
  • YearWeek
  • Week
  • WeekDay

Example

static void intvMaxExample()
{
    date refDate = str2Date("4/9/2007", 213);
    date inputDate = str2Date("10/5/2007", 213);
    int numberOfIntervals;
    ;
    numberOfIntervals = intvMax(inputDate, refDate, intvScale::YearMonth);
    print numberOfIntervals;
    pause;
}

intvName

Restituisce il nome dell'intervallo che corrisponde al numero specificato di intervalli prima della data specificata.

str intvName(date input_date, int col, enum func)

Parameters

Parameter Description
input_date Data nel primo intervallo.
col Numero di intervalli prima della data specificata dal parametro input_date .
func Valore di enumerazione intvScale .

Return value

Nome dell'intervallo.

Remarks

Ad esempio, se il parametro func è il valore di enumerazione IntvScale::WeekDay , questo metodo restituisce il nome del giorno feriale. Se il parametro func è il valore di enumerazione IntvScale::Week , questo metodo restituisce una stringa contenente il numero della settimana.

Example

static void intvNameExample(Args _args)
{
    date refDate = 2672010;
    str name;
    ;
    name = intvName(refDate, 3,  intvScale::WeekDay);
    Global::info(strfmt("%1 is the output, which indicates the day of the week 3 days after 26\7\2010.", name));
}
/**** Infolog display.
Message (09:56:55 am)
Thu is the output, which indicates the day of the week 3 days after 2672010.
****/

intvNo

Calcola il numero di intervalli tra due date quando si divide l'ora negli intervalli specificati.

Syntax

int intvNo(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date Data che indica la fine del periodo
ref_date Data che indica l'inizio del periodo.
func Valore di enumerazione intvScale .

Return value

Numero di intervalli tra le date specificate dai parametri ref_date e input_date .

Example

static void intvNoExample(Args _args)
{
    date inputDate = str2Date("1/1/2007", 213);
    date refDate = str2Date("3/1/2007", 213);
    int noOfIntervals;
    ;
    noOfIntervals = intvNo(refDate, inputDate, intvScale::Month);
    print noOfIntervals;
    pause;
    //noOfIntervals now holds the difference in months between March and January (2).
}

intvNorm

Restituisce la data normalizzata per il periodo.

Syntax

date intvNorm(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date Fine del periodo, che deve essere successivo alla data specificata nel parametro ref_date .
ref_date Inizio del periodo.
func Valore di enumerazione intvScale che indica l'unità di divisione intervallo.

Return value

Data normalizzata per il periodo.

Remarks

La data restituita è uguale alla data del primo giorno nell'intervallo in cui esiste la data specificata nel parametro ref_date .

Example

static void example()
{
    print intvNorm(today(), today()-1, IntVScale::WeekDay);
    pause;
}

pmt

Calcola l'importo che è necessario pagare ogni periodo per ripagare un prestito.

Syntax

real pmt(real principal, real interest, real life)

Parameters

Parameter Description
principal Importo originariamente preso in prestito.
interest Il tasso di interesse applicato ogni periodo all'importo che hai preso in prestito.
life Numero di periodi in cui si ripaga il prestito.

Return value

Importo che devi pagare ogni periodo.

Remarks

Esprimere i parametri di durata e interesse nelle stesse unità temporali. Il valore del parametro di vita deve essere maggiore di 0,0.

Example

pmt(4000,0.14,4); //Returns the value 1372.82.
pmt(10000,0.10,20); //Returns the value 1174.60.

pt

Recupera la somma di un numero più una percentuale specificata di tale numero.

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount Numero originale.
percentage Supplemento percentuale.

Return value

Numero uguale a ((importo ×percentage) + importo).

Remarks

pt(2000.0,0.10); //Returns the value 2200.0.
pt(20.0,0.10); //Returns the value 22.0.

pv

Calcola il valore attuale di un'annualità, in cui si riceve un importo in più periodi e il tasso di interesse viene dedotto per ogni periodo.

Syntax

real pv(real amount, real interest, real life)

Parameters

Parameter Description
amount Importo pagato durante ogni periodo.
interest Tasso di interesse.
life Numero di volte in cui viene pagato il valore specificato dal parametro amount .

Return value

Valore corrente di un'annualità.

Remarks

pv(300,0.14,4); //Returns the value 874.11.

rate

Calcola l'interesse necessario per il valore di investimento corrente per ottenere il valore futuro rispetto al numero specificato di periodi.

Syntax

real rate(real _future_value, real _current_value, real _terms)

Parameters

Parameter Description
_future_value Valore futuro dell'investimento.
_current_value Valore corrente dell'investimento.
_terms Numero di periodi che l'investimento si estende.

Return value

Tasso di interesse calcolato.

Remarks

rate(10000,1000,20); //Returns the value 0.12.

sln

Recupera l'importo dell'ammortamento costante per il cespite specificato per ogni periodo di ammortamento.

Syntax

real sln(real price, real scrap, real life)

Parameters

Parameter Description
price Prezzo di acquisto dell'asset.
scrap Valore dello scarto dell'asset.
life Numero di periodi nella durata prevista dell'asset.

Return value

Importo ammortamento.

Example

static void slnExample(Args _arg)
{
    real r;
    ;
    r = sln(100.00, 50.00, 50.00);
    print r;
    pause;
}

syd

Calcola l'ammortamento di un cespite in un periodo specificato.

Syntax

real syd(real _price, real _scrap, real _life, int _period)

Parameters

Parameter Description
_price Prezzo di acquisto dell'asset.
_scrap Valore dello scarto dell'asset.
_life Durata prevista dell'asset (numero di periodi).
_period Periodo per il quale calcolare l'ammortamento.

Return value

Importo dell'ammortamento nel periodo specificato.

Remarks

A differenza della funzione sln , la funzione syd può usare l'ammortamento accelerato per l'asset. Come per la funzione ddb , questo approccio comporta un ammortamento più elevato durante i primi periodi della vita di un bene.

Example

Negli esempi seguenti, l'ammortamento periodico viene calcolato per un cespite con prezzo di acquisto pari a 10.000, un valore di scarto pari a 2.000 e una durata pari a 5. In confronto, sln(10000,2000,5) calcola 1.600.00 per ogni periodo.

// Returns the value 2666.67 (for the 1st period).
syd(10000,2000,5,1);
// Returns the value 2133.33 (for the 2nd period).
syd(10000,2000,5,2);
// Returns the value 1600.00 (for the 3rd period).
syd(10000,2000,5,3);
// Returns the value 1066.67 (for the 4th period).
syd(10000,2000,5,4);
// Returns the value 533.33 (for 5th - and final- period).
syd(10000,2000,5,5);

term

Calcola il numero di periodi per cui deve essere eseguito un investimento.

Syntax

real term(real amount, real interest, real future_value)

Parameters

Parameter Description
amount Importo dell'investimento periodico.
interest Tasso di interesse per ogni periodo.
future_value Il valore futuro previsto per l'investimento

Return value

Numero di periodi per cui l'investimento deve essere eseguito.

Example

static void termExample(Args _args)
{
    print term(400,0.08,5000);  //returns the value '9.01'.
    print term(100,0.14,3000);  //returns the value '12.58'.
    pause;
}