source: trunk/finance/user_state.php@ 204

Last change on this file since 204 was 204, checked in by george, 16 years ago
  • Upraveno: Tabulka finance_tariffs přejmenována na FinanceTariff a přepracována její struktura podle aktuálních potřeb. Do tabulky uloženy průběžné výpočty jako sloupec MemberCount či dynamicky přepočítavaný sloupce SpeedMin. Zrušeno přepočítávání ceny a rychlosti dle cenových jednotek a rychlostních jednotek.
  • Přidáno: Sloupec Hire v tabulce Member sloužící pro záznam placení nájmu členům.
File size: 5.5 KB
Line 
1<?php
2
3include_once('../global.php');
4
5class FinanceUserState extends Page
6{
7 var $FullTitle = 'Stav financí účastníka';
8 var $ShortTitle = 'Stav financí';
9
10 function Show()
11 {
12 $Finance = &$this->System->Modules['Finance'];
13 $this->System->Modules['Finance']->RecalculateTariffs(1);
14
15 if(array_key_exists('old', $_GET))
16 {
17 $MemberId = GetMemberByIP(GetRemoteAddress());
18 if($MemberId != '')
19 {
20 $DbResult = $this->Database->query('SELECT * FROM Subject WHERE Id=(SELECT Subject FROM Member WHERE Member.Id='.$MemberId.')');
21 $Subject = $DbResult->fetch_assoc();
22 } else die('Nemáte oprávnění');
23 } else
24 if(array_key_exists('Subject', $_GET))
25 {
26 if(!$this->System->Modules['User']->CheckPermission('Finance', 'Manage')) return('Nemáte oprávnění');
27 $DbResult = $this->Database->query('SELECT * FROM Subject WHERE Id='.$_GET['Subject']);
28 $Subject = $DbResult->fetch_assoc();
29 } else
30 {
31 if(!$this->System->Modules['User']->CheckPermission('Finance', 'DisplaySubjectState')) return('Nemáte oprávnění');
32 $UserId = $this->System->Modules['User']->User['Id'];
33 $DbResult = $this->Database->query('SELECT * FROM Subject WHERE Id=(SELECT Subject FROM Member WHERE Id=(SELECT Member FROM User WHERE Id='.$UserId.'))');
34 $Subject = $DbResult->fetch_assoc();
35 }
36
37 if(!array_key_exists('show', $_GET)) $_GET['show'] = '';
38 $DbResult = $this->Database->query('SELECT * FROM Member LEFT JOIN MemberPayment ON MemberPayment.Member=Member.Id WHERE Member.Subject='.$Subject['Id']);
39 $Member = $DbResult->fetch_assoc();
40 $TarifName = $Finance->Tariffs[$Member['InternetTariffCurrentMonth']]['Name'];
41 $TarifPrice = $Finance->Tariffs[$Member['InternetTariffCurrentMonth']]['Price'];
42 $Output = '<table width="100%" border="0" cellspacing="0" cellpadding="3"><tr><td valign="top">';
43
44 // Tabulka operaci
45 $Output .= 'Výpis operací pro subjekt '.$Subject['Name'].':<br>';
46 $Output .= '<table style="font-size: smaller;" class="WideTable"><tr><th>Datum</th><th>Popis</th><th>Částka</th><th>Doklad</th></tr>';
47 $Operations = array();
48 $UserOperationTableQuery = '((SELECT Text, Time, Value AS Value, Bill FROM FinanceOperation WHERE (Subject='.$Subject['Id'].')) UNION ALL '.
49 '(SELECT Text, TimeCreation as Time, -Value as Value, Bill FROM FinanceClaimsLiabilities WHERE (Subject='.$Subject['Id'].')) ORDER BY Time DESC) AS T1';
50 $DbResult = $this->Database->query('SELECT T1.* FROM '.$UserOperationTableQuery);
51 while($DbRow = $DbResult->fetch_array())
52 $Operations[] = $DbRow;
53 foreach($Operations as $Row)
54 {
55 if($Row['Value'] == -0) $Row['Value'] = 0;
56 if($Row['Value'] > 0) $Row['Value'] = '+'.$Row['Value'];
57 if($Row['Bill'] > 0) $Invoice = '<a href="bill.php?Id='.$Row['Bill'].'">PDF</a>'; else $Invoice = '&nbsp;';
58 $Output .= '<tr><td style="text-align: right;">'.HumanDate($Row['Time']).'</td><td style="text-align: left;">'.$Row['Text'].'</td><td style="text-align: right;">'.$Row['Value'].'</td><td style="text-align: center;">'.$Invoice.'</td></tr>';
59 }
60 //echo('<tr><td>&nbsp;</td><td>-'.$Row2['network_device'].'</td><td>Proměnná cena za zařízení</td></tr>
61 $Output .= '</table>';
62 $DbResult = $this->Database->query('SELECT SUM(T1.Value) AS Total FROM '.$UserOperationTableQuery);
63 $DbRow = $DbResult->fetch_array();
64 $Total = $DbRow['Total'];
65 $Output .= '<h3><strong>Stav účtu: </strong>'.$Total.' Kč</h3><br>';
66 $Output .= '</td><td valign="top">';
67
68 $Output .= 'Variabilní symbol pro platby: <strong>'.$Subject['Id'].'</strong><br><br>';
69
70 $Total = 0;
71 $Output .= 'Rozpis měsíčního poplatku:<br><table class="WideTable">'.
72 '<tr><th>Část</th><th>Cena [Kč]</th></tr>'.
73 '<tr><td>Internet - tarif '.$TarifName.'</td><td>'.$TarifPrice.'</td></tr>';
74 $Total += $TarifPrice;
75 if($Member['Hire'] != 0)
76 {
77 $Output .= '<tr><td>Nájem</td><td>'.(-$Member['Hire']).'</td></tr>';
78 $Total -= $Member['Hire'];
79 }
80 if($Member['MonthlyPlus'] != 0)
81 {
82 $Output .= '<tr><td>Příjem za spotřebu</td><td>'.(-$Member['MonthlyPlus']).'</td></tr>';
83 $Total -= $Member['MonthlyPlus'];
84 }
85 $Output .= '<tr><td><strong>Celkem</strong></td><td><strong>'.$Total.'</strong></td></tr></table>';
86 //echo('Tarif pro příští měsíc: '.$Tarify[$Row2['inet_tarif_next']]['name'].'<br><br>');
87 $Output .= '<br />';
88
89 if($Member['MonthlyPlus'] != 0)
90 {
91 $Output .= 'Měsíční příjem za spotřebu zařízení umístěných u uživatele:<br>';
92 $Output .= '<table class="WideTable"><tr><th>Název zařízení</th><th>Spotřeba [W]</th><th>Příjem [Kč]</th></tr>';
93 $DbResult = $this->Database->query('SELECT * FROM network_devices WHERE user='.$Member['Id'].' AND used=1');
94 $TotalW = 0;
95 $TotalPrice = 0;
96 while($Row = $DbResult->fetch_assoc())
97 {
98 $Output .= '<tr><td>'.$Row['name'].'</td><td>'.$Row['consumption'].'</td><td>'.$this->System->Modules['Finance']->W2Kc($Row['consumption']).'</td></tr>';
99 $TotalW += $Row['consumption'];
100 $TotalPrice += $this->System->Modules['Finance']->W2Kc($Row['consumption']);
101 }
102 $Output .= '<tr><td><strong>Celkem</strong></td><td><strong>'.$TotalW.'</strong></td><td><strong>'.$TotalPrice.'</strong></td></tr>';
103 $Output .= '</table>';
104 }
105 $Output .= '</td></tr></table>';
106 return($Output);
107 }
108}
109
110$System->AddModule(new FinanceUserState());
111$System->Modules['FinanceUserState']->GetOutput();
112
113?>
Note: See TracBrowser for help on using the repository browser.