Archiv verlassen und diese Seite im Standarddesign anzeigen : Änderungen beim Anteilsaddon von Skandal
Sledgedog
30.04.2009, 21:20
Hallo,
nachdem ich das Forum duchsucht habe aber nichts entsprechendes gefunden habe will ich mal die Profis hier fragen:
- Ich suche nach einer Möglichkeit, das es keine AA gibt für Anteile, wleche zum Verkauf angeboten werden
- die AA soll zu xx Prozent in BL erfolgen
Wer kann mir da auf die Sprünge helfen, wie ich das umsetzen kann?
Sledgedog
Hallo,
nachdem ich das Forum duchsucht habe aber nichts entsprechendes gefunden habe will ich mal die Profis hier fragen:
- Ich suche nach einer Möglichkeit, das es keine AA gibt für Anteile, wleche zum Verkauf angeboten werden
- die AA soll zu xx Prozent in BL erfolgen
Wer kann mir da auf die Sprünge helfen, wie ich das umsetzen kann?
Sledgedog
Zum 1ten kann ich nicht viel helfen da ich nicht weis die die while schleife aussieht...
Zum 2ten dort müsstest du im cron folgendes suchen
kontobuchung('+',$variable,...)
und daraus müsstest du es ungefähr sowas machen
kontobuchung('+',$variable/100*20,...)
bonuslose('+',$variable/100*80,...)
in den beispiel werden 20 % in Lose 80 % in Blose gebucht. Denke mal es ist ersichtlich was ungefähr gemacht werden muss um die entsprechende Prozentzahl zu erreichen.
Das ganze müsste natürlich mit den variablen aus den cron ersetzt werden (die kenne ich leider nicht)
- Ich suche nach einer Möglichkeit, das es keine AA gibt für Anteile, wleche zum Verkauf angeboten werden
Dazu musst du im Cron an 2 Stellen was ändern:
1. Beim Auslesen der Gesamtmenge, nach der die Ausschüttung je Anteil berechnet wird, anschließend die Handelsmenge abziehen:
$ges_anteile = mysql_fetch_arrray(.....);
$ges_handel = mysql_fetch_array(db_query("SELECT SUM(anzahl) AS a_ges FROM ".$db_prefix."_anteil_handel where uid !='".$betreiber_daten['betreiber_id']."'")); //neu
$ges_anteile['a_ges'] -= $ges_handel['a_ges']; //neu2. Bei der Ausschüttung je User die Anteile des Users im Handel abziehen:
while ($ausschuettung = mysql_fetch_array($anteil_aus)) {
$minus = mysql_fetch_array(db_query("SELECT SUM(anzahl) AS anz FROM ".$db_prefix."_anteil_handel where uid='".$ausschuettung['uid']."'")); //neu
$ausschuettung['menge'] -= $minus['anz']; //neuIst a) nicht getestet (evtl mal ne Testausschüttung machen mit 1 Los je Anteil, dann sollte da nichts schiefgehen) und b) kann man 2. noch optimieren, hab ich aber grad keine Lust zu :wink:
Sledgedog
01.05.2009, 01:38
na wenn ich deine Lust irgenwie steigern kann sag mir bescheid :thumb:
schon mal danke für die tipps werde das nun mal versuchen alles einzubauen
Sledgedog
01.05.2009, 04:21
Dazu musst du im Cron an 2 Stellen was ändern:
1. Beim Auslesen der Gesamtmenge, nach der die Ausschüttung je Anteil berechnet wird, anschließend die Handelsmenge abziehen:
$ges_anteile = mysql_fetch_arrray(.....);
$ges_handel = mysql_fetch_array(db_query("SELECT SUM(anzahl) AS a_ges FROM ".$db_prefix."_anteil_handel where uid !='".$betreiber_daten['betreiber_id']."'")); //neu
$ges_anteile['a_ges'] -= $ges_handel['a_ges']; //neu2. Bei der Ausschüttung je User die Anteile des Users im Handel abziehen:
while ($ausschuettung = mysql_fetch_array($anteil_aus)) {
$minus = mysql_fetch_array(db_query("SELECT SUM(anzahl) AS anz FROM ".$db_prefix."_anteil_handel where uid='".$ausschuettung['uid']."'")); //neu
$ausschuettung['menge'] -= $minus['anz']; //neuIst a) nicht getestet (evtl mal ne Testausschüttung machen mit 1 Los je Anteil, dann sollte da nichts schiefgehen) und b) kann man 2. noch optimieren, hab ich aber grad keine Lust zu :wink:
funzt leider nicht es werden immer noch alle anteile ob im verkaf oder nicht ausgezahlt :suspicious:
Für die aa Aufteilung ist so in betrieb:
/adminforce/anteile/rendite.php
ca zeile 170 musst du einen block ersetzten.
if($_POST['buchen']=='buchen')
{
$betreiber_daten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_anteil_einst"));
$ges_admin =mysql_fetch_array(db_query("SELECT SUM(menge) AS a_ges_ad FROM ".$db_prefix."_anteil where uid='".$betreiber_daten['betreiber_id']."'"));
$ges_admin_wert = $ges_admin['a_ges_ad'] * $_POST['betrag_anteil'];
db_query("UPDATE ".$db_prefix."_anteil_einst SET ausg_rendite = ausg_rendite + '".$_POST['betrag_ges']."',aus_rueckkauf_admin = aus_rueckkauf_admin + '$ges_admin_wert'");
db_query ("INSERT INTO ".$db_prefix."_anteil_rendite (id,datum,anteile,ausschuettung,pro_anteil,zins,ti me) VALUES ('',CURRENT_TIMESTAMP,'".$_POST['anteile']."','".$_POST['betrag_ges']."','".$_POST['betrag_anteil']."','".$_POST['zins']."','$stamp')");
$anteil_aus = db_query("SELECT * FROM ".$db_prefix."_anteil where menge > '0' and uid !='".$betreiber_daten['betreiber_id']."'");
while ($ausschuettung = mysql_fetch_array($anteil_aus)) {
$buch_betrag = $ausschuettung['menge'] * $_POST['betrag_anteil'];
$buchungs_id = create_code(14);
$loseanteil = mysql_fetch_array(db_query("SELECT loseanteil FROM vms_anteil_einst LIMIT 1"));
$buch_betrags = $buch_betrag/100*$loseanteil['loseanteil'];
$buch_betragsb = $buch_betrag/100*(100-$loseanteil['loseanteil']);
//AA Lose
buchungsliste_anteil ($buchungs_id,-$buch_betrasg,'Ausschüttung '.$ausschuettung['menge'].' Anteil(e) User '.$ausschuettung['uid'],$ausschuettung['uid']);
buchungsliste ($buchungs_id,$buch_betrasg,'AA-Lose '.$ausschuettung['menge'].' Anteil(e)',$ausschuettung['uid']);
db_query ("UPDATE vms_kontodaten SET kontostand=kontostand+".$buch_betrags." where uid=".$ausschuettung['uid']." ");
//AA Bonuslose
buchungsliste_anteil ($buchungs_id,-$buch_betragsb,'Ausschüttung '.$ausschuettung['menge'].' Anteil(e) User '.$ausschuettung['uid'],$ausschuettung['uid']);
buchungsliste ($buchungs_id,$buch_betragsb,'AA-Blose '.$ausschuettung['menge'].' Anteil(e)',$ausschuettung['uid']);
db_query ("UPDATE vms_kontodaten SET bkontostand=bkontostand+".$buch_betragsb." where uid=".$ausschuettung['uid']." ");
}
head("Buchungsbeleg");
dabei musst du darauf achten wo du bonuslose in der datenbank speicherst ob in bkontostand so wie hier oder in einer anderen tabelle
und nun zum cron
/crons/auto_rendite.php
da musst du auch n block ersetzten (ab dem while)
while ($ausschuettung = mysql_fetch_array($anteil_aus)) {
$buch_betrag = $ausschuettung['menge'] * $betreiber_daten['auto'];
$buchungs_id = create_code(14);
$loseanteil = mysql_fetch_array(db_query("SELECT loseanteil FROM vms_anteil_einst LIMIT 1"));
$buch_betrags = $buch_betrag/100*$loseanteil['loseanteil'];
$buch_betragsb = $buch_betrag/100*(100-$loseanteil['loseanteil']);
//AA Lose
buchungsliste_anteil ($buchungs_id,$buch_betrags,'Ausschüttung '.$ausschuettung['menge'].' Anteil(e) User '.$ausschuettung['uid'],$ausschuettung['uid']);
buchungsliste ($buchungs_id,$buch_betrags,'AA-Lose '.$ausschuettung['menge'].' Anteil(e)',$ausschuettung['uid']);
db_query ("UPDATE vms_kontodaten SET kontostand=kontostand+".$buch_betrags." where uid=".$ausschuettung['uid']." ");
//AA Bonuslose
buchungsliste_anteil ($buchungs_id,$buch_betragsb,'Ausschüttung '.$ausschuettung['menge'].' Anteil(e) User '.$ausschuettung['uid'],$ausschuettung['uid']);
buchungsliste ($buchungs_id,$buch_betragsb,'AA-Blose '.$ausschuettung['menge'].' Anteil(e)',$ausschuettung['uid']);
db_query ("UPDATE vms_kontodaten SET bkontostand=bkontostand+".$buch_betragsb." where uid=".$ausschuettung['uid']." ");
}
}
db_close();
echo 'cron erfolgreich gelaufen';
?>
Hier ebenfals auf die bonusspalte achten
MFG Lokutos
funzt leider nicht es werden immer noch alle anteile ob im verkaf oder nicht ausgezahlt :suspicious:
Hab das jetzt mal getestet, und es hat funktioniert :yes:
Also in der CronDatei auto_rendite.php das jeweils unter den Zeilen einfügen, dann sollte es, sofern es die gleiche Version von Skandals Anteilsaddon ist, auch funktionieren. :suspicious:
Sledgedog
01.05.2009, 23:06
Hab das jetzt mal getestet, und es hat funktioniert :yes:
Also in der CronDatei auto_rendite.php das jeweils unter den Zeilen einfügen, dann sollte es, sofern es die gleiche Version von Skandals Anteilsaddon ist, auch funktionieren. :suspicious:
also hab es so drinnen aber es will nicht, die Anteile im Verkauf erhalten nach wie vor eine AA
....................
ignore_user_abort(true); // *nicht ändern* Diese Funktion lässt den Cronjob auch dann fertig laufen, wenn der Cronjobservice beendet wurde
@require_once ('../lib/functions.lib.php');
db_connect();
$stamp =time();
$letzte_buchung =mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_anteil_rendite order by id desc LIMIT 1"));
if(($stamp - $letzte_buchung['time']) < 79200)
{
}else
{
$betreiber_daten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_anteil_einst"));
$ges_admin =mysql_fetch_array(db_query("SELECT SUM(menge) AS a_ges_ad FROM ".$db_prefix."_anteil where uid='".$betreiber_daten['betreiber_id']."'"));
$ges_admin_wert = $ges_admin['a_ges_ad'] * $betreiber_daten['auto'];
$ges_anteile = mysql_fetch_array(db_query("SELECT SUM(menge) AS a_ges FROM ".$db_prefix."_anteil where uid !='".$betreiber_daten['betreiber_id']."'"));
$ges_handel = mysql_fetch_array(db_query("SELECT SUM(anzahl) AS a_ges FROM ".$db_prefix."_anteil_handel where uid !='".$betreiber_daten['betreiber_id']."'")); //neu
$ges_anteile['a_ges'] -= $ges_handel['a_ges'];
$umgerechnet = $betreiber_daten['auto'] * $ges_anteile['a_ges'];
$zins = $betreiber_daten['auto'] * 100 / $betreiber_daten['ausgabe_preis']*30;
db_query("UPDATE ".$db_prefix."_anteil_einst SET ausg_rendite = ausg_rendite + '$umgerechnet',aus_rueckkauf_admin = aus_rueckkauf_admin + '$ges_admin_wert'");
db_query ("INSERT INTO ".$db_prefix."_anteil_rendite (id,datum,anteile,ausschuettung,pro_anteil,zins,ti me) VALUES ('',CURRENT_TIMESTAMP,'".$ges_anteile['a_ges']."','$umgerechnet','".$betreiber_daten['auto']."','$zins','$stamp')");
$anteil_aus = db_query("SELECT * FROM ".$db_prefix."_anteil where menge > '0' and uid !='".$betreiber_daten['betreiber_id']."'");
while ($ausschuettung = mysql_fetch_array($anteil_aus)) {
$minus = mysql_fetch_array(db_query("SELECT SUM(anzahl) AS anz FROM ".$db_prefix."_anteil_handel where uid='".$ausschuettung['uid']."'")); //neu
$ausschuettung['menge'] -= $minus['anz'];
$buch_betrag = $ausschuettung['menge'] * $betreiber_daten['auto'];
$buchungs_id = create_code(14);
buchungsliste_anteil ($buchungs_id,-$buch_betrag,'Ausschüttung '.$ausschuettung['menge'].' Anteil(e) User '.$ausschuettung['uid'],$ausschuettung['uid']);
buchungslisteanteile ($buchungs_id,$buch_betrag,'Anteilausschüttung '.$ausschuettung['menge'].' Anteil(e)',$ausschuettung['uid']);
kontobuchung ('+',$buch_betrag,$ausschuettung['uid']);
...............
Sledgedog
01.05.2009, 23:07
Für die aa Aufteilung ist so in betrieb:
/adminforce/anteile/rendite.php
ca zeile 170 musst du einen block ersetzten.
hab auch das ausprobiert, die Auszahlung in BL geht auch aber auch hier erhalten die Anteile im Verkauf nach wie vor eine AA
hab auch das ausprobiert, die Auszahlung in BL geht auch aber auch hier erhalten die Anteile im Verkauf nach wie vor eine AA
lögisch hab ich auch nicht gemacht :biggrin1:
Sledgedog
01.05.2009, 23:37
lögisch hab ich auch nicht gemacht :biggrin1:
super dann hab ich ja doch schon mal die hälfte und muss nur noch
das von jpwfour umgesetzt bekommen :thumb:
Hm, k.a. was du da anders machst als ich, bei mir funktioniert es so...
Lass dir am besten an den entscheidenden Stellen die Anteilsmenge vor und nach Abzug ausgeben via echo.
Wie prüfst du das mit "im Verkauf" denn?
Admin-Anteile erhalten ja eh keine Ausschüttung.
Also musst du nur bei User x, der Anteile hat und mind. 1 im Verkauf (sieht man ja im Admin), nach der Ausschüttung die Buchungsliste kontrollieren, und da sollte er dann nur Ausschüttung für Anteile-Anteile im Handel bekommen haben.
Also bei mir tut der Code das definitiv, und ich kann auch nicht erkennen, warum es nicht funktionieren sollte.
Außer deine Version des Anteilsaddons speichert bspw. die Anteile im Verkauf woanders etc., das kannst du leicht prüfen, indem du in die Datei im Userbereich schaust, dort ist ja ein Code, der die Handelsmenge des Users ausliest.
Sledgedog
02.05.2009, 00:25
Hm, k.a. was du da anders machst als ich, bei mir funktioniert es so...
Lass dir am besten an den entscheidenden Stellen die Anteilsmenge vor und nach Abzug ausgeben via echo.
Wie prüfst du das mit "im Verkauf" denn?
Admin-Anteile erhalten ja eh keine Ausschüttung.
Also musst du nur bei User x, der Anteile hat und mind. 1 im Verkauf (sieht man ja im Admin), nach der Ausschüttung die Buchungsliste kontrollieren, und da sollte er dann nur Ausschüttung für Anteile-Anteile im Handel bekommen haben.
Also bei mir tut der Code das definitiv, und ich kann auch nicht erkennen, warum es nicht funktionieren sollte.
Außer deine Version des Anteilsaddons speichert bspw. die Anteile im Verkauf woanders etc., das kannst du leicht prüfen, indem du in die Datei im Userbereich schaust, dort ist ja ein Code, der die Handelsmenge des Users ausliest.
Ich habe einfach einem User gefragt, ob er seine Anteile mal in den Verkauf stellen kann zu einem betrag, den sicher keiner zahlt
er war so nett dies zu tun
nur bekommt der user trotzdem jedesmal wenn ich nen test mache eine AA
also bei mir unter user ist das auch unter _anteil_handel
bin wie gesagt auch nicht so fit bei php
setz mich jetzt mit nem bierchen in die ecke und heul erstmal ne runde :Cry:
schreib doch einfach mal folgende zeile
echo $minus['anz'];
vor
$ausschuettung['menge'] -= $minus['anz'];
und lass dann den cron nochmals laufen (manuell) und schau dir die ausgabe an
Also wenn er alle reingestellt hat, bekommt er zwar eine, aber mit 0 Losen.
Oder er hat halt nur 1 reingestellt oder so...
$ausschuettung['menge'] -= $minus['anz'];
muss das nicht so sein
$ausschuettung['menge'] - $minus['anz'];
hm ne, du musst das ergebnis ja der variable zuweisen ;D
$ausschuettung['menge'] -= $minus['anz'];
ist vom ergebnis her äquivalent zu
$ausschuettung['menge'] = $ausschuettung['menge'] - $minus['anz'];
Sledgedog
03.05.2009, 00:18
:thumb::thumb::thumb:
es läuft jetzt alles
keine AA für Anteile im Verkauf
und die teilweise AA in BL funktioniert auch
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.