Seite 1 von 1

Vault Mod: "letzer Kaufpreis" in der Übersicht

Verfasst: 27.02.2009 07:04
von Dungeonwatcher
Hi! 8)

Um den Handel mit Aktien etwas übersichtlicher zu gestalten kam mir die Idee den jeweils letzten Kaufpreis einer Aktie in der Aktienübersicht anzuzeigen. Voraussetzung für diese Erweiterung ist dies: Vault Mod: keine Nachkommastellen?.

Erstelle mit Hilfe von PHPMyAdmin ein neues Tabellenfeld price_transaction:

Code: Alles auswählen

ALTER TABLE phpbb_vault_exchange_users ADD price_transaction decimal(10,2) NOT NULL default '0';
Suche in der vault.php:

Code: Alles auswählen

		$price = ((
füge danach ein:

Code: Alles auswählen

		$price2 = number_format(floatval($items[$i]['stock_price']),2);
suche:

Code: Alles auswählen

		if ( is_numeric($user_items['stock_amount']) &&	$prize != 0 )
		{
			$rsql = "UPDATE " . VAULT_EXCHANGE_USERS_TABLE ."
				SET stock_amount = stock_amount + $prize
				WHERE user_id = $user_id
				AND stock_id = ".$items[$i]['stock_id'];
			if( !$db->sql_query($rsql))
			{
				message_die(GENERAL_ERROR, 'Could not update user stock', "", __LINE__, __FILE__, $rsql);
			}
		}
ersetze durch:

Code: Alles auswählen

		if ( is_numeric($user_items['stock_amount']) &&	$prize != 0 )
		{
			$rsql = "UPDATE " . VAULT_EXCHANGE_USERS_TABLE ."
				SET stock_amount = stock_amount + $prize ,
				price_transaction = $price2
				WHERE user_id = $user_id
				AND stock_id = ".$items[$i]['stock_id'];
			if( !$db->sql_query($rsql))
			{
				message_die(GENERAL_ERROR, 'Could not update user stock', "", __LINE__, __FILE__, $rsql);
			}
		}
suche:

Code: Alles auswählen

		else if ( !(is_numeric($user_items['stock_amount'])) && $prize != 0 )
		{
			$rsql = "INSERT INTO " . VAULT_EXCHANGE_USERS_TABLE ."
				( stock_id , user_id , stock_amount )
				VALUES ( ".$items[$i]['stock_id']." , $user_id , $prize  )";
			if( !$db->sql_query($rsql))
			{
				message_die(GENERAL_ERROR, 'Could not update user stock', "", __LINE__, __FILE__, $rsql);
			}
		}
ersetze durch:

Code: Alles auswählen

		else if ( !(is_numeric($user_items['stock_amount'])) && $prize != 0 )
		{
			$rsql = "INSERT INTO " . VAULT_EXCHANGE_USERS_TABLE ."
				( stock_id , user_id , stock_amount , price_transaction )
				VALUES ( ".$items[$i]['stock_id']." , $user_id , $prize , $price2 )";
			if( !$db->sql_query($rsql))
			{
				message_die(GENERAL_ERROR, 'Could not update user stock', "", __LINE__, __FILE__, $rsql);
			}
		}
Suche in der vault_exchange_body.tpl:

Code: Alles auswählen

colspan="
und erhöhe die Zahl nach dem " um eins.

Suche:

Code: Alles auswählen

    <th>{L_STOCK_OWNED}</th>
füge danach ein:

Code: Alles auswählen

	<th>{L_STOCK_BOUGHT}</th>
suche:

Code: Alles auswählen

    <td class="{exchange.ROW_CLASS}" align="center"><span class="gen">{exchange.STOCK_OWNED}</span><br /><span class="explaintitle" style="font-size: 0.8em">{exchange.STOCK_OWNED_ACT}</span></td>
füge danach ein:

Code: Alles auswählen

    <td class="{exchange.ROW_CLASS}" align="right"><span class="gen">{exchange.STOCK_BOUGHT}</span></td>
suche:

Code: Alles auswählen

colspan="
und erhöhe die Zahl wieder um Eins.

Das war's.

Bye

Re: Vault Mod: "letzer Kaufpreis" in der Übersicht

Verfasst: 28.10.2009 19:11
von Dungeonwatcher
Hi!

Einen Fehler hat das ganze leider noch. Aktien mit Preisen größer 3stellig können nicht gehandelt werden. :roll:
Um das zu beheben folgende Zeile:

Code: Alles auswählen

		$price2 = number_format(floatval($items[$i]['stock_price']),2);
durch diese:

Code: Alles auswählen

		$price2 = number_format(floatval($items[$i]['stock_price']),2, ".", "");
ersetzen.

Bye