negatives Guthaben

  • Hallo,

    erstmal, grosses Lob für das Guthaben-Plugin, echt genial !

    Jetzt zu meinem Problem: Ich möchte das Guthabenplugin als Beitragverwaltung für unseren Verein forum.ign-tuning.com verwenden. Gibt es die Möglichkeit, auch einen negativen Kontostand sowie nachkomastellen zu ermöglichen ? Ich habe schon versucht mich durch die Guthaben.class zu hangeln, jedoch komme ich da auf keinen grünen Zweig.

    ich bin leider nicht sonderlich fit in php...
    ich führe die Änderungen auch gerne selber durch, und gebe die veränderte Version natürlich nicht weiter ;)

    bin für jede Hilfe dankbar.


    Mein System ist ein WBB 3.1.5 (Volcano) mit WCF 1.1.7 (Tempest)

    Betriebssystem - Linux
    Webserver - Apache
    PHP Version - 5.2.12-nmm2
    MySQL Version - 5.1.43-nmm4-log
    Cache - DiskCacheSource


    Grüße, Souko

  • So halb ist die Unterstützung von negativen Beträgen schon eingebaut, sollte eigentlich gehen, versuchs mal mit einer moderativen Überweisung ins negative?
    Warum sollte man Kommastellen benötigen? Finde ich nicht notwendig.
    Generell wäre das eine größere Umstellung, nicht mal einfach so gemacht, da muss man quasi das ganze Plugin umarbeiten.

  • Hi,

    danke für die schnelle Antwort.

    Kommastellen wären gut, für Euro-Beträge, ist aber nicht so immens wichtig.

    Wenn ich eine negative Überweisung ausführe (moderativ versteht sich) wird zwar Guthaben abgezogen, es erscheint aber im Profil trotzdem 0 Euro (E-Dollar, in Sprachvariablen durch eigene Version ersetzt)

    Im Kontoauszug steht dann auch die negative Überweisung, und Übertrag steht auch der neue Kontostand, aber bei Gesammtumsatz ist es grün und steht 0

    Im Profil auch 0


    Grüße, Souko

  • Hmm, also irgendwie funktioniert da nicht.

    muss ich in der Guthaben.class.php die folgende Stelle "$allowLess = false" auf true ändern ?


    PHP
    * @return bool
      */
     public static function sub($sub, $langvar, $text = '', $link = '', User $user = null, $allowLess = true)
     {
      if ($user == null)
      {
       $user = WCF :: getUser();
      }
  • Hmm,

    also ich hab das gesammte Paket nochmal entfernt und den Chache geleert.
    Danach die aktuellen Versionen hier ausm Forum installiert.

    Rechte für bestimmte Nutzergruppen zugewiesen und E-Dollar über die Sprachvariablen in Euro geändert.

    Dann einem User per Moderativer Überweisung -27 abgezogen. In der Forbesliste steht 0 Euro und in seinem Profil auch.
    Habe mir auch selbst mal -12 per Moderativer abgezogen, da steht dann on den Kontoauszügen zwar ne negative Überweisung, aber sonst steht überall 0 (auch beim Gesammtumsatz)

    Gibt es noch irgendwas, wo ich Optionen setzen muss ?

    Grüße, Souko

  • Dann gehts nicht, wie gesagt, du solltest es ja testen. ;)
    Soll heißen: prinzipiell kann die Guthaben-Klasse schon mit negativen Zahlen arbeiten, aber ich hab das noch nicht in die anderen Teile des Pakets integriert.

  • Hm, also ich hab mal ausprobiert manuell Daten in die Database einzutragen.

    negative Werte gehen ohne Probleme, nur er haut die trotzdem als 0 raus.

    wo speichert das Guthabenplugin eigentlich die aktuellen Guthaben ?? Oder errechnet das Plugin das jedes mal aus dem Log heraus ?

  • Wo hast du manuell Daten eingetragen? Das Feld ist ein unsigned Int, da gehen ganz sicher keine negativen Werte.
    Das Guthabenplugin speichert das aktuelle Guthaben als userOption. Entsprechend kann ich dir den exakten Namen des Feldes nicht sagen, da der bei allen anders ist.
    Das Log wird jedenfalls nicht berücksichtigt.
    Ich arbeite derzeit an einem größeren Umbau des Plugins, das wird dann die Version 2.0, da ist das dann alles möglich und auch Kommazahlen.
    Dauert aber noch.

  • HA, habe die Lösung gefunden.

    es muss ganz einfach die User-Option in der Datenbank (mit phpma) von Unsigned auf "blank" stellen... also auf signed.
    Jetzt geht es einwandfrei. Negatives Guthaben im Kontoauszug wird auch angezeigt, ebenso wie im Profil.... und in der Forbesliste auch. :thumbup:


    Hab ganz einfach einem User einen Riesen Betrag zugewiesen, per Moderativer und hab dann per phpma in der tabelle " wcf1_user_option_value" nach diesem Betrag gesucht. und schon wusste ich, welche User-Option die Guthaben enthält und diese Spalte hab ich dann einfach auf signed gestellt.

    Danke, dein Tipp mit den UserOptions war der Knackpunkt !

  • Und beim nächsten Update fliegt das wieder raus und deine ganzen negativen Guthaben sind Null.
    Händisches herumpfuschen an den Feldern in der Datenbank ist keine gute Idee.

  • Hmm,
    dann muss ich da eben aufpassen, das ich keine Updates installiere ohne vorher die Installer-anweisungen vom SQL-Teil zu verändern.
    Da sowieso täglich ein Backup gefahren wird, ist das kein Thema.

    Ist es eigentlich möglich per Cronjob oder so monatlich ein festes Guthaben abzuziehen ??

    sollte doch gehen, oder..?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!