diff --git a/htdocs/don.class.php b/htdocs/don.class.php
index 905acccfdd5..3af42b898ed 100644
--- a/htdocs/don.class.php
+++ b/htdocs/don.class.php
@@ -291,5 +291,59 @@ class Don
return 0;
}
}
+ /*
+ * Somme des dons payés
+ * encaissés ou non
+ */
+ Function sum_actual()
+ {
+ $sql = "SELECT sum(amount)";
+ $sql .= " FROM llx_don";
+ $sql .= " WHERE fk_statut = 3";
+
+ if ( $this->db->query( $sql) )
+ {
+ $row = $this->db->fetch_row(0);
+
+ return $row[0];
+
+ }
+ }
+ /*
+ * En attente de paiement
+ *
+ */
+ Function sum_pending()
+ {
+ $sql = "SELECT sum(amount)";
+ $sql .= " FROM llx_don";
+ $sql .= " WHERE fk_statut = 2";
+
+ if ( $this->db->query( $sql) )
+ {
+ $row = $this->db->fetch_row(0);
+
+ return $row[0];
+
+ }
+ }
+ /*
+ * Somme des promesses de dons validées
+ *
+ */
+ Function sum_intent()
+ {
+ $sql = "SELECT sum(amount)";
+ $sql .= " FROM llx_don";
+ $sql .= " WHERE fk_statut = 1";
+
+ if ( $this->db->query( $sql) )
+ {
+ $row = $this->db->fetch_row(0);
+
+ return $row[0];
+
+ }
+ }
}
?>
diff --git a/htdocs/lib/thermometer.php b/htdocs/lib/thermometer.php
new file mode 100644
index 00000000000..ee5d70e6f16
--- /dev/null
+++ b/htdocs/lib/thermometer.php
@@ -0,0 +1,179 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+function moneyMeter($actualValue=0, $pendingValue=0, $intentValue=0)
+ /*
+ This function returns the html for the moneymeter.
+ cachedValue: amount of actual money
+ pendingValue: amount of money of pending memberships
+ intentValue: amount of intended money (that's without the amount of actual money)
+ */
+{
+
+ // variables
+ $height="200";
+ $maximumValue=125000;
+
+ $imageDir = "http://eucd.info/images/";
+
+ $imageTop = $imageDir . "therm_top.png";
+ $imageMiddleActual = $imageDir . "therm_actual.png";
+ $imageMiddlePending = $imageDir . "therm_pending.png";
+ $imageMiddleIntent = $imageDir . "therm_intent.png";
+ $imageMiddleGoal = $imageDir . "therm_goal.png";
+ $imageIndex = $imageDir . "therm_index.png";
+ $imageBottom = $imageDir . "therm_bottom.png";
+ $imageColorActual = $imageDir . "therm_color_actual.png";
+ $imageColorPending = $imageDir . "therm_color_pending.png";
+ $imageColorIntent = $imageDir . "therm_color_intent.png";
+
+ $htmlThermTop = '
+
+
+
+
+
+  |
+
+
+
+ ';
+
+ $htmlSection = '
+  | ';
+
+ $htmlThermbottom = '
+
+ |
+  |
+
+
+  |
+
+
+ |
+
';
+
+ // legenda
+
+ $legendaActual = "€ " . round($actualValue);
+ $legendaPending = "€ " . round($pendingValue);
+ $legendaIntent = "€ " . round($intentValue);
+ $legendaTotal = "€ " . round($actualValue + $pendingValue + $intentValue);
+ $htmlLegenda = '
+
+
+ | Payé: ' . $legendaActual . ' |
+ | En attente: ' . $legendaPending . ' |
+ | Promesses: ' . $legendaIntent . ' |
+ | | Total: ' . $legendaTotal . ' |
+
+
+ ';
+
+ // check and edit some values
+
+ $error = 0;
+ if ( $maximumValue <= 0 || $height <= 0 || $actualValue < 0 || $pendingValue < 0 || $intentValue < 0)
+ {
+ return "The money meter could not be processed
\n";
+ }
+ if ( $actualValue > $maximumValue )
+ {
+ $actualValue = $maximumValue;
+ $pendingValue = 0;
+ $intentValue = 0;
+ }
+ else
+ {
+ if ( ($actualValue + $pendingValue) > $maximumValue )
+ {
+ $pendingValue = $maximumValue - $actualValue;
+ $intentValue = 0;
+ }
+ else
+ {
+ if ( ($actualValue + $pendingValue + $intentValue) > $maximumValue )
+ {
+ $intentValue = $maximumValue - $actualValue - $pendingValue;
+ }
+ }
+ }
+
+ // start writing the html (from bottom to top)
+
+ // bottom
+ $thermometer = $htmlThermbottom;
+
+ // actual
+ $sectionHeight = round(($actualValue / $maximumValue) * $height);
+ $totalHeight = $totalHeight + $sectionHeight;
+ if ( $sectionHeight > 0 )
+ {
+ $section = $htmlSection;
+ $section = str_replace("{image}", $imageMiddleActual, $section);
+ $section = str_replace("{height}", $sectionHeight, $section);
+ $thermometer = $section . $thermometer;
+ }
+
+ // pending
+ $sectionHeight = round(($pendingValue / $maximumValue) * $height);
+ $totalHeight = $totalHeight + $sectionHeight;
+ if ( $sectionHeight > 0 )
+ {
+ $section = $htmlSection;
+ $section = str_replace("{image}", $imageMiddlePending, $section);
+ $section = str_replace("{height}", $sectionHeight, $section);
+ $thermometer = $section . $thermometer;
+ }
+
+ // intent
+ $sectionHeight = round(($intentValue / $maximumValue) * $height);
+ $totalHeight = $totalHeight + $sectionHeight;
+ if ( $sectionHeight > 0 )
+ {
+ $section = $htmlSection;
+ $section = str_replace("{image}", $imageMiddleIntent, $section);
+ $section = str_replace("{height}", $sectionHeight, $section);
+ $thermometer = $section . $thermometer;
+ }
+
+ // goal
+ $sectionHeight = $height- $totalHeight;
+ if ( $sectionHeight > 0 )
+ {
+ $section = $htmlSection;
+ $section = str_replace("{image}", $imageMiddleGoal, $section);
+ $section = str_replace("{height}", $sectionHeight, $section);
+ $thermometer = $section . $thermometer;
+ }
+
+ // top
+ $thermometer = $htmlThermTop . $thermometer;
+
+ return $thermometer . $htmlLegenda;
+}
+
+?>
+
+
+
diff --git a/htdocs/public/dons/therm.php b/htdocs/public/dons/therm.php
index 567477f11b8..d3196f70fa6 100644
--- a/htdocs/public/dons/therm.php
+++ b/htdocs/public/dons/therm.php
@@ -19,53 +19,25 @@
* $Source$
*/
-$thermlib = "/var/www/www.eucd.info/htdocs/thermometer.php";
+$thermlib = "../../lib/thermometer.php";
if (file_exists ($thermlib))
{
include($thermlib);
- $posten_file = "/var/www/www.eucd.info/htdocs/posten.txt";
- $totaal_file = "/var/www/www.eucd.info/htdocs/totaal.txt";
-
-
/*
* Read Values
*/
- if (file_exists ($posten_file))
- {
- if (file_exists ($totaal_file))
- {
+ $conf = new Conf();
+ $db = new Db();
+ $don = new Don($db);
- /* lees posten uit file */
- $fp = fopen($posten_file, 'r' );
-
-
- if ($fp)
- {
- $post_donaties = fgets( $fp, 10 );
- $post_sponsoring = fgets( $fp, 10 );
- $post_intent = fgets( $fp, 10 );
- fclose( $fp );
- }
-
- /* lees posten uit file */
- $fp = fopen( $totaal_file, 'r' );
- if ($fp)
- {
- $totaal_ontvangen = fgets( $fp, 10 );
- $totaal_pending = fgets( $fp, 10 );
- fclose( $fp );
- }
- }
- }
-
- /*
- * Graph thermometer
- */
+ $actualValue = $don->sum_actual();
+ $pendingValue = $don->sum_pending();
+ $intentValue = $don->sum_intent();
+
+ print moneyMeter($actualValue, $pendingValue, $intentValue);
- print moneyMeter($totaal_ontvangen+$post_donaties+$post_sponsoring, $totaal_pending, $post_intent);
}
-
?>