Für die aa Aufteilung ist so in betrieb:
/adminforce/anteile/rendite.php
ca zeile 170 musst du einen block ersetzten.
dabei musst du darauf achten wo du bonuslose in der datenbank speicherst ob in bkontostand so wie hier oder in einer anderen tabellePHP-Code:
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,time) 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");
und nun zum cron
/crons/auto_rendite.php
da musst du auch n block ersetzten (ab dem while)
Hier ebenfals auf die bonusspalte achtenPHP-Code:
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';
?>
MFG Lokutos
SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting
SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting
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.
Kill one man, and you are a murderer.
Kill millions of men, and you are a conqueror.
Kill them all, and you are a god. - Jean Rostand, Thoughts of a Biologist (1939)
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
Kill one man, and you are a murderer.
Kill millions of men, and you are a conqueror.
Kill them all, and you are a god. - Jean Rostand, Thoughts of a Biologist (1939)
also hab es so drinnen aber es will nicht, die Anteile im Verkauf erhalten nach wie vor eine AA
PHP-Code:
....................
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,time) 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']);
...............