From 2c61c852d862631dffbaecc38505026055506a10 Mon Sep 17 00:00:00 2001
From: isaack <isaack0815@gmail.com>
Date: Sun, 3 Dec 2017 17:16:04 +0100
Subject: [PATCH] funktion bilanz()

Die Bilanz wurde jetzt so ausgebaut, das man diese mehr einsehen kann.
Man kann jetzt Gruppen erstellen lassen und in den Gruppen einzelne
Posten. So kann man ganz genau erkennen, was und wo und wie ausgegeben
und eingenommen wird.
---
 CHANGELOG                                     |   9 ++
 README.MD                                     |   3 +-
 adminforce/content/bilanzsystem.php           |  99 +++++++++++++----
 .../content/interfacedaten/menue_admin.php    |   2 +-
 adminforce/css/dachboard.css                  | 105 ++++++++++++++++++
 adminforce/index.php                          |  26 +++--
 install/mysql.txt                             |  19 +++-
 lib/functions.lib.php                         |  27 +++--
 topframe_forced.php                           |   2 +-
 topframe_text.php                             |   1 +
 10 files changed, 243 insertions(+), 50 deletions(-)
 create mode 100644 adminforce/css/dachboard.css

diff --git a/CHANGELOG b/CHANGELOG
index 0356cad..b69e81c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,14 @@
 # Was alles passiert
 
+## [0.0.3] - 03.12.2017
+## hinzugefügt
+- Bilanzfunktion erweitert und Bilanz ausgebaut
+- weitere Deignanpassung an Bootstrap im Adminbereich und Userbereich
+- kleine Bugs beseitig
+
+## gelöscht
+- Adscan wurde aus dem System genommen
+
 ## [0.0.2] - 02.12.2017
 ### hinzugefügt
 - die Funktion pw_erstellen wurde hinzugefügt.
diff --git a/README.MD b/README.MD
index 09628b2..4bd3139 100644
--- a/README.MD
+++ b/README.MD
@@ -7,4 +7,5 @@
 # Neuerungen:
 - wegfall und zusammenschluss der Funktionen kontobuchung und buchungsliste
 - Bootstrap eingeführt
-- Adminbereich um Seiteninformationen erweitert
\ No newline at end of file
+- Adminbereich um Seiteninformationen erweitert
+- Erweiterte Bilanz mit Gruppen und einzelnen Spoitionen
\ No newline at end of file
diff --git a/adminforce/content/bilanzsystem.php b/adminforce/content/bilanzsystem.php
index a097143..f04d158 100644
--- a/adminforce/content/bilanzsystem.php
+++ b/adminforce/content/bilanzsystem.php
@@ -3,25 +3,80 @@ head("Bilanzsystem");
     echo 'Hier eine übersicht über die Einnahmen und Ausgaben der Seite';
 foot();
 
-head("Letzten 14 Tage");
-    echo '<table border="0" width="100%">
-    <tr>
-        <td align="center">Datum</td>
-        <td align="center">Einnahmen</td>
-        <td align="center">Ausgaben</td>
-        <td align="center">Bilanz</td>
-    </tr>';
-
-    $sql = db_query("SELECT ein,aus,date FROM ".$db_prefix."_bilanz ORDER BY date DESC");
-    while ($bilanz = mysqli_fetch_assoc($sql)){
-          echo '
-          <tr>
-              <td align="center">'.date("d.m.Y",$bilanz['date']).'</td>
-              <td align="center">'.$bilanz['ein'].'</td>
-              <td align="center">'.$bilanz['aus'].'</td>
-              <td align="center">'.round($bilanz['ein']-$bilanz['aus'],2).'
-          </tr>
-          ';
-    }
-    echo '</table>';
-foot();
\ No newline at end of file
+	$aus = '';
+	$gruppe = '';
+	$tag = '';
+	$da = db_query("SELECT datum FROM ". $db_prefix ."_bilanz GROUP BY datum ORDER BY datum ASC ");
+	while($d = mysqli_fetch_array($da)){
+		
+		$saldo_tag = 0;
+		$g_d = db_query("SELECT gruppe FROM ". $db_prefix ."_bilanz WHERE datum = '". $d['datum'] ."' GROUP BY gruppe");
+		while($g = mysqli_fetch_array($g_d)){
+			$gruppe = '
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						<h3 class="panel-title">'. $g['gruppe'] .'</h3>
+					</div>
+					<div class="panel-body">
+						<table class="table table-hover">
+							<tr>
+								<th>Typ</th>
+								<th>Einnahmen</th>
+								<th>Ausgaben</th>
+							</tr>
+			';
+			$saldo = 0;
+			$b_g = db_query("SELECT * FROM ". $db_prefix ."_bilanz WHERE gruppe = '". $g['gruppe'] ."' AND datum = '". $d['datum'] ."' ");
+			while($b = mysqli_fetch_array($b_g)){
+				if($b['ein'] < $b['aus']){
+					$class = 'alert alert-danger';
+					$saldo_plus += $b['ein'];
+					$saldo_minus += $b['aus'];
+				}else{
+					$class = 'alert alert-success';
+					$saldo_plus += $b['ein'];
+					$saldo_minus += $b['aus'];
+				}
+				$saldo = $saldo_tag+$b['ein']-$b['aus'];
+				$saldo_tag = $saldo_tag+$b['ein']-$b['aus'];
+				
+				$gruppe .= '
+							<tr class="'. $class .'">
+								<td>'. $b['name'] .'</td>
+								<td>'. $b['ein'] .'</td>
+								<td>'. $b['aus'] .'</td>
+							</tr>
+				';
+			}
+			$gruppe .= '
+						</table>
+						Gewinn/Verlust: '. number_format($saldo,0,',','.') .'
+					</div>
+				</div>
+			';
+			$tag .= $gruppe;
+		}
+		$tag .= 'Tagessaldo:'. number_format($saldo_tag,0,',','.');
+		if($saldo_tag >= 0){ $farbe_tag = 'alert alert-success';}else{ $class = 'alert alert-danger';}
+		$aus .= '
+			<div class="panel-group '. $farbe_tag .'" id="accordion" role="tablist" aria-multiselectable="true">
+				<div class="panel panel-default">
+					<div class="panel-heading" role="tab" id="'. $d['datum'] .'">
+						<h4 class="panel-title">
+							<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse'. $d['datum'] .'" aria-expanded="false" aria-controls"collapse'. $d['datum'] .'">
+								'. date("d.m.Y", $d['datum']) .' || Tagessaldo: '. number_format($saldo_tag,0,',','.').'
+							</a>
+						</h4>
+					</div>
+					<div id="collapse'. $d['datum'] .'" class="panel-collapse collapse" role="tabpanel" aria-labelledby="'. $d['datum'] .'">
+						<div class="panel-body">';
+		$aus .= $tag.'	
+						</div>
+					</div>
+				</div>
+			</div>
+		';
+	}
+	
+	echo $aus;
+?>
diff --git a/adminforce/content/interfacedaten/menue_admin.php b/adminforce/content/interfacedaten/menue_admin.php
index adb7a16..05500dc 100644
--- a/adminforce/content/interfacedaten/menue_admin.php
+++ b/adminforce/content/interfacedaten/menue_admin.php
@@ -99,7 +99,7 @@
 										}
 								echo '</select>
 								</td>
-								<td><input type="submit" name="admin_link_bearbeiten" value="Bearbeiten">&nbsp;&nbsp;<input type="submit" name="admin_link_loschen" value="L&ouml;schen"></td>
+								<td><button type="submit" name="admin_link_bearbeiten" class="btn btn-success glyphicon glyphicon-ok-circle"></button>&nbsp;&nbsp;<button type="submit" name="admin_link_loschen" class="btn btn-danger glyphicon glyphicon-plus-sign"></button></td>
 							</tr>
 						</form>';
 				}
diff --git a/adminforce/css/dachboard.css b/adminforce/css/dachboard.css
new file mode 100644
index 0000000..98e6f5a
--- /dev/null
+++ b/adminforce/css/dachboard.css
@@ -0,0 +1,105 @@
+/*
+ * Base structure
+ */
+
+/* Move down content because we have a fixed navbar that is 50px tall */
+body {
+  padding-top: 50px;
+}
+
+
+/*
+ * Global add-ons
+ */
+
+.sub-header {
+  padding-bottom: 10px;
+  border-bottom: 1px solid #eee;
+}
+
+/*
+ * Top navigation
+ * Hide default border to remove 1px line.
+ */
+.navbar-fixed-top {
+  border: 0;
+}
+
+/*
+ * Sidebar
+ */
+
+/* Hide for mobile, show later */
+.sidebar {
+  display: none;
+}
+@media (min-width: 768px) {
+  .sidebar {
+    position: fixed;
+    top: 51px;
+    bottom: 0;
+    left: 0;
+    z-index: 1000;
+    display: block;
+    padding: 20px;
+    overflow-x: hidden;
+    overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
+    background-color: #f5f5f5;
+    border-right: 1px solid #eee;
+  }
+}
+
+/* Sidebar navigation */
+.nav-sidebar {
+  margin-right: -21px; /* 20px padding + 1px border */
+  margin-bottom: 20px;
+  margin-left: -20px;
+}
+.nav-sidebar > li > a {
+  padding-right: 20px;
+  padding-left: 20px;
+}
+.nav-sidebar > .active > a,
+.nav-sidebar > .active > a:hover,
+.nav-sidebar > .active > a:focus {
+  color: #fff;
+  background-color: #428bca;
+}
+
+
+/*
+ * Main content
+ */
+
+.main {
+  padding: 20px;
+}
+@media (min-width: 768px) {
+  .main {
+    padding-right: 40px;
+    padding-left: 40px;
+  }
+}
+.main .page-header {
+  margin-top: 0;
+}
+
+
+/*
+ * Placeholder dashboard ideas
+ */
+
+.placeholders {
+  margin-bottom: 30px;
+  text-align: center;
+}
+.placeholders h4 {
+  margin-bottom: 0;
+}
+.placeholder {
+  margin-bottom: 20px;
+}
+.placeholder img {
+  display: inline-block;
+  border-radius: 50%;
+}
\ No newline at end of file
diff --git a/adminforce/index.php b/adminforce/index.php
index 6807f42..4d1dbe7 100644
--- a/adminforce/index.php
+++ b/adminforce/index.php
@@ -57,6 +57,7 @@ if (!ini_get('display_errors')) {
         <meta name="Description" content="Verdien was Du willst">
         <meta name="Robots" content="INDEX,FOLLOW">
         <link href="../css/bootstrap.min.css" rel="stylesheet"> 
+        <link href="css/dachboard.css" rel="stylesheet"> 
 		<link href="../js/multibox.css" rel="stylesheet" type="text/css" />
 		<script src="//cdn.ckeditor.com/4.4.7/full/ckeditor.js"></script>
 		<script type="text/javascript" src="../js/mootools.js"></script>
@@ -72,19 +73,19 @@ if (!ini_get('display_errors')) {
     <noscript><div style="font: 10pt Arial; color: #ff0000; text-align: center;">Um <b>alle Funktionen des Adminforce</b> nutzen zu k&ouml;nnen, bitte <b>JavaScript aktivieren</b>!</div></noscript>
 	
 	<nav class="navbar navbar-inverse navbar-fixed-top">
-		<div class="container">
+		<div class="container-fluid">
 			<div class="navbar-header">
-				<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+				<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="true" aria-controls="navbar">
 					<span class="sr-only">Navigation ein-/ausblenden</span>
 					<span class="icon-bar"></span>
 					<span class="icon-bar"></span>
 					<span class="icon-bar"></span>
 				</button>
-				<a class="navbar-brand" href="#">Adminforce</a>
+				<a class="navbar-brand" href="<?php echo $domain.'/adminforce';?>">..:: Adminforce ::..</a>
 			</div>
 			<div id="navbar" class="navbar-collapse collapse">
-				<ul class="nav navbar-nav">
-				<?php if(!isset($_SESSION['admin']) && $_SESSION['admin'] != 1){?>
+				<ul class="nav navbar-nav navbar-right">
+					<?php if(!isset($_SESSION['admin']) && $_SESSION['admin'] != 1){?>
 					<li class="dropdown">
 						<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Login <span class="caret"></span></a>
 						<ul class="dropdown-menu">
@@ -104,16 +105,19 @@ if (!ini_get('display_errors')) {
 					</li>
 					<?php } ?>
 				</ul>
-			</div><!--/.nav-collapse -->
+				<form class="navbar-form navbar-right">
+					<input type="text" class="form-control" placeholder="Suchen...">
+				</form>
+			</div>
 		</div>
     </nav>
-	<br><br><br><br>
-	<div class="container theme-showcase" role="main">
+	
+	<div class="container-fluid">
 		<div class="row">
-			<div class="col-md-3">
-				 <?php if($_SESSION['admin'] == 1) require_once('lib/menue_links.php');?>
+			<div class="col-sm-3 col-md-2 sidebar">
+				<?php if($_SESSION['admin'] == 1) require_once('lib/menue_links.php');?>	
 			</div>
-			<div class="col-md-9">
+			<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
 				<div class="jumbotron">
 					<?php 
 					if(!empty($meldung)){
diff --git a/install/mysql.txt b/install/mysql.txt
index 2db0917..1263b62 100644
--- a/install/mysql.txt
+++ b/install/mysql.txt
@@ -16,11 +16,20 @@ CREATE TABLE IF NOT EXISTS `vms_bettel_buchung` (
   `zeit` int(11) NOT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-CREATE TABLE IF NOT EXISTS `vms_bilanz` (
-  `date` int(10) NOT NULL,
-  `ein` double(15,2) NOT NULL,
-  `aus` double(15,2) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+CREATE TABLE `vms_bilanz` (
+  `id` int(11) NOT NULL,
+  `datum` int(11) NOT NULL,
+  `ein` double(100,2) NOT NULL,
+  `aus` double(100,2) NOT NULL,
+  `gruppe` text NOT NULL,
+  `name` text NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+ALTER TABLE `vms_bilanz`
+  ADD PRIMARY KEY (`id`);
+
+ALTER TABLE `vms_bilanz`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
 
 CREATE TABLE IF NOT EXISTS `vms_box_admin` (
 `id` int(11) NOT NULL,
diff --git a/lib/functions.lib.php b/lib/functions.lib.php
index c2ee76a..63648e3 100644
--- a/lib/functions.lib.php
+++ b/lib/functions.lib.php
@@ -163,21 +163,30 @@ function rallysystem ($uid,$was,$anzahl) {
 /**
  * bilanz()
  *
- * @author designerscripte.net
+ * @author vms1-scripte.de
  * @category system
- * @version 2.5.0
- * @example bilanz(100,0);
+ * @example bilanz(100,0,Spiele,Slotname);
  * @param number $ein einnahme
  * @param number $aus ausgabe
+ * @param number $gruppe Die Gruppe in die die Bilanz fallen soll
+ * @param number $was Der Name der in der Gruppe angezeigt werden soll
  * @return keine
  */
-function bilanz ($ein, $aus) {
+function bilanz ($ein,$aus,$gruppe,$name) {
     global $db_prefix,$sql_open;
-    $ein = round($ein, 2);
-    $aus = round($aus, 2);
-    $date_stamp = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
-    mysqli_query($sql_open,'UPDATE ' . $db_prefix . '_bilanz SET ein=ein+"' . $ein . '", aus=aus+"' . $aus . '" WHERE date=' . $date_stamp . ' LIMIT 1');
-    if (mysqli_affected_rows() == 0) db_query('INSERT INTO ' . $db_prefix . '_bilanz (ein,aus,date) VALUES ("' . $ein . '","' . $aus . '",' . $date_stamp . ')');
+    if(empty($ein)){ $ein = 0;}
+	if(empty($aus)){ $aus = 0;}
+	
+	$datum = mktime(0,0,0,date("m",time()),date("d",time()),date("Y",time()));
+	
+	$ab = db_query("SELECT id FROM ". $db_prefix ."_bilanz WHERE datum = '". $datum ."' AND name = '". $name ."' ");
+	if(mysqli_num_rows($ab) == 0){
+		db_query("INSERT INTO ". $db_prefix ."_bilanz (ein,aus,datum,gruppe,name) VALUES ('". $ein ."', '". $aus ."', '". $datum ."', '". $gruppe ."', '". $name ."') ");
+	}else{
+		$id = mysqli_fetch_array($ab);
+		db_query("UPDATE ". $db_prefix ."_bilanz SET aus = aus+". $aus .", ein = ein+". $ein ." WHERE id = '". $id['id'] ."' ");
+	}
+	echo mysqli_error($sql_open);
 }
 
 
diff --git a/topframe_forced.php b/topframe_forced.php
index 912e2ac..54ad7d9 100644
--- a/topframe_forced.php
+++ b/topframe_forced.php
@@ -47,7 +47,7 @@ if ($_GET['auszahlen'] == 'true' && $force_error != 'true' && $_GET['puk'] == md
     kontobuchung ('+', $forced['verdienst'], create_code(14), $_SESSION['uid'], 1, 'Forcedbannerverdienst');
 	refumsatz ($forced['verdienst'], $_SESSION['uid']);
     rallysystem ($_SESSION['uid'], '1', $forced['verdienst']);
-    bilanz($forced['preis'], $forced['verdienst']);
+    bilanz($forced['preis'], $forced['verdienst'],'Werbebereich','Forcedbannerklick');
     $new_reload = time() + $forced['reload'];
     db_query("INSERT INTO " . $db_prefix . "_reloads (ip,uid,tan,bis) VALUES ('" . $ip . "'," . $_SESSION['uid'] . ",'" . $forced['tan'] . "'," . $new_reload . ")");
     db_query("UPDATE " . $db_prefix . "_gebuchte_werbung SET menge = menge - 1 WHERE tan='" . $_GET['tan'] . "'");
diff --git a/topframe_text.php b/topframe_text.php
index 2cc5787..3c60b4c 100644
--- a/topframe_text.php
+++ b/topframe_text.php
@@ -41,6 +41,7 @@ if ($_SESSION['uid'] >= 1) {
 kontobuchung ('+', $text['verdienst'], create_code(14), $_SESSION['uid'], 1, 'Textlinkklickverdienst');
 refumsatz ($text['verdienst'],$_SESSION['uid']);
 aktivralley ($text['verdienst'],$_SESSION['uid']);
+bilanz($text['preis'], $text['verdienst'],'Werbebereich','Textlinkklick');
 klickralley ();
 $new_reload = time()+$text['reload'];
 db_query("INSERT INTO ".$db_prefix."_reloads (ip,uid,tan,bis) VALUES ('".$ip."','".$_SESSION['uid']."','".$text['tan']."','".$new_reload."')");
-- 
GitLab