1 | <?php
|
---|
2 |
|
---|
3 | include_once('../global.php');
|
---|
4 |
|
---|
5 | class 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 = ' ';
|
---|
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> </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 | ?>
|
---|