supernova-ws /
SuperNova
| 1 | <?php |
||||
| 2 | /** |
||||
| 3 | * Created by Gorlum 18.02.2017 19:37 |
||||
| 4 | */ |
||||
| 5 | |||||
| 6 | define('INSIDE', true); |
||||
| 7 | define('INSTALL', false); |
||||
| 8 | define('IN_ADMIN', true); |
||||
| 9 | |||||
| 10 | require('../common.' . substr(strrchr(__FILE__, '.'), 1)); |
||||
| 11 | |||||
| 12 | global $lang, $user; |
||||
| 13 | |||||
| 14 | SnTemplate::messageBoxAdminAccessDenied(AUTH_LEVEL_ADMINISTRATOR); |
||||
| 15 | |||||
| 16 | $constants = get_defined_constants(true); |
||||
| 17 | $rpgConstants = array(); |
||||
| 18 | foreach($constants['user'] as $constantName => $constantValue) { |
||||
| 19 | if(substr($constantName, 0, 4) == 'RPG_') { |
||||
| 20 | $rpgConstants[$constantValue] = $constantName; |
||||
| 21 | } |
||||
| 22 | } |
||||
| 23 | |||||
| 24 | $spent = array(); |
||||
| 25 | |||||
| 26 | $result = SN::$db->doquery( |
||||
| 27 | "SELECT |
||||
| 28 | CONCAT(log_dark_matter_reason, '_', IF(sign(sum(log_dark_matter_amount)) > 0, 1, -1)) as `BALANCE`, |
||||
| 29 | log_dark_matter_reason as `REASON`, |
||||
| 30 | sum(log_dark_matter_amount) as `DM_AMOUNT`, |
||||
| 31 | count(log_dark_matter_amount) as `DM_COUNT`, |
||||
| 32 | sign(sum(log_dark_matter_amount)) as `SIGN` |
||||
| 33 | FROM `{{log_dark_matter}}` |
||||
| 34 | GROUP BY log_dark_matter_reason, IF(sign((log_dark_matter_amount)) > 0, 1, -1) ORDER BY sum(log_dark_matter_amount) DESC;" |
||||
| 35 | ); |
||||
| 36 | |||||
| 37 | while($row = SN::$db->db_fetch($result)) { |
||||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||||
| 38 | $row['CONSTANT'] = $rpgConstants[$row['REASON']]; |
||||
| 39 | |||||
| 40 | $row['DM_AMOUNT_TEXT'] = HelperString::numberFloorAndFormat($row['DM_AMOUNT']); |
||||
| 41 | |||||
| 42 | // $row['TOTAL_AMOUNT'] = $row['DM_AMOUNT']; |
||||
| 43 | // $row['TOTAL_COUNT'] = $row['DM_COUNT']; |
||||
| 44 | // $row['TOTAL_AMOUNT_TEXT'] = pretty_number($row['TOTAL_AMOUNT']); |
||||
| 45 | |||||
| 46 | $spent[$row['BALANCE']] = $row; |
||||
| 47 | } |
||||
| 48 | |||||
| 49 | $result = SN::$db->doquery( |
||||
| 50 | "SELECT |
||||
| 51 | CONCAT(reason, '_', IF(sign(sum(amount)) > 0, 1, -1)) as `BALANCE`, |
||||
| 52 | reason as `REASON`, |
||||
| 53 | sum(amount) as `MM_AMOUNT`, |
||||
| 54 | count(amount) as `MM_COUNT`, |
||||
| 55 | sign(sum(amount)) as `SIGN` |
||||
| 56 | FROM `{{log_metamatter}}` |
||||
| 57 | GROUP BY reason, if(sign((amount)) > 0, 1, -1) ORDER BY sum(amount) DESC;" |
||||
| 58 | ); |
||||
| 59 | |||||
| 60 | while($row = SN::$db->db_fetch($result)) { |
||||
| 61 | if(empty($spent[$row['BALANCE']])) { |
||||
| 62 | $spent[$row['BALANCE']] = array(); |
||||
| 63 | } |
||||
| 64 | |||||
| 65 | $row['CONSTANT'] = $rpgConstants[$row['REASON']]; |
||||
| 66 | $row['MM_AMOUNT_TEXT'] = HelperString::numberFloorAndFormat($row['MM_AMOUNT']); |
||||
| 67 | |||||
| 68 | $spent[$row['BALANCE']] = array_merge_recursive_numeric($spent[$row['BALANCE']], $row); |
||||
| 69 | } |
||||
| 70 | |||||
| 71 | foreach($spent as &$row) { |
||||
| 72 | @$row['TOTAL_COUNT'] = $row['MM_COUNT'] + $row['DM_COUNT']; |
||||
| 73 | @$row['TOTAL_AMOUNT'] = $row['MM_AMOUNT'] + $row['DM_AMOUNT']; |
||||
| 74 | @$row['TOTAL_AMOUNT_TEXT'] = HelperString::numberFloorAndFormat($row['TOTAL_AMOUNT']); |
||||
| 75 | @$row['TOTAL_COUNT_TEXT'] = HelperString::numberFloorAndFormat($row['TOTAL_COUNT']); |
||||
| 76 | } |
||||
| 77 | |||||
| 78 | usort($spent, function ($a, $b) { |
||||
| 79 | return $a['TOTAL_AMOUNT'] < $b['TOTAL_AMOUNT'] ? -1 : |
||||
| 80 | ($a['TOTAL_AMOUNT'] > $b['TOTAL_AMOUNT'] ? 1 : 0); |
||||
| 81 | }); |
||||
| 82 | |||||
| 83 | |||||
| 84 | $template = SnTemplate::gettemplate("admin/admin_analyze_matter", true); |
||||
|
0 ignored issues
–
show
true of type true is incompatible with the type null|template expected by parameter $template of SnTemplate::gettemplate().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 85 | foreach ($spent as $row) { |
||||
| 86 | $template->assign_block_vars('spent', $row); |
||||
| 87 | } |
||||
| 88 | $fromDate = SN::$db->doQueryAndFetch("SELECT min(log_dark_matter_timestamp) FROM `{{log_dark_matter}}`;"); |
||||
| 89 | $template->assign_var("MIN_DATE", reset($fromDate)); |
||||
| 90 | |||||
| 91 | |||||
| 92 | SnTemplate::display($template, '{Анализ расхода и прихода материи}'); |
||||
| 93 |