source: branches/web/Pages/UFinancePage.pas

Last change on this file was 283, checked in by george, 14 years ago
  • Upraveno: Soubory pro generování stránek přesunuty do podsložky Pages.
File size: 6.3 KB
Line 
1unit UFinancePage;
2
3{$mode delphi}{$H+}
4
5interface
6
7uses
8 UDatabase, UConfig;
9
10type
11
12 { TBaseObject }
13
14 TBaseObject = class(TDbObject)
15 private
16 FName: string;
17 published
18 property Name: string read FName write FName;
19 end;
20
21function FinanceOverviewPage: string;
22
23implementation
24
25uses
26 USqlDatabase, UCore, SysUtils, UFinance;
27
28function FinanceOverviewPage: string;
29begin
30 Result := ShowHeader('<strong>ZděchovNET</strong> - komunitní počítačová síť', 'Finance');
31 Result := Result + '<table><tr><td valign="top"><table><tr><td>' +
32HtmlLink('Výpis zařízení', 'zarizeni.php') + '<br />' +
33HtmlLink('Seznam členů', '?p=finance-clenove') + '<br />' +
34HtmlLink('Spotřeba energie', 'spotreba.php') + '<br />' +
35HtmlLink('Investice v síti', '/aktuality/index.php?category=9') + '<br />' +
36HtmlLink('Měsíční přehledy', 'monthly_overall.php') + '<br />' +
37HtmlLink('Faktury za internet', 'Faktury') + '<br />' +
38HtmlLink('Tarify', 'tarify.php') + '<br />' +
39HtmlLink('Výpis skladových zásob', 'inventory.php') + '<br />' +
40HtmlLink('Porovnání tarifů s konkurencí', 'srovnani.php') + '<br />' +
41'</td><td></td></tr></table><br /><strong>Souhrn:</strong><br />Aktuální měsíční poplatek za společný internet (10240/10240 kbit/s):' +
42' <strong>15351 Kč</strong><br />Počet členů (s internetem): <strong>79 (79)</strong><br />Celková cena zařízení sítě: <strong>106335 Kč</strong><br />Celkem peněz na účtech: <strong>' +
43'-14537 Kč</strong><br />Stanovená cena jedné kWh: <strong>3 Kč</strong><br />V připojených domácnostech celkem <strong>273</strong>' +
44' občanů ze všech <strong>600</strong> (46 %)<br />IČO: <strong>75904535</strong><br />DIČ: <strong>CZ8303255884</strong><br />Bankovní účet: <strong>218098370 / 0300</strong><br /><br /></td><td valign="top">Měsíční vyúčtování:<br />' +
45'' +
46'<table border="1" cellspacing="0" cellpadding="3">' +
47'<tr><th>Položka</th><th>Cena [Kč]</th></tr>' +
48'<tr><th colspan="2">Příjmy</th></tr><tr><td>Poplatky účastníků za internet</td><td align="right">27010</td></tr><tr><td><strong>Celkem</strong></td><td align="right"><strong>27010</strong></td></tr><tr><th colspan="2">Výdaje</th></tr>' +
49'<tr><td>Internet</td><td align="right">15351</td></tr><tr><td>Správa sítě</td><td align="right">3160</td></tr><tr><td>Spotřeba energie</td><td align="right">525</td></tr><tr><td><strong>Celkem</strong></td><td align="right"><strong>' +
50'19036</strong></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td><strong>Rozdíl</strong></td><td align="right"><strong>7974</strong></td></tr><tr><td>Převod do dalšího měsíce</td><td align="right">7974</td></tr></table>' +
51'<br />Stav účtu sítě: 0 Kč<br /><a href="clenove.php?show=user&amp;id=46">Výpis účtu</a><br /></td></tr></table>';
52 Result := Result + ShowFooter;
53end;
54
55function FinanceClientList: string;
56var
57 DbRows: TDbRows;
58 I: Integer;
59 TotalDevice: Integer;
60 TotalMonth: Integer;
61 TotalCash: Integer;
62 Monthly: string;
63 CurrentTariffName: string;
64 NextTariffName: string;
65 Member: TMember;
66 Cash: string;
67 Finance: TFinance;
68begin
69 Finance := TFinance.Create;
70 Member := TMember.Create;
71 Result := ShowHeader('<strong>ZděchovNET</strong> - komunitní počítačová síť', 'Finance');
72 Result := Result + 'Seznam účastníků:<br />' +
73 '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">' +
74 '<tr><th>Jméno</th>';
75 Result := Result + '<th>Měsíční poplatek [Kč]</th><th>Stav účtu [Kč]</th><th>Běžící tarif</th><th>Příští tarif</th><th>Poznámky</th></tr>';
76 TotalDevice := 0;
77 TotalMonth := 0;
78 TotalCash := 0;
79 DbRows := Database.Query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Fullname, ((SELECT COALESCE(SUM(Value), 0) FROM FinanceCashFlow WHERE Subject=users.id) + ' +
80 '(SELECT COALESCE(SUM(-Value), 0) FROM FinanceClaimsLiabilities WHERE Subject=users.id)) as Cash FROM users WHERE role=2 ORDER BY fullname');
81 for I := 0 to DbRows.Count - 1 do begin
82 Member.LoadFromDbRecord(DbRows[I]);
83 Monthly := IntToStr(Member.Monthly - Member.Plus);
84 if not Member.Hardware then Monthly := '(trvale nepřipojen) ' + IntToStr(-Member.Plus)
85 else begin
86 if not Member.Overheads then Monthly := '(dočasně nepřipojen) ' + Monthly
87 else begin
88 if not Member.Inet then Monthly := '(bez internetu) ' + Monthly
89 else Monthly := Monthly;
90 end;
91 end;
92 TotalCash := TotalCash + Member.Cash;
93 if Member.Cash < 0 then Cash := '<span style="color: red;">' + IntToStr(Member.Cash) + '</span>'
94 else Cash := IntToStr(Member.Cash);
95 CurrentTariffName := TTariff(Finance.TariffList[StrToInt(DbRows[I].Values['inet_tarif_now'])]).Name;
96 NextTariffName := TTariff(Finance.TariffList[StrToInt(DbRows[I].Values['inet_tarif_next'])]).Name;
97 Result := Result + '<tr><td><a href="?show=user&amp;id=' + IntToStr(Member.Id) + '">' + Member.FullName + '</a></td>';
98 Result := Result + '<td align="right">' + Monthly + '</td><td align="right">' + Cash + '</td><td align="center">' + CurrentTariffName + '</td><td align="center">' + NextTariffName + '</td><td>' + Member.Notice + '&nbsp;</td></tr>';
99 TotalDevice := TotalDevice + Member.NetworkDevice;
100 TotalMonth := TotalMonth + (Member.Monthly - Member.Plus);
101 end;
102 Result := Result + '<tr><td><strong>Celkem</strong></td>';
103 Result := Result + '<td align="right"><strong>' + IntToStr(TotalMonth) + '</strong></td><td align="right"><strong>' + IntToStr(TotalCash) + '</strong></td><td align="right">&nbsp;</td><td align="right">&nbsp;</td><td align="right">&nbsp;</td></tr>' +
104 '</table>';
105 Result := Result + ShowFooter;
106 Member.Free;
107 Finance.Free;
108end;
109
110function Test: string;
111var
112 Base: TBaseObject;
113begin
114 Result := ShowHeader('<strong>ZděchovNET</strong> - komunitní počítačová síť', 'Finance');
115 Base := TBaseObject.Create(nil);
116 Base.Database := TDatabase.Create;
117 Base.Database.Hostname := DatabaseHostname;
118 Base.Database.Database := 'centrala';
119 Base.Database.UserName := DatabaseUserName;
120 Base.Database.Password := DatabasePassword;
121 Base.Database.Connect;
122 //Base.Store;
123
124 Result := Result + ShowFooter;
125end;
126
127{ TBaseObject }
128
129begin
130 RegisterPage('finance', @FinanceOverviewPage);
131 RegisterPage('finance-clenove', @FinanceClientList);
132 RegisterPage('test', @Test);
133end.
Note: See TracBrowser for help on using the repository browser.