Hier noch eine fertige Variante mit Gesamtkosten und Finanzierungsgebühren.
function.rate.php
trigger_error("Parameter 'summe' is missing or it has an invalid value. A number greater than zero was expected.", E_USER_ERROR, __FILE__ , __LINE__ );
}
if (! isset($params['mode'])) {
$smarty->trigger_error("Parameter 'mode' is missing", E_USER_ERROR, __FILE__ , __LINE__ );
}
// Extract the values
$summe = $params['summe'];
$zinssatz = $params['zinssatz'];
$laufzeit = $params['laufzeit'];
$gebuehr = $params['gebuehr'];
$mode = $params['mode'];
// Do the complex calculation here using $summe, $zinssatz, $laufzeit
$zinsfaktor = pow($zinssatz/100 +1, (1/12));
$gebuehr = $laufzeit * $gebuehr;
$rate = round($summe * ( pow($zinsfaktor,$laufzeit) / ( pow($zinsfaktor,$laufzeit)-1) ) * ( $zinsfaktor -1 ), 2);
$belastung = ($rate * $laufzeit)+$gebuehr;
$kosten = round($belastung - $summe, 2);
$rate = str_replace(".", ",", $rate);
$belastung = str_replace(".", ",", $belastung);
// And return the value
if ($mode == "rate")
{
return $rate;
}
if ($mode == "belastung")
{
return $belastung;
}
}
?>
Template datei index.tpl
{block name='frontend_detail_index_after_data' append}
Ratenzahlung ab {rate summe=$sArticle.price_numeric zinssatz=11.9 laufzeit=12 gebuehr=0.45 mode=rate}€ pro Monat.
Laufzeit: 12 Monate, Gesamtkosten inkl. 11,9% Jahreszins: {rate summe=$sArticle.price_numeric zinssatz=11.9 laufzeit=12 gebuehr=0.45 mode=belastung}€
{/block}