Hi,
jetzt verstehe ich auch den Hintergrund des Support-Tickets im SHop. Also zunächst einmal den Typ der Spalten in der DB ändern, wo die Vergütung gespeichert wird:
Code:
ALTER TABLE `vms12_gebuchte_werbung` CHANGE `verdienst` `verdienst` DOUBLE( 11, 10 ) NOT NULL DEFAULT '0.00',
CHANGE `preis` `preis` DOUBLE( 11, 10 ) NOT NULL DEFAULT '0.00'
Damit können dann auch Euro-Kleinstbeträge gespeichert werden (bis zu 10 Stellen hinterm Komma).
Wie jpwfour schon richtig geschrieben hat, muß in den Interfaces die Rundung geändert wird, da das VMS ja auf virtuelle Währungen ausgelegt ist (Virtual Monetary System) :
PHP-Code:
$pay_betreiber = round($pay*$ifdata['umrechnung'],10);
$pay_user = round($pay_betreiber - (($pay*$ifdata['umrechnung']) / 100 * $ifdata['eigen']),10);
Eigentlich sollte der Exponential-Wert beim Eintragen in die Datenbank wieder zu einer Zahl werden. Habe ich zumindest noch nie Probleme mit gehabt, das PHP nicht damit rechnen könnte, bzw. das nicht in der DB gespeichert werden kann (wenigstens dann nicht, wenn der Typ der Spalte DOUBLE ist). Problematisch wird es höchstens, wenn man so einen Wert z.B. als Betrag in einer EF-Url von Klamm verwendet etc.
Sollte es wie auch immer, nicht funktionieren, dann unter den beiden Zeillen von oben Folgendes einfügen :
PHP-Code:
$pay_betreiber = number_format($pay_betreiber,10,'.','');
$pay_user = number_format($pay_user,10,'.','');
Sollte eigentlich Abhilfe schaffen.
Gruß
Marco