PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mindest-AP für Refvergütung



Most_Wanted
29.04.2011, 22:30
Hallo,

da ich ja ein ziemlich böser Mensch bin, würde ich bei meinem kommenden Projekt gerne nur Refvergütungen an die User auszahlen, wenn diese selber an diesem Tag aktiv waren (also mindestens 1 Aktivpunkt).

Wenn ich mich nicht täusche, müsste das ja mit einer Zeile gehen (if User > 1 Aktivpunkt, dann Auszahlung), oder? Leider haperts bei mir mit der Umsetzung
solcher Spielchen *lach* Hab das ganze VMS schon nach einer ähnlichen Zeile durchsucht, aber leider nicht fündig geworden.

Wer würde mir bösem Menschen also bei diesem Problem helfen? :biggrin1:
Gerne auch gegen Bezahlung, sollte es doch nicht mit der einen Zeile gehen, so wie ich mir das ausgemalt hab :suspicious:

CeleronD
29.04.2011, 23:12
So in etwa, nur halt mit der varible vom AP



if ($bonus >= 0.0000001) {

"Hier das auszuführende rein"

}


Mann möge mich verbessern wenn ich falsch liege.

WaechterMedia
29.04.2011, 23:52
Ist die Frage ob dein AP addon überhaupt tagessätze speichert und wenn ja ob das beides zueinander passt denn der cron mit den refumsätzen muss dann definitiv ausgeführt werden bevor die aps resettet werden :D

Ansonsten finde ich die Idee mal gar nicht so schlecht ;D

Masterphil
30.04.2011, 14:47
Die Idee ist auch gar nicht so neu, zu anfängen des Paid4 gab es einige die es schon so hatten, bei einer LoseSeite und auch generell aber denke ich schreckt sowas potentielle Werber eher ab, denn dein Vorhaben ist nur der erste Schritt in Richtung, das man nur das an Refs verdient, was man sebst auch verdient hat.

Glaube bei FairAd war das so damals.

Und so kann man vergessen das PowerWerber mal eben 100 Refs und mehr sammeln.

Ansonsten ist es sicher umzusetzten, Ansätze habt ihr ja schon.

Einfach in den RefVergütungsCron die Bedingung reinpacken das er nur ausgeführt wird wenn AP einen gewissen Wert haben. Das geht ohne Probleme denke ich mal.

Also das was Cerleron gepostet muss in etwa in den Refcron, "Bonus" steht dafür für die AP, kann also je nach AP Addon auch ne andere Bezeichnung haben, auch kann es sein das man erstmal die Tabelle dafür öffnen muss, denn der Code muss ja wissen wo er genau nach den AP gucken soll und muss auch alle einmal durchchecken.

Und nun schönes WE euch allen.

MfG

CeleronD
30.04.2011, 16:07
Müsste man dann auch in den drei Ebenen den Code tun also:
1. Refebene 2. Refebene 3. Refebene.
Oder nur in der ersten Ebene nur? Bestimmt in alle Ebenen oder?

WaechterMedia
30.04.2011, 16:48
Müsste man dann auch in den drei Ebenen den Code tun also:
1. Refebene 2. Refebene 3. Refebene.
Oder nur in der ersten Ebene nur? Bestimmt in alle Ebenen oder?

Ne musst das ja alles in der function für die ref vergütung machen.

Parl
30.04.2011, 18:58
Meinst du die Funktion refverdienst() ? In dieser Funktion müsste man dann den Werber 3 Ebenen nach oben auslesen. Allerdings würde sich das auch auf das Refback auswirken. Besser wäre es das ganze im Refzahlungscron einzubauen.

Ist zwar definitiv möglich, allerdings ziemlich komplex zu bauen.

MFG

CeleronD
30.04.2011, 19:00
Mmm also doch in dem Cron für Refzahlung, für jede Ebene extra bearbeiten also?

Most_Wanted
30.04.2011, 22:58
Mal ein paar Sachen aufgreifen:


Ist die Frage ob dein AP addon überhaupt tagessätze speichert und wenn ja ob das beides zueinander passt denn der cron mit den refumsätzen muss dann definitiv ausgeführt werden bevor die aps resettet werden :D

Ansonsten finde ich die Idee mal gar nicht so schlecht ;D

Ja, bei meinem AP-Addon werden die Tages-AP ja erst wieder resettet,
wenn der Cron für die Umrechnung (AP in Bonuslose) gelaufen ist.
Es müsste also nur diese Spalte abgefragt werden, ob die aktuellen AP
mindestens 1 betragen. Denn der Refcron läuft bei mir ohnehin 30
Minuten vorher, von daher müsste es funktionieren.


...


Ich bin ja der Meinung, dass die Refralleys und die Refvergütung allgemein
ansporn genug sein sollten, Refs zu werben. Wer sich davon abschrecken
lässt, 1x pro Tag kurz auf der Seite zu erscheinen, auf den kann ich auch
gut und gerne verzichten als Refjäger.

Wie gesagt, es braucht ja nur in die Cron-Datei diese if-Bedingung rein,
dass die aktuellen Tages-AP größer 1 sind, dazu noch die Datenbankabfrage und dann müsste das Problem ja eigentlich schon
gelöst sein.

Das mit dem Refback stimmt allerdings, da hatte ich nich gar nicht daran
gedacht...wenn man diese Bedingung nur in die Cron-Datei einfach so
packt, dann werden ja den Usern auch keine Refbacks vergütet, nur weil
ihr Werber nicht on war.. gestaltet sich doch schwieriger die ganze Geschichte :biggrin1:

CeleronD
30.04.2011, 23:20
Reicht es nicht aus nur die Kontobuchung mit dem if... Befehl zuversehn?



$refback = ($anzeigen_1['umsatz']/100*$refdaten['re1'])/100*$anzeigen_1['refback'];

if ($bp >= 1) {
kontobuchung ('+',$refback,$anzeigen_1['uid']);
buchungsliste ($buchungs_id,'+'.$refback,'Refback '.$anzeigen_1['refback'].' Proz. ('.$refliste_1['uid'].')',$anzeigen_1['uid']);
blabla....
}
So in etwa..? Natürlich noch die Datenbankabfrage mit rein tun!

Most_Wanted
01.05.2011, 00:55
Stimmt. Ich werde das mal im Laufe der Nacht probieren :) Danke schon mal für deine Mühe :)

Most_Wanted
01.05.2011, 02:54
Also bei mir sieht das jetzt so aus:


// AP abfragen

$ap = mysql_fetch_array(db_query("SELECT `eintap` FROM ".$db_prefix."_kontodaten"));


// Ebene 1
$refebene_1 = db_query ("SELECT `uid`,`umsatz`,`werber`,`refback`,`gesamt` FROM ".$db_prefix."_werberdaten WHERE werber='".$refliste_1['uid']."'");
while ($anzeigen_1 = mysql_fetch_array($refebene_1)) {
$verdienst = $verdienst + ($anzeigen_1['umsatz']/100*$refdaten['re1']);
$pro_verdienst = $anzeigen_1['umsatz'] / 100 * $refdaten['re1'];
db_query ("UPDATE ".$db_prefix."_werberdaten SET gesamt=gesamt+'".$pro_verdienst."' , reset=reset+'".$pro_verdienst."' WHERE uid='".$anzeigen_1['uid']."'");
if ($anzeigen_1['refback'] >= 1 && ($anzeigen_1['umsatz']/100*$refdaten['re1'])/100*$anzeigen_1['refback'] >= 0.01) {
$buchungs_id = create_code(14);
$refback = ($anzeigen_1['umsatz']/100*$refdaten['re1'])/100*$anzeigen_1['refback'];
kontobuchung ('+',$refback,$anzeigen_1['uid']);
buchungsliste ($buchungs_id,'+'.$refback,'Refback '.$anzeigen_1['refback'].'% ('.$refliste_1['uid'].')',$anzeigen_1['uid']);
buchungsliste ($buchungs_id,'-'.$refback,'Refback '.$anzeigen_1['refback'].'% gezahlt ('.$anzeigen_1['uid'].')',$refliste_1['uid']);
$pro_verdienst = $pro_verdienst - $refback;
$refback = 0;
$buchungs_id = '';
}
if ($ap >= 1 ) {
kontobuchung ('+',$pro_verdienst,$refliste_1['uid']);
$pro_verdienst = 0;
}

Beim ausführen des Crons kommt dann immer:


Warning: vsprintf() [function.vsprintf (http://losekiller.de/function.vsprintf)]: Too few arguments in /var/www/web126/html/Losekiller/lib/functions.lib.php on line 40

Warning: vsprintf() [function.vsprintf (http://losekiller.de/function.vsprintf)]: Too few arguments in /var/www/web126/html/Losekiller/lib/functions.lib.php on line 40
Cron gelaufen

Die Refvergütung wird aber trotzdem gutgeschrieben, obwohl 0 AP.

CeleronD
02.05.2011, 16:17
$bp = mysql_fetch_array(db_query("SELECT `bp` FROM ".$db_prefix."_kontodaten"));
if ($bp >= 1 ) {
kontobuchung ('+',$pro_verdienst,$refliste_1['uid']);
$pro_verdienst = 0;
}Der Cron läuft ohne Fehler durch, nur hab ich keinen User der einen geworben hat der gerade klickt. Nur so wird das doch noch immer in den Kontoauszug des User geschrieben was er verdient hat.

CeleronD
04.05.2011, 20:55
Die Datenbankabfrage ist falsch.


// Aktivpunkte Prüfen
$bp = mysql_fetch_array(db_query("SELECT `bp` FROM ".$db_prefix."_kontodaten WHERE uid=$refliste_1['uid']);"));

// Prozente laden!
$refdaten = mysql_fetch_array(db_query("SELECT `re1`,`re2`,`re3` FROM ".$db_prefix."_seitenkonfig"));

// Userdurchlauf
$refliste = db_query ("SELECT * FROM ".$db_prefix."_werberdaten");
while ($refliste_1 = mysql_fetch_array($refliste)) {
$verdienst = 0;

// Ebene 1
$refebene_1 = db_query ("SELECT `uid`,`umsatz`,`werber`,`refback`,`gesamt` FROM ".$db_prefix."_werberdaten WHERE werber='".$refliste_1['uid']."'");
while ($anzeigen_1 = mysql_fetch_array($refebene_1)) {
$verdienst = $verdienst + ($anzeigen_1['umsatz']/100*$refdaten['re1']);
$pro_verdienst = $anzeigen_1['umsatz'] / 100 * $refdaten['re1'];
db_query ("UPDATE ".$db_prefix."_werberdaten SET gesamt=gesamt+'".$pro_verdienst."' , reset=reset+'".$pro_verdienst."' WHERE uid='".$anzeigen_1['uid']."'");
if ($anzeigen_1['refback'] >= 1 && ($anzeigen_1['umsatz']/100*$refdaten['re1'])/100*$anzeigen_1['refback'] >= 0.0000001) {
$buchungs_id = create_code(14);
$refback = ($anzeigen_1['umsatz']/100*$refdaten['re1'])/100*$anzeigen_1['refback'];

// Abfragen ob genügend Aktivpunkte vorhanden dann erst buchen
if ($bp >= 1) {
kontobuchung ('+',$refback,$anzeigen_1['uid']);
}

buchungsliste ($buchungs_id,'+'.$refback,'Refback '.$anzeigen_1['refback'].' Proz. ('.$refliste_1['uid'].')',$anzeigen_1['uid']);
stg_bilanz (0,$verdienst,RefBack,"RefBack");
buchungsliste ($buchungs_id,'-'.$refback,'Refback '.$anzeigen_1['refback'].' Proz. gezahlt ('.$anzeigen_1['uid'].')',$refliste_1['uid']);
$pro_verdienst = $pro_verdienst - $refback;
$refback = 0;
$buchungs_id = '';
}

kontobuchung ('+',$pro_verdienst,$refliste_1['uid']);
$pro_verdienst = 0;So hab ich das. Mal sehn ob es richtig ist.

EDIT

Nein, es kommt immer folgende Fehlermeldung.

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ..................................../crons/refzahlungen.knt.php on line 2

jpwfour
04.05.2011, 23:35
Die Fehlermeldung sagt es ja schon aus, in der Zeile:


$bp = mysql_fetch_array(db_query("SELECT `bp` FROM ".$db_prefix."_kontodaten WHERE uid=$refliste_1['uid']);"));ist ein Syntaxfehler, speziell:

"SELECT `bp` FROM ".$db_prefix."_kontodaten WHERE uid=$refliste_1['uid']);"

darin der Array Zugriff:

$refliste_1['uid']

Versuchs mal so:


$bp = mysql_fetch_array(db_query("SELECT `bp` FROM ".$db_prefix."_kontodaten WHERE uid=".$refliste_1['uid']));Die schließende runde Klammer im Query ist auch falsch (hat aber nicht den Fehler ausgelöst).

Möglichkeiten:


$var = "$array[key]";
$var = "{$array['key']}";
$var = "".$array['key']."";

Falsch:


$var = "$array['key']";

CeleronD
05.05.2011, 21:45
$bp = mysql_fetch_array(db_query("SELECT `bp` FROM ".$db_prefix."_kontodaten WHERE uid=".$refliste_1[uid].""));
if ($bp >= 0.5) {
kontobuchung ('+',$refback,$anzeigen_1['uid']);
buchungsliste ($buchungs_id,'+'.$refback,'Refback '.$anzeigen_1['refback'].' Proz. ('.$refliste_1['uid'].')',$anzeigen_1['uid']);
}


Mach ich es nun so, werden bei ausführung des Refvergütungscron beides Ausgeführt Kontobuchung sowie der eintrag in den Kontoauszug. Wieso?