Fonctions d’exécution d’entreprise X++

Cet article décrit les fonctions d’exécution métier.

Ces fonctions entrent des données financières et calculent des formules.

cTerm

Calcule le nombre de périodes requises pour la valeur d’investissement actuelle pour générer une valeur cible.

Syntax

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

Parameters

Parameter Description
interest Représente le taux d’intérêt.
future_value Valeur cible.
current_value Valeur actuelle de l’investissement.

Return value

Nombre de périodes requises pour atteindre future_value.

Remarks

Les paramètres current_value et future_value doivent utiliser le même signe (plus ou moins).

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

Calcule l’amortissement accéléré d’un actif.

Syntax

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

Parameters

Parameter Description
price Prix d’achat de l’actif.
scrap Valeur résiduelle de la ressource que vous écrivez.
life Durée de vie attendue de la ressource.
period Période de calcul de l’amortissement.

Return value

Amortissement de l’actif.

Remarks

La valeur comptable d’une période spécifique est égale au prix d’achat moins l’amortissement cumulé pour les périodes précédentes :

  • Valeur de livre pour la période 1 = Prix
  • Valeur de livre pour la période 2 = Valeur de livre pour la période 1 – Amortissement pour la période 1
  • Valeur de livre pour la période n = valeur de livre pour la période (n–1) – Amortissement pour la période (n–1)

Il existe trois variations pour le calcul de l’amortissement : Si durée > de vie :

  • Amortissement = 0

Si (valeur de livre pour la période n) – ((Valeur du livre pour la période n) × 2 ÷ Vie) < Valeur résiduelle :

  • Amortissement = (Valeur du livre pour la période n) – Valeur résiduelle

Dans tous les autres cas : Amortissement = (Valeur du livre pour la période n) × 2 ÷ Life Les fonctions syd et sln calculent également l’amortissement d’un actif. Les fonctions syd et ddb permettent une dépréciation plus élevée pendant les années précédentes, tandis que sln calcule une amortissement linéaire.

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

dg

Calcule le ratio de contribution, qui est basé sur le prix de vente et le prix d’achat. Si la valeur du paramètre de vente est 0,0, le calcul ne peut pas être effectué.

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale Le prix de vente.
purchase Prix d’achat.

Return value

Rapport de contribution.

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

Calcule la valeur future d’un investissement.

Syntax

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

Parameters

Parameter Description
amount Montant que vous avez payé pendant chaque période.
interest Représente le taux d’intérêt.
life Nombre de périodes d’investissement.

Return value

Valeur future de l’investissement.

Remarks

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

idg

Calcule le prix de vente, en fonction du prix d’achat et du ratio de contribution.

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase Prix d’achat.
contribution_ratio Rapport de contribution.

Return value

Le prix de vente.

Remarks

Si le ratio de contribution est égal à 1,0, le calcul ne peut pas être effectué. La fonction idg est l’inverse de la fonction dg .

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

intvMax

Récupère le nombre d’intervalles pour la période spécifiée lorsque la période est divisée en parties, comme spécifié par le paramètre func .

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

Parameters

Parameter Description
input_date Fin de la période, qui doit être ultérieure au paramètre ref_date .
ref_date Début de la période.
func Valeur d’énumération système IntvScale qui indique l’unité de division.

Remarks

Voici les valeurs possibles pour le paramètre 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

Retourne le nom de l’intervalle qui correspond au nombre spécifié d’intervalles avant la date spécifiée.

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

Parameters

Parameter Description
input_date Date dans le premier intervalle.
col Nombre d’intervalles avant la date spécifiée par le paramètre input_date .
func Valeur d’énumération intvScale .

Return value

Nom de l’intervalle.

Remarks

Par exemple, si le paramètre func est la valeur d’énumération IntvScale ::WeekDay , cette méthode retourne le nom de la semaine. Si le paramètre func est la valeur d’énumération IntvScale ::Week , cette méthode retourne une chaîne qui contient le nombre de la semaine.

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

Calcule le nombre d’intervalles entre deux dates lorsque vous divisez l’heure en intervalles spécifiés.

Syntax

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

Parameters

Parameter Description
input_date Date qui indique la fin de la période
ref_date Date qui indique le début de la période.
func Valeur d’énumération intvScale .

Return value

Nombre d’intervalles entre les dates spécifiées par les paramètres ref_date et 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

Retourne la date normalisée pour la période.

Syntax

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

Parameters

Parameter Description
input_date Fin de la période, qui doit être postérieure à la date que vous spécifiez dans le paramètre ref_date .
ref_date Début de la période.
func Valeur d’énumération intvScale qui indique l’unité de division d’intervalle.

Return value

Date normalisée de la période.

Remarks

La date retournée est égale à la date du premier jour dans l’intervalle où la date que vous spécifiez dans le paramètre ref_date existe.

Example

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

pmt

Calcule le montant que vous devez payer chaque période pour rembourser un prêt.

Syntax

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

Parameters

Parameter Description
principal Montant que vous avez emprunté à l’origine.
interest Le taux d’intérêt a appliqué chaque période au montant que vous avez emprunté.
life Nombre de périodes sur lesquelles vous remboursez le prêt.

Return value

Montant que vous devez payer toutes les périodes.

Remarks

Exprimez les paramètres de vie et d’intérêt dans les mêmes unités de temps. La valeur du paramètre de vie doit être supérieure à 0,0.

Example

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

pt

Récupère la somme d’un nombre plus un pourcentage spécifié de ce nombre.

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount Numéro d’origine.
percentage Supplément de pourcentage.

Return value

Nombre égal à ((montant ×percentage) + montant).

Remarks

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

pv

Calcule la valeur actuelle d’une rente, où vous recevez un montant sur plusieurs périodes et le taux d’intérêt est déduit pour chaque période.

Syntax

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

Parameters

Parameter Description
amount Montant que vous payez pendant chaque période.
interest Représente le taux d’intérêt.
life Nombre de fois où la valeur spécifiée par le paramètre de montant est payée.

Return value

Valeur actuelle d’une rente.

Remarks

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

rate

Calcule l’intérêt requis pour la valeur actuelle d’investissement afin d’atteindre la valeur future sur le nombre spécifié de périodes.

Syntax

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

Parameters

Parameter Description
_future_value Valeur future de l’investissement.
_current_value Valeur actuelle de l’investissement.
_terms Nombre de périodes que l’investissement s’étend.

Return value

Taux d’intérêt calculé.

Remarks

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

sln

Récupère le montant constant de l’amortissement pour l’actif spécifié pour chaque période d’amortissement.

Syntax

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

Parameters

Parameter Description
price Prix d’achat de l’actif.
scrap Valeur de récupération de la ressource.
life Nombre de périodes dans la durée de vie attendue de l’actif.

Return value

Montant de l’amortissement.

Example

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

syd

Calcule l’amortissement d’un actif sur une période spécifiée.

Syntax

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

Parameters

Parameter Description
_price Prix d’achat de l’actif.
_scrap Valeur de récupération de la ressource.
_life Durée de vie attendue de l’actif (nombre de périodes).
_period Période pour laquelle calculer l’amortissement.

Return value

Montant de l’amortissement sur la période spécifiée.

Remarks

Contrairement à la fonction sln , la fonction syd peut utiliser l’amortissement accéléré pour l’actif. Comme avec la fonction ddb , cette approche entraîne une dépréciation plus élevée pendant les premières périodes de la durée de vie d’un actif.

Example

Dans les exemples suivants, l’amortissement périodique est calculé pour un actif dont le prix d’achat est de 10 000, une valeur de 2 000 et une durée de vie de 5. En comparaison, sln(1000,2000,5) calcule 1 600,00 pour chaque période.

// 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

Calcule le nombre de périodes pendant laquelle un investissement doit s’exécuter.

Syntax

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

Parameters

Parameter Description
amount Montant de l’investissement périodique.
interest Taux d’intérêt pour chaque période.
future_value Valeur future prévue pour l’investissement

Return value

Nombre de périodes pendant laquelle l’investissement doit s’exécuter.

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;
}