Переглянути джерело

Atkualizacja tabel statystycznych sprzedaży (see #71)

Piotr Labudda 11 роки тому
батько
коміт
4e91d06597

+ 396 - 0
SE/superedit-RECOUNT_STATS_BILLS_FVAT_POS.php

@@ -0,0 +1,396 @@
+<?php
+
+
+function RECOUNT_STATS_BILLS_FVAT_POS() {
+
+	$db = DB::getDB();
+	if (!$db) {
+		echo '<div class="alert alert-danger">' . "Database Error" . '</div>';
+		return;
+	}
+
+	$sqlList = array();
+
+	?>
+<div class="jumbotron">
+  <div class="container">
+		<form class="form-inline" method="POST">
+			<input type="hidden" name="task" value="update_year" />
+			<label for="update_year">Aktualizuj dane dla roku:</label>
+			<div class="input-group date" id="fldUpdateYear">
+				<input type="text" name="update_year" class="form-control" value="" />
+				<span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span>
+			</div>
+			<button type="submit" id="fldUpdateYearBtn" class="btn btn-primary" autocomplete="off">
+				Aktualizuj
+			</button>
+		</form>
+<!--
+		<div class="pull-right">
+			<form class="form-inline" method="POST">
+				<input type="hidden" name="task" value="rebuild_table" />
+				<input type="hidden" name="rebuild_table" value="1" />
+				<input type="submit" class="btn btn-default" value="Odbuduj tabelę" />
+			</form>
+		</div>
+-->
+	</div>
+</div>
+<script type="text/javascript">
+jQuery(document).ready(function () {
+  jQuery('#fldUpdateYearBtn').on('click', function () {
+    jQuery(this).text(jQuery(this).text() + '...').attr('disabled', 'disabled');
+		jQuery(this).parent().submit();
+  })
+
+	jQuery("#fldUpdateYear").datetimepicker({
+		format: "YYYY",
+		defaultDate: new Date(<?php echo date("Y"); ?>, 0, 1),
+		minDate: new Date(2014, 0, 1),
+		// maxDate: "<?php echo date("Y"); ?>"
+	});
+});
+</script>
+	<?php
+
+
+	$task = V::get('task', '', $_REQUEST);
+	if ('update_year' == $task || 'rebuild_table' == $task) {
+		$args = array();
+		$args['rebuild_table'] = ('1' != V::get('rebuild_table', '', $_REQUEST));
+		$args['update_year'] = V::get('update_year', '', $_REQUEST, 'int');
+
+		$sql_date_filter = date('Y');
+
+		if (!$args['rebuild_table']) {
+			$sqlList[] = "DROP TABLE `stats_BILLS_FVAT_POS`; ";
+
+			$sqlList[] = "CREATE TABLE IF NOT EXISTS `stats_BILLS_FVAT_POS` (
+					`ID` int(11) NOT NULL,
+					`ID_BILLING_USERS` int(11) NOT NULL,
+					`A_ADM_COMPANY` varchar(64) NOT NULL DEFAULT '',
+					`id_owner` int(11) NOT NULL,
+					`MONTH` date NOT NULL,
+					`ID_SERVICES` int(11) NOT NULL DEFAULT '0',
+					`ID_DEALS_TABLE` int(11) NOT NULL DEFAULT '0',
+					`INCOME` decimal(10,2) NOT NULL DEFAULT '0.00',
+					`P_OFFER_COSTS` decimal(10,2) NOT NULL DEFAULT '0.00',
+					`P_OFFER_ZYSK` decimal(10,2) NOT NULL DEFAULT '0.00',
+					`ID_OFFERS` int(11) NOT NULL DEFAULT '0',
+					`S_ADDRESS_STREET` varchar(32) NOT NULL DEFAULT '',
+					`T_TELBOX_BUILDING_IN` varchar(16) NOT NULL DEFAULT '',
+					`P_OSIEDLE` varchar(64) NOT NULL DEFAULT '',
+					`M_REWIR` varchar(255) NOT NULL DEFAULT '',
+					`NAME_LIST_SERVICES` varchar(16) NOT NULL DEFAULT '',
+					`P_SERVICE` varchar(16) NOT NULL DEFAULT '',
+					`P_NET_SPEED` varchar(16) NOT NULL DEFAULT '',
+					`P_NET_GROUP` varchar(32) NOT NULL DEFAULT '',
+					`P_TV_NAME` varchar(64) NOT NULL DEFAULT '',
+					`P_TEL_NAME` varchar(64) NOT NULL DEFAULT '',
+					`FVAT_POS_DESCR` varchar(64) NOT NULL DEFAULT '',
+					KEY `MONTH` (`MONTH`)
+				) ENGINE=MyISAM DEFAULT CHARSET=latin2;
+			";
+
+			$sqlList[] = "TRUNCATE TABLE `stats_BILLS_FVAT_POS`; ";
+		}
+
+		if ($args['update_year']) {
+			$sql_date_filter = $args['update_year'];
+			$sqlList[] = "delete from `stats_BILLS_FVAT_POS` where `MONTH` like '{$sql_date_filter}-%' ; ";
+		}
+
+		//			--	DATE_FORMAT(f.`DATE_FROM`,'%Y-%m-00')
+		//			--	(f.`DATE_FROM` like '{$sql_date_filter}-%')
+		$sqlList[] = "insert into `SES_USERS2`.`stats_BILLS_FVAT_POS`
+			(`ID`, `ID_SERVICES`, `MONTH`, `INCOME`, `ID_OFFERS`
+				, `ID_BILLING_USERS`, `id_owner`
+				, `FVAT_POS_DESCR`
+			)
+			select f.`ID`, f.`ID_SERVICES`, DATE_FORMAT(fv.`BILL_DATE`,'%Y-%m-00'), f.`PRICE` * f.`AMMOUNT`, f.`ID_OFFERS`
+				, fv.`ID_BILLING_USERS`, fv.`id_owner`
+				, f.`DESCR`
+			from `billing2013`.`BILLS_FVAT_POS` as f, `billing2013`.`BILLS_FVAT` as fv
+			where
+				(fv.`BILL_DATE` like '{$sql_date_filter}-%')
+				and f.`ID_BILLS_FVAT`=fv.`ID`
+		";
+
+		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `SERVICES` as s
+			set
+				f.`S_ADDRESS_STREET`=s.`S_ADDRESS_STREET`
+				, f.`NAME_LIST_SERVICES`=s.`NAME_LIST_SERVICES`
+				, f.`ID_DEALS_TABLE`=s.`ID_DEALS_TABLE`
+			where s.`ID`=f.`ID_SERVICES`
+				and f.`ID_SERVICES`>0
+		";
+
+		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `DEALS_TABLE` as d
+			set
+				f.`S_ADDRESS_STREET`=d.`S_ADDRESS_STREET`
+			where d.`ID`=f.`ID_DEALS_TABLE`
+				and f.`S_ADDRESS_STREET`=''
+		";
+
+		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `USERS2_MARKETING` as m, `BUILDINGS` as b
+			set
+				f.`T_TELBOX_BUILDING_IN`=m.`T_TELBOX_BUILDING_IN`
+				, f.`M_REWIR`=b.`M_REWIR`
+				, f.`P_OSIEDLE`=IF(b.`P_OSIEDLE`!=''
+					, CONCAT(b.`S_ADDRESS_CITY`, ' - ', b.`P_OSIEDLE`)
+					, b.`S_ADDRESS_CITY`
+				)
+			where m.`S_ADDRESS_STREET`=f.`S_ADDRESS_STREET`
+				and b.`S_ADDRESS_STREET`=m.`T_TELBOX_BUILDING_IN`
+				and f.`S_ADDRESS_STREET`!=''
+		";
+
+		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `USERS2_OFFERS` as o, `USERS2_OFFERS_COSTS_GROUPS` as c
+			set
+				f.`P_SERVICE`=IF(o.`P_SERVICE`='OPCJE'
+					, concat(o.`P_SERVICE`, '_', o.`P_SERVICE_PARENT`)
+					, o.`P_SERVICE`
+				)
+				, f.`P_NET_SPEED`=IF(o.`P_SERVICE` in('NET')
+					, o.`P_S_PARAM1`
+					, '')
+				, f.`P_TV_NAME`=IF(o.`P_SERVICE` in('TV','TVC','TVCP')
+					, o.`P_SERVICE_NAME`
+					, '')
+				, f.`P_TEL_NAME`=IF(o.`P_SERVICE` in('TEL')
+					, o.`P_SERVICE_NAME`
+					, '')
+				, f.`P_OFFER_COSTS`=c.`P_OFFER_COSTS`
+			where o.`ID`=f.`ID_OFFERS`
+				and c.`ID`=o.`ID_COSTS_GROUPS`
+				and f.`ID_OFFERS`>0
+		";
+
+		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `USERS2_OFFERS` as o, `USERS2_PRODUKT` as p
+			set
+				f.`P_NET_GROUP`=p.`P_NAME`
+			where o.`ID`=f.`ID_OFFERS`
+				and p.`ID`=o.`ID_PRODUKT`
+				and f.`ID_OFFERS`>0
+				and o.`ID_PRODUKT`>0
+				and o.`P_SERVICE`='NET'
+		";
+
+		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f
+			set
+				f.`P_OFFER_ZYSK`=f.`INCOME` - f.`P_OFFER_COSTS`
+		";
+
+		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f
+				join `COMPANIES` as c on(c.`ID`=f.`ID_BILLING_USERS`)
+			set
+				f.`A_ADM_COMPANY`=c.`A_ADM_COMPANY`
+		";
+	}
+	else if ('FVAT_POS_CHARTS' == $task) {
+		$DBG = V::get('DBG', '', $_REQUEST);
+
+		$args = array();
+		$args['MONTH'] = V::get('MONTH', '', $_REQUEST);
+		$args['id_owner'] = V::get('id_owner', '', $_REQUEST);
+		$args['P_SERVICE'] = V::get('P_SERVICE', '', $_REQUEST);
+
+		$db = DB::getDB();
+
+		$chart = new stdClass();
+		$chart->select = array();
+		$chart->groupBy = array();
+		$chart->osY = '';
+		$chart->osY_values = array();
+		$chart->osX = 'MONTH';
+		$chart->osX_values = array();
+		$chart->osX_range_min = '2013-01-00';
+		$chart->osX_range_max = '2014-05-00';
+
+		$chart->groupBy[] = 'MONTH';
+		$chart->groupBy[] = 'id_owner';
+		$chart->groupBy[] = 'P_SERVICE';
+		$chart->select['cnt'] = 'count(1)';
+		$chart->select['sum_INCOME'] = 'sum(`INCOME`)';
+
+		$sql_select = array();
+		foreach ($chart->select as $kLabel => $vField) {
+			$sql_select[] = "{$vField} as {$kLabel}";
+		}
+		foreach ($chart->groupBy as $vField) {
+			if (!array_key_exists($vField, $chart->select)) {
+				$sql_select[] = "{$vField} as {$vField}";
+			}
+		}
+		$sql_select = implode(',', $sql_select);
+		$sql_group_by = implode(',', $chart->groupBy);
+
+		$chart->data = array();
+
+		$sql = "select {$sql_select}
+			from `stats_BILLS_FVAT_POS`
+			where `{$chart->osX}` between '{$chart->osX_range_min}' and '{$chart->osX_range_max}'
+			group by {$sql_group_by}
+		";
+		if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
+		$res = $db->query($sql);
+		while ($r = $db->fetch($res)) {
+			if (empty($r->P_SERVICE)) {
+				$r->P_SERVICE = 'Unknown';
+			}
+
+			if (isset($r->MONTH) && substr($r->MONTH, -3) == '-00') {
+				$r->MONTH = substr($r->MONTH, 0, -3);
+			}
+
+			$r->cnt = (int)$r->cnt;
+			$r->sum_INCOME = (double)$r->sum_INCOME;
+
+			$chart->data[] = $r;
+
+			foreach ($chart->groupBy as $vField) {
+				if ($vField == $chart->osX) {
+					$chart->osX_values[$r->{$chart->osX}] = true;
+				}
+				else if (!array_key_exists($vField, $chart->select)) {
+					$chart->osY_values[$vField][$r->{$vField}] = true;
+				}
+			}
+		}
+
+		foreach ($chart->osY_values as $k => $v) {
+			$chart->osY_values[$k] = array_keys($v);
+			sort($chart->osY_values[$k]);
+		}
+		$chart->osX_values = array_keys($chart->osX_values);
+		sort($chart->osX_values);
+
+		if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$chart->data (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($chart->data);echo'</pre>';}
+		if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$chart->osY_values (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($chart->osY_values);echo'</pre>';}
+
+		?>
+    <script src="stuff/RGraph/libraries/RGraph.common.core.js"></script>
+    <script src="stuff/RGraph/libraries/RGraph.common.dynamic.js"></script>
+    <script src="stuff/RGraph/libraries/RGraph.common.key.js"></script>
+    <script src="stuff/RGraph/libraries/RGraph.drawing.rect.js"></script>
+    <script src="stuff/RGraph/libraries/RGraph.bar.js"></script>
+    <script src="stuff/RGraph/libraries/RGraph.line.js"></script>
+
+		<canvas id="chart-canvas" width="800" height="500" style="float:left; margin:0 20px; border:1px solid #666;">[No canvas support]</canvas>
+		<form action="" method="post" id="chart-frm">
+			<div class="chart-frm-cnt">
+			</div>
+			<button id="chart-frm-btn" class="btn btn-primary">Rysuj wykres</button>
+		</form>
+    <script>
+			var frm = jQuery('#chart-frm')
+				, frmCnt = frm.find('.chart-frm-cnt')
+				, chart_data = <?php echo json_encode($chart->data); ?>
+				, chart_select = <?php echo json_encode($chart->select); ?>
+				, chart_groupBy = <?php echo json_encode($chart->groupBy); ?>
+				, chart_osX = <?php echo json_encode($chart->osX); ?>
+				, chart_osX_values = <?php echo json_encode($chart->osX_values); ?>
+				, chart_values = <?php echo json_encode($chart->osY_values); ?>;
+
+			for (var i in chart_values) {
+				var selWrap = jQuery('<div></div>');
+				jQuery('<label for="' + chart_values[i][j] + '">' + i + ': </label>').appendTo(selWrap);
+				var sel = jQuery('<select name="' + i + '"></select>').appendTo(selWrap);
+				sel.append('<option value="' + "all" + '">' + "dowolne" + '</select>');
+				for (var j in chart_values[i]) {
+					sel.append('<option value="' + chart_values[i][j] + '">' + chart_values[i][j] + '</select>');
+				}
+				selWrap.appendTo(frmCnt);
+			}
+			var selWrap = jQuery('<div></div>');
+			jQuery('<label for="chart_select">Wartość: </label>').appendTo(selWrap);
+			var sel = jQuery('<select name="chart_select"></select>').appendTo(selWrap);
+			for (var i in chart_select) {
+				sel.append('<option value="' + i + '">' + i + ': ' + chart_select[i] + '</select>');
+			}
+			selWrap.appendTo(frmCnt);
+
+			jQuery('#chart-frm-btn').on('click', function(evt){
+				var data = []
+					, canvas = document.getElementById('chart-canvas')
+					, frmNode = document.getElementById('chart-frm')
+					, fld_name = jQuery(frmNode['chart_select']).val();
+console.log('chart_data', chart_data);
+				var chart_data_filtered = chart_data.filter(function (item) {
+					for (var i in chart_groupBy) {
+						if (chart_groupBy[i] == chart_osX) continue;
+						var frmVal = jQuery(frmNode[chart_groupBy[i]]).val();
+						if (frmVal == 'all') continue;
+						if (item[chart_groupBy[i]] != frmVal) {
+							return false;
+						}
+					}
+					return true;
+				});
+console.log('chart_data_filtered', chart_data_filtered);
+
+				chart_data_filtered.sort(function(a, b) {
+					if (a[chart_osX] > b[chart_osX]) {
+						return 1;
+					}
+					else if (a[chart_osX] < b[chart_osX]) {
+						return -1;
+					}
+					return 0;
+				});
+
+				var d = chart_data_filtered.shift();
+console.log('chart_data_filtered.shift', d);
+				for (var v in chart_osX_values) {
+					if (!d || d[chart_osX] != chart_osX_values[v]) {
+						data.push(0);
+						continue;
+					}
+					data.push(d[fld_name]);
+					d = chart_data_filtered.shift();
+				}
+
+				RGraph.Clear(canvas);
+				var bar = new RGraph.Bar('chart-canvas', data)
+					.Set('labels', chart_osX_values)
+					.Set('gutter.left', 50)
+					.Set('hmargin', 15)
+					.Set('strokestyle', 'white')
+					.Set('linewidth', 1)
+					.Set('shadow', true)
+					.Set('shadow.color', '#ccc')
+					.Set('shadow.offsetx', 0)
+					.Set('shadow.offsety', 0)
+					.Set('shadow.blur', 10)
+					.Draw();
+				//	.Set('colors', ['Gradient(#99f:#27afe9:#058DC7:#058DC7)', 'Gradient(#94f776:#50B332:#B1E59F)', 'Gradient(#fe783e:#EC561B:#F59F7D)'])
+				return false;
+			});
+    </script>
+		<?php
+		return;
+	}
+	else {
+	}
+
+	if (empty($sqlList)) {
+		return;
+	}
+
+	$errors = false;
+	foreach ($sqlList as $sql) {
+		if(V::get('DBG','',$_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid green;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
+		$res = $db->query($sql);
+		if ($db->has_errors()) {
+			$errors = true;
+			if(V::get('DBG','',$_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;"> (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($db->get_errors());echo'</pre>';}
+		}
+	}
+
+	if ($errors) {
+		echo '<div class="alert alert-danger">' . "Uwaga wystąpiły błędy - w czerwonej ramce" . '</div>';
+	} else {
+		echo '<div class="alert alert-success">' . "Operacje zakończone pomyślnie" . '</div>';
+	}
+
+}

+ 3 - 306
SE/superedit-STATYSTYKA_TABELE.php

@@ -25,315 +25,12 @@ function STATYSTYKA_TABELE() {
 
 	$task = V::get('task', '', $_GET);
 	if ($task == 'FVAT_POS_CHARTS') {
-
-		$DBG = V::get('DBG', '', $_GET);
-
-		$args = array();
-		$args['MONTH'] = V::get('MONTH', '', $_GET);
-		$args['id_owner'] = V::get('id_owner', '', $_GET);
-		$args['P_SERVICE'] = V::get('P_SERVICE', '', $_GET);
-
-		$db = DB::getDB();
-
-		$chart = new stdClass();
-		$chart->select = array();
-		$chart->groupBy = array();
-		$chart->osY = '';
-		$chart->osY_values = array();
-		$chart->osX = 'MONTH';
-		$chart->osX_values = array();
-		$chart->osX_range_min = '2013-01-00';
-		$chart->osX_range_max = '2014-05-00';
-
-		$chart->groupBy[] = 'MONTH';
-		$chart->groupBy[] = 'id_owner';
-		$chart->groupBy[] = 'P_SERVICE';
-		$chart->select['cnt'] = 'count(1)';
-		$chart->select['sum_INCOME'] = 'sum(`INCOME`)';
-
-		$sql_select = array();
-		foreach ($chart->select as $kLabel => $vField) {
-			$sql_select[] = "{$vField} as {$kLabel}";
-		}
-		foreach ($chart->groupBy as $vField) {
-			if (!array_key_exists($vField, $chart->select)) {
-				$sql_select[] = "{$vField} as {$vField}";
-			}
-		}
-		$sql_select = implode(',', $sql_select);
-		$sql_group_by = implode(',', $chart->groupBy);
-
-		$chart->data = array();
-
-		$sql = "select {$sql_select}
-			from `stats_BILLS_FVAT_POS`
-			where `{$chart->osX}` between '{$chart->osX_range_min}' and '{$chart->osX_range_max}'
-			group by {$sql_group_by}
-		";
-		if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
-		$res = $db->query($sql);
-		while ($r = $db->fetch($res)) {
-			if (empty($r->P_SERVICE)) {
-				$r->P_SERVICE = 'Unknown';
-			}
-
-			if (isset($r->MONTH) && substr($r->MONTH, -3) == '-00') {
-				$r->MONTH = substr($r->MONTH, 0, -3);
-			}
-
-			$r->cnt = (int)$r->cnt;
-			$r->sum_INCOME = (double)$r->sum_INCOME;
-
-			$chart->data[] = $r;
-
-			foreach ($chart->groupBy as $vField) {
-				if ($vField == $chart->osX) {
-					$chart->osX_values[$r->{$chart->osX}] = true;
-				}
-				else if (!array_key_exists($vField, $chart->select)) {
-					$chart->osY_values[$vField][$r->{$vField}] = true;
-				}
-			}
-		}
-
-		foreach ($chart->osY_values as $k => $v) {
-			$chart->osY_values[$k] = array_keys($v);
-			sort($chart->osY_values[$k]);
-		}
-		$chart->osX_values = array_keys($chart->osX_values);
-		sort($chart->osX_values);
-
-		if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$chart->data (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($chart->data);echo'</pre>';}
-		if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$chart->osY_values (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($chart->osY_values);echo'</pre>';}
-
-		?>
-    <script src="stuff/RGraph/libraries/RGraph.common.core.js"></script>
-    <script src="stuff/RGraph/libraries/RGraph.common.dynamic.js"></script>
-    <script src="stuff/RGraph/libraries/RGraph.common.key.js"></script>
-    <script src="stuff/RGraph/libraries/RGraph.drawing.rect.js"></script>
-    <script src="stuff/RGraph/libraries/RGraph.bar.js"></script>
-    <script src="stuff/RGraph/libraries/RGraph.line.js"></script>
-
-		<canvas id="chart-canvas" width="800" height="500" style="float:left; margin:0 20px; border:1px solid #666;">[No canvas support]</canvas>
-		<form action="" method="post" id="chart-frm">
-			<div class="chart-frm-cnt">
-			</div>
-			<button id="chart-frm-btn" class="btn btn-primary">Rysuj wykres</button>
-		</form>
-    <script>
-			var frm = jQuery('#chart-frm')
-				, frmCnt = frm.find('.chart-frm-cnt')
-				, chart_data = <?php echo json_encode($chart->data); ?>
-				, chart_select = <?php echo json_encode($chart->select); ?>
-				, chart_groupBy = <?php echo json_encode($chart->groupBy); ?>
-				, chart_osX = <?php echo json_encode($chart->osX); ?>
-				, chart_osX_values = <?php echo json_encode($chart->osX_values); ?>
-				, chart_values = <?php echo json_encode($chart->osY_values); ?>;
-
-			for (var i in chart_values) {
-				var selWrap = jQuery('<div></div>');
-				jQuery('<label for="' + chart_values[i][j] + '">' + i + ': </label>').appendTo(selWrap);
-				var sel = jQuery('<select name="' + i + '"></select>').appendTo(selWrap);
-				sel.append('<option value="' + "all" + '">' + "dowolne" + '</select>');
-				for (var j in chart_values[i]) {
-					sel.append('<option value="' + chart_values[i][j] + '">' + chart_values[i][j] + '</select>');
-				}
-				selWrap.appendTo(frmCnt);
-			}
-			var selWrap = jQuery('<div></div>');
-			jQuery('<label for="chart_select">Wartość: </label>').appendTo(selWrap);
-			var sel = jQuery('<select name="chart_select"></select>').appendTo(selWrap);
-			for (var i in chart_select) {
-				sel.append('<option value="' + i + '">' + i + ': ' + chart_select[i] + '</select>');
-			}
-			selWrap.appendTo(frmCnt);
-
-			jQuery('#chart-frm-btn').on('click', function(evt){
-				var data = []
-					, canvas = document.getElementById('chart-canvas')
-					, frmNode = document.getElementById('chart-frm')
-					, fld_name = jQuery(frmNode['chart_select']).val();
-console.log('chart_data', chart_data);
-				var chart_data_filtered = chart_data.filter(function (item) {
-					for (var i in chart_groupBy) {
-						if (chart_groupBy[i] == chart_osX) continue;
-						var frmVal = jQuery(frmNode[chart_groupBy[i]]).val();
-						if (frmVal == 'all') continue;
-						if (item[chart_groupBy[i]] != frmVal) {
-							return false;
-						}
-					}
-					return true;
-				});
-console.log('chart_data_filtered', chart_data_filtered);
-
-				chart_data_filtered.sort(function(a, b) {
-					if (a[chart_osX] > b[chart_osX]) {
-						return 1;
-					}
-					else if (a[chart_osX] < b[chart_osX]) {
-						return -1;
-					}
-					return 0;
-				});
-
-				var d = chart_data_filtered.shift();
-console.log('chart_data_filtered.shift', d);
-				for (var v in chart_osX_values) {
-					if (!d || d[chart_osX] != chart_osX_values[v]) {
-						data.push(0);
-						continue;
-					}
-					data.push(d[fld_name]);
-					d = chart_data_filtered.shift();
-				}
-
-				RGraph.Clear(canvas);
-				var bar = new RGraph.Bar('chart-canvas', data)
-					.Set('labels', chart_osX_values)
-					.Set('gutter.left', 50)
-					.Set('hmargin', 15)
-					.Set('strokestyle', 'white')
-					.Set('linewidth', 1)
-					.Set('shadow', true)
-					.Set('shadow.color', '#ccc')
-					.Set('shadow.offsetx', 0)
-					.Set('shadow.offsety', 0)
-					.Set('shadow.blur', 10)
-					.Draw();
-				//	.Set('colors', ['Gradient(#99f:#27afe9:#058DC7:#058DC7)', 'Gradient(#94f776:#50B332:#B1E59F)', 'Gradient(#fe783e:#EC561B:#F59F7D)'])
-				return false;
-			});
-    </script>
-		<?php
+		echo "moved to RECOUNT_STATS_BILLS_FVAT_POS";
 		return;
 	}
 	else if ($task == 'FVAT_POS') {
-
-		$args = array();
-		$args['no_clear'] = ('1' == V::get('no_clear', '', $_GET));
-		$args['update_year'] = V::get('update_year', '', $_GET, 'int');
-
-		$sql_date_filter = date('Y');
-
-		if (!$args['no_clear']) {
-			$sqlList[] = "DROP TABLE `stats_BILLS_FVAT_POS`; ";
-
-			$sqlList[] = "CREATE TABLE IF NOT EXISTS `stats_BILLS_FVAT_POS` (
-					`ID` int(11) NOT NULL,
-					`ID_BILLING_USERS` int(11) NOT NULL,
-					`id_owner` int(11) NOT NULL,
-					`MONTH` date NOT NULL,
-					`ID_SERVICES` int(11) NOT NULL DEFAULT '0',
-					`ID_DEALS_TABLE` int(11) NOT NULL DEFAULT '0',
-					`INCOME` decimal(10,2) NOT NULL DEFAULT '0.00',
-					`P_OFFER_COSTS` decimal(10,2) NOT NULL DEFAULT '0.00',
-					`P_OFFER_ZYSK` decimal(10,2) NOT NULL DEFAULT '0.00',
-					`ID_OFFERS` int(11) NOT NULL DEFAULT '0',
-					`S_ADDRESS_STREET` varchar(32) NOT NULL DEFAULT '',
-					`T_TELBOX_BUILDING_IN` varchar(16) NOT NULL DEFAULT '',
-					`P_OSIEDLE` varchar(64) NOT NULL DEFAULT '',
-					`M_REWIR` varchar(255) NOT NULL DEFAULT '',
-					`NAME_LIST_SERVICES` varchar(16) NOT NULL DEFAULT '',
-					`P_SERVICE` varchar(16) NOT NULL DEFAULT '',
-					`P_NET_SPEED` varchar(16) NOT NULL DEFAULT '',
-					`P_NET_GROUP` varchar(32) NOT NULL DEFAULT '',
-					`P_TV_NAME` varchar(64) NOT NULL DEFAULT '',
-					`P_TEL_NAME` varchar(64) NOT NULL DEFAULT '',
-					`FVAT_POS_DESCR` varchar(64) NOT NULL DEFAULT '',
-					KEY `MONTH` (`MONTH`)
-				) ENGINE=MyISAM DEFAULT CHARSET=latin2;
-			";
-
-			$sqlList[] = "TRUNCATE TABLE `stats_BILLS_FVAT_POS`; ";
-		}
-
-		if ($args['update_year']) {
-			$sql_date_filter = $args['update_year'];
-			$sqlList[] = "delete from `stats_BILLS_FVAT_POS` where `MONTH` like '{$sql_date_filter}-%' ; ";
-		}
-
-		//			--	DATE_FORMAT(f.`DATE_FROM`,'%Y-%m-00')
-		//			--	(f.`DATE_FROM` like '{$sql_date_filter}-%')
-		$sqlList[] = "insert into `SES_USERS2`.`stats_BILLS_FVAT_POS`
-			(`ID`, `ID_SERVICES`, `MONTH`, `INCOME`, `ID_OFFERS`
-				, `ID_BILLING_USERS`, `id_owner`
-				, `FVAT_POS_DESCR`
-			)
-			select f.`ID`, f.`ID_SERVICES`, DATE_FORMAT(fv.`BILL_DATE`,'%Y-%m-00'), f.`PRICE` * f.`AMMOUNT`, f.`ID_OFFERS`
-				, fv.`ID_BILLING_USERS`, fv.`id_owner`
-				, f.`DESCR`
-			from `billing2013`.`BILLS_FVAT_POS` as f, `billing2013`.`BILLS_FVAT` as fv
-			where
-				(fv.`BILL_DATE` like '{$sql_date_filter}-%')
-				and f.`ID_BILLS_FVAT`=fv.`ID`
-		";
-
-		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `SERVICES` as s
-			set
-				f.`S_ADDRESS_STREET`=s.`S_ADDRESS_STREET`
-				, f.`NAME_LIST_SERVICES`=s.`NAME_LIST_SERVICES`
-				, f.`ID_DEALS_TABLE`=s.`ID_DEALS_TABLE`
-			where s.`ID`=f.`ID_SERVICES`
-				and f.`ID_SERVICES`>0
-		";
-
-		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `DEALS_TABLE` as d
-			set
-				f.`S_ADDRESS_STREET`=d.`S_ADDRESS_STREET`
-			where d.`ID`=f.`ID_DEALS_TABLE`
-				and f.`S_ADDRESS_STREET`=''
-		";
-
-		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `USERS2_MARKETING` as m, `BUILDINGS` as b
-			set
-				f.`T_TELBOX_BUILDING_IN`=m.`T_TELBOX_BUILDING_IN`
-				, f.`M_REWIR`=b.`M_REWIR`
-				, f.`P_OSIEDLE`=IF(b.`P_OSIEDLE`!=''
-					, CONCAT(b.`S_ADDRESS_CITY`, ' - ', b.`P_OSIEDLE`)
-					, b.`S_ADDRESS_CITY`
-				)
-			where m.`S_ADDRESS_STREET`=f.`S_ADDRESS_STREET`
-				and b.`S_ADDRESS_STREET`=m.`T_TELBOX_BUILDING_IN`
-				and f.`S_ADDRESS_STREET`!=''
-		";
-
-		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `USERS2_OFFERS` as o, `USERS2_OFFERS_COSTS_GROUPS` as c
-			set
-				f.`P_SERVICE`=IF(o.`P_SERVICE`='OPCJE'
-					, concat(o.`P_SERVICE`, '_', o.`P_SERVICE_PARENT`)
-					, o.`P_SERVICE`
-				)
-				, f.`P_NET_SPEED`=IF(o.`P_SERVICE` in('NET')
-					, o.`P_S_PARAM1`
-					, '')
-				, f.`P_TV_NAME`=IF(o.`P_SERVICE` in('TV','TVC','TVCP')
-					, o.`P_SERVICE_NAME`
-					, '')
-				, f.`P_TEL_NAME`=IF(o.`P_SERVICE` in('TEL')
-					, o.`P_SERVICE_NAME`
-					, '')
-				, f.`P_OFFER_COSTS`=c.`P_OFFER_COSTS`
-			where o.`ID`=f.`ID_OFFERS`
-				and c.`ID`=o.`ID_COSTS_GROUPS`
-				and f.`ID_OFFERS`>0
-		";
-
-		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f, `USERS2_OFFERS` as o, `USERS2_PRODUKT` as p
-			set
-				f.`P_NET_GROUP`=p.`P_NAME`
-			where o.`ID`=f.`ID_OFFERS`
-				and p.`ID`=o.`ID_PRODUKT`
-				and f.`ID_OFFERS`>0
-				and o.`ID_PRODUKT`>0
-				and o.`P_SERVICE`='NET'
-		";
-
-		$sqlList[] = "update `stats_BILLS_FVAT_POS` as f
-			set
-				f.`P_OFFER_ZYSK`=f.`INCOME` - f.`P_OFFER_COSTS`
-		";
-
+		echo "moved to RECOUNT_STATS_BILLS_FVAT_POS";
+		return;
 	}
 	else {