PDA

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

Hardy
30.04.2009, 21:27
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)

jpwfour
30.04.2009, 22:44
- 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:

Lokutos
01.05.2009, 10:39
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

jpwfour
01.05.2009, 19:31
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

Lokutos
01.05.2009, 23:19
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:

jpwfour
02.05.2009, 00:06
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:

eRaaaa
02.05.2009, 00:38
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

jpwfour
02.05.2009, 02:41
Also wenn er alle reingestellt hat, bekommt er zwar eine, aber mit 0 Losen.
Oder er hat halt nur 1 reingestellt oder so...

Lokutos
02.05.2009, 10:17
$ausschuettung['menge'] -= $minus['anz'];

muss das nicht so sein

$ausschuettung['menge'] - $minus['anz'];

eRaaaa
02.05.2009, 13:08
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