Advertisement
Guest User

Untitled

a guest
Feb 9th, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 90.72 KB | None | 0 0
  1. <?
  2.  
  3. function myErrorHandler($errno, $errstr, $errfile, $errline) {
  4. echo "[$errno] $errstr" . PHP_EOL;
  5. echo "On line $errline in file $errfile" . PHP_EOL;
  6.  
  7. $range = array(
  8. $errline - 2,
  9. $errline + 2,
  10. );
  11.  
  12. $source = explode(PHP_EOL, file_get_contents($errfile));
  13. for ($i = $range[0]; $i <= $range[1]; ++$i) {
  14. if ($i === count($source)) break;
  15. if ($i === $errline-1) {
  16. printf("%d | %s <<<<< Here is the error\n", $i, $source[$i]);
  17. } else {
  18. printf("%d | %s \n", $i, $source[$i]);
  19. }
  20. }
  21. }
  22.  
  23. set_error_handler('myErrorHandler');
  24.  
  25. error_reporting(E_ALL);
  26.  
  27.  
  28.  
  29. $this->breadcrumbs=array(
  30. Yii::t('main', 'Statistic'),
  31. );
  32.  
  33. $server="localhost";
  34. $user=Yii::app()->params['db_user'];
  35. $password=Yii::app()->params['db_password'];
  36. $db=Yii::app()->params['db_db'];
  37.  
  38. $resultt_wait = false;
  39.  
  40. if(isset($conn))mysql_close($conn);
  41.  
  42. $conn=mysql_connect($server,$user,$password);
  43. mysql_select_db($db,$conn);
  44. mysql_query('SET NAMES "utf8"', $conn);
  45.  
  46.  
  47. $dateto = isset( $_REQUEST['dateto'] ) ? trim( $_REQUEST['dateto'] ) : "";
  48. $datebefore = isset( $_REQUEST['datebefore'] ) ? trim( $_REQUEST['datebefore'] ) : "";
  49. $stat_type = isset( $_REQUEST['stat_type'] ) ? trim( $_REQUEST['stat_type'] ) : "show";
  50.  
  51. unset( $_SESSION['pub'] );
  52.  
  53.  
  54. ?>
  55. <center>
  56. <div class="statistic">
  57. <center
  58. <? //print_r("<script>console.log('ololo');</script>"); ?>
  59. <?php
  60. //Неизвестно откуда берущиеся параметры!!!!
  61.  
  62. if (!isset($_POST['platform'])) $_POST['platform']='all';
  63. //if (!isset($_POST['platform'])) $_POST['platform']='all';
  64. if (!isset($_POST['period'])) $_POST['period']='today';
  65. if (isset($_POST['public'])) $public_hash=$_POST['public'];
  66.  
  67. $ph =0;
  68. $resultt =0;
  69.  
  70.  
  71.  
  72.  
  73. $data = array();
  74. $period = $_POST['period'];
  75. $wher ="";
  76. $original = array();
  77.  
  78. if(isset($_POST['public'])){
  79. $pub_hash = explode("_",$_POST['public']);
  80.  
  81. if($pub_hash[0] == "all")
  82. {
  83.  
  84. // если выборка по всем журналам ( найдем все номера публикации )
  85. $ph = $pub_hash[1];
  86. $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
  87.  
  88.  
  89. while ($original[] = mysql_fetch_assoc($res));
  90.  
  91. $wher = "Sku_Id = '".$original[0]['Original']."'";
  92.  
  93. for($i =1; $i< count($original); $i ++){
  94. $wher .= " OR Sku_Id='".$original[$i]['Original']."'";
  95. }
  96.  
  97.  
  98.  
  99. switch($period)
  100. {
  101.  
  102. case 'all':
  103.  
  104. //echo "SELECT * FROM android_sales WHERE Transaction_Type ='Charge' AND ($wher)";
  105. $resultt = mysql_query("SELECT * FROM android_sales WHERE ($wher)",$conn);
  106. break;
  107.  
  108. case 'lastyear':
  109.  
  110. $d = date("Y") -1;
  111. $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND ($wher) ");
  112. break;
  113.  
  114. case 'thisyear':
  115.  
  116. $d = date("Y");
  117. $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND ($wher) ");
  118. break;
  119.  
  120. case 'last6month':
  121.  
  122. $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) AND ($wher)");
  123. //$data = mysql_fetch_assoc($result);
  124. break;
  125.  
  126. case 'lastmonth':
  127.  
  128.  
  129.  
  130. $d = date("m")-1;
  131. $y = date("Y");
  132.  
  133. if($d == 0){
  134. $y = date("Y")-1;
  135. $d ="12";
  136. }
  137.  
  138. $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date) = $y AND MONTH(Transaction_Date)= $d AND ($wher)");
  139. //$resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) AND ($wher)");
  140. break;
  141.  
  142. case 'thismonth':
  143. $d = date("m");
  144. $y = date("Y");
  145. $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) ");
  146. //$data = mysql_fetch_assoc($result);
  147. break;
  148.  
  149. case '30days':
  150. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 30 DAY AND Financial_Status ='Charged' AND ($wher)");
  151. break;
  152.  
  153. case '7days':
  154. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 7 DAY AND Financial_Status ='Charged' AND ($wher)");
  155. break;
  156.  
  157. case 'yesterday':
  158. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 1 DAY AND Financial_Status ='Charged' AND ($wher)");
  159. //$data = mysql_fetch_assoc($result);
  160. break;
  161.  
  162. case 'today':
  163. $d = date("Y-m-d");
  164. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date ='$d' AND Financial_Status ='Charged' AND ($wher)");
  165. //$data = mysql_fetch_assoc($result);
  166. break;
  167.  
  168. case 'interval':
  169.  
  170.  
  171. $datebefore = $_POST["datebefore"];
  172. $dateto = $_POST["dateto"];
  173.  
  174. $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date BETWEEN '$dateto' AND '$datebefore' AND ($wher)");
  175. break;
  176.  
  177. } }else{
  178.  
  179. $ph = $_POST['public'];
  180.  
  181.  
  182. switch($period)
  183. {
  184.  
  185.  
  186.  
  187. case 'all':
  188. $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Type ='Charge' AND Sku_Id='$ph'",$conn);
  189. break;
  190.  
  191. case 'lastyear':
  192. $d = date("Y") -1;
  193. $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND Transaction_Type ='Charge' AND Sku_Id='$ph'");
  194. break;
  195.  
  196. case 'thisyear':
  197. $d = date("Y");
  198. $resultt = mysql_query("SELECT * FROM android_sales WHERE YEAR(Transaction_Date)='$d' AND Transaction_Type ='Charge' AND Sku_Id='$ph'");
  199. break;
  200.  
  201. case 'last6month':
  202. $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'");
  203. break;
  204.  
  205. case 'lastmonth':
  206. $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'");
  207. break;
  208.  
  209. case 'thismonth':
  210. $d = date("m");
  211. $y = date("Y");
  212. $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' ");
  213. break;
  214.  
  215. case '30days':
  216. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 30 DAY AND Financial_Status ='Charged' AND SKU_ID='$ph'");
  217. break;
  218.  
  219. case '7days':
  220. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 7 DAY AND Financial_Status ='Charged' AND SKU_ID='$ph'");
  221. break;
  222.  
  223. case 'yesterday':
  224. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date > NOW() - INTERVAL 1 DAY AND Financial_Status ='Charged' AND SKU_ID='$ph'");
  225. break;
  226.  
  227. case 'today':
  228. $d = date("Y-m-d");
  229. $resultt_wait = mysql_query("SELECT * FROM android_wait WHERE Order_Charged_Date ='$d' AND Financial_Status ='Charged' AND SKU_ID='$ph'");
  230. break;
  231.  
  232. case 'interval':
  233.  
  234. $datebefore = $_POST["datebefore"];
  235. $dateto = $_POST["dateto"];
  236.  
  237. $resultt = mysql_query("SELECT * FROM android_sales WHERE Transaction_Date BETWEEN '$dateto' AND '$datebefore' AND Transaction_Type ='Charge' AND Sku_Id='$ph' ");
  238. break;
  239. }
  240.  
  241. }
  242. }
  243.  
  244.  
  245. function convertToUSD($dat, $sum, $currency){
  246.  
  247. if($currency != "USD" ){
  248.  
  249. $result = mysql_query("SELECT * FROM ExchangeRate WHERE Currency='$currency' AND Date='$dat' ");
  250. $row = mysql_fetch_array($result);
  251.  
  252. if($row['Rate'])
  253. return $sum / $row['Rate'];
  254. }
  255. else{
  256. return $sum;
  257. }
  258.  
  259. }
  260.  
  261.  
  262. if(isset($omg_yet_another_excess_variable_is_hash))
  263. {
  264. $current_pub = $omg_yet_another_excess_variable_is_hash;
  265. $query_select = "SELECT separated FROM Izdan WHERE Hash='".$current_pub."'";
  266. $result = mysql_query($query_select,$conn)or die("Error: $query_select");
  267. $is_separated_stat = mysql_fetch_assoc($result);
  268. $is_separated_stat = (bool)$is_separated_stat['separated'];
  269.  
  270. $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";
  271. }
  272. else
  273. {
  274. $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";
  275. }
  276.  
  277. $result = mysql_query($query_select,$conn)or die("Error: $query_select");
  278. if (mysql_num_rows($result)>0){
  279. while ($row = mysql_fetch_assoc($result)){
  280. $_SESSION['pub'][$row['ihash']][$row['iname']][$row['fhash']] = $row['fname'];
  281. }
  282. }
  283.  
  284.  
  285. switch($_POST['platform'])
  286. {
  287. case 'ipad/iphone':$pform = " AND LENGTH( UID ) = 32 AND (device like '%iPhone%' OR device like '%iPod%' OR device like '%iPad%')";
  288. break;
  289. case 'ipad':$pform = " AND LENGTH( UID ) = 32 AND device like '%iPad%'";
  290. break;
  291. case 'iphone':$pform = " AND LENGTH( UID ) = 32 AND (device like '%iPhone%' OR device like '%iPod%')";
  292. break;
  293. case 'android':$pform = " AND (LENGTH( UID ) >= 10 AND LENGTH( UID ) < 32)";
  294. break;
  295. default :$pform = " AND (LENGTH( UID ) >= 10 AND LENGTH( UID ) <= 32)";
  296. break;
  297. }
  298.  
  299.  
  300.  
  301. $period = isset( $_REQUEST['period'] ) ? $_REQUEST['period'] : 'today';
  302. switch($period)
  303. {
  304. case 'today':
  305. $fields1 = "COUNT(HOUR(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%H : 00') AS ox, SUM(Price) AS Price";
  306. $where1 = "(DATE(CRDATE) = DATE(CURDATE()))";
  307. $group_by1 = "HOUR(CRDATE)";
  308.  
  309. $fields2 = "COUNT(HOUR(WDATE)) AS oy, DATE_FORMAT(WDATE, '%H : 00') AS ox, URL";
  310. $where2 = "(DATE(WDATE) = DATE(CURDATE()))";
  311. $group_by2 = "HOUR(WDATE)";
  312.  
  313. $ws = '';
  314.  
  315. $dots = array(date("Y-m-d"),date("Y-m-d", time() + (24 * 60 * 60)));
  316. $step = 3600;
  317. break;
  318.  
  319. case 'yesterday':
  320. $fields1 = "COUNT(HOUR(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%H : 00') AS ox, SUM(Price) AS Price";
  321. $where1 = "(DATE(CRDATE) = SUBDATE(CURDATE(), INTERVAL 1 DAY))";
  322. $group_by1 = "HOUR(CRDATE)";
  323.  
  324. $fields2 = "COUNT(HOUR(WDATE)) AS oy, DATE_FORMAT(WDATE, '%H : 00') AS ox, URL";
  325. $where2= "(DATE(WDATE) = SUBDATE(CURDATE(), INTERVAL 1 DAY))";
  326. $group_by2 = "HOUR(WDATE)";
  327.  
  328. $ws = '';
  329.  
  330. $dots = array(date("Y-m-d", time() - (24 * 60 * 60)),date("Y-m-d"));
  331. $step = 3600;
  332. break;
  333.  
  334. case '7days':
  335. $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
  336. $where1 = "(CRDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 7 DAY) AND CURDATE())";
  337. $group_by1 = "DAY(CRDATE)";
  338.  
  339. $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
  340. $where2 = "(WDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 7 DAY) AND CURDATE())";
  341. $group_by2 = "DAY(WDATE)";
  342.  
  343. $ws = "( BeginDate BETWEEN SUBDATE(CURDATE(), INTERVAL 7 DAY) AND CURDATE() )";
  344.  
  345. $dots = array(date("Y-m-d", time() - (24 * 60 * 60 * 7)), date("Y-m-d", time() - (24 * 60 * 60)));
  346. $step = 86400;
  347. break;
  348.  
  349. case '30days':
  350. $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
  351. $where1 = "(CRDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 30 DAY) AND CURDATE())";
  352. $group_by1 = "DAY(CRDATE)";
  353.  
  354. $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
  355. $where2 = "(WDATE BETWEEN SUBDATE(CURDATE(), INTERVAL 30 DAY) AND CURDATE())";
  356. $group_by2 = "DAY(WDATE)";
  357.  
  358. $ws = "( BeginDate BETWEEN SUBDATE(CURDATE(), INTERVAL 30 DAY) AND CURDATE() )";
  359.  
  360. $dots = array(date("Y-m-d", time() - (24 * 60 * 60 * 30)), date("Y-m-d", time() - (24 * 60 * 60)));
  361. $step = 86400;
  362. break;
  363.  
  364. case 'thismonth':
  365. $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
  366. $where1 = "((YEAR(CURDATE()) = YEAR(CRDATE)) AND (MONTH(CURDATE()) = MONTH(CRDATE)))";
  367. $group_by1 = "DAY(CRDATE)";
  368.  
  369. $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
  370. $where2 = "((YEAR(CURDATE()) = YEAR(WDATE)) AND (MONTH(CURDATE()) = MONTH(WDATE)))";
  371. $group_by2 = "DAY(WDATE)";
  372.  
  373. $ws = "( ( YEAR(CURDATE()) = YEAR(BeginDate) ) AND ( MONTH(CURDATE()) = MONTH(BeginDate) ) )";
  374.  
  375. $dots = array(date('Y-m-d', mktime (0,0,0,date("m"),1,date("Y"))),date("Y-m-d"));
  376. $step = 86400;
  377. break;
  378.  
  379. case 'lastmonth':
  380. $fields1 = "COUNT(DAY(CRDATE)) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
  381. $where1 = "MONTH(CRDATE) = MONTH(SUBDATE(NOW(), INTERVAL 1 MONTH)) AND (YEAR(CRDATE) = YEAR(SUBDATE(NOW(), INTERVAL 1 MONTH)))";
  382. $group_by1 = "DAY(CRDATE)";
  383.  
  384. $fields2 = "COUNT(DAY(WDATE)) AS oy, DATE(WDATE) AS ox, URL";
  385. $where2 = "MONTH(WDATE) = MONTH(SUBDATE(NOW(), INTERVAL 1 MONTH)) AND (YEAR(WDATE) = YEAR(SUBDATE(NOW(), INTERVAL 1 MONTH)))";
  386. $group_by2 = "DAY(WDATE)";
  387.  
  388. $ws = "( MONTH(BeginDate) = MONTH( SUBDATE(NOW(), INTERVAL 1 MONTH) ) AND ( YEAR(BeginDate) = YEAR( SUBDATE(NOW(), INTERVAL 1 MONTH) ) ) )";
  389.  
  390. $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"))));
  391. $step = 86400;
  392. break;
  393.  
  394. case 'last6month':
  395. $fields1 = "COUNT(MONTH(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%m/%Y') AS ox, SUM(Price) AS Price";
  396. $where1 = "(CRDATE BETWEEN SUBDATE(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 6 MONTH) AND CURDATE())";
  397. $group_by1 = "MONTH(CRDATE)";
  398.  
  399. $fields2 = "COUNT(MONTH(WDATE)) AS oy, DATE_FORMAT(WDATE, '%m/%Y') AS ox, URL";
  400. $where2 = "(WDATE BETWEEN SUBDATE(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 6 MONTH) AND CURDATE())";
  401. $group_by2 = "MONTH(WDATE)";
  402.  
  403. $ws = "( ( BeginDate >= SUBDATE( DATE_FORMAT( CURDATE(), '%Y-%m-01' ), INTERVAL 6 MONTH ) ) AND ( BeginDate < DATE_FORMAT( CURDATE(), '%Y-%m-01' ) ) )";
  404.  
  405. $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"))));
  406. $step = 2592000;
  407. break;
  408.  
  409. case 'thisyear':
  410. $fields1 = "COUNT(MONTH(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%m/%Y') AS ox, SUM(Price) AS Price";
  411. $where1 = "(YEAR(CURDATE()) = YEAR(CRDATE))";
  412. $group_by1 = "MONTH(CRDATE)";
  413.  
  414. $fields2 = "COUNT(MONTH(WDATE)) AS oy, DATE_FORMAT(WDATE, '%m/%Y') AS ox, URL";
  415. $where2 = "(YEAR(CURDATE()) = YEAR(WDATE))";
  416. $group_by2 = "MONTH(WDATE)";
  417.  
  418. $ws = "( YEAR(CURDATE()) = YEAR(BeginDate) )";
  419.  
  420. $dots = array(date('Y-m-d', mktime (0,0,0,1,1,date("Y"))),date("Y-m-d"));
  421. $step = 2592000;
  422. break;
  423.  
  424. case 'lastyear':
  425. $fields1 = "COUNT(MONTH(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%m/%Y') AS ox, SUM(Price) AS Price";
  426. $where1 = "(YEAR(CRDATE) = YEAR(SUBDATE(CURDATE(), INTERVAL 1 YEAR)))";
  427. $group_by1 = "MONTH(CRDATE)";
  428.  
  429. $fields2 = "COUNT(MONTH(WDATE)) AS oy, DATE_FORMAT(WDATE, '%m/%Y') AS ox, URL";
  430. $where2 = "(YEAR(WDATE) = YEAR(SUBDATE(CURDATE(), INTERVAL 1 YEAR)))";
  431. $group_by2 = "MONTH(WDATE)";
  432.  
  433. $ws = "( YEAR(BeginDate) = YEAR(SUBDATE(CURDATE(), INTERVAL 1 YEAR)) )";
  434.  
  435. $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)));
  436. $step = 2592000;
  437. break;
  438.  
  439. case 'all':
  440. $fields1 = "COUNT(YEAR(CRDATE)) AS oy, DATE_FORMAT(CRDATE, '%Y') AS ox, SUM(Price) AS Price";
  441. $where1 = "1 ";
  442. $group_by1 = "YEAR(CRDATE)";
  443.  
  444. $fields2 = "COUNT(YEAR(WDATE)) AS oy, DATE_FORMAT(WDATE, '%Y') AS ox, URL";
  445. $where2 = "1 ";
  446. $group_by2 = "YEAR(WDATE)";
  447.  
  448. $ws = "1";
  449.  
  450. $dots = array(date('Y-m-d', mktime (0,0,0,1,1,2011)),date("Y-m-d"));
  451. $step = 31104000;
  452. break;
  453.  
  454. case 'interval':
  455.  
  456. $fields1 = "COUNT( DATE( CRDATE ) ) AS oy, DATE(CRDATE) AS ox, SUM(Price) AS Price";
  457. $where1 = " ( ( DATE( CRDATE ) >= '$dateto' ) AND ( DATE( CRDATE ) <= '$datebefore' ) ) ";
  458. $group_by1 = "DATE(CRDATE)";
  459.  
  460. $fields2 = "COUNT( DATE( WDATE ) ) AS oy, DATE(WDATE) AS ox, URL";
  461. $where2 = " ( ( DATE( WDATE ) >= '$dateto' ) AND ( DATE( WDATE ) <= '$datebefore' ) ) ";
  462. $group_by2 = "DATE(WDATE)";
  463.  
  464. $ws = " ( ( DATE( BeginDate ) >= '$dateto' ) AND ( DATE( BeginDate ) <= '$datebefore' ) ) ";
  465.  
  466. $dots = array( $dateto, $datebefore );
  467. $step = 86400;
  468.  
  469.  
  470. break;
  471. }
  472.  
  473.  
  474.  
  475.  
  476. $from_get = $dots[1];
  477. $to_get = $dots[0];
  478. if((!empty($_POST['FROM']))&&(!empty($_POST['TO']))){
  479. $condition = " AND CRDATE between '".$_POST['from']."' AND '".$_POST['to']."' ";
  480. $from = explode(" " , $_POST['from']);
  481. $to = explode(" " , $_POST['to']);
  482. $from_get = $from[0];
  483. $to_get = $to[0];
  484. $step = 3600;
  485. }
  486. //print_r($public_hash) and die;
  487. if ( ( !empty( $to_get ) ) && ( $from_get ) && ( !empty( $step ) ) && ( !empty( $public_hash ) ) )
  488. {
  489. $u_cnt = 0;
  490. $h_cnt = 0;
  491. $p_cnt = 0;
  492.  
  493. //получаем значения для шкалы х
  494. if($step == 3600)
  495. {
  496. $string = "H : i";
  497. }
  498. elseif($step == 2592000)
  499. {
  500. $string = "m/Y";
  501. }
  502. elseif($step == 31104000)
  503. {
  504. $string = "Y";
  505. }
  506. else
  507. {
  508. $string = "Y-m-d";
  509. }
  510.  
  511. $x = array();
  512. $dat_from = explode("-", $dots[0]);
  513. $dat_to = explode("-", $dots[1]);
  514. $x_from = mktime(0, 0, 0, $dat_from[1], $dat_from[2], $dat_from[0]);
  515. $x_to = mktime(0, 0, 0, $dat_to[1], $dat_to[2], $dat_to[0]);
  516.  
  517. $tmp_frm = $x_from;
  518. if($step == 2592000){
  519. while($x_from < $x_to){
  520. $ddate = date($string, $x_from);
  521. if(strcmp($ddate, date($string, $x_to)) !== 0)
  522. $x[] = $ddate;
  523. $d_step = explode("/" , $ddate);
  524. $dayzz = 86400*cal_days_in_month(CAL_GREGORIAN, $d_step[0], $d_step[1]);
  525. $temp[] = $x_from;
  526. $x_from = $x_from + $dayzz;
  527. }
  528. }
  529. elseif($step == 31104000)
  530. {
  531. $i = 1;
  532. while($x_from < $x_to)
  533. {
  534. $ddate = date($string, $x_from);
  535. if(strcmp($ddate, date($string, $x_to)) !== 0)
  536. $x[] = $ddate;
  537. $x_from = mktime(0, 0, 0, $dat_from[1], $dat_from[2], $dat_from[0] + $i);
  538. $i += 1;
  539. }
  540. }
  541. else{
  542. while($x_from < $x_to){
  543. $x[] = date($string, $x_from);
  544. $temp[] = $x_from;
  545. $x_from = $x_from + $step;
  546. }
  547. }
  548. $x[] = date($string, $x_to);
  549.  
  550. $y = array();
  551. $y_l = array();
  552. $y_paid = array();
  553. $y_uid = array();
  554. $flag_day = false;
  555. if($step == 3600)
  556. {
  557. $y[0] = 0;
  558. $flag_day = true;
  559. }
  560. foreach($x as $val) $y["$val"] = 0;
  561.  
  562.  
  563. $y_l = $y;
  564. $y_paid = $y;
  565. $y_uid = $y;
  566.  
  567. $hash_sales = array();
  568.  
  569. /*делаем выборку переходов по ссылке*/
  570. $detect = explode('_',$public_hash);
  571. if($detect[0]=="all")
  572. {
  573. $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."'";
  574. //print_r($q_detect) and die;
  575. $d_result = @mysql_query($q_detect,$conn);
  576. if (mysql_num_rows($d_result)>0)
  577. {
  578. $hash_condition = array();
  579. $hash_condition[] = "'" . $detect[1] . "'";
  580.  
  581. $hash_clink = array();
  582. $hash_clink[] = "'" . $detect[1] . "'";
  583.  
  584. //$hash_sales[] = "(SKU LIKE '%" . $detect[1] . "%')";
  585. $hash_sales[] = "(LOCATE('$detect[1]',SKU)>0)";
  586.  
  587.  
  588. while ($row = mysql_fetch_assoc($d_result))
  589. {
  590. $hash_condition[] = "'" . $row['orig'] . "'";
  591. $hash_clink[] = "'" . $row['orig'] . "'";
  592.  
  593. $hash_sales[] = "(SKU LIKE '" . $row["orig"] . "%')";
  594. }
  595. $where1 = "(Hash IN (" . implode(",", $hash_condition) . ")) AND " . $where1;
  596. $where2 = "(files_hash IN (" . implode(",", $hash_clink) . ")) AND " . $where2;
  597. }
  598. $izdan_all = 1;
  599. }
  600. else
  601. {
  602. $where1 .= " AND (Hash = '". $detect[0] . "')";
  603. $where2 .= " AND (files_hash = '" . $detect[0] . "')";
  604.  
  605. $hash_sales[] = "(SKU LIKE '" . $detect[0] . "%')";
  606. $izdan_all = 3;
  607. }
  608.  
  609. // Ajax Action - детальная статистика
  610. if( isset( $_POST['detail_stat'] ) && ( $_POST['detail_stat'] == 'detail' ) )
  611. {
  612.  
  613. // строка, по которой нужно вывести детальную статистику
  614. $prows = $_POST['prows'];
  615. $period = $_POST['period'];
  616.  
  617. if ( ( $period == '7days' ) || ( $period == '30days' ) || ( $period == 'thismonth' ) || ( $period == 'lastmonth' ) || ( $period == 'interval' ) )
  618. {
  619. $where1 .= "AND ( DATE(CRDATE) = '$prows%' )";
  620. }
  621. elseif( ( $period == 'today') || ( $period == 'yesterday' ) )
  622. {
  623. $aprows = explode('-', $prows);
  624. $tstart = explode('t', $aprows[0]);
  625. $tend = explode('t', $aprows[1]);
  626.  
  627. $where1 .= "AND ( TIME(CRDATE) BETWEEN '" . trim($tstart[0]) . ":00:00' AND '" . trim($tend[0]) . ":00:00')";
  628. }
  629. elseif( ( $period == 'last6month' ) || ( $period == 'thisyear' ) || ( $period == 'lastyear' ) )
  630. {
  631. $aprows = explode('d', $prows);
  632. $where1 .= "AND ( DATE(CRDATE) LIKE '" . $aprows[1] . "-" . $aprows[0] . "%')";
  633. }
  634. elseif( $period == 'all' )
  635. {
  636. $where1 .= "AND ( DATE(CRDATE) LIKE '{$prows}%' )";
  637. }
  638.  
  639. $s_result1 = array();
  640. if($izdan_all === 1)
  641. {
  642. $s_result1 = getDetailIzdan($where1 . $pform, $group_by1);
  643. }
  644.  
  645. if(count($s_result1) != 0)
  646. {
  647. $html = '<table id="table_info" align="center">';
  648. if($izdan_all === 1)
  649. {
  650. $html .= '<tr><td>Загруженный номер</td><td>Количество загрузок</td></tr>';
  651. }
  652.  
  653. arsort($s_result1);
  654.  
  655. foreach($s_result1 as $name => $cdownload)
  656. {
  657. $html .= '<tr><td>' . $name . '</td><td>' . $cdownload . '</td></tr>';
  658. }
  659. $html .= '</table>';
  660.  
  661. echo $html;
  662. }
  663.  
  664. exit;
  665. }
  666.  
  667.  
  668.  
  669.  
  670.  
  671. if ( isset( $_POST['geo'] ) )
  672. {
  673. $geo = trim( $_POST['geo'] );
  674. $contry = isset( $_POST['contry'] ) ? trim( $_POST['contry'] ) : '';
  675. $region = isset( $_POST['region'] ) ? trim( $_POST['region'] ) : '';
  676.  
  677. switch ( $geo )
  678. {
  679. case 'region' :
  680.  
  681. // значения колонок в таблице для каждой страны
  682. $regions = array();
  683. $geoDownload = getStatOwenr('COUNT(Region) AS cdwn, Region', $where1 . $pform . " AND (Country = '$contry')", 'Region');
  684.  
  685.  
  686.  
  687. for($i = 0; $i < count($geoDownload); $i++)
  688. {
  689. $CodeReg = $geoDownload[$i]['Region'];
  690.  
  691. $cdwn = $geoDownload[$i]['cdwn'];
  692.  
  693. $fullname = getRegionName($contry, $CodeReg );
  694. if ($fullname == '') $fullname = $CodeReg;
  695.  
  696. if ( $CodeReg == '' )
  697. {
  698. $CodeReg = '-';
  699. $fullname = '<i>Не определено</i>';
  700. }
  701.  
  702. $regions[] = array( ( $i + 1 ), $CodeReg, $fullname, $cdwn);
  703. }
  704.  
  705. if (count($regions) > 0)
  706. {
  707. foreach ($regions as $key => $row) {
  708. $c[$key] = $row[3];
  709. }
  710. array_multisort($c, SORT_DESC, $regions);
  711.  
  712. $i = 1;
  713. foreach ($regions as $key => $row) {
  714. $regions[$key][3] = number_format($row[3], 0, ',', ' ');
  715. $regions[$key][0] = $i;
  716. $i++;
  717. }
  718. }
  719.  
  720.  
  721. if (count($regions) == 0) echo $regions = '';
  722. else echo json_encode($regions);
  723.  
  724. break;
  725.  
  726. case 'city' :
  727.  
  728. // значения колонок в таблице для каждой страны
  729. $regions = array();
  730. $geoDownload = getStatOwenr('COUNT(City) AS cdwn, City', $where1 . $pform . " AND (Country = '$contry') AND (Region = '$region')", 'City');
  731.  
  732. for($i = 0; $i < count($geoDownload); $i++)
  733. {
  734. $city = $geoDownload[$i]['City'];
  735. if ( $city == '' )
  736. {
  737. $city = '<i>Не определено</i>';
  738. }
  739.  
  740. $cdwn = $geoDownload[$i]['cdwn'];
  741.  
  742. $regions[] = array( ( $i + 1 ), $city, $cdwn );
  743. }
  744.  
  745. if (count($regions) > 0)
  746. {
  747. foreach ($regions as $key => $row) {
  748. $c[$key] = $row[2];
  749. }
  750. array_multisort($c, SORT_DESC, $regions);
  751.  
  752. $i = 1;
  753. foreach ($regions as $key => $row) {
  754. $regions[$key][2] = number_format($row[2], 0, ',', ' ');
  755. $regions[$key][0] = $i;
  756. $i++;
  757. }
  758. }
  759. if (count($regions) == 0) echo $regions = '';
  760. else echo json_encode($regions);
  761. break;
  762. }
  763.  
  764. exit;
  765. }
  766.  
  767.  
  768.  
  769. $s_result1 = getStatOwenr($fields1, $where1 . $pform, $group_by1);
  770. $sum = 0;
  771.  
  772. for($i = 0; $i < count($s_result1); $i++)
  773. {
  774. $key = $s_result1[$i]["ox"];
  775. if(isset($y[$key]))
  776. {
  777. $y[$key] = $s_result1[$i]["oy"];
  778. $h_cnt += $s_result1[$i]["oy"];
  779. $sum += $s_result1[$i]["Price"];
  780. }
  781. }
  782.  
  783. //заполняем массив с данными y_paid
  784. $s_result2 = getStatOwenr($fields1, $where1 . $pform . " AND (Price != 0)", $group_by1);
  785. for($i = 0; $i < count($s_result2); $i++)
  786. {
  787. $key = $s_result2[$i]["ox"];
  788. if(isset($y_paid[$key]))
  789. {
  790. $y_paid[$key] = $s_result2[$i]["oy"];
  791. $p_cnt += $s_result2[$i]["oy"];
  792. }
  793. }
  794.  
  795. //заполняем массив с данными y_uid
  796. $s_result2 = getStatOwenr($fields1, $where1 . $pform . " AND (UID != 'no uid')" , $group_by1);
  797. for($i = 0; $i < count($s_result2); $i++)
  798. {
  799. $key = $s_result2[$i]["ox"];
  800. if(isset($y_uid[$key]))
  801. {
  802. //$y_uid[$key] = $s_result2[$i]["oy"];
  803. $u_cnt += $s_result2[$i]["oy"];
  804. }
  805. }
  806.  
  807.  
  808. //значения по оси OY для ссылок
  809. $l_result = getLinksOwenr($fields2, $where2, 'URL');
  810. //print_r($l_result) and die;
  811. for($i = 0; $i < count($l_result); $i++)
  812. {
  813. $key = $l_result[$i]["ox"];
  814. if(isset($y_l[$key]))
  815. $y_l[$key] = $l_result[$i]["oy"];
  816. }
  817.  
  818. $sum = number_format($sum, 2, '.', ' ');
  819. $p_cnt = number_format($p_cnt, 0, '.', ' ');
  820. $p_cnt_android = $p_cnt;
  821.  
  822.  
  823. $summa =0; // сюда будем записывать общую сумму в рублях
  824. $valuta = array(); // массив валют
  825. $usd =0;
  826. $rubli =0;
  827. $total_rub_sum =0;
  828. $all_currency =array();
  829.  
  830.  
  831. $sales = array();
  832. $p_cnt_ipad = 0;
  833. $display_ipad = true;
  834. $display_android = true;
  835.  
  836. // при выборе платформы ipad или all считаем отдельно сумму покупок и количество продаж по платформе ipad
  837. if ( ( $_POST['platform'] == 'all' ) || ( $_POST['platform'] == 'ipad' ) || ( $_POST['platform'] == 'iphone' ) || ( $_POST['platform'] == 'ipad/iphone' ))
  838. {
  839. if ( ( $period != 'today' ) && ( $period != 'yesterday' ) )
  840. {
  841. //$ws .= " AND ( ( LENGTH(SKU) = 4 ) OR (SKU LIKE '%subscription%') )";
  842. $ws .= " AND ( ( LENGTH(SKU) = 4 ) OR (SKU NOT LIKE 'QTMG%') )";
  843.  
  844. if ( count($hash_sales) != 0)
  845. {
  846. $w_hash = implode(' OR ', $hash_sales);
  847. $ws .= ' AND ( ' . $w_hash . ' )';
  848. }
  849.  
  850. $s_result2 = getStatSales($ws);
  851. $sales = $s_result2;
  852.  
  853.  
  854. // --------------------------------- подсчет суммы в рублях
  855.  
  856.  
  857.  
  858. // Конвертируем валюту в рубли
  859. function convertRub($date, $total_sum, $currency)
  860. {
  861.  
  862.  
  863. // получим стоимость 1 доллара и преобразуем нашу валюту в него
  864. $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='$currency'");
  865. $myrow = mysql_fetch_array($result);
  866.  
  867. $dollar =0;
  868. $rub=0;
  869.  
  870. if($total_sum !=0)
  871. $dollar = $myrow['Rate'] / $total_sum;
  872.  
  873. // теперь доолар конвертируем в рубли и прибавляем к общей сумме
  874. $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
  875. $myrow = mysql_fetch_array($result);
  876.  
  877. if($dollar !=0)
  878. $rub = $myrow['Rate'] / $dollar;
  879.  
  880. return $rub;
  881.  
  882. }
  883.  
  884. // конвертация доолара в рубли
  885. function convertUSDtoRub($date, $total_sum, $currency){
  886.  
  887.  
  888.  
  889. if($currency !="RUB"){
  890. $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
  891. $myrow = mysql_fetch_array($result);
  892.  
  893. return $myrow["Rate"] * $total_sum;
  894. }
  895. else{
  896. return $total_sum;
  897. }
  898. }
  899.  
  900. for($i=0; $i < count($sales); $i++){
  901. $all_currency[] = $sales[$i]['CustomerCurrency'];
  902. }
  903.  
  904. $all_currency = array_unique($all_currency); // получили массив валют
  905.  
  906.  
  907.  
  908. foreach($all_currency as $cur_currency)
  909. {
  910.  
  911. $rub =0;
  912.  
  913. for($i=0; $i < count($sales); $i++)
  914. {
  915. $date = $sales[$i]['BeginDate'];
  916. $total_sum = $sales[$i]['total_sum'];
  917. $currency = $sales[$i]['CustomerCurrency'];
  918.  
  919.  
  920. if($cur_currency == $sales[$i]['CustomerCurrency'] AND $cur_currency !="RUB"
  921. AND $cur_currency !="USD"){
  922.  
  923. $rub += convertRub($date, $total_sum, $currency);
  924. $valuta[$currency] = $rub;
  925.  
  926. }
  927. elseif($cur_currency == $sales[$i]['CustomerCurrency'] AND $cur_currency =="RUB" ){
  928. $r = $total_sum;
  929. //$valuta["RUB"] += $r;
  930. $rubli +=$r;
  931. }
  932. elseif($cur_currency == $sales[$i]['CustomerCurrency'] AND $cur_currency =="USD" ){
  933. $rub = convertUSDtoRub($date, $total_sum, $currency);
  934. //$valuta["USD"] += $rub;
  935. $usd +=$rub;
  936. }
  937. }
  938. }
  939.  
  940.  
  941. // echo var_dump($valuta); массив валют и значений
  942. //echo var_dump($usd."<br/>"); //сумма usd в рублях
  943. // echo var_dump($rubli); сумма в рублях
  944. $total_rub_sum = array_sum($valuta) + $usd + $rubli; // общая сумма
  945.  
  946.  
  947. // -------------------------------------------------------------
  948.  
  949. $Sales = array();
  950. for( $i = 0; $i < count($sales); $i++)
  951. {
  952. $currency = $sales[$i]['CustomerCurrency'];
  953. $BeginDate = $sales[$i]['BeginDate'];
  954.  
  955. if ( isset ( $Sales["$currency"]["units_sold"] ) ) $Sales["$currency"]["units_sold"] += $sales[$i]['units_sold'];
  956. else $Sales["$currency"]["units_sold"] = $sales[$i]['units_sold'];
  957.  
  958. if ( isset ( $Sales[$currency]["total_sum"] ) ) $Sales[$currency]["total_sum"] += $sales[$i]['total_sum'];
  959. else $Sales[$currency]["total_sum"] = $sales[$i]['total_sum'];
  960.  
  961. if ( $currency !== 'USD' )
  962. {
  963. if ( isset ( $Sales[$currency]["usd_sum"] ) )
  964. $Sales[$currency]["usd_sum"] += ( ( 1 / getExchangeCurrency($BeginDate, $currency ) ) * $sales[$i]['total_sum'] );
  965. else $Sales[$currency]["usd_sum"] = ( ( 1 / getExchangeCurrency($BeginDate, $currency ) ) * $sales[$i]['total_sum'] );
  966. }
  967. else
  968. {
  969. if ( isset ( $Sales[$currency]["usd_sum"] ) ) $Sales[$currency]["usd_sum"] += $sales[$i]['total_sum'];
  970. else $Sales[$currency]["usd_sum"] = $sales[$i]['total_sum'];
  971. }
  972. $p_cnt_ipad += $sales[$i]['units_sold'];
  973. }
  974. }
  975. }
  976.  
  977.  
  978. // при выборе платформы all находим сумму и количество покупок по платформе Android
  979. if ( $_POST['platform'] == 'all' )
  980. {
  981.  
  982. // считаем величину p_cnt для андроида
  983. $p_cnt_android = 0;
  984. $s_result2 = getStatOwenr($fields1, $where1 . " AND (LENGTH(UID) >= 16 AND LENGTH(UID) < 32)" . " AND (Price != 0)", $group_by1);
  985. for($i = 0; $i < count($s_result2); $i++)
  986. {
  987. $key = $s_result2[$i]["ox"];
  988. if(isset($y_paid[$key]))
  989. {
  990. $p_cnt_android += $s_result2[$i]["oy"];
  991. }
  992. }
  993.  
  994. $s_result1 = getStatOwenr($fields1, $where1 . " AND (LENGTH(UID) >= 16 AND LENGTH(UID) < 32)", $group_by1);
  995. $sum_android = 0;
  996. for($i = 0; $i < count($s_result1); $i++)
  997. {
  998. $key = $s_result1[$i]["ox"];
  999. if(isset($y[$key]))
  1000. {
  1001. $sum_android += $s_result1[$i]["Price"];
  1002. }
  1003. }
  1004. $sum = number_format($sum_android, 2, '.', ' ');
  1005. }
  1006. elseif ( $_POST['platform'] == 'ipad' or $_POST['platform'] == 'iphone' or $_POST['platform'] == 'ipad/iphone')
  1007. {
  1008. $display_android = false;
  1009. }
  1010. elseif ( $_POST['platform'] == 'android' or $_POST['platform'] == 'ipad' or $_POST['platform'] == 'iphone')
  1011. {
  1012. $display_ipad = false;
  1013. }
  1014.  
  1015.  
  1016.  
  1017.  
  1018. if ( ( $period == 'interval' ) && ( count( $x ) > 30 ) )
  1019. {
  1020. $d_bedin = explode('-', $dateto);
  1021.  
  1022. $d_end = explode('-', $datebefore);
  1023.  
  1024.  
  1025. $e = mktime( 0, 0, 0, $d_end[1], $d_end[2], $d_end[0] );
  1026. $b = mktime( 0, 0, 0, $d_bedin[1], $d_bedin[2], $d_bedin[0] );
  1027. $date_step = ceil( $e - $b ) / 10;
  1028. $x1 = array();
  1029. while($b < $e)
  1030. {
  1031. $x1[] = date('Y-m-d', $b);
  1032. $b += $date_step;
  1033. }
  1034.  
  1035.  
  1036. // todo тут гдето ошибка
  1037. $x1[] = date('Y-m-d', $e);
  1038. $y1 = array();
  1039.  
  1040.  
  1041. //echo var_dump($y);
  1042. //exit();
  1043.  
  1044. for($i = 0; $i < count($x1); $i++)
  1045. {
  1046. $key = $x1[$i];
  1047. $y1[$key] = $y[$key];
  1048. }
  1049.  
  1050.  
  1051.  
  1052. $y2 = array();
  1053. for($i = 0; $i < count($x1); $i++)
  1054. {
  1055. $key = $x1[$i];
  1056. $y2[$key] = $y_l[$key];
  1057. }
  1058.  
  1059. $x = $x1; $y = $y1; $y_l = $y2;
  1060. }
  1061.  
  1062.  
  1063.  
  1064. // значения колонок в таблице для каждой страны
  1065. $GeoDownload = array();
  1066. $geoDownload = getStatOwenr('COUNT(Country) AS cdwn, Country, SUM(Price) as sum', $where1 . $pform, 'Country');
  1067.  
  1068. for($i = 0; $i < count($geoDownload); $i++)
  1069. {
  1070. $code = $geoDownload[$i]['Country'];
  1071. if ( $code != '')
  1072. {
  1073. $fullname = getCountryFullName( $code );
  1074. if ( count($fullname) == 0 )
  1075. {
  1076. $fullname[0] = '<i>Не определено</i>';
  1077. $fullname[1] = '</i>Undefined</i>';
  1078. }
  1079. }
  1080. else
  1081. {
  1082. $code = '-';
  1083. $fullname[0] = '<i>Не определено</i>';
  1084. $fullname[1] = '<i>Undefined</i>';
  1085. }
  1086.  
  1087. $lang = isset( $_SESSION["LANG"] ) ? $_SESSION["LANG"] : 'eng';
  1088. if ( $lang === 'ru') $GeoDownload[ $code ][] = $fullname[0]; else $GeoDownload[$code][] = $fullname[1];
  1089.  
  1090. // количество платных загрузок по стране
  1091. if ( ( $period != 'today' ) && ( $period != 'yesterday' ) )
  1092. {
  1093. $geoPaid = getStatSales($ws . " AND (CountryCode = '$code')");
  1094. $PaidUnits = 0;
  1095. $PaidPrice = 0;
  1096. for( $j = 0; $j < count($geoPaid); $j++)
  1097. {
  1098. $currency = $geoPaid[$j]['CustomerCurrency'];
  1099. $BeginDate = $geoPaid[$j]['BeginDate'];
  1100.  
  1101. $PaidUnits += $geoPaid[$j]['units_sold'];
  1102.  
  1103. if ( $currency !== 'USD' )
  1104. {
  1105. $PaidPrice += ( ( 1 / getExchangeCurrency($BeginDate, $currency ) ) * $geoPaid[$j]['total_sum'] );
  1106. }
  1107. else
  1108. {
  1109. $PaidPrice += $geoPaid[$j]['total_sum'];
  1110. }
  1111. }
  1112. }
  1113. else
  1114. {
  1115. $PaidUnits = '';
  1116. $PaidPrice = '';
  1117. }
  1118.  
  1119. $GeoDownload[$code][] = $geoDownload[$i]['cdwn'];
  1120. $GeoDownload[$code][] = $PaidUnits;
  1121. $GeoDownload[$code][] = $PaidPrice;
  1122. }
  1123.  
  1124.  
  1125.  
  1126. if ( count($GeoDownload) > 0 )
  1127. {
  1128. foreach ($GeoDownload as $key => $row)
  1129. {
  1130. $Cprice[$key] = $row[3];
  1131. $cpaid[$key] = $row[2];
  1132. $cdwn[$key] = $row[1];
  1133. $cname[$key] = $row[0];
  1134. }
  1135.  
  1136. array_multisort($Cprice, SORT_DESC, $cpaid, SORT_DESC, $cdwn, SORT_DESC, $cname,SORT_ASC, $GeoDownload);
  1137. }
  1138.  
  1139. }
  1140.  
  1141.  
  1142. $y_l_get = serialize($y_l);
  1143. $x_get = serialize($x);
  1144. $y_get = serialize($y);
  1145. $y_paid_get = serialize($y_paid);
  1146. $y_uid_get = serialize($y_uid);
  1147. //$sum = number_format($sum, 2, '.', '');
  1148.  
  1149.  
  1150. ?>
  1151.  
  1152.  
  1153. <table class="tab_round_max" style="width:768px">
  1154. <tr>
  1155. <td class="table_head_3" style="text-align:center"><p style="font-size:20px;"><?=Yii::t("main","Statistic")?></p></td>
  1156. </tr>
  1157. <tr>
  1158. <td>
  1159.  
  1160. <!--<link rel="stylesheet" href="/js/datepicker/css/datepicker.css" type="text/css" />
  1161. <script type="text/javascript" src="/js/datepicker/js/datepicker.js"></script>
  1162. <script type="text/javascript" src="/js/datepicker/js/eye.js"></script>
  1163. <script type="text/javascript" src="/js/datepicker/js/utils.js"></script>-->
  1164.  
  1165.  
  1166. <!-- datepicker -->
  1167. <link href="/css/ui-darkness/jquery-ui-1.10.4.custom.css" rel="stylesheet">
  1168. <script src="/js/jquery-1.10.2.js"></script>
  1169. <script src="/js/jquery-ui-1.10.4.custom.js"></script>
  1170.  
  1171. <script type="text/javascript">
  1172. $(function() {
  1173. $('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
  1174. });
  1175. </script>
  1176.  
  1177.  
  1178.  
  1179.  
  1180. <script type="text/javascript">
  1181.  
  1182. function FormRequest(par)
  1183. {
  1184. console.log('Yup! '+par);
  1185. if ( $("select[name='period'] :selected").val() == 'interval' )
  1186. {
  1187.  
  1188. var begin = $('#dateto').val();
  1189. var end = $('#datebefore').val();
  1190.  
  1191. if( begin == '' )
  1192. {
  1193. alert('Статистика за выбранный период не может быть показана, укажите начало интервала!',"Ошибка ввода данных");
  1194.  
  1195. return false;
  1196. }
  1197. else if ( end == '' )
  1198. {
  1199. alert('Статистика за выбранный период не может быть показана, укажите конец интервала!',"Ошибка ввода данных");
  1200.  
  1201. return false;
  1202. }
  1203. else if ( begin > end)
  1204. {
  1205. alert('Статистика за выбранный период не может быть показана, неверно указаны границы интервала!',"Ошибка ввода данных");
  1206.  
  1207. return false;
  1208. }
  1209. else
  1210. {
  1211. var reg = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/i
  1212. var res1 = reg.exec(begin);
  1213. var res2 = reg.exec(end);
  1214. if ( ( res1 == null ) || ( res2 == null ) )
  1215. {
  1216. alert('Статистика за выбранный период не может быть показана, неверно указаны границы интервала!',"Ошибка ввода данных");
  1217.  
  1218. return false;
  1219. }
  1220.  
  1221. }
  1222. }
  1223.  
  1224. if ( par == 'geo' ) $('input[name=stat_type]').val('geo');
  1225. document.forms['form_period'].submit();
  1226. }
  1227.  
  1228. $(function(){
  1229. $("select[name='period']").change(function () {
  1230.  
  1231. if($("select[name='period'] :selected").val() == 'interval')
  1232. {
  1233. $('#ID_to').css('display', 'table-row');
  1234. }
  1235. else
  1236. {
  1237. $('#dateto').val('');
  1238. $('#datebefore').val('');
  1239.  
  1240. $('#ID_to').css('display', 'none');
  1241. }
  1242. })
  1243. .change();
  1244.  
  1245. });
  1246.  
  1247.  
  1248.  
  1249. // Ajax Action - детальная статистика
  1250. <?
  1251. $if=explode('_',$public_hash);
  1252. if ($if[0]=='all') {?>
  1253.  
  1254.  
  1255.  
  1256. $(function(){
  1257.  
  1258. $('table#info_stat tr:gt(0)').hover(function(){
  1259.  
  1260. $(this).css("cursor" , "pointer");
  1261. });
  1262.  
  1263.  
  1264. $('table#info_stat tr:gt(0)').click(function(){
  1265. if ($(this).hasClass('active'))
  1266. {
  1267. if ($(this).hasClass('showed'))
  1268. {
  1269. $('.showed').removeClass('showed');
  1270. var prows = $(this).attr('id');
  1271. $('.inforows').remove();
  1272.  
  1273. }
  1274. else
  1275. {
  1276. $('.showed').removeClass('showed');
  1277. $(this).addClass('showed');
  1278. var tr_style = '';
  1279. if($(this).css("background-color")=='rgb(255, 255, 255)') tr_style='style="background-color:white"';
  1280.  
  1281. // строка, по которой требуется вывести детальную статистику
  1282. var prows = $(this).attr('id');
  1283. //alert(prows);
  1284.  
  1285. // если выбран период Интервал, то получаем значения интервалов
  1286. var to = '';
  1287. var before = '';
  1288. if($("select[name=period] :selected").val() == 'interval')
  1289. {
  1290. to = $('#dateto').val();
  1291. before = $('#datebefore').val();
  1292. }
  1293.  
  1294. $.ajax({
  1295. url: "/publication/partialstatistic",
  1296. type: 'POST',
  1297. 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() },
  1298. cache: false,
  1299. beforeSend: function()
  1300. {
  1301.  
  1302. $('tr').remove('tr[id^=inforows]');
  1303. var html = '<img src="http://desiredgift.me/images/loading.gif" style="margin: 40px" alt="Load data"/>';
  1304. $('<tr id="preload' + prows + '"><td colspan="2" style="text-align: center">' + html + '</td></tr>').insertAfter('#' + prows);
  1305. },
  1306. success: function(html)
  1307. {
  1308.  
  1309. $('tr').remove('#preload' + prows);
  1310. //console.log('Here');
  1311. $('<tr id="inforows' + prows + '" class="inforows" '+tr_style+'><td colspan="2">' + html + '</td></tr>').insertAfter('#' + prows);
  1312. $('#inforows' + prows + '>td').css({padding: "25px"});
  1313.  
  1314.  
  1315. $('table#table_info ').css({fontSize : "12px", marginTop : "10px", marginBottom: "10px"});
  1316. //$('table#table_info td').css({width : "340px"});
  1317. $('table#table_info td:odd').css({textAlign : "center"});
  1318. $('table#table_info td:even').css({textAlign : "left" });
  1319. $('table#table_info td:eq(1)').css({textAlign : "center"});
  1320. $('table#table_info tr:eq(0)').css({fontStyle : "italic"});
  1321.  
  1322. }
  1323. });
  1324.  
  1325. }
  1326. }
  1327. });
  1328.  
  1329. });
  1330. <? }?>
  1331.  
  1332.  
  1333. </script>
  1334.  
  1335. <style type="text/css">
  1336. #contry table
  1337. {
  1338. border-spacing: 0px;
  1339. border-collapse: collapse;
  1340. margin: 10px auto;
  1341. width: 656px;
  1342. }
  1343.  
  1344. .firstrows
  1345. {
  1346. height:53px;
  1347. background: red;
  1348. }
  1349.  
  1350. #contry table tr
  1351. {
  1352. background: #fff;
  1353. }
  1354.  
  1355. #contry table table tr
  1356. {
  1357. background-color: rgb(249,249,249);
  1358. }
  1359.  
  1360. #contry table table
  1361. {
  1362. width: 600px
  1363. }
  1364.  
  1365. #contry td
  1366. {
  1367. border-bottom: 1px Solid #C0C0C0;
  1368. }
  1369.  
  1370.  
  1371. #contry td, #contry td td
  1372. {
  1373. text-align: center;
  1374. }
  1375.  
  1376. #contry td td img
  1377. {
  1378. padding: 3px;
  1379. }
  1380.  
  1381. #contry
  1382. {
  1383. width: 680px;
  1384. margin: 0px auto;
  1385. color:#000000;
  1386. }
  1387.  
  1388. #contry tr td
  1389. {
  1390. padding: 3px;
  1391. font-weight: bold;
  1392. }
  1393.  
  1394.  
  1395. table.contryheader
  1396. {
  1397. width: 761px;
  1398. margin-left: 4px;
  1399.  
  1400. height:53px;
  1401. position: relative;
  1402. }
  1403.  
  1404. div.contrybody
  1405. {
  1406. width: 715px;
  1407. margin: 0px 27px;
  1408. border-right: Solid 1px #AAA;
  1409. border-left: Solid 1px #AAA;
  1410. background-color: rgb(249,249,249);
  1411. }
  1412.  
  1413.  
  1414.  
  1415. </style>
  1416.  
  1417. <script type="text/javascript">
  1418. $(function(){
  1419.  
  1420. $('#contry tr:nth-child(even)').css('background', '#fff');
  1421. $('#contry tr td').css('text-align', 'center');
  1422. $('#contry tr td:nth-child(n+4)').css('text-align', 'right');
  1423. $('#contry tr td:nth-child(1)').css('padding-left', '15px');
  1424. $('#contry tr td:nth-child(6)').css('padding-right', '20px');
  1425.  
  1426. $('#contry tr td:nth-child(1)').css({'width': '40px'});
  1427. $('#contry tr td:nth-child(2)').css({'width': '60px'});
  1428. $('#contry tr td:nth-child(4)').css({'width': '100px', 'padding-right' : '15px'});
  1429. $('#contry tr td:nth-child(5)').css({'width': '100px', 'padding-right' : '20px'});
  1430. $('#contry tr td:nth-child(6)').css({'width': '100px'});
  1431.  
  1432. $('#contry tr').css('cursor', 'pointer');
  1433. $('#contry tr:first()').css('cursor', 'auto');
  1434.  
  1435. // указатель на стоку, по которой был произведён click
  1436. var ClickRows = null;
  1437.  
  1438. $('#contry tr').click( function() {
  1439.  
  1440. // id таблицы, строка которой вызвала событие
  1441. var table_id = $(this).parents('table').attr('id');
  1442. table_id = table_id.split('_')[0];
  1443.  
  1444. // строка-заголовок таблицы не реагирует на событие
  1445. if ( table_id != 'contry')
  1446. if ( $(this).index() == 0 ) return false;
  1447.  
  1448. // строка, в которую загружена таблица, не реагирует на событие
  1449. if ( $(this).children('td').children('table').size() > 0) return false;
  1450.  
  1451. var handler = $(this);
  1452.  
  1453. // строки из таблицы с id=city не реагируют на событие
  1454. if ( table_id == 'city' ) return false;
  1455.  
  1456. if ( ClickRows != null )
  1457. {
  1458. if ( $(this).next().children('td').children('table').size() > 0)
  1459. {
  1460. $(this).next().remove();
  1461. return false;
  1462. }
  1463. }
  1464.  
  1465. ClickRows = $(this);
  1466.  
  1467. var to = '';
  1468. var before = '';
  1469. if($("select[name=period] :selected").val() == 'interval')
  1470. {
  1471. to = $('#dateto').val();
  1472. before = $('#datebefore').val();
  1473. }
  1474.  
  1475. if ( table_id == 'contry' )
  1476. {
  1477. // код страны
  1478. var contry = $(this).children('td:eq(1)').html();
  1479. if ( contry == '-') contry = '';
  1480.  
  1481. $.ajax({
  1482. url: "/publication/partialstatistic",
  1483. type: 'POST',
  1484. data: {'dateto' : to, 'datebefore' : before, contry: contry, geo: 'region', 'period' : $('select[name=period]').val(), 'public' : $('select[name=public]').val(), 'platform' : $('select[name=platform]').val()},
  1485. beforeSend: function(){
  1486. var row = '<tr><td colspan="6"><img src="http://desiredgift.me/images/loading.gif" alt="Load data"/></td></tr>';
  1487. handler.after(row);
  1488. },
  1489. success: function(html) {
  1490. console.log(html);
  1491. if(html == '')
  1492. {
  1493. handler.next().remove();
  1494. }
  1495. else
  1496. {
  1497. var regions = jQuery.parseJSON(html);
  1498. if ( regions == null)
  1499. {
  1500. handler.next().remove();
  1501. return;
  1502. }
  1503.  
  1504. var row = '<table id="regions_' + contry + '">' +
  1505. '<tr>' +
  1506. '<td>№</td>' +
  1507. '<td>Код региона</td>' +
  1508. '<td>Регион</td>' +
  1509. '<td>Загружено</td>' +
  1510. '</tr>';
  1511. for( var i = 0; i < regions.length; i++ )
  1512. {
  1513. row += '<tr>' +
  1514. '<td>' + regions[i][0] + '</td>' +
  1515. '<td>' + regions[i][1] + '</td>' +
  1516. '<td>' + regions[i][2] + '</td>' +
  1517. '<td>' + regions[i][3] + '</td>' +
  1518. '</tr>';
  1519. }
  1520. row += '</table>';
  1521. handler.next().find('td').html(row);
  1522. $('#contry table tr:nth-child(1)').css({'background': 'url(http://desiredgift.me/images/spacer.png) repeat-x', 'height' : '40px'});
  1523. $('#contry table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
  1524. $('#contry table tr:nth-child(1) td:not(:nth-child(4))').css({'background' : 'url(http://desiredgift.me/images/spaceri.jpg) no-repeat right'});
  1525. $('#contry table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
  1526. $('#contry table tr:nth-child(1) td:nth-child(4)').css({'width' : '150px'});
  1527. $('#contry table tr:nth-child(1) td:nth-child(1)').css({'width' : '50px'});
  1528. $('#contry table tr:nth-child(n+2) td:nth-child(2)').css({'width' : '100px'});
  1529. $('#contry table tr:nth-child(n+2) td:nth-child(n+1)').css({'text-align' : 'center'});
  1530. $('#contry table tr:nth-child(n+2) td:nth-child(4)').css({'text-align' : 'right', 'padding-right' : '50px'});
  1531.  
  1532. $('#contry table tr:nth-child(n+2)').css('cursor', 'pointer');
  1533. }
  1534. },
  1535. });
  1536. }
  1537. else if ( table_id == 'regions' )
  1538. {
  1539. // код страны
  1540. var contry = $(this).parent().parent().parent().parent().prev().children('td:eq(1)').html();
  1541. if ( contry == '-') contry = '';
  1542.  
  1543. // код региона
  1544. var region = $(this).children('td:eq(1)').html();
  1545. if ( region == '-') region = '';
  1546.  
  1547. $.ajax({
  1548. url: "publication/partialstatistic",
  1549. type: 'POST',
  1550. 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()},
  1551. beforeSend: function(){
  1552. var row = '<tr><td colspan="4"><img src="http://desiredgift.me/images/loading.gif" alt="Load data"/></td></tr>';
  1553. handler.after(row);
  1554. },
  1555. success: function(html) {
  1556.  
  1557. if(html == '')
  1558. {
  1559. handler.next().remove();
  1560. }
  1561. else
  1562. {
  1563. var regions = jQuery.parseJSON(html);
  1564. var row = '<table id="city_' + region + '">' +
  1565. '<tr>' +
  1566. '<td>№</td>' +
  1567. '<td>Город</td>' +
  1568. '<td>Загружено</td>' +
  1569. '</tr>';
  1570. for( var i = 0; i < regions.length; i++ )
  1571. {
  1572. row += '<tr>' +
  1573. '<td>' + regions[i][0] + '</td>' +
  1574. '<td>' + regions[i][1] + '</td>' +
  1575. '<td>' + regions[i][2] + '</td>' +
  1576. '</tr>';
  1577.  
  1578. }
  1579. row += '</table>';
  1580. handler.next().find('td').html(row);
  1581. $('#contry table table tr:nth-child(1)').css({'background': 'url(http://desiredgift.me/images/spacer.png) repeat-x', 'height' : '40px'});
  1582. $('#contry table table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
  1583. $('#contry table table tr:nth-child(1) td:not(:nth-child(3))').css({'background' : 'url(http://desiredgift.me/images/spaceri.jpg) no-repeat right'});
  1584. $('#contry table table tr:nth-child(1) td').css({'font-size' : '14px', 'color' : '#fff', 'text-align' : 'center'});
  1585. $('#contry table table tr:nth-child(1) td:nth-child(1)').css({'width' : '50px'});
  1586. $('#contry table table tr:nth-child(n+2) td:nth-child(3)').css({'width' : '100px'});
  1587. $('#contry table table tr:nth-child(n+2) td:nth-child(n+1)').css({'text-align' : 'center'});
  1588. $('#contry table table tr:nth-child(n+2) td:nth-child(3)').css({'text-align' : 'right', 'padding-right' : '50px'});
  1589. }
  1590.  
  1591. }
  1592. });
  1593. }
  1594. return false;
  1595. })
  1596. })
  1597. </script>
  1598.  
  1599. <form method="post" name="form_period" class="jNice" id="my">
  1600. <center>
  1601. <table style="width:80%;text-align:left;margin-top: 15px">
  1602. <tbody>
  1603. <tr>
  1604. <td>
  1605. <table>
  1606. <tr>
  1607. <td>
  1608. <p style="margin:0px;"><?=Yii::t("main","Period")?></p>
  1609. <select id="izdsel" name="period" >
  1610. <option <?=("today"==$_POST['period'])?'selected':'';?> value="today"><?=Yii::t("main","Today")?></option>
  1611. <option <?=("yesterday"==$_POST['period'])?'selected':'';?> value="yesterday"><?=Yii::t("main","Yesterday")?></option>
  1612. <option <?=("7days"==$_POST['period'])?'selected':'';?> value="7days"><?=Yii::t("main","Last 7 days")?></option>
  1613. <option <?=("30days"==$_POST['period'])?'selected':'';?> value="30days"><?=Yii::t("main","Last 30 days")?></option>
  1614. <option <?=("thismonth"==$_POST['period'])?'selected':'';?> value="thismonth"><?=Yii::t("main","This month")?></option>
  1615. <option <?=("lastmonth"==$_POST['period'])?'selected':'';?> value="lastmonth"><?=Yii::t("main","Last month")?></option>
  1616. <option <?=("last6month"==$_POST['period'])?'selected':'';?> value="last6month"><?=Yii::t("main","Last 6 month")?></option>
  1617. <option <?=("thisyear"==$_POST['period'])?'selected':'';?> value="thisyear"><?=Yii::t("main","This year")?></option>
  1618. <option <?=("lastyear"==$_POST['period'])?'selected':'';?> value="lastyear"><?=Yii::t("main","Last year")?></option>
  1619. <option <?=("all"==$_POST['period'])?'selected':'';?> value="all"><?=Yii::t("main","All time")?></option>
  1620. <option <?=("interval"==$_POST['period'])?'selected':'';?> value="interval"><?=Yii::t("main","Date interval")?></option>
  1621. </select>
  1622. </td>
  1623. <td>
  1624. <p style="margin:0px;"><?=Yii::t("main","Platform")?></p>
  1625. <select id="izdsel1" name="platform" >
  1626. <option <?=("all"==$_POST['platform'])?'selected':'';?> value="all"><?=Yii::t("main","All")?></option>
  1627. <option <?=("ipad/iphone"==$_POST['platform'])?'selected':'';?> value="ipad/iphone"><?=Yii::t("main","iPad/iPhone")?></option>
  1628. <? if($is_separated_stat):?>
  1629. <option <?=("ipad"==$_POST['platform'])?'selected':'';?> value="ipad">iPad</option>
  1630. <option <?=("iphone"==$_POST['platform'])?'selected':'';?> value="iphone">iPhone</option>
  1631. <? endif;?>
  1632. <option <?=("android"==$_POST['platform'])?'selected':'';?> value="android">Android</option>
  1633. </select>
  1634.  
  1635. <!-- <input type="hidden" id="izdsel" name="platform" value="ipad"> -->
  1636. </td>
  1637. <td>
  1638. <p style="margin:0px;"><?=Yii::t("main","Publication")?></p>
  1639. <select name="public" id="spsel" style="width:290px;">
  1640. <? foreach($_SESSION['pub'] as $key=>$pub){?>
  1641. <option <?=("all_".$key==$public_hash)?'selected':'';?> value="all_<?=$key;?>"><?=Yii::t("main","Publication")?>: <?=key($pub)?></option>
  1642. <?foreach($_SESSION['pub'][$key][key($pub)] as $ikey=>$issue){?>
  1643. <option <?=($ikey==$public_hash)?'selected':'';?> value="<?=$ikey;?>">&nbsp&nbsp&nbsp&nbsp<?=$issue;?></option>
  1644. <?}?>
  1645. <?}?>
  1646. </select>
  1647. </td>
  1648. </tr>
  1649. </table>
  1650. </td>
  1651. </tr>
  1652. <tr id="ID_to">
  1653. <td >
  1654. <table>
  1655. <tr>
  1656. <td>
  1657. <span style="margin:0px;"> <?=Yii::t("main","From")?></span>
  1658. <input type="text" name="dateto" id="dateto" class="datepicker" value="<?=$dateto?>" >
  1659. </td>
  1660. <td>
  1661. <span style="margin:0px;"><?=Yii::t("main","To")?></span>
  1662. <input type="text" name="datebefore" id="datebefore" class="datepicker" value="<?=$datebefore?>" >
  1663. </td>
  1664. </tr>
  1665. </table>
  1666.  
  1667. </td>
  1668. </tr>
  1669. <tr>
  1670. <td style=" vertical-align:top;">
  1671. <input type="hidden" name="stat_type" value="show" />
  1672. <table align="left">
  1673. <tr>
  1674.  
  1675. <td style="vertical-align:top;">
  1676. <center>
  1677. <a class="caption_3" onclick="FormRequest('show')" style="text-decoration:none;">
  1678. <span class="span_button_submit">
  1679. <input name="yt0" value="<?=Yii::t("main","Show")?>" type="submit">
  1680. </span>
  1681. </a>
  1682. </center>
  1683. </td>
  1684.  
  1685. <td style="vertical-align:top;">
  1686. <center>
  1687. <a class="caption_3" onclick="FormRequest('geo')" style="text-decoration: none;">
  1688. <span class="span_button_submit">
  1689. <input name="yt0" value="<?=Yii::t("main","Geo")?>" type="submit">
  1690. </span>
  1691. </a>
  1692. </center>
  1693. </td>
  1694.  
  1695. </tr>
  1696. </table>
  1697. </td>
  1698. </tr>
  1699. </tbody>
  1700. </table>
  1701. </center>
  1702. </form>
  1703.  
  1704. </td>
  1705. </tr>
  1706.  
  1707.  
  1708.  
  1709. <?php
  1710. //print_r($stat_type) and die;
  1711. if ( $stat_type == 'geo'): ?>
  1712. <tr>
  1713. <td style="">
  1714. <?php if ( count($GeoDownload) > 1 )
  1715. {
  1716.  
  1717. /*echo '<table class="contryheader">';
  1718.  
  1719. echo '</table>';*/
  1720.  
  1721. echo '<div class="contrybody">';
  1722. echo '<table id="contry">';
  1723. echo '<tr>';
  1724. echo '<td>№</td><td>Код</td><td>Cтрана</td><td>Загружено</td><td>Куплено</td><td>Выручка, $</td>';
  1725. echo '</tr>';
  1726. $i = 1;
  1727. foreach( $GeoDownload as $CountryCode => $RowsData )
  1728. {
  1729. echo '<tr>';
  1730. echo '<td>' . $i . '</td>';
  1731. echo '<td>' . $CountryCode . '</td>';
  1732. echo '<td>' . $RowsData[0] . '</td>';
  1733. echo '<td>' . number_format($RowsData[1], 0, ',', ' ') . '</td>';
  1734.  
  1735. if($RowsData[2]){
  1736. echo '<td>' . number_format($RowsData[2], 0, ',', ' ') . '</td>';
  1737. }else{
  1738. echo '<td> 0 </td>';
  1739. }
  1740.  
  1741. if($RowsData[3]){
  1742. echo '<td>' . number_format($RowsData[3], 0, ',', ' ') . '</td>';
  1743. }else{
  1744. echo '<td> 0 </td>';
  1745. }
  1746.  
  1747.  
  1748. echo '</tr>';
  1749. $i++;
  1750. }
  1751. echo '</table>';
  1752. echo '</div>';
  1753.  
  1754. } ?>
  1755.  
  1756. </td>
  1757. </tr>
  1758. </table>
  1759. <?php endif; ?>
  1760.  
  1761. <?php if ( $stat_type == 'show'): ?>
  1762. <tr>
  1763. <td><div id='myDiv' style="text-align: center;">
  1764. <style type="text/css">
  1765. .hidden{
  1766. /*visibility:hidden; */
  1767. display: none;
  1768. /*margin-top: -650px*/
  1769. }
  1770. </style>
  1771. <script type="text/javascript">
  1772. $(function(){
  1773. $('#lnk').click(function(){
  1774. $('#links').removeClass('hidden');
  1775. $('#downloads').addClass('hidden');
  1776. return false;
  1777. })
  1778. $('#downl').click(function(){
  1779. $('#links').addClass('hidden');
  1780. $('#downloads').removeClass('hidden');
  1781. return false;
  1782. })
  1783. })
  1784. </script>
  1785. <!-- <pre>
  1786. <? print_r($x)?>
  1787. <? print_r($y)?>
  1788. <? print_r($y_l)?>
  1789. </pre> -->
  1790. <div style="max-width: 696px; margin-left: 31px; ">
  1791. <div id="downloads">
  1792. <IMG SRC='/pchart/examples/example.php?x=<?=$x_get?>&y=<?=$y_get?>&y_paid=&y_uid='/>
  1793. </div>
  1794.  
  1795. <!-- <IMG id="links" class="hidden" SRC='/pchart/examples/example.php?x=<?=$x_get?>&y=<?=$y_l_get?>'/> -->
  1796. <div id="links" class="hidden" style="width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
  1797. <table width="680" cellspacing="0" cellpadding="0" border="0" style="color:black;">
  1798. <? if(count($l_result)!=0) {?>
  1799.  
  1800.  
  1801. <tr>
  1802. <td style="font-size:18px;font-weight:bold;padding-top:15px; padding-left:20px;text-align:left;"><?=Yii::t("main","Urls")?></td>
  1803. <td style="font-size:18px;font-weight:bold;padding-top:15px;" align="center"><?=Yii::t("main","Follows")?></td>
  1804. </tr>
  1805. <? for ($i=0; $i<count($l_result); $i++) {?>
  1806.  
  1807. <tr style="<?=($i%2)?"background-color:white":""?>">
  1808. <td style="width:auto; padding:4px 10px 4px 20px;;">
  1809. <a style="color:black;" target="_blank" href="<?=$l_result[$i]['URL']?>"><?=$l_result[$i]['URL']?></a>
  1810. </td>
  1811.  
  1812. <td style="width:auto;" align="center">
  1813. <?=$l_result[$i]['oy']?>
  1814. </td>
  1815. </tr>
  1816. <? }
  1817. }
  1818. else{?>
  1819. <tr>
  1820. <td><center><?=Yii::t("main","No data available for selected period!")?></center></td>
  1821. </tr>
  1822. <?}?>
  1823. </table>
  1824. </div>
  1825. </div>
  1826. </div>
  1827. </td>
  1828. </tr>
  1829.  
  1830. <tr>
  1831. <td >
  1832.  
  1833. <table >
  1834. <tr>
  1835.  
  1836. <td style="width:50%;">
  1837. <center>
  1838. <a class="caption_3" href="#" id="lnk" style="font-weight:bold; color:white; text-decoration: none;" >
  1839. <span class="span_button_submit">
  1840. <input name="yt0" value="<?=Yii::t("main","Links")?>" type="submit" style=" font-size: 16px; width:120px;">
  1841. </span>
  1842. </a>
  1843. </center>
  1844. </td>
  1845. <td style="width:50%;">
  1846. <center>
  1847. <a class="caption_3" href="#" id="downl" style="font-weight:bold; color:white; text-decoration: none;" >
  1848. <span class="span_button_submit" >
  1849. <input name="yt0" value="<?=Yii::t("main","Downloads")?>" type="submit" style=" font-size: 16px; width:200px;">
  1850. </span>
  1851. </a>
  1852. </center>
  1853. </td>
  1854.  
  1855. </tr>
  1856. </table>
  1857.  
  1858. </td>
  1859. </tr>
  1860. </table>
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866. <div style="width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
  1867. <!-- <div id="srows"></div> -->
  1868. <table width="680" cellspacing="0" cellpadding="0" border="0" id="info_stat" style="color:black;">
  1869. <tr style="background-color: #DEDEDE;">
  1870. <td style="font-size:18px;font-weight:bold;padding:15px 15px; text-align:center;"><?=Yii::t("main","Time period")?></td>
  1871. <td style="font-size:18px;font-weight:bold;padding:15px 15px; text-align:center;"><?=Yii::t("main","Downloads")?></td>
  1872. </tr>
  1873. <?
  1874. if($flag_day)
  1875. {
  1876. $count = count($x) - 1;
  1877. }
  1878. else
  1879. {
  1880. $count = count($x);
  1881. }
  1882.  
  1883. for($i = 0; $i < $count; $i++){?>
  1884.  
  1885. <?php
  1886. if($flag_day)
  1887. {
  1888. //echo $x[$i] . " - " . $x[$i + 1];
  1889. $v_x = $x[$i] . " - " . $x[$i + 1];
  1890. }
  1891. else
  1892. {
  1893. //echo $x[$i];
  1894. $v_x = $x[$i];
  1895. }
  1896. $v_x1 = str_replace(":", 't', $v_x);
  1897. $v_x1 = str_replace(' ', '', $v_x1);
  1898. $v_x1 = str_replace('/', 'd', $v_x1);
  1899. ?>
  1900. <tr id="<?=$v_x1?>" style="<?=($i%2)?"background-color:white":""?>" <?=($y[$x[$i]]!=0)?'class="active"':''?>>
  1901. <td style="width:340px">
  1902. <div style="text-align: center; "><strong><span style="padding-left:10px;"><?=$v_x?></span></strong></div>
  1903. </td>
  1904.  
  1905. <td style="width:340px;" align="center">
  1906. <div style="text-align: right; padding-right: 150px; "><strong><?=$y[$x[$i]]?></strong></div>
  1907. </td>
  1908. </tr>
  1909. <?
  1910. }?>
  1911. </table>
  1912. </div>
  1913.  
  1914. <div style=" width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
  1915. <table width="680" cellspacing="0" cellpadding="0" border="0" style="color: black;">
  1916.  
  1917. <tr style="background-color: #DEDEDE;">
  1918. <td colspan="3" style="font-size:18px;font-weight:bold;padding:15px 15px;text-align:center;"><?=Yii::t("main","Units")?></td>
  1919. </tr>
  1920. <tr style="font-weight: bold; text-align: center; background-color:white">
  1921. <td style="width: 50%, text-align:center;"><?=Yii::t("main","All")?></td>
  1922. <td style="width: 50%; text-align: right; padding-right: 150px"><?=$h_cnt;?></td>
  1923. </tr>
  1924.  
  1925. <?php
  1926. $display_android = false;
  1927. if($display_ipad && $display_android) $class_old = '';
  1928. elseif( ($display_ipad && !$display_android) || (!$display_ipad && $display_android) ) $class_old = 'background-color:white';
  1929.  
  1930.  
  1931.  
  1932. if($display_ipad)
  1933. {
  1934. ?>
  1935. <tr style="font-weight: bold; text-align: center;">
  1936. <td><?=Yii::t("main","iPad Paid")?></td>
  1937.  
  1938. <?php
  1939.  
  1940. if ( count($sales) != 0 ) echo '<td style="text-align: right; padding-right: 150px">'.$p_cnt_ipad . '</td>';
  1941. else echo '<td><div style="font-style: italic; font-size: 12px">'.Yii::t("main","No data available for selected period!").'</div></td>';
  1942. ?>
  1943.  
  1944. </tr>
  1945. <?php
  1946.  
  1947. if( $display_android) $class = "background-color:white;"; else $class= "";
  1948. }
  1949.  
  1950.  
  1951. if($display_android)
  1952. {
  1953. ?>
  1954. <tr style="font-weight: bold; text-align: center; <?=$class?>">
  1955. <td>Android Paid</td>
  1956. <td style="text-align: right; padding-right: 150px"><?=$p_cnt_android?></td>
  1957. </tr>
  1958. <?php
  1959.  
  1960. }
  1961.  
  1962. ?>
  1963. <tr style="font-weight: bold; text-align: center; <?=(isset($class_old))?$class_old:'';?>">
  1964. <td><?=Yii::t("main","With")?> UID:</td>
  1965. <td style="text-align: right; padding-right: 150px"><?=$u_cnt;?></td>
  1966. </tr>
  1967.  
  1968. </table>
  1969. </div>
  1970.  
  1971.  
  1972.  
  1973. <div style="width: 696px; background-color: rgb(249,249,249); margin-bottom: 27px">
  1974. <table width="680" cellspacing="0" cellpadding="0" border="0" style="color:black;">
  1975. <tbody>
  1976. <tr style="background-color: #DEDEDE">
  1977. <td colspan="3" style="font-size:18px;font-weight:bold;padding:15px 15px;text-align:center;"><?=Yii::t("main","Sales")?></td>
  1978. </tr>
  1979. <?php if($display_ipad) {?>
  1980. <tr>
  1981. <td colspan="3" style="font-size:14px;font-weight:bold; padding-bottom: 5px">iOS</td>
  1982. </tr>
  1983. <tr>
  1984.  
  1985. <table style="color: black;">
  1986. <tr>
  1987. <td>
  1988. <?php
  1989. if(isset($Sales))
  1990. if ( count($Sales) != 0)
  1991. {
  1992. echo '<tr style="text-align: right; font-weight: bold; font-size:17px; font-style: italic;">';
  1993. echo '<td>'.Yii::t("main","Currency").'</td>';
  1994. echo '<td style="text-align: right; ">'.Yii::t("main","Units").'</td>';
  1995. echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").'</td>';
  1996. echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', USD</td>';
  1997. echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', RUB</td>';
  1998. echo '</tr>';
  1999.  
  2000. $k = 0;
  2001. $itog = 0;
  2002.  
  2003. foreach($Sales as $currency => $val)
  2004. {
  2005. $class = ( $k % 2 == 0) ? "background-color: white" : "";
  2006. echo '<tr style="font-weight: bold; text-align: right; ' . $class . '">';
  2007.  
  2008. echo '<td>' . $currency . '</td>';
  2009. echo '<td style="text-align: right; ">' . $val['units_sold'] . '</td>';
  2010. echo '<td style="text-align: right; ">' . number_format( $val['total_sum'], 2, '.', ' ') .'</td>';
  2011. echo '<td style="text-align: right; ">' . number_format( $val['usd_sum'], 2, '.', ' ') . '</td>';
  2012.  
  2013. // вывод суммы в рублях
  2014.  
  2015.  
  2016.  
  2017. foreach($valuta as $k=>$v){
  2018. if($k == $currency){
  2019. echo '<td style="text-align: right; ">'.number_format( $v, 2, '.', ' ' ).'</td>';
  2020. }
  2021. }
  2022.  
  2023. if($currency == "USD"){
  2024. if($usd != 0.00){
  2025. echo '<td style="text-align: right; ">'.number_format( $usd, 2, '.', ' ' ).'</td>';
  2026. }
  2027. }
  2028.  
  2029. if($currency == "RUB"){
  2030. if($usd != 0.00){
  2031. echo '<td style="text-align: right; ">'.number_format( $rubli, 2, '.', ' ' ).'</td>';
  2032. }
  2033. }
  2034.  
  2035. // --------------
  2036.  
  2037.  
  2038. echo '</tr>';
  2039. $k++;
  2040. $itog += $val['usd_sum'];
  2041. }
  2042.  
  2043.  
  2044. $class = ( $k % 2 == 0) ? "background-color: white" : "";
  2045. echo '<tr style="font-weight:bold; text-align: center' . $class . '">';
  2046. echo '<td style="font-weight:bold;">'.Yii::t("main","Total").':</td>';
  2047. echo '<td style="text-align: right; font-weight:bold;" colspan="3">' . number_format( $itog, 2, '.', ' ' ) . '</td>'; // Общая сумма !!!!!!
  2048.  
  2049. echo '<td style="text-align:right;font-weight: bold;" colspan="4">'.number_format( $total_rub_sum, 2, '.', ' ' ).'</td>';
  2050.  
  2051. echo '</tr>';
  2052.  
  2053. //------------------------------------- расчет валюты в рубли !!!!!!!! !!!!!!!!!
  2054.  
  2055.  
  2056. }
  2057. else
  2058. {
  2059. echo '<tr>';
  2060. echo '<td style="font-style: italic; font-size: 12px; font-weight: bold">'.Yii::t("main","No data available for selected period!").'</td>';
  2061. echo '</tr>';
  2062. }
  2063.  
  2064. }?>
  2065. </td>
  2066. </tr>
  2067. </table>
  2068.  
  2069. </tr>
  2070.  
  2071. <?
  2072. if($display_android)
  2073. {
  2074. ?>
  2075.  
  2076. <tr>
  2077. <td colspan="3" style="font-size:14px;font-weight:bold;color: rgb(35,181,248); padding-bottom: 5px">Android</td>
  2078. </tr>
  2079. <tr style="font-weight: bold; text-align: center; background-color:white">
  2080. <td >Total amount, USD</td>
  2081. <td colspan="2"><?=$sum?></td>
  2082. </tr>
  2083. <?php } ?>
  2084.  
  2085.  
  2086.  
  2087. <?php
  2088. /* собираем данные по андроиду */
  2089.  
  2090.  
  2091.  
  2092. if(!empty($resultt))
  2093. {
  2094. $andoid_currency = array(); // валюты
  2095. $android_sum =array(); // суммы платежей по валютам
  2096. $andoid_sum =0;
  2097.  
  2098. $andoid_units = array(); // количество поппок (юниты)
  2099. $andoid_un =0;
  2100.  
  2101.  
  2102. $android_sum_usd = array(); // сумма покупок в долларах
  2103. $android_usd = 0;
  2104.  
  2105. $android_sum_r = array(); // сумма покупок в рублях
  2106. $android_r = 0;
  2107.  
  2108.  
  2109. $andoid_data = array();
  2110. while ($andoid_data[] = mysql_fetch_array($resultt));
  2111.  
  2112. // собираем валюты
  2113. foreach($andoid_data as $res){
  2114. if($res != null)
  2115. $andoid_currency[] = $res['Buyer_Currency'];
  2116. }
  2117. $andoid_currency = array_unique($andoid_currency);
  2118.  
  2119.  
  2120.  
  2121. function convertUSDtoRubT($date, $total_sum, $currency){
  2122.  
  2123.  
  2124. if($currency != "RUB" and $currency != "USD" ){
  2125.  
  2126. $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='$currency'");
  2127. $myrow = mysql_fetch_array($result);
  2128.  
  2129. if($myrow['Rate'] <= 0)
  2130. return;
  2131.  
  2132. if($total_sum !=0)
  2133. $dollar = $myrow['Rate'] / $total_sum;
  2134.  
  2135. $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
  2136. $myrow = mysql_fetch_array($result);
  2137.  
  2138. if($dollar !=0)
  2139. $rub = $myrow['Rate'] /$dollar;
  2140.  
  2141. return $rub;
  2142. }
  2143.  
  2144. if($currency == "RUB"){
  2145. return $total_sum;
  2146. }
  2147.  
  2148. if($currency == "USD"){
  2149. return convertUSDtoRub($date, $total_sum, $currency);
  2150. }
  2151. }
  2152.  
  2153.  
  2154. // собираем суммы платежей по этим валютам и количество покупок
  2155. foreach($andoid_currency as $cur)
  2156. {
  2157.  
  2158. foreach($andoid_data as $res ){
  2159.  
  2160. //echo $res['Amount_Buyer_Currency']."<br/>";
  2161.  
  2162. if($res['Buyer_Currency'] == $cur ){
  2163. $andoid_sum += $res['Amount_Buyer_Currency'];
  2164.  
  2165. if($res['Transaction_Type'] == "Charge" )
  2166. $andoid_un ++;
  2167.  
  2168. $android_usd += convertToUSD($res['Transaction_Date'], $res['Amount_Buyer_Currency'] , $res['Buyer_Currency']);
  2169. $android_r += convertUSDtoRubT($res['Transaction_Date'], $res['Amount_Buyer_Currency'],$res['Buyer_Currency']);
  2170. }
  2171. }
  2172.  
  2173.  
  2174. $android_sum[$cur] = $andoid_sum;
  2175. $andoid_units[$cur] = $andoid_un;
  2176. $android_sum_usd[$cur] = $android_usd;
  2177. $android_sum_r[$cur] = $android_r;
  2178.  
  2179. $andoid_sum =0;
  2180. $andoid_un =0;
  2181. $android_usd=0;
  2182. $android_r =0;
  2183.  
  2184. }
  2185.  
  2186. }
  2187.  
  2188.  
  2189.  
  2190. if($resultt == false AND $resultt_wait != false ) // если там чот есть то выводим данные по таблице android_wait (ожидаемые продажи)
  2191. {
  2192.  
  2193.  
  2194. $andoid_currency = array(); // валюты
  2195. $android_sum =array(); // суммы платежей по валютам
  2196. $andoid_sum =0;
  2197.  
  2198. $andoid_units = array(); // количество поппок (юниты)
  2199. $andoid_un =0;
  2200.  
  2201.  
  2202. $android_sum_usd = array(); // сумма покупок в долларах
  2203. $android_usd = 0;
  2204.  
  2205. $android_sum_r = array(); // сумма покупок в рублях
  2206. $android_r = 0;
  2207.  
  2208.  
  2209. $andoid_data = array();
  2210. while ($andoid_data[] = mysql_fetch_array($resultt_wait));
  2211.  
  2212.  
  2213. // собираем валюты
  2214. foreach($andoid_data as $res){
  2215. if($res != null)
  2216. $andoid_currency[] = $res['Currency_of_Sale'];
  2217. }
  2218. $andoid_currency = array_unique($andoid_currency);
  2219.  
  2220.  
  2221. function convertUSDtoRubT($date, $total_sum, $currency){
  2222.  
  2223.  
  2224. if($currency != "RUB" and $currency != "USD" ){
  2225.  
  2226. $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='$currency'");
  2227. $myrow = mysql_fetch_array($result);
  2228.  
  2229. if($total_sum !=0)
  2230. $dollar = $myrow['Rate'] / $total_sum;
  2231.  
  2232. $result = mysql_query("SELECT Rate FROM ExchangeRate WHERE Date='$date' AND Currency='RUB'");
  2233. $myrow = mysql_fetch_array($result);
  2234.  
  2235. if($dollar !=0)
  2236. $rub = $myrow['Rate'] / $dollar;
  2237.  
  2238. return $rub;
  2239. }
  2240.  
  2241. if($currency == "RUB"){
  2242. return $total_sum;
  2243. }
  2244.  
  2245. if($currency == "USD"){
  2246. return convertUSDtoRub($date, $total_sum, $currency);
  2247. }
  2248.  
  2249. }
  2250.  
  2251.  
  2252. // собираем суммы платежей по этим валютам и количество покупок
  2253. foreach($andoid_currency as $cur)
  2254. {
  2255.  
  2256.  
  2257. foreach($andoid_data as $res){
  2258.  
  2259. if($res['Currency_of_Sale'] == $cur ){
  2260.  
  2261. $andoid_sum += $res['Charged_Amount'];
  2262. $andoid_un ++;
  2263.  
  2264. $android_usd += convertToUSD($res['Order_Charged_Date'], $res['Charged_Amount'] , $res['Currency_of_Sale']);
  2265. $android_r += convertUSDtoRubT($res['Order_Charged_Date'], $res['Charged_Amount'], $res['Currency_of_Sale']);
  2266.  
  2267. }
  2268. }
  2269.  
  2270. $android_sum[$cur] = $andoid_sum;
  2271. $andoid_units[$cur] = $andoid_un;
  2272. $android_sum_usd[$cur] = $android_usd;
  2273. $android_sum_r[$cur] = $android_r;
  2274.  
  2275.  
  2276.  
  2277. $andoid_sum =0;
  2278. $andoid_un =0;
  2279. $android_usd=0;
  2280. $android_r =0;
  2281.  
  2282. }
  2283. }
  2284.  
  2285.  
  2286.  
  2287.  
  2288. ?>
  2289.  
  2290. <table style="color: black;">
  2291. <tr>
  2292. <td> <b>Android: </b> <br/><br/><br/> </td>
  2293. </tr>
  2294.  
  2295. <?php if(!empty($resultt) OR !empty($resultt_wait) ) { ?>
  2296. <tr style="font-weight: bold; text-align: left; background-color: white; font-size:17px; font-style: italic;" >
  2297.  
  2298. <?php
  2299. echo '<td>'.Yii::t("main","Currency").'</td>';
  2300. echo '<td style="text-align: right; ">'.Yii::t("main","Units").'</td>';
  2301. echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").'</td>';
  2302. echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', USD</td>';
  2303. echo '<td style="text-align: right; ">'.Yii::t("main","Total amount").', RUB</td>';
  2304.  
  2305. ?>
  2306.  
  2307. </tr>
  2308.  
  2309.  
  2310. <?php foreach($andoid_currency as $cur){
  2311.  
  2312. echo '<tr style="font-weight: bold; text-align: right; background-color: white" >';
  2313. echo "<td style='text-align: left;'> $cur</td>";
  2314.  
  2315. foreach($andoid_units as $k => $v){
  2316. if($k == $cur){
  2317. echo "<td style='text-align: right;'> $v</td>";
  2318. }
  2319. }
  2320.  
  2321. foreach($android_sum as $k => $v){
  2322. if($k == $cur){
  2323. echo "<td style='text-align: right;'>".number_format( $v, 2, '.', ' ')."</td>";
  2324. }
  2325. }
  2326.  
  2327. foreach($android_sum_usd as $k => $v){
  2328. if($k == $cur){
  2329. echo "<td style='text-align: right;'>".number_format( $v, 2, '.', ' ')."</td>";
  2330. }
  2331. }
  2332.  
  2333. foreach($android_sum_r as $k => $v){
  2334. if($k == $cur){
  2335. echo "<td style='text-align: right;'>".number_format( $v, 2, '.', ' ')."</td>";
  2336. }
  2337. }
  2338.  
  2339. }
  2340.  
  2341. ?>
  2342. </tr>
  2343.  
  2344. <tr>
  2345. <?php
  2346. echo '<td style="text-align: left; font-weight:bold; "> Total: </td>';
  2347. echo "<td colspan='3' style='text-align: right; font-weight:bold;'>".number_format( array_sum($android_sum_usd), 2, '.', ' ')."</td>";
  2348. echo "<td colspan='4'style='text-align: right; font-weight:bold; '>".number_format( array_sum($android_sum_r), 2, '.', ' ')."</td>";
  2349. ?>
  2350. </tr>
  2351.  
  2352. <?php } ?>
  2353.  
  2354.  
  2355. </table>
  2356.  
  2357. </div>
  2358. <?php endif; ?>
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364. <?php
  2365. // получить название региона страны
  2366. function getRegionName($country, $region)
  2367. {
  2368. $country = mysql_real_escape_string($country);
  2369. $region = mysql_real_escape_string($region);
  2370.  
  2371. $query = "SELECT NameRegion FROM CountryRegion WHERE (Country = '$country') AND (Region = '$region')";
  2372. $result = mysql_query($query);
  2373.  
  2374. if (mysql_num_rows($result) > 0)
  2375. {
  2376. return mysql_result($result, 0, 'NameRegion');
  2377. }
  2378. return '';
  2379. }
  2380.  
  2381. function getStatOwenr($fields, $where, $group_by = "", $print_it = false)
  2382. {
  2383. if($where !== "") $where = "WHERE $where";
  2384.  
  2385. if($group_by === "")
  2386. {
  2387. $query = "SELECT $fields FROM Stat $where ORDER BY CRDATE";
  2388. }
  2389. else
  2390. {
  2391. $query = "SELECT $fields FROM Stat $where GROUP BY $group_by ORDER BY CRDATE";
  2392. }
  2393.  
  2394. if($print_it)
  2395. print_r($query) and die;
  2396.  
  2397.  
  2398. $select_l = mysql_query($query);
  2399. $a = array();
  2400. $data = array();
  2401.  
  2402. while(($data = mysql_fetch_assoc($select_l)) != false)
  2403. {
  2404. $a[] = $data;
  2405. }
  2406.  
  2407. return $a;
  2408. }
  2409.  
  2410.  
  2411.  
  2412. // получить полное название страны
  2413. function getCountryFullName($code)
  2414. {
  2415. $code = mysql_real_escape_string($code);
  2416. $query = "SELECT Country.name, Country.english FROM Country WHERE Country.al = '$code'";
  2417. $result = mysql_query($query);
  2418. if ($result)
  2419. {
  2420. if ( mysql_num_rows($result) > 0 )
  2421. {
  2422. return array( mysql_result($result, 0, 'Country.name'), mysql_result($result, 0, 'Country.english') );
  2423. }
  2424. }
  2425. return array();
  2426. }
  2427.  
  2428.  
  2429.  
  2430. function getDetailIzdan($where, $groupby)
  2431. {
  2432. if($where !== '') $where = 'WHERE ' . $where;
  2433. if($groupby !== '') $groupby = 'GROUP BY ' . $groupby . ', Hash';
  2434. $query = "SELECT COUNT(Stat.Hash) AS cnt, Stat.Hash FROM Stat $where $groupby";
  2435. //print_r($query) and die;
  2436. $select_l1 = mysql_query($query);
  2437.  
  2438. $select_l = array();
  2439. $data = array();
  2440.  
  2441. while( ( $data = mysql_fetch_assoc($select_l1) ) != false)
  2442. {
  2443. $select_l[] = $data;
  2444. }
  2445.  
  2446. $Result = array();
  2447. for($i = 0; $i < count($select_l); $i++ )
  2448. {
  2449. $orig = $select_l[$i]['Hash'];
  2450. $query = "SELECT Name FROM FilesList WHERE Original = '$orig'";
  2451. $s_i = mysql_query($query);
  2452. if( mysql_num_rows($s_i) > 0 )
  2453. {
  2454. $Result[ trim( mysql_result( $s_i, 0, 'FilesList.Name' ) ) ] = intval($select_l[$i]['cnt']);
  2455. }
  2456. else
  2457. {
  2458. $Result[$orig . ' <i>(удалён)</i>'] = $select_l[$i]['cnt'];
  2459. }
  2460. }
  2461.  
  2462. return $Result;
  2463. }
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469. function getLinksOwenr($fields, $where, $group_by = "")
  2470. {
  2471. if($where !== "") $where = "WHERE $where";
  2472. if($group_by === "")
  2473. {
  2474. $query = "SELECT $fields FROM qteam_links $where ORDER BY oy";
  2475. }
  2476. else
  2477. {
  2478. $query = "SELECT $fields FROM qteam_links $where GROUP BY $group_by ORDER BY oy DESC";
  2479. }
  2480. //print_r($query) and die;
  2481. $select_l = mysql_query($query);
  2482. $a = array();
  2483. $data = array();
  2484.  
  2485. while(($data = mysql_fetch_assoc($select_l)) != false)
  2486. {
  2487. $a[] = $data;
  2488. }
  2489.  
  2490. return $a;
  2491. }
  2492.  
  2493. function getStatSales($where)
  2494. {
  2495. $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";
  2496. $select_l = mysql_query($query);
  2497.  
  2498.  
  2499. $a = array();
  2500. $data = array();
  2501.  
  2502. while(($data = mysql_fetch_assoc($select_l)) != false)
  2503. {
  2504. $a[] = $data;
  2505. }
  2506.  
  2507. return $a;
  2508. }
  2509.  
  2510.  
  2511.  
  2512. function getExchangeCurrency($date, $currency)
  2513. {
  2514. $query = "SELECT ExchangeRate.Rate FROM ExchangeRate WHERE (ExchangeRate.Date = '$date') AND (ExchangeRate.Currency = '$currency')";
  2515. $res = mysql_query($query);
  2516. if( mysql_num_rows($res) > 0 )
  2517. {
  2518. return mysql_result( $res, 0, 'Rate');
  2519. }
  2520. else
  2521. {
  2522. $file = "historical/{$date}.json";
  2523. $appId = "a7309aba399343cf8c7cbf37835532b2";
  2524.  
  2525. $ch = curl_init("http://openexchangerates.org/api/{$file}?app_id={$appId}");
  2526. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  2527.  
  2528. $json = curl_exec($ch);
  2529. curl_close($ch);
  2530.  
  2531. $exchangeRates = json_decode($json);
  2532.  
  2533. $rate = $exchangeRates->rates->{$currency};
  2534.  
  2535. if ( $rate !== '')
  2536. {
  2537. $query = "INSERT INTO ExchangeRate (Date, Currency, Rate) VALUES('$date', '$currency', '$rate')";
  2538. mysql_query($query);
  2539. }
  2540. return $rate;
  2541. }
  2542. }
  2543.  
  2544.  
  2545. ?>
  2546. </center>
  2547. </div>
  2548. </center>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement