Vault Mod: keine Nachkommastellen?

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Vault Mod: keine Nachkommastellen?

Beitrag von Dungeonwatcher »

Hi! 8)

Nachdem der Cash Mod nun endlich korrekt rechnet und anzeigt habe ich das gleiche Problem beim aktuellen Vault Mod. Standardmäßig kann er mit Nachkommastellen wohl nichts anfangen. Mittels number_format lässt sich zumindest schonmal die Anzeige des Geldes mit Nachkommastellen bewerkstelligen. Anschließend habe ich analog zum Cash Mod in der Tabelle phpbb_vault_users bei account_sum den Typ von INT auf Decimal 11,2 gesetzt. Trotzdem ignoriert der Vault Mod beim berechnen die Nachkommastellen.

Woran liegt's?

Bye
Zuletzt geändert von Dungeonwatcher am 20.12.2008 12:07, insgesamt 2-mal geändert.
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Re: Vault Mod 1.0.0 - keine Nachkommastellen?

Beitrag von Dungeonwatcher »

'n Abend große Meister der PHP Künste! 8)

Hat wirklich Niemand eine Idee? :roll:

Bye
Teamkiller
Mitglied
Beiträge: 41
Registriert: 13.04.2006 00:26

Beitrag von Teamkiller »

Na ja bin zwar nicht der große PHP Meister sondern auch ehr Anfänger aber vielleicht läßt sich da was finden.

Zunächst einmal wann ignoriert der Vault Mod beim berechnen die Nachkommastellen ?

Bei der Verzinsung , beim Aktienkauf ???

oder wo fällt es dir auf ?

Ein bisschen mehr Infos währen schon nicht schlecht
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

Moin! 8)
Teamkiller hat geschrieben:Na ja bin zwar nicht der große PHP Meister sondern auch ehr Anfänger aber vielleicht läßt sich da was finden.
Super. :)
Zunächst einmal wann ignoriert der Vault Mod beim berechnen die Nachkommastellen ?

Bei der Verzinsung , beim Aktienkauf ???
Bei jeder Aktion. Es lässt sich keine Aktie mit einem Wert anlegen wo es Nachkommastellen gibt. Aus 5,55 wird 5.

Wenn ich Aktien kaufe und einen Geldbetrag mit Nachkommastellen eingebe, dann wird letzteres ignoriert. Das ist daran zu sehen, das bei einem Guthaben von z.B. 100,55 und einem Kaufpreis von 5,55, anschließend noch 95,55 als Guthaben übrig sind.
Teamkiller
Mitglied
Beiträge: 41
Registriert: 13.04.2006 00:26

Beitrag von Teamkiller »

Dann mal ein Versuch. :)

Ersetze in den Dateien

admin_vault_general.php
admin_vault_exchange.php
admin_vault_users.php
vault.php

jedes Vorkommen von intval durch doubleval.

Dann sollten deine Kommazahlen nicht mehr abgeschnitten werden.

Weiterhin muß du in der Datenbank in den Tabellen

vault_exchange + vault_exchange_users

alle Felder mit *price* auf das Format 11,2 umstellen.
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

Moin, moin Meister! 8)
Teamkiller hat geschrieben:Dann mal ein Versuch. :)
Das ist schon mal nicht schlecht. Es lassen sich jetzt Aktienwerte mit Nachkommastellen anlegen und kaufen/verkaufen. :)

Nun geht's aber mit der Bank weiter. Dort lassen sich noch keine Beträge mit Nachkommastellen einzahlen/abbuchen. Ich habe mal die in der Tabelle phpbb_vault_users die Felder account_sum und loan_sum entsprechend geändert. Nun stehen auch dort die entsprechenden Kontoeinträge mit Nachkommastellen. Aber beim Einzahlen/Auszahlen werden diese weiterhin ignoriert. Es muss also wohl auch in den PHP Dateien etwas geändert werden, nur was? :roll:

Bye
Teamkiller
Mitglied
Beiträge: 41
Registriert: 13.04.2006 00:26

Beitrag von Teamkiller »

Mahlzeit :)

Zuständig fürs Ein und Auszahlen ist die vault.php.
Hast du die Änderungen wie oben geschrieben da auch gemacht ?

Es geht um die Zeilen 63,64 & 66

$deposit_sum = intval($HTTP_POST_VARS['deposit_sum']);
$withdraw_sum = intval($HTTP_POST_VARS['withdraw_sum']);
$loan_sum = intval($HTTP_POST_VARS['loan_sum']);

intval durch doubleval ersetzen

$deposit_sum übermittelt den Einzahlungsbetrag
$withdraw_sum das was du abheben möchtest
$loan_sum den Kreditbetrag

Ein und Auszahlungen werden in der Tabelle vault_users im Feld account_sum gespeichert.

Wenn du alle Änderungen so gemacht hast sollte es eigendlich funktionieren.
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

'n Abend! 8)

Perfekt, nun funktioniert auch die Ein- bzw. Auszahlung mit Nachkommastellen. THNX :)

Blieben jetzt (imho) noch 2 Stellen im Mod anzupassen. Da währe zuerst im ACP die Eingabe von Min und Max Bereich der Kursschwankungen. In der betreffenden admin_vault_exchange.php habe ich alles angepasst. Wenn ich nicht ganz falsch liege, muss ich in der Tabelle phpbb_vault_general im Feld config_value die Zellen stock_min_change und stock_max_change von INT auf decimal(11,2) umstellen. Nur wie bekomme ich das per PHPMyAdmin hin? Wenn ich diese Zellen bearbeiten will, kann ich den Typ nicht ändern?

Bye
Teamkiller
Mitglied
Beiträge: 41
Registriert: 13.04.2006 00:26

Beitrag von Teamkiller »

Moin :)

Die Tabelle vault_general ist ein wenig anders aufgebaut als die bisher bearbeiteten Tabellen, in der Tabelle sieht du auch nur 2 Spalten, wenn du sie mal mit den anderen vergleichst siehst du auch die Unterschiede.

Lange Rede, kurzer Sinn, jede Spalte hat nur eine Definition die für alle nachfolgenden Reihen gültig ist, d.h. du mußt im den Fall die Spaltendefinition ändern, also in PHPMyAdmin die Tabelle vault_general anklicken, dann solltest du in der Struktur sein, falls nicht oben auf Struktur klicken.
Ausschlaggebend ist dann das Feld config_value, dieses änderst du dann auf diesmal auf Decimal 15,2 da es vorher schon mit der Größe 15 vordefiniert war.

Falls du so nicht damit klar kommst hier noch mal die entsprechende SQL Anweisung :

Code: Alles auswählen

ALTER TABLE `php_vault_general` CHANGE `config_value` `config_value` DECIMAL( 15, 2 ) NOT NULL DEFAULT '0.00'      
So dann viel Glück und Fun mit dem Vault Mod.
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Beitrag von Dungeonwatcher »

Moin, moin mein PHP Genie! 8)

Auch das funktionierte bestens. :P

Nun muss ich halt mal beobachten ob die Verzinsung auch tatsächlich mit den Nachkommastellen arbeitet, bzw. ob die Aktienkurse diese auch berücksichtigen. :)

Nachdem ich nun noch diverse Male mit number_format die Anzeige der Werte im Forum angepasst habe, bleibt nur noch ein einziger "Schönheitsfehler" übrig. Dieser betrifft die Eingabe der Beträge. Standardmäßig werden diese im Amerikanischen Format mit dem Punkt als Trennungszeichen zu den Nachkommastellen eingegeben und stehen so natürlich auch in der Datenbank. Gibt es eine einfache Möglichkeit dieses Eingabeformat zum Komma ändern?

Bye
Antworten

Zurück zu „phpBB 2.0: Mod Support“