Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- function myErrorHandler($errno, $errstr, $errfile, $errline) {
- echo "[$errno] $errstr" . PHP_EOL;
- echo "On line $errline in file $errfile" . PHP_EOL;
- $range = array(
- $errline - 2,
- $errline + 2,
- );
- $source = explode(PHP_EOL, file_get_contents($errfile));
- for ($i = $range[0]; $i <= $range[1]; ++$i) {
- if ($i === count($source)) break;
- if ($i === $errline-1) {
- printf("%d | %s <<<<< Here is the error\n", $i, $source[$i]);
- } else {
- printf("%d | %s \n", $i, $source[$i]);
- }
- }
- }
- set_error_handler('myErrorHandler');
- error_reporting(E_ALL);
- $this->breadcrumbs=array(
- Yii::t('main', 'Statistic'),
- );
- $server="localhost";
- $user=Yii::app()->params['db_user'];
- $password=Yii::app()->params['db_password'];
- $db=Yii::app()->params['db_db'];
- $resultt_wait = false;
- if(isset($conn))mysql_close($conn);
- $conn=mysql_connect($server,$user,$password);
- mysql_select_db($db,$conn);
- mysql_query('SET NAMES "utf8"', $conn);
- $dateto = isset( $_REQUEST['dateto'] ) ? trim( $_REQUEST['dateto'] ) : "";
- $datebefore = isset( $_REQUEST['datebefore'] ) ? trim( $_REQUEST['datebefore'] ) : "";
- $stat_type = isset( $_REQUEST['stat_type'] ) ? trim( $_REQUEST['stat_type'] ) : "show";
- unset( $_SESSION['pub'] );
- ?>
- <center>
- <div class="statistic">
- <center
- <? //print_r("<script>console.log('ololo');</script>"); ?>
- <?php
- //Неизвестно откуда берущиеся параметры!!!!
- if (!isset($_POST['platform'])) $_POST['platform']='all';
- //if (!isset($_POST['platform'])) $_POST['platform']='all';
- if (!isset($_POST['period'])) $_POST['period']='today';
- if (isset($_POST['public'])) $public_hash=$_POST['public'];
- $ph =0;
- $resultt =0;
- $data = array();
- $period = $_POST['period'];
- $wher ="";
- $original = array();
- if(isset($_POST['public'])){
- $pub_hash = explode("_",$_POST['public']);
- if($pub_hash[0] == "all")
- {
- // если выборка по всем журналам ( найдем все номера публикации )
- $ph = $pub_hash[1];
- $res = mysql_query("SELECT FilesList.Original FROM FilesList, android_sales WHERE FilesList.Original = android_sales.Sku_Id AND FilesList.Dir = '$ph'"); // СДЕЛАТЬ ПРОВЕРКУ НА ТО ЧТО Dir ИМЕЕТСЯ В android_sales.Sku_id
- while ($original[] = mysql_fetch_assoc($res));
- $wher = "Sku_Id = '".$original[0]['Original']."'";
- for($i =1; $i< count($original); $i ++){
- $wher .= " OR Sku_Id='".$original[$i]['Original']."'";
- }
- switch($period)
- {
- case 'all':
- //echo "SELECT * FROM android_sales WHERE Transaction_Type ='Charge' AND ($wher)";
- $resultt = mysql_query("SELECT * FROM android_sales WHERE ($wher)",$conn);
- break;
- case 'lastyear':
- $d = date("Y") -1;
- $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND ($wher) ");
- break;
- case 'thisyear':
- $d = date("Y");
- $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND ($wher) ");
- break;
- case 'last6month':
- $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) AND ($wher)");
- //$data = mysql_fetch_assoc($result);
- break;
- case 'lastmonth':
- $d = date("m")-1;
- $y = date("Y");
- if($d == 0){
- $y = date("Y")-1;
- $d ="12";
- }
- $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date) = $y AND MONTH(Transaction_Date)= $d AND ($wher)");
- //$resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) AND ($wher)");
- break;
- case 'thismonth':
- $d = date("m");
- $y = date("Y");
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE MONTH(Order_Charged_Date) = '$d' AND YEAR(Order_Charged_Date) = '$y' AND Financial_Status ='Charged' AND ($wher) ");
- //$data = mysql_fetch_assoc($result);
- break;
- case '30days':
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 30 DAY AND Financial_Status ='Charged' AND ($wher)");
- break;
- case '7days':
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 7 DAY AND Financial_Status ='Charged' AND ($wher)");
- break;
- case 'yesterday':
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 1 DAY AND Financial_Status ='Charged' AND ($wher)");
- //$data = mysql_fetch_assoc($result);
- break;
- case 'today':
- $d = date("Y-m-d");
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date ='$d' AND Financial_Status ='Charged' AND ($wher)");
- //$data = mysql_fetch_assoc($result);
- break;
- case 'interval':
- $datebefore = $_POST["datebefore"];
- $dateto = $_POST["dateto"];
- $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date BETWEEN '$dateto' AND '$datebefore' AND ($wher)");
- break;
- } }else{
- $ph = $_POST['public'];
- switch($period)
- {
- case 'all':
- $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Type ='Charge' AND Sku_Id='$ph'",$conn);
- break;
- case 'lastyear':
- $d = date("Y") -1;
- $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND Transaction_Type ='Charge' AND Sku_Id='$ph'");
- break;
- case 'thisyear':
- $d = date("Y");
- $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND Transaction_Type ='Charge' AND Sku_Id='$ph'");
- break;
- case 'last6month':
- $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) AND Transaction_Type ='Charge' AND Sku_Id='$ph'");
- break;
- case 'lastmonth':
- $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) AND Transaction_Type ='Charge' AND Sku_Id='$ph'");
- break;
- case 'thismonth':
- $d = date("m");
- $y = date("Y");
- $resultt_wait = mysql_query("SELECT * FROM Currency_of_Sale,Charged_Amount * 0.7 ,Order_Charged_Date WHERE MONTH(Order_Charged_Date) = '$d' AND YEAR(Order_Charged_Date) = '$y' AND Financial_Status ='Charged' AND SKU_ID='$ph' ");
- break;
- case '30days':
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 30 DAY AND Financial_Status ='Charged' AND SKU_ID='$ph'");
- break;
- case '7days':
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 7 DAY AND Financial_Status ='Charged' AND SKU_ID='$ph'");
- break;
- case 'yesterday':
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 1 DAY AND Financial_Status ='Charged' AND SKU_ID='$ph'");
- break;
- case 'today':
- $d = date("Y-m-d");
- $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date ='$d' AND Financial_Status ='Charged' AND SKU_ID='$ph'");
- break;
- case 'interval':
- $datebefore = $_POST["datebefore"];
- $dateto = $_POST["dateto"];
- $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date BETWEEN '$dateto' AND '$datebefore' AND Transaction_Type ='Charge' AND Sku_Id='$ph' ");
- break;
- }
- }
- }
- function convertToUSD($dat, $sum, $currency){
- if($currency != "USD" ){
- $result = mysql_query("SELECT * FROM ExchangeRate WHERE Currency='$currency' AND Date='$dat' ");
- $row = mysql_fetch_array($result);
- if($row['Rate'])
- return $sum / $row['Rate'];
- }
- else{
- return $sum;
- }
- }
- if(isset($omg_yet_another_excess_variable_is_hash))
- {
- $current_pub = $omg_yet_another_excess_variable_is_hash;
- $query_select = "SELECT separated FROM Izdan WHERE Hash='".$current_pub."'";
- $result = mysql_query($query_select,$conn)or die("Error: $query_select");
- $is_separated_stat = mysql_fetch_assoc($result);
- $is_separated_stat = (bool)$is_separated_stat['separated'];
- $query_select = "SELECT Izdan.Hash as ihash, Izdan.Name as iname, FilesList.Name as fname, FilesList.Original as fhash FROM Izdan left join FilesList on Izdan.Num=FilesList.Owner WHERE Izdan.Owner='".Yii::app()->user->id."' AND Izdan.Hash='".$current_pub."' AND FilesList.deleted_at IS NULL";
- }
- else
- {
- $query_select = "SELECT Izdan.Hash as ihash, Izdan.Name as iname, FilesList.Name as fname, FilesList.Original as fhash FROM Izdan left join FilesList on Izdan.Num=FilesList.Owner WHERE Izdan.Owner='".Yii::app()->user->id."' AND FilesList.deleted_at IS NULL";
- }
- $result = mysql_query($query_select,$conn)or die("Error: $query_select");
- if (mysql_num_rows($result)>0){
- while ($row = mysql_fetch_assoc($result)){
- $_SESSION['pub'][$row['ihash']][$row['iname']][$row['fhash']] = $row['fname'];
- }
- }
- switch($_POST['platform'])
- {
- case 'ipad/iphone':$pform = " AND LENGTH( UID ) = 32 AND (device like '%iPhone%' OR device like '%iPod%' OR device like '%iPad%')";
- break;
- case 'ipad':$pform = " AND LENGTH( UID ) = 32 AND device like '%iPad%'";
- break;
- case 'iphone':$pform = " AND LENGTH( UID ) = 32 AND (device like '%iPhone%' OR device like '%iPod%')";
- break;
- case 'android':$pform = " AND (LENGTH( UID ) >= 10 AND LENGTH( UID ) < 32)";
- break;
- default :$pform = " AND (LENGTH( UID ) >= 10 AND LENGTH( UID ) <= 32)";
- break;
- }
- $period = isset( $_REQUEST['period'] ) ? $_REQUEST['period'] : 'today';
- switch($period)
- {
- case 'today':
- $fields1 = "COUNT(HOUR(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%H : 00') AS ox, SUM(Price) AS Price";
- $where1 = "(DATE(CRDATE) = DATE(CURDATE()))";
- $group_by1 = "HOUR(CRDATE)";
- $fields2 = "COUNT(HOUR(WDATE)) AS oy, DATE_FORMAT(WDATE, '%H : 00') AS ox, URL";
- $where2 = "(DATE(WDATE) = DATE(CURDATE()))";
- $group_by2 = "HOUR(WDATE)";
- $ws = '';
- $dots = array(date("Y-m-d"),date("Y-m-d", time() + (24 * 60 * 60)));
- $step = 3600;
- break;
- case 'yesterday':
- $fields1 = "COUNT(HOUR(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%H : 00') AS ox, SUM(Price) AS Price";
- $where1 = "(DATE(CRDATE) = SUBDATE(CURDATE(), INTERVAL 1 DAY))";
- $group_by1 = "HOUR(CRDATE)";
- $fields2 = "COUNT(HOUR(WDATE)) AS oy, DATE_FORMAT(WDATE, '%H : 00') AS ox, URL";
- $where2= "(DATE(WDATE) = SUBDATE(CURDATE(), INTERVAL 1 DAY))";
- $group_by2 = "HOUR(WDATE)";
- $ws = '';
- $dots = array(date("Y-m-d", time() - (24 * 60 * 60)),date("Y-m-d"));
- $step = 3600;
- break;
- case '7days':
- $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
- $where1 = "(CRDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 7 DAY) AND CURDATE())";
- $group_by1 = "DAY(CRDATE)";
- $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
- $where2 = "(WDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 7 DAY) AND CURDATE())";
- $group_by2 = "DAY(WDATE)";
- $ws = "( BeginDate BETWEEN SUBDATE(CURDATE(), INTERVAL 7 DAY) AND CURDATE() )";
- $dots = array(date("Y-m-d", time() - (24 * 60 * 60 * 7)), date("Y-m-d", time() - (24 * 60 * 60)));
- $step = 86400;
- break;
- case '30days':
- $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
- $where1 = "(CRDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 30 DAY) AND CURDATE())";
- $group_by1 = "DAY(CRDATE)";
- $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
- $where2 = "(WDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 30 DAY) AND CURDATE())";
- $group_by2 = "DAY(WDATE)";
- $ws = "( BeginDate BETWEEN SUBDATE(CURDATE(), INTERVAL 30 DAY) AND CURDATE() )";
- $dots = array(date("Y-m-d", time() - (24 * 60 * 60 * 30)), date("Y-m-d", time() - (24 * 60 * 60)));
- $step = 86400;
- break;
- case 'thismonth':
- $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
- $where1 = "((YEAR(CURDATE()) = YEAR(CRDATE)) AND (MONTH(CURDATE()) = MONTH(CRDATE)))";
- $group_by1 = "DAY(CRDATE)";
- $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
- $where2 = "((YEAR(CURDATE()) = YEAR(WDATE)) AND (MONTH(CURDATE()) = MONTH(WDATE)))";
- $group_by2 = "DAY(WDATE)";
- $ws = "( ( YEAR(CURDATE()) = YEAR(BeginDate) ) AND ( MONTH(CURDATE()) = MONTH(BeginDate) ) )";
- $dots = array(date('Y-m-d', mktime (0,0,0,date("m"),1,date("Y"))),date("Y-m-d"));
- $step = 86400;
- break;
- case 'lastmonth':
- $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
- $where1 = "MONTH(CRDATE) = MONTH(SUBDATE(NOW(), INTERVAL 1 MONTH)) AND (YEAR(CRDATE) = YEAR(SUBDATE(NOW(), INTERVAL 1 MONTH)))";
- $group_by1 = "DAY(CRDATE)";
- $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
- $where2 = "MONTH(WDATE) = MONTH(SUBDATE(NOW(), INTERVAL 1 MONTH)) AND (YEAR(WDATE) = YEAR(SUBDATE(NOW(), INTERVAL 1 MONTH)))";
- $group_by2 = "DAY(WDATE)";
- $ws = "( MONTH(BeginDate) = MONTH( SUBDATE(NOW(), INTERVAL 1 MONTH) ) AND ( YEAR(BeginDate) = YEAR( SUBDATE(NOW(), INTERVAL 1 MONTH) ) ) )";
- $dots = array(date('Y-m-d', mktime (0,0,0,date("m")-1,1,date("Y"))),date('Y-m-d',mktime (0,0,0,date("m"),1-1,date("Y"))));
- $step = 86400;
- break;
- case 'last6month':
- $fields1 = "COUNT(MONTH(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%m/%Y') AS ox, SUM(Price) AS Price";
- $where1 = "(CRDATE BETWEEN SUBDATE(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 6 MONTH) AND CURDATE())";
- $group_by1 = "MONTH(CRDATE)";
- $fields2 = "COUNT(MONTH(WDATE)) AS oy, DATE_FORMAT(WDATE, '%m/%Y') AS ox, URL";
- $where2 = "(WDATE BETWEEN SUBDATE(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 6 MONTH) AND CURDATE())";
- $group_by2 = "MONTH(WDATE)";
- $ws = "( ( BeginDate >= SUBDATE( DATE_FORMAT( CURDATE(), '%Y-%m-01' ), INTERVAL 6 MONTH ) ) AND ( BeginDate < DATE_FORMAT( CURDATE(), '%Y-%m-01' ) ) )";
- $dots = array(date('Y-m-d', mktime (0,0,0,date("m")-6,1,date("Y"))),date('Y-m-d',mktime (0,0,0,date("m"),1-1,date("Y"))));
- $step = 2592000;
- break;
- case 'thisyear':
- $fields1 = "COUNT(MONTH(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%m/%Y') AS ox, SUM(Price) AS Price";
- $where1 = "(YEAR(CURDATE()) = YEAR(CRDATE))";
- $group_by1 = "MONTH(CRDATE)";
- $fields2 = "COUNT(MONTH(WDATE)) AS oy, DATE_FORMAT(WDATE, '%m/%Y') AS ox, URL";
- $where2 = "(YEAR(CURDATE()) = YEAR(WDATE))";
- $group_by2 = "MONTH(WDATE)";
- $ws = "( YEAR(CURDATE()) = YEAR(BeginDate) )";
- $dots = array(date('Y-m-d', mktime (0,0,0,1,1,date("Y"))),date("Y-m-d"));
- $step = 2592000;
- break;
- case 'lastyear':
- $fields1 = "COUNT(MONTH(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%m/%Y') AS ox, SUM(Price) AS Price";
- $where1 = "(YEAR(CRDATE) = YEAR(SUBDATE(CURDATE(), INTERVAL 1 YEAR)))";
- $group_by1 = "MONTH(CRDATE)";
- $fields2 = "COUNT(MONTH(WDATE)) AS oy, DATE_FORMAT(WDATE, '%m/%Y') AS ox, URL";
- $where2 = "(YEAR(WDATE) = YEAR(SUBDATE(CURDATE(), INTERVAL 1 YEAR)))";
- $group_by2 = "MONTH(WDATE)";
- $ws = "( YEAR(BeginDate) = YEAR(SUBDATE(CURDATE(), INTERVAL 1 YEAR)) )";
- $dots = array(date('Y-m-d', mktime (0,0,0,1,1,date("Y")-1)),date("Y-m-d",mktime (0,0,0,12,31,date("Y")-1)));
- $step = 2592000;
- break;
- case 'all':
- $fields1 = "COUNT(YEAR(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%Y') AS ox, SUM(Price) AS Price";
- $where1 = "1 ";
- $group_by1 = "YEAR(CRDATE)";
- $fields2 = "COUNT(YEAR(WDATE)) AS oy, DATE_FORMAT(WDATE, '%Y') AS ox, URL";
- $where2 = "1 ";
- $group_by2 = "YEAR(WDATE)";
- $ws = "1";
- $dots = array(date('Y-m-d', mktime (0,0,0,1,1,2011)),date("Y-m-d"));
- $step = 31104000;
- break;
- case 'interval':
- $fields1 = "COUNT( DATE( CRDATE ) ) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
- $where1 = " ( ( DATE( CRDATE ) >= '$dateto' ) AND ( DATE( CRDATE ) <= '$datebefore' ) ) ";
- $group_by1 = "DATE(CRDATE)";
- $fields2 = "COUNT( DATE( WDATE ) ) AS oy, DATE(WDATE) AS ox, URL";
- $where2 = " ( ( DATE( WDATE ) >= '$dateto' ) AND ( DATE( WDATE ) <= '$datebefore' ) ) ";
- $group_by2 = "DATE(WDATE)";
- $ws = " ( ( DATE( BeginDate ) >= '$dateto' ) AND ( DATE( BeginDate ) <= '$datebefore' ) ) ";
- $dots = array( $dateto, $datebefore );
- $step = 86400;
- break;
- }
- $from_get = $dots[1];
- $to_get = $dots[0];
- if((!empty($_POST['FROM']))&&(!empty($_POST['TO']))){
- $condition = " AND CRDATE between '".$_POST['from']."' AND '".$_POST['to']."' ";
- $from = explode(" " , $_POST['from']);
- $to = explode(" " , $_POST['to']);
- $from_get = $from[0];
- $to_get = $to[0];
- $step = 3600;
- }
- //print_r($public_hash) and die;
- if ( ( !empty( $to_get ) ) && ( $from_get ) && ( !empty( $step ) ) && ( !empty( $public_hash ) ) )
- {
- $u_cnt = 0;
- $h_cnt = 0;
- $p_cnt = 0;
- //получаем значения для шкалы х
- if($step == 3600)
- {
- $string = "H : i";
- }
- elseif($step == 2592000)
- {
- $string = "m/Y";
- }
- elseif($step == 31104000)
- {
- $string = "Y";
- }
- else
- {
- $string = "Y-m-d";
- }
- $x = array();
- $dat_from = explode("-", $dots[0]);
- $dat_to = explode("-", $dots[1]);
- $x_from = mktime(0, 0, 0, $dat_from[1], $dat_from[2], $dat_from[0]);
- $x_to = mktime(0, 0, 0, $dat_to[1], $dat_to[2], $dat_to[0]);
- $tmp_frm = $x_from;
- if($step == 2592000){
- while($x_from < $x_to){
- $ddate = date($string, $x_from);
- if(strcmp($ddate, date($string, $x_to)) !== 0)
- $x[] = $ddate;
- $d_step = explode("/" , $ddate);
- $dayzz = 86400*cal_days_in_month(CAL_GREGORIAN, $d_step[0], $d_step[1]);
- $temp[] = $x_from;
- $x_from = $x_from + $dayzz;
- }
- }
- elseif($step == 31104000)
- {
- $i = 1;
- while($x_from < $x_to)
- {
- $ddate = date($string, $x_from);
- if(strcmp($ddate, date($string, $x_to)) !== 0)
- $x[] = $ddate;
- $x_from = mktime(0, 0, 0, $dat_from[1], $dat_from[2], $dat_from[0] + $i);
- $i += 1;
- }
- }
- else{
- while($x_from < $x_to){
- $x[] = date($string, $x_from);
- $temp[] = $x_from;
- $x_from = $x_from + $step;
- }
- }
- $x[] = date($string, $x_to);
- $y = array();
- $y_l = array();
- $y_paid = array();
- $y_uid = array();
- $flag_day = false;
- if($step == 3600)
- {
- $y[0] = 0;
- $flag_day = true;
- }
- foreach($x as $val) $y["$val"] = 0;
- $y_l = $y;
- $y_paid = $y;
- $y_uid = $y;
- $hash_sales = array();
- /*делаем выборку переходов по ссылке*/
- $detect = explode('_',$public_hash);
- if($detect[0]=="all")
- {
- $q_detect = "SELECT FilesList.Original as orig FROM FilesList, Izdan WHERE Izdan.Hash = '".$detect[1]."' AND Izdan.Num = FilesList.Owner AND Izdan.Owner='".Yii::app()->user->id."'";
- //print_r($q_detect) and die;
- $d_result = @mysql_query($q_detect,$conn);
- if (mysql_num_rows($d_result)>0)
- {
- $hash_condition = array();
- $hash_condition[] = "'" . $detect[1] . "'";
- $hash_clink = array();
- $hash_clink[] = "'" . $detect[1] . "'";
- //$hash_sales[] = "(SKU LIKE '%" . $detect[1] . "%')";
- $hash_sales[] = "(LOCATE('$detect[1]',SKU)>0)";
- while ($row = mysql_fetch_assoc($d_result))
- {
- $hash_condition[] = "'" . $row['orig'] . "'";
- $hash_clink[] = "'" . $row['orig'] . "'";
- $hash_sales[] = "(SKU LIKE '" . $row["orig"] . "%')";
- }
- $where1 = "(Hash IN (" . implode(",", $hash_condition) . ")) AND " . $where1;
- $where2 = "(files_hash IN (" . implode(",", $hash_clink) . ")) AND " . $where2;
- }
- $izdan_all = 1;
- }
- else
- {
- $where1 .= " AND (Hash = '". $detect[0] . "')";
- $where2 .= " AND (files_hash = '" . $detect[0] . "')";
- $hash_sales[] = "(SKU LIKE '" . $detect[0] . "%')";
- $izdan_all = 3;
- }
- // Ajax Action - детальная статистика
- if( isset( $_POST['detail_stat'] ) && ( $_POST['detail_stat'] == 'detail' ) )
- {
- // строка, по которой нужно вывести детальную статистику
- $prows = $_POST['prows'];
- $period = $_POST['period'];
- if ( ( $period == '7days' ) || ( $period == '30days' ) || ( $period == 'thismonth' ) || ( $period == 'lastmonth' ) || ( $period == 'interval' ) )
- {
- $where1 .= "AND ( DATE(CRDATE) = '$prows%' )";
- }
- elseif( ( $period == 'today') || ( $period == 'yesterday' ) )
- {
- $aprows = explode('-', $prows);
- $tstart = explode('t', $aprows[0]);
- $tend = explode('t', $aprows[1]);
- $where1 .= "AND ( TIME(CRDATE) BETWEEN '" . trim($tstart[0]) . ":00:00' AND '" . trim($tend[0]) . ":00:00')";
- }
- elseif( ( $period == 'last6month' ) || ( $period == 'thisyear' ) || ( $period == 'lastyear' ) )
- {
- $aprows = explode('d', $prows);
- $where1 .= "AND ( DATE(CRDATE) LIKE '" . $aprows[1] . "-" . $aprows[0] . "%')";
- }
- elseif( $period == 'all' )
- {
- $where1 .= "AND ( DATE(CRDATE) LIKE '{$prows}%' )";
- }
- $s_result1 = array();
- if($izdan_all === 1)
- {
- $s_result1 = getDetailIzdan($where1 . $pform, $group_by1);
- }
- if(count($s_result1) != 0)
- {
- $html = '<table id="table_info" align="center">';
- if($izdan_all === 1)
- {
- $html .= '<tr><td>Загруженный номер</td><td>Количество загрузок</td></tr>';
- }
- arsort($s_result1);
- foreach($s_result1 as $name => $cdownload)
- {
- $html .= '<tr><td>' . $name . '</td><td>' . $cdownload . '</td></tr>';
- }
- $html .= '</table>';
- echo $html;
- }
- exit;
- }
- if ( isset( $_POST['geo'] ) )
- {
- $geo = trim( $_POST['geo'] );
- $contry = isset( $_POST['contry'] ) ? trim( $_POST['contry'] ) : '';
- $region = isset( $_POST['region'] ) ? trim( $_POST['region'] ) : '';
- switch ( $geo )
- {
- case 'region' :
- // значения колонок в таблице для каждой страны
- $regions = array();
- $geoDownload = getStatOwenr('COUNT(Region) AS cdwn, Region', $where1 . $pform . " AND (Country = '$contry')", 'Region');
- for($i = 0; $i < count($geoDownload); $i++)
- {
- $CodeReg = $geoDownload[$i]['Region'];
- $cdwn = $geoDownload[$i]['cdwn'];
- $fullname = getRegionName($contry, $CodeReg );
- if ($fullname == '') $fullname = $CodeReg;
- if ( $CodeReg == '' )
- {
- $CodeReg = '-';
- $fullname = '<i>Не определено</i>';
- }
- $regions[] = array( ( $i + 1 ), $CodeReg, $fullname, $cdwn);
- }
- if (count($regions) > 0)
- {
- foreach ($regions as $key => $row) {
- $c[$key] = $row[3];
- }
- array_multisort($c, SORT_DESC, $regions);
- $i = 1;
- foreach ($regions as $key => $row) {
- $regions[$key][3] = number_format($row[3], 0, ',', ' ');
- $regions[$key][0] = $i;
- $i++;
- }
- }
- if (count($regions) == 0) echo $regions = '';
- else echo json_encode($regions);
- break;
- case 'city' :
- // значения колонок в таблице для каждой страны
- $regions = array();
- $geoDownload = getStatOwenr('COUNT(City) AS cdwn, City', $where1 . $pform . " AND (Country = '$contry') AND (Region = '$region')", 'City');
- for($i = 0; $i < count($geoDownload); $i++)
- {
- $city = $geoDownload[$i]['City'];
- if ( $city == '' )
- {
- $city = '<i>Не определено</i>';
- }
- $cdwn = $geoDownload[$i]['cdwn'];
- $regions[] = array( ( $i + 1 ), $city, $cdwn );
- }
- if (count($regions) > 0)
- {
- foreach ($regions as $key => $row) {
- $c[$key] = $row[2];
- }
- array_multisort($c, SORT_DESC, $regions);
- $i = 1;
- foreach ($regions as $key => $row) {
- $regions[$key][2] = number_format($row[2], 0, ',', ' ');
- $regions[$key][0] = $i;
- $i++;
- }
- }
- if (count($regions) == 0) echo $regions = '';
- else echo json_encode($regions);
- break;
- }
- exit;
- }
- $s_result1 = getStatOwenr($fields1, $where1 . $pform, $group_by1);
- $sum = 0;
- for($i = 0; $i < count($s_result1); $i++)
- {
- $key = $s_result1[$i]["ox"];
- if(isset($y[$key]))
- {
- $y[$key] = $s_result1[$i]["oy"];
- $h_cnt += $s_result1[$i]["oy"];
- $sum += $s_result1[$i]["Price"];
- }
- }
- //заполняем массив с данными y_paid
- $s_result2 = getStatOwenr($fields1, $where1 . $pform . " AND (Price != 0)", $group_by1);
- for($i = 0; $i < count($s_result2); $i++)
- {
- $key = $s_result2[$i]["ox"];
- if(isset($y_paid[$key]))
- {
- $y_paid[$key] = $s_result2[$i]["oy"];
- $p_cnt += $s_result2[$i]["oy"];
- }
- }
- //заполняем массив с данными y_uid
- $s_result2 = getStatOwenr($fields1, $where1 . $pform . " AND (UID != 'no uid')" , $group_by1);
- for($i = 0; $i < count($s_result2); $i++)
- {
- $key = $s_result2[$i]["ox"];
- if(isset($y_uid[$key]))
- {
- //$y_uid[$key] = $s_result2[$i]["oy"];
- $u_cnt += $s_result2[$i]["oy"];
- }
- }
- //значения по оси OY для ссылок
- $l_result = getLinksOwenr($fields2, $where2, 'URL');
- //print_r($l_result) and die;
- for($i = 0; $i < count($l_result); $i++)
- {
- $key = $l_result[$i]["ox"];
- if(isset($y_l[$key]))
- $y_l[$key] = $l_result[$i]["oy"];
- }
- $sum = number_format($sum, 2, '.', ' ');
- $p_cnt = number_format($p_cnt, 0, '.', ' ');
- $p_cnt_android = $p_cnt;
- $summa =0; // сюда будем записывать общую сумму в рублях
- $valuta = array(); // массив валют
- $usd =0;
- $rubli =0;
- $total_rub_sum =0;
- $all_currency =array();
- $sales = array();
- $p_cnt_ipad = 0;
- $display_ipad = true;
- $display_android = true;
- // при выборе платформы ipad или all считаем отдельно сумму покупок и количество продаж по платформе ipad
- if ( ( $_POST['platform'] == 'all' ) || ( $_POST['platform'] == 'ipad' ) || ( $_POST['platform'] == 'iphone' ) || ( $_POST['platform'] == 'ipad/iphone' ))
- {
- if ( ( $period != 'today' ) && ( $period != 'yesterday' ) )
- {
- //$ws .= " AND ( ( LENGTH(SKU) = 4 ) OR (SKU LIKE '%subscription%') )";
- $ws .= " AND ( ( LENGTH(SKU) = 4 ) OR (SKU NOT LIKE 'QTMG%') )";
- if ( count($hash_sales) != 0)
- {
- $w_hash = implode(' OR ', $hash_sales);
- $ws .= ' AND ( ' . $w_hash . ' )';
- }
- $s_result2 = getStatSales($ws);
- $sales = $s_result2;
- // --------------------------------- подсчет суммы в рублях
- // Конвертируем валюту в рубли
- function convertRub($date, $total_sum, $currency)
- {
- // получим стоимость 1 доллара и преобразуем нашу валюту в него
- $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='$currency'");
- $myrow = mysql_fetch_array($result);
- $dollar =0;
- $rub=0;
- if($total_sum !=0)
- $dollar = $myrow['Rate'] / $total_sum;
- // теперь доолар конвертируем в рубли и прибавляем к общей сумме
- $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
- $myrow = mysql_fetch_array($result);
- if($dollar !=0)
- $rub = $myrow['Rate'] / $dollar;
- return $rub;
- }
- // конвертация доолара в рубли
- function convertUSDtoRub($date, $total_sum, $currency){
- if($currency !="RUB"){
- $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
- $myrow = mysql_fetch_array($result);
- return $myrow["Rate"] * $total_sum;
- }
- else{
- return $total_sum;
- }
- }
- for($i=0; $i < count($sales); $i++){
- $all_currency[] = $sales[$i]['CustomerCurrency'];
- }
- $all_currency = array_unique($all_currency); // получили массив валют
- foreach($all_currency as $cur_currency)
- {
- $rub =0;
- for($i=0; $i < count($sales); $i++)
- {
- $date = $sales[$i]['BeginDate'];
- $total_sum = $sales[$i]['total_sum'];
- $currency = $sales[$i]['CustomerCurrency'];
- if($cur_currency == $sales[$i]['CustomerCurrency'] AND $cur_currency !="RUB"
- AND $cur_currency !="USD"){
- $rub += convertRub($date, $total_sum, $currency);
- $valuta[$currency] = $rub;
- }
- elseif($cur_currency == $sales[$i]['CustomerCurrency'] AND $cur_currency =="RUB" ){
- $r = $total_sum;
- //$valuta["RUB"] += $r;
- $rubli +=$r;
- }
- elseif($cur_currency == $sales[$i]['CustomerCurrency'] AND $cur_currency =="USD" ){
- $rub = convertUSDtoRub($date, $total_sum, $currency);
- //$valuta["USD"] += $rub;
- $usd +=$rub;
- }
- }
- }
- // echo var_dump($valuta); массив валют и значений
- //echo var_dump($usd."<br/>"); //сумма usd в рублях
- // echo var_dump($rubli); сумма в рублях
- $total_rub_sum = array_sum($valuta) + $usd + $rubli; // общая сумма
- // -------------------------------------------------------------
- $Sales = array();
- for( $i = 0; $i < count($sales); $i++)
- {
- $currency = $sales[$i]['CustomerCurrency'];
- $BeginDate = $sales[$i]['BeginDate'];
- if ( isset ( $Sales["$currency"]["units_sold"] ) ) $Sales["$currency"]["units_sold"] += $sales[$i]['units_sold'];
- else $Sales["$currency"]["units_sold"] = $sales[$i]['units_sold'];
- if ( isset ( $Sales[$currency]["total_sum"] ) ) $Sales[$currency]["total_sum"] += $sales[$i]['total_sum'];
- else $Sales[$currency]["total_sum"] = $sales[$i]['total_sum'];
- if ( $currency !== 'USD' )
- {
- if ( isset ( $Sales[$currency]["usd_sum"] ) )
- $Sales[$currency]["usd_sum"] += ( ( 1 / getExchangeCurrency($BeginDate, $currency ) ) * $sales[$i]['total_sum'] );
- else $Sales[$currency]["usd_sum"] = ( ( 1 / getExchangeCurrency($BeginDate, $currency ) ) * $sales[$i]['total_sum'] );
- }
- else
- {
- if ( isset ( $Sales[$currency]["usd_sum"] ) ) $Sales[$currency]["usd_sum"] += $sales[$i]['total_sum'];
- else $Sales[$currency]["usd_sum"] = $sales[$i]['total_sum'];
- }
- $p_cnt_ipad += $sales[$i]['units_sold'];
- }
- }
- }
- // при выборе платформы all находим сумму и количество покупок по платформе Android
- if ( $_POST['platform'] == 'all' )
- {
- // считаем величину p_cnt для андроида
- $p_cnt_android = 0;
- $s_result2 = getStatOwenr($fields1, $where1 . " AND (LENGTH(UID) >= 16 AND LENGTH(UID) < 32)" . " AND (Price != 0)", $group_by1);
- for($i = 0; $i < count($s_result2); $i++)
- {
- $key = $s_result2[$i]["ox"];
- if(isset($y_paid[$key]))
- {
- $p_cnt_android += $s_result2[$i]["oy"];
- }
- }
- $s_result1 = getStatOwenr($fields1, $where1 . " AND (LENGTH(UID) >= 16 AND LENGTH(UID) < 32)", $group_by1);
- $sum_android = 0;
- for($i = 0; $i < count($s_result1); $i++)
- {
- $key = $s_result1[$i]["ox"];
- if(isset($y[$key]))
- {
- $sum_android += $s_result1[$i]["Price"];
- }
- }
- $sum = number_format($sum_android, 2, '.', ' ');
- }
- elseif ( $_POST['platform'] == 'ipad' or $_POST['platform'] == 'iphone' or $_POST['platform'] == 'ipad/iphone')
- {
- $display_android = false;
- }
- elseif ( $_POST['platform'] == 'android' or $_POST['platform'] == 'ipad' or $_POST['platform'] == 'iphone')
- {
- $display_ipad = false;
- }
- if ( ( $period == 'interval' ) && ( count( $x ) > 30 ) )
- {
- $d_bedin = explode('-', $dateto);
- $d_end = explode('-', $datebefore);
- $e = mktime( 0, 0, 0, $d_end[1], $d_end[2], $d_end[0] );
- $b = mktime( 0, 0, 0, $d_bedin[1], $d_bedin[2], $d_bedin[0] );
- $date_step = ceil( $e - $b ) / 10;
- $x1 = array();
- while($b < $e)
- {
- $x1[] = date('Y-m-d', $b);
- $b += $date_step;
- }
- // todo тут гдето ошибка
- $x1[] = date('Y-m-d', $e);
- $y1 = array();
- //echo var_dump($y);
- //exit();
- for($i = 0; $i < count($x1); $i++)
- {
- $key = $x1[$i];
- $y1[$key] = $y[$key];
- }
- $y2 = array();
- for($i = 0; $i < count($x1); $i++)
- {
- $key = $x1[$i];
- $y2[$key] = $y_l[$key];
- }
- $x = $x1; $y = $y1; $y_l = $y2;
- }
- // значения колонок в таблице для каждой страны
- $GeoDownload = array();
- $geoDownload = getStatOwenr('COUNT(Country) AS cdwn, Country, SUM(Price) as sum', $where1 . $pform, 'Country');
- for($i = 0; $i < count($geoDownload); $i++)
- {
- $code = $geoDownload[$i]['Country'];
- if ( $code != '')
- {
- $fullname = getCountryFullName( $code );
- if ( count($fullname) == 0 )
- {
- $fullname[0] = '<i>Не определено</i>';
- $fullname[1] = '</i>Undefined</i>';
- }
- }
- else
- {
- $code = '-';
- $fullname[0] = '<i>Не определено</i>';
- $fullname[1] = '<i>Undefined</i>';
- }
- $lang = isset( $_SESSION["LANG"] ) ? $_SESSION["LANG"] : 'eng';
- if ( $lang === 'ru') $GeoDownload[ $code ][] = $fullname[0]; else $GeoDownload[$code][] = $fullname[1];
- // количество платных загрузок по стране
- if ( ( $period != 'today' ) && ( $period != 'yesterday' ) )
- {
- $geoPaid = getStatSales($ws . " AND (CountryCode = '$code')");
- $PaidUnits = 0;
- $PaidPrice = 0;
- for( $j = 0; $j < count($geoPaid); $j++)
- {
- $currency = $geoPaid[$j]['CustomerCurrency'];
- $BeginDate = $geoPaid[$j]['BeginDate'];
- $PaidUnits += $geoPaid[$j]['units_sold'];
- if ( $currency !== 'USD' )
- {
- $PaidPrice += ( ( 1 / getExchangeCurrency($BeginDate, $currency ) ) * $geoPaid[$j]['total_sum'] );
- }
- else
- {
- $PaidPrice += $geoPaid[$j]['total_sum'];
- }
- }
- }
- else
- {
- $PaidUnits = '';
- $PaidPrice = '';
- }
- $GeoDownload[$code][] = $geoDownload[$i]['cdwn'];
- $GeoDownload[$code][] = $PaidUnits;
- $GeoDownload[$code][] = $PaidPrice;
- }
- if ( count($GeoDownload) > 0 )
- {
- foreach ($GeoDownload as $key => $row)
- {
- $Cprice[$key] = $row[3];
- $cpaid[$key] = $row[2];
- $cdwn[$key] = $row[1];
- $cname[$key] = $row[0];
- }
- array_multisort($Cprice, SORT_DESC, $cpaid, SORT_DESC, $cdwn, SORT_DESC, $cname,SORT_ASC, $GeoDownload);
- }
- }
- $y_l_get = serialize($y_l);
- $x_get = serialize($x);
- $y_get = serialize($y);
- $y_paid_get = serialize($y_paid);
- $y_uid_get = serialize($y_uid);
- //$sum = number_format($sum, 2, '.', '');
- ?>
- <table class="tab_round_max" style="width:768px">
- <tr>
- <td class="table_head_3" style="text-align:center"><p style="font-size:20px;"><?=Yii::t("main","Statistic")?></p></td>
- </tr>
- <tr>
- <td>
- <!--<link rel="stylesheet" href="/js/datepicker/css/datepicker.css" type="text/css" />
- <script type="text/javascript" src="/js/datepicker/js/datepicker.js"></script>
- <script type="text/javascript" src="/js/datepicker/js/eye.js"></script>
- <script type="text/javascript" src="/js/datepicker/js/utils.js"></script>-->
- <!-- datepicker -->
- <link href="/css/ui-darkness/jquery-ui-1.10.4.custom.css" rel="stylesheet">
- <script src="/js/jquery-1.10.2.js"></script>
- <script src="/js/jquery-ui-1.10.4.custom.js"></script>
- <script type="text/javascript">
- $(function() {
- $('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
- });
- </script>
- <script type="text/javascript">
- function FormRequest(par)
- {
- console.log('Yup! '+par);
- if ( $("select[name='period'] :selected").val() == 'interval' )
- {
- var begin = $('#dateto').val();
- var end = $('#datebefore').val();
- if( begin == '' )
- {
- alert('Статистика за выбранный период не может быть показана, укажите начало интервала!',"Ошибка ввода данных");
- return false;
- }
- else if ( end == '' )
- {
- alert('Статистика за выбранный период не может быть показана, укажите конец интервала!',"Ошибка ввода данных");
- return false;
- }
- else if ( begin > end)
- {
- alert('Статистика за выбранный период не может быть показана, неверно указаны границы интервала!',"Ошибка ввода данных");
- return false;
- }
- else
- {
- var reg = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/i
- var res1 = reg.exec(begin);
- var res2 = reg.exec(end);
- if ( ( res1 == null ) || ( res2 == null ) )
- {
- alert('Статистика за выбранный период не может быть показана, неверно указаны границы интервала!',"Ошибка ввода данных");
- return false;
- }
- }
- }
- if ( par == 'geo' ) $('input[name=stat_type]').val('geo');
- document.forms['form_period'].submit();
- }
- $(function(){
- $("select[name='period']").change(function () {
- if($("select[name='period'] :selected").val() == 'interval')
- {
- $('#ID_to').css('display', 'table-row');
- }
- else
- {
- $('#dateto').val('');
- $('#datebefore').val('');
- $('#ID_to').css('display', 'none');
- }
- })
- .change();
- });
- // Ajax Action - детальная статистика
- <?
- $if=explode('_',$public_hash);
- if ($if[0]=='all') {?>
- $(function(){
- $('table#info_stat tr:gt(0)').hover(function(){
- $(this).css("cursor" , "pointer");
- });
- $('table#info_stat tr:gt(0)').click(function(){
- if ($(this).hasClass('active'))
- {
- if ($(this).hasClass('showed'))
- {
- $('.showed').removeClass('showed');
- var prows = $(this).attr('id');
- $('.inforows').remove();
- }
- else
- {
- $('.showed').removeClass('showed');
- $(this).addClass('showed');
- var tr_style = '';
- if($(this).css("background-color")=='rgb(255, 255, 255)') tr_style='style="background-color:white"';
- // строка, по которой требуется вывести детальную статистику
- var prows = $(this).attr('id');
- //alert(prows);
- // если выбран период Интервал, то получаем значения интервалов
- var to = '';
- var before = '';
- if($("select[name=period] :selected").val() == 'interval')
- {
- to = $('#dateto').val();
- before = $('#datebefore').val();
- }
- $.ajax({
- url: "/publication/partialstatistic",
- type: 'POST',
- data: { 'detail_stat' : 'detail', 'dateto' : to, 'datebefore' : before, 'prows' : prows, 'period' : $('select[name=period]').val(), 'public' : $('select[name=public]').val(), 'platform' : $('select[name=platform]').val() },
- cache: false,
- beforeSend: function()
- {
- $('tr').remove('tr[id^=inforows]');
- var html = '<img src="http://desiredgift.me/images/loading.gif" style="margin: 40px" alt="Load data"/>';
- $('<tr id="preload' + prows + '"><td colspan="2" style="text-align: center">' + html + '</td></tr>').insertAfter('#' + prows);
- },
- success: function(html)
- {
- $('tr').remove('#preload' + prows);
- //console.log('Here');
- $('<tr id="inforows' + prows + '" class="inforows" '+tr_style+'><td colspan="2">' + html + '</td></tr>').insertAfter('#' + prows);
- $('#inforows' + prows + '>td').css({padding: "25px"});
- $('table#table_info ').css({fontSize : "12px", marginTop : "10px", marginBottom: "10px"});
- //$('table#table_info td').css({width : "340px"});
- $('table#table_info td:odd').css({textAlign : "center"});
- $('table#table_info td:even').css({textAlign : "left" });
- $('table#table_info td:eq(1)').css({textAlign : "center"});
- $('table#table_info tr:eq(0)').css({fontStyle : "italic"});
- }
- });
- }
- }
- });
- });
- <? }?>
- </script>
- <style type="text/css">
- #contry table
- {
- border-spacing: 0px;
- border-collapse: collapse;
- margin: 10px auto;
- width: 656px;
- }
- .firstrows
- {
- height:53px;
- background: red;
- }
- #contry table tr
- {
- background: #fff;
- }
- #contry table table tr
- {
- background-color: rgb(249,249,249);
- }
- #contry table table
- {
- width: 600px
- }
- #contry td
- {
- border-bottom: 1px Solid #C0C0C0;
- }
- #contry td, #contry td td
- {
- text-align: center;
- }
- #contry td td img
- {
- padding: 3px;
- }
- #contry
- {
- width: 680px;
- margin: 0px auto;
- color:#000000;
- }
- #contry tr td
- {
- padding: 3px;
- font-weight: bold;
- }
- table.contryheader
- {
- width: 761px;
- margin-left: 4px;
- height:53px;
- position: relative;
- }
- div.contrybody
- {
- width: 715px;
- margin: 0px 27px;
- border-right: Solid 1px #AAA;
- border-left: Solid 1px #AAA;
- background-color: rgb(249,249,249);
- }
- </style>
- <script type="text/javascript">
- $(function(){
- $('#contry tr:nth-child(even)').css('background', '#fff');
- $('#contry tr td').css('text-align', 'center');
- $('#contry tr td:nth-child(n+4)').css('text-align', 'right');
- $('#contry tr td:nth-child(1)').css('padding-left', '15px');
- $('#contry tr td:nth-child(6)').css('padding-right', '20px');
- $('#contry tr td:nth-child(1)').css({'width': '40px'});
- $('#contry tr td:nth-child(2)').css({'width': '60px'});
- $('#contry tr td:nth-child(4)').css({'width': '100px', 'padding-right' : '15px'});
- $('#contry tr td:nth-child(5)').css({'width': '100px', 'padding-right' : '20px'});
- $('#contry tr td:nth-child(6)').css({'width': '100px'});
- $('#contry tr').css('cursor', 'pointer');
- $('#contry tr:first()').css('cursor', 'auto');
- // указатель на стоку, по которой был произведён click
- var ClickRows = null;
- $('#contry tr').click( function() {
- // id таблицы, строка которой вызвала событие
- var table_id = $(this).parents('table').attr('id');
- table_id = table_id.split('_')[0];
- // строка-заголовок таблицы не реагирует на событие
- if ( table_id != 'contry')
- if ( $(this).index() == 0 ) return false;
- // строка, в которую загружена таблица, не реагирует на событие
- if ( $(this).children('td').children('table').size() > 0) return false;
- var handler = $(this);
- // строки из таблицы с id=city не реагируют на событие
- if ( table_id == 'city' ) return false;
- if ( ClickRows != null )
- {
- if ( $(this).next().children('td').children('table').size() > 0)
- {
- $(this).next().remove();
- return false;
- }
- }
- ClickRows = $(this);
- var to = '';
- var before = '';
- if($("select[name=period] :selected").val() == 'interval')
- {
- to = $('#dateto').val();
- before = $('#datebefore').val();
- }
- if ( table_id == 'contry' )
- {
- // код страны
- var contry = $(this).children('td:eq(1)').html();
- if ( contry == '-') contry = '';
- $.ajax({
- url: "/publication/partialstatistic",
- type: 'POST',
- data: {'dateto' : to, 'datebefore' : before, contry: contry, geo: 'region', 'period' : $('select[name=period]').val(), 'public' : $('select[name=public]').val(), 'platform' : $('select[name=platform]').val()},
- beforeSend: function(){
- var row = '<tr><td colspan="6"><img src="http://desiredgift.me/images/loading.gif" alt="Load data"/></td></tr>';
- handler.after(row);
- },
- success: function(html) {
- console.log(html);
- if(html == '')
- {
- handler.next().remove();
- }
- else
- {
- var regions = jQuery.parseJSON(html);
- if ( regions == null)
- {
- handler.next().remove();
- return;
- }
- var row = '<table id="regions_' + contry + '">' +
- '<tr>' +
- '<td>№</td>' +
- '<td>Код региона</td>' +
- '<td>Регион</td>' +
- '<td>Загружено</td>' +
- '</tr>';
- for( var i = 0; i < regions.length; i++ )
- {
- row += '<tr>' +
- '<td>' + regions[i][0] + '</td>' +
- '<td>' + regions[i][1] + '</td>' +
- '<td>' + regions[i][2] + '</td>' +
- '<td>' + regions[i][3] + '</td>' +
- '</tr>';
- }
- row += '</table>';
- handler.next().find('td').html(row);
- $('#contry table tr:nth-child(1)').css({'background': 'url(http://desiredgift.me/images/spacer.png) repeat-x', 'height' : '40px'});
- $('#contry table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
- $('#contry table tr:nth-child(1) td:not(:nth-child(4))').css({'background' : 'url(http://desiredgift.me/images/spaceri.jpg) no-repeat right'});
- $('#contry table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
- $('#contry table tr:nth-child(1) td:nth-child(4)').css({'width' : '150px'});
- $('#contry table tr:nth-child(1) td:nth-child(1)').css({'width' : '50px'});
- $('#contry table tr:nth-child(n+2) td:nth-child(2)').css({'width' : '100px'});
- $('#contry table tr:nth-child(n+2) td:nth-child(n+1)').css({'text-align' : 'center'});
- $('#contry table tr:nth-child(n+2) td:nth-child(4)').css({'text-align' : 'right', 'padding-right' : '50px'});
- $('#contry table tr:nth-child(n+2)').css('cursor', 'pointer');
- }
- },
- });
- }
- else if ( table_id == 'regions' )
- {
- // код страны
- var contry = $(this).parent().parent().parent().parent().prev().children('td:eq(1)').html();
- if ( contry == '-') contry = '';
- // код региона
- var region = $(this).children('td:eq(1)').html();
- if ( region == '-') region = '';
- $.ajax({
- url: "publication/partialstatistic",
- type: 'POST',
- data: {'dateto' : to, 'datebefore' : before, contry: contry, region: region, geo: 'city', 'period' : $('select[name=period]').val(), 'public' : $('select[name=public]').val(), 'platform' : $('select[name=platform]').val()},
- beforeSend: function(){
- var row = '<tr><td colspan="4"><img src="http://desiredgift.me/images/loading.gif" alt="Load data"/></td></tr>';
- handler.after(row);
- },
- success: function(html) {
- if(html == '')
- {
- handler.next().remove();
- }
- else
- {
- var regions = jQuery.parseJSON(html);
- var row = '<table id="city_' + region + '">' +
- '<tr>' +
- '<td>№</td>' +
- '<td>Город</td>' +
- '<td>Загружено</td>' +
- '</tr>';
- for( var i = 0; i < regions.length; i++ )
- {
- row += '<tr>' +
- '<td>' + regions[i][0] + '</td>' +
- '<td>' + regions[i][1] + '</td>' +
- '<td>' + regions[i][2] + '</td>' +
- '</tr>';
- }
- row += '</table>';
- handler.next().find('td').html(row);
- $('#contry table table tr:nth-child(1)').css({'background': 'url(http://desiredgift.me/images/spacer.png) repeat-x', 'height' : '40px'});
- $('#contry table table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
- $('#contry table table tr:nth-child(1) td:not(:nth-child(3))').css({'background' : 'url(http://desiredgift.me/images/spaceri.jpg) no-repeat right'});
- $('#contry table table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
- $('#contry table table tr:nth-child(1) td:nth-child(1)').css({'width' : '50px'});
- $('#contry table table tr:nth-child(n+2) td:nth-child(3)').css({'width' : '100px'});
- $('#contry table table tr:nth-child(n+2) td:nth-child(n+1)').css({'text-align' : 'center'});
- $('#contry table table tr:nth-child(n+2) td:nth-child(3)').css({'text-align' : 'right', 'padding-right' : '50px'});
- }
- }
- });
- }
- return false;
- })
- })
- </script>
- <form method="post" name="form_period" class="jNice" id="my">
- <center>
- <table style="width:80%;text-align:left;margin-top: 15px">
- <tbody>
- <tr>
- <td>
- <table>
- <tr>
- <td>
- <p style="margin:0px;"><?=Yii::t("main","Period")?></p>
- <select id="izdsel" name="period" >
- <option <?=("today"==$_POST['period'])?'selected':'';?> value="today"><?=Yii::t("main","Today")?></option>
- <option <?=("yesterday"==$_POST['period'])?'selected':'';?> value="yesterday"><?=Yii::t("main","Yesterday")?></option>
- <option <?=("7days"==$_POST['period'])?'selected':'';?> value="7days"><?=Yii::t("main","Last 7 days")?></option>
- <option <?=("30days"==$_POST['period'])?'selected':'';?> value="30days"><?=Yii::t("main","Last 30 days")?></option>
- <option <?=("thismonth"==$_POST['period'])?'selected':'';?> value="thismonth"><?=Yii::t("main","This month")?></option>
- <option <?=("lastmonth"==$_POST['period'])?'selected':'';?> value="lastmonth"><?=Yii::t("main","Last month")?></option>
- <option <?=("last6month"==$_POST['period'])?'selected':'';?> value="last6month"><?=Yii::t("main","Last 6 month")?></option>
- <option <?=("thisyear"==$_POST['period'])?'selected':'';?> value="thisyear"><?=Yii::t("main","This year")?></option>
- <option <?=("lastyear"==$_POST['period'])?'selected':'';?> value="lastyear"><?=Yii::t("main","Last year")?></option>
- <option <?=("all"==$_POST['period'])?'selected':'';?> value="all"><?=Yii::t("main","All time")?></option>
- <option <?=("interval"==$_POST['period'])?'selected':'';?> value="interval"><?=Yii::t("main","Date interval")?></option>
- </select>
- </td>
- <td>
- <p style="margin:0px;"><?=Yii::t("main","Platform")?></p>
- <select id="izdsel1" name="platform" >
- <option <?=("all"==$_POST['platform'])?'selected':'';?> value="all"><?=Yii::t("main","All")?></option>
- <option <?=("ipad/iphone"==$_POST['platform'])?'selected':'';?> value="ipad/iphone"><?=Yii::t("main","iPad/iPhone")?></option>
- <? if($is_separated_stat):?>
- <option <?=("ipad"==$_POST['platform'])?'selected':'';?> value="ipad">iPad</option>
- <option <?=("iphone"==$_POST['platform'])?'selected':'';?> value="iphone">iPhone</option>
- <? endif;?>
- <option <?=("android"==$_POST['platform'])?'selected':'';?> value="android">Android</option>
- </select>
- <!-- <input type="hidden" id="izdsel" name="platform" value="ipad"> -->
- </td>
- <td>
- <p style="margin:0px;"><?=Yii::t("main","Publication")?></p>
- <select name="public" id="spsel" style="width:290px;">
- <? foreach($_SESSION['pub'] as $key=>$pub){?>
- <option <?=("all_".$key==$public_hash)?'selected':'';?> value="all_<?=$key;?>"><?=Yii::t("main","Publication")?>: <?=key($pub)?></option>
- <?foreach($_SESSION['pub'][$key][key($pub)] as $ikey=>$issue){?>
- <option <?=($ikey==$public_hash)?'selected':'';?> value="<?=$ikey;?>">    <?=$issue;?></option>
- <?}?>
- <?}?>
- </select>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr id="ID_to">
- <td >
- <table>
- <tr>
- <td>
- <span style="margin:0px;"> <?=Yii::t("main","From")?></span>
- <input type="text" name="dateto" id="dateto" class="datepicker" value="<?=$dateto?>" >
- </td>
- <td>
- <span style="margin:0px;"><?=Yii::t("main","To")?></span>
- <input type="text" name="datebefore" id="datebefore" class="datepicker" value="<?=$datebefore?>" >
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td style=" vertical-align:top;">
- <input type="hidden" name="stat_type" value="show" />
- <table align="left">
- <tr>
- <td style="vertical-align:top;">
- <center>
- <a class="caption_3" onclick="FormRequest('show')" style="text-decoration:none;">
- <span class="span_button_submit">
- <input name="yt0" value="<?=Yii::t("main","Show")?>" type="submit">
- </span>
- </a>
- </center>
- </td>
- <td style="vertical-align:top;">
- <center>
- <a class="caption_3" onclick="FormRequest('geo')" style="text-decoration: none;">
- <span class="span_button_submit">
- <input name="yt0" value="<?=Yii::t("main","Geo")?>" type="submit">
- </span>
- </a>
- </center>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </center>
- </form>
- </td>
- </tr>
- <?php
- //print_r($stat_type) and die;
- if ( $stat_type == 'geo'): ?>
- <tr>
- <td style="">
- <?php if ( count($GeoDownload) > 1 )
- {
- /*echo '<table class="contryheader">';
- echo '</table>';*/
- echo '<div class="contrybody">';
- echo '<table id="contry">';
- echo '<tr>';
- echo '<td>№</td><td>Код</td><td>Cтрана</td><td>Загружено</td><td>Куплено</td><td>Выручка, $</td>';
- echo '</tr>';
- $i = 1;
- foreach( $GeoDownload as $CountryCode => $RowsData )
- {
- echo '<tr>';
- echo '<td>' . $i . '</td>';
- echo '<td>' . $CountryCode . '</td>';
- echo '<td>' . $RowsData[0] . '</td>';
- echo '<td>' . number_format($RowsData[1], 0, ',', ' ') . '</td>';
- if($RowsData[2]){
- echo '<td>' . number_format($RowsData[2], 0, ',', ' ') . '</td>';
- }else{
- echo '<td> 0 </td>';
- }
- if($RowsData[3]){
- echo '<td>' . number_format($RowsData[3], 0, ',', ' ') . '</td>';
- }else{
- echo '<td> 0 </td>';
- }
- echo '</tr>';
- $i++;
- }
- echo '</table>';
- echo '</div>';
- } ?>
- </td>
- </tr>
- </table>
- <?php endif; ?>
- <?php if ( $stat_type == 'show'): ?>
- <tr>
- <td><div id='myDiv' style="text-align: center;">
- <style type="text/css">
- .hidden{
- /*visibility:hidden; */
- display: none;
- /*margin-top: -650px*/
- }
- </style>
- <script type="text/javascript">
- $(function(){
- $('#lnk').click(function(){
- $('#links').removeClass('hidden');
- $('#downloads').addClass('hidden');
- return false;
- })
- $('#downl').click(function(){
- $('#links').addClass('hidden');
- $('#downloads').removeClass('hidden');
- return false;
- })
- })
- </script>
- <!-- <pre>
- <? print_r($x)?>
- <? print_r($y)?>
- <? print_r($y_l)?>
- </pre> -->
- <div style="max-width: 696px; margin-left: 31px; ">
- <div id="downloads">
- <IMG SRC='/pchart/examples/example.php?x=<?=$x_get?>&y=<?=$y_get?>&y_paid=&y_uid='/>
- </div>
- <!-- <IMG id="links" class="hidden" SRC='/pchart/examples/example.php?x=<?=$x_get?>&y=<?=$y_l_get?>'/> -->
- <div id="links" class="hidden" style="width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
- <table width="680" cellspacing="0" cellpadding="0" border="0" style="color:black;">
- <? if(count($l_result)!=0) {?>
- <tr>
- <td style="font-size:18px;font-weight:bold;padding-top:15px; padding-left:20px;text-align:left;"><?=Yii::t("main","Urls")?></td>
- <td style="font-size:18px;font-weight:bold;padding-top:15px;" align="center"><?=Yii::t("main","Follows")?></td>
- </tr>
- <? for ($i=0; $i<count($l_result); $i++) {?>
- <tr style="<?=($i%2)?"background-color:white":""?>">
- <td style="width:auto; padding:4px 10px 4px 20px;;">
- <a style="color:black;" target="_blank" href="<?=$l_result[$i]['URL']?>"><?=$l_result[$i]['URL']?></a>
- </td>
- <td style="width:auto;" align="center">
- <?=$l_result[$i]['oy']?>
- </td>
- </tr>
- <? }
- }
- else{?>
- <tr>
- <td><center><?=Yii::t("main","No data available for selected period!")?></center></td>
- </tr>
- <?}?>
- </table>
- </div>
- </div>
- </div>
- </td>
- </tr>
- <tr>
- <td >
- <table >
- <tr>
- <td style="width:50%;">
- <center>
- <a class="caption_3" href="#" id="lnk" style="font-weight:bold; color:white; text-decoration: none;" >
- <span class="span_button_submit">
- <input name="yt0" value="<?=Yii::t("main","Links")?>" type="submit" style=" font-size: 16px; width:120px;">
- </span>
- </a>
- </center>
- </td>
- <td style="width:50%;">
- <center>
- <a class="caption_3" href="#" id="downl" style="font-weight:bold; color:white; text-decoration: none;" >
- <span class="span_button_submit" >
- <input name="yt0" value="<?=Yii::t("main","Downloads")?>" type="submit" style=" font-size: 16px; width:200px;">
- </span>
- </a>
- </center>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <div style="width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
- <!-- <div id="srows"></div> -->
- <table width="680" cellspacing="0" cellpadding="0" border="0" id="info_stat" style="color:black;">
- <tr style="background-color: #DEDEDE;">
- <td style="font-size:18px;font-weight:bold;padding:15px 15px; text-align:center;"><?=Yii::t("main","Time period")?></td>
- <td style="font-size:18px;font-weight:bold;padding:15px 15px; text-align:center;"><?=Yii::t("main","Downloads")?></td>
- </tr>
- <?
- if($flag_day)
- {
- $count = count($x) - 1;
- }
- else
- {
- $count = count($x);
- }
- for($i = 0; $i < $count; $i++){?>
- <?php
- if($flag_day)
- {
- //echo $x[$i] . " - " . $x[$i + 1];
- $v_x = $x[$i] . " - " . $x[$i + 1];
- }
- else
- {
- //echo $x[$i];
- $v_x = $x[$i];
- }
- $v_x1 = str_replace(":", 't', $v_x);
- $v_x1 = str_replace(' ', '', $v_x1);
- $v_x1 = str_replace('/', 'd', $v_x1);
- ?>
- <tr id="<?=$v_x1?>" style="<?=($i%2)?"background-color:white":""?>" <?=($y[$x[$i]]!=0)?'class="active"':''?>>
- <td style="width:340px">
- <div style="text-align: center; "><strong><span style="padding-left:10px;"><?=$v_x?></span></strong></div>
- </td>
- <td style="width:340px;" align="center">
- <div style="text-align: right; padding-right: 150px; "><strong><?=$y[$x[$i]]?></strong></div>
- </td>
- </tr>
- <?
- }?>
- </table>
- </div>
- <div style=" width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
- <table width="680" cellspacing="0" cellpadding="0" border="0" style="color: black;">
- <tr style="background-color: #DEDEDE;">
- <td colspan="3" style="font-size:18px;font-weight:bold;padding:15px 15px;text-align:center;"><?=Yii::t("main","Units")?></td>
- </tr>
- <tr style="font-weight: bold; text-align: center; background-color:white">
- <td style="width: 50%, text-align:center;"><?=Yii::t("main","All")?></td>
- <td style="width: 50%; text-align: right; padding-right: 150px"><?=$h_cnt;?></td>
- </tr>
- <?php
- $display_android = false;
- if($display_ipad && $display_android) $class_old = '';
- elseif( ($display_ipad && !$display_android) || (!$display_ipad && $display_android) ) $class_old = 'background-color:white';
- if($display_ipad)
- {
- ?>
- <tr style="font-weight: bold; text-align: center;">
- <td><?=Yii::t("main","iPad Paid")?></td>
- <?php
- if ( count($sales) != 0 ) echo '<td style="text-align: right; padding-right: 150px">'.$p_cnt_ipad . '</td>';
- else echo '<td><div style="font-style: italic; font-size: 12px">'.Yii::t("main","No data available for selected period!").'</div></td>';
- ?>
- </tr>
- <?php
- if( $display_android) $class = "background-color:white;"; else $class= "";
- }
- if($display_android)
- {
- ?>
- <tr style="font-weight: bold; text-align: center; <?=$class?>">
- <td>Android Paid</td>
- <td style="text-align: right; padding-right: 150px"><?=$p_cnt_android?></td>
- </tr>
- <?php
- }
- ?>
- <tr style="font-weight: bold; text-align: center; <?=(isset($class_old))?$class_old:'';?>">
- <td><?=Yii::t("main","With")?> UID:</td>
- <td style="text-align: right; padding-right: 150px"><?=$u_cnt;?></td>
- </tr>
- </table>
- </div>
- <div style="width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
- <table width="680" cellspacing="0" cellpadding="0" border="0" style="color:black;">
- <tbody>
- <tr style="background-color: #DEDEDE">
- <td colspan="3" style="font-size:18px;font-weight:bold;padding:15px 15px;text-align:center;"><?=Yii::t("main","Sales")?></td>
- </tr>
- <?php if($display_ipad) {?>
- <tr>
- <td colspan="3" style="font-size:14px;font-weight:bold; padding-bottom: 5px">iOS</td>
- </tr>
- <tr>
- <table style="color: black;">
- <tr>
- <td>
- <?php
- if(isset($Sales))
- if ( count($Sales) != 0)
- {
- echo '<tr style="text-align: right; font-weight: bold; font-size:17px; font-style: italic;">';
- echo '<td>'.Yii::t("main","Currency").'</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Units").'</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").'</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', USD</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', RUB</td>';
- echo '</tr>';
- $k = 0;
- $itog = 0;
- foreach($Sales as $currency => $val)
- {
- $class = ( $k % 2 == 0) ? "background-color: white" : "";
- echo '<tr style="font-weight: bold; text-align: right; ' . $class . '">';
- echo '<td>' . $currency . '</td>';
- echo '<td style="text-align: right; ">' . $val['units_sold'] . '</td>';
- echo '<td style="text-align: right; ">' . number_format( $val['total_sum'], 2, '.', ' ') .'</td>';
- echo '<td style="text-align: right; ">' . number_format( $val['usd_sum'], 2, '.', ' ') . '</td>';
- // вывод суммы в рублях
- foreach($valuta as $k=>$v){
- if($k == $currency){
- echo '<td style="text-align: right; ">'.number_format( $v, 2, '.', ' ' ).'</td>';
- }
- }
- if($currency == "USD"){
- if($usd != 0.00){
- echo '<td style="text-align: right; ">'.number_format( $usd, 2, '.', ' ' ).'</td>';
- }
- }
- if($currency == "RUB"){
- if($usd != 0.00){
- echo '<td style="text-align: right; ">'.number_format( $rubli, 2, '.', ' ' ).'</td>';
- }
- }
- // --------------
- echo '</tr>';
- $k++;
- $itog += $val['usd_sum'];
- }
- $class = ( $k % 2 == 0) ? "background-color: white" : "";
- echo '<tr style="font-weight:bold; text-align: center' . $class . '">';
- echo '<td style="font-weight:bold;">'.Yii::t("main","Total").':</td>';
- echo '<td style="text-align: right; font-weight:bold;" colspan="3">' . number_format( $itog, 2, '.', ' ' ) . '</td>'; // Общая сумма !!!!!!
- echo '<td style="text-align:right;font-weight: bold;" colspan="4">'.number_format( $total_rub_sum, 2, '.', ' ' ).'</td>';
- echo '</tr>';
- //------------------------------------- расчет валюты в рубли !!!!!!!! !!!!!!!!!
- }
- else
- {
- echo '<tr>';
- echo '<td style="font-style: italic; font-size: 12px; font-weight: bold">'.Yii::t("main","No data available for selected period!").'</td>';
- echo '</tr>';
- }
- }?>
- </td>
- </tr>
- </table>
- </tr>
- <?
- if($display_android)
- {
- ?>
- <tr>
- <td colspan="3" style="font-size:14px;font-weight:bold;color: rgb(35,181,248); padding-bottom: 5px">Android</td>
- </tr>
- <tr style="font-weight: bold; text-align: center; background-color:white">
- <td >Total amount, USD</td>
- <td colspan="2"><?=$sum?></td>
- </tr>
- <?php } ?>
- <?php
- /* собираем данные по андроиду */
- if(!empty($resultt))
- {
- $andoid_currency = array(); // валюты
- $android_sum =array(); // суммы платежей по валютам
- $andoid_sum =0;
- $andoid_units = array(); // количество поппок (юниты)
- $andoid_un =0;
- $android_sum_usd = array(); // сумма покупок в долларах
- $android_usd = 0;
- $android_sum_r = array(); // сумма покупок в рублях
- $android_r = 0;
- $andoid_data = array();
- while ($andoid_data[] = mysql_fetch_array($resultt));
- // собираем валюты
- foreach($andoid_data as $res){
- if($res != null)
- $andoid_currency[] = $res['Buyer_Currency'];
- }
- $andoid_currency = array_unique($andoid_currency);
- function convertUSDtoRubT($date, $total_sum, $currency){
- if($currency != "RUB" and $currency != "USD" ){
- $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='$currency'");
- $myrow = mysql_fetch_array($result);
- if($myrow['Rate'] <= 0)
- return;
- if($total_sum !=0)
- $dollar = $myrow['Rate'] / $total_sum;
- $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
- $myrow = mysql_fetch_array($result);
- if($dollar !=0)
- $rub = $myrow['Rate'] /$dollar;
- return $rub;
- }
- if($currency == "RUB"){
- return $total_sum;
- }
- if($currency == "USD"){
- return convertUSDtoRub($date, $total_sum, $currency);
- }
- }
- // собираем суммы платежей по этим валютам и количество покупок
- foreach($andoid_currency as $cur)
- {
- foreach($andoid_data as $res ){
- //echo $res['Amount_Buyer_Currency']."<br/>";
- if($res['Buyer_Currency'] == $cur ){
- $andoid_sum += $res['Amount_Buyer_Currency'];
- if($res['Transaction_Type'] == "Charge" )
- $andoid_un ++;
- $android_usd += convertToUSD($res['Transaction_Date'], $res['Amount_Buyer_Currency'] , $res['Buyer_Currency']);
- $android_r += convertUSDtoRubT($res['Transaction_Date'], $res['Amount_Buyer_Currency'],$res['Buyer_Currency']);
- }
- }
- $android_sum[$cur] = $andoid_sum;
- $andoid_units[$cur] = $andoid_un;
- $android_sum_usd[$cur] = $android_usd;
- $android_sum_r[$cur] = $android_r;
- $andoid_sum =0;
- $andoid_un =0;
- $android_usd=0;
- $android_r =0;
- }
- }
- if($resultt == false AND $resultt_wait != false ) // если там чот есть то выводим данные по таблице android_wait (ожидаемые продажи)
- {
- $andoid_currency = array(); // валюты
- $android_sum =array(); // суммы платежей по валютам
- $andoid_sum =0;
- $andoid_units = array(); // количество поппок (юниты)
- $andoid_un =0;
- $android_sum_usd = array(); // сумма покупок в долларах
- $android_usd = 0;
- $android_sum_r = array(); // сумма покупок в рублях
- $android_r = 0;
- $andoid_data = array();
- while ($andoid_data[] = mysql_fetch_array($resultt_wait));
- // собираем валюты
- foreach($andoid_data as $res){
- if($res != null)
- $andoid_currency[] = $res['Currency_of_Sale'];
- }
- $andoid_currency = array_unique($andoid_currency);
- function convertUSDtoRubT($date, $total_sum, $currency){
- if($currency != "RUB" and $currency != "USD" ){
- $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='$currency'");
- $myrow = mysql_fetch_array($result);
- if($total_sum !=0)
- $dollar = $myrow['Rate'] / $total_sum;
- $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
- $myrow = mysql_fetch_array($result);
- if($dollar !=0)
- $rub = $myrow['Rate'] / $dollar;
- return $rub;
- }
- if($currency == "RUB"){
- return $total_sum;
- }
- if($currency == "USD"){
- return convertUSDtoRub($date, $total_sum, $currency);
- }
- }
- // собираем суммы платежей по этим валютам и количество покупок
- foreach($andoid_currency as $cur)
- {
- foreach($andoid_data as $res){
- if($res['Currency_of_Sale'] == $cur ){
- $andoid_sum += $res['Charged_Amount'];
- $andoid_un ++;
- $android_usd += convertToUSD($res['Order_Charged_Date'], $res['Charged_Amount'] , $res['Currency_of_Sale']);
- $android_r += convertUSDtoRubT($res['Order_Charged_Date'], $res['Charged_Amount'], $res['Currency_of_Sale']);
- }
- }
- $android_sum[$cur] = $andoid_sum;
- $andoid_units[$cur] = $andoid_un;
- $android_sum_usd[$cur] = $android_usd;
- $android_sum_r[$cur] = $android_r;
- $andoid_sum =0;
- $andoid_un =0;
- $android_usd=0;
- $android_r =0;
- }
- }
- ?>
- <table style="color: black;">
- <tr>
- <td> <b>Android: </b> <br/><br/><br/> </td>
- </tr>
- <?php if(!empty($resultt) OR !empty($resultt_wait) ) { ?>
- <tr style="font-weight: bold; text-align: left; background-color: white; font-size:17px; font-style: italic;" >
- <?php
- echo '<td>'.Yii::t("main","Currency").'</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Units").'</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").'</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', USD</td>';
- echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', RUB</td>';
- ?>
- </tr>
- <?php foreach($andoid_currency as $cur){
- echo '<tr style="font-weight: bold; text-align: right; background-color: white" >';
- echo "<td style='text-align: left;'> $cur</td>";
- foreach($andoid_units as $k => $v){
- if($k == $cur){
- echo "<td style='text-align: right;'> $v</td>";
- }
- }
- foreach($android_sum as $k => $v){
- if($k == $cur){
- echo "<td style='text-align: right;'>".number_format( $v, 2, '.', ' ')."</td>";
- }
- }
- foreach($android_sum_usd as $k => $v){
- if($k == $cur){
- echo "<td style='text-align: right;'>".number_format( $v, 2, '.', ' ')."</td>";
- }
- }
- foreach($android_sum_r as $k => $v){
- if($k == $cur){
- echo "<td style='text-align: right;'>".number_format( $v, 2, '.', ' ')."</td>";
- }
- }
- }
- ?>
- </tr>
- <tr>
- <?php
- echo '<td style="text-align: left; font-weight:bold; "> Total: </td>';
- echo "<td colspan='3' style='text-align: right; font-weight:bold;'>".number_format( array_sum($android_sum_usd), 2, '.', ' ')."</td>";
- echo "<td colspan='4'style='text-align: right; font-weight:bold; '>".number_format( array_sum($android_sum_r), 2, '.', ' ')."</td>";
- ?>
- </tr>
- <?php } ?>
- </table>
- </div>
- <?php endif; ?>
- <?php
- // получить название региона страны
- function getRegionName($country, $region)
- {
- $country = mysql_real_escape_string($country);
- $region = mysql_real_escape_string($region);
- $query = "SELECT NameRegion FROM CountryRegion WHERE (Country = '$country') AND (Region = '$region')";
- $result = mysql_query($query);
- if (mysql_num_rows($result) > 0)
- {
- return mysql_result($result, 0, 'NameRegion');
- }
- return '';
- }
- function getStatOwenr($fields, $where, $group_by = "", $print_it = false)
- {
- if($where !== "") $where = "WHERE $where";
- if($group_by === "")
- {
- $query = "SELECT $fields FROM Stat $where ORDER BY CRDATE";
- }
- else
- {
- $query = "SELECT $fields FROM Stat $where GROUP BY $group_by ORDER BY CRDATE";
- }
- if($print_it)
- print_r($query) and die;
- $select_l = mysql_query($query);
- $a = array();
- $data = array();
- while(($data = mysql_fetch_assoc($select_l)) != false)
- {
- $a[] = $data;
- }
- return $a;
- }
- // получить полное название страны
- function getCountryFullName($code)
- {
- $code = mysql_real_escape_string($code);
- $query = "SELECT Country.name, Country.english FROM Country WHERE Country.al = '$code'";
- $result = mysql_query($query);
- if ($result)
- {
- if ( mysql_num_rows($result) > 0 )
- {
- return array( mysql_result($result, 0, 'Country.name'), mysql_result($result, 0, 'Country.english') );
- }
- }
- return array();
- }
- function getDetailIzdan($where, $groupby)
- {
- if($where !== '') $where = 'WHERE ' . $where;
- if($groupby !== '') $groupby = 'GROUP BY ' . $groupby . ', Hash';
- $query = "SELECT COUNT(Stat.Hash) AS cnt, Stat.Hash FROM Stat $where $groupby";
- //print_r($query) and die;
- $select_l1 = mysql_query($query);
- $select_l = array();
- $data = array();
- while( ( $data = mysql_fetch_assoc($select_l1) ) != false)
- {
- $select_l[] = $data;
- }
- $Result = array();
- for($i = 0; $i < count($select_l); $i++ )
- {
- $orig = $select_l[$i]['Hash'];
- $query = "SELECT Name FROM FilesList WHERE Original = '$orig'";
- $s_i = mysql_query($query);
- if( mysql_num_rows($s_i) > 0 )
- {
- $Result[ trim( mysql_result( $s_i, 0, 'FilesList.Name' ) ) ] = intval($select_l[$i]['cnt']);
- }
- else
- {
- $Result[$orig . ' <i>(удалён)</i>'] = $select_l[$i]['cnt'];
- }
- }
- return $Result;
- }
- function getLinksOwenr($fields, $where, $group_by = "")
- {
- if($where !== "") $where = "WHERE $where";
- if($group_by === "")
- {
- $query = "SELECT $fields FROM qteam_links $where ORDER BY oy";
- }
- else
- {
- $query = "SELECT $fields FROM qteam_links $where GROUP BY $group_by ORDER BY oy DESC";
- }
- //print_r($query) and die;
- $select_l = mysql_query($query);
- $a = array();
- $data = array();
- while(($data = mysql_fetch_assoc($select_l)) != false)
- {
- $a[] = $data;
- }
- return $a;
- }
- function getStatSales($where)
- {
- $query = "SELECT BeginDate, SUM(DeveloperProceeds * Units) AS total_sum, SUM(Units) AS units_sold, CustomerCurrency FROM sales WHERE $where AND DeveloperProceeds > 0 GROUP BY BeginDate, CustomerCurrency";
- $select_l = mysql_query($query);
- $a = array();
- $data = array();
- while(($data = mysql_fetch_assoc($select_l)) != false)
- {
- $a[] = $data;
- }
- return $a;
- }
- function getExchangeCurrency($date, $currency)
- {
- $query = "SELECT ExchangeRate.Rate FROM ExchangeRate WHERE (ExchangeRate.Date = '$date') AND (ExchangeRate.Currency = '$currency')";
- $res = mysql_query($query);
- if( mysql_num_rows($res) > 0 )
- {
- return mysql_result( $res, 0, 'Rate');
- }
- else
- {
- $file = "historical/{$date}.json";
- $appId = "a7309aba399343cf8c7cbf37835532b2";
- $ch = curl_init("http://openexchangerates.org/api/{$file}?app_id={$appId}");
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $json = curl_exec($ch);
- curl_close($ch);
- $exchangeRates = json_decode($json);
- $rate = $exchangeRates->rates->{$currency};
- if ( $rate !== '')
- {
- $query = "INSERT INTO ExchangeRate (Date, Currency, Rate) VALUES('$date', '$currency', '$rate')";
- mysql_query($query);
- }
- return $rate;
- }
- }
- ?>
- </center>
- </div>
- </center>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement