Computation
Handling mathematical models
Handling mathematical models
Set cross-computation for vat included/excluded price:
$Computation = $this->get('computation');
$Computation->newVar('vat')->setDefault(23);
$Computation->newVar('price')->setFormula('priceVat/(100+vat)*100');
$Computation->newVar('priceVat')->setFormula('price*(100+vat)/100');
$Computation->setValue('vat', 24, false); // Prevent calculations (values missing).
$Computation->setValue('price',100); // Triggers all calculations.
$computation->getValue('priceVat'); // --> 124
If you set Field object as variable value, all changes made to variable are mirrored to Field:
$Computation->setValue('priceTotal',$Order->total);
$Computation->setValue('amount',4);
// $Order->total --> 496
You can set title and description to computation and variables for printing documentation:
$Computation = $this->get('computation')
->setTitle('Count total')
->setDescription('Count total amount from amount and price');
$Total = $Computation->newVar('total')
->setFormula('amount*price')
->setDefault(0)
->setTitle('Total price')
->setDescription('Multiplies unit price with amount')
->setUnit('eur');
$Computation->renderDoc();
Counting vat, amount and rate for given price:
$Price = $this->get('computation','price')
->setValue('price',100)
->setValue('vat',24)
->setValue('amount',2)
->setValue('currencyRate', 0.988);
$Price->getValue('priceVat'); // --> 124
$Price->getValue('priceTotal'); // --> 200
$Price->getValue('basePriceTotalVat'); // --> 245,024
Variables | Default | Description |
---|---|---|
price | 0 | Price vat excluded |
vat | 24 | Vat percent |
priceVat | 0 | Price vat included |
vatAmount | 0 | Vat amount |
amount | 0 | Amount |
priceTotal | 0 | Total price vat excluded |
vatTotalAmount | 0 | Total vat amount. |
priceTotalVat | 0 | Total price vat included |
currency | EUR | Currency that price is given in. |
currencyBase | EUR | Base currency that is calculated with rate. |
currencyRate | 1 | Currency rate against base currency. |
basePrice | 0 | Price vat excluded in base currency. |
basePriceVat | 0 | Price vat included in base currency. |
baseVatAmount | 0 | Vat amount |
basePriceTotal | 0 | Total price vat excluded |
baseVatTotalAmount | 0 | Total vat amount. |
basePriceTotalVat | 0 | Total price vat included |
Method | Return | Description |
---|---|---|
setTitle($string) | this | Set title for computation. |
setDescription($string) | this | Set additional description for computation. |
newVar($name) | Variable | Create new variable to computation. |
getVar($name) | Variable | Get variable by given name. |
setValue($name,$value[,$refresh]) | this | Set value to given variable. Refresh: Calculate other values or not. Default: TRUE. |
setValues($array[,$refresh]) | this | Set values from key=>value -pairs. Refresh: Calculate other values or not. Default: TRUE. |
getValue($name) | mixed | Variable current value. |
getString($name) | mixed | Text presentation of current value (format, unit..) |
renderDoc() | string | Render HTML documentation of defined computation and current values. |
Method | Return | Description |
---|---|---|
setTitle($string) | this | Set Variable visible name. |
setName($string) | this | Set Variable technical name. |
setDescription($string) | this | Set additional description of Variable meaning. |
setDefault($value) | this | Set default value. |
setUnit($string) | this | Set value unit. |
setFormula($needle) | bool | Set math equation. |
setValue($value) | this | Set Variable value. If object, uses objects setValue() getValue() methods. |
render() | string | Return value in visible form. (unit, decimals, format..) |
__toString() | string | Alias to: render() |