Changeset 152


Ignore:
Timestamp:
Feb 16, 2009, 2:09:57 PM (15 years ago)
Author:
george
Message:
  • Upraveno: Další soubory přepracované do nového systému zobrazování.
Location:
www
Files:
2 added
2 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • www/finance/bills.php

    r151 r152  
    11<?php
    22
    3 class InvoiceGenerator
     3class Bill extends Module
    44{
    55  var $SpecificSymbol = 1; // počítačová sít
     
    99  function GenerateBill($BillId)
    1010  {
    11     global $Database, $SpecificSymbol;
     11    global $SpecificSymbol;
    1212 
    13     $DbResult = $Database->select('finance_bills', '*', 'id='.$BillId);
     13    $DbResult = $this->Database->select('finance_bills', '*', 'id='.$BillId);
    1414    $Bill = $DbResult->fetch_array();
    1515 
    16     $DbResult = $Database->select('users', '*', 'id='.$Bill['user_id']);
     16    $DbResult = $this->Database->select('users', '*', 'id='.$Bill['user_id']);
    1717    $User = $DbResult->fetch_array();
    1818
    1919    $Dodavka = array();
    20     $DbResult = $Database->select('finance_bills_items', '*', 'bill_id='.$BillId);
     20    $DbResult = $this->Database->select('finance_bills_items', '*', 'bill_id='.$BillId);
    2121    while($Item = $DbResult->fetch_array())
    2222    {
     
    122122  function CreateBill($UserId, $Items, $TimeFrom, $TimeTo, $BillCode, $Type)
    123123  {
    124     global $Database;
    125  
    126     $Database->insert('finance_bills', array('time_create' => TimeToMysqlDateTime(time()), 'user_id' => $UserId, 'time_from' => TimeToMysqlDateTime($TimeFrom), 'time_to' => TimeToMysqlDateTime($TimeTo), 'time_due' => TimeToMysqlDateTime($TimeFrom + 15*24*3600), 'BillCode' => $BillCode, 'Type' => 'invoice'));
    127     $BillId = $Database->insert_id;
     124    $this->Database->insert('finance_bills', array('time_create' => TimeToMysqlDateTime(time()), 'user_id' => $UserId, 'time_from' => TimeToMysqlDateTime($TimeFrom), 'time_to' => TimeToMysqlDateTime($TimeTo), 'time_due' => TimeToMysqlDateTime($TimeFrom + 15*24*3600), 'BillCode' => $BillCode, 'Type' => 'invoice'));
     125    $BillId = $this->Database->insert_id;
    128126    foreach($Items as $Item)
    129127    {
    130       $Database->insert('finance_bills_items', array('bill_id' => $BillId, 'description' => $Item['description'], 'price' => $Item['price'], 'quantity' => $Item['quantity']));
     128      $this->Database->insert('finance_bills_items', array('bill_id' => $BillId, 'description' => $Item['description'], 'price' => $Item['price'], 'quantity' => $Item['quantity']));
    131129    }
    132130    //Header('Content-Type: application/pdf');
     
    134132    //echo($PdfData);
    135133    file_put_contents($this->FileFolder.'/'.$this->FileNamePrefix.$BillId.'.pdf', $PdfData);
    136     //$Database->query('UPDATE finance_bills SET pdf = 0x'.bin2hex($PdfData).' WHERE id='.$BillId);
     134    //$this->Database->query('UPDATE finance_bills SET pdf = 0x'.bin2hex($PdfData).' WHERE id='.$BillId);
    137135    return($BillId);
    138136  }
     
    140138  function CreateIncomeBill($UserId, $Description, $Price, $BillCode)
    141139  {
    142     global $Database;
    143  
    144     $Database->insert('finance_bills', array('time_create' => TimeToMysqlDateTime(time()), 'user_id' => $UserId, 'BillCode' => $BillCode, 'Type' => 'income'));
    145     $BillId = $Database->insert_id;
    146     $Database->insert('finance_bills_items', array('bill_id' => $BillId, 'description' => $Description, 'price' => $Price, 'quantity' => 1));
     140    $this->Database->insert('finance_bills', array('time_create' => TimeToMysqlDateTime(time()), 'user_id' => $UserId, 'BillCode' => $BillCode, 'Type' => 'income'));
     141    $BillId = $this->Database->insert_id;
     142    $this->Database->insert('finance_bills_items', array('bill_id' => $BillId, 'description' => $Description, 'price' => $Price, 'quantity' => 1));
    147143    //Header('Content-Type: application/pdf');
    148144    $PdfData = $this->HtmlToPdf($this->GenerateBill($BillId));
    149145    //echo($PdfData);
    150146    file_put_contents($this->FileFolder.'/'.$this->FileNamePrefix.$BillId.'.pdf', $PdfData);
    151     //$Database->query('UPDATE finance_bills SET pdf = 0x'.bin2hex($PdfData).' WHERE id='.$BillId);
     147    //$this->Database->query('UPDATE finance_bills SET pdf = 0x'.bin2hex($PdfData).' WHERE id='.$BillId);
    152148    return($BillId);
    153149  }
     
    160156    //echo($this->FileFolder.'/'.$this->FileNamePrefix.$BillId.'.pdf');
    161157    echo(file_put_contents($this->FileFolder.'/'.$this->FileNamePrefix.$BillId.'.pdf', $PdfData));
    162     //$Database->query('UPDATE finance_bills SET pdf = 0x'.bin2hex($PdfData).' WHERE id='.$BillId);
     158    //$this->Database->query('UPDATE finance_bills SET pdf = 0x'.bin2hex($PdfData).' WHERE id='.$BillId);
    163159  }
    164160
     
    167163    global $Database;
    168164   
    169     //$DbResult = $Database->select('finance_bills', 'pdf', 'id='.$BillId);
     165    //$DbResult = $this->Database->select('finance_bills', 'pdf', 'id='.$BillId);
    170166    //if($DbResult->num_rows == 1)
    171167    //{
     
    204200    global $Database;
    205201   
    206     $DbResult = $Database->select('finance_operations', '*', '(date="2008-02-01" AND comment="Poplatek za měsíc Únor") OR '.
     202    $DbResult = $this->Database->select('finance_operations', '*', '(date="2008-02-01" AND comment="Poplatek za měsíc Únor") OR '.
    207203    '(date="2008-01-01" AND comment="Poplatek za měsíc Leden") OR (date="2007-12-01" AND comment="Poplatek za měsíc Prosinec") AND (bill_id = 0)');
    208204    while($Row = $DbResult->fetch_array())
     
    211207      $Time = MysqlDateToTime($Row['date']);
    212208      $BillId = $this->CreateBill($Row['user'], array(array('description' => 'Poplatek za připojení k síti', 'price' => (-$Row['money']), 'quantity' => 1)), $Time, $Time + (date("t", time()) - 1) * 24 * 3600); 
    213      $Database->update('finance_operations', 'id='.$Row['id'], array('bill_id' => $BillId));
     209     $this->Database->update('finance_operations', 'id='.$Row['id'], array('bill_id' => $BillId));
    214210    }
    215211  }
     
    221217    {
    222218 
    223       $DbResult = $Database->select('finance_bills', '*', 'user_id='.$_GET['user']);
     219      $DbResult = $this->Database->select('finance_bills', '*', 'user_id='.$_GET['user']);
    224220      while($Item = $DbResult->fetch_array())
    225221      {
     
    250246      ShowHeader('Doklady', 'Doklady');
    251247      echo('Faktury:<br>');
    252       $DbResult = $Database->select('users', '*, CONCAT(second_name," ", first_name)  as fullname', '1 ORDER BY fullname');
     248      $DbResult = $this->Database->select('users', '*, CONCAT(second_name," ", first_name)  as fullname', '1 ORDER BY fullname');
    253249      while($User = $DbResult->fetch_array())
    254250      {
     
    260256}
    261257
    262 $InvoiceGenerator = new InvoiceGenerator;
    263 
    264258?>
  • www/finance/clenove.php

    r147 r152  
    11<?php
    2 include('../style.php');
     2include('../global.php');
    33include('include.php');
    4 include('bills.php');
    54RecalculateTariffs(1);
    65
    7 if(array_key_exists('id',$_GET)) $UserID = $_GET['id'];
    8 if(!array_key_exists('show',$_GET)) $_GET['show'] = '';
    9 switch($_GET['show'])
     6class FinanceUserList extends Page
    107{
    11   default:
    12     ShowHeader('Finance účastníka', 'Finance účastníka');
    13         $UserID = GetMemberByIP(GetRemoteAddress());
     8  var $FullTitle = 'Seznam účastníků sítě';
     9  var $ShortTitle = 'Seznam účastníků';
    1410
    15     $DbResult = $Database->query("SELECT *,CONCAT(second_name, ' ', first_name) as fullname FROM users WHERE id=".$UserID);
    16     $Row2 = $DbResult->fetch_array();
    17     $TarifName = $Tarify[$Row2['inet_tarif_next']]['name'];
    18     echo('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tr><td valign="top">');
    19  
    20     // Tabulka operaci
    21     echo('Výpis operací pro účastníka '.$Row2['fullname'].':<br>');
    22     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3"><tr><th>Datum</th><th>Popis</th><th>Částka [Kč]</th><th>Doklad</th></tr>');
    23     $Operations = array();
    24     $DbResult = $Database->query('(SELECT Time, Value, Text, Bill FROM FinanceCashFlow WHERE Subject='.$UserID.') UNION ALL '.
    25       '(SELECT TimeCreation as Time, (-Value) as Value, Text, Bill FROM FinanceClaimsLiabilities WHERE Subject='.$UserID.') ORDER BY Time DESC');
    26     while($DbRow = $DbResult->fetch_array())
    27       $Operations[] = $DbRow;
    28     foreach($Operations as $Row)
     11  function Show()
     12  {
     13    global $Tarify;
     14
     15    if($this->System->Modules['User']->CheckPermission('Finance', 'SubjectList'))
    2916    {
    30       if($Row['Value'] > 0) $Row['Value'] = '+'.$Row['Value'];
    31       if($Row['Bill'] > 0) $Invoice = '<a href="?show=bill&amp;id='.$Row['Bill'].'">PDF</a>'; else $Invoice = '&nbsp;';
    32       echo('<tr><td align="right">'.HumanDate($Row['Time']).'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Invoice.'</td></tr>');
    33     }
    34     //echo('<tr><td>&nbsp;</td><td>-'.$Row2['network_device'].'</td><td>Proměnná cena za zařízení</td></tr>
    35     echo('</table>');
    36     $DbResult = $Database->query('SELECT ((SELECT COALESCE(SUM(Value), 0) FROM FinanceCashFlow WHERE Subject='.$UserID.') + '.
    37       '(SELECT COALESCE(SUM(-Value), 0) FROM FinanceClaimsLiabilities WHERE Subject='.$UserID.')) as Total');
    38     $DbRow = $DbResult->fetch_array();
    39     $Total = $DbRow['Total'];
    40     echo('<h3><strong>Stav účtu: </strong>'.$Total.' Kč</h3><br>');
    41     echo('</td><td valign="top">');
     17      // Seznam členů
     18      $Output = 'Seznam účastníků:<br>'.
     19      '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">'.
     20      '<tr><th>Jméno</th>';
     21      //<th>Cena za zařízení [Kč]</th>
     22      $Output .= '<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>';
     23      $TotalDevice = 0;
     24      $TotalMonth = 0;
     25      $TotalCash = 0;
     26      $DbResult = $this->Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Fullname, ((SELECT COALESCE(SUM(Value), 0) FROM FinanceCashFlow WHERE Subject=users.id) + (SELECT COALESCE(SUM(-Value), 0) FROM FinanceClaimsLiabilities WHERE Subject=users.id)) as Cash FROM users WHERE role=2 ORDER BY fullname');
    4227
    43     if($Row2['role'] == 2)
    44     {
    45       echo('Variabilní symbol pro platby: <strong>'.$Row2['id'].'</strong><br><br>'); 
    46 
    47       // Měsíční bilance
    48       if($Row2['inet'] == 1) $InternetPrice = round($Row2['monthly_inet']); else $InternetPrice = 0;
    49       if($Row2['overheads'] == 0)
    50       {
    51         $PoplatekSprava = 0;
    52         $PoplatekSpotreba = 0;
    53         $PrijemSpotreba = $Row2['plus'];
    54       } else {
    55         $PoplatekSprava = $Sprava;
    56         $PoplatekSpotreba = $Row2['consumption'];
    57         $PrijemSpotreba = $Row2['plus'];
    58       }
    59       echo('Rozpis měsíčního poplatku:<br><table border="1" cellspacing="0" cellpadding="3">'.
    60       '<tr><th>Část</th><th>Cena [Kč]</th></tr>'.
    61       '<tr><td>Internet - tarif '.$TarifName.'</td><td>'.$InternetPrice.'</td></tr>'.
    62       //'<tr><td>Správa</td><td>'.$PoplatekSprava.'</td></tr>'.
    63       //'<tr><td>Poplatek za spotřebu</td><td>'.$PoplatekSpotreba.'</td></tr>'.
    64       '<tr><td>Příjem za spotřebu</td><td>'.(-1*$PrijemSpotreba)  .'</td></tr>'.
    65       '<tr><td><strong>Celkem</strong></td><td><strong>'.($InternetPrice // + $PoplatekSprava + $PoplatekSpotreba
    66         - $PrijemSpotreba).'</strong></td></tr></table>');
    67       //echo('Tarif pro příští měsíc: '.$Tarify[$Row2['inet_tarif_next']]['name'].'<br><br>');
    68       echo('<br>');
    69    
    70     /*
    71 
    72     // Rozpis ceny za zařízení
    73     echo('Výpis podílu na zařízení segmentů:');
    74     echo('<table border="1" cellspacing="0" cellpadding="3"><tr><th>Název segmentu</th><th>Cena [Kč]</th><th>Uživatelů</th><th>Podíl [Kč]</th></tr>');
    75     $ID = $Row2['network_segment'];
    76     $Money = 0;
    77     while($ID > 0)
    78     {
    79       $DbResult = $Database->query("SELECT * FROM network_segments WHERE id=".$ID);
    80       $Row = $DbResult->fetch_array();
    81       if(!(($Row2['inet_hw'] == 0) and ($ID == $InternetSegmentId)))
    82       {     
    83         $Money += $Row['price']/$Row['users'];
    84         echo('<tr><td>'.$Row['name'].'</td><td>'.$Row['price'].'</td><td>'.$Row['users'].'&nbsp;</td><td>'.round($Row['price']/$Row['users']).'</td></tr>');
    85       }
    86       $ID = $Row['parent'];
    87     }
    88     echo('<tr><td><strong>Celkem</strong></td><td>&nbsp;</td><td>&nbsp;</td><td><strong>'.round($Money).'</strong></td></tr>');
    89     echo('</table><br>');
    90 
    91     // Rozpis platba spotřeby segmentů
    92     echo('Výpis podílu na spotřebě segmentů:');
    93     echo('<table border="1" cellspacing="0" cellpadding="3"><tr><th>Název segmentu</th><th>Cena [Kč]</th><th>Uživatelů</th><th>Podíl [Kč]</th></tr>');
    94     $ID = $Row2['network_segment'];
    95     $Money = 0;
    96     while($ID>0)
    97     {
    98       $DbResult = $Database->query("SELECT * FROM network_segments WHERE id=".$ID);
    99       $Row = $DbResult->fetch_array();
    100       $Money += round(W2Kc($Row['consumption'])/$Row['users_overheads']);
    101       echo('<tr><td>'.$Row['name'].'</td><td>'.W2Kc($Row['consumption']).'</td><td>'.$Row['users_overheads'].'&nbsp;</td><td>'.round(W2Kc($Row['consumption'])/$Row['users_overheads']).'</td></tr>');
    102       $ID = $Row['parent'];
    103     }
    104     echo('<tr><td><strong>Celkem</strong></td><td>&nbsp;</td><td>&nbsp;</td><td><strong>'.round($Money).'</strong></td></tr>');
    105     echo('</table><br>');
    106     */
    107 
    108       echo('Měsíční příjem za spotřebu zařízení umístěných u uživatele:<br>');
    109       echo('<table border="1" cellspacing="0" cellpadding="3"><tr><th>Název zařízení</th><th>Spotřeba [W]</th><th>Příjem [Kč]</th></tr>');
    110       $DbResult = $Database->query("SELECT * FROM network_devices WHERE user=".$UserID." AND used=1");
    111       $TotalW = 0;
    112       $TotalPrice = 0;
     28      //$DbResult = $Database->query("SELECT *,CONCAT(second_name, ' ', first_name) as fullname FROM users WHERE role=2 ORDER BY fullname");
    11329      while($Row = $DbResult->fetch_array())
    11430      {
    115         echo('<tr><td>'.$Row['name'].'</td><td>'.$Row['consumption'].'</td><td>'.W2Kc($Row['consumption']).'</td></tr>');
    116         $TotalW += $Row['consumption'];
    117         $TotalPrice += W2Kc($Row['consumption']);
     31        $Monthly = $Row['monthly'] - $Row['plus'];
     32        if($Row['hw'] == 0) $Monthly = '(trvale nepřipojen) '.(-$Row['plus']);
     33        else
     34        {
     35          if($Row['overheads'] == 0) $Monthly = '(dočasně nepřipojen) '.$Monthly;
     36          else
     37          {
     38            if($Row['inet'] == 0) $Monthly = '(bez internetu) '.$Monthly;
     39            else $Monthly = $Monthly;
     40          }
     41        }
     42        //$Row['cash'] = $Row['AdvancesIn'] - $Row['AdvancesOut'] + $Row['Liabilities'] - $Row['Claims'];
     43        $TotalCash += $Row['Cash'];
     44        if($Row['Cash'] < 0) $Row['Cash'] = '<span style="color: red;">'.$Row['Cash'].'</span>';
     45        $Tarif = $Tarify[$Row['inet_tarif_now']]['name'];
     46        $PristiTarif = $Tarify[$Row['inet_tarif_next']]['name'];
     47        $Output .= '<tr><td><a href="user_state.php?id='.$Row['id'].'">'.$Row['Fullname'].'</a></td>';
     48        //<td align="right">'.$Row['network_device'].'</td>
     49        $Output .= '<td align="right">'.$Monthly.'</td><td align="right">'.$Row['Cash'].'</td><td align="center">'.$Tarif.'</td><td align="center">'.$PristiTarif.'</td><td>'.$Row['notice'].'&nbsp;</td></tr>';
     50        $TotalDevice += $Row['network_device'];
     51        $TotalMonth += ($Row['monthly'] - $Row['plus']);
    11852      }
    119       echo('<tr><td><strong>Celkem</strong></td><td><strong>'.$TotalW.'</strong></td><td><strong>'.$TotalPrice.'</strong></td></tr>');
    120       echo('</table>');
    121     }
    122     echo('</td></tr></table>');
    123     ShowFooter();
    124     break;
    125   case 'bill':
    126     $InvoiceGenerator->ShowStoredBill($_GET['id']);
    127     break;
    128   case 'admin_user_list':
    129     ShowHeader('Seznam účastníků sítě', 'Seznam účastníků');
    130     // Seznam členů
    131     echo('Seznam účastníků:<br>'.
    132     '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">'.
    133     '<tr><th>Jméno</th>');
    134     //<th>Cena za zařízení [Kč]</th>
    135     echo('<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>');
    136     $TotalDevice = 0;
    137     $TotalMonth = 0;
    138     $TotalCash = 0;
    139     $DbResult = $Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Fullname, ((SELECT COALESCE(SUM(Value), 0) FROM FinanceCashFlow WHERE Subject=users.id) + '.
    140       '(SELECT COALESCE(SUM(-Value), 0) FROM FinanceClaimsLiabilities WHERE Subject=users.id)) as Cash FROM users WHERE role=2 ORDER BY fullname');
     53      $Output .= '<tr><td><strong>Celkem</strong></td>';
     54      //<td align="right"><strong>'.$TotalDevice.'</strong></td>
     55      $Output .= '<td align="right"><strong>'.$TotalMonth.'</strong></td><td align="right"><strong>'.$TotalCash.'</strong></td><td align="right">&nbsp;</td><td align="right">&nbsp;</td><td align="right">&nbsp;</td></tr>';
     56      $Output .= '</table>';
     57    } else $Output = 'Nemáte oprávnění';
     58    return($Output);
     59  }
     60}
    14161
    142     //$DbResult = $Database->query("SELECT *,CONCAT(second_name, ' ', first_name) as fullname FROM users WHERE role=2 ORDER BY fullname");
    143     while($Row = $DbResult->fetch_array())
    144     {
    145       $Monthly = $Row['monthly'] - $Row['plus'];
    146       if($Row['hw'] == 0) $Monthly = '(trvale nepřipojen) '.(-$Row['plus']);
    147       else {     
    148         if($Row['overheads'] == 0) $Monthly = '(dočasně nepřipojen) '.$Monthly;
    149         else {
    150           if($Row['inet'] == 0) $Monthly = '(bez internetu) '.$Monthly;
    151           else $Monthly = $Monthly;
    152         }
    153       }
    154       //$Row['cash'] = $Row['AdvancesIn'] - $Row['AdvancesOut'] + $Row['Liabilities'] - $Row['Claims'];
    155       $TotalCash += $Row['Cash'];
    156       if($Row['Cash'] < 0) $Row['Cash'] = '<span style="color: red;">'.$Row['Cash'].'</span>';
    157       $Tarif = $Tarify[$Row['inet_tarif_now']]['name'];
    158       $PristiTarif = $Tarify[$Row['inet_tarif_next']]['name'];
    159       echo('<tr><td><a href="?show=user&amp;id='.$Row['id'].'">'.$Row['Fullname'].'</a></td>');
    160 //<td align="right">'.$Row['network_device'].'</td>
    161       echo('<td align="right">'.$Monthly.'</td><td align="right">'.$Row['Cash'].'</td><td align="center">'.$Tarif.'</td><td align="center">'.$PristiTarif.'</td><td>'.$Row['notice'].'&nbsp;</td></tr>');
    162       $TotalDevice += $Row['network_device'];
    163       $TotalMonth += ($Row['monthly'] - $Row['plus']);
    164     }
    165     echo('<tr><td><strong>Celkem</strong></td>');
    166     //<td align="right"><strong>'.$TotalDevice.'</strong></td>
    167     echo('<td align="right"><strong>'.$TotalMonth.'</strong></td><td align="right"><strong>'.$TotalCash.'</strong></td><td align="right">&nbsp;</td><td align="right">&nbsp;</td><td align="right">&nbsp;</td></tr>');
    168     echo('</table>');
    169     ShowFooter();
    170   }
     62$System->AddModule(new FinanceUserList());
     63$System->Modules['FinanceUserList']->GetOutput();
    17164
    17265?>
  • www/finance/finance.php

    r70 r152  
    11<?php
    22
    3 include('../global.php');
    4 include_once('classes.php');
     3class Finance extends Module
     4{
    55
    6 function MakeLink($Target, $Title)
    7 {
    8   return('<a href="'.$Target.'">'.$Title.'</a>');
    9 }
    10 
    11 function Table($Table)
    12 {
    13   $Result = '<table cellspacing="0" border="1" cellpadding="3" class="BasicTable">';
    14   $Result .= '<tr>';
    15   foreach($Table['Header'] as $Item)
    16     $Result .= '<th>'.$Item.'</th>';
    17   $Result .= '</tr>';
    18   foreach($Table['Rows'] as $Row)
    19   {
    20     $Result .= '<tr>';
    21     foreach($Row as $Item)
    22       $Result .= '<td>'.$Item.'</td>';
    23     $Result .= '</tr>';
    24   }
    25   $Result .= '</table>';
    26   return($Result);
    27 }
    28 
    29 function ShowEditTable($ClassName, $Values)
    30 {
    31   global $Classes, $Types, $Database;
    32 
    33   $Class = $Classes[$ClassName];
    34   $Table = array(
    35     'Header' => array('Položka', 'Hodnota'),
    36     'Rows' => array(),
    37   );
    38  
    39   foreach($Class['Items'] as $Index => $Item)
    40   {
    41     if(!array_key_exists($Index, $Values)) $Values[$Index] = $Item['Default'];
    42     switch($Item['Type'])
    43     {
    44       case 'Boolean':       
    45         if($Values[$Index] == 0) $Checked = ''; else $Checked = ' CHECKED';
    46         $Edit = '<input type="checkbox" name="'.$Index.'"'.$Checked.'>';
    47         break;
    48       case 'String':
    49         $Edit = '<input type="text" name="'.$Index.'" value="'.$Values[$Index].'">';
    50         break;
    51       case 'Integer':
    52         $Edit = '<input type="text" name="'.$Index.'" value="'.$Values[$Index].'">';
    53         break;
    54       case 'Float':
    55         $Edit = '<input type="text" name="'.$Index.'" value="'.$Values[$Index].'">';
    56         break;
    57       case 'Time':
    58         if($Values[$Index] == 'Now') $Values[$Index] = date('j.n.Y');
    59         $Edit = '<input type="text" name="'.$Index.'" value="'.$Values[$Index].'">';
    60         break;
    61       case 'FinanceSubject':
    62        
    63         $Edit = '<select name="'.$Index.'">';
    64         $DbResult = $Database->select('users', 'id, CONCAT(second_name, " ", first_name) as fullname', 'role=2 ORDER BY fullname');
    65         while($Row = $DbResult->fetch_array())
    66           $Edit .= '<option value="'.$Row['id'].'">'.$Row['fullname'].'</option>';
    67         $Edit .= '</select>';
    68         break;
    69       case 'Array':
    70         $Edit = ShowEditTable($Item['ItemClass'], array());
    71         $Edit .= '<form action="?Operation=AddItem&dsd" method="post"><input type="submit" value="Přidat položku"></form>';
    72         break;
    73       default:
    74         $Edit = 'Neznámý typ';     
    75     }
    76     array_push($Table['Rows'], array($Item['Caption'], $Edit));
    77   }
    78   $Output = '<h3>'.$Class['Title'].'</h3>'.Table($Table);
    79   return($Output);
    80 }
    81 
    82 function LoadSubmitedData($ClassName)
    83 {
    84   global $Classes, $Types, $Database;
    85 
    86   $Class = $Classes[$ClassName];
    87   $Values = array();
    88  
    89   foreach($Class['Items'] as $Index => $Item)
    90   {
    91     switch($Item['Type'])
    92     {
    93       case 'Boolean':       
    94         if(array_key_exists($Index, $_POST)) $Values[$Index] = 1;
    95         else $Values[$Index] = 0;
    96         break;
    97       case 'String':
    98         $Values[$Index] = $_POST[$Index];
    99         break;
    100       case 'Integer':
    101         $Values[$Index] = $_POST[$Index];
    102         break;
    103       case 'Float':
    104         $Values[$Index] = $_POST[$Index];
    105         break;
    106       case 'Time':
    107         $Values[$Index] = explode('.', $_POST[$Index]);
    108         $Values[$Index] = mktime(0, 0, 0, $Values[$Index][1], $Values[$Index][0], $Values[$Index][2]);
    109         break;
    110       case 'FinanceSubject':
    111         $Values[$Index] = $_POST[$Index];
    112         break;
    113       default:
    114     }
    115   }
    116   return($Values);   
    1176}
    1187
  • www/finance/include.php

    r133 r152  
    131131}
    132132
     133
    133134?>
  • www/finance/index.php

    r145 r152  
    11<?php
    2 include_once('../style.php');
     2include_once('../global.php');
    33include_once('include.php');
    44
    5 ShowHeader('Financování sítě', 'Finance');
     5class FinanceOverview extends Page
     6{
     7  var $FullTitle = 'Přehled financování sítě';
     8  var $ShortTitle = 'Přehled financí';
    69
    7 echo('<table><tr><td valign="top">');
     10  function Show()
     11  {
     12    global $Config, $RealMaxSpeed, $Internet, $InternetUsers, $kWh, $TotalInternetPaid, $SpravaUsers, $Sprava, $UserIdNetwork;
    813
    9 echo('<table><tr><td width="30%">');
    10 if(GetMemberByIP(GetRemoteAddress()) > 0) echo('<a href="clenove.php">Vaše finanční operace</a><br /><br /><br />');
    11 echo('<a href="monthly_overall.php">Měsíční přehledy</a><br />'.
    12 '<a href="tarify.php">Tarify</a><br />'.
    13 '<a href="zarizeni.php">Výpis zařízení</a><br />'.
    14 //'<a href="spotreba.php">Spotřeba energie</a><br />'.
    15 '<a href="'.$Config['Web']['RootFolder'].'/aktuality/index.php?category=9">Investice v síti</a><br />'.
    16 //'<a href="faktury/">Faktury za internet</a><br />'.
    17 //'<a href="inventory.php">Výpis skladových zásob</a><br />'.
    18 //'<a href="srovnani.php">Porovnání tarifů s konkurencí</a><br />'.
    19 '</td><td width="50%">');
     14    $Output = '<table><tr><td valign="top">';
    2015
     16    $Output .= '<table><tr><td width="30%">';
     17        if(GetMemberByIP(GetRemoteAddress()) > 0) $Output .= '<a href="user_state.php">Vaše finanční operace</a><br /><br /><br />';
     18       
     19    $Output .= '<a href="monthly_overall.php">Měsíční přehledy</a><br />';
     20    $Output .= '<a href="tarify.php">Tarify</a><br />';
     21    $Output .= '<a href="zarizeni.php">Výpis zařízení</a><br />';
     22    if($this->System->Modules['User']->CheckPermission('Finance', 'SubjectList')) $Output .= '<a href="clenove.php">Seznam členů</a><br />';
     23    $Output .= '<a href="spotreba.php">Spotřeba energie</a><br />';
     24    $Output .= '<a href="'.$Config['Web']['RootFolder'].'/aktuality/index.php?category=9">Investice v síti</a><br />';
     25    //$Output .= '<a href="faktury/">Faktury za internet</a><br />';
     26    //$Output .= '<a href="inventory.php">Výpis skladových zásob</a><br />';
     27    $Output .= '</td><td width="50%">';
    2128
    22 /*
    23 $CenaBezDPH = 11000;
    24 $JednorazoveBezDPH = 29800;
    25 DB_Query('SELECT COUNT(*) FROM users WHERE inet=1 AND role=0');
    26 $Row = DB_Row();
    27 echo('<table style="border-style: dotted; border-width: 1; border-color: red; font-size: small;"><tr><td>'.
    28 'Měsíční poplatek za internet při navýšení rychlosti na 1024/1024 kb/s: '.round($CenaBezDPH*1.19).' / '.$Row[0].' = <strong>'.round($CenaBezDPH*1.19/$Row[0]).' Kč</strong></td></tr></table>');
    29 */
    30 /*
    31 DB_Query('SELECT COUNT(*) FROM users WHERE fast_inet=1 AND role=0');
    32 $Row = DB_Row();
    33 echo('Při <a href="clenove.php">'.$Row[0].'</a> zájemcích včetně DPH: jednorázově: <strong>'.round(29800*1.19/$Row[0]).' Kč</strong>'.
    34 ' měsíčně: <strong>'.round(8900*1.19/$Row[0]).' Kč</strong>');
    35 */
     29    $Output .= '</td></tr></table><br />';
    3630
    37 echo('</td></tr></table><br />');   
     31    $Output .= '<strong>Souhrn:</strong><br />';
    3832
    39 echo('<strong>Souhrn:</strong><br />');
     33    $DbResult = $this->Database->query("SELECT * FROM finance_monthly_overall ORDER BY date DESC LIMIT 0,1");
     34    $Row = $DbResult->fetch_array();
     35    $Output .= 'Platba za internetovou linku ('.$RealMaxSpeed.'/'.$RealMaxSpeed.' kbit/s): <strong>'.$Internet.' Kč</strong><br />';
    4036
    41 $DbResult = $Database->query("SELECT * FROM finance_monthly_overall ORDER BY date DESC LIMIT 0,1");
    42 $Row = $DbResult->fetch_array();
    43 echo('Poplatek za hlavní internetovou linku ('.$RealMaxSpeed.'/'.$RealMaxSpeed.' kbit/s): <strong>'.$Internet.' Kč</strong><br />');
     37    $DbResult = $this->Database->query("SELECT COUNT(*) FROM users WHERE role=2");
     38    $Row2 = $DbResult->fetch_array();
     39    $Output .= 'Počet účastníků: <strong>'.$Row2[0].'</strong><br />';
    4440
    45 $DbResult = $Database->query("SELECT COUNT(*) FROM users WHERE role=2");
    46 $Row2 = $DbResult->fetch_array();
    47 echo('Počet připojených účastníků: <strong>'.$Row2[0].'</strong><br />');
     41    $DbResult = $this->Database->query("SELECT SUM(price) FROM network_devices WHERE used=1");
     42    $Row4 = $DbResult->fetch_array();
     43    $Output .= 'Celková cena zařízení sítě: <strong>'.$Row4[0].' Kč</strong><br />';
    4844
    49 //echo('Předpokládané rozmezí měsíčního poplateku za internet pro jednoho uživatele: <strong>300 - 500 Kč</strong><br />');
     45    $DbResult = $this->Database->query('SELECT SUM((SELECT COALESCE(SUM(Value), 0) FROM FinanceCashFlow WHERE Subject=users.id) + (SELECT COALESCE(SUM(-Value), 0) FROM FinanceClaimsLiabilities WHERE Subject=users.id)) as Cash FROM users WHERE role=2');
     46    $Row4 = $DbResult->fetch_array();
     47    $Output .= 'Celkem peněz na účtech: <strong>'.$Row4[0].' Kč</strong><br />';
     48    $Output .= 'Stanovená cena jedné kWh: <strong>'.$kWh.' Kč</strong><br />';
     49    //echo('Komunitou stanovený poplatek za správu sítě pro jednoho uživatele: <strong>'.$Sprava.' Kč</strong><br />');
     50    $DbResult = $this->Database->query("SELECT SUM(family) FROM users WHERE role=2");
     51    $Row5 = $DbResult->fetch_array();
     52    $TotalFamily = 600;
     53    $Output .= 'V připojených domácnostech celkem <strong>'.$Row5[0].'</strong> občanů ze všech <strong>'.$TotalFamily.'</strong> ('.round($Row5[0] / $TotalFamily * 100).' %)<br />';
     54    $Output .= 'IČ: <strong>75904535</strong><br />'.
     55    'DIČ: <strong>CZ8303255884</strong><br />'.
     56    'Bankovní účet: <strong>218098370 / 0300</strong><br />'.
     57    '<br />';
    5058
    51 //echo('Aktuální poplatek za internet pro jednoho uživatele: <strong>'.round($Internet/$InternetUsers).' Kč</strong><br />');
     59    $Output .= '</td><td valign="top">';
    5260
    53 $DbResult = $Database->query("SELECT SUM(price) FROM network_devices WHERE used=1");
    54 $Row4 = $DbResult->fetch_array();
    55 echo('Celková cena zařízení sítě: <strong>'.$Row4[0].' Kč</strong><br />');
    56 $DbResult = $Database->query("SELECT SUM(cash) FROM users");
    57 $Row4 = $DbResult->fetch_array();
    58 echo('Celkem peněz na účtech: <strong>'.$Row4[0].' Kč</strong><br />');
    59 echo('Stanovená cena jedné kWh: <strong>'.$kWh.' Kč</strong><br />');
    60 //echo('Komunitou stanovený poplatek za správu sítě pro jednoho uživatele: <strong>'.$Sprava.' Kč</strong><br />');
    61 $DbResult = $Database->query("SELECT SUM(family) FROM users WHERE role=2");
    62 $Row5 = $DbResult->fetch_array();
    63 $TotalFamily = 600;
    64 echo('V připojených domácnostech celkem <strong>'.$Row5[0].'</strong> občanů ze všech <strong>'.$TotalFamily.'</strong> ('.round($Row5[0] / $TotalFamily * 100).' %)<br />');
    65 echo('IČ: <strong>75904535</strong><br />'.
    66 'DIČ: <strong>CZ8303255884</strong><br />'.
    67 'Bankovní účet: <strong>218098370 / 0300</strong><br />'.
    68 '<br />');
     61    $UsersPayment = $TotalInternetPaid;
     62    $NetworkManagement = $Sprava * $SpravaUsers;
     63    $TotalGain = 0;
     64    $TotalExpense = 0;
     65    $DbResult = $this->Database->query("SELECT SUM(consumption) FROM network_devices WHERE used=1");
     66    $Row = $DbResult->fetch_array();
     67    $TotalConsumption = W2Kc($Row[0]);
    6968
    70 echo('</td><td valign="top">');
     69    $Output .= 'Měsíční vyúčtování:<br />
     70    <table border="1" cellspacing="0" cellpadding="3">
     71    <tr><th>Položka</th><th>Cena [Kč]</th></tr>
     72    <tr><th colspan="2">Příjmy</th></tr>';
     73    $Output .= '<tr><td>Poplatky účastníků za internet</td><td align="right">'.$UsersPayment.'</td></tr>';
     74    $TotalGain += $UsersPayment;
     75    $Output .= '<tr><td><strong>Celkem</strong></td><td align="right"><strong>'.$TotalGain.'</strong></td></tr>';
     76    $Output .= '<tr><th colspan="2">Výdaje</th></tr><tr><td>Internet</td><td align="right">'.$Internet.'</td></tr>';
     77    $TotalExpense += $Internet;
     78    $Output .= '<tr><td>Správa sítě</td><td align="right">'.$NetworkManagement.'</td></tr>';
     79    $TotalExpense += $NetworkManagement;
     80    $Output .= '<tr><td>Spotřeba energie</td><td align="right">'.$TotalConsumption.'</td></tr>';
     81    $TotalExpense += $TotalConsumption;
     82    $Output .= '<tr><td><strong>Celkem</strong></td><td align="right"><strong>'.$TotalExpense.'</strong></td></tr>';
     83    $Output .= '<tr><td colspan="2">&nbsp;</td></tr>';
     84    $Output .= '<tr><td><strong>Rozdíl</strong></td><td align="right"><strong>'.($TotalGain - $TotalExpense).'</strong></td></tr>';
     85    $Output .= '<tr><td>Převod do dalšího měsíce</td><td align="right">'.($TotalGain - $TotalExpense).'</td></tr>';
     86    $Output .= '</table><br />';
     87    $DbResult = $this->Database->select('users', 'cash', 'id='.$UserIdNetwork);
     88    $Row = $DbResult->fetch_array();
     89    $NetworkCash = $Row['cash'];
     90    $Output .= 'Stav účtu sítě: '.$NetworkCash.' Kč<br /><a href="clenove.php?show=user&amp;id='.$UserIdNetwork.'">Výpis účtu</a><br />';
    7191
    72 $UsersPayment = $TotalInternetPaid;
    73 $NetworkManagement = $Sprava * $SpravaUsers;
    74 $TotalGain = 0;
    75 $TotalExpense = 0;
    76 $DbResult = $Database->query("SELECT SUM(consumption) FROM network_devices WHERE used=1");
    77 $Row = $DbResult->fetch_array();
    78 $TotalConsumption = W2Kc($Row[0]);
    79 //$Users
    80 
    81 echo('Měsíční vyúčtování:<br />
    82 <table border="1" cellspacing="0" cellpadding="3">
    83 <tr><th>Položka</th><th>Cena [Kč]</th></tr>
    84 <tr><th colspan="2">Příjmy</th></tr>');
    85 echo('<tr><td>Poplatky účastníků za internet</td><td align="right">'.$UsersPayment.'</td></tr>');
    86 $TotalGain += $UsersPayment;
    87 echo('<tr><td><strong>Celkem</strong></td><td align="right"><strong>'.$TotalGain.'</strong></td></tr>');
    88 echo('<tr><th colspan="2">Výdaje</th></tr>
    89 <tr><td>Internet</td><td align="right">'.$Internet.'</td></tr>');
    90 $TotalExpense += $Internet;
    91 echo('<tr><td>Správa sítě</td><td align="right">'.$NetworkManagement.'</td></tr>');
    92 $TotalExpense += $NetworkManagement;
    93 echo('<tr><td>Spotřeba energie</td><td align="right">'.$TotalConsumption.'</td></tr>');
    94 $TotalExpense += $TotalConsumption;
    95 echo('<tr><td><strong>Celkem</strong></td><td align="right"><strong>'.$TotalExpense.'</strong></td></tr>');
    96 echo('<tr><td colspan="2">&nbsp;</td></tr>');
    97 echo('<tr><td><strong>Rozdíl</strong></td><td align="right"><strong>'.($TotalGain - $TotalExpense).'</strong></td></tr>');
    98 echo('<tr><td>Převod do dalšího měsíce</td><td align="right">'.($TotalGain - $TotalExpense).'</td></tr>');
    99 echo('</table><br />');
    100 $DbResult = $Database->select('users', 'cash', 'id='.$UserIdNetwork);
    101 $Row = $DbResult->fetch_array();
    102 $NetworkCash = $Row['cash'];
    103 //echo('Stav účtu sítě: '.$NetworkCash.' Kč<br />');
    104 //<a href="clenove.php?show=user&amp;id='.$UserIdNetwork.'">Výpis účtu</a><br />');
    105 
    106 echo('</td></tr></table>');
     92    $Output .= '</td></tr></table>';
    10793
    10894/*
     
    11096echo('<strong>Jak se rozpočítávají finance</strong><br />Internet i zařízení sítě se platí za domácnost. Systém výpočtu vychází z topologie sítě. Síť má stromovou topologii přičemž listy stromu jsou jednotliví uživatelé a kořen stromu je linka do internetu. Dosavadní systém je uzpůsoben tak, aby linky, které jsou nejvíce zatíženy, byly nejlépe zaplaceny a mohlo na nich tak být dražší a výkonější zařízení. Nejvytíženější linky se nazývají páteřní. Proto platí každý uživatel podílově zařízení, které vede od něj až ke kořenu stromu, což je v našem případě server Centrála s trvalým internetovým připojením. Pro jednoduchost je síť rozdělena na segmenty. Segment je část sítě, kterou využívá konstantní počet uživatelů. Každý segment je tvořen skupinou zařízení a má svoji celkovou cenu. Každý uživatel je přirozeně napojen na některý ze segmentů. Podíl klienta na zařízení sítě je vypočten jako součet podílů na jednotlivých segmentech směrem ke kořenu. Podíl na segmentu znamená celková cena segmentu podělená počtem uživatelů využívajících daný segment.<br />');
    11197*/
    112 ShowFooter();
     98    return($Output);
     99  }
     100}
     101
     102$System->AddModule(new FinanceOverview());
     103$System->Modules['FinanceOverview']->GetOutput();
     104
    113105?>
  • www/finance/inventory.php

    r4 r152  
    11<?php
    2 include('../global.php');
    3 include('../style.php');
     2include_once('../global.php');
     3include_once('include.php');
    44
    5 ShowHeader('Zařízení sítě','Zařízení');
     5class FinanceStoragePage extends Page
     6{
     7  var $FullTitle = 'Skladové zásoby';
     8  var $ShortTitle = 'Sklad';
    69
    7 // Seznam segmentů a zařízení
    8 $TotalPrice = 0;
    9 echo('Výpis skladových zásob:<br><table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    10 echo('<tr><th>Název</th><th>Datum<br>zakoupení</th><th>Cena [Kč]</th><th>Počet</th><th>Cena<br> dohromady [Kč]</th></tr>');
    11 $DbResult = $Database->query("SELECT * FROM network_devices WHERE used=2");
    12 while($Row = $DbResult->fetch_array())
    13 {
    14   echo('<tr><td>'.$Row['name'].'</td><td align="right">'.HumanDate($Row['date']).'</td><td align="right">'.$Row['price'].'</td><td align="right">'.$Row['count'].'</td><td align="right">'.$Row['count'] * $Row['price'].'</td></tr>');
    15   $TotalPrice = $TotalPrice + $Row['count'] * $Row['price'];
     10  function Show()
     11  {
     12    $TotalPrice = 0;
     13    $Output = 'Výpis skladových zásob:<br><table class="WideTable">';
     14    $Output .= '<tr><th>Název</th><th>Datum<br />zakoupení</th><th>Cena [Kč]</th><th>Počet</th><th>Cena<br /> dohromady [Kč]</th></tr>';
     15    $DbResult = $this->Database->query("SELECT * FROM network_devices WHERE used=2");
     16    while($Row = $DbResult->fetch_array())
     17    {
     18      $Output .= '<tr><td>'.$Row['name'].'</td><td align="right">'.HumanDate($Row['date']).'</td><td align="right">'.$Row['price'].'</td><td align="right">'.$Row['count'].'</td><td align="right">'.$Row['count'] * $Row['price'].'</td></tr>';
     19      $TotalPrice = $TotalPrice + $Row['count'] * $Row['price'];
     20    }
     21
     22    $Output .= '<tr><td colspan="4"><strong>Celkem:</strong></td><td align="right"><strong>'.$TotalPrice.'</strong></td></tr>';
     23    $Output .= '</table>';
     24    return($Output);
     25  }
    1626}
    1727
    18 echo('<tr><td colspan="4"><strong>Celkem:</strong></td><td align="right"><strong>'.$TotalPrice.'</strong></td></tr>');
    19 echo('</table>');
     28$System->AddModule(new FinanceStoragePage());
     29$System->Modules['FinanceStoragePage']->GetOutput();
    2030
    21 ShowFooter();
    2231?>
  • www/finance/manage.php

    r144 r152  
    11<?php
    2 
    3 include('finance.php');
    4 include('bills.php');
    5 
    6 /*
    7 if(array_key_exists('Operation', $_GET)) $Operation = $_GET['Operation']; else $Operation = '';
    8 switch($Operation)
     2include_once('../global.php');
     3include_once('include.php');
     4
     5class FinanceManagePage extends Page
    96{
    10   case 'NewPaymentInsert':
    11     $Output = ShowNewPaymentInsert(); 
    12     break;
    13   case 'NewPaymentForm':
    14     $Output = ShowNewPaymentForm(); 
    15     break;
    16   case 'NewInvoiceForm':
    17     $Output = ShowNewInvoiceForm(); 
    18     break;
    19   default:
    20     $Output = '<a href="?Operation=NewPaymentForm">Přidat novou platbu</a><br>';
    21     $Output .= '<a href="?Operation=NewInvoiceForm">Přidat novou fakturu</a><br>';
    22 }
    23 echo(FormatOutput($Output));
    24 */
    25 
    26 function CheckAdvancesAndLiabilities($Subject)
    27 {
    28   global $Database, $LastInsertTime;
    29   do {
    30     $DbResult = $Database->select('FinanceAdvances', 'SUM(Value)', 'Subject='.$Subject.' AND Direction = "In"');
    31     $DbRow = $DbResult->fetch_array();
    32     $Advances = $DbRow[0];
    33     $DbResult = $Database->select('FinanceClaimsLiabilities', '*', 'Subject='.$Subject.' AND TimePayment IS NULL AND Value > 0 ORDER BY TimeCreation LIMIT 1');
    34     //echo($Database->error);
    35     if($DbResult->num_rows > 0)
    36     {
    37       $OpenedClaim = $DbResult->fetch_array();
    38       if($Advances > $OpenedClaim['Value'])
    39       {
    40         $Database->update('FinanceClaimsLiabilities', 'Id='.$OpenedClaim['Id'], array('TimePayment' => TimeToMysqlDateTime($LastInsertTime)));
    41         $Database->insert('FinanceAdvances', array('Subject' => $OpenedClaim['Subject'], 'Value' => -$OpenedClaim['Value'], 'TimeCreation' => TimeToMysqlDateTime($LastInsertTime), 'CashFlowId' => $OpenedClaim['Id'], 'Direction' => 'In'));
    42         //echo($Database->LastQuery);
     7  var $FullTitle = 'Správa financí';
     8  var $ShortTitle = 'Správa financí';
     9
     10  function Show()
     11  {
     12    //if(!$this->System->Modules['User']->CheckPermission('Finance', 'Manage')) return('Nemáte oprávnění');
     13
     14    if(array_key_exists('Operation', $_GET)) $Operation = $_GET['Operation']; else $Operation = '';
     15    switch($Operation)
     16    {
     17      case 'Bills':
     18        $Output = $this->BillManage();
     19        break;
     20      case 'ConvertPDFToFile':
     21        $Output = $this->ConvertPDFDataToFiles();
     22        break;
     23      case 'ImportOldData':
     24        $Output = $this->ImportOldData();
     25        break;
     26      case 'NewDeviceForm':
     27        $Output = $this->ShowNewDeviceForm();
     28        break;
     29      case 'NewDeviceInsert':
     30        $Output = $this->ShowNewDeviceInsert();
     31        break;
     32      case 'NewDeviceHistoryForm':
     33        $Output = $this->ShowNewDeviceHistoryForm();
     34        break;
     35      case 'NewDeviceHistoryInsert':
     36        $Output = $this->ShowNewDeviceHistoryInsert();
     37        break;
     38      case 'NewPaymentInsert':
     39        $Output = $this->ShowNewPaymentInsert();
     40        break;
     41      case 'NewPaymentForm':
     42        $Output = $this->ShowNewPaymentForm();
     43        break;
     44      case 'NewInvoiceInsert':
     45        $Output = $this->ShowNewInvoiceInsert();
     46        break;
     47      case 'NewInvoiceForm':
     48        $Output = $this->ShowNewInvoiceForm();
     49        break;
     50      default:
     51        $Output = '<a href="?Operation=NewDeviceForm">Přidat nové zařízení</a><br>';
     52        $Output .= '<a href="?Operation=NewDeviceHistoryForm">Přidat nový záznam historie zařízení</a><br>';
     53        $Output .= '<a href="?Operation=NewPaymentForm">Přidat novou platbu</a><br>';
     54        $Output .= '<a href="?Operation=NewInvoiceForm">Přidat novou fakturu</a><br>';
     55        $Output .= '<a href="?Operation=ImportOldData">Importovat stará data</a><br>';
     56        $Output .= '<a href="?Operation=ConvertPDFToFile">Převést data z databáze do souborů</a><br>';
     57        $Output .= '<a href="?Operation=Bills">Správa dokladů</a><br>';
     58    }
     59    return($Output);
     60  }
     61
     62  function BillManage()
     63  {
     64    $Output = '';
     65    if(array_key_exists('user', $_GET))
     66    {
     67      $DbResult = $this->Database->select('finance_bills', '*', 'user_id='.$_GET['user']);
     68      while($Item = $DbResult->fetch_array())
     69      {
     70        $Output .= '<a href="?Operation=Bills&amp;bill='.$Item['id'].'">faktura '.$Item['id'].'</a> <a href="?Operation=Bills&amp;billpdf='.$Item['id'].'">Uložené PDF</a> <a href="?Operation=Bills&amp;billpdf2='.$Item['id'].'">Generované PDF</a> <a href="?Operation=Bills&amp;regenerate='.$Item['id'].'">Přegenerovat</a><br />';
     71      }
     72    } else
     73    if(array_key_exists('billpdf', $_GET))
     74    {
     75      $Output .= $this->System->Modules['Bill']->ShowStoredBill($_GET['billpdf']);
     76    } else
     77    if(array_key_exists('billpdf2', $_GET))
     78    {
     79      $Output .= $this->System->Modules['Bill']->ShowGeneratedBill($_GET['billpdf2']);
     80    } else
     81    if(array_key_exists('regenerate', $_GET))
     82    {
     83      $Output .= $this->System->Modules['Bill']->RegeneratePDF($_GET['regenerate']);
     84    } else
     85    if(array_key_exists('bill', $_GET))
     86    {
     87      $Output .= $this->System->Modules['Bill']->GenerateBill($_GET['bill']);
     88    } else
     89    if(array_key_exists('generate', $_GET))
     90    {
     91      $Output .= $this->System->Modules['Bill']->CreateBill(1, array(array('description' => 'Poplatek za připojení k síti', 'price' => 1000, 'quantity' => 1)), time(), time());
     92    } else
     93    {
     94      //ShowHeader('Faktury', 'Faktury');
     95      $Output .= 'Faktury:<br />';
     96      $DbResult = $this->Database->select('users', '*, CONCAT(second_name," ", first_name)  as fullname', '1 ORDER BY fullname');
     97      while($User = $DbResult->fetch_array())
     98      {
     99        $Output .= '<a href="?Operation=Bills&amp;user='.$User['id'].'">'.$User['fullname'].'</a><br />';
     100      }
     101      //ShowFooter();
     102    }
     103    return($Output);
     104  }
     105
     106  function CheckAdvancesAndLiabilities($Subject)
     107  {
     108    global $LastInsertTime;
     109
     110    do {
     111      $DbResult = $this->Database->select('FinanceAdvances', 'SUM(Value)', 'Subject='.$Subject.' AND Direction = "In"');
     112      $DbRow = $DbResult->fetch_array();
     113      $Advances = $DbRow[0];
     114      $DbResult = $this->Database->select('FinanceClaimsLiabilities', '*', 'Subject='.$Subject.' AND TimePayment IS NULL AND Value > 0 ORDER BY TimeCreation LIMIT 1');
     115      //echo($Database->error);
     116      if($DbResult->num_rows > 0)
     117      {
     118        $OpenedClaim = $DbResult->fetch_array();
     119        if($Advances > $OpenedClaim['Value'])
     120        {
     121          $this->Database->update('FinanceClaimsLiabilities', 'Id='.$OpenedClaim['Id'], array('TimePayment' => TimeToMysqlDateTime($LastInsertTime)));
     122          $this->Database->insert('FinanceAdvances', array('Subject' => $OpenedClaim['Subject'], 'Value' => -$OpenedClaim['Value'], 'TimeCreation' => TimeToMysqlDateTime($LastInsertTime), 'CashFlowId' => $OpenedClaim['Id'], 'Direction' => 'In'));
     123          //echo($Database->LastQuery);
     124        } else break;
    43125      } else break;
    44     } else break;
    45   } while(($Advances > $OpenedClaim['Value']));
    46 }
    47 
    48 function InsertLiability($Subject, $Value, $Time, $BillId, $Text, $TimePayment = '')
    49 {
    50   global $Database, $LastInsertTime;
    51   if($TimePayment != '') $TimePayment = TimeToMysqlDateTime($TimePayment);
    52   $Database->insert('FinanceClaimsLiabilities', array('Text' => $Text, 'Subject' => $Subject, 'TimeCreation' => TimeToMysqlDateTime($Time), 'TimeDue' => TimeToMysqlDateTime($Time + 3600*24*15), 'TimePayment' => $TimePayment, 'Value' => $Value, 'Bill' => $BillId));
    53   echo($Database->LastQuery.'<br>');
    54   $LastInsertTime = $Time;
    55   CheckAdvancesAndLiabilities($Subject);
    56 }
    57 
    58 function InsertMoney($Subject, $Value, $Cash, $Taxable, $Time, $Text)
    59 {
    60   global $Database, $LastInsertTime;
    61   $Database->insert('FinanceCashFlow', array('Text' => $Text, 'Subject' => $Subject, 'Cash' => $Cash, 'Value' => $Value, 'Time' => TimeToMysqlDateTime($Time), 'Taxable' => $Taxable));
    62   if($Value >= 0)
    63   {
    64     $Database->insert('FinanceAdvances', array('Subject' => $Subject, 'Value' => $Value, 'TimeCreation' => TimeToMysqlDateTime($Time), 'CashFlowId' => $Database->insert_id, 'Direction' => 'In'));
    65   }
    66   $LastInsertTime = $Time;
    67   CheckAdvancesAndLiabilities($Subject);
    68 }
    69 
    70 function ShowNewPaymentForm()
    71 {
    72   global $Database;
    73   $Values = array();
    74   $Output = '<form action="?Operation=NewPaymentInsert" method="post">'.ShowEditTable('NewPayment', $Values);
    75   $Output .= '<input type="submit" value="Vložit"></form>';
    76   return($Output);
    77 }
    78 
    79 function ShowNewPaymentInsert()
    80 {
    81   global $Database;
    82   $Values = LoadSubmitedData('NewPayment');
    83   InsertMoney($Values['Subject'], $Values['Value'], $Values['Cash'], $Value['Taxable'], $Values['Text'], time());
    84   echo('Nová platba vložena');
    85   //echo(phpinfo());
    86 }
    87 
    88 function ShowNewInvoiceForm()
    89 {
    90   global $Database;
    91   $Values = array();
    92   $Output = '<form action="?Operation=NewInvoiceInsert" method="post">'.ShowEditTable('NewInvoice', $Values);
    93   $Output .= '<input type="submit" value="Vložit"></form>';
    94   return($Output);
    95 }
    96 
    97 function ImportOldData()
    98 {
    99   global $Database, $InvoiceGenerator;
    100 
    101   $Database->query('TRUNCATE TABLE FinanceCashFlow');
    102   $Database->query('TRUNCATE TABLE FinanceClaimsLiabilities');
    103   $Database->query('TRUNCATE TABLE FinanceAdvances');
    104   $Database->query('TRUNCATE TABLE FinanceSmallAssets');
    105 
    106   // Move time of device price transformation
    107   $Database->query('UPDATE finance_operations SET date="2007-11-30" WHERE comment = "Jednorázový poplatek za společné zařízení"');
    108 
    109   // Transfer finance before era
    110   $DbResult = $Database->query('SELECT * FROM users WHERE role=2');
    111   while($User = $DbResult->fetch_array())
    112   {
    113     $DbResult2 = $Database->query('SELECT SUM(money) FROM finance_operations WHERE user='.$User['id'].' AND date < "2007-12-01"');
    114     $Row = $DbResult2->fetch_array();
    115     $TotalAdvance = $Row[0];
    116     //echo($User['second_name'].' '.$User['first_name'].' '.$TotalAdvance.'<br>');
    117     // Záloha
    118     if($TotalAdvance > 0)
    119     {
    120       InsertMoney($User['id'], $TotalAdvance, 0, 1, mktime(0, 0, 0, 12, 1, 2007), 'Přijatá záloha (z období před daňovou evidencí)');
    121     }
    122     // Dluh
    123     if($TotalAdvance < 0)
    124     { 
    125       InsertLiability($User['id'], (-$Row[0]), mktime(0, 0, 0, 12, 1, 2007), 0, 'Připojení k síti (z období před daňovou evidencí)');
    126       //echo($Database->LastQuery.'<br>');
    127     }
    128   } 
    129 
    130   // Transfer finance after era
    131 //  $DbResult = $Database->query('SELECT * FROM users WHERE role=2');
    132 //  while($User = $DbResult->fetch_array())
    133 //  {
    134     $DbResult2 = $Database->query('SELECT finance_operations.*, users.role as role FROM finance_operations JOIN users ON users.id = finance_operations.user WHERE finance_operations.date >= "2007-12-01"');
     126    } while(($Advances > $OpenedClaim['Value']));
     127  }
     128
     129  function InsertLiability($Subject, $Value, $Time, $BillId, $Text, $TimePayment = '')
     130  {
     131    global $LastInsertTime;
     132
     133    if($TimePayment != '') $TimePayment = TimeToMysqlDateTime($TimePayment);
     134    $this->Database->insert('FinanceClaimsLiabilities', array('Text' => $Text, 'Subject' => $Subject, 'TimeCreation' => TimeToMysqlDateTime($Time), 'TimeDue' => TimeToMysqlDateTime($Time + 3600*24*15), 'TimePayment' => $TimePayment, 'Value' => $Value, 'Bill' => $BillId));
     135    $Output = $this->Database->LastQuery.'<br />';
     136    $LastInsertTime = $Time;
     137    $this->CheckAdvancesAndLiabilities($Subject);
     138    return($Output);
     139  }
     140
     141  function InsertMoney($Subject, $Value, $Cash, $Taxable, $Time, $Text)
     142  {
     143    global $LastInsertTime;
     144
     145    $this->Database->insert('FinanceCashFlow', array('Text' => $Text, 'Subject' => $Subject, 'Cash' => $Cash, 'Value' => $Value, 'Time' => TimeToMysqlDateTime($Time), 'Taxable' => $Taxable));
     146    if($Value >= 0)
     147    {
     148      $this->Database->insert('FinanceAdvances', array('Subject' => $Subject, 'Value' => $Value, 'TimeCreation' => TimeToMysqlDateTime($Time), 'CashFlowId' => $this->Database->insert_id, 'Direction' => 'In'));
     149    }
     150    $LastInsertTime = $Time;
     151    $this->CheckAdvancesAndLiabilities($Subject);
     152  }
     153
     154  function ShowNewDeviceForm()
     155  {
     156    $Form = new Form('NewNetworkDevice');
     157    $Form->OnSubmit = '?Operation=NewDeviceInsert';
     158    $Output = $Form->ShowEditForm();
     159    return($Output);
     160  }
     161
     162  function ShowNewDeviceInsert()
     163  {
     164    $Form = new Form('NewNetworkDevice');
     165    $Form->LoadValuesFromForm();
     166    $Form->SaveValuesToDatabase(0);
     167    $Output = $this->SystemMessage('Finance', 'Zařízení vloženo.');
     168    $this->System->Modules['Log']->NewRecord('Finance', 'NewDeviceInserted');
     169    return($Output);
     170  }
     171
     172  function ShowNewDeviceHistoryForm()
     173  {
     174    $Form = new Form('NewNetworkDeviceHistory');
     175    $Form->OnSubmit = '?Operation=NewDeviceHistoryInsert';
     176    $Output = $Form->ShowEditForm();
     177    return($Output);
     178  }
     179
     180  function ShowNewDeviceHistoryInsert()
     181  {
     182    $Form = new Form('NewNetworkDeviceHistory');
     183    $Form->LoadValuesFromForm();
     184    $Form->SaveValuesToDatabase(0);
     185    $Output = $this->SystemMessage('Finance', 'Záznam historie zařízení vložen.');
     186    $this->System->Modules['Log']->NewRecord('Finance', 'NewDeviceHistoryInserted');
     187    return($Output);
     188  }
     189
     190  function ShowNewPaymentForm()
     191  {
     192    $Form = new Form('NewPayment');
     193    $Form->OnSubmit = '?Operation=NewPaymentInsert';
     194    $Output = $Form->ShowEditForm();
     195    return($Output);
     196  }
     197
     198  function ShowNewPaymentInsert()
     199  {
     200    $Form = new Form('NewPayment');
     201    $Form->LoadValuesFromForm();
     202    $this->InsertMoney($Form->Values['Subject'], $Form->Values['Value'], $Form->Values['Cash'], $Form->Values['Taxable'], $Form->Values['Time'], $Form->Values['Text']);
     203    $Output = $this->SystemMessage('Finance', 'Platba vložena.');
     204    $this->System->Modules['Log']->NewRecord('Finance', 'NewPaymentInserted');
     205    return($Output);
     206  }
     207
     208  function ShowNewInvoiceForm()
     209  {
     210    $Form = new Form('NewInvoice');
     211    $Form->OnSubmit = '?Operation=NewInvoiceInsert';
     212    $Output = $Form->ShowEditForm();
     213    return($Output);
     214  }
     215
     216  function ShowNewInvoiceInsert()
     217  {
     218    $Form = new Form('NewInvoice');
     219    $Form->LoadvaluesFromForm();
     220    //print_r($Form->Values);
     221    //$this->InsertLiability($Form->Values['Subject'], $Form->Values['Value'], $Form->Values['Time'], $BillId, $Text, $TimePayment = '')
     222    $Output = $this->SystemMessage('Finance', 'Faktura vložena..');
     223    $this->System->Modules['Log']->NewRecord('Finance', 'NewInvoiceInserted');
     224    return($Output);
     225  }
     226
     227  function ImportOldData()
     228  {
     229    global $InvoiceGenerator;
     230
     231    $Output = '';
     232    $this->Database->query('TRUNCATE TABLE FinanceCashFlow');
     233    $this->Database->query('TRUNCATE TABLE FinanceClaimsLiabilities');
     234    $this->Database->query('TRUNCATE TABLE FinanceAdvances');
     235    $this->Database->query('TRUNCATE TABLE FinanceSmallAssets');
     236
     237    // Move time of device price transformation
     238    $this->Database->query('UPDATE finance_operations SET date="2007-11-30" WHERE comment = "Jednorázový poplatek za společné zařízení"');
     239
     240    // Transfer finance before era
     241    $DbResult = $this->Database->query('SELECT * FROM users WHERE role=2');
     242    while($User = $DbResult->fetch_array())
     243    {
     244      $DbResult2 = $this->Database->query('SELECT SUM(money) FROM finance_operations WHERE user='.$User['id'].' AND date < "2007-12-01"');
     245      $Row = $DbResult2->fetch_array();
     246      $TotalAdvance = $Row[0];
     247      //echo($User['second_name'].' '.$User['first_name'].' '.$TotalAdvance.'<br>');
     248      // Záloha
     249      if($TotalAdvance > 0)
     250      {
     251        $this->InsertMoney($User['id'], $TotalAdvance, 0, 1, mktime(0, 0, 0, 12, 1, 2007), 'Přijatá záloha (z období před daňovou evidencí)');
     252      }
     253      // Dluh
     254      if($TotalAdvance < 0)
     255      {
     256        $this->InsertLiability($User['id'], (-$Row[0]), mktime(0, 0, 0, 12, 1, 2007), 0, 'Připojení k síti (z období před daňovou evidencí)');
     257        //echo($Database->LastQuery.'<br>');
     258      }
     259    }
     260
     261    // Transfer finance after era
     262    //  $DbResult = $Database->query('SELECT * FROM users WHERE role=2');
     263    //  while($User = $DbResult->fetch_array())
     264    //  {
     265    $DbResult2 = $this->Database->query('SELECT finance_operations.*, users.role as role FROM finance_operations JOIN users ON users.id = finance_operations.user WHERE finance_operations.date >= "2007-12-01"');
    135266    while($Operation = $DbResult2->fetch_array())
    136267    {
     
    138269      if(substr($Operation['comment'], 0, 19) == 'Poplatek za měsíc')
    139270      {
    140         InsertLiability($Operation['user'], -$Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], 'Připojení k síti');
    141         echo($Operation['user'].' '.$Operation['money'].' Připojení k síti<br>');
     271        $this->InsertLiability($Operation['user'], -$Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], 'Připojení k síti');
     272        $Output .= $Operation['user'].' '.$Operation['money'].' Připojení k síti<br />';
    142273      } else
    143274      if($Operation['comment'] == 'Vklad')
    144275      {
    145         InsertMoney($Operation['user'], $Operation['money'], 0, 1, MysqlDateToTime($Operation['date']), 'Přijatá záloha');
     276        $this->InsertMoney($Operation['user'], $Operation['money'], 0, 1, MysqlDateToTime($Operation['date']), 'Přijatá záloha');
    146277        //echo($Operation['user'].' '.$Operation['money'].' Přijatá záloha<br>');
    147278      } else
    148279      if($Operation['comment'] == 'Internet')
    149280      {
    150         InsertLiability($Operation['user'], $Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], 'Měsíční paušál za Internet', MysqlDateToTime($Operation['date']));
    151         InsertMoney($Operation['user'], $Operation['money'], 0, 1, MysqlDateToTime($Operation['date']), 'Měsíční paušál za Internet');
     281        $this->InsertLiability($Operation['user'], $Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], 'Měsíční paušál za Internet', MysqlDateToTime($Operation['date']));
     282        $this->InsertMoney($Operation['user'], $Operation['money'], 0, 1, MysqlDateToTime($Operation['date']), 'Měsíční paušál za Internet');
    152283      } else
    153284      if($Operation['comment'] == 'Sociální pojištění')
    154285      {
    155         InsertLiability($Operation['user'], $Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], $Operation['comment'], MysqlDateToTime($Operation['date']));
    156         InsertMoney($Operation['user'], $Operation['money'], 0, 1, MysqlDateToTime($Operation['date']), $Operation['comment']);
     286        $this->InsertLiability($Operation['user'], $Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], $Operation['comment'], MysqlDateToTime($Operation['date']));
     287        $this->InsertMoney($Operation['user'], $Operation['money'], 0, 1, MysqlDateToTime($Operation['date']), $Operation['comment']);
    157288      } else
    158289      {
    159         $DbResult = $Database->query('SELECT role FROM users WHERE id='.$Operation['user']);
     290        $DbResult = $this->Database->query('SELECT role FROM users WHERE id='.$Operation['user']);
    160291        while($User = $DbResult->fetch_array())
    161        
    162         InsertLiability($Operation['user'], -$Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], $Operation['comment'], MysqlDateToTime($Operation['date']));
    163         echo($Operation['user'].' '.$Operation['comment'].' '.MysqlDateToTime($Operation['date']).'<br>');
     292        $this->InsertLiability($Operation['user'], -$Operation['money'], MysqlDateToTime($Operation['date']), $Operation['bill_id'], $Operation['comment'], MysqlDateToTime($Operation['date']));
     293        $Output .= $Operation['user'].' '.$Operation['comment'].' '.MysqlDateToTime($Operation['date']).'<br />';
    164294
    165295        if(($Operation['role'] == 2))
    166         { 
    167           echo('A');
    168           $Database->insert('FinanceAdvances', array('Subject' => $Operation['user'], 'Value' => $Operation['money'], 'TimeCreation' => MysqlDateToTime($Operation['date']), 'CashFlowId' => 0, 'Direction' => 'In'));
    169           CheckAdvancesAndLiabilities($Operation['user']);
     296        {
     297          $Output .= 'A';
     298          $this->Database->insert('FinanceAdvances', array('Subject' => $Operation['user'], 'Value' => $Operation['money'], 'TimeCreation' => MysqlDateToTime($Operation['date']), 'CashFlowId' => 0, 'Direction' => 'In'));
     299          $this->CheckAdvancesAndLiabilities($Operation['user']);
    170300        } else InsertMoney($Operation['user'], $Operation['money'], 0, 1, MysqlDateToTime($Operation['date']), $Operation['comment']);
    171301      }
    172302    }
    173 //  }
    174 
    175   // Import small asset
    176   $Subject = 1;
    177 
    178   // Převod pro minulý rok
    179   $Time = mktime(0, 0, 0, 12, 10, 2007);
    180   $DbResult = $Database->query('SELECT * FROM network_devices WHERE used <> 0 AND date < "'.TimeToMysqlDateTime($Time).'" AND (id <> 73)');
    181   $Items = array();
    182   $TotalPrice = 0;
    183   while($Device = $DbResult->fetch_array())
    184   {
    185     //$Database->insert('FinanceSmallAsset', array());
    186     $Items[] = array('description' => $Device['name'], 'quantity' => $Device['count'], 'price' => 0); //$Device['price']);
    187     $LastId = $Device['id'];
    188     $TotalPrice += $Device['price'] * $Device['count'];
    189     if($TotalPrice > 55000) break;
    190   }
    191   //print_r($Items);
    192   $BillId = $InvoiceGenerator->CreateBill($Subject, $Items, $Time, $Time);
    193   $DbResult = $Database->query('UPDATE network_devices SET TimeEnlistment = "'.TimeToMysqlDateTime($Time).'" WHERE used <> 0 AND date < "'.TimeToMysqlDateTime($Time).'" AND (id <> 73) AND (id <= '.$LastId.')');
    194   //echo($Database->error);
    195   InsertLiability($Subject, 0, $Time, $BillId, 'Nákup infrastruktury', $Time);
    196   //InsertMoney($Subject, 0, 0, 1, $Time, 'Nákup infrastruktury');
    197 
    198   //echo($LastId);
    199 
    200   // Převod tento rok
    201   $Time = mktime(0, 0, 0, 1, 14, 2008);
    202   $DbResult = $Database->query('SELECT * FROM network_devices WHERE (used <> 0) AND (id > '.$LastId.') AND date < "'.TimeToMysqlDateTime($Time).'"');
    203   $Items = array();
    204   $TotalPrice = 0;
    205   while($Device = $DbResult->fetch_array())
    206   {
    207     //$Database->insert('FinanceSmallAsset', array());
    208     $Items[] = array('description' => $Device['name'], 'quantity' => $Device['count'], 'price' => 0); //$Device['price']);
    209     $TotalPrice += $Device['price'] * $Device['count'];
    210   }
    211   //print_r($Items);
    212   $BillId = $InvoiceGenerator->CreateBill($Subject, $Items, $Time, $Time);
    213   $DbResult = $Database->query('UPDATE network_devices SET TimeEnlistment = "'.TimeToMysqlDateTime($Time).'" WHERE used <> 0 AND date < "'.TimeToMysqlDateTime($Time).'" AND (id > '.$LastId.')');
    214   InsertLiability($Subject, 0, $Time, $BillId, 'Nákup infrastruktury', $Time);
    215   //InsertMoney($Subject, 0, 0, 1, $Time, 'Nákup infrastruktury');
    216 
    217 
    218   // Make absolute value in monthly overall 
    219   //$Database->query('UPDATE finance_monthly_overall SET total_paid = ABS(total_paid)');
    220   //$Database->query('UPDATE finance_monthly_overall SET member_count = (SELECT COUNT(*) FROM users WHERE users.role=2 AND users.membership_date < finance_monthly_overall.date)');
     303    //  }
     304
     305    // Import small asset
     306    $Subject = 1;
     307
     308    // Převod pro minulý rok
     309    $Time = mktime(0, 0, 0, 12, 10, 2007);
     310    $DbResult = $this->Database->query('SELECT * FROM network_devices WHERE used <> 0 AND date < "'.TimeToMysqlDateTime($Time).'" AND (id <> 73)');
     311    $Items = array();
     312    $TotalPrice = 0;
     313    while($Device = $DbResult->fetch_array())
     314    {
     315      //$Database->insert('FinanceSmallAsset', array());
     316      $Items[] = array('description' => $Device['name'], 'quantity' => $Device['count'], 'price' => 0); //$Device['price']);
     317      $LastId = $Device['id'];
     318      $TotalPrice += $Device['price'] * $Device['count'];
     319      if($TotalPrice > 55000) break;
     320    }
     321    //print_r($Items);
     322    $BillId = $InvoiceGenerator->CreateBill($Subject, $Items, $Time, $Time);
     323    $DbResult = $this->Database->query('UPDATE network_devices SET TimeEnlistment = "'.TimeToMysqlDateTime($Time).'" WHERE used <> 0 AND date < "'.TimeToMysqlDateTime($Time).'" AND (id <> 73) AND (id <= '.$LastId.')');
     324    //echo($Database->error);
     325    $this->InsertLiability($Subject, 0, $Time, $BillId, 'Nákup infrastruktury', $Time);
     326    //InsertMoney($Subject, 0, 0, 1, $Time, 'Nákup infrastruktury');
     327
     328    //echo($LastId);
     329
     330    // Převod tento rok
     331    $Time = mktime(0, 0, 0, 1, 14, 2008);
     332    $DbResult = $this->Database->query('SELECT * FROM network_devices WHERE (used <> 0) AND (id > '.$LastId.') AND date < "'.TimeToMysqlDateTime($Time).'"');
     333    $Items = array();
     334    $TotalPrice = 0;
     335    while($Device = $DbResult->fetch_array())
     336    {
     337      // $Database->insert('FinanceSmallAsset', array());
     338      $Items[] = array('description' => $Device['name'], 'quantity' => $Device['count'], 'price' => 0); //$Device['price']);
     339      $TotalPrice += $Device['price'] * $Device['count'];
     340    }
     341    //print_r($Items);
     342    $BillId = $InvoiceGenerator->CreateBill($Subject, $Items, $Time, $Time);
     343    $DbResult = $this->Database->query('UPDATE network_devices SET TimeEnlistment = "'.TimeToMysqlDateTime($Time).'" WHERE used <> 0 AND date < "'.TimeToMysqlDateTime($Time).'" AND (id > '.$LastId.')');
     344    $this->InsertLiability($Subject, 0, $Time, $BillId, 'Nákup infrastruktury', $Time);
     345    //InsertMoney($Subject, 0, 0, 1, $Time, 'Nákup infrastruktury');
     346
     347
     348    // Make absolute value in monthly overall 
     349    //$Database->query('UPDATE finance_monthly_overall SET total_paid = ABS(total_paid)');
     350    //$Database->query('UPDATE finance_monthly_overall SET member_count = (SELECT COUNT(*) FROM users WHERE users.role=2 AND users.membership_date < finance_monthly_overall.date)');
     351    return($Output);
     352  }
     353
     354  function ConvertPDFDataToFiles()
     355  {
     356    $DbResult = $this->Database->query('SELECT * FROM finance_bills');
     357    while($Bill = $DbResult->fetch_array())
     358    {
     359      file_put_contents('doklady/doklad_'.$Bill['id'].'.pdf', $Bill['pdf']);
     360      echo($Bill['id'].',');
     361    }
     362  }
     363
     364  function CheckPDFFiles()
     365  {
     366    global $Database, $InvoiceGenerator;
     367
     368    $DbResult = $this->Database->query('SELECT * FROM finance_bills');
     369    while($Bill = $DbResult->fetch_array())
     370    {
     371      file_put_contents('doklady2/doklad-'.$Bill['id'].'.pdf', file_get_contents('doklady/doklad-'.$Bill['id'].'.pdf'));
     372      //echo($InvoiceGenerator->HasPDFFile($Bill['id']).',');
     373    }
     374  }
     375
    221376}
    222377
    223 function ConvertPDFDataToFiles()
    224 {
    225   global $Database;
    226   $DbResult = $Database->query('SELECT * FROM finance_bills');
    227   while($Bill = $DbResult->fetch_array())
    228   {
    229     file_put_contents('doklady/doklad-'.$Bill['id'].'.pdf', $Bill['pdf']);
    230     echo($Bill['id'].',');
    231   }
    232 
    233 }
    234 
    235 function CheckPDFFiles()
    236 {
    237   global $Database, $InvoiceGenerator;
    238 
    239   $DbResult = $Database->query('SELECT * FROM finance_bills');
    240   while($Bill = $DbResult->fetch_array())
    241   {
    242     file_put_contents('doklady2/doklad-'.$Bill['id'].'.pdf', file_get_contents('doklady/doklad-'.$Bill['id'].'.pdf'));
    243     //echo($InvoiceGenerator->HasPDFFile($Bill['id']).',');
    244   }
    245 
    246 }
    247 
    248 //ConvertPDFDataToFiles();
    249 
    250 //CheckPDFFiles();
    251 ImportOldData();
     378$System->AddModule(new FinanceManagePage());
     379$System->Modules['FinanceManagePage']->GetOutput();
    252380
    253381?>
  • www/finance/monthly_overall.php

    r129 r152  
    11<?php
    2 include('../global.php');
    3 include('../style.php');
    4 include('include.php');
    5 ShowHeader('Měsíční přehledy', 'Měsíční přehledy');
     2include_once('../global.php');
     3include_once('include.php');
    64
    7 echo('<table cellspacing="0" cellpadding="2" border="1"><tr><th>Rok</th><th>Měsíc</th><th>Internet [Kč]</th><th>Účastníků</th><th>Správa [Kč/účastníka]</th><th>Správa [Kč]</th><th>Spotřeba [Kč/kWh]</th><th>Spotřeba [Kč]</th><th>Obrat [Kč]</th><th>Průměrná cena [Kč/účastníka]</th><th>Investice [Kč]</th></tr>');
    8 $Total = array('money' => 0, 'administration_total' => 0, 'consumption_total' => 0, 'total_paid' => 0, 'investment' => 0);
    9 $DbResult = $Database->select('finance_monthly_overall', '*', '1 ORDER BY date ASC');
    10 while($Month = $DbResult->fetch_array())
     5class FinanceMonthlyOverallPage extends Page
    116{
    12   $DateParts = explode('-', $Month['date']);
    13   echo('<tr><td>'.$DateParts[0].'</td><td align="center">'.$MonthNames[$DateParts[1]*1].'</td><td align="center">'.$Month['money'].'</td><td align="center">'.$Month['member_count'].'</td><td align="center">'.$Month['administration'].'</td><td align="center">'.$Month['administration_total'].'</td><td align="center">'.$Month['kWh'].'</td><td align="center">'.$Month['consumption_total'].'</td><td align="center">'.$Month['total_paid'].'</td><td align="center">'.round($Month['total_paid'] / $Month['member_count']).'</td><td align="center">'.$Month['investment'].'</td></tr>');
    14 //  echo('<tr><td>'.$Month['date'].'</td><td align="center">'.$MonthNames[$DateParts[1]*1].'</td><td align="center">'.$Month['money'].'</td><td align="center">'.$Month['member_count'].'</td><td align="center">'.$Month['administration'].'</td><td align="center">'.$Month['administration_total'].'</td><td align="center">'.$Month['kWh'].'</td><td align="center">'.$Month['consumption_total'].'</td><td align="center">'.$Month['total_paid'].'</td><td align="center">'.round($Month['total_paid'] / $Month['member_count']).'</td></tr>');
     7  var $FullTitle = 'Měsíční přehledy';
     8  var $ShortTitle = 'Měsíční přehledy';
    159
    16   $Total['money'] += $Month['money'];
    17   $Total['administration_total'] += $Month['administration_total'];
    18   $Total['consumption_total'] += $Month['consumption_total'];
    19   $Total['total_paid'] += $Month['total_paid'];
    20   $Total['investment'] += $Month['investment'];
    21   //if($DateParts[1] == '01') echo('<tr><td style="font-size: 4;" colspan="10">&nbsp;</td></tr>');
     10  function Show()
     11  {
     12    global $MonthNames;
     13
     14    $Output = '<table cellspacing="0" cellpadding="2" border="1"><tr><th>Rok</th><th>Měsíc</th><th>Internet [Kč]</th><th>Účastníků</th><th>Správa [Kč/účastníka]</th><th>Správa [Kč]</th><th>Spotřeba [Kč/kWh]</th><th>Spotřeba [Kč]</th><th>Obrat [Kč]</th><th>Průměrná cena [Kč/účastníka]</th><th align="center">Investice [Kč]</th></tr>';
     15    $Total = array('money' => 0, 'administration_total' => 0, 'consumption_total' => 0, 'total_paid' => 0);
     16    $DbResult = $this->Database->select('finance_monthly_overall', '*', '1 ORDER BY date DESC');
     17    while($Month = $DbResult->fetch_array())
     18    {
     19      $DateParts = explode('-', $Month['date']);
     20      $Output .= '<tr><td>'.$DateParts[0].'</td><td align="center">'.$MonthNames[$DateParts[1]*1].'</td><td align="center">'.$Month['money'].'</td><td align="center">'.$Month['member_count'].'</td><td align="center">'.$Month['administration'].'</td><td align="center">'.$Month['administration_total'].'</td><td align="center">'.$Month['kWh'].'</td><td align="center">'.$Month['consumption_total'].'</td><td align="center">'.$Month['total_paid'].'</td><td align="center">'.round($Month['total_paid'] / $Month['member_count']).'</td><td align="center">'.$Month['investment'].'</td></tr>';
     21
     22      $Total['money'] += $Month['money'];
     23      $Total['administration_total'] += $Month['administration_total'];
     24      $Total['consumption_total'] += $Month['consumption_total'];
     25      $Total['total_paid'] += $Month['total_paid'];
     26          $Total['investment'] += $Month['investment'];
     27      //if($DateParts[1] == '01') echo('<tr><td style="font-size: 4;" colspan="10">&nbsp;</td></tr>');
     28    }
     29    $Output .= '<tr><th colspan="2">Celkem</th><th>'.$Total['money'].'</th><th>&nbsp;</th><th>&nbsp;</th><th>'.$Total['administration_total'].'</th><th>&nbsp;</th><th>'.$Total['consumption_total'].'</th><th>'.$Total['total_paid'].'</th><th>&nbsp;</th><th>'.$Total['investment'].'</th>';
     30    $Output .= '</table>';
     31    return($Output);
     32  }
    2233}
    23 echo('<tr><th colspan="2">Celkem</th><th>'.$Total['money'].'</th><th>&nbsp;</th><th>&nbsp;</th><th>'.$Total['administration_total'].'</th><th>&nbsp;</th><th>'.$Total['consumption_total'].'</th><th>'.$Total['total_paid'].'</th><th>&nbsp;</th><th>'.$Total['investment'].'</tr>');
    24 echo('</table>');
    2534
    26 ShowFooter();
     35$System->AddModule(new FinanceMonthlyOverallPage());
     36$System->Modules['FinanceMonthlyOverallPage']->GetOutput();
     37
    2738?>
  • www/finance/spotreba.php

    r4 r152  
    11<?php
    22include_once('../global.php');
    3 include('../style.php');
    4 include('include.php');
     3include_once('include.php');
    54
    6 ShowHeader('Spotřeba energie','Spotřeba');
     5class FinanceConsumption extends Page
     6{
     7  var $FullTitle = 'Spotřeba energie';
     8  var $ShortTitle = 'Spotřeba';
    79
    8 // Seznam segmentů a zařízení
    9 echo('Spotřeba zařízení jednotlivých segmentů:<br><table border="1" cellspacing="0" cellpadding="3"><tr><th>Jméno segmentu</th><th>Spotřeba [W]</th><th>Cena [Kč/měsíc]</th></tr>');
    10 $CelkovaSpotreba = 0;
    11 $DbResult = $Database->query("SELECT * FROM network_segments");   
    12 while($Row = $DbResult->fetch_array())
    13 {
    14   $DbResult2 = $Database->query("SELECT SUM(consumption) FROM network_devices WHERE segment=".$Row['id']." AND used=1");
    15   $Row2 = $DbResult2->fetch_array();
    16   $CelkovaSpotreba = $CelkovaSpotreba + $Row2[0];
    17   echo('<tr><td>'.$Row['name'].'</td><td align="right">'.$Row2[0].'</td><td align="right">'.W2Kc($Row2[0]).'</td></tr>');
     10  function Show()
     11  {
     12    global $kWh;
     13
     14    // Seznam segmentů a zařízení
     15    $Output = 'Spotřeba zařízení jednotlivých segmentů:<br /><table border="1" cellspacing="0" cellpadding="3"><tr><th>Jméno segmentu</th><th>Spotřeba [W]</th><th>Cena [Kč/měsíc]</th></tr>';
     16    $CelkovaSpotreba = 0;
     17    $DbResult = $this->Database->query("SELECT * FROM network_segments");
     18    while($Row = $DbResult->fetch_array())
     19    {
     20      $DbResult2 = $this->Database->query("SELECT SUM(consumption) FROM network_devices WHERE segment=".$Row['id']." AND used=1");
     21      $Row2 = $DbResult2->fetch_array();
     22      $CelkovaSpotreba = $CelkovaSpotreba + $Row2[0];
     23      $Output .= '<tr><td>'.$Row['name'].'</td><td align="right">'.$Row2[0].'</td><td align="right">'.W2Kc($Row2[0]).'</td></tr>';
     24    }
     25    $Output .= '<tr style="font-weight: Bold;"><td><strong>Celkem</strong></td><td align="right">'.$CelkovaSpotreba.'</td><td align="right">'.W2Kc($CelkovaSpotreba).'</td></tr>';
     26    $Output .= '</table><br />';
     27    $Output .= 'Dohodnutá cena za jednu kWh: <strong>'.$kWh.' Kč</strong><br />';
     28    return($Output);
     29  }
    1830}
    19 echo('<tr style="font-weight: Bold;"><td><strong>Celkem</strong></td><td align="right">'.$CelkovaSpotreba.'</td><td align="right">'.W2Kc($CelkovaSpotreba).'</td></tr>');
    20 echo('</table><br>');
    21 echo('Dohodnutá cena za jednu kWh: <strong>'.$kWh.' Kč</strong><br>');
    2231
    23 /*
    24 echo('<strong>Jak se rozpočítávají finance</strong><br>Internet i zařízení sítě se platí za domácnost. Systém výpočtu vychází z topologie sítě. Síť má stromovou topologii přičemž listy stromu jsou jednotliví uživatelé a kořen stromu je linka do internetu. Dosavadní systém je uzpůsoben tak, aby linky, které jsou nejvíce zatíženy, byly nejlépe zaplaceny a mohlo na nich tak být dražší a výkonější zařízení. Nejvytíženější linky se nazývají páteřní. Proto platí každý uživatel podílově zařízení, které vede od něj až ke kořenu stromu, což je v našem případě server Centrála s trvalým internetovým připojením. Pro jednoduchost je síť rozdělena na segmenty. Segment je část sítě, kterou využívá konstantní počet uživatelů. Každý segment je tvořen skupinou zařízení a má svoji celkovou cenu. Každý uživatel je přirozeně napojen na některý ze segmentů. Podíl klienta na zařízení sítě je vypočten jako součet podílů na jednotlivých segmentech směrem ke kořenu. Podíl na segmentu znamená celková cena segmentu podělená počtem uživatelů využívajících daný segment.<br>');
    25   }
    26 */
    27 ShowFooter();
     32$System->AddModule(new FinanceConsumption());
     33$System->Modules['FinanceConsumption']->GetOutput();
     34
    2835?>
  • www/finance/tarify.php

    r50 r152  
    11<?php
    2 include('../style.php');
    3 include('include.php');
    4 ShowHeader('Aktuální stav tarifů', 'Tarify');
     2include_once('../global.php');
     3include_once('include.php');
    54
    6 function TariffTable()
     5class FinanceTarrifsPage extends Page
    76{
    8   global $Tarify, $Internet, $InternetUsers, $RealMaxSpeed, $SpeedReserve, $MaxSpeed;
     7  var $FullTitle = 'Přehled tarifů';
     8  var $ShortTitle = 'Tarify';
    99
    10   echo('Poplatek za společný internet: <strong>'.$Internet.' Kč</strong><br>');
    11   echo('Rychlost společné linky: <strong>'.$RealMaxSpeed.' kbit/s</strong><br>');
    12   echo('Rezerva (nevyužitá kapacita pro zlepšení odezvy sítě): <strong>'.$SpeedReserve.' kbit/s</strong><br>');
    13   echo('Maximální dostupná kapacita pro použití: <strong>'.$MaxSpeed.' kbit/s</strong><br>');
    14   echo('<br>');
    15  
    16   echo('<table width="50%" border="1" cellspacing="0" cellpadding="2" style="font-size: small;">');
    17   echo('<tr><th>Název tarifu</th><th>Min. rychlost [kbit/s]</th><th>Max. rychlost [kbit/s]</th><th>Agregační poměr</th><th>Cenových jednotek</th><th>Počet podílníků</th><th>Celkem cenových jednotek</th><th>Cena [Kč]</th><th>Vybráno celkem [Kč]</th></tr>');
    18   $TotalPrice = 0;
    19   $TotalUnits = 0;
    20   foreach($Tarify as $Index => $Tarif)
     10  function TariffTable()
    2111  {
    22     echo('<tr><td style="color: blue;">'.$Tarif['name'].'</td><td align="center">'.round($Tarif['min_speed'] / 1024).'</td><td align="center" style="color: blue;">'.round($Tarif['max_speed'] / 1024).'</td><td align="center">'.$Tarif['aggregation'].'</td><td align="center">'.$Tarif['price_units'].'</td><td align="center">'.$Tarif['user_count'].'</td><td align="center">'.
    23       $Tarif['total_units'].'</td><td align="center" style="color: blue;">'.$Tarif['price'].'</td><td align="center">'.$Tarif['user_count'] * $Tarif['price'].'</td></tr>');
    24     $TotalPrice = $TotalPrice + $Tarif['price'] * $Tarif['user_count'];
    25     $TotalUnits = $TotalUnits + $Tarif['total_units'];
     12    global $Tarify, $Internet, $InternetUsers, $RealMaxSpeed, $SpeedReserve, $MaxSpeed;
     13
     14    $Output = 'Poplatek za společný internet: <strong>'.$Internet.' Kč</strong><br />';
     15    $Output .= 'Rychlost společné linky: <strong>'.$RealMaxSpeed.' kbit/s</strong><br />';
     16    $Output .= 'Rezerva (nevyužitá kapacita pro zlepšení odezvy sítě): <strong>'.$SpeedReserve.' kbit/s</strong><br />';
     17    $Output .= 'Maximální dostupná kapacita pro použití: <strong>'.$MaxSpeed.' kbit/s</strong><br />';
     18    $Output .= '<br />';
     19
     20    $Output .= '<table width="50%" border="1" cellspacing="0" cellpadding="2" style="font-size: small;">';
     21    $Output .= '<tr><th>Název tarifu</th><th>Min. rychlost [kbit/s]</th><th>Max. rychlost [kbit/s]</th><th>Agregační poměr</th><th>Cenových jednotek</th><th>Počet podílníků</th><th>Celkem cenových jednotek</th><th>Cena [Kč]</th><th>Vybráno celkem [Kč]</th></tr>';
     22    $TotalPrice = 0;
     23    $TotalUnits = 0;
     24    foreach($Tarify as $Index => $Tarif)
     25    {
     26      $Output .= '<tr><td style="color: blue;">'.$Tarif['name'].'</td><td align="center">'.round($Tarif['min_speed'] / 1024).'</td><td align="center" style="color: blue;">'.round($Tarif['max_speed'] / 1024).'</td><td align="center">'.$Tarif['aggregation'].'</td><td align="center">'.$Tarif['price_units'].'</td><td align="center">'.$Tarif['user_count'].'</td><td align="center">'.
     27      $Tarif['total_units'].'</td><td align="center" style="color: blue;">'.$Tarif['price'].'</td><td align="center">'.$Tarif['user_count'] * $Tarif['price'].'</td></tr>';
     28      $TotalPrice = $TotalPrice + $Tarif['price'] * $Tarif['user_count'];
     29      $TotalUnits = $TotalUnits + $Tarif['total_units'];
     30    }
     31    $Output .= '<tr><td>Součty</td><td colspan="4">&nbsp;</td><td align="center">'.$InternetUsers.'</td><td align="center">'.$TotalUnits.'</td><td>&nbsp;</td><td align="center">'.$TotalPrice.'</td></tr>';
     32    $Output .= '</table>';
     33    return($Output);
    2634  }
    27   echo('<tr><td>Součty</td><td colspan="4">&nbsp;</td><td align="center">'.$InternetUsers.'</td><td align="center">'.$TotalUnits.'</td><td>&nbsp;</td><td align="center">'.$TotalPrice.'</td></tr>');
    28   echo('</table>');
     35
     36  function Show()
     37  {
     38    global $Tarify, $Internet, $InternetUsers, $RealMaxSpeed, $SpeedReserve, $MaxSpeed;
     39    $Output = 'Počet členů s internetovým připojením: <strong>'.$InternetUsers.'</strong><br /><br />';
     40    $Output .= '<table><tr><td valign="top">';
     41
     42    NactiMesicniParametry(0);
     43    $Output .= '<strong>Stav pro aktuální měsíc:</strong><br />';
     44    $Output .= $this->TariffTable();
     45
     46    $Output .= '<br /></td></tr><tr><td valign="top">';
     47
     48    NactiMesicniParametry(1);
     49    $Output .= '<strong>Stav pro další měsíc:</strong><br />';
     50    $Output .= $this->TariffTable();
     51
     52    $Output .= '</td></tr></table>';
     53
     54    $Output .= '<br /><strong>Doplňující informace:</strong><br />';
     55    $Output .= 'Minimální rychlostí se rozumí garantovaná rychlost, tedy zaručený podíl z celkové kapacity linky.<br />
     56    Maximální rychlost je teoretická nejvyšší dostupná rychlost.<br />
     57    Skutečná rychlost může mírně kolísat kolem těchto hodnot, jelikož řízení toku není dokonalé.<br />
     58    Agregační pomněr je poměr mezi minimální garantovanou rychlostí a maximální dosažitelnou rychlostí. Ukazuje, jak moc je linka sdílena a jak hodně může rychlost kolísat. Při posuzování kvality linky je toto také důležitý ukazatel.<br />
     59    Cenové jednotky vystihují jakým podílem se poplatek za tarif podílí na celkové placené sumě.<br />
     60    Počet podílníků znamená počet uživatelů platících daný tarif.<br />
     61    Údaj celkem cenových jednotek je součin počtu podílníků a cenových jednotek. Vystihuje podíl všech uživatelů v daném tarifu na celkové placené sumě.<br />
     62    Cena udává rozpočtenou celkovou cenu na jednotlivé tarify podle cenových jednotek.<br />
     63    Sloupec vybráno dává informaci, kolik se v kterém tarifu vybralo peněz na placení společné linky.<br /><br />';
     64    $Output .= 'Tabulka Stav pro aktuální měsíc se aktualizuje první den v měsíci při odečtení peněz z účtů dle tabulky na příští měsíc.<br />';
     65
     66    $Output .= '<br />Změnu tarifu na další měsíc oznamujte prozatím na email robie@centrum.cz<br />';
     67    $Output .= '<a href="http://centrala.zdechov.net/forum/viewtopic.php?t=50">Diskuse</a><br />';
     68    return($Output);
     69  }
    2970}
    3071
    31 echo('Počet členů s internetovým připojením: <strong>'.$InternetUsers.'</strong><br><br>');
    32 echo('<table><tr><td valign="top">');
     72$System->AddModule(new FinanceTarrifsPage());
     73$System->Modules['FinanceTarrifsPage']->GetOutput();
    3374
    34 NactiMesicniParametry(0);
    35 echo('<strong>Stav pro aktuální měsíc:</strong><br>');
    36 TariffTable();
    37 
    38 echo('<br></td></tr><tr><td valign="top">');
    39 
    40 NactiMesicniParametry(1);
    41 echo('<strong>Stav pro další měsíc:</strong><br>');
    42 TariffTable();
    43 
    44 echo('</td></tr></table>');
    45 
    46 echo('<br><strong>Doplňující informace:</strong><br>');
    47 echo('Minimální rychlostí se rozumí garantovaná rychlost, tedy zaručený podíl z celkové kapacity linky.<br>
    48 Maximální rychlost je teoretická nejvyšší dostupná rychlost.<br>
    49 Skutečná rychlost může mírně kolísat kolem těchto hodnot, jelikož řízení toku není dokonalé.<br>
    50 Agregační pomněr je poměr mezi minimální garantovanou rychlostí a maximální dosažitelnou rychlostí. Ukazuje, jak moc je linka sdílena a jak hodně může rychlost kolísat. Při posuzování kvality linky je toto také důležitý ukazatel.<br>
    51 Cenové jednotky vystihují jakým podílem se poplatek za tarif podílí na celkové placené sumě.<br>
    52 Počet podílníků znamená počet uživatelů platících daný tarif.<br>
    53 Údaj celkem cenových jednotek je součin počtu podílníků a cenových jednotek. Vystihuje podíl všech uživatelů v daném tarifu na celkové placené sumě.<br>
    54 Cena udává rozpočtenou celkovou cenu na jednotlivé tarify podle cenových jednotek.<br>
    55 Sloupec vybráno dává informaci, kolik se v kterém tarifu vybralo peněz na placení společné linky.<br><br>');
    56 echo('Tabulka Stav pro aktuální měsíc se aktualizuje první den v měsíci při odečtení peněz z účtů dle tabulky na příští měsíc.<br>');
    57  
    58 echo('<br>Změnu tarifu na další měsíc oznamujte prozatím na email robie@centrum.cz<br>');
    59 echo('<a href="http://centrala.zdechov.net/forum/viewtopic.php?t=50">Diskuse</a><br>');
    60 
    61 ShowFooter();
    6275?>
  • www/finance/zarizeni.php

    r4 r152  
    11<?php
    22include_once('../global.php');
    3 include('../style.php');
    4 ShowHeader('Zařízení sítě','Zařízení');
     3include_once('include.php');
    54
    6 // Seznam segmentů a zařízení
    7 echo('Seznam segmentů a zařízení:<br><table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3"><tr><th>Název</th><th>Spotřeba<br>[W]</th><th>Datum<br>zakoupení</th><th>Cena [Kč]</th></tr>');
    8 $DbResult = $Database->query("SELECT * FROM network_segments");   
    9 while($Row = $DbResult->fetch_array())
     5class FinanceDeviceListPage extends Page
    106{
    11   echo('<tr><td colspan="3"><strong>Segment: '.$Row['name'].' ('.$Row['users'].')</strong></td><td style="font-weight: Bold;" align="right">'.$Row['price'].'</td></tr>');
    12   $DbResult2 = $Database->query("SELECT * FROM network_devices WHERE segment=".$Row['id']." AND used=1");
    13   while($Row = $DbResult2->fetch_array())
     7  var $FullTitle = 'Zařízení sítě';
     8  var $ShortTitle = 'Zařízení';
     9
     10  function Show()
    1411  {
    15     echo('<tr><td>'.$Row['name'].'</td><td align="right">'.$Row['consumption'].'</td><td align="right">'.HumanDate($Row['date']).'</td><td align="right">'.$Row['price'].'</td></tr>');
     12    // Seznam segmentů a zařízení
     13    $Output = 'Seznam segmentů a zařízení:<br><table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3"><tr><th>Název</th><th>Spotřeba<br>[W]</th><th>Datum<br>zakoupení</th><th>Cena [Kč]</th></tr>';
     14    $DbResult = $this->Database->query("SELECT * FROM network_segments");   
     15    while($Row = $DbResult->fetch_array())
     16    {
     17      $Output .= '<tr><td colspan="3"><strong>Segment: '.$Row['name'].' ('.$Row['users'].')</strong></td><td style="font-weight: Bold;" align="right">'.$Row['price'].'</td></tr>';
     18      $DbResult2 = $this->Database->query("SELECT * FROM network_devices WHERE segment=".$Row['id']." AND used=1");
     19      while($Row = $DbResult2->fetch_array())
     20      {
     21        $Output .= '<tr><td>'.$Row['name'].'</td><td align="right">'.$Row['consumption'].'</td><td align="right">'.HumanDate($Row['date']).'</td><td align="right">'.$Row['price'].'</td></tr>';
     22      }
     23    }
     24    $DbResult = $this->Database->query("SELECT SUM(price) FROM network_devices WHERE used=1");
     25    $Row = $DbResult->fetch_array();
     26    $Output .= '<tr><td colspan="3"><strong>Celkem:</strong></td><td align="right"><strong>'.$Row[0].'</strong></td></tr>';
     27    $Output .= '</table>';
     28    return($Output);
    1629  }
    1730}
    18 $DbResult = $Database->query("SELECT SUM(price) FROM network_devices WHERE used=1");
    19 $Row = $DbResult->fetch_array();
    20 echo('<tr><td colspan="3"><strong>Celkem:</strong></td><td align="right"><strong>'.$Row[0].'</strong></td></tr>');
    21 echo('</table>');
    2231
    23 ShowFooter();
     32$System->AddModule(new FinanceDeviceListPage());
     33$System->Modules['FinanceDeviceListPage']->GetOutput()
     34
    2435?>
  • www/finance/zivnost.php

    r70 r152  
    11<?php
    2 
    3 include('../style.php');
    4 include('include.php');
    5 include('bills.php');
    6 RecalculateTariffs(1);
    7 
    8 ShowHeader('Daňová evidence', 'Daňová evidence');
    9 
    10 function TransformFinance()
     2include_once('../global.php');
     3include_once('include.php');
     4
     5class FinanceTaxFilingPage extends Page
    116{
    12   global $Database;
    13   //$Database->Query('SELECT user as Subject, date as TimeCreation, date as TimeDue, date as TimePayment, -money as Value, bill_id as Bill, comment as Text FROM `finance_operations` WHERE Comment LIKE "Poplatek za měsíc%" AND date >= "2007-12-01"');
    14   //'TRUNCATE TABLE FinanceCashFlow; INSERT INTO FinanceCashFlow (SELECT '' as Id, user as Subject, comment as Text, date as Time, 1 as Taxable, 0 as Cash, money as Value, bill_id as Bill FROM `finance_operations` WHERE comment NOT LIKE "Poplatek za měsíc%" AND date >= "2007-12-01")'
    15   // 'UPDATE finance_operations SET date="2007-11-24" WHERE comment="Jednorázový poplatek za společné zařízení"'
    16 
    17 /*
    18   $DbResult = $Database->query('SELECT * FROM users WHERE role=2');
    19   while($User = $DbResult->fetch_array())
    20   {
    21     $DbResult2 = $Database->query('SELECT SUM(money) FROM finance_operations WHERE user='.$User['id'].' AND date < "2007-12-01"');
    22     $Row = $DbResult2->fetch_array();
    23     echo($User['second_name'].' '.$User['first_name'].' '.$Row[0].'<br>');
    24 //    if($Row[0] > 0) $Database->insert('FinanceCashFlow', array('Text' => 'Přijatá záloha (z období před účetnictvím)', 'Subject' => $User['id'], 'Time' => '2007-01-01', 'Taxable' => 1, 'Cash' => 0, 'Value' => $Row[0], 'Bill' => 0));
    25    
    26     if($Row[0] < 0)
    27     { 
    28       $Database->insert('FinanceClaimsLiabilities', array('Text' => 'Připojení k síti (z období před účetnictvím)', 'Subject' => $User['id'], 'TimeCreation' => '2007-12-01', 'TimeDue' => '2007-12-14', 'TimePayment' => '', 'Value' => (-$Row[0]), 'Bill' => 0));
    29   //echo($Database->LastQuery.'<br>');
     7  var $FullTitle = 'Daňová evidence';
     8  var $ShortTitle = 'Daňová evidence';
     9
     10  function TransformFinance()
     11  {
     12    //$Database->Query('SELECT user as Subject, date as TimeCreation, date as TimeDue, date as TimePayment, -money as Value, bill_id as Bill, comment as Text FROM `finance_operations` WHERE Comment LIKE "Poplatek za měsíc%" AND date >= "2007-12-01"');
     13    //'TRUNCATE TABLE FinanceCashFlow; INSERT INTO FinanceCashFlow (SELECT '' as Id, user as Subject, comment as Text, date as Time, 1 as Taxable, 0 as Cash, money as Value, bill_id as Bill FROM `finance_operations` WHERE comment NOT LIKE "Poplatek za měsíc%" AND date >= "2007-12-01")'
     14    // 'UPDATE finance_operations SET date="2007-11-24" WHERE comment="Jednorázový poplatek za společné zařízení"'
     15
     16    $DbResult = $this->Database->query('SELECT * FROM users WHERE role=2');
     17    while($User = $DbResult->fetch_array())
     18    {
     19      $DbResult2 = $this->Database->query('SELECT SUM(money) FROM finance_operations WHERE user='.$User['id'].' AND date < "2007-12-01"');
     20      $Row = $DbResult2->fetch_array();
     21      echo($User['second_name'].' '.$User['first_name'].' '.$Row[0].'<br />');
     22      //    if($Row[0] > 0) $Database->insert('FinanceCashFlow', array('Text' => 'Přijatá záloha (z období před účetnictvím)', 'Subject' => $User['id'], 'Time' => '2007-01-01', 'Taxable' => 1, 'Cash' => 0, 'Value' => $Row[0], 'Bill' => 0));
     23      if($Row[0] < 0)
     24      {
     25        $this->Database->insert('FinanceClaimsLiabilities', array('Text' => 'Připojení k síti (z období před účetnictvím)', 'Subject' => $User['id'], 'TimeCreation' => '2007-12-01', 'TimeDue' => '2007-12-14', 'TimePayment' => '', 'Value' => (-$Row[0]), 'Bill' => 0));
     26        //echo($Database->LastQuery.'<br />');
     27      }
    3028    }
    31   } 
    32 */
    33 }
    34 
    35 TransformFinance();
    36 
    37 if(!array_key_exists('table', $_GET)) $_GET['table'] = '';
    38 switch($_GET['table'])
    39 {
    40   case 'AnnualBalance':
    41     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    42     echo('<tr><th colspan="3">Účetní období</th><th colspan="5">Na konci</th><th colspan="6">Během</th></tr>');
    43     echo('<tr><th>Rok</th><th>Od</th><th>Do</th><th>Příjmy</th><th>Výdaje</th><th>Pohledávky</th><th>Závazky</th><th>Drobný majetek</th><th>Příjmy</th><th>Výdaje</th><th>Pohledávky</th><th>Závazky</th><th>Drobný majetek</th><th>Základ daně</th></tr>');
    44 
    45     $StartEvidence = mktime(0, 0, 0, 12, 1, 2007);
    46     $StartYear = date('Y', $StartEvidence);
    47     $EndYear = date('Y', time());
    48     for($Year = $StartYear; $Year <= $EndYear; $Year++)
    49     {   
    50       $EndTime = mktime(0, 0, 0, 12, 31, $Year);
    51       $Year = date('Y', $EndTime);
    52       $StartTime = mktime(0, 0, 0, 1, 1, $Year);
    53       if($StartTime < $StartEvidence) $StartTime = $StartEvidence;
    54 
    55       $Balance = array();
    56 
    57       $DbResult = $Database->query('SELECT SUM(Value) FROM FinanceCashFlow WHERE Time < "'.TimeToMysqlDateTime($StartTime).'" AND Value > 0 AND Taxable = 1');
    58       $Row = $DbResult->fetch_array();
    59       $Balance['Income']['Start'] = $Row[0] + 0;
    60       $DbResult = $Database->query('SELECT SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value > 0 AND Taxable = 1');
    61       //echo('SELECT SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value > 0 AND Taxable = 1'.'<br>');
    62       $Row = $DbResult->fetch_array();
    63       $Balance['Income']['End'] = $Row[0] + 0;
    64 
    65       $DbResult = $Database->query('SELECT -SUM(Value) FROM FinanceCashFlow WHERE Time < "'.TimeToMysqlDateTime($StartTime).'" AND Value < 0 AND Taxable = 1');
    66       $Row = $DbResult->fetch_array();
    67       $Balance['Spend']['Start'] = $Row[0] + 0;
    68       $DbResult = $Database->query('SELECT -SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value < 0 AND Taxable = 1');
    69       //echo('SELECT -SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value < 0 AND Taxable = 1'.'<br>');
    70       $Row = $DbResult->fetch_array();
    71       $Balance['Spend']['End'] = $Row[0] + 0;
    72 
    73       $DbResult = $Database->query('SELECT SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation < "'.TimeToMysqlDateTime($StartTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value > 0');
    74       $Row = $DbResult->fetch_array();
    75       $Balance['Claims']['Start'] = $Row[0] + 0;
    76       $DbResult = $Database->query('SELECT SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation <= "'.TimeToMysqlDateTime($EndTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value > 0');
    77       $Row = $DbResult->fetch_array();
    78       $Balance['Claims']['End'] = $Row[0] + 0;
    79 
    80       $DbResult = $Database->query('SELECT -SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation < "'.TimeToMysqlDateTime($StartTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value < 0');
    81       $Row = $DbResult->fetch_array();
    82       $Balance['Liabilities']['Start'] = $Row[0] + 0;
    83       $DbResult = $Database->query('SELECT -SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation <= "'.TimeToMysqlDateTime($EndTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value < 0');
    84       $Row = $DbResult->fetch_array();
    85       $Balance['Liabilities']['End'] = $Row[0] + 0;
    86 
    87       // SmallAssets
    88       $DbResult = $Database->query('SELECT SUM(price) FROM network_devices WHERE (TimeEnlistment < "'.TimeToMysqlDateTime($StartTime).'") AND (TimeEnlistment != 0) AND ((TimeElimination > "'.TimeToMysqlDateTime($StartTime).'") OR (TimeElimination = 0))');
    89       echo($Database->error);
    90       $Row = $DbResult->fetch_array();
    91       $Balance['SmallAssets']['Start'] = $Row[0] + 0;
    92       $DbResult = $Database->query('SELECT SUM(price) FROM network_devices WHERE (TimeEnlistment < "'.TimeToMysqlDateTime($EndTime).'") AND (TimeEnlistment != 0) AND ((TimeElimination > "'.TimeToMysqlDateTime($EndTime).'") OR (TimeElimination = 0))');
    93       $Row = $DbResult->fetch_array();
    94       $Balance['SmallAssets']['End'] = $Row[0] + 0;
    95    
    96 
    97       echo('<tr><td>'.$Year.'</td><td>'.date(HumanDate(TimeToMysqlDateTime($StartTime))).'</td><td>'.date(HumanDate(TimeToMysqlDateTime($EndTime))).'</td>');
    98       echo('<td>'.$Balance['Income']['End'].'</td>');
    99       echo('<td>'.$Balance['Spend']['End'].'</td>');
    100       echo('<td>'.$Balance['Claims']['End'].'</td>');
    101       echo('<td>'.$Balance['Liabilities']['End'].'</td>');
    102       echo('<td>'.$Balance['SmallAssets']['End'].'</td>');
    103 
    104       echo('<td>'.($Balance['Income']['End'] - $Balance['Income']['Start']).'</td>');
    105       echo('<td>'.($Balance['Spend']['End'] - $Balance['Spend']['Start']).'</td>');
    106       echo('<td>'.($Balance['Claims']['End'] - $Balance['Claims']['Start']).'</td>');
    107       echo('<td>'.($Balance['Liabilities']['End'] - $Balance['Liabilities']['Start']).'</td>');
    108       echo('<td>'.($Balance['SmallAssets']['End'] - $Balance['SmallAssets']['Start']).'</td>');
    109       echo('<td>'.(($Balance['Income']['End'] - $Balance['Income']['Start']) - ($Balance['Spend']['End'] - $Balance['Spend']['Start'])).'</td></tr>');
    110     }
    111     echo('</table>');
    112    
    113 //    echo('<tr><td colspan="2">Výkaz o majetku a závazcích</td><td>Ing. Jiří Hajda</td></tr>');
    114 /*
     29  }
     30
     31  function Show()
     32  {
     33    RecalculateTariffs(1);
     34    //TransformFinance();
     35
     36    $Output = '';
     37    if(!array_key_exists('table', $_GET)) $_GET['table'] = '';
     38    switch($_GET['table'])
     39    {
     40      case 'AnnualBalance':
     41        $Output = '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     42        $Output .= '<tr><th colspan="3">Účetní období</th><th colspan="5">Na konci</th><th colspan="6">Během</th></tr>';
     43        $Output .= '<tr><th>Rok</th><th>Od</th><th>Do</th><th>Příjmy</th><th>Výdaje</th><th>Pohledávky</th><th>Závazky</th><th>Drobný majetek</th><th>Příjmy</th><th>Výdaje</th><th>Pohledávky</th><th>Závazky</th><th>Drobný majetek</th><th>Základ daně</th></tr>';
     44
     45        $StartEvidence = mktime(0, 0, 0, 12, 1, 2007);
     46        $StartYear = date('Y', $StartEvidence);
     47        $EndYear = date('Y', time());
     48        for($Year = $StartYear; $Year <= $EndYear; $Year++)
     49        {
     50          $EndTime = mktime(0, 0, 0, 12, 31, $Year);
     51          $Year = date('Y', $EndTime);
     52          $StartTime = mktime(0, 0, 0, 1, 1, $Year);
     53          if($StartTime < $StartEvidence) $StartTime = $StartEvidence;
     54
     55          $Balance = array();
     56
     57          $DbResult = $this->Database->query('SELECT SUM(Value) FROM FinanceCashFlow WHERE Time < "'.TimeToMysqlDateTime($StartTime).'" AND Value > 0 AND Taxable = 1');
     58          $Row = $DbResult->fetch_array();
     59          $Balance['Income']['Start'] = $Row[0] + 0;
     60          $DbResult = $this->Database->query('SELECT SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value > 0 AND Taxable = 1');
     61          //echo('SELECT SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value > 0 AND Taxable = 1'.'<br />');
     62          $Row = $DbResult->fetch_array();
     63          $Balance['Income']['End'] = $Row[0] + 0;
     64
     65          $DbResult = $this->Database->query('SELECT -SUM(Value) FROM FinanceCashFlow WHERE Time < "'.TimeToMysqlDateTime($StartTime).'" AND Value < 0 AND Taxable = 1');
     66          $Row = $DbResult->fetch_array();
     67          $Balance['Spend']['Start'] = $Row[0] + 0;
     68          $DbResult = $this->Database->query('SELECT -SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value < 0 AND Taxable = 1');
     69          //echo('SELECT -SUM(Value) FROM FinanceCashFlow WHERE Time <= "'.TimeToMysqlDateTime($EndTime).'" AND Value < 0 AND Taxable = 1'.'<br />');
     70          $Row = $DbResult->fetch_array();
     71          $Balance['Spend']['End'] = $Row[0] + 0;
     72
     73          $DbResult = $this->Database->query('SELECT SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation < "'.TimeToMysqlDateTime($StartTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value > 0');
     74          $Row = $DbResult->fetch_array();
     75          $Balance['Claims']['Start'] = $Row[0] + 0;
     76          $DbResult = $this->Database->query('SELECT SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation <= "'.TimeToMysqlDateTime($EndTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value > 0');
     77          $Row = $DbResult->fetch_array();
     78          $Balance['Claims']['End'] = $Row[0] + 0;
     79
     80          $DbResult = $this->Database->query('SELECT -SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation < "'.TimeToMysqlDateTime($StartTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value < 0');
     81          $Row = $DbResult->fetch_array();
     82          $Balance['Liabilities']['Start'] = $Row[0] + 0;
     83          $DbResult = $this->Database->query('SELECT -SUM(Value) FROM FinanceClaimsLiabilities WHERE TimeCreation <= "'.TimeToMysqlDateTime($EndTime).'" AND TimePayment = "0000-00-00 00:00:00" AND Value < 0');
     84          $Row = $DbResult->fetch_array();
     85          $Balance['Liabilities']['End'] = $Row[0] + 0;
     86
     87          // SmallAssets
     88          $DbResult = $this->Database->query('SELECT SUM(price) FROM network_devices WHERE (TimeEnlistment < "'.TimeToMysqlDateTime($StartTime).'") AND (TimeEnlistment != 0) AND ((TimeElimination > "'.TimeToMysqlDateTime($StartTime).'") OR (TimeElimination = 0))');
     89          //$Output .= $Database->error;
     90          $Row = $DbResult->fetch_array();
     91          $Balance['SmallAssets']['Start'] = $Row[0] + 0;
     92          $DbResult = $this->Database->query('SELECT SUM(price) FROM network_devices WHERE (TimeEnlistment < "'.TimeToMysqlDateTime($EndTime).'") AND (TimeEnlistment != 0) AND ((TimeElimination > "'.TimeToMysqlDateTime($EndTime).'") OR (TimeElimination = 0))');
     93          $Row = $DbResult->fetch_array();
     94          $Balance['SmallAssets']['End'] = $Row[0] + 0;
     95
     96          $Output .= '<tr><td>'.$Year.'</td><td>'.date(HumanDate(TimeToMysqlDateTime($StartTime))).'</td><td>'.date(HumanDate(TimeToMysqlDateTime($EndTime))).'</td>';
     97          $Output .= '<td>'.$Balance['Income']['End'].'</td>';
     98          $Output .= '<td>'.$Balance['Spend']['End'].'</td>';
     99          $Output .= '<td>'.$Balance['Claims']['End'].'</td>';
     100          $Output .= '<td>'.$Balance['Liabilities']['End'].'</td>';
     101          $Output .= '<td>'.$Balance['SmallAssets']['End'].'</td>';
     102
     103          $Output .= '<td>'.($Balance['Income']['End'] - $Balance['Income']['Start']).'</td>';
     104          $Output .= '<td>'.($Balance['Spend']['End'] - $Balance['Spend']['Start']).'</td>';
     105          $Output .= '<td>'.($Balance['Claims']['End'] - $Balance['Claims']['Start']).'</td>';
     106          $Output .= '<td>'.($Balance['Liabilities']['End'] - $Balance['Liabilities']['Start']).'</td>';
     107          $Output .= '<td>'.($Balance['SmallAssets']['End'] - $Balance['SmallAssets']['Start']).'</td>';
     108          $Output .= '<td>'.(($Balance['Income']['End'] - $Balance['Income']['Start']) - ($Balance['Spend']['End'] - $Balance['Spend']['Start'])).'</td></tr>';
     109        }
     110        $Output .= '</table>';
     111
     112        //    echo('<tr><td colspan="2">Výkaz o majetku a závazcích</td><td>Ing. Jiří Hajda</td></tr>');
     113   /*
    115114    echo('<tr><td>Dlouhodobý hmotný majetek</td><td>&nbsp;</td><td>&nbsp;</td></tr>');
    116115    echo('<tr><td>Dlouhodobý nehmotný majetek</td><td>&nbsp;</td><td>&nbsp;</td></tr>');
     
    153152    echo('</table>');
    154153*/
    155     break;
    156   case 'CashFlow':
    157     $Table = array('Ne', 'Ano');
    158     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    159     echo('<tr><th>Čas</th><th>Subjekt</th><th>Text</th><th>Hodnota [Kč]</th><th>Daňový</th><th>Hotovost</th></tr>');
    160     $DbResult = $Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceCashFlow JOIN users ON users.id = FinanceCashFlow.Subject ORDER BY Time');
    161     while($Row = $DbResult->fetch_array())
    162     {
    163       echo('<tr><td>'.$Row['Time'].'</td><td>'.$Row['Name'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Table[$Row['Taxable']].'</td><td>'.$Table[$Row['Cash']].'</td></tr>');
     154        break;
     155      case 'CashFlow':
     156        $Table = array('Ne', 'Ano');
     157        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     158        $Output .= '<tr><th>Čas</th><th>Subjekt</th><th>Text</th><th>Hodnota [Kč]</th><th>Daňový</th><th>Hotovost</th></tr>';
     159        $DbResult = $this->Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceCashFlow JOIN users ON users.id = FinanceCashFlow.Subject ORDER BY Time');
     160        while($Row = $DbResult->fetch_array())
     161        {
     162          $Output .= '<tr><td>'.$Row['Time'].'</td><td>'.$Row['Name'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Table[$Row['Taxable']].'</td><td>'.$Table[$Row['Cash']].'</td></tr>';
     163        }
     164        $Output .= '</table>';
     165        break;
     166      case 'ClaimsLiabilities':
     167        $Output .= '<table width="100%"><tr><td valign="top">';
     168        $Output .= '<strong>Pohledávky</strong>';
     169        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     170        $Output .= '<tr><th>Subjekt</th><th>Text</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas splatnosti</th><th>Čas uhrazení</th></tr>';
     171        $DbResult = $this->Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceClaimsLiabilities JOIN users ON users.id = FinanceClaimsLiabilities.Subject WHERE Value > 0 ORDER BY TimeCreation');
     172        while($Row = $DbResult->fetch_array())
     173        {
     174          if($Row['TimePayment'] == '0000-00-00 00:00:00') $Row['TimePayment'] = '&nbsp;';
     175          $Output .= '<tr><td>'.$Row['Name'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimeDue'].'</td><td>'.$Row['TimePayment'].'</td></tr>';
     176        }
     177        $Output .= '</table></td><td valign="top">';
     178
     179        $Output .= '<strong>Závazky</strong>';
     180        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     181        $Output .= '<tr><th>Subjekt</th><th>Text</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas splatnosti</th><th>Čas uhrazení</th></tr>';
     182        $DbResult = $this->Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceClaimsLiabilities JOIN users ON users.id = FinanceClaimsLiabilities.Subject WHERE Value < 0 ORDER BY TimeCreation');
     183        while($Row = $DbResult->fetch_array())
     184        {
     185          if($Row['TimePayment'] == '0000-00-00 00:00:00') $Row['TimePayment'] = '&nbsp;';
     186          $Output .= '<tr><td>'.$Row['Name'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimeDue'].'</td><td>'.$Row['TimePayment'].'</td></tr>';
     187        }
     188        $Output .= '</table></td></tr></table>';
     189        break;
     190      case 'Advantages':
     191        $Output .= '<table width="100%"><tr><td valign="top">';
     192        $Output .= 'Přijaté zálohy';
     193        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     194        $Output .= '<tr><th>Subjekt</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas uzavření</th></tr>';
     195        $DbResult = $this->Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceAdvances JOIN users ON users.id = FinanceAdvances.Subject WHERE Direction = "In" ORDER BY TimeCreation');
     196        while($Row = $DbResult->fetch_array())
     197        {
     198          if($Row['TimePass'] == '0000-00-00 00:00:00') $Row['TimePass'] = '&nbsp;';
     199          $Output .= '<tr><td>'.$Row['Name'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePass'].'</td></tr>';
     200        }
     201        $Output .= '</table></td><td valign="top">';
     202
     203        $Output .= 'Vydané zálohy';
     204        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     205        $Output .= '<tr><th>Subjekt</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas uzavření</th></tr>';
     206        $DbResult = $this->Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceAdvances JOIN users ON users.id = FinanceAdvances.Subject WHERE Direction = "Out" ORDER BY TimeCreation');
     207        while($Row = $DbResult->fetch_array())
     208        {
     209          if($Row['TimePass'] == '0000-00-00 00:00:00') $Row['TimePass'] = '&nbsp;';
     210          $Output .= '<tr><td>'.$Row['Name'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePass'].'</td></tr>';
     211        }
     212        $Output .= '</table></td></tr></table>';
     213        break;
     214      case 'SubjectList':
     215        $Output .= '<strong>Seznam subjektů</strong>';
     216        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     217        $Output .= '<tr><th>Jméno</th><th>Závazky [Kč]</th><th>Pohledávky [Kč]</th><th>Příjmy [Kč]</th><th>Výdaje [Kč]</th><th>Zálohy [Kč]</th><th>Stav účtu</th><th>Starý systém</th></tr>';
     218        $DbResult = $this->Database->query('SELECT id, CONCAT(users.second_name, " ", users.first_name) as Fullname, cash, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0) as Claims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0 AND TimePayment IS NULL) as OpenedClaims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0) as Liabilities, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0 AND TimePayment IS NULL) as OpenedLiabilities, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value > 0) as Gains, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value < 0) as Spends, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="In") as AdvancesIn, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="Out") as AdvancesOut FROM users ORDER BY fullname');
     219        while($Row = $DbResult->fetch_array())
     220        {
     221          $Advances = ($Row['AdvancesIn'] - $Row['AdvancesOut']);
     222          $Output .= '<tr><td><a href="?table=SubjectAccount&Id='.$Row['id'].'">'.$Row['Fullname'].'</a></td><td>'.$Row['Liabilities'].'/'.$Row['OpenedLiabilities'].'</td><td>'.$Row['Claims'].'/'.$Row['OpenedClaims'].'</td><td>'.$Row['Gains'].'</td><td>'.$Row['Spends'].'</td><td>'.$Advances.'</td><td>'.($Advances - $Row['OpenedClaims'] + Abs($Row['OpenedLiabilities'])).'</td><td>'.$Row['cash'].'</td></tr>';
     223        }
     224        $Output .= '</table>';
     225        break;
     226      case 'SmallAssets':
     227        $Output .= '<strong>Drobný majetek</strong>';
     228        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     229        $Output .= '<tr><th>Název</th><th>Hodnota [Kč]</th><th>Datum zakoupení</th><th>Datum vyřezení</th></tr>';
     230        $DbResult = $this->Database->query('SELECT * FROM network_devices WHERE used != 0');
     231        while($Row = $DbResult->fetch_array())
     232        {
     233          $Output .= '<tr><td>'.$Row['name'].'</td><td>'.$Row['price'].'</td><td>'.$Row['TimeEnlistment'].'</td><td>'.$Row['TimeElimination'].'</td></tr>';
     234        }
     235        $Output .= '</table>';
     236        break;
     237      case 'SubjectAccount':
     238        $Output .= '<strong>Výpis příjmů/výdajů</strong>';
     239        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     240        $Output .= '<tr><th>Datum</th><th>Název</th><th>Hodnota [Kč]</th></tr>';
     241        $DbResult = $this->Database->select('FinanceCashFlow', '*', 'Subject='.$_GET['Id']);
     242        while($Row = $DbResult->fetch_array())
     243        {
     244          $Output .= '<tr><td>'.$Row['Time'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['Bill'].'</td></tr>';
     245        }
     246        $Output .= '</table><br />';
     247
     248        $Output .= '<strong>Výpis závazků/pohledávek</strong>';
     249        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     250        $Output .= '<tr><th>Datum vytvoření</th><th>Datum zaplacení</th><th>Název</th><th>Hodnota [Kč]</th></tr>';
     251        $DbResult = $this->Database->select('FinanceClaimsLiabilities', '*', 'Subject='.$_GET['Id']);
     252        while($Row = $DbResult->fetch_array())
     253        {
     254          $Output .= '<tr><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePayment'].'</td><td>'.$Row['Text'].'</td><td>'.(-$Row['Value']).'</td><td>'.$Row['Bill'].'</td></tr>';
     255        }
     256        $Output .= '</table><br />';
     257
     258        $Output .= '<strong>Výpis záloh</strong>';
     259        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
     260        $Output .= '<tr><th>Datum vytvoření</th><th>Datum zaplacení</th><th>Název</th><th>Hodnota [Kč]</th></tr>';
     261        $DbResult = $this->Database->select('FinanceAdvances', '*', 'Subject='.$_GET['Id']);
     262        while($Row = $DbResult->fetch_array())
     263        {
     264          $Output .= '<tr><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePass'].'</td><td>'.$Row['Direction'].'</td><td>'.($Row['Value']).'</td><td>'.$Row['CashFlowId'].'</td></tr>';
     265        }
     266        $Output .= '</table>';
     267
     268        $DbResult = $this->Database->query('SELECT id, CONCAT(users.second_name, " ", users.first_name) as Fullname, cash, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0) as Claims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0 AND TimePayment IS NULL) as OpenedClaims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0) as Liabilities, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0 AND TimePayment IS NULL) as OpenedLiabilities, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value > 0) as Gains, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value < 0) as Spends, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="In") as AdvancesIn, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="Out") as AdvancesOut FROM users WHERE id='.$_GET['Id']);
     269        $Row = $DbResult->fetch_array();
     270        $Output .= 'Stav placení: '.($Row['AdvancesIn'] - $Row['AdvancesOut'] - $Row['OpenedClaims'] + Abs($Row['OpenedLiabilities']));
     271        break;
     272      default:
     273        $Output .= '<a href="?table=AnnualBalance">Účetní závěrka</a><br />';
     274        $Output .= '<a href="?table=CashFlow">Příjmy a výdaje</a><br />';
     275        $Output .= '<a href="?table=ClaimsLiabilities">Závazky a pohledávky</a><br />';
     276        $Output .= '<a href="?table=Advantages">Zálohy</a><br />';
     277        $Output .= '<a href="?table=SmallAssets">Drobný majetek</a><br />';
     278        $Output .= '<a href="?table=SubjectList">Seznam subjektů</a><br />';
    164279    }
    165     echo('</table>');
    166     break;
    167   case 'ClaimsLiabilities':
    168     echo('<table width="100%"><tr><td valign="top">');
    169     echo('<strong>Pohledávky</strong>');
    170     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    171     echo('<tr><th>Subjekt</th><th>Text</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas splatnosti</th><th>Čas uhrazení</th></tr>');
    172     $DbResult = $Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceClaimsLiabilities JOIN users ON users.id = FinanceClaimsLiabilities.Subject WHERE Value > 0 ORDER BY TimeCreation');
    173     while($Row = $DbResult->fetch_array())
    174     {
    175       if($Row['TimePayment'] == '0000-00-00 00:00:00') $Row['TimePayment'] = '&nbsp;';
    176       echo('<tr><td>'.$Row['Name'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimeDue'].'</td><td>'.$Row['TimePayment'].'</td></tr>');
    177     }
    178     echo('</table></td><td valign="top">');
    179 
    180     echo('<strong>Závazky</strong>');
    181     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    182     echo('<tr><th>Subjekt</th><th>Text</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas splatnosti</th><th>Čas uhrazení</th></tr>');
    183     $DbResult = $Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceClaimsLiabilities JOIN users ON users.id = FinanceClaimsLiabilities.Subject WHERE Value < 0 ORDER BY TimeCreation');
    184     while($Row = $DbResult->fetch_array())
    185     {
    186       if($Row['TimePayment'] == '0000-00-00 00:00:00') $Row['TimePayment'] = '&nbsp;';
    187       echo('<tr><td>'.$Row['Name'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimeDue'].'</td><td>'.$Row['TimePayment'].'</td></tr>');
    188     }
    189     echo('</table></td></tr></table>');
    190     break;
    191   case 'Advantages':
    192     echo('<table width="100%"><tr><td valign="top">');
    193     echo('Přijaté zálohy');
    194     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    195     echo('<tr><th>Subjekt</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas uzavření</th></tr>');
    196     $DbResult = $Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceAdvances JOIN users ON users.id = FinanceAdvances.Subject WHERE Direction = "In" ORDER BY TimeCreation');
    197     while($Row = $DbResult->fetch_array())
    198     {
    199       if($Row['TimePass'] == '0000-00-00 00:00:00') $Row['TimePass'] = '&nbsp;';
    200       echo('<tr><td>'.$Row['Name'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePass'].'</td></tr>');
    201     }
    202     echo('</table></td><td valign="top">');
    203 
    204     echo('Vydané zálohy');
    205     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    206     echo('<tr><th>Subjekt</th><th>Hodnota [Kč]</th><th>Čas vystavení</th><th>Čas uzavření</th></tr>');
    207     $DbResult = $Database->query('SELECT *, CONCAT(users.second_name, " ", users.first_name) as Name FROM FinanceAdvances JOIN users ON users.id = FinanceAdvances.Subject WHERE Direction = "Out" ORDER BY TimeCreation');
    208     while($Row = $DbResult->fetch_array())
    209     {
    210       if($Row['TimePass'] == '0000-00-00 00:00:00') $Row['TimePass'] = '&nbsp;';
    211       echo('<tr><td>'.$Row['Name'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePass'].'</td></tr>');
    212     }
    213     echo('</table></td></tr></table>');
    214     break;
    215   case 'SubjectList':
    216     echo('<strong>Seznam subjektů</strong>');
    217     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    218     echo('<tr><th>Jméno</th><th>Závazky [Kč]</th><th>Pohledávky [Kč]</th><th>Příjmy [Kč]</th><th>Výdaje [Kč]</th><th>Zálohy [Kč]</th><th>Stav účtu</th><th>Starý systém</th></tr>');
    219     $DbResult = $Database->query('SELECT id, CONCAT(users.second_name, " ", users.first_name) as Fullname, cash, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0) as Claims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0 AND TimePayment IS NULL) as OpenedClaims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0) as Liabilities, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0 AND TimePayment IS NULL) as OpenedLiabilities, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value > 0) as Gains, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value < 0) as Spends, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="In") as AdvancesIn, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="Out") as AdvancesOut FROM users ORDER BY fullname');
    220     while($Row = $DbResult->fetch_array())
    221     {
    222       $Advances = ($Row['AdvancesIn'] - $Row['AdvancesOut']);
    223       echo('<tr><td><a href="?table=SubjectAccount&Id='.$Row['id'].'">'.$Row['Fullname'].'</a></td><td>'.$Row['Liabilities'].'/'.$Row['OpenedLiabilities'].'</td><td>'.$Row['Claims'].'/'.$Row['OpenedClaims'].'</td><td>'.$Row['Gains'].'</td><td>'.$Row['Spends'].'</td><td>'.$Advances.'</td><td>'.($Advances - $Row['OpenedClaims'] + Abs($Row['OpenedLiabilities'])).'</td><td>'.$Row['cash'].'</td></tr>');
    224     }
    225     echo('</table>');
    226     break;
    227   case 'SmallAssets':
    228     echo('<strong>Drobný majetek</strong>');
    229     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    230     echo('<tr><th>Název</th><th>Hodnota [Kč]</th><th>Datum zakoupení</th><th>Datum vyřezení</th></tr>');
    231     $DbResult = $Database->query('SELECT * FROM network_devices WHERE used != 0');
    232     while($Row = $DbResult->fetch_array())
    233     {
    234       echo('<tr><td>'.$Row['name'].'</td><td>'.$Row['price'].'</td><td>'.$Row['TimeEnlistment'].'</td><td>'.$Row['TimeElimination'].'</td></tr>');
    235     }
    236     echo('</table>');
    237     break;
    238   case 'SubjectAccount':
    239     echo('<strong>Výpis příjmů/výdajů</strong>');
    240     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    241     echo('<tr><th>Datum</th><th>Název</th><th>Hodnota [Kč]</th></tr>');
    242     $DbResult = $Database->select('FinanceCashFlow', '*', 'Subject='.$_GET['Id']);
    243     while($Row = $DbResult->fetch_array())
    244     {
    245       echo('<tr><td>'.$Row['Time'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['Bill'].'</td></tr>');
    246     }
    247     echo('</table><br>');
    248 
    249     echo('<strong>Výpis závazků/pohledávek</strong>');
    250     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    251     echo('<tr><th>Datum vytvoření</th><th>Datum zaplacení</th><th>Název</th><th>Hodnota [Kč]</th></tr>');
    252     $DbResult = $Database->select('FinanceClaimsLiabilities', '*', 'Subject='.$_GET['Id']);
    253     while($Row = $DbResult->fetch_array())
    254     {
    255       echo('<tr><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePayment'].'</td><td>'.$Row['Text'].'</td><td>'.(-$Row['Value']).'</td><td>'.$Row['Bill'].'</td></tr>');
    256     }
    257     echo('</table><br>');
    258 
    259     echo('<strong>Výpis záloh</strong>');
    260     echo('<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">');
    261     echo('<tr><th>Datum vytvoření</th><th>Datum zaplacení</th><th>Název</th><th>Hodnota [Kč]</th></tr>');
    262     $DbResult = $Database->select('FinanceAdvances', '*', 'Subject='.$_GET['Id']);
    263     while($Row = $DbResult->fetch_array())
    264     {
    265       echo('<tr><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePass'].'</td><td>'.$Row['Direction'].'</td><td>'.($Row['Value']).'</td><td>'.$Row['CashFlowId'].'</td></tr>');
    266     }
    267     echo('</table>');
    268 
    269     $DbResult = $Database->query('SELECT id, CONCAT(users.second_name, " ", users.first_name) as Fullname, cash, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0) as Claims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value > 0 AND TimePayment IS NULL) as OpenedClaims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0) as Liabilities, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = users.id AND FinanceClaimsLiabilities.Value < 0 AND TimePayment IS NULL) as OpenedLiabilities, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value > 0) as Gains, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = users.id AND FinanceCashFlow.Value < 0) as Spends, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="In") as AdvancesIn, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = users.id AND FinanceAdvances.Direction="Out") as AdvancesOut FROM users WHERE id='.$_GET['Id']);
    270     $Row = $DbResult->fetch_array();
    271     echo('Stav placení: '.($Row['AdvancesIn'] - $Row['AdvancesOut'] - $Row['OpenedClaims'] + Abs($Row['OpenedLiabilities'])));
    272     break;
    273   default:
    274     echo('<a href="?table=AnnualBalance">Účetní závěrka</a><br>');
    275     echo('<a href="?table=CashFlow">Příjmy a výdaje</a><br>');
    276     echo('<a href="?table=ClaimsLiabilities">Závazky a pohledávky</a><br>');
    277     echo('<a href="?table=Advantages">Zálohy</a><br>');
    278     echo('<a href="?table=SmallAssets">Drobný majetek</a><br>');
    279     echo('<a href="?table=SubjectList">Seznam subjektů</a><br>');
     280    return($Output);
     281  }
     282
     283  function AddMoney($Subject, $Value, $Text, $Time)
     284  {
     285    $TimeDue = $Time + 15 * 24 * 3600; // 15 dnů
     286
     287  }
     288
     289  function AddInvoice($Subject, $Value, $Text, $Time)
     290  {
     291    $TimeDue = $Time + 15 * 24 * 3600; // 15 dnů
     292
     293  }
    280294}
    281295
    282 function AddMoney($Subject, $Value, $Text, $Time)
    283 {
    284   $TimeDue = $Time + 15 * 24 * 3600; // 15 dnů
    285  
    286 
    287 }
    288 
    289 function AddInvoice($Subject, $Value, $Text, $Time)
    290 {
    291   $TimeDue = $Time + 15 * 24 * 3600; // 15 dnů
    292  
    293 
    294 }
     296$System->AddModule(new FinanceTaxFilingPage());
     297$System->Modules['FinanceTaxFilingPage']->GetOutput();
    295298
    296299?>
  • www/global.php

    r150 r152  
    4444$System->AddModule(new User());
    4545$System->Modules['User']->Check();
    46 /*
    4746include_once('aktuality/news.php');
    4847$System->AddModule(new News());
     
    5352include_once('finance/finance.php');
    5453$System->AddModule(new Finance());
    55 */
    5654
    5755$MonthNames = array('', 'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');
  • www/index.php

    r148 r152  
    22
    33include_once('global.php');
    4 include_once('style.php');
    5 ShowHeader('<strong>ZděchovNET</strong> - komunitní počítačová síť', 'Rozcestník');
    6 
    7 $Database->select_db('share');
    8 
    9 function CategoryItemCompare($Item1, $Item2)
     4
     5class IndexPage extends Page
    106{
    11   if ($Item1['Index'] == $Item2['Index']) return(0);
    12   return ($Item1['Index'] > $Item2['Index']) ? -1 : 1;
    13 }
    14 
    15 // Process cookies
    16 if(array_key_exists('Action', $_GET))
    17 {
    18   if($_GET['Action'] == 'CustomizeNewsSave')
    19   {
    20     $Checkbox = array('' => 0, 'on' => 1);
    21     // print_r($_POST);
    22     $Setting = array();
    23     for($I = 0; $I < $_POST['NewsCategoryCount']; $I++)
    24     {
    25       if(($_POST['NewsCategoryDaysAgo'.$I]*1) < 0) $_POST['NewsCategoryIndex'.$I] = 0;
    26       if(($_POST['NewsCategoryCount'.$I]*1) < 0) $_POST['NewsCategoryCount'.$I] = 0;
    27       if(!array_key_exists('NewsCategoryEnabled'.$I, $_POST)) $_POST['NewsCategoryEnabled'.$I] = '';
    28       $Setting[] = array('CategoryId' => $_POST['NewsCategoryId'.$I], 'Enabled' => $Checkbox[$_POST['NewsCategoryEnabled'.$I]], 'ItemCount' => ($_POST['NewsCategoryCount'.$I]*1), 'DaysAgo' => ($_POST['NewsCategoryDaysAgo'.$I]*1), 'Index' => ($_POST['NewsCategoryIndex'.$I]*1));
    29     }
    30     // Sort indexes
    31     usort($Setting, 'CategoryItemCompare');
    32     $Setting = array_reverse($Setting);
    33     // Normalize indexes
    34     foreach($Setting as $Index => $Item)
    35       $Setting[$Index]['Index'] = $Index + 1;
    36    
    37     // print_r($Setting);
    38 
    39     // Store new cookie value
    40     $_COOKIE['NewsSetting'] = serialize($Setting);
    41     setcookie('NewsSetting', $_COOKIE['NewsSetting']);
    42   } else
    43   if($_GET['Action'] == 'LoginForm')
    44   {
    45     $Output = '
    46    <form action="?Action=Login" method="post">
    47    <table class="hidden">
    48         <tr align="left"><td colspan="2">Jméno:</td></tr>
    49         <tr align="left"><td colspan="2"><input type="text" name="Username" size="40" maxlength="16" /></td></tr>
    50         <tr align="left"><td colspan="2">Heslo:</td></tr>
    51         <tr align="left"><td colspan="2"><input type="password" name="Password" size="40" maxlength="16" /></td></tr>
    52         <tr><td colspan="2">&nbsp;</td></tr>
    53         <tr align="left">
    54                 <td><input type="checkbox" name="remember" value="1" checked="checked" /> Trvalé přihlášení</td>
     7  var $Dependencies = array('News');
     8  var $FullTitle = '<strong>ZděchovNET</strong> - komunitní počítačová síť';
     9  var $ShortTitle = 'Rozcestník';
     10  var $Links = array(
     11    'main' => array('Důležité odkazy',
     12      array('Finance', '/finance/', 'money.gif'),
     13      array('Statistika', 'http://stat.zdechov.net/centrala/', 'chart.gif'),
     14      array('Prohledat sdílení', '/share/', 'prohledavac_sdileni.gif', array('Share', 'Display')),
     15      array('Seznam uživatelů', '/userlist.php', 'comp.gif'),
     16      array('Seznam počítačů', '/hostlist.php', 'comp.gif'),
     17      array('Historie chatu', '/chat/history.php', 'sunrisechat.gif', array('Chat', 'Display')),
     18      array('Webový chat', 'http://embed.mibbit.com/?server=game.zdechov.net%3A6667&amp;channel=%23zdechov&amp;forcePrompt=true&amp;charset=utf-8', 'sunrisechat.gif'),
     19      array('Diskusní fórum', '/forum/', 'discus.gif'),
     20      array('WebMail', '/webmail/', 'openwebmail.gif'),
     21      array('Jídelníček', '/jidelna/', 'apple.gif'),
     22      array('Televize', 'http://tv.zdechov.net/', 'clear.gif'),
     23      array('Herní server', 'http://game-server.zdechov.net/', 'cube.gif'),
     24      array('Rozpis mší', 'http://farnost.zdechov.net/', 'cfix.gif'),
     25      array('Telefonní seznam', '/telseznam.php', 'tel.gif'),
     26      array('Mapa Zděchova', 'http://www.mapy.cz/#x=141560832@y=133134848@z=13@mm=FP@sa=s@st=s@ssq=zd%C4%9Bchov@sss=1@ssp=120738725_123701121_150360997_149800833', 'clear.gif'),
     27      array('Otvírací doby', '/otevreno.php', 'otv_doby.gif'),
     28      array('Topologie sítě', '/is/topologie.php', 'topologie.gif'),
     29      array('Dostupnost sítě', '/network/dostupnost.php', 'satellite.gif'),
     30      array('Technické informace', '/network.php', 'tech.gif'),
     31      array('Fotbal Sokol Zděchov', 'http://fotbal.zdechov.net/', 'socer.gif'),
     32      array('Webkamera', '/webcam/', 'clear.gif'),
     33      array('Stránky naší sítě', 'http://www.zdechov.net/', 'clear.gif'),
     34    ),
     35    'other' => array('Další odkazy',
     36      array('Kanály kabelovky', '/tkr.php', 'tv.gif'),
     37      array('Historie sítě', '/history.php', 'clear.gif'),
     38      array('Měřič spotřeby', '/merak.php', 'electric.gif'),
     39      array('Plány do budoucna', '/ukoly.php', 'clear.gif'),
     40    ),
     41    'search' => array('Vyhledávání',
     42      array('Google', 'http://www.google.cz/', 'www_google_com.gif'),
     43      array('Morfeo', 'http://morfeo.centrum.cz/', 'morfeo.png'),
     44      array('Centrum', 'http://www.centrum.cz/', 'www_centrum_cz.gif'),
     45      array('Seznam', 'http://www.seznam.cz/', 'www_seznam_cz.gif'),
     46      array('Atlas', 'http://www.atlas.cz/', 'www_atlas_cz.gif'),
     47      array('Tiscali', 'http://www.tiscali.cz/', 'www_tiscali_cz.gif'),
     48    ),
     49    'usefull' => array('Užitečné',
     50      array('Mapa ČR', 'http://www.mapy.cz/', 'clear.gif'),
     51      array('Online TV', 'http://www.tvinfo.cz/live/televize/cz/', 'www_tvinfo_cz.gif'),
     52      array('Jízdní řády', 'http://jizdnirady.idnes.cz/', 'www_idos_cz.gif'),
     53      array('TV programy', 'http://tv.atlas.cz/', 'www_atlas_cz.gif'),
     54      array('ICQ', 'javascript:openClient(\'flash\')', 'www_icq_com.gif'),
     55      array('Slovníky', 'http://slovniky.centrum.cz/', 'www_centrum_cz.gif'),
     56      array('Počasí', 'http://www.meteopress.cz/', 'pocasi.gif'),
     57      array('T-Mobile SMS', 'http://www.tzones.cz/', 'www_tzones_cz.gif'),
     58      array('Knihovna&nbsp;Vsetín', 'http://www.mvk.cz/', 'www_mvk_cz.png'),   
     59    ),
     60    'fun' => array('Zábava',
     61          array('Youtube', 'http://www.youtube.com/', 'clear.gif'),
     62      array('Last.fm', 'http://www.last.fm/', 'clear.gif'),   
     63    ),
     64    /*'computers' => array('Prodej počítačů',
     65      array('SOFTCOM', 'http://www.softcom.cz/', 'www_computershop_cz.png'),
     66      array('Alfacomp', 'http://www.alfacomp.cz/php/zbozi.php?akc=2', 'www_alfacomp_cz.gif'),
     67      array('Petracomp', 'http://www.petracomp.cz/', 'www_petracomp_cz.png'),
     68      array('TS Bohemia', 'http://interlink.tsbohemia.cz/', 'www_tsbohemia_cz.png'),
     69    ),
     70      */
     71  );
     72 
     73  function ShowLinks($LinkGroup)
     74  {
     75    $Result = '';
     76    //foreach($this->Links as $LinkGroup)
     77    //{
     78      $Title = array_shift($LinkGroup);
     79      $Result .= '<div class="PanelTitle">'.$Title.':</div>';
     80      foreach($LinkGroup as $Link)
     81      {
     82        if(substr($Link[1], 0, 4) != 'http') $Link[1] = $this->System->Config['Web']['RootFolder'].$Link[1];
     83        if(!isset($Link[3]) or (isset($Link[3]) and $this->System->Modules['User']->CheckPermission($Link[3][0], $Link[3][1])))
     84          $Result .= '<img alt="'.$Link[0].'" src="images/favicons/'.$Link[2].'" width="16" height="16" /> <a href="'.$Link[1].'">'.$Link[0].'</a><br />';
     85      }
     86    //}
     87    return($Result);
     88  }
     89
     90  function InfoBar()
     91  {
     92    $this->Database->select_db('is');
     93
     94    $Output2 = '';
     95
     96    $DbResult = $this->Database->select('hosts', 'COUNT(*)', 'show_online=1');
     97    $DbRow = $DbResult->fetch_array();
     98    $TotalComputers = $DbRow[0];
     99
     100    $DbResult = $this->Database->select('hosts', 'COUNT(*)', 'show_online=1 AND online=1');
     101    $DbRow = $DbResult->fetch_array();
     102    $OnlineComputers = $DbRow[0];
     103
     104    $Output = '<img alt="" src="images/favicons/comp.gif" width="16" height="16" /> '.$OnlineComputers.' / '.$TotalComputers.' &nbsp;  &nbsp; ';
     105
     106    $DbResult = $this->Database->select('users', 'COUNT(*)', 'role=2');
     107    $DbRow = $DbResult->fetch_array();
     108    $TotalUser = $DbRow[0];
     109
     110    $DbResult = $this->Database->select('hosts', 'COUNT(DISTINCT(user))', 'show_online=1 AND online=1');
     111    $DbRow = $DbResult->fetch_array();
     112    $OnlineUser = $DbRow[0];
     113
     114    $Output .= '<img alt="" src="images/favicons/house.gif" width="16" height="16" /> '.$OnlineUser.' / '.$TotalUser.' &nbsp;  &nbsp; ';
     115
     116    $NetworkUsage = 0;
     117    $Output .= '<img alt="" src="images/favicons/usage.gif" width="16" height="16" /> '.$NetworkUsage.' % &nbsp;  &nbsp; ';
     118
     119    //$Output .= 'Server běží: '.$this->GetServerUptime().' &nbsp;  &nbsp; ';
     120
     121    if($this->System->Modules['User']->CheckPermission('Finance', 'DisplaySubjectState'))
     122    {
     123      $DbResult = $this->Database->select('users', 'cash', 'User='.$this->System->Modules['User']->User['Id']);
     124      if($DbResult->num_rows > 0)
     125      {
     126        $DbRow = $DbResult->fetch_array();
     127        $Finance = $DbRow[0];
     128        $Output2 .= ' &nbsp;  &nbsp; <img alt="" src="images/favicons/money.gif" width="16" height="16" /> '.$Finance.' Kč';
     129      }
     130    }
     131
     132    $Output = '<div class="Navigation"><span class="MenuItem">'.$Output.'</span><div class="MenuItem2">&nbsp;'.$Output2.'</div></div>';
     133    return($Output);
     134  }
     135
     136  function UserPanel()
     137  {
     138    $Output = '<div class="PanelTitle">Nabídka uživatele:</div>'.
     139    '<a href="'.$this->System->Config['Web']['RootFolder'].'/?Action=UserOptions">Nastavení účtu</a><br />'.
     140    '<a href="'.$this->System->Config['Web']['RootFolder'].'/finance/user_state.php">Stav financí</a><br />'.
     141   '<a href="'.$this->System->Config['Web']['RootFolder'].'/network/user_hosts.php">Registrované počítače</a><br />'.
     142   '<a href="'.$this->System->Config['Web']['RootFolder'].'/aktuality/?action=add">Vložení aktuality</a><br />';
     143   if($this->System->Modules['User']->CheckPermission('EatingPlace', 'Edit')) $Output .= '<a href="'.$this->System->Config['Web']['RootFolder'].'/jidelna/menuedit.php">Editace jídelníčků</a><br />';
     144   if($this->System->Modules['User']->CheckPermission('Finance', 'Manage')) $Output .= '<a href="'.$this->System->Config['Web']['RootFolder'].'/finance/manage.php">Správa financí</a><br />';
     145   if($this->System->Modules['User']->CheckPermission('Network', 'Administration')) $Output .= '<a href="'.$this->System->Config['Web']['RootFolder'].'/is/administration_page.php">Správa sítě</a><br />';
     146    return($Output);
     147  }
     148
     149  function WebcamPanel()
     150  {
     151    $Output = '<div class="PanelTitle">Webkamery:</div>';
     152    $Output .= $this->System->Modules['Webcam']->ShowImage();
     153    return($Output);
     154  }
     155
     156  // Zobrazení seznamu online počítačů
     157  function OnlineHostList()
     158  {
     159    global $Database;
     160
     161    $Output = '<div class="PanelTitle">Online počítače:</div><span style="font-size: smaller;">';
     162    $DbResult = $Database->select('hosts', '*', 'online=1 AND show_online=1 ORDER BY name');
     163    while($Row = $DbResult->fetch_array())
     164    {
     165      $Output .= $Row['name'].'<br />';
     166    }
     167    $Output .= '</span>';
     168    return($Output);
     169  }
     170
     171  /*
     172  // Zobrazení seznamu neplaticich uzivatelu
     173  function ShowBadPayerList()
     174  {
     175    $Output .= '<div class="PanelTitle">Dlužníci:</div><span style="font-size: smaller;">';
     176    $DbResult = $Database->select('users', 'CONCAT(second_name, " ", first_name) as fullname', 'cash<0 AND role=2 ORDER BY cash');
     177    while($Row = $DbResult->fetch_array())
     178    {
     179      $Output .= $Row['fullname'].'<br />';
     180    }
     181    echo('</span>');
     182    return($Output);
     183  }
     184  */
     185
     186  // Zobrazení času běhu počítače
     187  function GetServerUptime()
     188  {
     189    $Data = explode(' ',exec('uptime'));
     190    $Data = array_slice($Data,3,-8);
     191    $Uptime = '';
     192    foreach($Data as $Item)
     193    {
     194      if(strpos($Item,':')) $Uptime .= substr($Item,0,-1).' hodin';
     195      else $Uptime .= $Item.' ';
     196    }
     197    $Uptime = str_replace('2 days,','2 dny a',$Uptime);
     198    $Uptime = str_replace('3 days,','3 dny a',$Uptime);
     199    $Uptime = str_replace('4 days,','4 dny a',$Uptime);
     200    $Uptime = str_replace('days,','dní a',$Uptime);
     201    $Uptime = str_replace('day,','den a',$Uptime);
     202    $Uptime = str_replace('min,','minut',$Uptime);
     203    return($Uptime);
     204  }
     205
     206  function Show()
     207  {
     208    global $Database, $Config, $User;
     209
     210    $Database->select_db('share');
     211    //$Output = $this->InfoBar();
     212
     213    // Process cookies
     214    if(array_key_exists('Action', $_GET))
     215    {
     216      if($_GET['Action'] == 'CustomizeNewsSave')
     217      {
     218        $Output .= $this->System->Modules['News']->CustomizeSave();
     219      } else
     220      if($_GET['Action'] == 'LoginForm')
     221      {
     222        $Output .= '<form action="?Action=Login" method="post"><center><fieldset style="width: 500px;"><legend>Přihlašovací údaje</legend>
     223       <table class="hidden">
     224            <tr align="left"><td colspan="2">Jméno:</td></tr>
     225            <tr align="left"><td colspan="2"><input type="text" name="Username" size="40" maxlength="16" /></td></tr>
     226            <tr align="left"><td colspan="2">Heslo:</td></tr>
     227            <tr align="left"><td colspan="2"><input type="password" name="Password" size="40" maxlength="16" /></td></tr>
     228            <tr><td colspan="2">&nbsp;</td></tr>
     229            <tr align="left">
     230                <td><input type="checkbox" name="remember" value="1" checked="checked" /> Trvalé přihlášení</td>
    55231                <td align="right"><input type="submit" value="Přihlásit" /></td>
    56232        </tr>
     
    59235                <td><a href="?Action=PasswordRecovery">Obnova zapomenutého hesla</a></td>
    60236        </tr>
    61    </table>
    62    </form>';
    63     SystemMessage('Test', $Output);
    64   } else
    65   if($_GET['Action'] == 'Login')
    66   {
    67     SystemMessage('Přihlášení', $User->Login($_POST['Username'], $_POST['Password']));
    68   } else
    69   if($_GET['Action'] == 'Logout')
    70   {
    71     SystemMessage('Odhlášení', $User->Logout());
    72   } else
    73   if($_GET['Action'] == 'UserOptions')
    74   {
    75    
    76     $Output = '<center><fieldset style="width: 500px;"><legend>Základní nastavení</legend>';
    77     $Output .= '<form action="?Action=UserOptionsSave"><table>';
    78     $Output .= '<tr><td>Přihlašovací jméno:</td><td><input type="text" name="Name"></td><td>';
    79     $Output .= '<tr><td>Heslo:</td><td><input type="password" name="Password"></td><td>';
    80     $Output .= '<tr><td>Křestní jméno:</td><td><input type="text" name="FirstName"></td><td>';
    81     $Output .= '<tr><td>Příjmení:</td><td><input type="text" name="SecondName"></td><td>';
    82     $Output .= '<tr><td>E-mail:</td><td><input type="text" name="Email"></td><td>';
    83     $Output .= '<tr><td colspan="2" align="center"><input type="submit" value="Uložit" /></td></tr></table></form></fieldset></center>';
    84     echo($Output);
     237       </table>
     238       </fieldset></center>
     239       </form>';
     240//        $Output .= $this->SystemMessage('Test', $Output);
     241      } else
     242      if($_GET['Action'] == 'Login')
     243      {
     244        $Output .= $this->SystemMessage('Přihlášení', $this->System->Modules['User']->Login($_POST['Username'], $_POST['Password']));
     245      } else
     246      if($_GET['Action'] == 'Logout')
     247      {
     248        $Output .= $this->SystemMessage('Odhlášení', $this->System->Modules['User']->Logout());
     249      } else
     250      if($_GET['Action'] == 'UserOptions')
     251      {
     252        $UserOptions = new Form('UserOptions');
     253        $UserOptions->LoadValuesFromDatabase($this->System->Modules['User']->User['Id']);
     254        $UserOptions->OnSubmit = '?Action=UserOptionsSave';
     255        $Output .= $UserOptions->ShowEditForm();
     256      } else
     257      if($_GET['Action'] == 'UserOptionsSave')
     258      {
     259        $UserOptions = new Form('UserOptions', array());
     260        $UserOptions->LoadValuesFromForm();
     261        $UserOptions->SaveValuesToDatabase($this->System->Modules['User']->User['Id']);
     262        $Output .= $this->SystemMessage('Nastavení', 'Nastavení uloženo.');
     263        $this->System->Modules['Log']->NewRecord('User', 'Nastavení uživatele změněno', $UserOptions->Values['Name']);
     264      }
     265      if($_GET['Action'] == 'UserRegister')
     266      {
     267        $UserRegister = new Form('UserRegister');
     268        $UserRegister->OnSubmit = '?Action=UserRegisterSave';
     269        $Output .= $UserRegister->ShowEditForm();
     270      } else
     271      if($_GET['Action'] == 'UserRegisterConfirm')
     272      {
     273          $Output .= $this->SystemMessage('Potvrzení registrace', $this->System->Modules['User']->RegisterConfirm($_GET['User'], $_GET['H']));
     274      } else
     275      if($_GET['Action'] == 'PasswordRecovery')
     276      {
     277        $Form = new Form('PasswordRecovery');
     278        $Form->OnSubmit = '?Action=PasswordRecovery2';
     279        $Output .= $Form->ShowEditForm();
     280      } else
     281      if($_GET['Action'] == 'PasswordRecovery2')
     282      {
     283        $Form = new Form('PasswordRecovery');
     284        $Form->LoadValuesFromForm();
     285
     286        $Output .= $this->SystemMessage('Obnova hesla', $this->System->Modules['User']->PasswordRecoveryRequest($Form->Values['Name'], $Form->Values['Email']));
     287      } else
     288      if($_GET['Action'] == 'PasswordRecoveryConfirm')
     289      {
     290        $Output .= $this->SystemMessage('Obnova hesla', $this->System->Modules['User']->PasswordRecoveryConfirm($_GET['User'], $_GET['H'], $_GET['P']));
     291      } else
     292      if($_GET['Action'] == 'UserRegisterSave')
     293      {
     294        $UserRegister = new Form('UserRegister', array());
     295        $UserRegister->LoadValuesFromForm();
     296        $Output .= $this->SystemMessage('Nastavení', $this->System->Modules['User']->Register($UserRegister->Values['Name'], $UserRegister->Values['Password'], $UserRegister->Values['Password2'], $UserRegister->Values['Email'], $UserRegister->Values['FirstName'], $UserRegister->Values['SecondName']));
     297      }
     298    }
     299
     300    $Database->select_db('is');
     301
     302    $Output .= '<table id="MainTable"><tr><td valign="top">';
     303    $Output .= '<div class="Panel">'.$this->ShowLinks($this->Links['main']).'</div>';
     304    $Output .= '<div class="Panel">'.$this->ShowLinks($this->Links['other']).'</div>';
     305    $Output .= '</td><td valign="top">';
     306    $Output .= '<div class="Panel">'.$this->ShowLinks($this->Links['search']).'</div>';
     307    $Output .= '<div class="Panel">'.$this->ShowLinks($this->Links['usefull']).'</div>';
     308    $Output .= '<div class="Panel">'.$this->ShowLinks($this->Links['fun']).'</div>';
     309    $Output .= '</td><td id="NewsColumn" valign="top">';
     310    $Output .= '<div class="Panel">'.$this->System->Modules['News']->Show().'</div>';
     311    $Output .= '</td><td valign="top">';
     312    if($this->System->Modules['User']->User['Id'] != $this->System->Modules['User']->AnonymousUserId) $Output .= '<div class="Panel">'.$this->UserPanel().'</div>';
     313    $Output .= '<div class="Panel">'.$this->WebcamPanel().'</div>';
     314    $Output .= '<div class="Panel">'.$this->OnlineHostList().'</div>';
     315    $Output .= '<br />';
     316    $Output .= '</td></tr></table>';
     317    //if(IsInternetAddr()) echo('Internet'); else echo('LAN');
     318    return($Output);
    85319  }
    86320}
    87321
     322$System->AddModule(new IndexPage());
     323$System->Modules['IndexPage']->GetOutput();
     324
    88325?>
    89 
    90 <table width="100%"><tr><td valign="top">
    91 <?php
    92 $Database->select_db('is');
    93 ?>
    94 
    95 <table width="100%">
    96 <tr><td valign="top">
    97 <strong>Důležité odkazy:</strong><br />
    98 <img alt="" src="images/favicons/money.gif" width="16" height="16" /> <a href="finance/">Finance</a><br />
    99 <img alt="" src="images/favicons/chart.gif" width="16" height="16" /> <a href="http://stat.zdechov.net/centrala/">Statistiky</a><br />
    100 <img alt="" src="images/favicons/prohledavac_sdileni.gif" width="15" height="15" /> <a href="share">Prohledat sdílení</a><br />
    101 <img alt="" src="images/favicons/comp.gif" width="16" height="16" /> <a href="userlist.php">Seznam uživatelů</a><br />
    102 <img alt="" src="images/favicons/comp.gif" width="16" height="16" /> <a href="hostlist.php">Seznam počítačů</a><br />
    103 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="http://embed.mibbit.com/?server=game.zdechov.net%3A6667&amp;channel=%23zdechov&amp;forcePrompt=true&amp;charset=utf-8">Webový chat</a><br />
    104 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="sunrisechat/history.php">Historie chatu</a><br />
    105 <img alt="" src="images/favicons/discus.gif" width="16" height="16" /> <a href="forum">Diskusní fórum</a><br />
    106 <img alt="" src="images/favicons/openwebmail.gif" width="16" height="16" /> <a href="https://centrala.zdechov.net/cgi-bin/openwebmail/openwebmail.pl">WebMail</a><br />
    107 <img alt="" src="images/favicons/apple.gif" width="16" height="16" /> <a href="jidelna">Jídelníček</a><br />
    108 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="http://tv.zdechov.net/">Televize</a><br />
    109 <img alt="" src="images/favicons/cube.gif" width="16" height="16" /> <a href="http://game.zdechov.net/">Herní server</a><br />
    110 <img alt="" src="images/favicons/cfix.gif" width="16" height="16" /> <a href="http://farnost.zdechov.net/">Rozpis mší</a><br />
    111 <img alt="" src="images/favicons/tel.gif" width="16" height="16" /> <a href="telseznam.php">Telefonní seznam</a><br />
    112 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="mapy/mapa.php">Mapa Zděchova</a><br />
    113 <img alt="" src="images/favicons/otv_doby.gif" width="16" height="16" /> <a href="otevreno.php">Otvírací doby</a><br />
    114 <img alt="" src="images/favicons/topologie.gif" width="16" height="16" /> <a href="is/topologie.php">Topologie sítě</a><br />
    115 <img alt="" src="images/favicons/satellite.gif" width="16" height="16" /> <a href="network/dostupnost.php">Dostupnost sítě</a><br />
    116 <img alt="" src="images/favicons/tech.gif" width="16" height="16" /> <a href="network.php">Technické informace</a><br />
    117 <img alt="" src="images/favicons/socer.gif" width="16" height="16" /> <a href="http://fotbal.zdechov.net/">Fotbal Sokol Zděchov</a><br />
    118 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="webcam/">Web kamera</a><br />
    119 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="http://www.zdechov.net">Stránky naší sítě</a><br />
    120 <br />
    121 <strong>Další odkazy:</strong><br />
    122 <img alt="" src="images/favicons/tv.gif" width="16" height="16" /> <a href="tkr.php">Kanály kabelovky</a><br />
    123 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="mapy/mapa_nabidka.php">Nabídka mapy</a><br />
    124 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="history.php">Historie sítě</a><br />
    125 <img alt="" src="images/favicons/electric.gif" width="16" height="16" /> <a href="merak.php">Měřič spotřeby</a><br />
    126 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="ukoly.php">Plány do budoucna</a><br />
    127 
    128 
    129 <?php
    130 //<a href="/cgi-bin/openwebmail/openwebmail.pl">Poątovní schránka</a><br />
    131 //<a href="/download/addfile.php">Stahování souborů</a><br />
    132 ?>
    133 <br />
    134 </td><td valign="top">
    135 <strong>Vyhledávání:</strong><br />
    136 <img alt="" src="images/favicons/www_google_com.gif" width="16" height="16" /> <a href="http://www.google.cz/">Google</a><br />
    137 <img alt="" src="images/favicons/morfeo.png" width="16" height="16" /> <a href="http://morfeo.centrum.cz">Morfeo</a><br />
    138 <img alt="" src="images/favicons/www_centrum_cz.gif" width="16" height="16" /> <a href="http://www.centrum.cz">Centrum</a><br />
    139 <img alt="" src="images/favicons/www_seznam_cz.gif" width="16" height="16" /> <a href="http://www.seznam.cz">Seznam</a><br />
    140 <img alt="" src="images/favicons/www_atlas_cz.gif" width="16" height="16" /> <a href="http://www.atlas.cz">Atlas</a><br />
    141 <img alt="" src="images/favicons/www_tiscali_cz.gif" width="16" height="16" /> <a href="http://www.tiscali.cz">Tiscali</a><br />
    142 <br />
    143 <strong>Užitečné:</strong><br />
    144 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="http://www.mapy.cz/">Mapa ČR</a><br />
    145 <img alt="" src="images/favicons/www_tvinfo_cz.gif" width="16" height="16" /> <a href="http://www.tvinfo.cz/live/televize/cz">Online TV</a><br />
    146 <img alt="" src="images/favicons/www_idos_cz.gif" width="16" height="16" /> <a href="http://jizdnirady.idnes.cz/">Jízdní řády</a><br />
    147 <img alt="" src="images/favicons/www_atlas_cz.gif" width="16" height="16" /> <a href="http://tv.atlas.cz">TV programy</a><br />
    148 <img alt="" src="images/favicons/www_icq_com.gif" width="16" height="16" /> Web ICQ <a href="javascript:openClient('flash')">Flash</a>&nbsp;<a href="javascript:openClient('java')">Java</a><br />
    149 <img alt="" src="images/favicons/www_centrum_cz.gif" width="16" height="16" /> <a href="http://slovniky.centrum.cz">Slovníky</a><br />
    150 <img alt="" src="images/favicons/pocasi.gif" width="16" height="16" /> <a href="http://www.meteopress.cz/">Počasí</a><br />
    151 <img alt="" src="images/favicons/www_tzones_cz.gif" width="16" height="16" /> <a href="http://www.tzones.cz/">T-Mobile SMS</a><br />
    152 <img alt="" src="images/favicons/www_mvk_cz.png" width="16" height="16" /> <a href="http://www.mvk.cz/">Knihovna&nbsp;Vsetín</a><br />
    153 <br />
    154 <strong>Zábava:</strong><br />
    155 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="http://www.youtube.com/">YouTube</a><br />
    156 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="http://www.last.fm/">Last.fm</a><br />
    157 <br />
    158 <?php
    159 /*
    160 <strong>Osobní stránky:</strong><br />
    161 <img alt="" src="images/favicons/bomi.gif" width="16" height="16"> <a href="~mirek/">Miroslav Hajda</a><br />
    162 <img alt="" src="images/favicons/clear.gif" width="16" height="16"> <a href="~george/">Jiří Hajda</a><br />
    163 */
    164 ?>
    165 </td>
    166 <td valign="top">
    167 <?php
    168 // Zobrazení seznamu online počítačů
    169 echo('<strong>Online počítače:</strong><br /><span style="font-size: smaller;">');
    170 $DbResult = $Database->select('hosts', '*', 'online=1 AND show_online=1 ORDER BY name');
    171 while($Row = $DbResult->fetch_array())
    172 {
    173   echo(strtoupper($Row['name']).'<br>');
    174 }
    175 echo('</span>');
    176 
    177 echo('<br />');
    178 
    179 // Zobrazení seznamu neplaticich uzivatelu
    180 /*
    181 echo('<strong>Dlužníci:</strong><br /><span style="font-size: smaller;">');
    182 $DbResult = $Database->select('users', 'CONCAT(second_name, " ", first_name) as fullname', 'cash<0 AND role=2 ORDER BY cash');
    183 while($Row = $DbResult->fetch_array())
    184 {
    185   echo($Row['fullname'].'<br />');
    186 }
    187 echo('</span>');
    188 */
    189 
    190 echo('</td></tr></table>');
    191 
    192 // Zobrazení času běhu počítače
    193 function GetServerUptime()
    194 {
    195   $Data = explode(' ',exec('uptime'));
    196   $Data = array_slice($Data,3,-8);
    197   $Uptime = '';
    198   foreach($Data as $Item)
    199   {
    200     if(strpos($Item,':')) $Uptime .= substr($Item,0,-1).' hodin';
    201     else $Uptime .= $Item.' ';
    202   }
    203   $Uptime = str_replace('2 days,','2 dny a',$Uptime);
    204   $Uptime = str_replace('3 days,','3 dny a',$Uptime);
    205   $Uptime = str_replace('4 days,','4 dny a',$Uptime);
    206   $Uptime = str_replace('days,','dní a',$Uptime);
    207   $Uptime = str_replace('day,','den a',$Uptime);
    208   $Uptime = str_replace('min,','minut',$Uptime);
    209   return('Server běží '.$Uptime);
    210 }
    211 
    212 echo(GetServerUptime());
    213 
    214 echo('</td><td id="NewsColumn" valign="top">');
    215 
    216 /*
    217 $File = fopen('/tmp/temperature2','r');
    218 $Teplota = fgets($File);
    219 $Teplota = round($Teplota*10)/10;
    220 fclose($File);
    221 */
    222 $Teplota = 0;
    223 
    224 echo('<table width="100%"><tr><td><strong>Aktuálně:</strong></td><td align="right">
    225 <a href="?Action=CustomizeNews">Upravit</a></td></tr></table>');
    226 //<img alt="Teplomer" width="10" height="18" src="images/teplomer3.png"><a href="statistic/trafficview2.php?type=temp">'.$Teplota.'°C (mimo provoz)</a></td></tr></table>');
    227 
    228 $UploadedFilesFolder = 'aktuality/uploads/';
    229 
    230 // Initialize default news setting
    231 $NewsSetting = array();
    232 $I = 1;
    233 $DbResult = $Database->select('news_category', '*');
    234 while($NewsCategory = $DbResult->fetch_array())
    235 {
    236   $NewsSetting[] = array('CategoryId' => $NewsCategory['id'], 'Index' => $I, 'Enabled' => 1, 'ItemCount' => $Config['Web']['News']['Count'], 'DaysAgo' => $Config['Web']['News']['DaysAgo']);
    237   $I++;
    238 }
    239 // Merge defaults with user setting
    240 if(array_key_exists('NewsSetting', $_COOKIE))
    241 {
    242   $NewsSettingCookie = unserialize($_COOKIE['NewsSetting']);
    243   foreach($NewsSetting as $Index => $NewSetting)
    244   {
    245     $NewsSetting[$Index] = array_merge($NewSetting, $NewsSettingCookie[$Index]);
    246   }
    247 }
    248 
    249 if(array_key_exists('Action', $_GET))
    250 {
    251   // Show news customize menu
    252   if($_GET['Action'] == 'CustomizeNews')
    253   {
    254     echo('<form action="?Action=CustomizeNewsSave" method="post">');
    255     echo('<table width="100%" cellspacing="0" border="1"><tr><td><table cellspacing="0" width="100%">');
    256     echo('<tr><th>Kategorie</th><th>Pozice</th><th>Zobrazit</th><th>Max. počet</th><th>Posledních dnů</th></tr>');
    257     $I = 0;
    258     foreach($NewsSetting as $SettingItem)
    259     {
    260       $DbResult = $Database->select('news_category', '*', 'id='.$SettingItem['CategoryId']);
    261       $NewsCategory = $DbResult->fetch_array();
    262       echo('<tr><td>'.$NewsCategory['caption'].'</td><td align="center"><input type="text" size="1" name="NewsCategoryIndex'.$I.'" value="'.$SettingItem['Index'].'" /></td><td align="center"><input type="checkbox" name="NewsCategoryEnabled'.$I.'"');
    263       if($SettingItem['Enabled'] == 1) echo(' checked="checked"');
    264       echo(' /></td>'.
    265       '<td align="center"><input type="text" size="1" name="NewsCategoryCount'.$I.'" value="'.$SettingItem['ItemCount'].'" />'.
    266       '<input type="hidden" name="NewsCategoryId'.$I.'" value="'.$SettingItem['CategoryId'].'" /></td><td align="center"><input type="text" size="1" name="NewsCategoryDaysAgo'.$I.'" value="'.$SettingItem['DaysAgo'].'" /></td></tr>');
    267       $I++;
    268     }
    269     echo('</table><input type="hidden" name="NewsCategoryCount" value="'.count($NewsSetting).'" /><input type="submit" value="Uložit" /></form></td></tr></table>');
    270   }
    271 }
    272 
    273 echo('<div onmouseout="skryj(predchozi)">');
    274 
    275 function ShowNews($Category, $ItemCount, $DaysAgo)
    276 {
    277   global $Database, $NewsCategoryNames, $NewsCountPerCategory, $UploadedFilesFolder;
    278 
    279   $ItemCount = abs($ItemCount);
    280   $DaysAgo = abs($DaysAgo);
    281   $DbResult = $Database->select('news_category', '*', 'id='.$Category);
    282   $Row = $DbResult->fetch_array();
    283   echo('<table cellspacing="0" cellpadding="0" border="0" width="100%" style="font-size: small; padding-bottom: 5px;"><tr>');
    284   echo('<td>'.$Row['caption'].'</td><td align="right">');
    285   echo('<a href="aktuality/index.php?category='.$Category.'">Zobrazit všechny aktuality</a>&nbsp;');
    286   if($Row['permission'] == 1) echo('<a href="aktuality/index.php?action=add&amp;category='.$Category.'">Přidat aktualitu</a>&nbsp;');
    287   echo('</td></tr><tr><td colspan="2">');
    288   $DbResult = $Database->query('SELECT * FROM `news` WHERE (`category`='.$Category.') AND (DATE_SUB(NOW(), INTERVAL '.$DaysAgo.' DAY) < `date`) ORDER BY `date` DESC LIMIT 0,'.$ItemCount);
    289   //echo($Database->error.'<br />');
    290   //echo($Database->LastQuery.'<br />');
    291 //echo('<table cellpadding="0" cellspacing="0" width="100%"><tr><td>');
    292   $Index = 0;
    293   $FontSize = 12;
    294   if($DbResult->num_rows > 0)
    295   {
    296   echo('<table cellspacing="0" width="100%" class="NewsTable">');
    297   while($Row = $DbResult->fetch_array())
    298   {
    299     echo('<tr><td onmouseover="zobraz('."'new".$Category.$Index."'".')" style="cursor: pointer; margin: 0px;"><table cellspacing="0" cellpadding="0" style="padding: 0px; margin: 0px; font-size: small; color: red;" width="100%">
    300 <tr><td style="font-size: '.$FontSize.'pt"><strong>'.$Row['title'].'</strong></td>
    301 <td align="right" style="font-size: '.$FontSize.'pt">'.$Row['author'].' ('.HumanDate($Row['date']).')</td></tr></table>');
    302     echo('<div id="new'.$Category.$Index.'" class="NewsTableItem">'.$Row['content']);
    303 
    304       if($Row['enclosure'] != '')
    305       {
    306         echo('<br />Přílohy: ');
    307         $Enclosures = explode(';', $Row['enclosure']);
    308          foreach($Enclosures as $Enclosure)
    309          {
    310           if(file_exists($UploadedFilesFolder.$Enclosure)) echo(' <a href="'.$UploadedFilesFolder.$Enclosure.'">'.$Enclosure.'</a>');
    311          }
    312       }
    313 
    314     echo('</div></td></tr>');
    315     $Index = $Index + 1;   
    316     $FontSize = $FontSize - 1;
    317   }
    318   echo('</table>');
    319   }
    320   echo('</td></tr></table>'."\n\n");
    321 }
    322 
    323 foreach($NewsSetting as $SettingItem)
    324   if($SettingItem['Enabled'] == 1) ShowNews($SettingItem['CategoryId'], $SettingItem['ItemCount'], $SettingItem['DaysAgo']);
    325 
    326 echo('<a href="aktuality/subscription.php"><img class="RSSIcon" src="images/rss20.png" alt="Aktuality přes RSS" /></a>  <a href="aktuality/subscription.php">Automatické sledování novinek</a>');
    327 
    328 //echo('</td></tr></table>'
    329 echo('</div></td></tr></table>');
    330 //if(IsInternetAddr()) echo('Internet'); else echo('LAN');
    331 
    332 ShowFooter();
    333 
    334 ?>
  • www/user.php

    r150 r152  
    3232  var $User = array();
    3333  var $DefaultRole = 2;
    34   var $AnonymousUserId = 80;
     34  var $AnonymousUserId = 72;
    3535
    3636  function Check()
     
    4848    // Zkontroluj přihlášení
    4949    $Query = $this->Database->select('UserOnline', '*', 'SessionId="'.$SID.'"');
    50     $Row = $Query->fetch_array();
     50    $Row = $Query->fetch_assoc();
    5151    if($Row['User'] != $this->AnonymousUserId)
    5252    {
    5353      $Query = $this->Database->select('User', '*', "Id=".$Row['User']."");
    54       $this->User = $Query->fetch_array();
     54      $this->User = $Query->fetch_assoc();
    5555      $Result = USER_LOGGED;
    5656    } else
    5757    {
    5858      $Query = $this->Database->select('User', '*', "Id=".$this->AnonymousUserId);
    59       $this->User = $Query->fetch_array();
     59      $this->User = $Query->fetch_assoc();
    6060      $Result = USER_NOT_LOGGED;
    6161    }
     62
    6263
    6364    // Odeber neaktivní uživatele
  • www/webcam/index.php

    r41 r152  
    11<?php
    22
    3 include('../style.php');
    4 ShowHeader('Kamera', 'Webová kamera');
     3include('../global.php');
    54
    6 $ReloadPeriod = $Config['Web']['WebcamRefresh'] * 1000; // ms
     5class WebcamPage extends Page
     6{
     7  var $FullTitle = 'Webová kamera';
     8  var $ShortTitle = 'Kamera';
     9 
     10  function Show()
     11  {
     12    global $Config;
    713
    8 echo('
    9 <script language="JavaScript">
    10 // Set the BaseURL to the url of your camera
    11 // Note: Since this file is located inside the unit itself, no base url is specified here
    12 // Example:  var BaseURL = "http://172.21.1.122/";
    13 var BaseURL = "http://centrala.zdechov.net/";
     14    if(file_exists($this->System->Modules['Webcam']->ImageFileName))
     15    {
     16      $Output = '<script language="JavaScript">
     17      var ImageURL = "'.$Config['Web']['RootFolder'].'/webcam/'.$this->System->Modules['Webcam']->ImageFileName.'";
    1418
    15 // This is the filepath to the image generating file inside the camera itself
    16 var File = "webcam/webcam.jpg";
    17    
    18 // Force an immediate image load
    19 var theTimer = setTimeout("reloadImage()", 1);
    20        
    21 function reloadImage()
    22 {
    23   theDate = new Date();
    24   var url = BaseURL;
    25   url += File;
    26   url += "?dummy=";
    27   url += theDate.getTime().toString(10);
    28   // The above dummy cgi-parameter enforce a bypass of the browser image cache.
    29   // Here we actually load the image
    30   document.theImage.src = url;
    31                  
    32   // Reload the image every 10 seconds (10000 ms)
    33   theTimer = setTimeout("reloadImage()", '.$ReloadPeriod.');   
     19      // Force an immediate image load
     20      var theTimer = setTimeout("reloadImage()", 1);
     21
     22      function reloadImage()
     23      {
     24        theDate = new Date();
     25        var url = ImageURL;
     26        url += "?dummy=";
     27        url += theDate.getTime().toString(10);
     28        // The above dummy cgi-parameter enforce a bypass of the browser image cache.
     29        // Here we actually load the image
     30        document.theImage.src = url;
     31
     32        // Reload the image every defined period
     33        theTimer = setTimeout("reloadImage()", '.($Config['Web']['WebcamRefresh'] * 1000).');
     34      }
     35      </script>';
     36
     37      $Output .= '<br /><div align="center"><img name="theImage" src="" idth="640" height="480" alt="Webcam image"><br>Poslední aktualizace: '.date('j.n.Y G:i', filemtime($this->System->Modules['Webcam']->ImageFileName)).'<br>Obnovování po '.$Config['Web']['WebcamRefresh'].' sekundách</div><br />';
     38    } else $Output = '<br />Obrázek nenalezen.<br /><br />';
     39
     40    $Output .= '<strong>Kamery v okolí:</strong><br />'.
     41      '<a href="http://www.mestovsetin.cz/vismo/dokumenty2.asp?id_org=18676&id=480245">Webové kamery ve Vsetíně</a><br />';
     42
     43    return($Output);
     44  }
    3445}
    35                                
    36 </script>');
    3746
    38 echo('<br><div align="center"><img name="theImage" src="" idth="640" height="480" alt="Webcam image"><br>Poslední aktualizace: '.date('j.n.Y G:i', filemtime('webcam.jpg')).'<br>Obnovování po '.$Config['Web']['WebcamRefresh'].' sekundách</div><br>');
     47$System->AddModule(new WebcamPage());
     48$System->Modules['WebcamPage']->GetOutput();
    3949
    40 echo('<strong>Kamery v okolí:</strong><br><a href="http://www.inext.cz/webkamera_updated.htm">Ulice nádražní a Smetanova Vsetín</a><br>');
    41 ShowFooter();
    4250?>
Note: See TracChangeset for help on using the changeset viewer.